From e2872c951b59f19553ccb64030007452d1c19533 Mon Sep 17 00:00:00 2001 From: "Jibon L. Costa" Date: Mon, 17 Jul 2023 10:58:16 +0600 Subject: [PATCH] feat: Enable End-To-End Encryption (E2EE) --- plugnmeet/README.txt | 7 +- plugnmeet/admin/class-plugnmeet-admin.php | 18 +- plugnmeet/admin/class-plugnmeet-room-page.php | 20 +- .../partials/plugnmeet-admin-edit-room.php | 6 + plugnmeet/helpers/helper.php | 44 + .../libs/plugnmeet-sdk-php/composer.json | 2 +- .../libs/plugnmeet-sdk-php/composer.lock | 1735 +++++++++++++++++ .../EndToEndEncryptionFeaturesParameters.php | 63 + .../RecordingFeaturesParameters.php | 24 +- .../src/Parameters/RoomFeaturesParameters.php | 26 + .../src/Parameters/UserMetadataParameters.php | 24 +- .../plugnmeet-sdk-php/vendor/autoload.php | 2 +- .../vendor/composer/ClassLoader.php | 96 +- .../vendor/composer/autoload_classmap.php | 1 + .../vendor/composer/autoload_real.php | 10 +- .../vendor/composer/autoload_static.php | 9 +- .../vendor/composer/installed.json | 14 +- .../vendor/composer/installed.php | 14 +- .../vendor/composer/platform_check.php | 26 - .../vendor/firebase/php-jwt/CHANGELOG.md | 31 + .../vendor/firebase/php-jwt/README.md | 11 +- .../firebase/php-jwt/src/CachedKeySet.php | 10 + .../vendor/firebase/php-jwt/src/JWK.php | 32 +- .../vendor/firebase/php-jwt/src/JWT.php | 30 +- plugnmeet/helpers/plugNmeetConnect.php | 10 + plugnmeet/languages/plugnmeet.pot | 146 +- plugnmeet/plugnmeet.php | 4 +- 27 files changed, 2191 insertions(+), 224 deletions(-) create mode 100644 plugnmeet/helpers/libs/plugnmeet-sdk-php/composer.lock create mode 100644 plugnmeet/helpers/libs/plugnmeet-sdk-php/src/Parameters/EndToEndEncryptionFeaturesParameters.php delete mode 100644 plugnmeet/helpers/libs/plugnmeet-sdk-php/vendor/composer/platform_check.php diff --git a/plugnmeet/README.txt b/plugnmeet/README.txt index 247b7c8..70e1b30 100644 --- a/plugnmeet/README.txt +++ b/plugnmeet/README.txt @@ -3,8 +3,8 @@ Contributors: mynaparrot Donate link: https://www.plugnmeet.org/ Tags: mynaparrot, web conference, plugnmeet Requires at least: 5.9 -Tested up to: 6.2 -Stable tag: 1.2.3 +Tested up to: 6.2.2 +Stable tag: 1.2.4 Requires PHP: 7.4 License: GPLv2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html @@ -68,6 +68,9 @@ This plugin will require the [plugNmeet-server](https://github.com/mynaparrot/pl 2. Shared notepad == Changelog == += 1.2.4 = +* feat: E2EE + = 1.2.3 = * feat: Speech to text/translation diff --git a/plugnmeet/admin/class-plugnmeet-admin.php b/plugnmeet/admin/class-plugnmeet-admin.php index e3c6b49..e7c3b89 100644 --- a/plugnmeet/admin/class-plugnmeet-admin.php +++ b/plugnmeet/admin/class-plugnmeet-admin.php @@ -256,24 +256,8 @@ public function save_room_data() { $published = isset( $_POST['published'] ) ? sanitize_text_field( $_POST['published'] ) : 1; $roles = isset( $_POST['roles'] ) ? $_POST['roles'] : array(); - $room_metadata_items = [ - 'room_features', - 'recording_features', - 'chat_features', - 'shared_note_pad_features', - 'whiteboard_features', - 'external_media_player_features', - 'waiting_room_features', - 'breakout_room_features', - 'display_external_link_features', - 'ingress_features', - 'speech_to_text_translation_features', - 'default_lock_settings', - 'custom_design' - ]; - $room_metadata = []; - foreach ( $room_metadata_items as $item ) { + foreach ( PlugnmeetHelper::$roomMetadataItems as $item ) { if ( isset( $_POST[ $item ] ) ) { $room_metadata[ $item ] = $_POST[ $item ]; } else { diff --git a/plugnmeet/admin/class-plugnmeet-room-page.php b/plugnmeet/admin/class-plugnmeet-room-page.php index 397522d..7ff1cbe 100644 --- a/plugnmeet/admin/class-plugnmeet-room-page.php +++ b/plugnmeet/admin/class-plugnmeet-room-page.php @@ -97,25 +97,9 @@ private function getFormData() { $fields_values['attendee_pass'] = PlugnmeetHelper::secureRandomKey( 10 ); } - $room_metadata_items = [ - 'room_features', - 'recording_features', - 'chat_features', - 'shared_note_pad_features', - 'whiteboard_features', - 'external_media_player_features', - 'waiting_room_features', - 'breakout_room_features', - 'display_external_link_features', - 'ingress_features', - 'speech_to_text_translation_features', - 'default_lock_settings', - 'custom_design' - ]; - if ( isset( $data->room_metadata ) ) { $room_metadata = json_decode( $data->room_metadata, true ); - foreach ( $room_metadata_items as $item ) { + foreach ( PlugnmeetHelper::$roomMetadataItems as $item ) { if ( isset( $room_metadata[ $item ] ) ) { $fields_values[ $item ] = $room_metadata[ $item ]; } else { @@ -123,7 +107,7 @@ private function getFormData() { } } } else { - foreach ( $room_metadata_items as $item ) { + foreach ( PlugnmeetHelper::$roomMetadataItems as $item ) { $fields_values[ $item ] = []; } } diff --git a/plugnmeet/admin/partials/plugnmeet-admin-edit-room.php b/plugnmeet/admin/partials/plugnmeet-admin-edit-room.php index ec0d89a..edbe59d 100644 --- a/plugnmeet/admin/partials/plugnmeet-admin-edit-room.php +++ b/plugnmeet/admin/partials/plugnmeet-admin-edit-room.php @@ -142,6 +142,12 @@ +
+ + + + +
diff --git a/plugnmeet/helpers/helper.php b/plugnmeet/helpers/helper.php index 776bee6..7bdb759 100644 --- a/plugnmeet/helpers/helper.php +++ b/plugnmeet/helpers/helper.php @@ -13,6 +13,23 @@ class PlugnmeetHelper { + public static $roomMetadataItems = [ + 'room_features', + 'recording_features', + 'chat_features', + 'shared_note_pad_features', + 'whiteboard_features', + 'external_media_player_features', + 'waiting_room_features', + 'breakout_room_features', + 'display_external_link_features', + 'ingress_features', + 'speech_to_text_translation_features', + 'end_to_end_encryption_features', + 'default_lock_settings', + 'custom_design' + ]; + private static $allowedHtml = array( 'select' => array( 'id' => array(), @@ -614,6 +631,33 @@ public static function getSpeechToTextTranslationFeatures( $speech_features ) { return self::formatHtml( $speechFeatures, "speech_to_text_translation_features", $data ); } + public static function getEndToEndEncryptionFeatures( $e2ee_features ) { + $e2eeFeatures = array( + "is_enabled" => array( + "label" => __( "Enable End-To-End Encryption (E2EE)", "plugnmeet" ), + "options" => array( + array( + "label" => __( "Yes", "plugnmeet" ), + "value" => 1 + ), + array( + "label" => __( "No", "plugnmeet" ), + "value" => 0 + ) + ), + "selected" => 0, + "type" => "select" + ) + ); + + $data = []; + if ( ! empty( $e2ee_features ) ) { + $data = $e2ee_features; + } + + return self::formatHtml( $e2eeFeatures, "end_to_end_encryption_features", $data ); + } + public static function getDefaultLockSettings( $default_lock_settings ) { $defaultLockSettings = array( "lock_microphone" => array( diff --git a/plugnmeet/helpers/libs/plugnmeet-sdk-php/composer.json b/plugnmeet/helpers/libs/plugnmeet-sdk-php/composer.json index 023a21e..0cb8ba1 100644 --- a/plugnmeet/helpers/libs/plugnmeet-sdk-php/composer.json +++ b/plugnmeet/helpers/libs/plugnmeet-sdk-php/composer.json @@ -3,7 +3,7 @@ "description": "plugNmeet PHP SDK", "type": "library", "license": "MIT", - "version": "1.2.5", + "version": "1.3.0", "autoload": { "psr-4": { "Mynaparrot\\Plugnmeet\\": "src/" diff --git a/plugnmeet/helpers/libs/plugnmeet-sdk-php/composer.lock b/plugnmeet/helpers/libs/plugnmeet-sdk-php/composer.lock new file mode 100644 index 0000000..102e929 --- /dev/null +++ b/plugnmeet/helpers/libs/plugnmeet-sdk-php/composer.lock @@ -0,0 +1,1735 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "fea6755dd358efb0f30c37af26fb4590", + "packages": [ + { + "name": "brick/math", + "version": "0.9.3", + "source": { + "type": "git", + "url": "https://github.com/brick/math.git", + "reference": "ca57d18f028f84f777b2168cd1911b0dee2343ae" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/brick/math/zipball/ca57d18f028f84f777b2168cd1911b0dee2343ae", + "reference": "ca57d18f028f84f777b2168cd1911b0dee2343ae", + "shasum": "" + }, + "require": { + "ext-json": "*", + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "php-coveralls/php-coveralls": "^2.2", + "phpunit/phpunit": "^7.5.15 || ^8.5 || ^9.0", + "vimeo/psalm": "4.9.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "Brick\\Math\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Arbitrary-precision arithmetic library", + "keywords": [ + "Arbitrary-precision", + "BigInteger", + "BigRational", + "arithmetic", + "bigdecimal", + "bignum", + "brick", + "math" + ], + "support": { + "issues": "https://github.com/brick/math/issues", + "source": "https://github.com/brick/math/tree/0.9.3" + }, + "funding": [ + { + "url": "https://github.com/BenMorel", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/brick/math", + "type": "tidelift" + } + ], + "time": "2021-08-15T20:50:18+00:00" + }, + { + "name": "firebase/php-jwt", + "version": "v6.8.0", + "source": { + "type": "git", + "url": "https://github.com/firebase/php-jwt.git", + "reference": "48b0210c51718d682e53210c24d25c5a10a2299b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/firebase/php-jwt/zipball/48b0210c51718d682e53210c24d25c5a10a2299b", + "reference": "48b0210c51718d682e53210c24d25c5a10a2299b", + "shasum": "" + }, + "require": { + "php": "^7.4||^8.0" + }, + "require-dev": { + "guzzlehttp/guzzle": "^6.5||^7.4", + "phpspec/prophecy-phpunit": "^2.0", + "phpunit/phpunit": "^9.5", + "psr/cache": "^1.0||^2.0", + "psr/http-client": "^1.0", + "psr/http-factory": "^1.0" + }, + "suggest": { + "ext-sodium": "Support EdDSA (Ed25519) signatures", + "paragonie/sodium_compat": "Support EdDSA (Ed25519) signatures when libsodium is not present" + }, + "type": "library", + "autoload": { + "psr-4": { + "Firebase\\JWT\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Neuman Vong", + "email": "neuman+pear@twilio.com", + "role": "Developer" + }, + { + "name": "Anant Narayanan", + "email": "anant@php.net", + "role": "Developer" + } + ], + "description": "A simple library to encode and decode JSON Web Tokens (JWT) in PHP. Should conform to the current spec.", + "homepage": "https://github.com/firebase/php-jwt", + "keywords": [ + "jwt", + "php" + ], + "support": { + "issues": "https://github.com/firebase/php-jwt/issues", + "source": "https://github.com/firebase/php-jwt/tree/v6.8.0" + }, + "time": "2023-06-20T16:45:35+00:00" + }, + { + "name": "ramsey/collection", + "version": "1.3.0", + "source": { + "type": "git", + "url": "https://github.com/ramsey/collection.git", + "reference": "ad7475d1c9e70b190ecffc58f2d989416af339b4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ramsey/collection/zipball/ad7475d1c9e70b190ecffc58f2d989416af339b4", + "reference": "ad7475d1c9e70b190ecffc58f2d989416af339b4", + "shasum": "" + }, + "require": { + "php": "^7.4 || ^8.0", + "symfony/polyfill-php81": "^1.23" + }, + "require-dev": { + "captainhook/plugin-composer": "^5.3", + "ergebnis/composer-normalize": "^2.28.3", + "fakerphp/faker": "^1.21", + "hamcrest/hamcrest-php": "^2.0", + "jangregor/phpstan-prophecy": "^1.0", + "mockery/mockery": "^1.5", + "php-parallel-lint/php-console-highlighter": "^1.0", + "php-parallel-lint/php-parallel-lint": "^1.3", + "phpcsstandards/phpcsutils": "^1.0.0-rc1", + "phpspec/prophecy-phpunit": "^2.0", + "phpstan/extension-installer": "^1.2", + "phpstan/phpstan": "^1.9", + "phpstan/phpstan-mockery": "^1.1", + "phpstan/phpstan-phpunit": "^1.3", + "phpunit/phpunit": "^9.5", + "psalm/plugin-mockery": "^1.1", + "psalm/plugin-phpunit": "^0.18.4", + "ramsey/coding-standard": "^2.0.3", + "ramsey/conventional-commits": "^1.3", + "vimeo/psalm": "^5.4" + }, + "type": "library", + "extra": { + "captainhook": { + "force-install": true + }, + "ramsey/conventional-commits": { + "configFile": "conventional-commits.json" + } + }, + "autoload": { + "psr-4": { + "Ramsey\\Collection\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ben Ramsey", + "email": "ben@benramsey.com", + "homepage": "https://benramsey.com" + } + ], + "description": "A PHP library for representing and manipulating collections.", + "keywords": [ + "array", + "collection", + "hash", + "map", + "queue", + "set" + ], + "support": { + "issues": "https://github.com/ramsey/collection/issues", + "source": "https://github.com/ramsey/collection/tree/1.3.0" + }, + "funding": [ + { + "url": "https://github.com/ramsey", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/ramsey/collection", + "type": "tidelift" + } + ], + "time": "2022-12-27T19:12:24+00:00" + }, + { + "name": "ramsey/uuid", + "version": "4.2.0", + "source": { + "type": "git", + "url": "https://github.com/ramsey/uuid.git", + "reference": "7231612a5221f5524d3575bebdce20eeef8547a1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ramsey/uuid/zipball/7231612a5221f5524d3575bebdce20eeef8547a1", + "reference": "7231612a5221f5524d3575bebdce20eeef8547a1", + "shasum": "" + }, + "require": { + "brick/math": "^0.8 || ^0.9", + "ext-json": "*", + "php": "^7.2 || ^8", + "ramsey/collection": "^1.0", + "symfony/polyfill-ctype": "^1.8" + }, + "replace": { + "rhumsaa/uuid": "self.version" + }, + "require-dev": { + "captainhook/captainhook": "^5.10", + "captainhook/plugin-composer": "^5.3", + "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0", + "doctrine/annotations": "^1.8", + "ergebnis/composer-normalize": "^2.15", + "mockery/mockery": "^1.3", + "moontoast/math": "^1.1", + "paragonie/random-lib": "^2", + "php-mock/php-mock": "^2.2", + "php-mock/php-mock-mockery": "^1.3", + "php-parallel-lint/php-parallel-lint": "^1.1", + "phpbench/phpbench": "^1.0", + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "^0.12", + "phpstan/phpstan-mockery": "^0.12", + "phpstan/phpstan-phpunit": "^0.12", + "phpunit/phpunit": "^8.5 || ^9", + "slevomat/coding-standard": "^7.0", + "squizlabs/php_codesniffer": "^3.5", + "vimeo/psalm": "^4.9" + }, + "suggest": { + "ext-bcmath": "Enables faster math with arbitrary-precision integers using BCMath.", + "ext-ctype": "Enables faster processing of character classification using ctype functions.", + "ext-gmp": "Enables faster math with arbitrary-precision integers using GMP.", + "ext-uuid": "Enables the use of PeclUuidTimeGenerator and PeclUuidRandomGenerator.", + "paragonie/random-lib": "Provides RandomLib for use with the RandomLibAdapter", + "ramsey/uuid-doctrine": "Allows the use of Ramsey\\Uuid\\Uuid as Doctrine field type." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "4.x-dev" + }, + "captainhook": { + "force-install": true + } + }, + "autoload": { + "files": [ + "src/functions.php" + ], + "psr-4": { + "Ramsey\\Uuid\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "A PHP library for generating and working with universally unique identifiers (UUIDs).", + "keywords": [ + "guid", + "identifier", + "uuid" + ], + "support": { + "issues": "https://github.com/ramsey/uuid/issues", + "source": "https://github.com/ramsey/uuid/tree/4.2.0" + }, + "funding": [ + { + "url": "https://github.com/ramsey", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/ramsey/uuid", + "type": "tidelift" + } + ], + "time": "2021-08-06T22:30:43+00:00" + }, + { + "name": "symfony/polyfill-ctype", + "version": "v1.27.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "5bbc823adecdae860bb64756d639ecfec17b050a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/5bbc823adecdae860bb64756d639ecfec17b050a", + "reference": "5bbc823adecdae860bb64756d639ecfec17b050a", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-ctype": "*" + }, + "suggest": { + "ext-ctype": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.27-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Gert de Pagter", + "email": "BackEndTea@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for ctype functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "ctype", + "polyfill", + "portable" + ], + "support": { + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.27.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-11-03T14:55:06+00:00" + }, + { + "name": "symfony/polyfill-php81", + "version": "v1.27.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php81.git", + "reference": "707403074c8ea6e2edaf8794b0157a0bfa52157a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/707403074c8ea6e2edaf8794b0157a0bfa52157a", + "reference": "707403074c8ea6e2edaf8794b0157a0bfa52157a", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.27-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php81\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php81/tree/v1.27.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-11-03T14:55:06+00:00" + } + ], + "packages-dev": [ + { + "name": "n98/junit-xml", + "version": "1.1.0", + "source": { + "type": "git", + "url": "https://github.com/cmuench/junit-xml.git", + "reference": "0017dd92ac8cb619f02e32f4cffd768cfe327c73" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/cmuench/junit-xml/zipball/0017dd92ac8cb619f02e32f4cffd768cfe327c73", + "reference": "0017dd92ac8cb619f02e32f4cffd768cfe327c73", + "shasum": "" + }, + "require-dev": { + "phpunit/phpunit": "^9.5.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "N98\\JUnitXml\\": "src/N98/JUnitXml" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Christian Münch", + "email": "c.muench@netz98.de" + } + ], + "description": "JUnit XML Document generation library", + "support": { + "issues": "https://github.com/cmuench/junit-xml/issues", + "source": "https://github.com/cmuench/junit-xml/tree/1.1.0" + }, + "time": "2020-12-25T09:08:58+00:00" + }, + { + "name": "overtrue/phplint", + "version": "3.4.0", + "source": { + "type": "git", + "url": "https://github.com/overtrue/phplint.git", + "reference": "1cf71bf8abd5f41308fcf5f375e22bdd778df833" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/overtrue/phplint/zipball/1cf71bf8abd5f41308fcf5f375e22bdd778df833", + "reference": "1cf71bf8abd5f41308fcf5f375e22bdd778df833", + "shasum": "" + }, + "require": { + "ext-json": "*", + "n98/junit-xml": "1.1.0", + "php": "^7.4", + "symfony/console": "^5.4", + "symfony/finder": "^5.4", + "symfony/options-resolver": "^5.4", + "symfony/process": "^5.4", + "symfony/yaml": "^5.4" + }, + "require-dev": { + "brainmaestro/composer-git-hooks": "^2.7", + "friendsofphp/php-cs-fixer": "^3.4", + "php-parallel-lint/php-console-highlighter": "^1.0" + }, + "bin": [ + "bin/phplint" + ], + "type": "library", + "extra": { + "hooks": { + "pre-commit": [ + "composer fix-style" + ], + "pre-push": [ + "composer check-style" + ] + } + }, + "autoload": { + "psr-4": { + "Overtrue\\PHPLint\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "overtrue", + "email": "anzhengchao@gmail.com" + } + ], + "description": "`phplint` is a tool that can speed up linting of php files by running several lint processes at once.", + "keywords": [ + "check", + "lint", + "phplint", + "syntax" + ], + "support": { + "issues": "https://github.com/overtrue/phplint/issues", + "source": "https://github.com/overtrue/phplint/tree/3.4.0" + }, + "funding": [ + { + "url": "https://github.com/overtrue", + "type": "github" + } + ], + "time": "2022-12-28T12:08:47+00:00" + }, + { + "name": "psr/container", + "version": "2.0.2", + "source": { + "type": "git", + "url": "https://github.com/php-fig/container.git", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "shasum": "" + }, + "require": { + "php": ">=7.4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Container\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", + "keywords": [ + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" + ], + "support": { + "issues": "https://github.com/php-fig/container/issues", + "source": "https://github.com/php-fig/container/tree/2.0.2" + }, + "time": "2021-11-05T16:47:00+00:00" + }, + { + "name": "squizlabs/php_codesniffer", + "version": "3.7.2", + "source": { + "type": "git", + "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", + "reference": "ed8e00df0a83aa96acf703f8c2979ff33341f879" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/ed8e00df0a83aa96acf703f8c2979ff33341f879", + "reference": "ed8e00df0a83aa96acf703f8c2979ff33341f879", + "shasum": "" + }, + "require": { + "ext-simplexml": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": ">=5.4.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0" + }, + "bin": [ + "bin/phpcs", + "bin/phpcbf" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Greg Sherwood", + "role": "lead" + } + ], + "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", + "homepage": "https://github.com/squizlabs/PHP_CodeSniffer", + "keywords": [ + "phpcs", + "standards", + "static analysis" + ], + "support": { + "issues": "https://github.com/squizlabs/PHP_CodeSniffer/issues", + "source": "https://github.com/squizlabs/PHP_CodeSniffer", + "wiki": "https://github.com/squizlabs/PHP_CodeSniffer/wiki" + }, + "time": "2023-02-22T23:07:41+00:00" + }, + { + "name": "symfony/console", + "version": "v5.4.24", + "source": { + "type": "git", + "url": "https://github.com/symfony/console.git", + "reference": "560fc3ed7a43e6d30ea94a07d77f9a60b8ed0fb8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/console/zipball/560fc3ed7a43e6d30ea94a07d77f9a60b8ed0fb8", + "reference": "560fc3ed7a43e6d30ea94a07d77f9a60b8ed0fb8", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php73": "^1.9", + "symfony/polyfill-php80": "^1.16", + "symfony/service-contracts": "^1.1|^2|^3", + "symfony/string": "^5.1|^6.0" + }, + "conflict": { + "psr/log": ">=3", + "symfony/dependency-injection": "<4.4", + "symfony/dotenv": "<5.1", + "symfony/event-dispatcher": "<4.4", + "symfony/lock": "<4.4", + "symfony/process": "<4.4" + }, + "provide": { + "psr/log-implementation": "1.0|2.0" + }, + "require-dev": { + "psr/log": "^1|^2", + "symfony/config": "^4.4|^5.0|^6.0", + "symfony/dependency-injection": "^4.4|^5.0|^6.0", + "symfony/event-dispatcher": "^4.4|^5.0|^6.0", + "symfony/lock": "^4.4|^5.0|^6.0", + "symfony/process": "^4.4|^5.0|^6.0", + "symfony/var-dumper": "^4.4|^5.0|^6.0" + }, + "suggest": { + "psr/log": "For using the console logger", + "symfony/event-dispatcher": "", + "symfony/lock": "", + "symfony/process": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Console\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Eases the creation of beautiful and testable command line interfaces", + "homepage": "https://symfony.com", + "keywords": [ + "cli", + "command-line", + "console", + "terminal" + ], + "support": { + "source": "https://github.com/symfony/console/tree/v5.4.24" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-05-26T05:13:16+00:00" + }, + { + "name": "symfony/deprecation-contracts", + "version": "v3.3.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/deprecation-contracts.git", + "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/7c3aff79d10325257a001fcf92d991f24fc967cf", + "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.4-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "files": [ + "function.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "A generic function and convention to trigger deprecation notices", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.3.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-05-23T14:45:45+00:00" + }, + { + "name": "symfony/finder", + "version": "v5.4.21", + "source": { + "type": "git", + "url": "https://github.com/symfony/finder.git", + "reference": "078e9a5e1871fcfe6a5ce421b539344c21afef19" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/finder/zipball/078e9a5e1871fcfe6a5ce421b539344c21afef19", + "reference": "078e9a5e1871fcfe6a5ce421b539344c21afef19", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-php80": "^1.16" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Finder\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Finds files and directories via an intuitive fluent interface", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/finder/tree/v5.4.21" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-02-16T09:33:00+00:00" + }, + { + "name": "symfony/options-resolver", + "version": "v5.4.21", + "source": { + "type": "git", + "url": "https://github.com/symfony/options-resolver.git", + "reference": "4fe5cf6ede71096839f0e4b4444d65dd3a7c1eb9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/4fe5cf6ede71096839f0e4b4444d65dd3a7c1eb9", + "reference": "4fe5cf6ede71096839f0e4b4444d65dd3a7c1eb9", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-php73": "~1.0", + "symfony/polyfill-php80": "^1.16" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\OptionsResolver\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides an improved replacement for the array_replace PHP function", + "homepage": "https://symfony.com", + "keywords": [ + "config", + "configuration", + "options" + ], + "support": { + "source": "https://github.com/symfony/options-resolver/tree/v5.4.21" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-02-14T08:03:56+00:00" + }, + { + "name": "symfony/polyfill-intl-grapheme", + "version": "v1.27.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-grapheme.git", + "reference": "511a08c03c1960e08a883f4cffcacd219b758354" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/511a08c03c1960e08a883f4cffcacd219b758354", + "reference": "511a08c03c1960e08a883f4cffcacd219b758354", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.27-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Grapheme\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's grapheme_* functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "grapheme", + "intl", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.27.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-11-03T14:55:06+00:00" + }, + { + "name": "symfony/polyfill-intl-normalizer", + "version": "v1.27.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-normalizer.git", + "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/19bd1e4fcd5b91116f14d8533c57831ed00571b6", + "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.27-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Normalizer\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's Normalizer class and related functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "intl", + "normalizer", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.27.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-11-03T14:55:06+00:00" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.27.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/8ad114f6b39e2c98a8b0e3bd907732c207c2b534", + "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-mbstring": "*" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.27-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.27.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-11-03T14:55:06+00:00" + }, + { + "name": "symfony/polyfill-php73", + "version": "v1.27.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php73.git", + "reference": "9e8ecb5f92152187c4799efd3c96b78ccab18ff9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/9e8ecb5f92152187c4799efd3c96b78ccab18ff9", + "reference": "9e8ecb5f92152187c4799efd3c96b78ccab18ff9", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.27-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php73\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php73/tree/v1.27.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-11-03T14:55:06+00:00" + }, + { + "name": "symfony/polyfill-php80", + "version": "v1.27.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php80.git", + "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936", + "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.27-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php80\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ion Bazan", + "email": "ion.bazan@gmail.com" + }, + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php80/tree/v1.27.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-11-03T14:55:06+00:00" + }, + { + "name": "symfony/process", + "version": "v5.4.24", + "source": { + "type": "git", + "url": "https://github.com/symfony/process.git", + "reference": "e3c46cc5689c8782944274bb30702106ecbe3b64" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/process/zipball/e3c46cc5689c8782944274bb30702106ecbe3b64", + "reference": "e3c46cc5689c8782944274bb30702106ecbe3b64", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/polyfill-php80": "^1.16" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Process\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Executes commands in sub-processes", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/process/tree/v5.4.24" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-05-17T11:26:05+00:00" + }, + { + "name": "symfony/service-contracts", + "version": "v3.3.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/service-contracts.git", + "reference": "40da9cc13ec349d9e4966ce18b5fbcd724ab10a4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/40da9cc13ec349d9e4966ce18b5fbcd724ab10a4", + "reference": "40da9cc13ec349d9e4966ce18b5fbcd724ab10a4", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/container": "^2.0" + }, + "conflict": { + "ext-psr": "<1.1|>=2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.4-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Service\\": "" + }, + "exclude-from-classmap": [ + "/Test/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to writing services", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/service-contracts/tree/v3.3.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-05-23T14:45:45+00:00" + }, + { + "name": "symfony/string", + "version": "v6.3.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/string.git", + "reference": "f2e190ee75ff0f5eced645ec0be5c66fac81f51f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/string/zipball/f2e190ee75ff0f5eced645ec0be5c66fac81f51f", + "reference": "f2e190ee75ff0f5eced645ec0be5c66fac81f51f", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-intl-grapheme": "~1.0", + "symfony/polyfill-intl-normalizer": "~1.0", + "symfony/polyfill-mbstring": "~1.0" + }, + "conflict": { + "symfony/translation-contracts": "<2.5" + }, + "require-dev": { + "symfony/error-handler": "^5.4|^6.0", + "symfony/http-client": "^5.4|^6.0", + "symfony/intl": "^6.2", + "symfony/translation-contracts": "^2.5|^3.0", + "symfony/var-exporter": "^5.4|^6.0" + }, + "type": "library", + "autoload": { + "files": [ + "Resources/functions.php" + ], + "psr-4": { + "Symfony\\Component\\String\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way", + "homepage": "https://symfony.com", + "keywords": [ + "grapheme", + "i18n", + "string", + "unicode", + "utf-8", + "utf8" + ], + "support": { + "source": "https://github.com/symfony/string/tree/v6.3.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-03-21T21:06:29+00:00" + }, + { + "name": "symfony/yaml", + "version": "v5.4.23", + "source": { + "type": "git", + "url": "https://github.com/symfony/yaml.git", + "reference": "4cd2e3ea301aadd76a4172756296fe552fb45b0b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/yaml/zipball/4cd2e3ea301aadd76a4172756296fe552fb45b0b", + "reference": "4cd2e3ea301aadd76a4172756296fe552fb45b0b", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-ctype": "^1.8" + }, + "conflict": { + "symfony/console": "<5.3" + }, + "require-dev": { + "symfony/console": "^5.3|^6.0" + }, + "suggest": { + "symfony/console": "For validating YAML files using the lint command" + }, + "bin": [ + "Resources/bin/yaml-lint" + ], + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Yaml\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Loads and dumps YAML files", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/yaml/tree/v5.4.23" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-04-23T19:33:36+00:00" + } + ], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": [], + "prefer-stable": false, + "prefer-lowest": false, + "platform": { + "php": "^7.4|^8.0", + "ext-curl": "*", + "ext-json": "*" + }, + "platform-dev": [], + "plugin-api-version": "2.3.0" +} diff --git a/plugnmeet/helpers/libs/plugnmeet-sdk-php/src/Parameters/EndToEndEncryptionFeaturesParameters.php b/plugnmeet/helpers/libs/plugnmeet-sdk-php/src/Parameters/EndToEndEncryptionFeaturesParameters.php new file mode 100644 index 0000000..1e9cd80 --- /dev/null +++ b/plugnmeet/helpers/libs/plugnmeet-sdk-php/src/Parameters/EndToEndEncryptionFeaturesParameters.php @@ -0,0 +1,63 @@ +isEnable; + } + + /** + * @param bool $isEnable + */ + public function setIsEnable(bool $isEnable): void + { + $this->isEnable = filter_var($isEnable, FILTER_VALIDATE_BOOLEAN); + } + + /** + * @return array + */ + public function buildBody(): array + { + return array( + "is_enabled" => $this->isEnable(), + ); + } +} diff --git a/plugnmeet/helpers/libs/plugnmeet-sdk-php/src/Parameters/RecordingFeaturesParameters.php b/plugnmeet/helpers/libs/plugnmeet-sdk-php/src/Parameters/RecordingFeaturesParameters.php index cd13cc0..507f13d 100644 --- a/plugnmeet/helpers/libs/plugnmeet-sdk-php/src/Parameters/RecordingFeaturesParameters.php +++ b/plugnmeet/helpers/libs/plugnmeet-sdk-php/src/Parameters/RecordingFeaturesParameters.php @@ -24,6 +24,11 @@ class RecordingFeaturesParameters */ protected $enableAutoCloudRecording = false; + /** + * @var bool + */ + protected $onlyRecordAdminWebcams = false; + /** * */ @@ -95,6 +100,22 @@ public function setEnableAutoCloudRecording(bool $enableAutoCloudRecording): voi $this->enableAutoCloudRecording = filter_var($enableAutoCloudRecording, FILTER_VALIDATE_BOOLEAN); } + /** + * @return bool + */ + public function isOnlyRecordAdminWebcams(): bool + { + return $this->onlyRecordAdminWebcams; + } + + /** + * @param bool $onlyRecordAdminWebcams + */ + public function setOnlyRecordAdminWebcams(bool $onlyRecordAdminWebcams): void + { + $this->onlyRecordAdminWebcams = filter_var($onlyRecordAdminWebcams, FILTER_VALIDATE_BOOLEAN); + } + /** * @return array */ @@ -104,7 +125,8 @@ public function buildBody(): array "is_allow" => $this->isAllow(), "is_allow_cloud" => $this->isAllowCloud(), "is_allow_local" => $this->isAllowLocal(), - "enable_auto_cloud_recording" => $this->isEnableAutoCloudRecording() + "enable_auto_cloud_recording" => $this->isEnableAutoCloudRecording(), + "only_record_admin_webcams" => $this->isOnlyRecordAdminWebcams() ); } } diff --git a/plugnmeet/helpers/libs/plugnmeet-sdk-php/src/Parameters/RoomFeaturesParameters.php b/plugnmeet/helpers/libs/plugnmeet-sdk-php/src/Parameters/RoomFeaturesParameters.php index 8d73217..9dd3753 100644 --- a/plugnmeet/helpers/libs/plugnmeet-sdk-php/src/Parameters/RoomFeaturesParameters.php +++ b/plugnmeet/helpers/libs/plugnmeet-sdk-php/src/Parameters/RoomFeaturesParameters.php @@ -111,6 +111,11 @@ class RoomFeaturesParameters */ protected $speechToTextTranslationFeatures; + /** + * @var EndToEndEncryptionFeaturesParameters + */ + protected $endToEndEncryptionFeatures; + /** * */ @@ -425,6 +430,23 @@ public function setSpeechToTextTranslationFeatures( $this->speechToTextTranslationFeatures = $speechToTextTranslationFeatures; } + /** + * @return EndToEndEncryptionFeaturesParameters + */ + public function getEndToEndEncryptionFeatures(): EndToEndEncryptionFeaturesParameters + { + return $this->endToEndEncryptionFeatures; + } + + /** + * @param EndToEndEncryptionFeaturesParameters $endToEndEncryptionFeatures + */ + public function setEndToEndEncryptionFeatures( + EndToEndEncryptionFeaturesParameters $endToEndEncryptionFeatures + ): void { + $this->endToEndEncryptionFeatures = $endToEndEncryptionFeatures; + } + /** * @return array */ @@ -482,6 +504,10 @@ public function buildBody(): array $body['speech_to_text_translation_features'] = $this->getSpeechToTextTranslationFeatures()->buildBody(); } + if ($this->endToEndEncryptionFeatures !== null) { + $body['end_to_end_encryption_features'] = $this->getEndToEndEncryptionFeatures()->buildBody(); + } + return $body; } } diff --git a/plugnmeet/helpers/libs/plugnmeet-sdk-php/src/Parameters/UserMetadataParameters.php b/plugnmeet/helpers/libs/plugnmeet-sdk-php/src/Parameters/UserMetadataParameters.php index 96cc4f9..f90ca97 100644 --- a/plugnmeet/helpers/libs/plugnmeet-sdk-php/src/Parameters/UserMetadataParameters.php +++ b/plugnmeet/helpers/libs/plugnmeet-sdk-php/src/Parameters/UserMetadataParameters.php @@ -33,6 +33,10 @@ class UserMetadataParameters * @var string */ protected $profilePic; + /** + * @var bool + */ + protected $recordWebcam = true; /** * @var LockSettingsParameters */ @@ -61,6 +65,22 @@ public function setProfilePic(string $profilePic) $this->profilePic = $profilePic; } + /** + * @return bool + */ + public function isRecordWebcam(): bool + { + return $this->recordWebcam; + } + + /** + * @param bool $recordWebcam + */ + public function setRecordWebcam(bool $recordWebcam): void + { + $this->recordWebcam = filter_var($recordWebcam, FILTER_VALIDATE_BOOLEAN); + } + /** * @return LockSettingsParameters */ @@ -82,7 +102,9 @@ public function setLockSettings(LockSettingsParameters $lockSettings) */ public function buildBody(): array { - $body = array(); + $body = array( + "record_webcam" => $this->isRecordWebcam() + ); if (!empty($this->profilePic)) { $body["profile_pic"] = $this->getProfilePic(); diff --git a/plugnmeet/helpers/libs/plugnmeet-sdk-php/vendor/autoload.php b/plugnmeet/helpers/libs/plugnmeet-sdk-php/vendor/autoload.php index 2427133..c190e10 100644 --- a/plugnmeet/helpers/libs/plugnmeet-sdk-php/vendor/autoload.php +++ b/plugnmeet/helpers/libs/plugnmeet-sdk-php/vendor/autoload.php @@ -22,4 +22,4 @@ require_once __DIR__ . '/composer/autoload_real.php'; -return ComposerAutoloaderInitbdcf1e044f4f7e492f5246dedc8614fd::getLoader(); +return ComposerAutoloaderInitc9bd71345d80e278cfb1d338867b60ea::getLoader(); diff --git a/plugnmeet/helpers/libs/plugnmeet-sdk-php/vendor/composer/ClassLoader.php b/plugnmeet/helpers/libs/plugnmeet-sdk-php/vendor/composer/ClassLoader.php index a72151c..7824d8f 100644 --- a/plugnmeet/helpers/libs/plugnmeet-sdk-php/vendor/composer/ClassLoader.php +++ b/plugnmeet/helpers/libs/plugnmeet-sdk-php/vendor/composer/ClassLoader.php @@ -45,35 +45,34 @@ class ClassLoader /** @var \Closure(string):void */ private static $includeFile; - /** @var ?string */ + /** @var string|null */ private $vendorDir; // PSR-4 /** - * @var array[] - * @psalm-var array> + * @var array> */ private $prefixLengthsPsr4 = array(); /** - * @var array[] - * @psalm-var array> + * @var array> */ private $prefixDirsPsr4 = array(); /** - * @var array[] - * @psalm-var array + * @var list */ private $fallbackDirsPsr4 = array(); // PSR-0 /** - * @var array[] - * @psalm-var array> + * List of PSR-0 prefixes + * + * Structured as array('F (first letter)' => array('Foo\Bar (full prefix)' => array('path', 'path2'))) + * + * @var array>> */ private $prefixesPsr0 = array(); /** - * @var array[] - * @psalm-var array + * @var list */ private $fallbackDirsPsr0 = array(); @@ -81,8 +80,7 @@ class ClassLoader private $useIncludePath = false; /** - * @var string[] - * @psalm-var array + * @var array */ private $classMap = array(); @@ -90,21 +88,20 @@ class ClassLoader private $classMapAuthoritative = false; /** - * @var bool[] - * @psalm-var array + * @var array */ private $missingClasses = array(); - /** @var ?string */ + /** @var string|null */ private $apcuPrefix; /** - * @var self[] + * @var array */ private static $registeredLoaders = array(); /** - * @param ?string $vendorDir + * @param string|null $vendorDir */ public function __construct($vendorDir = null) { @@ -113,7 +110,7 @@ public function __construct($vendorDir = null) } /** - * @return string[] + * @return array> */ public function getPrefixes() { @@ -125,8 +122,7 @@ public function getPrefixes() } /** - * @return array[] - * @psalm-return array> + * @return array> */ public function getPrefixesPsr4() { @@ -134,8 +130,7 @@ public function getPrefixesPsr4() } /** - * @return array[] - * @psalm-return array + * @return list */ public function getFallbackDirs() { @@ -143,8 +138,7 @@ public function getFallbackDirs() } /** - * @return array[] - * @psalm-return array + * @return list */ public function getFallbackDirsPsr4() { @@ -152,8 +146,7 @@ public function getFallbackDirsPsr4() } /** - * @return string[] Array of classname => path - * @psalm-return array + * @return array Array of classname => path */ public function getClassMap() { @@ -161,8 +154,7 @@ public function getClassMap() } /** - * @param string[] $classMap Class to filename map - * @psalm-param array $classMap + * @param array $classMap Class to filename map * * @return void */ @@ -179,24 +171,25 @@ public function addClassMap(array $classMap) * Registers a set of PSR-0 directories for a given prefix, either * appending or prepending to the ones previously set for this prefix. * - * @param string $prefix The prefix - * @param string[]|string $paths The PSR-0 root directories - * @param bool $prepend Whether to prepend the directories + * @param string $prefix The prefix + * @param list|string $paths The PSR-0 root directories + * @param bool $prepend Whether to prepend the directories * * @return void */ public function add($prefix, $paths, $prepend = false) { + $paths = (array) $paths; if (!$prefix) { if ($prepend) { $this->fallbackDirsPsr0 = array_merge( - (array) $paths, + $paths, $this->fallbackDirsPsr0 ); } else { $this->fallbackDirsPsr0 = array_merge( $this->fallbackDirsPsr0, - (array) $paths + $paths ); } @@ -205,19 +198,19 @@ public function add($prefix, $paths, $prepend = false) $first = $prefix[0]; if (!isset($this->prefixesPsr0[$first][$prefix])) { - $this->prefixesPsr0[$first][$prefix] = (array) $paths; + $this->prefixesPsr0[$first][$prefix] = $paths; return; } if ($prepend) { $this->prefixesPsr0[$first][$prefix] = array_merge( - (array) $paths, + $paths, $this->prefixesPsr0[$first][$prefix] ); } else { $this->prefixesPsr0[$first][$prefix] = array_merge( $this->prefixesPsr0[$first][$prefix], - (array) $paths + $paths ); } } @@ -226,9 +219,9 @@ public function add($prefix, $paths, $prepend = false) * Registers a set of PSR-4 directories for a given namespace, either * appending or prepending to the ones previously set for this namespace. * - * @param string $prefix The prefix/namespace, with trailing '\\' - * @param string[]|string $paths The PSR-4 base directories - * @param bool $prepend Whether to prepend the directories + * @param string $prefix The prefix/namespace, with trailing '\\' + * @param list|string $paths The PSR-4 base directories + * @param bool $prepend Whether to prepend the directories * * @throws \InvalidArgumentException * @@ -236,17 +229,18 @@ public function add($prefix, $paths, $prepend = false) */ public function addPsr4($prefix, $paths, $prepend = false) { + $paths = (array) $paths; if (!$prefix) { // Register directories for the root namespace. if ($prepend) { $this->fallbackDirsPsr4 = array_merge( - (array) $paths, + $paths, $this->fallbackDirsPsr4 ); } else { $this->fallbackDirsPsr4 = array_merge( $this->fallbackDirsPsr4, - (array) $paths + $paths ); } } elseif (!isset($this->prefixDirsPsr4[$prefix])) { @@ -256,18 +250,18 @@ public function addPsr4($prefix, $paths, $prepend = false) throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); } $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; - $this->prefixDirsPsr4[$prefix] = (array) $paths; + $this->prefixDirsPsr4[$prefix] = $paths; } elseif ($prepend) { // Prepend directories for an already registered namespace. $this->prefixDirsPsr4[$prefix] = array_merge( - (array) $paths, + $paths, $this->prefixDirsPsr4[$prefix] ); } else { // Append directories for an already registered namespace. $this->prefixDirsPsr4[$prefix] = array_merge( $this->prefixDirsPsr4[$prefix], - (array) $paths + $paths ); } } @@ -276,8 +270,8 @@ public function addPsr4($prefix, $paths, $prepend = false) * Registers a set of PSR-0 directories for a given prefix, * replacing any others previously set for this prefix. * - * @param string $prefix The prefix - * @param string[]|string $paths The PSR-0 base directories + * @param string $prefix The prefix + * @param list|string $paths The PSR-0 base directories * * @return void */ @@ -294,8 +288,8 @@ public function set($prefix, $paths) * Registers a set of PSR-4 directories for a given namespace, * replacing any others previously set for this namespace. * - * @param string $prefix The prefix/namespace, with trailing '\\' - * @param string[]|string $paths The PSR-4 base directories + * @param string $prefix The prefix/namespace, with trailing '\\' + * @param list|string $paths The PSR-4 base directories * * @throws \InvalidArgumentException * @@ -481,9 +475,9 @@ public function findFile($class) } /** - * Returns the currently registered loaders indexed by their corresponding vendor directories. + * Returns the currently registered loaders keyed by their corresponding vendor directories. * - * @return self[] + * @return array */ public static function getRegisteredLoaders() { diff --git a/plugnmeet/helpers/libs/plugnmeet-sdk-php/vendor/composer/autoload_classmap.php b/plugnmeet/helpers/libs/plugnmeet-sdk-php/vendor/composer/autoload_classmap.php index 1225922..da8ab54 100644 --- a/plugnmeet/helpers/libs/plugnmeet-sdk-php/vendor/composer/autoload_classmap.php +++ b/plugnmeet/helpers/libs/plugnmeet-sdk-php/vendor/composer/autoload_classmap.php @@ -35,6 +35,7 @@ 'Mynaparrot\\Plugnmeet\\Parameters\\DeleteRecordingParameters' => $baseDir . '/src/Parameters/DeleteRecordingParameters.php', 'Mynaparrot\\Plugnmeet\\Parameters\\DisplayExternalLinkFeaturesParameters' => $baseDir . '/src/Parameters/DisplayExternalLinkFeaturesParameters.php', 'Mynaparrot\\Plugnmeet\\Parameters\\EndRoomParameters' => $baseDir . '/src/Parameters/EndRoomParameters.php', + 'Mynaparrot\\Plugnmeet\\Parameters\\EndToEndEncryptionFeaturesParameters' => $baseDir . '/src/Parameters/EndToEndEncryptionFeaturesParameters.php', 'Mynaparrot\\Plugnmeet\\Parameters\\ExternalMediaPlayerFeaturesParameters' => $baseDir . '/src/Parameters/ExternalMediaPlayerFeaturesParameters.php', 'Mynaparrot\\Plugnmeet\\Parameters\\FetchRecordingsParameters' => $baseDir . '/src/Parameters/FetchRecordingsParameters.php', 'Mynaparrot\\Plugnmeet\\Parameters\\GenerateJoinTokenParameters' => $baseDir . '/src/Parameters/GenerateJoinTokenParameters.php', diff --git a/plugnmeet/helpers/libs/plugnmeet-sdk-php/vendor/composer/autoload_real.php b/plugnmeet/helpers/libs/plugnmeet-sdk-php/vendor/composer/autoload_real.php index 9281ac7..93358e8 100644 --- a/plugnmeet/helpers/libs/plugnmeet-sdk-php/vendor/composer/autoload_real.php +++ b/plugnmeet/helpers/libs/plugnmeet-sdk-php/vendor/composer/autoload_real.php @@ -2,7 +2,7 @@ // autoload_real.php @generated by Composer -class ComposerAutoloaderInitbdcf1e044f4f7e492f5246dedc8614fd +class ComposerAutoloaderInitc9bd71345d80e278cfb1d338867b60ea { private static $loader; @@ -22,16 +22,16 @@ public static function getLoader() return self::$loader; } - spl_autoload_register(array('ComposerAutoloaderInitbdcf1e044f4f7e492f5246dedc8614fd', 'loadClassLoader'), true, true); + spl_autoload_register(array('ComposerAutoloaderInitc9bd71345d80e278cfb1d338867b60ea', 'loadClassLoader'), true, true); self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); - spl_autoload_unregister(array('ComposerAutoloaderInitbdcf1e044f4f7e492f5246dedc8614fd', 'loadClassLoader')); + spl_autoload_unregister(array('ComposerAutoloaderInitc9bd71345d80e278cfb1d338867b60ea', 'loadClassLoader')); require __DIR__ . '/autoload_static.php'; - call_user_func(\Composer\Autoload\ComposerStaticInitbdcf1e044f4f7e492f5246dedc8614fd::getInitializer($loader)); + call_user_func(\Composer\Autoload\ComposerStaticInitc9bd71345d80e278cfb1d338867b60ea::getInitializer($loader)); $loader->register(true); - $filesToLoad = \Composer\Autoload\ComposerStaticInitbdcf1e044f4f7e492f5246dedc8614fd::$files; + $filesToLoad = \Composer\Autoload\ComposerStaticInitc9bd71345d80e278cfb1d338867b60ea::$files; $requireFile = \Closure::bind(static function ($fileIdentifier, $file) { if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true; diff --git a/plugnmeet/helpers/libs/plugnmeet-sdk-php/vendor/composer/autoload_static.php b/plugnmeet/helpers/libs/plugnmeet-sdk-php/vendor/composer/autoload_static.php index 9273594..a4ae565 100644 --- a/plugnmeet/helpers/libs/plugnmeet-sdk-php/vendor/composer/autoload_static.php +++ b/plugnmeet/helpers/libs/plugnmeet-sdk-php/vendor/composer/autoload_static.php @@ -4,7 +4,7 @@ namespace Composer\Autoload; -class ComposerStaticInitbdcf1e044f4f7e492f5246dedc8614fd +class ComposerStaticInitc9bd71345d80e278cfb1d338867b60ea { public static $files = array ( '23c18046f52bef3eea034657bafda50f' => __DIR__ . '/..' . '/symfony/polyfill-php81/bootstrap.php', @@ -98,6 +98,7 @@ class ComposerStaticInitbdcf1e044f4f7e492f5246dedc8614fd 'Mynaparrot\\Plugnmeet\\Parameters\\DeleteRecordingParameters' => __DIR__ . '/../..' . '/src/Parameters/DeleteRecordingParameters.php', 'Mynaparrot\\Plugnmeet\\Parameters\\DisplayExternalLinkFeaturesParameters' => __DIR__ . '/../..' . '/src/Parameters/DisplayExternalLinkFeaturesParameters.php', 'Mynaparrot\\Plugnmeet\\Parameters\\EndRoomParameters' => __DIR__ . '/../..' . '/src/Parameters/EndRoomParameters.php', + 'Mynaparrot\\Plugnmeet\\Parameters\\EndToEndEncryptionFeaturesParameters' => __DIR__ . '/../..' . '/src/Parameters/EndToEndEncryptionFeaturesParameters.php', 'Mynaparrot\\Plugnmeet\\Parameters\\ExternalMediaPlayerFeaturesParameters' => __DIR__ . '/../..' . '/src/Parameters/ExternalMediaPlayerFeaturesParameters.php', 'Mynaparrot\\Plugnmeet\\Parameters\\FetchRecordingsParameters' => __DIR__ . '/../..' . '/src/Parameters/FetchRecordingsParameters.php', 'Mynaparrot\\Plugnmeet\\Parameters\\GenerateJoinTokenParameters' => __DIR__ . '/../..' . '/src/Parameters/GenerateJoinTokenParameters.php', @@ -270,9 +271,9 @@ class ComposerStaticInitbdcf1e044f4f7e492f5246dedc8614fd public static function getInitializer(ClassLoader $loader) { return \Closure::bind(function () use ($loader) { - $loader->prefixLengthsPsr4 = ComposerStaticInitbdcf1e044f4f7e492f5246dedc8614fd::$prefixLengthsPsr4; - $loader->prefixDirsPsr4 = ComposerStaticInitbdcf1e044f4f7e492f5246dedc8614fd::$prefixDirsPsr4; - $loader->classMap = ComposerStaticInitbdcf1e044f4f7e492f5246dedc8614fd::$classMap; + $loader->prefixLengthsPsr4 = ComposerStaticInitc9bd71345d80e278cfb1d338867b60ea::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInitc9bd71345d80e278cfb1d338867b60ea::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInitc9bd71345d80e278cfb1d338867b60ea::$classMap; }, null, ClassLoader::class); } diff --git a/plugnmeet/helpers/libs/plugnmeet-sdk-php/vendor/composer/installed.json b/plugnmeet/helpers/libs/plugnmeet-sdk-php/vendor/composer/installed.json index e5c2b78..c0024de 100644 --- a/plugnmeet/helpers/libs/plugnmeet-sdk-php/vendor/composer/installed.json +++ b/plugnmeet/helpers/libs/plugnmeet-sdk-php/vendor/composer/installed.json @@ -65,17 +65,17 @@ }, { "name": "firebase/php-jwt", - "version": "v6.5.0", - "version_normalized": "6.5.0.0", + "version": "v6.8.0", + "version_normalized": "6.8.0.0", "source": { "type": "git", "url": "https://github.com/firebase/php-jwt.git", - "reference": "e94e7353302b0c11ec3cfff7180cd0b1743975d2" + "reference": "48b0210c51718d682e53210c24d25c5a10a2299b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/firebase/php-jwt/zipball/e94e7353302b0c11ec3cfff7180cd0b1743975d2", - "reference": "e94e7353302b0c11ec3cfff7180cd0b1743975d2", + "url": "https://api.github.com/repos/firebase/php-jwt/zipball/48b0210c51718d682e53210c24d25c5a10a2299b", + "reference": "48b0210c51718d682e53210c24d25c5a10a2299b", "shasum": "" }, "require": { @@ -93,7 +93,7 @@ "ext-sodium": "Support EdDSA (Ed25519) signatures", "paragonie/sodium_compat": "Support EdDSA (Ed25519) signatures when libsodium is not present" }, - "time": "2023-05-12T15:47:07+00:00", + "time": "2023-06-20T16:45:35+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -125,7 +125,7 @@ ], "support": { "issues": "https://github.com/firebase/php-jwt/issues", - "source": "https://github.com/firebase/php-jwt/tree/v6.5.0" + "source": "https://github.com/firebase/php-jwt/tree/v6.8.0" }, "install-path": "../firebase/php-jwt" }, diff --git a/plugnmeet/helpers/libs/plugnmeet-sdk-php/vendor/composer/installed.php b/plugnmeet/helpers/libs/plugnmeet-sdk-php/vendor/composer/installed.php index 694cf6d..3906129 100644 --- a/plugnmeet/helpers/libs/plugnmeet-sdk-php/vendor/composer/installed.php +++ b/plugnmeet/helpers/libs/plugnmeet-sdk-php/vendor/composer/installed.php @@ -1,8 +1,8 @@ array( 'name' => 'mynaparrot/plugnmeet-sdk', - 'pretty_version' => '1.2.5', - 'version' => '1.2.5.0', + 'pretty_version' => '1.3.0', + 'version' => '1.3.0.0', 'reference' => NULL, 'type' => 'library', 'install_path' => __DIR__ . '/../../', @@ -20,17 +20,17 @@ 'dev_requirement' => false, ), 'firebase/php-jwt' => array( - 'pretty_version' => 'v6.5.0', - 'version' => '6.5.0.0', - 'reference' => 'e94e7353302b0c11ec3cfff7180cd0b1743975d2', + 'pretty_version' => 'v6.8.0', + 'version' => '6.8.0.0', + 'reference' => '48b0210c51718d682e53210c24d25c5a10a2299b', 'type' => 'library', 'install_path' => __DIR__ . '/../firebase/php-jwt', 'aliases' => array(), 'dev_requirement' => false, ), 'mynaparrot/plugnmeet-sdk' => array( - 'pretty_version' => '1.2.5', - 'version' => '1.2.5.0', + 'pretty_version' => '1.3.0', + 'version' => '1.3.0.0', 'reference' => NULL, 'type' => 'library', 'install_path' => __DIR__ . '/../../', diff --git a/plugnmeet/helpers/libs/plugnmeet-sdk-php/vendor/composer/platform_check.php b/plugnmeet/helpers/libs/plugnmeet-sdk-php/vendor/composer/platform_check.php deleted file mode 100644 index 580fa96..0000000 --- a/plugnmeet/helpers/libs/plugnmeet-sdk-php/vendor/composer/platform_check.php +++ /dev/null @@ -1,26 +0,0 @@ -= 70400)) { - $issues[] = 'Your Composer dependencies require a PHP version ">= 7.4.0". You are running ' . PHP_VERSION . '.'; -} - -if ($issues) { - if (!headers_sent()) { - header('HTTP/1.1 500 Internal Server Error'); - } - if (!ini_get('display_errors')) { - if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') { - fwrite(STDERR, 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . implode(PHP_EOL, $issues) . PHP_EOL.PHP_EOL); - } elseif (!headers_sent()) { - echo 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . str_replace('You are running '.PHP_VERSION.'.', '', implode(PHP_EOL, $issues)) . PHP_EOL.PHP_EOL; - } - } - trigger_error( - 'Composer detected issues in your platform: ' . implode(' ', $issues), - E_USER_ERROR - ); -} diff --git a/plugnmeet/helpers/libs/plugnmeet-sdk-php/vendor/firebase/php-jwt/CHANGELOG.md b/plugnmeet/helpers/libs/plugnmeet-sdk-php/vendor/firebase/php-jwt/CHANGELOG.md index 35e97fe..9638f2d 100644 --- a/plugnmeet/helpers/libs/plugnmeet-sdk-php/vendor/firebase/php-jwt/CHANGELOG.md +++ b/plugnmeet/helpers/libs/plugnmeet-sdk-php/vendor/firebase/php-jwt/CHANGELOG.md @@ -1,5 +1,36 @@ # Changelog +## [6.8.0](https://github.com/firebase/php-jwt/compare/v6.7.0...v6.8.0) (2023-06-14) + + +### Features + +* add support for P-384 curve ([#515](https://github.com/firebase/php-jwt/issues/515)) ([5de4323](https://github.com/firebase/php-jwt/commit/5de4323f4baf4d70bca8663bd87682a69c656c3d)) + + +### Bug Fixes + +* handle invalid http responses ([#508](https://github.com/firebase/php-jwt/issues/508)) ([91c39c7](https://github.com/firebase/php-jwt/commit/91c39c72b22fc3e1191e574089552c1f2041c718)) + +## [6.7.0](https://github.com/firebase/php-jwt/compare/v6.6.0...v6.7.0) (2023-06-14) + + +### Features + +* add ed25519 support to JWK (public keys) ([#452](https://github.com/firebase/php-jwt/issues/452)) ([e53979a](https://github.com/firebase/php-jwt/commit/e53979abae927de916a75b9d239cfda8ce32be2a)) + +## [6.6.0](https://github.com/firebase/php-jwt/compare/v6.5.0...v6.6.0) (2023-06-13) + + +### Features + +* allow get headers when decoding token ([#442](https://github.com/firebase/php-jwt/issues/442)) ([fb85f47](https://github.com/firebase/php-jwt/commit/fb85f47cfaeffdd94faf8defdf07164abcdad6c3)) + + +### Bug Fixes + +* only check iat if nbf is not used ([#493](https://github.com/firebase/php-jwt/issues/493)) ([398ccd2](https://github.com/firebase/php-jwt/commit/398ccd25ea12fa84b9e4f1085d5ff448c21ec797)) + ## [6.5.0](https://github.com/firebase/php-jwt/compare/v6.4.0...v6.5.0) (2023-05-12) diff --git a/plugnmeet/helpers/libs/plugnmeet-sdk-php/vendor/firebase/php-jwt/README.md b/plugnmeet/helpers/libs/plugnmeet-sdk-php/vendor/firebase/php-jwt/README.md index f038266..701de23 100644 --- a/plugnmeet/helpers/libs/plugnmeet-sdk-php/vendor/firebase/php-jwt/README.md +++ b/plugnmeet/helpers/libs/plugnmeet-sdk-php/vendor/firebase/php-jwt/README.md @@ -45,9 +45,12 @@ $payload = [ */ $jwt = JWT::encode($payload, $key, 'HS256'); $decoded = JWT::decode($jwt, new Key($key, 'HS256')); - print_r($decoded); +// Pass a stdClass in as the third parameter to get the decoded header values +$decoded = JWT::decode($jwt, new Key($key, 'HS256'), $headers = new stdClass()); +print_r($headers); + /* NOTE: This will now be an object instead of an associative array. To get an associative array, you will need to cast it as such: @@ -70,8 +73,8 @@ Example encode/decode headers Decoding the JWT headers without verifying the JWT first is NOT recommended, and is not supported by this library. This is because without verifying the JWT, the header values could have been tampered with. Any value pulled from an unverified header should be treated as if it could be any string sent in from an -attacker. If this is something you still want to do in your application for whatever reason, it's possible to -decode the header values manually simply by calling `json_decode` and `base64_decode` on the JWT +attacker. If this is something you still want to do in your application for whatever reason, it's possible to +decode the header values manually simply by calling `json_decode` and `base64_decode` on the JWT header part: ```php use Firebase\JWT\JWT; @@ -373,6 +376,8 @@ All exceptions in the `Firebase\JWT` namespace extend `UnexpectedValueException` like this: ```php +use Firebase\JWT\JWT; +use UnexpectedValueException; try { $decoded = JWT::decode($payload, $keys); } catch (LogicException $e) { diff --git a/plugnmeet/helpers/libs/plugnmeet-sdk-php/vendor/firebase/php-jwt/src/CachedKeySet.php b/plugnmeet/helpers/libs/plugnmeet-sdk-php/vendor/firebase/php-jwt/src/CachedKeySet.php index baf801f..ee529f9 100644 --- a/plugnmeet/helpers/libs/plugnmeet-sdk-php/vendor/firebase/php-jwt/src/CachedKeySet.php +++ b/plugnmeet/helpers/libs/plugnmeet-sdk-php/vendor/firebase/php-jwt/src/CachedKeySet.php @@ -178,6 +178,16 @@ private function keyIdExists(string $keyId): bool } $request = $this->httpFactory->createRequest('GET', $this->jwksUri); $jwksResponse = $this->httpClient->sendRequest($request); + if ($jwksResponse->getStatusCode() !== 200) { + throw new UnexpectedValueException( + sprintf('HTTP Error: %d %s for URI "%s"', + $jwksResponse->getStatusCode(), + $jwksResponse->getReasonPhrase(), + $this->jwksUri, + ), + $jwksResponse->getStatusCode() + ); + } $this->keySet = $this->formatJwksForCache((string) $jwksResponse->getBody()); if (!isset($this->keySet[$keyId])) { diff --git a/plugnmeet/helpers/libs/plugnmeet-sdk-php/vendor/firebase/php-jwt/src/JWK.php b/plugnmeet/helpers/libs/plugnmeet-sdk-php/vendor/firebase/php-jwt/src/JWK.php index c7eff8a..63fb248 100644 --- a/plugnmeet/helpers/libs/plugnmeet-sdk-php/vendor/firebase/php-jwt/src/JWK.php +++ b/plugnmeet/helpers/libs/plugnmeet-sdk-php/vendor/firebase/php-jwt/src/JWK.php @@ -27,10 +27,16 @@ class JWK private const EC_CURVES = [ 'P-256' => '1.2.840.10045.3.1.7', // Len: 64 'secp256k1' => '1.3.132.0.10', // Len: 64 - // 'P-384' => '1.3.132.0.34', // Len: 96 (not yet supported) + 'P-384' => '1.3.132.0.34', // Len: 96 // 'P-521' => '1.3.132.0.35', // Len: 132 (not supported) ]; + // For keys with "kty" equal to "OKP" (Octet Key Pair), the "crv" parameter must contain the key subtype. + // This library supports the following subtypes: + private const OKP_SUBTYPES = [ + 'Ed25519' => true, // RFC 8037 + ]; + /** * Parse a set of JWK keys * @@ -145,8 +151,28 @@ public static function parseKey(array $jwk, string $defaultAlg = null): ?Key $publicKey = self::createPemFromCrvAndXYCoordinates($jwk['crv'], $jwk['x'], $jwk['y']); return new Key($publicKey, $jwk['alg']); + case 'OKP': + if (isset($jwk['d'])) { + // The key is actually a private key + throw new UnexpectedValueException('Key data must be for a public key'); + } + + if (!isset($jwk['crv'])) { + throw new UnexpectedValueException('crv not set'); + } + + if (empty(self::OKP_SUBTYPES[$jwk['crv']])) { + throw new DomainException('Unrecognised or unsupported OKP key subtype'); + } + + if (empty($jwk['x'])) { + throw new UnexpectedValueException('x not set'); + } + + // This library works internally with EdDSA keys (Ed25519) encoded in standard base64. + $publicKey = JWT::convertBase64urlToBase64($jwk['x']); + return new Key($publicKey, $jwk['alg']); default: - // Currently only RSA is supported break; } @@ -156,7 +182,7 @@ public static function parseKey(array $jwk, string $defaultAlg = null): ?Key /** * Converts the EC JWK values to pem format. * - * @param string $crv The EC curve (only P-256 is supported) + * @param string $crv The EC curve (only P-256 & P-384 is supported) * @param string $x The EC x-coordinate * @param string $y The EC y-coordinate * diff --git a/plugnmeet/helpers/libs/plugnmeet-sdk-php/vendor/firebase/php-jwt/src/JWT.php b/plugnmeet/helpers/libs/plugnmeet-sdk-php/vendor/firebase/php-jwt/src/JWT.php index c83ff09..56cb931 100644 --- a/plugnmeet/helpers/libs/plugnmeet-sdk-php/vendor/firebase/php-jwt/src/JWT.php +++ b/plugnmeet/helpers/libs/plugnmeet-sdk-php/vendor/firebase/php-jwt/src/JWT.php @@ -78,6 +78,7 @@ class JWT * Supported algorithms are 'ES384','ES256', * 'HS256', 'HS384', 'HS512', 'RS256', 'RS384' * and 'RS512'. + * @param stdClass $headers Optional. Populates stdClass with headers. * * @return stdClass The JWT's payload as a PHP object * @@ -94,7 +95,8 @@ class JWT */ public static function decode( string $jwt, - $keyOrKeyArray + $keyOrKeyArray, + stdClass &$headers = null ): stdClass { // Validate JWT $timestamp = \is_null(static::$timestamp) ? \time() : static::$timestamp; @@ -111,6 +113,9 @@ public static function decode( if (null === ($header = static::jsonDecode($headerRaw))) { throw new UnexpectedValueException('Invalid header encoding'); } + if ($headers !== null) { + $headers = $header; + } $payloadRaw = static::urlsafeB64Decode($bodyb64); if (null === ($payload = static::jsonDecode($payloadRaw))) { throw new UnexpectedValueException('Invalid claims encoding'); @@ -156,7 +161,7 @@ public static function decode( // Check that this token has been created before 'now'. This prevents // using tokens that have been created for later use (and haven't // correctly used the nbf claim). - if (isset($payload->iat) && $payload->iat > ($timestamp + static::$leeway)) { + if (!isset($payload->nbf) && isset($payload->iat) && $payload->iat > ($timestamp + static::$leeway)) { throw new BeforeValidException( 'Cannot handle token prior to ' . \date(DateTime::ISO8601, $payload->iat) ); @@ -215,7 +220,7 @@ public static function encode( * * @param string $msg The message to sign * @param string|resource|OpenSSLAsymmetricKey|OpenSSLCertificate $key The secret key. - * @param string $alg Supported algorithms are 'ES384','ES256', 'ES256K', 'HS256', + * @param string $alg Supported algorithms are 'EdDSA', 'ES384', 'ES256', 'ES256K', 'HS256', * 'HS384', 'HS512', 'RS256', 'RS384', and 'RS512' * * @return string An encrypted message @@ -278,7 +283,7 @@ public static function sign( * * @param string $msg The original message (header and body) * @param string $signature The original signature - * @param string|resource|OpenSSLAsymmetricKey|OpenSSLCertificate $keyMaterial For HS*, a string key works. for RS*, must be an instance of OpenSSLAsymmetricKey + * @param string|resource|OpenSSLAsymmetricKey|OpenSSLCertificate $keyMaterial For Ed*, ES*, HS*, a string key works. for RS*, must be an instance of OpenSSLAsymmetricKey * @param string $alg The algorithm * * @return bool @@ -399,13 +404,28 @@ public static function jsonEncode(array $input): string * @throws InvalidArgumentException invalid base64 characters */ public static function urlsafeB64Decode(string $input): string + { + return \base64_decode(self::convertBase64UrlToBase64($input)); + } + + /** + * Convert a string in the base64url (URL-safe Base64) encoding to standard base64. + * + * @param string $input A Base64 encoded string with URL-safe characters (-_ and no padding) + * + * @return string A Base64 encoded string with standard characters (+/) and padding (=), when + * needed. + * + * @see https://www.rfc-editor.org/rfc/rfc4648 + */ + public static function convertBase64UrlToBase64(string $input): string { $remainder = \strlen($input) % 4; if ($remainder) { $padlen = 4 - $remainder; $input .= \str_repeat('=', $padlen); } - return \base64_decode(\strtr($input, '-_', '+/')); + return \strtr($input, '-_', '+/'); } /** diff --git a/plugnmeet/helpers/plugNmeetConnect.php b/plugnmeet/helpers/plugNmeetConnect.php index 4b22486..b833f76 100644 --- a/plugnmeet/helpers/plugNmeetConnect.php +++ b/plugnmeet/helpers/plugNmeetConnect.php @@ -27,6 +27,7 @@ use Mynaparrot\Plugnmeet\Parameters\DeleteRecordingParameters; use Mynaparrot\Plugnmeet\Parameters\DisplayExternalLinkFeaturesParameters; use Mynaparrot\Plugnmeet\Parameters\EndRoomParameters; +use Mynaparrot\Plugnmeet\Parameters\EndToEndEncryptionFeaturesParameters; use Mynaparrot\Plugnmeet\Parameters\ExternalMediaPlayerFeaturesParameters; use Mynaparrot\Plugnmeet\Parameters\FetchRecordingsParameters; use Mynaparrot\Plugnmeet\Parameters\GenerateJoinTokenParameters; @@ -260,6 +261,15 @@ public function createRoom( string $roomId, string $roomTitle, string $welcomeMe $features->setSpeechToTextTranslationFeatures( $speechToTextTranslationFeatures ); } + if (isset($roomMetadata['end_to_end_encryption_features'])) { + $roomEndToEndEncryptionFeatures = $roomMetadata['end_to_end_encryption_features']; + $endToEndEncryptionFeatures = new EndToEndEncryptionFeaturesParameters(); + if (isset($roomEndToEndEncryptionFeatures['is_enabled'])) { + $endToEndEncryptionFeatures->setIsEnable($roomEndToEndEncryptionFeatures['is_enabled']); + } + $features->setEndToEndEncryptionFeatures($endToEndEncryptionFeatures); + } + $metadata = new RoomMetadataParameters(); $metadata->setRoomTitle( $roomTitle ); $metadata->setWelcomeMessage( $welcomeMessage ); diff --git a/plugnmeet/languages/plugnmeet.pot b/plugnmeet/languages/plugnmeet.pot index efab6d7..1f7d984 100755 --- a/plugnmeet/languages/plugnmeet.pot +++ b/plugnmeet/languages/plugnmeet.pot @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-05-31 14:07+0000\n" +"POT-Creation-Date: 2023-07-17 04:53+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: \n" "Language-Team: \n" @@ -18,7 +18,7 @@ msgstr "" msgid " can't be empty." msgstr "" -#: helpers/helper.php:460 +#: helpers/helper.php:477 msgid "Activate waiting room" msgstr "" @@ -26,23 +26,23 @@ msgstr "" msgid "Add New" msgstr "" -#: helpers/helper.php:203 +#: helpers/helper.php:220 msgid "Admin only webcams" msgstr "" -#: helpers/helper.php:492 +#: helpers/helper.php:509 msgid "Allow breakout rooms" msgstr "" -#: helpers/helper.php:337 +#: helpers/helper.php:354 msgid "Allow chat" msgstr "" -#: helpers/helper.php:280 +#: helpers/helper.php:297 msgid "Allow cloud recording" msgstr "" -#: helpers/helper.php:551 +#: helpers/helper.php:568 msgid "Allow create ingress" msgstr "" @@ -50,7 +50,7 @@ msgstr "" msgid "Allow Delete
Recordings" msgstr "" -#: helpers/helper.php:524 +#: helpers/helper.php:541 msgid "Allow Display External Link" msgstr "" @@ -58,15 +58,15 @@ msgstr "" msgid "Allow Download
Recordings" msgstr "" -#: helpers/helper.php:433 +#: helpers/helper.php:450 msgid "Allow external media player" msgstr "" -#: helpers/helper.php:352 +#: helpers/helper.php:369 msgid "Allow file upload" msgstr "" -#: helpers/helper.php:310 +#: helpers/helper.php:327 msgid "Allow local recording" msgstr "" @@ -74,31 +74,31 @@ msgstr "" msgid "Allow Play
Recordings" msgstr "" -#: helpers/helper.php:218 +#: helpers/helper.php:235 msgid "Allow polls" msgstr "" -#: helpers/helper.php:265 +#: helpers/helper.php:282 msgid "Allow recording" msgstr "" -#: helpers/helper.php:158 +#: helpers/helper.php:175 msgid "Allow rtmp" msgstr "" -#: helpers/helper.php:143 +#: helpers/helper.php:160 msgid "Allow screen share" msgstr "" -#: helpers/helper.php:379 +#: helpers/helper.php:396 msgid "Allow shared notepad" msgstr "" -#: helpers/helper.php:578 +#: helpers/helper.php:595 msgid "Allow speech to text/translation feature" msgstr "" -#: helpers/helper.php:593 +#: helpers/helper.php:610 msgid "Allow translation" msgstr "" @@ -106,19 +106,19 @@ msgstr "" msgid "Allow View
Recordings" msgstr "" -#: helpers/helper.php:188 +#: helpers/helper.php:205 msgid "Allow view other users list" msgstr "" -#: helpers/helper.php:173 +#: helpers/helper.php:190 msgid "Allow view other webcams" msgstr "" -#: helpers/helper.php:113 +#: helpers/helper.php:130 msgid "Allow webcams" msgstr "" -#: helpers/helper.php:406 +#: helpers/helper.php:423 msgid "Allow whiteboard" msgstr "" @@ -127,7 +127,7 @@ msgstr "" msgid "Are you sure to delete?" msgstr "" -#: admin/class-plugnmeet-admin.php:293 +#: admin/class-plugnmeet-admin.php:277 msgid "attendee & moderator password can't be same" msgstr "" @@ -215,7 +215,7 @@ msgstr "" msgid "Download" msgstr "" -#: helpers/helper.php:295 +#: helpers/helper.php:312 msgid "Enable auto cloud recording" msgstr "" @@ -223,6 +223,10 @@ msgstr "" msgid "Enable Dynacast" msgstr "" +#: helpers/helper.php:637 +msgid "Enable End To End Encryption (E2EE)" +msgstr "" + #: admin/class-plugnmeet-settings-page.php:250 msgid "Enable Simulcast" msgstr "" @@ -286,39 +290,39 @@ msgstr "" msgid "Local client download url" msgstr "" -#: helpers/helper.php:695 +#: helpers/helper.php:739 msgid "Lock chat" msgstr "" -#: helpers/helper.php:725 +#: helpers/helper.php:769 msgid "Lock chat file share" msgstr "" -#: helpers/helper.php:710 +#: helpers/helper.php:754 msgid "Lock chat send message" msgstr "" -#: helpers/helper.php:620 +#: helpers/helper.php:664 msgid "Lock microphone" msgstr "" -#: helpers/helper.php:740 +#: helpers/helper.php:784 msgid "Lock private chat" msgstr "" -#: helpers/helper.php:650 +#: helpers/helper.php:694 msgid "Lock screen sharing" msgstr "" -#: helpers/helper.php:680 +#: helpers/helper.php:724 msgid "Lock shared notepad" msgstr "" -#: helpers/helper.php:635 +#: helpers/helper.php:679 msgid "Lock webcam" msgstr "" -#: helpers/helper.php:665 +#: helpers/helper.php:709 msgid "Lock whiteboard" msgstr "" @@ -347,7 +351,7 @@ msgstr "" msgid "Meeting date" msgstr "" -#: helpers/helper.php:238 +#: helpers/helper.php:255 msgid "Moderator join first" msgstr "" @@ -356,7 +360,7 @@ msgstr "" msgid "Moderator Password" msgstr "" -#: helpers/helper.php:128 +#: helpers/helper.php:145 msgid "Mute on start" msgstr "" @@ -376,30 +380,31 @@ msgstr "" msgid "Next page" msgstr "" -#: helpers/helper.php:120 helpers/helper.php:135 helpers/helper.php:150 -#: helpers/helper.php:165 helpers/helper.php:180 helpers/helper.php:195 -#: helpers/helper.php:210 helpers/helper.php:225 helpers/helper.php:245 -#: helpers/helper.php:272 helpers/helper.php:287 helpers/helper.php:302 -#: helpers/helper.php:317 helpers/helper.php:344 helpers/helper.php:359 -#: helpers/helper.php:386 helpers/helper.php:413 helpers/helper.php:440 -#: helpers/helper.php:467 helpers/helper.php:499 helpers/helper.php:531 -#: helpers/helper.php:558 helpers/helper.php:585 helpers/helper.php:600 -#: helpers/helper.php:627 helpers/helper.php:642 helpers/helper.php:657 -#: helpers/helper.php:672 helpers/helper.php:687 helpers/helper.php:702 -#: helpers/helper.php:717 helpers/helper.php:732 helpers/helper.php:747 +#: helpers/helper.php:137 helpers/helper.php:152 helpers/helper.php:167 +#: helpers/helper.php:182 helpers/helper.php:197 helpers/helper.php:212 +#: helpers/helper.php:227 helpers/helper.php:242 helpers/helper.php:262 +#: helpers/helper.php:289 helpers/helper.php:304 helpers/helper.php:319 +#: helpers/helper.php:334 helpers/helper.php:361 helpers/helper.php:376 +#: helpers/helper.php:403 helpers/helper.php:430 helpers/helper.php:457 +#: helpers/helper.php:484 helpers/helper.php:516 helpers/helper.php:548 +#: helpers/helper.php:575 helpers/helper.php:602 helpers/helper.php:617 +#: helpers/helper.php:644 helpers/helper.php:671 helpers/helper.php:686 +#: helpers/helper.php:701 helpers/helper.php:716 helpers/helper.php:731 +#: helpers/helper.php:746 helpers/helper.php:761 helpers/helper.php:776 +#: helpers/helper.php:791 msgid "No" msgstr "" -#: admin/class-plugnmeet-admin.php:376 +#: admin/class-plugnmeet-admin.php:360 msgid "No id was sent" msgstr "" -#: public/class-plugnmeet-public.php:280 helpers/ajaxHelper.php:173 -#: helpers/ajaxHelper.php:310 +#: helpers/ajaxHelper.php:173 helpers/ajaxHelper.php:310 +#: public/class-plugnmeet-public.php:280 msgid "no room found" msgstr "" -#: helpers/helper.php:507 +#: helpers/helper.php:524 msgid "Number of rooms" msgstr "" @@ -505,7 +510,7 @@ msgstr "" msgid "Room description" msgstr "" -#: helpers/helper.php:233 +#: helpers/helper.php:250 msgid "Room duration (In minutes, 0 = unlimited)" msgstr "" @@ -517,7 +522,7 @@ msgstr "" msgid "Room Id" msgstr "" -#: public/class-plugnmeet-public.php:115 helpers/ajaxHelper.php:156 +#: helpers/ajaxHelper.php:156 public/class-plugnmeet-public.php:115 msgid "room Id is missing" msgstr "" @@ -529,7 +534,7 @@ msgstr "" msgid "room not active" msgstr "" -#: helpers/helper.php:777 +#: helpers/helper.php:821 msgid "Room Status" msgstr "" @@ -597,11 +602,11 @@ msgstr "" msgid "Submit" msgstr "" -#: admin/class-plugnmeet-admin.php:327 +#: admin/class-plugnmeet-admin.php:311 msgid "Successfully saved room data" msgstr "" -#: admin/class-plugnmeet-admin.php:357 +#: admin/class-plugnmeet-admin.php:341 msgid "Successfully updated room data" msgstr "" @@ -609,10 +614,10 @@ msgstr "" msgid "The meeting has not started yet, please come back later." msgstr "" -#: helpers/ajaxHelper.php:24 helpers/ajaxHelper.php:64 -#: helpers/ajaxHelper.php:105 helpers/ajaxHelper.php:145 #: admin/class-plugnmeet-admin.php:159 admin/class-plugnmeet-admin.php:236 -#: admin/class-plugnmeet-admin.php:368 +#: admin/class-plugnmeet-admin.php:352 helpers/ajaxHelper.php:24 +#: helpers/ajaxHelper.php:64 helpers/ajaxHelper.php:105 +#: helpers/ajaxHelper.php:145 msgid "Token mismatched" msgstr "" @@ -646,7 +651,7 @@ msgstr "" msgid "Video Codec" msgstr "" -#: helpers/helper.php:475 +#: helpers/helper.php:492 msgid "Waiting room message" msgstr "" @@ -658,17 +663,18 @@ msgstr "" msgid "Welcome Message" msgstr "" -#: helpers/helper.php:116 helpers/helper.php:131 helpers/helper.php:146 -#: helpers/helper.php:161 helpers/helper.php:176 helpers/helper.php:191 -#: helpers/helper.php:206 helpers/helper.php:221 helpers/helper.php:241 -#: helpers/helper.php:268 helpers/helper.php:283 helpers/helper.php:298 -#: helpers/helper.php:313 helpers/helper.php:340 helpers/helper.php:355 -#: helpers/helper.php:382 helpers/helper.php:409 helpers/helper.php:436 -#: helpers/helper.php:463 helpers/helper.php:495 helpers/helper.php:527 -#: helpers/helper.php:554 helpers/helper.php:581 helpers/helper.php:596 -#: helpers/helper.php:623 helpers/helper.php:638 helpers/helper.php:653 -#: helpers/helper.php:668 helpers/helper.php:683 helpers/helper.php:698 -#: helpers/helper.php:713 helpers/helper.php:728 helpers/helper.php:743 +#: helpers/helper.php:133 helpers/helper.php:148 helpers/helper.php:163 +#: helpers/helper.php:178 helpers/helper.php:193 helpers/helper.php:208 +#: helpers/helper.php:223 helpers/helper.php:238 helpers/helper.php:258 +#: helpers/helper.php:285 helpers/helper.php:300 helpers/helper.php:315 +#: helpers/helper.php:330 helpers/helper.php:357 helpers/helper.php:372 +#: helpers/helper.php:399 helpers/helper.php:426 helpers/helper.php:453 +#: helpers/helper.php:480 helpers/helper.php:512 helpers/helper.php:544 +#: helpers/helper.php:571 helpers/helper.php:598 helpers/helper.php:613 +#: helpers/helper.php:640 helpers/helper.php:667 helpers/helper.php:682 +#: helpers/helper.php:697 helpers/helper.php:712 helpers/helper.php:727 +#: helpers/helper.php:742 helpers/helper.php:757 helpers/helper.php:772 +#: helpers/helper.php:787 msgid "Yes" msgstr "" diff --git a/plugnmeet/plugnmeet.php b/plugnmeet/plugnmeet.php index 8e5ff9b..6375948 100644 --- a/plugnmeet/plugnmeet.php +++ b/plugnmeet/plugnmeet.php @@ -15,7 +15,7 @@ * Plugin Name: Plug-N-Meet web conference integration * Plugin URI: https://github.com/mynaparrot/plugNmeet-WordPress * Description: Plug-N-Meet web conference integration with WordPress - * Version: 1.2.3 + * Version: 1.2.4 * Author: Jibon L. Costa * Requires at least: 5.9 * Requires PHP: 7.4.0 @@ -37,7 +37,7 @@ * Start at version 1.0.0 and use SemVer - https://semver.org * Rename this for your plugin and update it as you release new versions. */ -define( 'PLUGNMEET_VERSION', '1.2.3' ); +define( 'PLUGNMEET_VERSION', '1.2.4' ); /** * Define the Plugin basename