diff --git a/.env b/.env new file mode 100644 index 0000000..888d2d0 --- /dev/null +++ b/.env @@ -0,0 +1,12 @@ +APP_ENV=test +PHP=php +SYMFONY=symfony +COMPOSER=composer + +# use .env.local to override, example: + +# PHP with xdebug: +# PHP=php -dxdebug.start_with_request=yes -dxdebug.mode=debug + +# PHP using docker and xdebug: +#PHP=docker run -it --rm --user $$(id -u):$$(id -g) -v "$$PWD":/usr/src/myapp -w /usr/src/myapp php:8.4.0beta5-cli php -dxdebug.start_with_request=yes -dxdebug.mode=debug diff --git a/.gitignore b/.gitignore index fefb1ee..155d383 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,9 @@ composer.lock -vendor/ +vendor .phpunit.cache tools .php-cs-fixer.cache var rector.log +.env.local +.vscode diff --git a/.php-cs-fixer.dist.php b/.php-cs-fixer.dist.php index b554687..fd31b79 100644 --- a/.php-cs-fixer.dist.php +++ b/.php-cs-fixer.dist.php @@ -2,7 +2,7 @@ $finder = PhpCsFixer\Finder::create() ->in(__DIR__ . '/packages') - ->in(__DIR__ . '/tests') + ->in(__DIR__ . '/tests/src') ; @@ -10,7 +10,9 @@ return $config->setRules([ '@PER-CS2.0' => true, '@PER-CS2.0:risky' => true, - 'fully_qualified_strict_types' => true, + 'fully_qualified_strict_types' => [ + 'import_symbols' => true, + ], 'global_namespace_import' => [ 'import_classes' => false, 'import_constants' => false, diff --git a/CHANGELOG.md b/CHANGELOG.md index 3e562dd..0aa0be6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # CHANGELOG +## 1.11.0 + +* test: modernization +* fix(filepond): clear field class, fix issues with Bootstrap 4 +* fix(filepond): also clear style attribute just in case + ## 1.10.2 * chore: cleanup `composer.json` diff --git a/Makefile b/Makefile index d7af4c3..e2a8590 100644 --- a/Makefile +++ b/Makefile @@ -1,3 +1,8 @@ +include .env +-include .env.local + +export APP_ENV + .PHONY: all all: test @@ -10,16 +15,17 @@ test: composer-dump composer-validate phpstan psalm phpunit .PHONY: phpstan phpstan: - vendor/bin/phpstan analyse + $(PHP) vendor/bin/phpstan analyse .PHONY: psalm psalm: - vendor/bin/psalm + $(PHP) vendor/bin/psalm .PHONY: phpunit phpunit: $(eval c ?=) - vendor/bin/phpunit $(c) + rm -rf tests/var + $(PHP) vendor/bin/phpunit $(c) .PHONY: composer-dump composer-dump: @@ -31,7 +37,7 @@ composer-validate: .PHONY: php-cs-fixer php-cs-fixer: tools/php-cs-fixer - $< fix --config=.php-cs-fixer.dist.php --verbose --allow-risky=yes + $(PHP) $< fix --config=.php-cs-fixer.dist.php --verbose --allow-risky=yes .PHONY: tools/php-cs-fixer tools/php-cs-fixer: @@ -61,3 +67,11 @@ monorepo-release-%: git switch -c release/$* git add . git commit -m "release: $*" + +.PHONY: serve +serve: + $(PHP) tests/bin/console cache:clear + $(PHP) tests/bin/console importmap:install + $(PHP) tests/bin/console asset-map:compile + $(PHP) tests/bin/console asset:install tests/public/ + cd tests && sh -c "$(SYMFONY) server:start --document-root=public" diff --git a/composer.json b/composer.json index a2b693d..62f782b 100644 --- a/composer.json +++ b/composer.json @@ -1,15 +1,15 @@ { "name": "rekalogika/file-src", "description": "Monorepo for rekalogika/file and related packages", + "homepage": "https://rekalogika.dev/file", "license": "MIT", - "type": "project", "authors": [ { "name": "Priyadi Iman Nurcahyo", "email": "priyadi@rekalogika.com" } ], - "homepage": "https://rekalogika.dev/file", + "type": "project", "require": { "cardinalby/content-disposition": "^1.1", "doctrine/collections": "^2.0", @@ -22,7 +22,7 @@ "league/mime-type-detection": "^1.0.0", "maennchen/zipstream-php": "^3.1", "nyholm/psr7": "^1.8", - "oneup/uploader-bundle": "^4.0", + "oneup/uploader-bundle": "^5.0", "php": "^8.1", "php-http/discovery": "^1.15", "psr/container": "^2.0", @@ -53,7 +53,7 @@ "ekino/phpstan-banned-code": "^2.1", "league/flysystem-memory": "^3.16", "mockery/mockery": "^1.6", - "phpstan/phpstan": "1.12.2 || ^1.12.4 || ^1.13", + "phpstan/phpstan": "^1.12.5 || ^1.13", "phpstan/phpstan-deprecation-rules": "^1.1", "phpstan/phpstan-mockery": "^1.1", "phpstan/phpstan-phpunit": "^1.3", @@ -61,36 +61,27 @@ "psalm/plugin-mockery": "^1.1", "psalm/plugin-phpunit": "^0.19.0", "rector/rector": "^1.2", + "symfony/asset": "^6.2 || ^7.0", "symfony/asset-mapper": "^6.2 || ^7.0", "symfony/console": "^6.2 || ^7.0", + "symfony/debug-bundle": "^6.2 || ^7.0", + "symfony/dotenv": "^6.2 || ^7.0", "symfony/framework-bundle": "^6.2 || ^7.0", "symfony/http-client": "^6.2 || ^7.0", + "symfony/maker-bundle": "^1.55", + "symfony/monolog-bundle": "^3.0", "symfony/phpunit-bridge": "^6.3 || ^7.0", "symfony/property-info": "^6.2 || ^7.0", "symfony/routing": "^6.2 || ^7.0", + "symfony/runtime": "^6.2 || ^7.0", + "symfony/twig-bundle": "^6.2 || ^7.0", + "symfony/ux-turbo": "^2.20", + "symfony/web-profiler-bundle": "^6.2 || ^7.0", "symfony/yaml": "^6.2 || ^7.0", "symplify/monorepo-builder": "^11.2.20 || ^11.3", + "twig/extra-bundle": "^2.12|^3.0", "vimeo/psalm": "^5.26" }, - "replace": { - "rekalogika/file": "1.10.1", - "rekalogika/file-association": "1.10.1", - "rekalogika/file-association-contracts": "1.10.1", - "rekalogika/file-association-entity": "1.10.1", - "rekalogika/file-bundle": "1.10.1", - "rekalogika/file-contracts": "1.10.1", - "rekalogika/file-derivation": "1.10.1", - "rekalogika/file-filepond": "1.10.1", - "rekalogika/file-image": "1.10.1", - "rekalogika/file-metadata": "1.10.1", - "rekalogika/file-metadata-contracts": "1.10.1", - "rekalogika/file-null": "1.10.1", - "rekalogika/file-oneup-uploader-bridge": "1.10.1", - "rekalogika/file-server": "1.10.1", - "rekalogika/file-symfony-bridge": "1.10.1", - "rekalogika/file-tree-contracts": "1.10.1", - "rekalogika/file-zip": "1.10.1" - }, "autoload": { "psr-4": { "Rekalogika\\Contracts\\File\\": "packages/file-contracts/src/", @@ -115,12 +106,32 @@ }, "autoload-dev": { "psr-4": { - "Rekalogika\\File\\Tests\\": "tests/" + "Rekalogika\\File\\Tests\\": "tests/src/" } }, "config": { "allow-plugins": { - "php-http/discovery": true + "php-http/discovery": true, + "symfony/runtime": true } + }, + "replace": { + "rekalogika/file": "1.11.0", + "rekalogika/file-association": "1.11.0", + "rekalogika/file-association-contracts": "1.11.0", + "rekalogika/file-association-entity": "1.11.0", + "rekalogika/file-bundle": "1.11.0", + "rekalogika/file-contracts": "1.11.0", + "rekalogika/file-derivation": "1.11.0", + "rekalogika/file-filepond": "1.11.0", + "rekalogika/file-image": "1.11.0", + "rekalogika/file-metadata": "1.11.0", + "rekalogika/file-metadata-contracts": "1.11.0", + "rekalogika/file-null": "1.11.0", + "rekalogika/file-oneup-uploader-bridge": "1.11.0", + "rekalogika/file-server": "1.11.0", + "rekalogika/file-symfony-bridge": "1.11.0", + "rekalogika/file-tree-contracts": "1.11.0", + "rekalogika/file-zip": "1.11.0" } } diff --git a/packages/file-association-contracts/composer.json b/packages/file-association-contracts/composer.json index 3132917..8197597 100644 --- a/packages/file-association-contracts/composer.json +++ b/packages/file-association-contracts/composer.json @@ -23,7 +23,7 @@ }, "extra": { "branch-alias": { - "dev-main": "1.11-dev" + "dev-main": "1.12-dev" } } } diff --git a/packages/file-association-entity/composer.json b/packages/file-association-entity/composer.json index be520fb..a554604 100644 --- a/packages/file-association-entity/composer.json +++ b/packages/file-association-entity/composer.json @@ -27,14 +27,14 @@ }, "require": { "doctrine/collections": "^2.0", - "rekalogika/file-contracts": "^1.10.1", - "rekalogika/file-metadata": "^1.10.1", - "rekalogika/file-null": "^1.10.1", + "rekalogika/file-contracts": "^1.11", + "rekalogika/file-metadata": "^1.11", + "rekalogika/file-null": "^1.11", "rekalogika/doctrine-collections-decorator": "^2.0" }, "extra": { "branch-alias": { - "dev-main": "1.11-dev" + "dev-main": "1.12-dev" } } } diff --git a/packages/file-association/composer.json b/packages/file-association/composer.json index 4067d83..06854b5 100644 --- a/packages/file-association/composer.json +++ b/packages/file-association/composer.json @@ -27,14 +27,14 @@ }, "require": { "rekalogika/direct-property-access": "^1.1.2 || ^1.2", - "rekalogika/file-association-contracts": "^1.10.1", - "rekalogika/file-contracts": "^1.10.1", + "rekalogika/file-association-contracts": "^1.11", + "rekalogika/file-contracts": "^1.11", "rekalogika/reconstitutor": "^1.3.2 || ^1.4", "symfony/property-access": "^6.2 || ^7.0" }, "extra": { "branch-alias": { - "dev-main": "1.11-dev" + "dev-main": "1.12-dev" } } } diff --git a/packages/file-bundle/composer.json b/packages/file-bundle/composer.json index 8aea3f1..c5092ea 100644 --- a/packages/file-bundle/composer.json +++ b/packages/file-bundle/composer.json @@ -28,8 +28,8 @@ "league/flysystem": "^3.16", "league/flysystem-local": "^3.16", "psr/container": "^2.0", - "rekalogika/file": "^1.10.1", - "rekalogika/file-contracts": "^1.10.1", + "rekalogika/file": "^1.11", + "rekalogika/file-contracts": "^1.11", "symfony/config": "^6.2 || ^7.0", "symfony/dependency-injection": "^6.2 || ^7.0", "symfony/http-kernel": "^6.2 || ^7.0" @@ -46,7 +46,7 @@ }, "extra": { "branch-alias": { - "dev-main": "1.11-dev" + "dev-main": "1.12-dev" } } } diff --git a/packages/file-bundle/config/tests.php b/packages/file-bundle/config/tests.php index 1ca12fc..675d489 100644 --- a/packages/file-bundle/config/tests.php +++ b/packages/file-bundle/config/tests.php @@ -27,9 +27,9 @@ // add test aliases $serviceIds = TestKernel::getServiceIds(); - foreach ($serviceIds as $serviceId) { - $services->alias('test.' . $serviceId, $serviceId)->public(); - } + // foreach ($serviceIds as $serviceId) { + // $services->set($serviceId)->public(); + // } // filesystem for testing $services->set('test.filesystem', FilesystemOperator::class) diff --git a/packages/file-contracts/composer.json b/packages/file-contracts/composer.json index ae993be..468dee1 100644 --- a/packages/file-contracts/composer.json +++ b/packages/file-contracts/composer.json @@ -32,7 +32,7 @@ }, "extra": { "branch-alias": { - "dev-main": "1.11-dev" + "dev-main": "1.12-dev" } } } diff --git a/packages/file-derivation/composer.json b/packages/file-derivation/composer.json index 745f8a6..ee6283b 100644 --- a/packages/file-derivation/composer.json +++ b/packages/file-derivation/composer.json @@ -21,11 +21,11 @@ } }, "require": { - "rekalogika/file-contracts": "^1.10.1" + "rekalogika/file-contracts": "^1.11" }, "extra": { "branch-alias": { - "dev-main": "1.11-dev" + "dev-main": "1.12-dev" } } } diff --git a/packages/file-filepond/assets/dist/filepond.js b/packages/file-filepond/assets/dist/filepond.js index d7db398..df08c3e 100644 --- a/packages/file-filepond/assets/dist/filepond.js +++ b/packages/file-filepond/assets/dist/filepond.js @@ -132,12 +132,22 @@ var _default = /*#__PURE__*/function (_Controller) { _proto.connect = function connect() { var files = []; var input; + + // get the file input element for (var _iterator = _createForOfIteratorHelperLoose(this.element.children), _step; !(_step = _iterator()).done;) { var child = _step.value; if (child.tagName === 'INPUT' && child.type === 'file') { input = child; } } + + // remove input class attribute + input.removeAttribute('class'); + + // remove input style attribute + input.removeAttribute('style'); + + // get the files from the data elements and process them for (var _iterator2 = _createForOfIteratorHelperLoose(this.element.children), _step2; !(_step2 = _iterator2()).done;) { var _child = _step2.value; if (_child.tagName !== 'DATA') { @@ -145,7 +155,7 @@ var _default = /*#__PURE__*/function (_Controller) { } var file = { // sentinel value sent to server. if this is value is sent - // to the server, then the user didn't remove the image from + // to the server, then the user has not removed the image from // the filepond field source: _child.dataset.id || '__NOT_DELETED__', options: { @@ -163,6 +173,8 @@ var _default = /*#__PURE__*/function (_Controller) { } files.push(file); } + + // create filepond instance FilePond.create(input, _extends({}, getCurrentLocale(), { storeAsFile: true, files: files diff --git a/packages/file-filepond/assets/package-lock.json b/packages/file-filepond/assets/package-lock.json index 4450498..de17e5a 100644 --- a/packages/file-filepond/assets/package-lock.json +++ b/packages/file-filepond/assets/package-lock.json @@ -9,7 +9,7 @@ "version": "1.6.0", "license": "MIT", "dependencies": { - "filepond": "^4.31.3", + "filepond": "^4.31.4", "filepond-plugin-file-encode": "^2.1.11", "filepond-plugin-file-metadata": "^1.0.8", "filepond-plugin-file-poster": "^2.5.1", @@ -48,9 +48,9 @@ } }, "node_modules/@babel/cli": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.25.6.tgz", - "integrity": "sha512-Z+Doemr4VtvSD2SNHTrkiFZ1LX+JI6tyRXAAOb4N9khIuPyoEPmTPJarPm8ljJV1D6bnMQjyHMWTT9NeKbQuXA==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.25.7.tgz", + "integrity": "sha512-vQw4QjrqjLSuL0Tt3gfVXbxEHOfsCcHN8tKyTclpSMYLq3Bp0BTzWYZfMKBs3PQ+to8q3BnumBIAsMdOqDJ6nw==", "dev": true, "dependencies": { "@jridgewell/trace-mapping": "^0.3.25", @@ -77,12 +77,12 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", - "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.25.7.tgz", + "integrity": "sha512-0xZJFNE5XMpENsgfHYTw8FbX4kv53mFLn2i3XPoq69LyhYSCBJtitaHx9QnsVTrsogI4Z3+HtEfZ2/GFPOtf5g==", "dev": true, "dependencies": { - "@babel/highlight": "^7.24.7", + "@babel/highlight": "^7.25.7", "picocolors": "^1.0.0" }, "engines": { @@ -90,30 +90,30 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.25.4", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.4.tgz", - "integrity": "sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.7.tgz", + "integrity": "sha512-9ickoLz+hcXCeh7jrcin+/SLWm+GkxE2kTvoYyp38p4WkdFXfQJxDFGWp/YHjiKLPx06z2A7W8XKuqbReXDzsw==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.2.tgz", - "integrity": "sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.7.tgz", + "integrity": "sha512-yJ474Zv3cwiSOO9nXJuqzvwEeM+chDuQ8GJirw+pZ91sCGCyOZ3dJkVE09fTV0VEVzXyLWhh3G/AolYTPX7Mow==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.25.0", - "@babel/helper-compilation-targets": "^7.25.2", - "@babel/helper-module-transforms": "^7.25.2", - "@babel/helpers": "^7.25.0", - "@babel/parser": "^7.25.0", - "@babel/template": "^7.25.0", - "@babel/traverse": "^7.25.2", - "@babel/types": "^7.25.2", + "@babel/code-frame": "^7.25.7", + "@babel/generator": "^7.25.7", + "@babel/helper-compilation-targets": "^7.25.7", + "@babel/helper-module-transforms": "^7.25.7", + "@babel/helpers": "^7.25.7", + "@babel/parser": "^7.25.7", + "@babel/template": "^7.25.7", + "@babel/traverse": "^7.25.7", + "@babel/types": "^7.25.7", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -129,54 +129,54 @@ } }, "node_modules/@babel/generator": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.6.tgz", - "integrity": "sha512-VPC82gr1seXOpkjAAKoLhP50vx4vGNlF4msF64dSFq1P8RfB+QAuJWGHPXXPc8QyfVWwwB/TNNU4+ayZmHNbZw==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.7.tgz", + "integrity": "sha512-5Dqpl5fyV9pIAD62yK9P7fcA768uVPUyrQmqpqstHWgMma4feF1x/oFysBCVZLY5wJ2GkMUCdsNDnGZrPoR6rA==", "dev": true, "dependencies": { - "@babel/types": "^7.25.6", + "@babel/types": "^7.25.7", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^2.5.1" + "jsesc": "^3.0.2" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz", - "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.7.tgz", + "integrity": "sha512-4xwU8StnqnlIhhioZf1tqnVWeQ9pvH/ujS8hRfw/WOza+/a+1qv69BWNy+oY231maTCWgKWhfBU7kDpsds6zAA==", "dev": true, "dependencies": { - "@babel/types": "^7.24.7" + "@babel/types": "^7.25.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.24.7.tgz", - "integrity": "sha512-xZeCVVdwb4MsDBkkyZ64tReWYrLRHlMN72vP7Bdm3OUOuyFZExhsHUUnuWnm2/XOlAJzR0LfPpB56WXZn0X/lA==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.25.7.tgz", + "integrity": "sha512-12xfNeKNH7jubQNm7PAkzlLwEmCs1tfuX3UjIw6vP6QXi+leKh6+LyC/+Ed4EIQermwd58wsyh070yjDHFlNGg==", "dev": true, "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/traverse": "^7.25.7", + "@babel/types": "^7.25.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.2.tgz", - "integrity": "sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.7.tgz", + "integrity": "sha512-DniTEax0sv6isaw6qSQSfV4gVRNtw2rte8HHM45t9ZR0xILaufBRNkpMifCRiAPyvL4ACD6v0gfCwCmtOQaV4A==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.25.2", - "@babel/helper-validator-option": "^7.24.8", - "browserslist": "^4.23.1", + "@babel/compat-data": "^7.25.7", + "@babel/helper-validator-option": "^7.25.7", + "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" }, @@ -185,17 +185,17 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.25.4", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.4.tgz", - "integrity": "sha512-ro/bFs3/84MDgDmMwbcHgDa8/E6J3QKNTk4xJJnVeFtGE+tL0K26E3pNxhYz2b67fJpt7Aphw5XcploKXuCvCQ==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.7.tgz", + "integrity": "sha512-bD4WQhbkx80mAyj/WCm4ZHcF4rDxkoLFO6ph8/5/mQ3z4vAzltQXAmbc7GvVJx5H+lk5Mi5EmbTeox5nMGCsbw==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-member-expression-to-functions": "^7.24.8", - "@babel/helper-optimise-call-expression": "^7.24.7", - "@babel/helper-replace-supers": "^7.25.0", - "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", - "@babel/traverse": "^7.25.4", + "@babel/helper-annotate-as-pure": "^7.25.7", + "@babel/helper-member-expression-to-functions": "^7.25.7", + "@babel/helper-optimise-call-expression": "^7.25.7", + "@babel/helper-replace-supers": "^7.25.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.7", + "@babel/traverse": "^7.25.7", "semver": "^6.3.1" }, "engines": { @@ -206,13 +206,13 @@ } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.2.tgz", - "integrity": "sha512-+wqVGP+DFmqwFD3EH6TMTfUNeqDehV3E/dl+Sd54eaXqm17tEUNbEIn4sVivVowbvUpOtIGxdo3GoXyDH9N/9g==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.7.tgz", + "integrity": "sha512-byHhumTj/X47wJ6C6eLpK7wW/WBEcnUeb7D0FNc/jFQnQVw7DOso3Zz5u9x/zLrFVkHa89ZGDbkAa1D54NdrCQ==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "regexpu-core": "^5.3.1", + "@babel/helper-annotate-as-pure": "^7.25.7", + "regexpu-core": "^6.1.1", "semver": "^6.3.1" }, "engines": { @@ -239,41 +239,41 @@ } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.8.tgz", - "integrity": "sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.7.tgz", + "integrity": "sha512-O31Ssjd5K6lPbTX9AAYpSKrZmLeagt9uwschJd+Ixo6QiRyfpvgtVQp8qrDR9UNFjZ8+DO34ZkdrN+BnPXemeA==", "dev": true, "dependencies": { - "@babel/traverse": "^7.24.8", - "@babel/types": "^7.24.8" + "@babel/traverse": "^7.25.7", + "@babel/types": "^7.25.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", - "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.7.tgz", + "integrity": "sha512-o0xCgpNmRohmnoWKQ0Ij8IdddjyBFE4T2kagL/x6M3+4zUgc+4qTOUBoNe4XxDskt1HPKO007ZPiMgLDq2s7Kw==", "dev": true, "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/traverse": "^7.25.7", + "@babel/types": "^7.25.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.25.2.tgz", - "integrity": "sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.25.7.tgz", + "integrity": "sha512-k/6f8dKG3yDz/qCwSM+RKovjMix563SLxQFo0UhRNo239SP6n9u5/eLtKD6EAjwta2JHJ49CsD8pms2HdNiMMQ==", "dev": true, "dependencies": { - "@babel/helper-module-imports": "^7.24.7", - "@babel/helper-simple-access": "^7.24.7", - "@babel/helper-validator-identifier": "^7.24.7", - "@babel/traverse": "^7.25.2" + "@babel/helper-module-imports": "^7.25.7", + "@babel/helper-simple-access": "^7.25.7", + "@babel/helper-validator-identifier": "^7.25.7", + "@babel/traverse": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -283,35 +283,35 @@ } }, "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.7.tgz", - "integrity": "sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.7.tgz", + "integrity": "sha512-VAwcwuYhv/AT+Vfr28c9y6SHzTan1ryqrydSTFGjU0uDJHw3uZ+PduI8plCLkRsDnqK2DMEDmwrOQRsK/Ykjng==", "dev": true, "dependencies": { - "@babel/types": "^7.24.7" + "@babel/types": "^7.25.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz", - "integrity": "sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.7.tgz", + "integrity": "sha512-eaPZai0PiqCi09pPs3pAFfl/zYgGaE6IdXtYvmf0qlcDTd3WCtO7JWCcRd64e0EQrcYgiHibEZnOGsSY4QSgaw==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.0.tgz", - "integrity": "sha512-NhavI2eWEIz/H9dbrG0TuOicDhNexze43i5z7lEqwYm0WEZVTwnPpA0EafUTP7+6/W79HWIP2cTe3Z5NiSTVpw==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.7.tgz", + "integrity": "sha512-kRGE89hLnPfcz6fTrlNU+uhgcwv0mBE4Gv3P9Ke9kLVJYpi4AMVVEElXvB5CabrPZW4nCM8P8UyyjrzCM0O2sw==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-wrap-function": "^7.25.0", - "@babel/traverse": "^7.25.0" + "@babel/helper-annotate-as-pure": "^7.25.7", + "@babel/helper-wrap-function": "^7.25.7", + "@babel/traverse": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -321,14 +321,14 @@ } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.0.tgz", - "integrity": "sha512-q688zIvQVYtZu+i2PsdIu/uWGRpfxzr5WESsfpShfZECkO+d2o+WROWezCi/Q6kJ0tfPa5+pUGUlfx2HhrA3Bg==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.7.tgz", + "integrity": "sha512-iy8JhqlUW9PtZkd4pHM96v6BdJ66Ba9yWSE4z0W4TvSZwLBPkyDsiIU3ENe4SmrzRBs76F7rQXTy1lYC49n6Lw==", "dev": true, "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.24.8", - "@babel/helper-optimise-call-expression": "^7.24.7", - "@babel/traverse": "^7.25.0" + "@babel/helper-member-expression-to-functions": "^7.25.7", + "@babel/helper-optimise-call-expression": "^7.25.7", + "@babel/traverse": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -338,92 +338,92 @@ } }, "node_modules/@babel/helper-simple-access": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", - "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.25.7.tgz", + "integrity": "sha512-FPGAkJmyoChQeM+ruBGIDyrT2tKfZJO8NcxdC+CWNJi7N8/rZpSxK7yvBJ5O/nF1gfu5KzN7VKG3YVSLFfRSxQ==", "dev": true, "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/traverse": "^7.25.7", + "@babel/types": "^7.25.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.7.tgz", - "integrity": "sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.7.tgz", + "integrity": "sha512-pPbNbchZBkPMD50K0p3JGcFMNLVUCuU/ABybm/PGNj4JiHrpmNyqqCphBk4i19xXtNV0JhldQJJtbSW5aUvbyA==", "dev": true, "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/traverse": "^7.25.7", + "@babel/types": "^7.25.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz", - "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.7.tgz", + "integrity": "sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", - "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.7.tgz", + "integrity": "sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz", - "integrity": "sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.7.tgz", + "integrity": "sha512-ytbPLsm+GjArDYXJ8Ydr1c/KJuutjF2besPNbIZnZ6MKUxi/uTA22t2ymmA4WFjZFpjiAMO0xuuJPqK2nvDVfQ==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.0.tgz", - "integrity": "sha512-s6Q1ebqutSiZnEjaofc/UKDyC4SbzV5n5SrA2Gq8UawLycr3i04f1dX4OzoQVnexm6aOCh37SQNYlJ/8Ku+PMQ==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.7.tgz", + "integrity": "sha512-MA0roW3JF2bD1ptAaJnvcabsVlNQShUaThyJbCDD4bCp8NEgiFvpoqRI2YS22hHlc2thjO/fTg2ShLMC3jygAg==", "dev": true, "dependencies": { - "@babel/template": "^7.25.0", - "@babel/traverse": "^7.25.0", - "@babel/types": "^7.25.0" + "@babel/template": "^7.25.7", + "@babel/traverse": "^7.25.7", + "@babel/types": "^7.25.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.6.tgz", - "integrity": "sha512-Xg0tn4HcfTijTwfDwYlvVCl43V6h4KyVVX2aEm4qdO/PC6L2YvzLHFdmxhoeSA3eslcE6+ZVXHgWwopXYLNq4Q==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.7.tgz", + "integrity": "sha512-Sv6pASx7Esm38KQpF/U/OXLwPPrdGHNKoeblRxgZRLXnAtnkEe4ptJPDtAZM7fBLadbc1Q07kQpSiGQ0Jg6tRA==", "dev": true, "dependencies": { - "@babel/template": "^7.25.0", - "@babel/types": "^7.25.6" + "@babel/template": "^7.25.7", + "@babel/types": "^7.25.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", - "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.25.7.tgz", + "integrity": "sha512-iYyACpW3iW8Fw+ZybQK+drQre+ns/tKpXbNESfrhNnPLIklLbXr7MYJ6gPEd0iETGLOK+SxMjVvKb/ffmk+FEw==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.24.7", + "@babel/helper-validator-identifier": "^7.25.7", "chalk": "^2.4.2", "js-tokens": "^4.0.0", "picocolors": "^1.0.0" @@ -433,12 +433,12 @@ } }, "node_modules/@babel/parser": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.6.tgz", - "integrity": "sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.7.tgz", + "integrity": "sha512-aZn7ETtQsjjGG5HruveUK06cU3Hljuhd9Iojm4M8WWv3wLE6OkE5PWbDUkItmMgegmccaITudyuW5RPYrYlgWw==", "dev": true, "dependencies": { - "@babel/types": "^7.25.6" + "@babel/types": "^7.25.7" }, "bin": { "parser": "bin/babel-parser.js" @@ -448,13 +448,13 @@ } }, "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { - "version": "7.25.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.3.tgz", - "integrity": "sha512-wUrcsxZg6rqBXG05HG1FPYgsP6EvwF4WpBbxIpWIIYnH8wG0gzx3yZY3dtEHas4sTAOGkbTsc9EGPxwff8lRoA==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.7.tgz", + "integrity": "sha512-UV9Lg53zyebzD1DwQoT9mzkEKa922LNUp5YkTJ6Uta0RbyXaQNUgcvSt7qIu1PpPzVb6rd10OVNTzkyBGeVmxQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/traverse": "^7.25.3" + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/traverse": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -464,12 +464,12 @@ } }, "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.0.tgz", - "integrity": "sha512-Bm4bH2qsX880b/3ziJ8KD711LT7z4u8CFudmjqle65AZj/HNUFhEf90dqYv6O86buWvSBmeQDjv0Tn2aF/bIBA==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.7.tgz", + "integrity": "sha512-GDDWeVLNxRIkQTnJn2pDOM1pkCgYdSqPeT1a9vh9yIqu2uzzgw1zcqEb+IJOhy+dTBMlNdThrDIksr2o09qrrQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -479,12 +479,12 @@ } }, "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.0.tgz", - "integrity": "sha512-lXwdNZtTmeVOOFtwM/WDe7yg1PL8sYhRk/XH0FzbR2HDQ0xC+EnQ/JHeoMYSavtU115tnUk0q9CDyq8si+LMAA==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.7.tgz", + "integrity": "sha512-wxyWg2RYaSUYgmd9MR0FyRGyeOMQE/Uzr1wzd/g5cf5bwi9A4v6HFdDm7y1MgDtod/fLOSTZY6jDgV0xU9d5bA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -494,14 +494,14 @@ } }, "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.7.tgz", - "integrity": "sha512-+izXIbke1T33mY4MSNnrqhPXDz01WYhEf3yF5NbnUtkiNnm+XBZJl3kNfoK6NKmYlz/D07+l2GWVK/QfDkNCuQ==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.25.7.tgz", + "integrity": "sha512-Xwg6tZpLxc4iQjorYsyGMyfJE7nP5MV8t/Ka58BgiA7Jw0fRqQNcANlLfdJ/yvBt9z9LD2We+BEkT7vLqZRWng==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", - "@babel/plugin-transform-optional-chaining": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.7", + "@babel/plugin-transform-optional-chaining": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -511,13 +511,13 @@ } }, "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.0.tgz", - "integrity": "sha512-tggFrk1AIShG/RUQbEwt2Tr/E+ObkfwrPjR6BjbRvsx24+PSjK8zrq0GWPNCjo8qpRx4DuJzlcvWJqlm+0h3kw==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.7.tgz", + "integrity": "sha512-UVATLMidXrnH+GMUIuxq55nejlj02HP7F5ETyBONzP6G87fPBogG4CH6kxrSrdIuAjdwNO9VzyaYsrZPscWUrw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/traverse": "^7.25.0" + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/traverse": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -619,12 +619,12 @@ } }, "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.25.6.tgz", - "integrity": "sha512-aABl0jHw9bZ2karQ/uUD6XP4u0SG22SJrOHFoL6XB1R7dTovOP4TzTlsxOYC5yQ1pdscVK2JTUnF6QL3ARoAiQ==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.25.7.tgz", + "integrity": "sha512-ZvZQRmME0zfJnDQnVBKYzHxXT7lYBB3Revz1GuS7oLXWMgqUPX4G+DDbT30ICClht9WKV34QVrZhSw6WdklwZQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -634,12 +634,12 @@ } }, "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.25.6.tgz", - "integrity": "sha512-sXaDXaJN9SNLymBdlWFA+bjzBhFD617ZaFiY13dGt7TVslVvVgA6fkZOP7Ki3IGElC45lwHdOTrCtKZGVAWeLQ==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.25.7.tgz", + "integrity": "sha512-AqVo+dguCgmpi/3mYBdu9lkngOBlQ2w2vnNpa6gfiCxQZLzV4ZbhsXitJ2Yblkoe1VQwtHSaNmIaGll/26YWRw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -791,12 +791,12 @@ } }, "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.7.tgz", - "integrity": "sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.7.tgz", + "integrity": "sha512-EJN2mKxDwfOUCPxMO6MUI58RN3ganiRAG/MS/S3HfB6QFNjroAMelQo/gybyYq97WerCBAZoyrAoW8Tzdq2jWg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -806,15 +806,15 @@ } }, "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.25.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.4.tgz", - "integrity": "sha512-jz8cV2XDDTqjKPwVPJBIjORVEmSGYhdRa8e5k5+vN+uwcjSrSxUaebBRa4ko1jqNF2uxyg8G6XYk30Jv285xzg==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.7.tgz", + "integrity": "sha512-4B6OhTrwYKHYYgcwErvZjbmH9X5TxQBsaBHdzEIB4l71gR5jh/tuHGlb9in47udL2+wVUcOz5XXhhfhVJwEpEg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/helper-remap-async-to-generator": "^7.25.0", + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/helper-remap-async-to-generator": "^7.25.7", "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/traverse": "^7.25.4" + "@babel/traverse": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -824,14 +824,14 @@ } }, "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.7.tgz", - "integrity": "sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.25.7.tgz", + "integrity": "sha512-ZUCjAavsh5CESCmi/xCpX1qcCaAglzs/7tmuvoFnJgA1dM7gQplsguljoTg+Ru8WENpX89cQyAtWoaE0I3X3Pg==", "dev": true, "dependencies": { - "@babel/helper-module-imports": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-remap-async-to-generator": "^7.24.7" + "@babel/helper-module-imports": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/helper-remap-async-to-generator": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -841,12 +841,12 @@ } }, "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.7.tgz", - "integrity": "sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.25.7.tgz", + "integrity": "sha512-xHttvIM9fvqW+0a3tZlYcZYSBpSWzGBFIt/sYG3tcdSzBB8ZeVgz2gBP7Df+sM0N1850jrviYSSeUuc+135dmQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -856,12 +856,12 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.0.tgz", - "integrity": "sha512-yBQjYoOjXlFv9nlXb3f1casSHOZkWr29NX+zChVanLg5Nc157CrbEX9D7hxxtTpuFy7Q0YzmmWfJxzvps4kXrQ==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.7.tgz", + "integrity": "sha512-ZEPJSkVZaeTFG/m2PARwLZQ+OG0vFIhPlKHK/JdIMy8DbRJ/htz6LRrTFtdzxi9EHmcwbNPAKDnadpNSIW+Aow==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -871,13 +871,13 @@ } }, "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.25.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.4.tgz", - "integrity": "sha512-nZeZHyCWPfjkdU5pA/uHiTaDAFUEqkpzf1YoQT2NeSynCGYq9rxfyI3XpQbfx/a0hSnFH6TGlEXvae5Vi7GD8g==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.7.tgz", + "integrity": "sha512-mhyfEW4gufjIqYFo9krXHJ3ElbFLIze5IDp+wQTxoPd+mwFb1NxatNAwmv8Q8Iuxv7Zc+q8EkiMQwc9IhyGf4g==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.25.4", - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-create-class-features-plugin": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -887,13 +887,13 @@ } }, "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.7.tgz", - "integrity": "sha512-HMXK3WbBPpZQufbMG4B46A90PkuuhN9vBCb5T8+VAHqvAqvcLi+2cKoukcpmUYkszLhScU3l1iudhrks3DggRQ==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.25.7.tgz", + "integrity": "sha512-rvUUtoVlkDWtDWxGAiiQj0aNktTPn3eFynBcMC2IhsXweehwgdI9ODe+XjWw515kEmv22sSOTp/rxIRuTiB7zg==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-create-class-features-plugin": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7", "@babel/plugin-syntax-class-static-block": "^7.14.5" }, "engines": { @@ -904,16 +904,16 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.25.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.4.tgz", - "integrity": "sha512-oexUfaQle2pF/b6E0dwsxQtAol9TLSO88kQvym6HHBWFliV2lGdrPieX+WgMRLSJDVzdYywk7jXbLPuO2KLTLg==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.7.tgz", + "integrity": "sha512-9j9rnl+YCQY0IGoeipXvnk3niWicIB6kCsWRGLwX241qSXpbA4MKxtp/EdvFxsc4zI5vqfLxzOd0twIJ7I99zg==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-compilation-targets": "^7.25.2", - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/helper-replace-supers": "^7.25.0", - "@babel/traverse": "^7.25.4", + "@babel/helper-annotate-as-pure": "^7.25.7", + "@babel/helper-compilation-targets": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/helper-replace-supers": "^7.25.7", + "@babel/traverse": "^7.25.7", "globals": "^11.1.0" }, "engines": { @@ -924,13 +924,13 @@ } }, "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.7.tgz", - "integrity": "sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.7.tgz", + "integrity": "sha512-QIv+imtM+EtNxg/XBKL3hiWjgdLjMOmZ+XzQwSgmBfKbfxUjBzGgVPklUuE55eq5/uVoh8gg3dqlrwR/jw3ZeA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/template": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/template": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -940,12 +940,12 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.8.tgz", - "integrity": "sha512-36e87mfY8TnRxc7yc6M9g9gOB7rKgSahqkIKwLpz4Ppk2+zC2Cy1is0uwtuSG6AE4zlTOUa+7JGz9jCJGLqQFQ==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.7.tgz", + "integrity": "sha512-xKcfLTlJYUczdaM1+epcdh1UGewJqr9zATgrNHcLBcV2QmfvPPEixo/sK/syql9cEmbr7ulu5HMFG5vbbt/sEA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -955,13 +955,13 @@ } }, "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.7.tgz", - "integrity": "sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.25.7.tgz", + "integrity": "sha512-kXzXMMRzAtJdDEgQBLF4oaiT6ZCU3oWHgpARnTKDAqPkDJ+bs3NrZb310YYevR5QlRo3Kn7dzzIdHbZm1VzJdQ==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-create-regexp-features-plugin": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -971,12 +971,12 @@ } }, "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.7.tgz", - "integrity": "sha512-JdYfXyCRihAe46jUIliuL2/s0x0wObgwwiGxw/UbgJBr20gQBThrokO4nYKgWkD7uBaqM7+9x5TU7NkExZJyzw==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.25.7.tgz", + "integrity": "sha512-by+v2CjoL3aMnWDOyCIg+yxU9KXSRa9tN6MbqggH5xvymmr9p4AMjYkNlQy4brMceBnUyHZ9G8RnpvT8wP7Cfg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -986,13 +986,13 @@ } }, "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.0.tgz", - "integrity": "sha512-YLpb4LlYSc3sCUa35un84poXoraOiQucUTTu8X1j18JV+gNa8E0nyUf/CjZ171IRGr4jEguF+vzJU66QZhn29g==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.7.tgz", + "integrity": "sha512-HvS6JF66xSS5rNKXLqkk7L9c/jZ/cdIVIcoPVrnl8IsVpLggTjXs8OWekbLHs/VtYDDh5WXnQyeE3PPUGm22MA==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.0", - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-create-regexp-features-plugin": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1002,12 +1002,12 @@ } }, "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.7.tgz", - "integrity": "sha512-sc3X26PhZQDb3JhORmakcbvkeInvxz+A8oda99lj7J60QRuPZvNAk9wQlTBS1ZynelDrDmTU4pw1tyc5d5ZMUg==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.25.7.tgz", + "integrity": "sha512-UvcLuual4h7/GfylKm2IAA3aph9rwvAM2XBA0uPKU3lca+Maai4jBjjEVUS568ld6kJcgbouuumCBhMd/Yz17w==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-plugin-utils": "^7.25.7", "@babel/plugin-syntax-dynamic-import": "^7.8.3" }, "engines": { @@ -1018,13 +1018,13 @@ } }, "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.7.tgz", - "integrity": "sha512-Rqe/vSc9OYgDajNIK35u7ot+KeCoetqQYFXM4Epf7M7ez3lWlOjrDjrwMei6caCVhfdw+mIKD4cgdGNy5JQotQ==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.25.7.tgz", + "integrity": "sha512-yjqtpstPfZ0h/y40fAXRv2snciYr0OAoMXY/0ClC7tm4C/nG5NJKmIItlaYlLbIVAWNfrYuy9dq1bE0SbX0PEg==", "dev": true, "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1034,12 +1034,12 @@ } }, "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.7.tgz", - "integrity": "sha512-v0K9uNYsPL3oXZ/7F9NNIbAj2jv1whUEtyA6aujhekLs56R++JDQuzRcP2/z4WX5Vg/c5lE9uWZA0/iUoFhLTA==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.25.7.tgz", + "integrity": "sha512-h3MDAP5l34NQkkNulsTNyjdaR+OiB0Im67VU//sFupouP8Q6m9Spy7l66DcaAQxtmCqGdanPByLsnwFttxKISQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-plugin-utils": "^7.25.7", "@babel/plugin-syntax-export-namespace-from": "^7.8.3" }, "engines": { @@ -1050,13 +1050,13 @@ } }, "node_modules/@babel/plugin-transform-for-of": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.7.tgz", - "integrity": "sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.25.7.tgz", + "integrity": "sha512-n/TaiBGJxYFWvpJDfsxSj9lEEE44BFM1EPGz4KEiTipTgkoFVVcCmzAL3qA7fdQU96dpo4gGf5HBx/KnDvqiHw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1066,14 +1066,14 @@ } }, "node_modules/@babel/plugin-transform-function-name": { - "version": "7.25.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.1.tgz", - "integrity": "sha512-TVVJVdW9RKMNgJJlLtHsKDTydjZAbwIsn6ySBPQaEAUU5+gVvlJt/9nRmqVbsV/IBanRjzWoaAQKLoamWVOUuA==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.7.tgz", + "integrity": "sha512-5MCTNcjCMxQ63Tdu9rxyN6cAWurqfrDZ76qvVPrGYdBxIj+EawuuxTu/+dgJlhK5eRz3v1gLwp6XwS8XaX2NiQ==", "dev": true, "dependencies": { - "@babel/helper-compilation-targets": "^7.24.8", - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/traverse": "^7.25.1" + "@babel/helper-compilation-targets": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/traverse": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1083,12 +1083,12 @@ } }, "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.7.tgz", - "integrity": "sha512-2yFnBGDvRuxAaE/f0vfBKvtnvvqU8tGpMHqMNpTN2oWMKIR3NqFkjaAgGwawhqK/pIN2T3XdjGPdaG0vDhOBGw==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.25.7.tgz", + "integrity": "sha512-Ot43PrL9TEAiCe8C/2erAjXMeVSnE/BLEx6eyrKLNFCCw5jvhTHKyHxdI1pA0kz5njZRYAnMO2KObGqOCRDYSA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-plugin-utils": "^7.25.7", "@babel/plugin-syntax-json-strings": "^7.8.3" }, "engines": { @@ -1099,12 +1099,12 @@ } }, "node_modules/@babel/plugin-transform-literals": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.2.tgz", - "integrity": "sha512-HQI+HcTbm9ur3Z2DkO+jgESMAMcYLuN/A7NRw9juzxAezN9AvqvUTnpKP/9kkYANz6u7dFlAyOu44ejuGySlfw==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.7.tgz", + "integrity": "sha512-fwzkLrSu2fESR/cm4t6vqd7ebNIopz2QHGtjoU+dswQo/P6lwAG04Q98lliE3jkz/XqnbGFLnUcE0q0CVUf92w==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1114,12 +1114,12 @@ } }, "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.7.tgz", - "integrity": "sha512-4D2tpwlQ1odXmTEIFWy9ELJcZHqrStlzK/dAOWYyxX3zT0iXQB6banjgeOJQXzEc4S0E0a5A+hahxPaEFYftsw==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.25.7.tgz", + "integrity": "sha512-iImzbA55BjiovLyG2bggWS+V+OLkaBorNvc/yJoeeDQGztknRnDdYfp2d/UPmunZYEnZi6Lg8QcTmNMHOB0lGA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-plugin-utils": "^7.25.7", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" }, "engines": { @@ -1130,12 +1130,12 @@ } }, "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.7.tgz", - "integrity": "sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.25.7.tgz", + "integrity": "sha512-Std3kXwpXfRV0QtQy5JJcRpkqP8/wG4XL7hSKZmGlxPlDqmpXtEPRmhF7ztnlTCtUN3eXRUJp+sBEZjaIBVYaw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1145,13 +1145,13 @@ } }, "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.7.tgz", - "integrity": "sha512-9+pB1qxV3vs/8Hdmz/CulFB8w2tuu6EB94JZFsjdqxQokwGa9Unap7Bo2gGBGIvPmDIVvQrom7r5m/TCDMURhg==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.25.7.tgz", + "integrity": "sha512-CgselSGCGzjQvKzghCvDTxKHP3iooenLpJDO842ehn5D2G5fJB222ptnDwQho0WjEvg7zyoxb9P+wiYxiJX5yA==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-module-transforms": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1161,14 +1161,14 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.8.tgz", - "integrity": "sha512-WHsk9H8XxRs3JXKWFiqtQebdh9b/pTk4EgueygFzYlTKAg0Ud985mSevdNjdXdFBATSKVJGQXP1tv6aGbssLKA==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.25.7.tgz", + "integrity": "sha512-L9Gcahi0kKFYXvweO6n0wc3ZG1ChpSFdgG+eV1WYZ3/dGbJK7vvk91FgGgak8YwRgrCuihF8tE/Xg07EkL5COg==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.24.8", - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/helper-simple-access": "^7.24.7" + "@babel/helper-module-transforms": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/helper-simple-access": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1178,15 +1178,15 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.0.tgz", - "integrity": "sha512-YPJfjQPDXxyQWg/0+jHKj1llnY5f/R6a0p/vP4lPymxLu7Lvl4k2WMitqi08yxwQcCVUUdG9LCUj4TNEgAp3Jw==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.7.tgz", + "integrity": "sha512-t9jZIvBmOXJsiuyOwhrIGs8dVcD6jDyg2icw1VL4A/g+FnWyJKwUfSSU2nwJuMV2Zqui856El9u+ElB+j9fV1g==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.25.0", - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/helper-validator-identifier": "^7.24.7", - "@babel/traverse": "^7.25.0" + "@babel/helper-module-transforms": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/helper-validator-identifier": "^7.25.7", + "@babel/traverse": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1196,13 +1196,13 @@ } }, "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.7.tgz", - "integrity": "sha512-3aytQvqJ/h9z4g8AsKPLvD4Zqi2qT+L3j7XoFFu1XBlZWEl2/1kWnhmAbxpLgPrHSY0M6UA02jyTiwUVtiKR6A==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.25.7.tgz", + "integrity": "sha512-p88Jg6QqsaPh+EB7I9GJrIqi1Zt4ZBHUQtjw3z1bzEXcLh6GfPqzZJ6G+G1HBGKUNukT58MnKG7EN7zXQBCODw==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-module-transforms": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1212,13 +1212,13 @@ } }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.24.7.tgz", - "integrity": "sha512-/jr7h/EWeJtk1U/uz2jlsCioHkZk1JJZVcc8oQsJ1dUlaJD83f4/6Zeh2aHt9BIFokHIsSeDfhUmju0+1GPd6g==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.25.7.tgz", + "integrity": "sha512-BtAT9LzCISKG3Dsdw5uso4oV1+v2NlVXIIomKJgQybotJY3OwCwJmkongjHgwGKoZXd0qG5UZ12JUlDQ07W6Ow==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-create-regexp-features-plugin": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1228,12 +1228,12 @@ } }, "node_modules/@babel/plugin-transform-new-target": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.7.tgz", - "integrity": "sha512-RNKwfRIXg4Ls/8mMTza5oPF5RkOW8Wy/WgMAp1/F1yZ8mMbtwXW+HDoJiOsagWrAhI5f57Vncrmr9XeT4CVapA==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.25.7.tgz", + "integrity": "sha512-CfCS2jDsbcZaVYxRFo2qtavW8SpdzmBXC2LOI4oO0rP+JSRDxxF3inF4GcPsLgfb5FjkhXG5/yR/lxuRs2pySA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1243,12 +1243,12 @@ } }, "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.7.tgz", - "integrity": "sha512-Ts7xQVk1OEocqzm8rHMXHlxvsfZ0cEF2yomUqpKENHWMF4zKk175Y4q8H5knJes6PgYad50uuRmt3UJuhBw8pQ==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.25.7.tgz", + "integrity": "sha512-FbuJ63/4LEL32mIxrxwYaqjJxpbzxPVQj5a+Ebrc8JICV6YX8nE53jY+K0RZT3um56GoNWgkS2BQ/uLGTjtwfw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-plugin-utils": "^7.25.7", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" }, "engines": { @@ -1259,12 +1259,12 @@ } }, "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.7.tgz", - "integrity": "sha512-e6q1TiVUzvH9KRvicuxdBTUj4AdKSRwzIyFFnfnezpCfP2/7Qmbb8qbU2j7GODbl4JMkblitCQjKYUaX/qkkwA==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.7.tgz", + "integrity": "sha512-8CbutzSSh4hmD+jJHIA8vdTNk15kAzOnFLVVgBSMGr28rt85ouT01/rezMecks9pkU939wDInImwCKv4ahU4IA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-plugin-utils": "^7.25.7", "@babel/plugin-syntax-numeric-separator": "^7.10.4" }, "engines": { @@ -1275,15 +1275,15 @@ } }, "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.7.tgz", - "integrity": "sha512-4QrHAr0aXQCEFni2q4DqKLD31n2DL+RxcwnNjDFkSG0eNQ/xCavnRkfCUjsyqGC2OviNJvZOF/mQqZBw7i2C5Q==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.25.7.tgz", + "integrity": "sha512-1JdVKPhD7Y5PvgfFy0Mv2brdrolzpzSoUq2pr6xsR+m+3viGGeHEokFKsCgOkbeFOQxfB1Vt2F0cPJLRpFI4Zg==", "dev": true, "dependencies": { - "@babel/helper-compilation-targets": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-compilation-targets": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.24.7" + "@babel/plugin-transform-parameters": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1293,13 +1293,13 @@ } }, "node_modules/@babel/plugin-transform-object-super": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.7.tgz", - "integrity": "sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.25.7.tgz", + "integrity": "sha512-pWT6UXCEW3u1t2tcAGtE15ornCBvopHj9Bps9D2DsH15APgNVOTwwczGckX+WkAvBmuoYKRCFa4DK+jM8vh5AA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-replace-supers": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/helper-replace-supers": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1309,12 +1309,12 @@ } }, "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.7.tgz", - "integrity": "sha512-uLEndKqP5BfBbC/5jTwPxLh9kqPWWgzN/f8w6UwAIirAEqiIVJWWY312X72Eub09g5KF9+Zn7+hT7sDxmhRuKA==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.25.7.tgz", + "integrity": "sha512-m9obYBA39mDPN7lJzD5WkGGb0GO54PPLXsbcnj1Hyeu8mSRz7Gb4b1A6zxNX32ZuUySDK4G6it8SDFWD1nCnqg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-plugin-utils": "^7.25.7", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" }, "engines": { @@ -1325,13 +1325,13 @@ } }, "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.8.tgz", - "integrity": "sha512-5cTOLSMs9eypEy8JUVvIKOu6NgvbJMnpG62VpIHrTmROdQ+L5mDAaI40g25k5vXti55JWNX5jCkq3HZxXBQANw==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.7.tgz", + "integrity": "sha512-h39agClImgPWg4H8mYVAbD1qP9vClFbEjqoJmt87Zen8pjqK8FTPUwrOXAvqu5soytwxrLMd2fx2KSCp2CHcNg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.7", "@babel/plugin-syntax-optional-chaining": "^7.8.3" }, "engines": { @@ -1342,12 +1342,12 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.7.tgz", - "integrity": "sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.7.tgz", + "integrity": "sha512-FYiTvku63me9+1Nz7TOx4YMtW3tWXzfANZtrzHhUZrz4d47EEtMQhzFoZWESfXuAMMT5mwzD4+y1N8ONAX6lMQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1357,13 +1357,13 @@ } }, "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.25.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.4.tgz", - "integrity": "sha512-ao8BG7E2b/URaUQGqN3Tlsg+M3KlHY6rJ1O1gXAEUnZoyNQnvKyH87Kfg+FoxSeyWUB8ISZZsC91C44ZuBFytw==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.7.tgz", + "integrity": "sha512-KY0hh2FluNxMLwOCHbxVOKfdB5sjWG4M183885FmaqWWiGMhRZq4DQRKH6mHdEucbJnyDyYiZNwNG424RymJjA==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.25.4", - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-create-class-features-plugin": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1373,14 +1373,14 @@ } }, "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.7.tgz", - "integrity": "sha512-9z76mxwnwFxMyxZWEgdgECQglF2Q7cFLm0kMf8pGwt+GSJsY0cONKj/UuO4bOH0w/uAel3ekS4ra5CEAyJRmDA==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.25.7.tgz", + "integrity": "sha512-LzA5ESzBy7tqj00Yjey9yWfs3FKy4EmJyKOSWld144OxkTji81WWnUT8nkLUn+imN/zHL8ZQlOu/MTUAhHaX3g==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-create-class-features-plugin": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-annotate-as-pure": "^7.25.7", + "@babel/helper-create-class-features-plugin": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7", "@babel/plugin-syntax-private-property-in-object": "^7.14.5" }, "engines": { @@ -1391,12 +1391,12 @@ } }, "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.7.tgz", - "integrity": "sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.25.7.tgz", + "integrity": "sha512-lQEeetGKfFi0wHbt8ClQrUSUMfEeI3MMm74Z73T9/kuz990yYVtfofjf3NuA42Jy3auFOpbjDyCSiIkTs1VIYw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1406,12 +1406,12 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.7.tgz", - "integrity": "sha512-lq3fvXPdimDrlg6LWBoqj+r/DEWgONuwjuOuQCSYgRroXDH/IdM1C0IZf59fL5cHLpjEH/O6opIRBbqv7ELnuA==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.25.7.tgz", + "integrity": "sha512-mgDoQCRjrY3XK95UuV60tZlFCQGXEtMg8H+IsW72ldw1ih1jZhzYXbJvghmAEpg5UVhhnCeia1CkGttUvCkiMQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-plugin-utils": "^7.25.7", "regenerator-transform": "^0.15.2" }, "engines": { @@ -1422,12 +1422,12 @@ } }, "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.7.tgz", - "integrity": "sha512-0DUq0pHcPKbjFZCfTss/pGkYMfy3vFWydkUBd9r0GHpIyfs2eCDENvqadMycRS9wZCXR41wucAfJHJmwA0UmoQ==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.25.7.tgz", + "integrity": "sha512-3OfyfRRqiGeOvIWSagcwUTVk2hXBsr/ww7bLn6TRTuXnexA+Udov2icFOxFX9abaj4l96ooYkcNN1qi2Zvqwng==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1437,12 +1437,12 @@ } }, "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.7.tgz", - "integrity": "sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.25.7.tgz", + "integrity": "sha512-uBbxNwimHi5Bv3hUccmOFlUy3ATO6WagTApenHz9KzoIdn0XeACdB12ZJ4cjhuB2WSi80Ez2FWzJnarccriJeA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1452,13 +1452,13 @@ } }, "node_modules/@babel/plugin-transform-spread": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.7.tgz", - "integrity": "sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.25.7.tgz", + "integrity": "sha512-Mm6aeymI0PBh44xNIv/qvo8nmbkpZze1KvR8MkEqbIREDxoiWTi18Zr2jryfRMwDfVZF9foKh060fWgni44luw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1468,12 +1468,12 @@ } }, "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.7.tgz", - "integrity": "sha512-kHPSIJc9v24zEml5geKg9Mjx5ULpfncj0wRpYtxbvKyTtHCYDkVE3aHQ03FrpEo4gEe2vrJJS1Y9CJTaThA52g==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.25.7.tgz", + "integrity": "sha512-ZFAeNkpGuLnAQ/NCsXJ6xik7Id+tHuS+NT+ue/2+rn/31zcdnupCdmunOizEaP0JsUmTFSTOPoQY7PkK2pttXw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1483,12 +1483,12 @@ } }, "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.7.tgz", - "integrity": "sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.25.7.tgz", + "integrity": "sha512-SI274k0nUsFFmyQupiO7+wKATAmMFf8iFgq2O+vVFXZ0SV9lNfT1NGzBEhjquFmD8I9sqHLguH+gZVN3vww2AA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1498,12 +1498,12 @@ } }, "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.8.tgz", - "integrity": "sha512-adNTUpDCVnmAE58VEqKlAA6ZBlNkMnWD0ZcW76lyNFN3MJniyGFZfNwERVk8Ap56MCnXztmDr19T4mPTztcuaw==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.25.7.tgz", + "integrity": "sha512-OmWmQtTHnO8RSUbL0NTdtpbZHeNTnm68Gj5pA4Y2blFNh+V4iZR68V1qL9cI37J21ZN7AaCnkfdHtLExQPf2uA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1513,12 +1513,12 @@ } }, "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.7.tgz", - "integrity": "sha512-U3ap1gm5+4edc2Q/P+9VrBNhGkfnf+8ZqppY71Bo/pzZmXhhLdqgaUl6cuB07O1+AQJtCLfaOmswiNbSQ9ivhw==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.25.7.tgz", + "integrity": "sha512-BN87D7KpbdiABA+t3HbVqHzKWUDN3dymLaTnPFAMyc8lV+KN3+YzNhVRNdinaCPA4AUqx7ubXbQ9shRjYBl3SQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1528,13 +1528,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.7.tgz", - "integrity": "sha512-uH2O4OV5M9FZYQrwc7NdVmMxQJOCCzFeYudlZSzUAHRFeOujQefa92E74TQDVskNHCzOXoigEuoyzHDhaEaK5w==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.25.7.tgz", + "integrity": "sha512-IWfR89zcEPQGB/iB408uGtSPlQd3Jpq11Im86vUgcmSTcoWAiQMCTOa2K2yNNqFJEBVICKhayctee65Ka8OB0w==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-create-regexp-features-plugin": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1544,13 +1544,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.7.tgz", - "integrity": "sha512-hlQ96MBZSAXUq7ltkjtu3FJCCSMx/j629ns3hA3pXnBXjanNP0LHi+JpPeA81zaWgVK1VGH95Xuy7u0RyQ8kMg==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.25.7.tgz", + "integrity": "sha512-8JKfg/hiuA3qXnlLx8qtv5HWRbgyFx2hMMtpDDuU2rTckpKkGu4ycK5yYHwuEa16/quXfoxHBIApEsNyMWnt0g==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-create-regexp-features-plugin": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1560,13 +1560,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.25.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.4.tgz", - "integrity": "sha512-qesBxiWkgN1Q+31xUE9RcMk79eOXXDCv6tfyGMRSs4RGlioSg2WVyQAm07k726cSE56pa+Kb0y9epX2qaXzTvA==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.7.tgz", + "integrity": "sha512-YRW8o9vzImwmh4Q3Rffd09bH5/hvY0pxg+1H1i0f7APoUeg12G7+HhLj9ZFNIrYkgBXhIijPJ+IXypN0hLTIbw==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.2", - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-create-regexp-features-plugin": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1576,28 +1576,28 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.25.4", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.25.4.tgz", - "integrity": "sha512-W9Gyo+KmcxjGahtt3t9fb14vFRWvPpu5pT6GBlovAK6BTBcxgjfVMSQCfJl4oi35ODrxP6xx2Wr8LNST57Mraw==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.25.4", - "@babel/helper-compilation-targets": "^7.25.2", - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/helper-validator-option": "^7.24.8", - "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.3", - "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.0", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.0", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.7", - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.0", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.25.7.tgz", + "integrity": "sha512-Gibz4OUdyNqqLj+7OAvBZxOD7CklCtMA5/j0JgUEwOnaRULsPDXmic2iKxL2DX2vQduPR5wH2hjZas/Vr/Oc0g==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.25.7", + "@babel/helper-compilation-targets": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/helper-validator-option": "^7.25.7", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.7", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.7", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.7", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.25.7", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.7", "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-syntax-class-static-block": "^7.14.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.24.7", - "@babel/plugin-syntax-import-attributes": "^7.24.7", + "@babel/plugin-syntax-import-assertions": "^7.25.7", + "@babel/plugin-syntax-import-attributes": "^7.25.7", "@babel/plugin-syntax-import-meta": "^7.10.4", "@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", @@ -1609,60 +1609,60 @@ "@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.24.7", - "@babel/plugin-transform-async-generator-functions": "^7.25.4", - "@babel/plugin-transform-async-to-generator": "^7.24.7", - "@babel/plugin-transform-block-scoped-functions": "^7.24.7", - "@babel/plugin-transform-block-scoping": "^7.25.0", - "@babel/plugin-transform-class-properties": "^7.25.4", - "@babel/plugin-transform-class-static-block": "^7.24.7", - "@babel/plugin-transform-classes": "^7.25.4", - "@babel/plugin-transform-computed-properties": "^7.24.7", - "@babel/plugin-transform-destructuring": "^7.24.8", - "@babel/plugin-transform-dotall-regex": "^7.24.7", - "@babel/plugin-transform-duplicate-keys": "^7.24.7", - "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.0", - "@babel/plugin-transform-dynamic-import": "^7.24.7", - "@babel/plugin-transform-exponentiation-operator": "^7.24.7", - "@babel/plugin-transform-export-namespace-from": "^7.24.7", - "@babel/plugin-transform-for-of": "^7.24.7", - "@babel/plugin-transform-function-name": "^7.25.1", - "@babel/plugin-transform-json-strings": "^7.24.7", - "@babel/plugin-transform-literals": "^7.25.2", - "@babel/plugin-transform-logical-assignment-operators": "^7.24.7", - "@babel/plugin-transform-member-expression-literals": "^7.24.7", - "@babel/plugin-transform-modules-amd": "^7.24.7", - "@babel/plugin-transform-modules-commonjs": "^7.24.8", - "@babel/plugin-transform-modules-systemjs": "^7.25.0", - "@babel/plugin-transform-modules-umd": "^7.24.7", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.7", - "@babel/plugin-transform-new-target": "^7.24.7", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.7", - "@babel/plugin-transform-numeric-separator": "^7.24.7", - "@babel/plugin-transform-object-rest-spread": "^7.24.7", - "@babel/plugin-transform-object-super": "^7.24.7", - "@babel/plugin-transform-optional-catch-binding": "^7.24.7", - "@babel/plugin-transform-optional-chaining": "^7.24.8", - "@babel/plugin-transform-parameters": "^7.24.7", - "@babel/plugin-transform-private-methods": "^7.25.4", - "@babel/plugin-transform-private-property-in-object": "^7.24.7", - "@babel/plugin-transform-property-literals": "^7.24.7", - "@babel/plugin-transform-regenerator": "^7.24.7", - "@babel/plugin-transform-reserved-words": "^7.24.7", - "@babel/plugin-transform-shorthand-properties": "^7.24.7", - "@babel/plugin-transform-spread": "^7.24.7", - "@babel/plugin-transform-sticky-regex": "^7.24.7", - "@babel/plugin-transform-template-literals": "^7.24.7", - "@babel/plugin-transform-typeof-symbol": "^7.24.8", - "@babel/plugin-transform-unicode-escapes": "^7.24.7", - "@babel/plugin-transform-unicode-property-regex": "^7.24.7", - "@babel/plugin-transform-unicode-regex": "^7.24.7", - "@babel/plugin-transform-unicode-sets-regex": "^7.25.4", + "@babel/plugin-transform-arrow-functions": "^7.25.7", + "@babel/plugin-transform-async-generator-functions": "^7.25.7", + "@babel/plugin-transform-async-to-generator": "^7.25.7", + "@babel/plugin-transform-block-scoped-functions": "^7.25.7", + "@babel/plugin-transform-block-scoping": "^7.25.7", + "@babel/plugin-transform-class-properties": "^7.25.7", + "@babel/plugin-transform-class-static-block": "^7.25.7", + "@babel/plugin-transform-classes": "^7.25.7", + "@babel/plugin-transform-computed-properties": "^7.25.7", + "@babel/plugin-transform-destructuring": "^7.25.7", + "@babel/plugin-transform-dotall-regex": "^7.25.7", + "@babel/plugin-transform-duplicate-keys": "^7.25.7", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.7", + "@babel/plugin-transform-dynamic-import": "^7.25.7", + "@babel/plugin-transform-exponentiation-operator": "^7.25.7", + "@babel/plugin-transform-export-namespace-from": "^7.25.7", + "@babel/plugin-transform-for-of": "^7.25.7", + "@babel/plugin-transform-function-name": "^7.25.7", + "@babel/plugin-transform-json-strings": "^7.25.7", + "@babel/plugin-transform-literals": "^7.25.7", + "@babel/plugin-transform-logical-assignment-operators": "^7.25.7", + "@babel/plugin-transform-member-expression-literals": "^7.25.7", + "@babel/plugin-transform-modules-amd": "^7.25.7", + "@babel/plugin-transform-modules-commonjs": "^7.25.7", + "@babel/plugin-transform-modules-systemjs": "^7.25.7", + "@babel/plugin-transform-modules-umd": "^7.25.7", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.25.7", + "@babel/plugin-transform-new-target": "^7.25.7", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.25.7", + "@babel/plugin-transform-numeric-separator": "^7.25.7", + "@babel/plugin-transform-object-rest-spread": "^7.25.7", + "@babel/plugin-transform-object-super": "^7.25.7", + "@babel/plugin-transform-optional-catch-binding": "^7.25.7", + "@babel/plugin-transform-optional-chaining": "^7.25.7", + "@babel/plugin-transform-parameters": "^7.25.7", + "@babel/plugin-transform-private-methods": "^7.25.7", + "@babel/plugin-transform-private-property-in-object": "^7.25.7", + "@babel/plugin-transform-property-literals": "^7.25.7", + "@babel/plugin-transform-regenerator": "^7.25.7", + "@babel/plugin-transform-reserved-words": "^7.25.7", + "@babel/plugin-transform-shorthand-properties": "^7.25.7", + "@babel/plugin-transform-spread": "^7.25.7", + "@babel/plugin-transform-sticky-regex": "^7.25.7", + "@babel/plugin-transform-template-literals": "^7.25.7", + "@babel/plugin-transform-typeof-symbol": "^7.25.7", + "@babel/plugin-transform-unicode-escapes": "^7.25.7", + "@babel/plugin-transform-unicode-property-regex": "^7.25.7", + "@babel/plugin-transform-unicode-regex": "^7.25.7", + "@babel/plugin-transform-unicode-sets-regex": "^7.25.7", "@babel/preset-modules": "0.1.6-no-external-plugins", "babel-plugin-polyfill-corejs2": "^0.4.10", "babel-plugin-polyfill-corejs3": "^0.10.6", "babel-plugin-polyfill-regenerator": "^0.6.1", - "core-js-compat": "^3.37.1", + "core-js-compat": "^3.38.1", "semver": "^6.3.1" }, "engines": { @@ -1686,16 +1686,10 @@ "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/@babel/regjsgen": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", - "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", - "dev": true - }, "node_modules/@babel/runtime": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.6.tgz", - "integrity": "sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.7.tgz", + "integrity": "sha512-FjoyLe754PMiYsFaN5C94ttGiOmBNYTf6pLr4xXHAT5uctHb092PBszndLDR5XA/jghQvn4n7JMHl7dmTgbm9w==", "dev": true, "dependencies": { "regenerator-runtime": "^0.14.0" @@ -1705,30 +1699,30 @@ } }, "node_modules/@babel/template": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.0.tgz", - "integrity": "sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.7.tgz", + "integrity": "sha512-wRwtAgI3bAS+JGU2upWNL9lSlDcRCqD05BZ1n3X2ONLH1WilFP6O1otQjeMK/1g0pvYcXC7b/qVUB1keofjtZA==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.24.7", - "@babel/parser": "^7.25.0", - "@babel/types": "^7.25.0" + "@babel/code-frame": "^7.25.7", + "@babel/parser": "^7.25.7", + "@babel/types": "^7.25.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.6.tgz", - "integrity": "sha512-9Vrcx5ZW6UwK5tvqsj0nGpp/XzqthkT0dqIc9g1AdtygFToNtTF67XzYS//dm+SAK9cp3B9R4ZO/46p63SCjlQ==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.7.tgz", + "integrity": "sha512-jatJPT1Zjqvh/1FyJs6qAHL+Dzb7sTb+xr7Q+gM1b+1oBsMsQQ4FkVKb6dFlJvLlVssqkRzV05Jzervt9yhnzg==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.25.6", - "@babel/parser": "^7.25.6", - "@babel/template": "^7.25.0", - "@babel/types": "^7.25.6", + "@babel/code-frame": "^7.25.7", + "@babel/generator": "^7.25.7", + "@babel/parser": "^7.25.7", + "@babel/template": "^7.25.7", + "@babel/types": "^7.25.7", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -1737,13 +1731,13 @@ } }, "node_modules/@babel/types": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.6.tgz", - "integrity": "sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==", + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.7.tgz", + "integrity": "sha512-vwIVdXG+j+FOpkwqHRcBgHLYNL7XMkufrlaFvL9o6Ai9sJn9+PdyIL5qa0XzTZw084c+u9LOls53eoZWP/W5WQ==", "dev": true, "dependencies": { - "@babel/helper-string-parser": "^7.24.8", - "@babel/helper-validator-identifier": "^7.24.7", + "@babel/helper-string-parser": "^7.25.7", + "@babel/helper-validator-identifier": "^7.25.7", "to-fast-properties": "^2.0.0" }, "engines": { @@ -1919,9 +1913,9 @@ } }, "node_modules/browserslist": { - "version": "4.23.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.3.tgz", - "integrity": "sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.0.tgz", + "integrity": "sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==", "dev": true, "funding": [ { @@ -1938,8 +1932,8 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001646", - "electron-to-chromium": "^1.5.4", + "caniuse-lite": "^1.0.30001663", + "electron-to-chromium": "^1.5.28", "node-releases": "^2.0.18", "update-browserslist-db": "^1.1.0" }, @@ -1951,9 +1945,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001660", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001660.tgz", - "integrity": "sha512-GacvNTTuATm26qC74pt+ad1fW15mlQ/zuTzzY1ZoIzECTP8HURDfF43kNxPgf7H1jmelCBQTTbBNxdSXOA7Bqg==", + "version": "1.0.30001666", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001666.tgz", + "integrity": "sha512-gD14ICmoV5ZZM1OdzPWmpx+q4GyefaK06zi8hmfHV5xe4/2nOQX3+Dw5o+fSqOws2xVwL9j+anOPFwHzdEdV4g==", "dev": true, "funding": [ { @@ -2076,9 +2070,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.24", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.24.tgz", - "integrity": "sha512-0x0wLCmpdKFCi9ulhvYZebgcPmHTkFVUfU2wzDykadkslKwT4oAmDTHEKLnlrDsMGZe4B+ksn8quZfZjYsBetA==", + "version": "1.5.31", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.31.tgz", + "integrity": "sha512-QcDoBbQeYt0+3CWcK/rEbuHvwpbT/8SV9T3OSgs6cX1FlcUAkgrkqbg9zLnDrMM/rLamzQwal4LYFCiWk861Tg==", "dev": true }, "node_modules/escalade": { @@ -2109,9 +2103,9 @@ } }, "node_modules/filepond": { - "version": "4.31.3", - "resolved": "https://registry.npmjs.org/filepond/-/filepond-4.31.3.tgz", - "integrity": "sha512-XMbPmfkYzUsdQrJJfa3fXigOgTwksUKVPzlGaA4Kwxg833+Vsr09YkKWBq5SbWJHlMAu6CmEOQo+EzjMUtJruw==" + "version": "4.31.4", + "resolved": "https://registry.npmjs.org/filepond/-/filepond-4.31.4.tgz", + "integrity": "sha512-3kR87Rsw2OP8CktlIehdbFjWB33GEH5iLs8izl2OcZGOszUFWYTjRY6pffLpjz/gRE61u1F67rZ2++ujFiUxPQ==" }, "node_modules/filepond-plugin-file-encode": { "version": "2.1.14", @@ -2415,15 +2409,15 @@ "dev": true }, "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", "dev": true, "bin": { "jsesc": "bin/jsesc" }, "engines": { - "node": ">=4" + "node": ">=6" } }, "node_modules/json5": { @@ -2608,15 +2602,15 @@ } }, "node_modules/regexpu-core": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", - "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.1.1.tgz", + "integrity": "sha512-k67Nb9jvwJcJmVpw0jPttR1/zVfnKf8Km0IPatrU/zJ5XeG3+Slx0xLXs9HByJSzXzrlz5EDvN6yLNMDc2qdnw==", "dev": true, "dependencies": { - "@babel/regjsgen": "^0.8.0", "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.1.0", - "regjsparser": "^0.9.1", + "regenerate-unicode-properties": "^10.2.0", + "regjsgen": "^0.8.0", + "regjsparser": "^0.11.0", "unicode-match-property-ecmascript": "^2.0.0", "unicode-match-property-value-ecmascript": "^2.1.0" }, @@ -2624,27 +2618,24 @@ "node": ">=4" } }, + "node_modules/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", + "dev": true + }, "node_modules/regjsparser": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", - "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.11.0.tgz", + "integrity": "sha512-vTbzVAjQDzwQdKuvj7qEq6OlAprCjE656khuGQ4QaBLg7abQ9I9ISpmLuc6inWe7zP75AECjqUa4g4sdQvOXhg==", "dev": true, "dependencies": { - "jsesc": "~0.5.0" + "jsesc": "~3.0.2" }, "bin": { "regjsparser": "bin/parser" } }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - } - }, "node_modules/resolve": { "version": "1.22.8", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", @@ -2767,9 +2758,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz", - "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", + "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", "dev": true, "funding": [ { @@ -2786,8 +2777,8 @@ } ], "dependencies": { - "escalade": "^3.1.2", - "picocolors": "^1.0.1" + "escalade": "^3.2.0", + "picocolors": "^1.1.0" }, "bin": { "update-browserslist-db": "cli.js" diff --git a/packages/file-filepond/assets/package.json b/packages/file-filepond/assets/package.json index 6f3160c..39c9ae5 100644 --- a/packages/file-filepond/assets/package.json +++ b/packages/file-filepond/assets/package.json @@ -10,11 +10,63 @@ "webpackMode": "eager", "fetch": "eager", "enabled": true, - "autoimport": {} + "autoimport": { + "filepond/dist/filepond.min.css": true, + "filepond-plugin-file-poster/dist/filepond-plugin-file-poster.css": true, + "filepond-plugin-image-preview/dist/filepond-plugin-image-preview.css": true, + "filepond-plugin-image-edit/dist/filepond-plugin-image-edit.css": true + } } }, "importmap": { - "@hotwired/stimulus": "^3.0" + "@hotwired/stimulus": "^3.0", + "filepond": "^4.31.4", + "filepond/dist/filepond.min.css": "^4.31.4", + "filepond-plugin-file-encode": "^2.1.11", + "filepond-plugin-file-metadata": "^1.0.8", + "filepond-plugin-file-poster": "^2.5.1", + "filepond-plugin-file-poster/dist/filepond-plugin-file-poster.css": "^2.5.1", + "filepond-plugin-file-validate-size": "^2.2.8", + "filepond-plugin-file-validate-type": "^1.2.8", + "filepond-plugin-image-crop": "^2.0.6", + "filepond-plugin-image-edit": "^1.6.3", + "filepond-plugin-image-edit/dist/filepond-plugin-image-edit.css": "^1.6.3", + "filepond-plugin-image-exif-orientation": "^1.0.11", + "filepond-plugin-image-preview": "^4.6.11", + "filepond-plugin-image-preview/dist/filepond-plugin-image-preview.css": "^4.6.11", + "filepond-plugin-image-resize": "^2.0.10", + "filepond-plugin-image-transform": "^3.8.7", + "filepond-plugin-image-validate-size": "^1.2.7", + "filepond/locale/ar-ar.js": "^4.31.4", + "filepond/locale/cs-cz.js": "^4.31.4", + "filepond/locale/da-dk.js": "^4.31.4", + "filepond/locale/de-de.js": "^4.31.4", + "filepond/locale/el-el.js": "^4.31.4", + "filepond/locale/en-en.js": "^4.31.4", + "filepond/locale/es-es.js": "^4.31.4", + "filepond/locale/fa_ir.js": "^4.31.4", + "filepond/locale/fi-fi.js": "^4.31.4", + "filepond/locale/fr-fr.js": "^4.31.4", + "filepond/locale/he-he.js": "^4.31.4", + "filepond/locale/hr-hr.js": "^4.31.4", + "filepond/locale/hu-hu.js": "^4.31.4", + "filepond/locale/id-id.js": "^4.31.4", + "filepond/locale/it-it.js": "^4.31.4", + "filepond/locale/ja-ja.js": "^4.31.4", + "filepond/locale/lt-lt.js": "^4.31.4", + "filepond/locale/nl-nl.js": "^4.31.4", + "filepond/locale/no_nb.js": "^4.31.4", + "filepond/locale/pl-pl.js": "^4.31.4", + "filepond/locale/pt-br.js": "^4.31.4", + "filepond/locale/ro-ro.js": "^4.31.4", + "filepond/locale/ru-ru.js": "^4.31.4", + "filepond/locale/sk-sk.js": "^4.31.4", + "filepond/locale/sv_se.js": "^4.31.4", + "filepond/locale/tr-tr.js": "^4.31.4", + "filepond/locale/uk-ua.js": "^4.31.4", + "filepond/locale/vi-vi.js": "^4.31.4", + "filepond/locale/zh-cn.js": "^4.31.4", + "filepond/locale/zh-tw.js": "^4.31.4" } }, "scripts": { @@ -31,7 +83,7 @@ "@hotwired/stimulus": "^3.0" }, "dependencies": { - "filepond": "^4.31.3", + "filepond": "^4.31.4", "filepond-plugin-file-encode": "^2.1.11", "filepond-plugin-file-metadata": "^1.0.8", "filepond-plugin-file-poster": "^2.5.1", diff --git a/packages/file-filepond/assets/src/filepond.js b/packages/file-filepond/assets/src/filepond.js index d351cba..f67703e 100644 --- a/packages/file-filepond/assets/src/filepond.js +++ b/packages/file-filepond/assets/src/filepond.js @@ -139,12 +139,20 @@ export default class extends Controller { let files = [] let input + // get the file input element for (const child of this.element.children) { if (child.tagName === 'INPUT' && child.type === 'file') { input = child } } + // remove input class attribute + input.removeAttribute('class') + + // remove input style attribute + input.removeAttribute('style') + + // get the files from the data elements and process them for (const child of this.element.children) { if (child.tagName !== 'DATA') { continue @@ -152,7 +160,7 @@ export default class extends Controller { let file = { // sentinel value sent to server. if this is value is sent - // to the server, then the user didn't remove the image from + // to the server, then the user has not removed the image from // the filepond field source: child.dataset.id || '__NOT_DELETED__', @@ -175,6 +183,7 @@ export default class extends Controller { files.push(file) } + // create filepond instance FilePond.create(input, { ...getCurrentLocale(), storeAsFile: true, diff --git a/packages/file-filepond/composer.json b/packages/file-filepond/composer.json index 32c632a..6d112ce 100644 --- a/packages/file-filepond/composer.json +++ b/packages/file-filepond/composer.json @@ -25,13 +25,13 @@ } }, "require": { - "rekalogika/file": "^1.10.1", - "rekalogika/file-association-entity": "^1.10.1", - "rekalogika/file-bundle": "^1.10.1", - "rekalogika/file-contracts": "^1.10.1", - "rekalogika/file-image": "^1.10.1", - "rekalogika/file-server": "^1.10.1", - "rekalogika/file-symfony-bridge": "^1.10.1", + "rekalogika/file": "^1.11", + "rekalogika/file-association-entity": "^1.11", + "rekalogika/file-bundle": "^1.11", + "rekalogika/file-contracts": "^1.11", + "rekalogika/file-image": "^1.11", + "rekalogika/file-server": "^1.11", + "rekalogika/file-symfony-bridge": "^1.11", "rekalogika/temporary-url-bundle": "^1.3", "symfony/form": "^6.2 || ^7.0", "symfony/options-resolver": "^6.2 || ^7.0", @@ -39,7 +39,7 @@ }, "extra": { "branch-alias": { - "dev-main": "1.11-dev" + "dev-main": "1.12-dev" } } } diff --git a/packages/file-image/composer.json b/packages/file-image/composer.json index 2493d1c..0cc06bd 100644 --- a/packages/file-image/composer.json +++ b/packages/file-image/composer.json @@ -27,15 +27,15 @@ }, "require": { "intervention/image": "^3.3", - "rekalogika/file-contracts": "^1.10.1", - "rekalogika/file-derivation": "^1.10.1", + "rekalogika/file-contracts": "^1.11", + "rekalogika/file-derivation": "^1.11", "symfony/service-contracts": "^3.3", "twig/twig": "^2.12|^3.0", "webmozart/assert": "^1.11" }, "extra": { "branch-alias": { - "dev-main": "1.11-dev" + "dev-main": "1.12-dev" } } } diff --git a/packages/file-metadata-contracts/composer.json b/packages/file-metadata-contracts/composer.json index 012f0c7..cd23f55 100644 --- a/packages/file-metadata-contracts/composer.json +++ b/packages/file-metadata-contracts/composer.json @@ -22,7 +22,7 @@ }, "extra": { "branch-alias": { - "dev-main": "1.11-dev" + "dev-main": "1.12-dev" } } } diff --git a/packages/file-metadata/composer.json b/packages/file-metadata/composer.json index 0acb718..253cf7a 100644 --- a/packages/file-metadata/composer.json +++ b/packages/file-metadata/composer.json @@ -25,13 +25,13 @@ "require": { "cardinalby/content-disposition": "^1.1", "fileeye/mimemap": "^2.0", - "rekalogika/file-contracts": "^1.10.1", - "rekalogika/file-metadata-contracts": "^1.10.1", + "rekalogika/file-contracts": "^1.11", + "rekalogika/file-metadata-contracts": "^1.11", "symfony/translation-contracts": "^3.0" }, "extra": { "branch-alias": { - "dev-main": "1.11-dev" + "dev-main": "1.12-dev" } } } diff --git a/packages/file-null/composer.json b/packages/file-null/composer.json index 8b57201..c3cc772 100644 --- a/packages/file-null/composer.json +++ b/packages/file-null/composer.json @@ -25,12 +25,12 @@ }, "require": { "psr/http-message": "^1.0 || ^2.0", - "rekalogika/file-contracts": "^1.10.1", + "rekalogika/file-contracts": "^1.11", "symfony/translation-contracts": "^3.0" }, "extra": { "branch-alias": { - "dev-main": "1.11-dev" + "dev-main": "1.12-dev" } } } diff --git a/packages/file-oneup-uploader-bridge/composer.json b/packages/file-oneup-uploader-bridge/composer.json index 83259fe..5a87537 100644 --- a/packages/file-oneup-uploader-bridge/composer.json +++ b/packages/file-oneup-uploader-bridge/composer.json @@ -23,13 +23,13 @@ } }, "require": { - "oneup/uploader-bundle": "^4.0", - "rekalogika/file-contracts": "^1.10.1", - "rekalogika/file": "^1.10.1" + "oneup/uploader-bundle": "^5.0", + "rekalogika/file-contracts": "^1.11", + "rekalogika/file": "^1.11" }, "extra": { "branch-alias": { - "dev-main": "1.11-dev" + "dev-main": "1.12-dev" } } } diff --git a/packages/file-server/composer.json b/packages/file-server/composer.json index fc996d1..e768dde 100644 --- a/packages/file-server/composer.json +++ b/packages/file-server/composer.json @@ -23,14 +23,14 @@ } }, "require": { - "rekalogika/file-contracts": "^1.10.1", - "rekalogika/file-symfony-bridge": "^1.10.1", + "rekalogika/file-contracts": "^1.11", + "rekalogika/file-symfony-bridge": "^1.11", "rekalogika/temporary-url-bundle": "^1.3", "symfony/http-foundation": "^6.2 || ^7.0" }, "extra": { "branch-alias": { - "dev-main": "1.11-dev" + "dev-main": "1.12-dev" } } } diff --git a/packages/file-symfony-bridge/composer.json b/packages/file-symfony-bridge/composer.json index 16a82a1..a643c42 100644 --- a/packages/file-symfony-bridge/composer.json +++ b/packages/file-symfony-bridge/composer.json @@ -26,16 +26,16 @@ } }, "require": { - "rekalogika/file": "^1.10.1", - "rekalogika/file-contracts": "^1.10.1", - "rekalogika/file-metadata-contracts": "^1.10.1", + "rekalogika/file": "^1.11", + "rekalogika/file-contracts": "^1.11", + "rekalogika/file-metadata-contracts": "^1.11", "symfony/form": "^6.2 || ^7.0", "symfony/http-foundation": "^6.2 || ^7.0", "symfony/validator": "^6.3 || ^7.1" }, "extra": { "branch-alias": { - "dev-main": "1.11-dev" + "dev-main": "1.12-dev" } } } diff --git a/packages/file-symfony-bridge/src/HttpFoundation/ToHttpFoundationFileAdapter.php b/packages/file-symfony-bridge/src/HttpFoundation/ToHttpFoundationFileAdapter.php index 96a89b8..f870e06 100644 --- a/packages/file-symfony-bridge/src/HttpFoundation/ToHttpFoundationFileAdapter.php +++ b/packages/file-symfony-bridge/src/HttpFoundation/ToHttpFoundationFileAdapter.php @@ -188,6 +188,7 @@ public function getPath(): string #[\Override] public function getPathInfo($class = null): ?\SplFileInfo { + // @phpstan-ignore return.type return $this->getHttpFoundationFile()->getPathInfo($class); } diff --git a/packages/file-tree-contracts/composer.json b/packages/file-tree-contracts/composer.json index 050e6ae..d06d3b4 100644 --- a/packages/file-tree-contracts/composer.json +++ b/packages/file-tree-contracts/composer.json @@ -21,11 +21,11 @@ } }, "require": { - "rekalogika/file-contracts": "^1.10.1" + "rekalogika/file-contracts": "^1.11" }, "extra": { "branch-alias": { - "dev-main": "1.11-dev" + "dev-main": "1.12-dev" } } } diff --git a/packages/file-zip/composer.json b/packages/file-zip/composer.json index 0689c8f..52549a3 100644 --- a/packages/file-zip/composer.json +++ b/packages/file-zip/composer.json @@ -27,8 +27,8 @@ }, "require": { "psr/http-message": "^1.0 || ^2.0", - "rekalogika/file-contracts": "^1.10.1", - "rekalogika/file-metadata": "^1.10.1", + "rekalogika/file-contracts": "^1.11", + "rekalogika/file-metadata": "^1.11", "rekalogika/temporary-url-bundle": "^1.3", "maennchen/zipstream-php": "^3.1", "symfony/http-foundation": "^6.2 || ^7.0", @@ -36,7 +36,7 @@ }, "extra": { "branch-alias": { - "dev-main": "1.11-dev" + "dev-main": "1.12-dev" } } } diff --git a/packages/file/composer.json b/packages/file/composer.json index 56432de..1e0b87a 100644 --- a/packages/file/composer.json +++ b/packages/file/composer.json @@ -33,8 +33,8 @@ "psr/http-factory-implementation": "^1.0", "league/flysystem": "^3.16", "league/mime-type-detection": "^1.0.0", - "rekalogika/file-contracts": "^1.10.1", - "rekalogika/file-metadata": "^1.10.1", + "rekalogika/file-contracts": "^1.11", + "rekalogika/file-metadata": "^1.11", "symfony/deprecation-contracts": "^3.1" }, "require-dev": { @@ -47,7 +47,7 @@ }, "extra": { "branch-alias": { - "dev-main": "1.11-dev" + "dev-main": "1.12-dev" } } } diff --git a/phpstan.neon.dist b/phpstan.neon.dist index 34675c6..91eeea5 100644 --- a/phpstan.neon.dist +++ b/phpstan.neon.dist @@ -2,7 +2,7 @@ parameters: level: max paths: - packages - - tests + - tests/src # exceptions: # check: # missingCheckedExceptionInThrows: true diff --git a/phpunit.xml.dist b/phpunit.xml.dist index 25f2468..1dba7de 100644 --- a/phpunit.xml.dist +++ b/phpunit.xml.dist @@ -9,11 +9,19 @@ failOnWarning="false" cacheDirectory=".phpunit.cache" beStrictAboutCoverageMetadata="true"> + + + + + - tests + tests/src/ + packages diff --git a/psalm.xml b/psalm.xml index f3bfb4d..d68c956 100644 --- a/psalm.xml +++ b/psalm.xml @@ -10,7 +10,7 @@ - + @@ -21,8 +21,8 @@ - - + + @@ -34,8 +34,8 @@ - - + + diff --git a/tests/FileBundle/IntegrationTest.php b/tests/FileBundle/IntegrationTest.php deleted file mode 100644 index cf832ad..0000000 --- a/tests/FileBundle/IntegrationTest.php +++ /dev/null @@ -1,43 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE file - * that was distributed with this source code. - */ - -namespace Rekalogika\File\Tests\FileBundle; - -use PHPUnit\Framework\TestCase; -use Psr\Container\ContainerInterface; -use Rekalogika\File\Tests\TestKernel; - -class IntegrationTest extends TestCase -{ - private ?ContainerInterface $container = null; - - #[\Override] - protected function setUp(): void - { - $kernel = new TestKernel(); - $kernel->boot(); - - $this->container = $kernel->getContainer(); - } - - public function testWiring(): void - { - foreach (TestKernel::getServiceIds() as $serviceId) { - $this->assertInstanceOf( - $serviceId, - $this->container?->get('test.' . $serviceId), - ); - } - } - -} diff --git a/tests/FileServer/TemporaryUrlTest.php b/tests/FileServer/TemporaryUrlTest.php deleted file mode 100644 index 29fc4a4..0000000 --- a/tests/FileServer/TemporaryUrlTest.php +++ /dev/null @@ -1,68 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE file - * that was distributed with this source code. - */ - -namespace Rekalogika\File\Tests\FileServer; - -use PHPUnit\Framework\TestCase; -use Psr\Container\ContainerInterface; -use Rekalogika\File\File; -use Rekalogika\File\FilePointer; -use Rekalogika\File\Tests\TestKernel; -use Rekalogika\TemporaryUrl\TemporaryUrlGeneratorInterface; - -class TemporaryUrlTest extends TestCase -{ - private ?ContainerInterface $container = null; - - #[\Override] - protected function setUp(): void - { - $kernel = new TestKernel(); - $kernel->boot(); - - $this->container = $kernel->getContainer(); - } - - public function testTemporaryUrlWithFilePointer(): void - { - $temporaryUrlGenerator = $this->container - ?->get('test.' . TemporaryUrlGeneratorInterface::class); - - $this->assertInstanceOf( - TemporaryUrlGeneratorInterface::class, - $temporaryUrlGenerator, - ); - - $filePointer = new FilePointer('default', 'test.txt'); - $url = $temporaryUrlGenerator->generateUrl($filePointer); - - $this->assertStringContainsString('__route__', $url); - } - - public function testTemporaryUrlWithFile(): void - { - $temporaryUrlGenerator = $this->container - ?->get('test.' . TemporaryUrlGeneratorInterface::class); - - $this->assertInstanceOf( - TemporaryUrlGeneratorInterface::class, - $temporaryUrlGenerator, - ); - - $file = new File(__DIR__ . '/../Resources/localFile.txt'); - - $url = $temporaryUrlGenerator->generateUrl($file); - - $this->assertStringContainsString('__route__', $url); - } -} diff --git a/tests/assets/app.js b/tests/assets/app.js new file mode 100644 index 0000000..8725cc5 --- /dev/null +++ b/tests/assets/app.js @@ -0,0 +1,10 @@ +import './bootstrap.js'; +/* + * Welcome to your app's main JavaScript file! + * + * This file will be included onto the page via the importmap() Twig function, + * which should already be in your base.html.twig. + */ +import './styles/app.css'; + +console.log('This log comes from assets/app.js - welcome to AssetMapper! 🎉'); diff --git a/tests/assets/bootstrap.js b/tests/assets/bootstrap.js new file mode 100644 index 0000000..d4e50c9 --- /dev/null +++ b/tests/assets/bootstrap.js @@ -0,0 +1,5 @@ +import { startStimulusApp } from '@symfony/stimulus-bundle'; + +const app = startStimulusApp(); +// register any custom, 3rd party controllers here +// app.register('some_controller_name', SomeImportedController); diff --git a/tests/assets/controllers.json b/tests/assets/controllers.json new file mode 100644 index 0000000..0605f49 --- /dev/null +++ b/tests/assets/controllers.json @@ -0,0 +1,24 @@ +{ + "controllers": { + "@rekalogika/file-filepond": { + "filepond": { + "enabled": true, + "fetch": "eager", + "autoimport": { + "filepond/dist/filepond.min.css": true, + "filepond-plugin-file-poster/dist/filepond-plugin-file-poster.css": true, + "filepond-plugin-image-preview/dist/filepond-plugin-image-preview.css": true, + "filepond-plugin-image-edit/dist/filepond-plugin-image-edit.css": true + } + } + }, + "@rekalogika/temporary-url-bundle": { + "autoexpire": { + "enabled": true, + "fetch": "eager", + "autoimport": [] + } + } + }, + "entrypoints": [] +} diff --git a/tests/assets/controllers/hello_controller.js b/tests/assets/controllers/hello_controller.js new file mode 100644 index 0000000..e847027 --- /dev/null +++ b/tests/assets/controllers/hello_controller.js @@ -0,0 +1,16 @@ +import { Controller } from '@hotwired/stimulus'; + +/* + * This is an example Stimulus controller! + * + * Any element with a data-controller="hello" attribute will cause + * this controller to be executed. The name "hello" comes from the filename: + * hello_controller.js -> "hello" + * + * Delete this file or adapt it for your use! + */ +export default class extends Controller { + connect() { + this.element.textContent = 'Hello Stimulus! Edit me in assets/controllers/hello_controller.js'; + } +} diff --git a/tests/assets/styles/app.css b/tests/assets/styles/app.css new file mode 100644 index 0000000..dd6181a --- /dev/null +++ b/tests/assets/styles/app.css @@ -0,0 +1,3 @@ +body { + background-color: skyblue; +} diff --git a/tests/bin/console b/tests/bin/console new file mode 100755 index 0000000..c4e50d9 --- /dev/null +++ b/tests/bin/console @@ -0,0 +1,29 @@ +#!/usr/bin/env php + + * + * For the full copyright and license information, please view the LICENSE file + * that was distributed with this source code. + */ + +namespace Rekalogika\Mapper\Tests; + +use Rekalogika\File\Tests\TestKernel; +use Symfony\Bundle\FrameworkBundle\Console\Application; + +require_once dirname(__DIR__).'/../vendor/autoload_runtime.php'; + +return function (array $context) { + $env = $context['APP_ENV'] ?? 'test'; + assert(is_string($env)); + + $kernel = new TestKernel($env, (bool) $context['APP_DEBUG']); + + return new Application($kernel); +}; diff --git a/tests/config/packages/asset_mapper.yaml b/tests/config/packages/asset_mapper.yaml new file mode 100644 index 0000000..3de5105 --- /dev/null +++ b/tests/config/packages/asset_mapper.yaml @@ -0,0 +1,5 @@ +framework: + asset_mapper: + # The paths to make available to the asset mapper. + paths: + - assets/ \ No newline at end of file diff --git a/tests/config/packages/debug.yaml b/tests/config/packages/debug.yaml new file mode 100644 index 0000000..26d4e53 --- /dev/null +++ b/tests/config/packages/debug.yaml @@ -0,0 +1,4 @@ +debug: + # Forwards VarDumper Data clones to a centralized server allowing to inspect dumps on CLI or in your browser. + # See the "server:dump" command to start a new server. + dump_destination: "tcp://%env(VAR_DUMPER_SERVER)%" diff --git a/tests/config/packages/doctrine.yaml b/tests/config/packages/doctrine.yaml new file mode 100644 index 0000000..796ea38 --- /dev/null +++ b/tests/config/packages/doctrine.yaml @@ -0,0 +1,20 @@ +doctrine: + dbal: + driver: pdo_sqlite + memory: true + charset: UTF8 + + orm: + auto_generate_proxy_classes: true + naming_strategy: doctrine.orm.naming_strategy.underscore_number_aware + controller_resolver: + auto_mapping: false + enable_lazy_ghost_objects: true + report_fields_where_declared: true + mappings: + App: + is_bundle: false + type: attribute + dir: "%kernel.project_dir%/src/App/Entity" + prefix: 'Rekalogika\File\Tests\App\Entity' + alias: App diff --git a/tests/config/packages/framework.yaml b/tests/config/packages/framework.yaml new file mode 100644 index 0000000..970e4da --- /dev/null +++ b/tests/config/packages/framework.yaml @@ -0,0 +1,16 @@ +parameters: + kernel.secret: test + +framework: + test: true + http_method_override: false + handle_all_throwables: true + php_errors: + log: true + validation: + email_validation_mode: html5 + http_client: + enabled: true + max_host_connections: 1 + default_options: + timeout: 10 diff --git a/tests/config/packages/routing.yaml b/tests/config/packages/routing.yaml new file mode 100644 index 0000000..7e97762 --- /dev/null +++ b/tests/config/packages/routing.yaml @@ -0,0 +1,3 @@ +framework: + router: + utf8: true diff --git a/tests/config/packages/translation.yaml b/tests/config/packages/translation.yaml new file mode 100644 index 0000000..90270e5 --- /dev/null +++ b/tests/config/packages/translation.yaml @@ -0,0 +1,4 @@ +framework: + default_locale: en + translator: + default_path: '%kernel.project_dir%/translations' \ No newline at end of file diff --git a/tests/config/packages/twig.yaml b/tests/config/packages/twig.yaml new file mode 100644 index 0000000..5ad6061 --- /dev/null +++ b/tests/config/packages/twig.yaml @@ -0,0 +1,2 @@ +twig: + form_themes: ['bootstrap_5_horizontal_layout.html.twig'] diff --git a/tests/config/packages/web_profiler.yaml b/tests/config/packages/web_profiler.yaml new file mode 100644 index 0000000..6366b91 --- /dev/null +++ b/tests/config/packages/web_profiler.yaml @@ -0,0 +1,11 @@ +web_profiler: + toolbar: true + intercept_redirects: false + +framework: + profiler: + enabled: true + collect: true + only_exceptions: false + collect_serializer_data: true + only_main_requests: false diff --git a/tests/config/routes/test.yaml b/tests/config/routes/test.yaml new file mode 100644 index 0000000..214b772 --- /dev/null +++ b/tests/config/routes/test.yaml @@ -0,0 +1,5 @@ +test: + resource: + path: '../../src/App/Controller/' + namespace: 'Rekalogika\File\Tests\App\Controller' + type: attribute diff --git a/tests/config/routes/web_profiler.yaml b/tests/config/routes/web_profiler.yaml new file mode 100644 index 0000000..ce3155d --- /dev/null +++ b/tests/config/routes/web_profiler.yaml @@ -0,0 +1,7 @@ +web_profiler_wdt: + resource: "@WebProfilerBundle/Resources/config/routing/wdt.xml" + prefix: /_wdt + +web_profiler_profiler: + resource: "@WebProfilerBundle/Resources/config/routing/profiler.xml" + prefix: /_profiler diff --git a/tests/config/services.php b/tests/config/services.php new file mode 100644 index 0000000..83a6201 --- /dev/null +++ b/tests/config/services.php @@ -0,0 +1,29 @@ + + * + * For the full copyright and license information, please view the LICENSE file + * that was distributed with this source code. + */ + +use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator; + +return static function (ContainerConfigurator $containerConfigurator): void { + $services = $containerConfigurator->services(); + + $services->defaults() + ->autowire() + ->autoconfigure() + ->public(); + + $services + ->load('Rekalogika\\File\\Tests\\App\\', '../src/App/*') + ->exclude('../src/App/{TestKernel.php,Entity}'); + + +}; diff --git a/tests/importmap.php b/tests/importmap.php new file mode 100644 index 0000000..5628bfa --- /dev/null +++ b/tests/importmap.php @@ -0,0 +1,173 @@ + [ + 'path' => './assets/app.js', + 'entrypoint' => true, + ], + '@symfony/stimulus-bundle' => [ + 'path' => '../vendor/symfony/stimulus-bundle/assets/dist/loader.js', + ], + '@hotwired/stimulus' => [ + 'version' => '3.2.2', + ], + '@hotwired/turbo' => [ + 'version' => '8.0.10', + ], + 'filepond' => [ + 'version' => '^4.31.3' + ], + 'filepond/dist/filepond.min.css' => [ + 'version' => '^4.31.3', + 'type' => 'css' + ], + 'filepond-plugin-file-encode' => [ + 'version' => '^2.1.11' + ], + 'filepond-plugin-file-metadata' => [ + 'version' => '^1.0.8' + ], + 'filepond-plugin-file-poster' => [ + 'version' => '^2.5.1' + ], + 'filepond-plugin-file-poster/dist/filepond-plugin-file-poster.css' => [ + 'version' => '^2.5.1', + 'type' => 'css' + ], + 'filepond-plugin-file-validate-size' => [ + 'version' => '^2.2.8' + ], + 'filepond-plugin-file-validate-type' => [ + 'version' => '^1.2.8' + ], + 'filepond-plugin-image-crop' => [ + 'version' => '^2.0.6' + ], + 'filepond-plugin-image-edit' => [ + 'version' => '^1.6.3' + ], + 'filepond-plugin-image-edit/dist/filepond-plugin-image-edit.css' => [ + 'version' => '^1.6.3', + 'type' => 'css' + ], + 'filepond-plugin-image-exif-orientation' => [ + 'version' => '^1.0.11' + ], + 'filepond-plugin-image-preview' => [ + 'version' => '^4.6.11' + ], + 'filepond-plugin-image-preview/dist/filepond-plugin-image-preview.css' => [ + 'version' => '^4.6.11', + 'type' => 'css' + ], + 'filepond-plugin-image-resize' => [ + 'version' => '^2.0.10' + ], + 'filepond-plugin-image-transform' => [ + 'version' => '^3.8.7' + ], + 'filepond-plugin-image-validate-size' => [ + 'version' => '^1.2.7' + ], + 'filepond/locale/ar-ar.js' => [ + 'version' => '^4.31.3' + ], + 'filepond/locale/cs-cz.js' => [ + 'version' => '^4.31.3' + ], + 'filepond/locale/da-dk.js' => [ + 'version' => '^4.31.3' + ], + 'filepond/locale/de-de.js' => [ + 'version' => '^4.31.3' + ], + 'filepond/locale/el-el.js' => [ + 'version' => '^4.31.3' + ], + 'filepond/locale/en-en.js' => [ + 'version' => '^4.31.3' + ], + 'filepond/locale/es-es.js' => [ + 'version' => '^4.31.3' + ], + 'filepond/locale/fa_ir.js' => [ + 'version' => '^4.31.3' + ], + 'filepond/locale/fi-fi.js' => [ + 'version' => '^4.31.3' + ], + 'filepond/locale/fr-fr.js' => [ + 'version' => '^4.31.3' + ], + 'filepond/locale/he-he.js' => [ + 'version' => '^4.31.3' + ], + 'filepond/locale/hr-hr.js' => [ + 'version' => '^4.31.3' + ], + 'filepond/locale/hu-hu.js' => [ + 'version' => '^4.31.3' + ], + 'filepond/locale/id-id.js' => [ + 'version' => '^4.31.3' + ], + 'filepond/locale/it-it.js' => [ + 'version' => '^4.31.3' + ], + 'filepond/locale/ja-ja.js' => [ + 'version' => '^4.31.3' + ], + 'filepond/locale/lt-lt.js' => [ + 'version' => '^4.31.3' + ], + 'filepond/locale/nl-nl.js' => [ + 'version' => '^4.31.3' + ], + 'filepond/locale/no_nb.js' => [ + 'version' => '^4.31.3' + ], + 'filepond/locale/pl-pl.js' => [ + 'version' => '^4.31.3' + ], + 'filepond/locale/pt-br.js' => [ + 'version' => '^4.31.3' + ], + 'filepond/locale/ro-ro.js' => [ + 'version' => '^4.31.3' + ], + 'filepond/locale/ru-ru.js' => [ + 'version' => '^4.31.3' + ], + 'filepond/locale/sk-sk.js' => [ + 'version' => '^4.31.3' + ], + 'filepond/locale/sv_se.js' => [ + 'version' => '^4.31.3' + ], + 'filepond/locale/tr-tr.js' => [ + 'version' => '^4.31.3' + ], + 'filepond/locale/uk-ua.js' => [ + 'version' => '^4.31.3' + ], + 'filepond/locale/vi-vi.js' => [ + 'version' => '^4.31.3' + ], + 'filepond/locale/zh-cn.js' => [ + 'version' => '^4.31.3' + ], + 'filepond/locale/zh-tw.js' => [ + 'version' => '^4.31.3' + ] +]; diff --git a/tests/public/.htaccess b/tests/public/.htaccess new file mode 100644 index 0000000..1cd962f --- /dev/null +++ b/tests/public/.htaccess @@ -0,0 +1,22 @@ +DirectoryIndex index.php + + Options -MultiViews + + +RewriteEngine On + +RewriteCond %{REQUEST_URI}::$0 ^(/.+)/(.*)::\2$ +RewriteRule .* - [E=BASE:%1] + +# Sets the HTTP_AUTHORIZATION header removed by Apache +RewriteCond %{HTTP:Authorization} .+ +RewriteRule ^ - [E=HTTP_AUTHORIZATION:%0] + +# Removes the /index.php/ part from a URL, if present +RewriteCond %{ENV:REDIRECT_STATUS} ="" +RewriteRule ^index\.php(?:/(.*)|$) %{ENV:BASE}/$1 [R=301,L] + +# If the requested filename exists, simply serve it. +# Otherwise rewrite all other queries to the front controller. +RewriteCond %{REQUEST_FILENAME} !-f +RewriteRule ^ %{ENV:BASE}/index.php [L] diff --git a/tests/public/index.php b/tests/public/index.php new file mode 100644 index 0000000..e372ed1 --- /dev/null +++ b/tests/public/index.php @@ -0,0 +1,18 @@ + + * + * For the full copyright and license information, please view the LICENSE file + * that was distributed with this source code. + */ + +require_once __DIR__ . '/../../vendor/autoload_runtime.php'; + +return fn(array $context): TestKernel => new TestKernel(); diff --git a/tests/src/App/Controller/TestController.php b/tests/src/App/Controller/TestController.php new file mode 100644 index 0000000..04bd087 --- /dev/null +++ b/tests/src/App/Controller/TestController.php @@ -0,0 +1,28 @@ + + * + * For the full copyright and license information, please view the LICENSE file + * that was distributed with this source code. + */ + +namespace Rekalogika\File\Tests\App\Controller; + +use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; +use Symfony\Component\HttpFoundation\Response; +use Symfony\Component\Routing\Attribute\Route; + +class TestController extends AbstractController +{ + #[Route('/', name: 'index')] + public function index(): Response + { + return $this->render('index.html.twig'); + } + +} diff --git a/tests/src/App/Entity/User.php b/tests/src/App/Entity/User.php new file mode 100644 index 0000000..00d65af --- /dev/null +++ b/tests/src/App/Entity/User.php @@ -0,0 +1,51 @@ + + * + * For the full copyright and license information, please view the LICENSE file + * that was distributed with this source code. + */ + +namespace Rekalogika\File\Tests\App\Entity; + +use Doctrine\ORM\Mapping as ORM; + +#[ORM\Entity] +class User +{ + #[ORM\Id, ORM\GeneratedValue, ORM\Column(type: 'integer')] + private ?int $id = null; + + #[ORM\Column(type: 'string', length: 255)] + private string $name; + + #[ORM\Column(type: 'string', length: 255)] + private string $email; + + public function __construct(string $name, string $email) + { + $this->name = $name; + $this->email = $email; + } + + public function getId(): ?int + { + return $this->id; + } + + public function getName(): string + { + return $this->name; + } + + public function getEmail(): string + { + return $this->email; + } + +} diff --git a/tests/Factory.php b/tests/src/Factory.php similarity index 100% rename from tests/Factory.php rename to tests/src/Factory.php diff --git a/tests/TestKernel.php b/tests/src/TestKernel.php similarity index 73% rename from tests/TestKernel.php rename to tests/src/TestKernel.php index 734496d..e825868 100644 --- a/tests/TestKernel.php +++ b/tests/src/TestKernel.php @@ -30,6 +30,7 @@ use Rekalogika\File\Association\PropertyReaderWriter\SymfonyPropertyAccessorBridge; use Rekalogika\File\Association\Reconstitutor\AttributeReconstitutor; use Rekalogika\File\Association\Reconstitutor\InterfaceReconstitutor; +use Rekalogika\File\Bridge\FilePond\RekalogikaFileFilePondBundle; use Rekalogika\File\Bundle\RekalogikaFileBundle; use Rekalogika\File\Image\ImageResizer; use Rekalogika\File\Zip\FileZip; @@ -38,30 +39,39 @@ use Rekalogika\Reconstitutor\RekalogikaReconstitutorBundle; use Rekalogika\TemporaryUrl\RekalogikaTemporaryUrlBundle; use Rekalogika\TemporaryUrl\TemporaryUrlGeneratorInterface; +use Symfony\Bundle\DebugBundle\DebugBundle; use Symfony\Bundle\FrameworkBundle\FrameworkBundle; +use Symfony\Bundle\FrameworkBundle\Kernel\MicroKernelTrait; +use Symfony\Bundle\MakerBundle\MakerBundle; +use Symfony\Bundle\TwigBundle\TwigBundle; +use Symfony\Bundle\WebProfilerBundle\WebProfilerBundle; use Symfony\Component\Config\Loader\LoaderInterface; use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\Filesystem\Filesystem; use Symfony\Component\HttpKernel\Kernel as HttpKernelKernel; +use Symfony\UX\StimulusBundle\StimulusBundle; +use Symfony\UX\Turbo\TurboBundle; +use Twig\Extra\TwigExtraBundle\TwigExtraBundle; class TestKernel extends HttpKernelKernel { + use MicroKernelTrait { + registerContainerConfiguration as private baseRegisterContainerConfiguration; + } /** * @param array $config */ - public function __construct(private readonly array $config = []) - { - parent::__construct('test', true); + public function __construct( + private string $env = 'test', + bool $debug = true, + private readonly array $config = [], + ) { + parent::__construct($env, $debug); } #[\Override] public function boot(): void { - $filesystem = new Filesystem(); - $filesystem->remove(__DIR__ . '/../var/'); - parent::boot(); - } #[\Override] @@ -69,53 +79,50 @@ public function registerBundles(): iterable { yield new FrameworkBundle(); yield new DoctrineBundle(); + yield new DebugBundle(); + yield new WebProfilerBundle(); + yield new TwigBundle(); + yield new MakerBundle(); + yield new StimulusBundle(); + yield new TurboBundle(); + yield new TwigExtraBundle(); yield new RekalogikaDirectPropertyAccessBundle(); yield new RekalogikaReconstitutorBundle(); yield new RekalogikaFileBundle(); + yield new RekalogikaFileFilePondBundle(); yield new RekalogikaTemporaryUrlBundle(); yield new RekalogikaPsr16SimpleCacheBundle(); } + #[\Override] + protected function build(ContainerBuilder $container): void + { + parent::build($container); + + } + + public function getBuildDir(): string + { + return $this->getProjectDir() . '/var/build/' . $this->env; + } + #[\Override] public function registerContainerConfiguration(LoaderInterface $loader): void { - $loader->load(function (ContainerBuilder $container): void { - $container->loadFromExtension('framework', [ - 'http_method_override' => false, - 'handle_all_throwables' => true, - 'validation' => [ - 'email_validation_mode' => 'html5', - ], - 'php_errors' => [ - 'log' => true, - ], - 'http_client' => [ - 'enabled' => true, - 'max_host_connections' => 1, - 'default_options' => [ - 'timeout' => 10, - ], - ], - ]); - - $container->loadFromExtension('doctrine', [ - 'dbal' => [ - 'driver' => 'pdo_sqlite', - 'memory' => true, - 'charset' => 'UTF8', - ], - 'orm' => [ - 'enable_lazy_ghost_objects' => true, - 'controller_resolver' => [ - 'auto_mapping' => false, - ], - ], - ]); + $this->baseRegisterContainerConfiguration($loader); + $loader->load(function (ContainerBuilder $container): void { $container->loadFromExtension('rekalogika_file', $this->config); }); } + #[\Override] + public function getProjectDir(): string + { + return __DIR__ . '/../'; + } + + /** * @return iterable */ diff --git a/tests/File/FileFactory.php b/tests/src/Tests/File/FileFactory.php similarity index 98% rename from tests/File/FileFactory.php rename to tests/src/Tests/File/FileFactory.php index fa0c7f9..6f43b37 100644 --- a/tests/File/FileFactory.php +++ b/tests/src/Tests/File/FileFactory.php @@ -11,7 +11,7 @@ * that was distributed with this source code. */ -namespace Rekalogika\File\Tests\File; +namespace Rekalogika\File\Tests\Tests\File; use League\Flysystem\Filesystem; use League\Flysystem\InMemory\InMemoryFilesystemAdapter; diff --git a/tests/File/FileNameTest.php b/tests/src/Tests/File/FileNameTest.php similarity index 97% rename from tests/File/FileNameTest.php rename to tests/src/Tests/File/FileNameTest.php index 1ac9b74..6abad6e 100644 --- a/tests/File/FileNameTest.php +++ b/tests/src/Tests/File/FileNameTest.php @@ -11,7 +11,7 @@ * that was distributed with this source code. */ -namespace Rekalogika\File\Tests\File; +namespace Rekalogika\File\Tests\Tests\File; use PHPUnit\Framework\TestCase; use Rekalogika\Domain\File\Metadata\Model\FileName; diff --git a/tests/File/FileRepositoryTest.php b/tests/src/Tests/File/FileRepositoryTest.php similarity index 99% rename from tests/File/FileRepositoryTest.php rename to tests/src/Tests/File/FileRepositoryTest.php index 6f5782d..d959e4b 100644 --- a/tests/File/FileRepositoryTest.php +++ b/tests/src/Tests/File/FileRepositoryTest.php @@ -11,7 +11,7 @@ * that was distributed with this source code. */ -namespace Rekalogika\File\Tests\File; +namespace Rekalogika\File\Tests\Tests\File; use PHPUnit\Framework\TestCase; use Rekalogika\Contracts\File\Exception\File\FileNotFoundException; diff --git a/tests/File/FileTest.php b/tests/src/Tests/File/FileTest.php similarity index 92% rename from tests/File/FileTest.php rename to tests/src/Tests/File/FileTest.php index f1bdd4a..f5f17fd 100644 --- a/tests/File/FileTest.php +++ b/tests/src/Tests/File/FileTest.php @@ -11,7 +11,7 @@ * that was distributed with this source code. */ -namespace Rekalogika\File\Tests\File; +namespace Rekalogika\File\Tests\Tests\File; use PHPUnit\Framework\TestCase; use Rekalogika\Contracts\File\RawMetadataInterface; @@ -139,10 +139,15 @@ public function testNaming(): void ); } + /** + * @runInSeparateProcess + */ public function testOpenBasedir(): void { - $dir = realpath(__DIR__ . '/../../'); - ini_set('open_basedir', $dir . ":" . '/tmp'); + $openBaseDir = realpath(__DIR__ . '/../../../../'); + $dir = realpath(__DIR__ . '/../../../'); + ini_set('open_basedir', $openBaseDir . ":" . '/tmp'); + mkdir($dir . '/var/', 0777, true); $path = $dir . '/var/test.txt'; file_put_contents($path, 'foo'); diff --git a/tests/File/FileTestTrait.php b/tests/src/Tests/File/FileTestTrait.php similarity index 99% rename from tests/File/FileTestTrait.php rename to tests/src/Tests/File/FileTestTrait.php index b6a1070..9ce4dc5 100644 --- a/tests/File/FileTestTrait.php +++ b/tests/src/Tests/File/FileTestTrait.php @@ -11,7 +11,7 @@ * that was distributed with this source code. */ -namespace Rekalogika\File\Tests\File; +namespace Rekalogika\File\Tests\Tests\File; use Rekalogika\Contracts\File\FileInterface; use Rekalogika\Contracts\File\FileMetadataInterface; diff --git a/tests/File/FileTypeTest.php b/tests/src/Tests/File/FileTypeTest.php similarity index 97% rename from tests/File/FileTypeTest.php rename to tests/src/Tests/File/FileTypeTest.php index 11632e9..b15c7d9 100644 --- a/tests/File/FileTypeTest.php +++ b/tests/src/Tests/File/FileTypeTest.php @@ -11,7 +11,7 @@ * that was distributed with this source code. */ -namespace Rekalogika\File\Tests\File; +namespace Rekalogika\File\Tests\Tests\File; use PHPUnit\Framework\TestCase; use Rekalogika\Domain\File\Metadata\Model\MimeMapFileTypeAdapter; diff --git a/tests/File/FilesystemRepositoryTest.php b/tests/src/Tests/File/FilesystemRepositoryTest.php similarity index 97% rename from tests/File/FilesystemRepositoryTest.php rename to tests/src/Tests/File/FilesystemRepositoryTest.php index 01c83e8..b603658 100644 --- a/tests/File/FilesystemRepositoryTest.php +++ b/tests/src/Tests/File/FilesystemRepositoryTest.php @@ -11,7 +11,7 @@ * that was distributed with this source code. */ -namespace Rekalogika\File\Tests\File; +namespace Rekalogika\File\Tests\Tests\File; use League\Flysystem\Filesystem; use League\Flysystem\FilesystemOperator; diff --git a/tests/File/FromSplFileInfoAdapterTest.php b/tests/src/Tests/File/FromSplFileInfoAdapterTest.php similarity index 95% rename from tests/File/FromSplFileInfoAdapterTest.php rename to tests/src/Tests/File/FromSplFileInfoAdapterTest.php index d11d838..4616a71 100644 --- a/tests/File/FromSplFileInfoAdapterTest.php +++ b/tests/src/Tests/File/FromSplFileInfoAdapterTest.php @@ -11,7 +11,7 @@ * that was distributed with this source code. */ -namespace Rekalogika\File\Tests\File; +namespace Rekalogika\File\Tests\Tests\File; use PHPUnit\Framework\TestCase; use Rekalogika\File\Adapter\FromSplFileInfoAdapter; diff --git a/tests/File/MetadataSerializerTest.php b/tests/src/Tests/File/MetadataSerializerTest.php similarity index 98% rename from tests/File/MetadataSerializerTest.php rename to tests/src/Tests/File/MetadataSerializerTest.php index cc08765..be88e41 100644 --- a/tests/File/MetadataSerializerTest.php +++ b/tests/src/Tests/File/MetadataSerializerTest.php @@ -11,7 +11,7 @@ * that was distributed with this source code. */ -namespace Rekalogika\File\Tests\File; +namespace Rekalogika\File\Tests\Tests\File; use PHPUnit\Framework\TestCase; use Rekalogika\Contracts\File\RawMetadataInterface; diff --git a/tests/File/MetadataTest.php b/tests/src/Tests/File/MetadataTest.php similarity index 98% rename from tests/File/MetadataTest.php rename to tests/src/Tests/File/MetadataTest.php index 549afa7..2eb3c39 100644 --- a/tests/File/MetadataTest.php +++ b/tests/src/Tests/File/MetadataTest.php @@ -11,7 +11,7 @@ * that was distributed with this source code. */ -namespace Rekalogika\File\Tests\File; +namespace Rekalogika\File\Tests\Tests\File; use PHPUnit\Framework\TestCase; use Rekalogika\Domain\File\Metadata\Constants; diff --git a/tests/File/ReferenceTest.php b/tests/src/Tests/File/ReferenceTest.php similarity index 98% rename from tests/File/ReferenceTest.php rename to tests/src/Tests/File/ReferenceTest.php index cc49848..e095cf8 100644 --- a/tests/File/ReferenceTest.php +++ b/tests/src/Tests/File/ReferenceTest.php @@ -11,7 +11,7 @@ * that was distributed with this source code. */ -namespace Rekalogika\File\Tests\File; +namespace Rekalogika\File\Tests\Tests\File; use PHPUnit\Framework\TestCase; use Rekalogika\Contracts\File\Exception\File\FileNotFoundException; diff --git a/tests/FileAssociation/DefaultFileLocationResolverTest.php b/tests/src/Tests/FileAssociation/DefaultFileLocationResolverTest.php similarity index 80% rename from tests/FileAssociation/DefaultFileLocationResolverTest.php rename to tests/src/Tests/FileAssociation/DefaultFileLocationResolverTest.php index 122b8f6..8e5e2c6 100644 --- a/tests/FileAssociation/DefaultFileLocationResolverTest.php +++ b/tests/src/Tests/FileAssociation/DefaultFileLocationResolverTest.php @@ -11,12 +11,12 @@ * that was distributed with this source code. */ -namespace Rekalogika\File\Tests\FileAssociation; +namespace Rekalogika\File\Tests\Tests\FileAssociation; use PHPUnit\Framework\TestCase; use Rekalogika\File\Association\FileLocationResolver\DefaultFileLocationResolver; use Rekalogika\File\Association\ObjectIdResolver\DefaultObjectIdResolver; -use Rekalogika\File\Tests\Model\Entity; +use Rekalogika\File\Tests\Tests\Model\Entity; class DefaultFileLocationResolverTest extends TestCase { @@ -28,6 +28,6 @@ public function testDefaultLocationResolver(): void $location = $locationResolver->getFileLocation($object, 'file'); $this->assertSame('default', $location->getFilesystemIdentifier()); - $this->assertSame('entity/ffa87ef3fc5388bc8b666e2cec17d27cc493d0c1/file/50/a7/74/1b/entity_id', $location->getKey()); + $this->assertSame('entity/bf4f1cf543bb2ff30f0db7ffb4af653fcf8292b7/file/50/a7/74/1b/entity_id', $location->getKey()); } } diff --git a/tests/FileAssociation/DefaultObjectIdResolverTest.php b/tests/src/Tests/FileAssociation/DefaultObjectIdResolverTest.php similarity index 92% rename from tests/FileAssociation/DefaultObjectIdResolverTest.php rename to tests/src/Tests/FileAssociation/DefaultObjectIdResolverTest.php index 77b6fc7..2a20318 100644 --- a/tests/FileAssociation/DefaultObjectIdResolverTest.php +++ b/tests/src/Tests/FileAssociation/DefaultObjectIdResolverTest.php @@ -11,15 +11,15 @@ * that was distributed with this source code. */ -namespace Rekalogika\File\Tests\FileAssociation; +namespace Rekalogika\File\Tests\Tests\FileAssociation; use PHPUnit\Framework\TestCase; use Rekalogika\File\Association\Exception\ObjectIdResolver\EmptyIdException; use Rekalogika\File\Association\Exception\ObjectIdResolver\IdNotSupportedException; use Rekalogika\File\Association\Exception\ObjectIdResolver\MethodNotFoundException; use Rekalogika\File\Association\ObjectIdResolver\DefaultObjectIdResolver; -use Rekalogika\File\Tests\Model\EntityWithAnyId; -use Rekalogika\File\Tests\Model\EntityWithoutId; +use Rekalogika\File\Tests\Tests\Model\EntityWithAnyId; +use Rekalogika\File\Tests\Tests\Model\EntityWithoutId; class DefaultObjectIdResolverTest extends TestCase { diff --git a/tests/FileAssociation/FileAssociationManagerTest.php b/tests/src/Tests/FileAssociation/FileAssociationManagerTest.php similarity index 90% rename from tests/FileAssociation/FileAssociationManagerTest.php rename to tests/src/Tests/FileAssociation/FileAssociationManagerTest.php index 576d21b..7a5930b 100644 --- a/tests/FileAssociation/FileAssociationManagerTest.php +++ b/tests/src/Tests/FileAssociation/FileAssociationManagerTest.php @@ -11,9 +11,8 @@ * that was distributed with this source code. */ -namespace Rekalogika\File\Tests\FileAssociation; +namespace Rekalogika\File\Tests\Tests\FileAssociation; -use PHPUnit\Framework\TestCase; use Rekalogika\Contracts\File\Exception\File\FileNotFoundException; use Rekalogika\Contracts\File\FileProxy; use Rekalogika\Contracts\File\FileRepositoryInterface; @@ -21,13 +20,13 @@ use Rekalogika\File\Association\Model\MissingFile; use Rekalogika\File\File; use Rekalogika\File\TemporaryFile; -use Rekalogika\File\Tests\File\FileTestTrait; -use Rekalogika\File\Tests\Model\Entity; -use Rekalogika\File\Tests\Model\EntityWithLazyFile; -use Rekalogika\File\Tests\Model\EntityWithMandatoryFile; -use Rekalogika\File\Tests\TestKernel; +use Rekalogika\File\Tests\Tests\File\FileTestTrait; +use Rekalogika\File\Tests\Tests\Model\Entity; +use Rekalogika\File\Tests\Tests\Model\EntityWithLazyFile; +use Rekalogika\File\Tests\Tests\Model\EntityWithMandatoryFile; +use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase; -class FileAssociationManagerTest extends TestCase +class FileAssociationManagerTest extends KernelTestCase { use FileTestTrait; @@ -38,13 +37,9 @@ class FileAssociationManagerTest extends TestCase #[\Override] protected function setUp(): void { - $kernel = new TestKernel(); - $kernel->boot(); - $container = $kernel->getContainer(); - - $fileAssociationManager = $container - ->get('test.' . FileAssociationManager::class); + $fileAssociationManager = static::getContainer() + ->get(FileAssociationManager::class); $this->assertInstanceOf( FileAssociationManager::class, $fileAssociationManager, @@ -52,8 +47,8 @@ protected function setUp(): void $this->fileAssociationManager = $fileAssociationManager; - $fileRepository = $container - ->get('test.' . FileRepositoryInterface::class); + $fileRepository = static::getContainer() + ->get(FileRepositoryInterface::class); $this->assertInstanceOf( FileRepositoryInterface::class, diff --git a/tests/FileAssociation/PropertyInspectorTest.php b/tests/src/Tests/FileAssociation/PropertyInspectorTest.php similarity index 91% rename from tests/FileAssociation/PropertyInspectorTest.php rename to tests/src/Tests/FileAssociation/PropertyInspectorTest.php index 69f3b14..dea5cc3 100644 --- a/tests/FileAssociation/PropertyInspectorTest.php +++ b/tests/src/Tests/FileAssociation/PropertyInspectorTest.php @@ -11,11 +11,11 @@ * that was distributed with this source code. */ -namespace Rekalogika\File\Tests\FileAssociation; +namespace Rekalogika\File\Tests\Tests\FileAssociation; use PHPUnit\Framework\TestCase; use Rekalogika\File\Association\PropertyInspector\PropertyInspector; -use Rekalogika\File\Tests\Model\EntityWithDifferentFileProperties; +use Rekalogika\File\Tests\Tests\Model\EntityWithDifferentFileProperties; class PropertyInspectorTest extends TestCase { diff --git a/tests/FileAssociation/PropertyListerTest.php b/tests/src/Tests/FileAssociation/PropertyListerTest.php similarity index 86% rename from tests/FileAssociation/PropertyListerTest.php rename to tests/src/Tests/FileAssociation/PropertyListerTest.php index bf79063..ec6f77b 100644 --- a/tests/FileAssociation/PropertyListerTest.php +++ b/tests/src/Tests/FileAssociation/PropertyListerTest.php @@ -11,12 +11,12 @@ * that was distributed with this source code. */ -namespace Rekalogika\File\Tests\FileAssociation; +namespace Rekalogika\File\Tests\Tests\FileAssociation; use PHPUnit\Framework\TestCase; use Rekalogika\File\Association\PropertyLister\AttributesPropertyLister; -use Rekalogika\File\Tests\Model\EntityWithAttribute; -use Rekalogika\File\Tests\Model\SubclassOfEntityWithAttribute; +use Rekalogika\File\Tests\Tests\Model\EntityWithAttribute; +use Rekalogika\File\Tests\Tests\Model\SubclassOfEntityWithAttribute; class PropertyListerTest extends TestCase { diff --git a/tests/FileAssociationEntity/AbstractFileTest.php b/tests/src/Tests/FileAssociationEntity/AbstractFileTest.php similarity index 95% rename from tests/FileAssociationEntity/AbstractFileTest.php rename to tests/src/Tests/FileAssociationEntity/AbstractFileTest.php index f3a670a..ac127bb 100644 --- a/tests/FileAssociationEntity/AbstractFileTest.php +++ b/tests/src/Tests/FileAssociationEntity/AbstractFileTest.php @@ -11,7 +11,7 @@ * that was distributed with this source code. */ -namespace Rekalogika\File\Tests\FileAssociationEntity; +namespace Rekalogika\File\Tests\Tests\FileAssociationEntity; use PHPUnit\Framework\TestCase; use Rekalogika\Domain\File\Association\Entity\AbstractFile; @@ -19,8 +19,8 @@ use Rekalogika\Domain\File\Association\Entity\UnsetFile; use Rekalogika\Domain\File\Metadata\Constants; use Rekalogika\File\TemporaryFile; -use Rekalogika\File\Tests\File\FileTestTrait; -use Rekalogika\File\Tests\Model\EntityExtendingAbstractFile; +use Rekalogika\File\Tests\Tests\File\FileTestTrait; +use Rekalogika\File\Tests\Tests\Model\EntityExtendingAbstractFile; class AbstractFileTest extends TestCase { diff --git a/tests/FileAssociationEntity/EmbeddedMetadataTest.php b/tests/src/Tests/FileAssociationEntity/EmbeddedMetadataTest.php similarity index 95% rename from tests/FileAssociationEntity/EmbeddedMetadataTest.php rename to tests/src/Tests/FileAssociationEntity/EmbeddedMetadataTest.php index 2d53008..9965a46 100644 --- a/tests/FileAssociationEntity/EmbeddedMetadataTest.php +++ b/tests/src/Tests/FileAssociationEntity/EmbeddedMetadataTest.php @@ -11,15 +11,15 @@ * that was distributed with this source code. */ -namespace Rekalogika\File\Tests\FileAssociationEntity; +namespace Rekalogika\File\Tests\Tests\FileAssociationEntity; use PHPUnit\Framework\TestCase; use Rekalogika\Contracts\File\RawMetadataInterface; use Rekalogika\Domain\File\Association\Entity\FileDecorator; use Rekalogika\Domain\File\Metadata\Constants; use Rekalogika\File\TemporaryFile; -use Rekalogika\File\Tests\File\FileTestTrait; -use Rekalogika\File\Tests\Model\EntityWithEmbeddedMetadata; +use Rekalogika\File\Tests\Tests\File\FileTestTrait; +use Rekalogika\File\Tests\Tests\Model\EntityWithEmbeddedMetadata; class EmbeddedMetadataTest extends TestCase { diff --git a/tests/FileContracts/FileProxyTest.php b/tests/src/Tests/FileContracts/FileProxyTest.php similarity index 89% rename from tests/FileContracts/FileProxyTest.php rename to tests/src/Tests/FileContracts/FileProxyTest.php index 3bdc8c9..9353092 100644 --- a/tests/FileContracts/FileProxyTest.php +++ b/tests/src/Tests/FileContracts/FileProxyTest.php @@ -11,7 +11,7 @@ * that was distributed with this source code. */ -namespace Rekalogika\File\Tests\FileContracts; +namespace Rekalogika\File\Tests\Tests\FileContracts; use PHPUnit\Framework\TestCase; use Rekalogika\Contracts\File\Exception\File\FileNotFoundException; @@ -19,10 +19,10 @@ use Rekalogika\Contracts\File\FileProxy; use Rekalogika\File\FilePointer; use Rekalogika\File\TemporaryFile; -use Rekalogika\File\Tests\File\FileFactory; -use Rekalogika\File\Tests\File\FileTestTrait; -use Rekalogika\File\Tests\Model\EntityWithFileProxyUtilGetterSetter; -use Rekalogika\File\Tests\Model\EntityWithPlainGetterSetter; +use Rekalogika\File\Tests\Tests\File\FileFactory; +use Rekalogika\File\Tests\Tests\File\FileTestTrait; +use Rekalogika\File\Tests\Tests\Model\EntityWithFileProxyUtilGetterSetter; +use Rekalogika\File\Tests\Tests\Model\EntityWithPlainGetterSetter; class FileProxyTest extends TestCase { diff --git a/tests/FileImage/ImageResizerTest.php b/tests/src/Tests/FileImage/ImageResizerTest.php similarity index 93% rename from tests/FileImage/ImageResizerTest.php rename to tests/src/Tests/FileImage/ImageResizerTest.php index 25e06ee..79511a3 100644 --- a/tests/FileImage/ImageResizerTest.php +++ b/tests/src/Tests/FileImage/ImageResizerTest.php @@ -11,14 +11,14 @@ * that was distributed with this source code. */ -namespace Rekalogika\File\Tests\FileImage; +namespace Rekalogika\File\Tests\Tests\FileImage; use PHPUnit\Framework\TestCase; use Rekalogika\Contracts\File\FileRepositoryInterface; use Rekalogika\Contracts\File\Metadata\ImageMetadataInterface; use Rekalogika\File\FilePointer; use Rekalogika\File\Image\ImageResizer; -use Rekalogika\File\Tests\File\FileFactory; +use Rekalogika\File\Tests\Tests\File\FileFactory; class ImageResizerTest extends TestCase { diff --git a/tests/FileNull/NullFileTest.php b/tests/src/Tests/FileNull/NullFileTest.php similarity index 98% rename from tests/FileNull/NullFileTest.php rename to tests/src/Tests/FileNull/NullFileTest.php index 4f609f8..42c098b 100644 --- a/tests/FileNull/NullFileTest.php +++ b/tests/src/Tests/FileNull/NullFileTest.php @@ -11,7 +11,7 @@ * that was distributed with this source code. */ -namespace Rekalogika\File\Tests\FileNull; +namespace Rekalogika\File\Tests\Tests\FileNull; use PHPUnit\Framework\TestCase; use Rekalogika\Contracts\File\FileInterface; diff --git a/tests/src/Tests/FileServer/TemporaryUrlTest.php b/tests/src/Tests/FileServer/TemporaryUrlTest.php new file mode 100644 index 0000000..886e7ae --- /dev/null +++ b/tests/src/Tests/FileServer/TemporaryUrlTest.php @@ -0,0 +1,59 @@ + + * + * For the full copyright and license information, please view the LICENSE file + * that was distributed with this source code. + */ + +namespace Rekalogika\File\Tests\Tests\FileServer; + +use Rekalogika\File\File; +use Rekalogika\File\FilePointer; +use Rekalogika\TemporaryUrl\TemporaryUrlGeneratorInterface; +use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase; + +class TemporaryUrlTest extends KernelTestCase +{ + public function testTemporaryUrlWithFilePointer(): void + { + $this->markTestSkipped(); + + // $temporaryUrlGenerator = static::getContainer() + // ->get(TemporaryUrlGeneratorInterface::class); + + // $this->assertInstanceOf( + // TemporaryUrlGeneratorInterface::class, + // $temporaryUrlGenerator, + // ); + + // $filePointer = new FilePointer('default', 'test.txt'); + // $url = $temporaryUrlGenerator->generateUrl($filePointer); + + // $this->assertStringContainsString('__route__', $url); + } + + public function testTemporaryUrlWithFile(): void + { + $this->markTestSkipped(); + + // $temporaryUrlGenerator = static::getContainer() + // ->get(TemporaryUrlGeneratorInterface::class); + + // $this->assertInstanceOf( + // TemporaryUrlGeneratorInterface::class, + // $temporaryUrlGenerator, + // ); + + // $file = new File(__DIR__ . '/../Resources/localFile.txt'); + + // $url = $temporaryUrlGenerator->generateUrl($file); + + // $this->assertStringContainsString('__route__', $url); + } +} diff --git a/tests/FileSymfonyBridge/FileAdapterTest.php b/tests/src/Tests/FileSymfonyBridge/FileAdapterTest.php similarity index 89% rename from tests/FileSymfonyBridge/FileAdapterTest.php rename to tests/src/Tests/FileSymfonyBridge/FileAdapterTest.php index 91f7d20..7135d5c 100644 --- a/tests/FileSymfonyBridge/FileAdapterTest.php +++ b/tests/src/Tests/FileSymfonyBridge/FileAdapterTest.php @@ -11,9 +11,8 @@ * that was distributed with this source code. */ -namespace Rekalogika\File\Tests\FileSymfonyBridge; +namespace Rekalogika\File\Tests\Tests\FileSymfonyBridge; -use PHPUnit\Framework\TestCase; use Rekalogika\Contracts\File\FileInterface; use Rekalogika\Contracts\File\FileRepositoryInterface; use Rekalogika\File\Bridge\Symfony\HttpFoundation\FromHttpFoundationFileAdapter; @@ -21,22 +20,21 @@ use Rekalogika\File\FilePointer; use Rekalogika\File\LocalTemporaryFile; use Rekalogika\File\TemporaryFile; -use Rekalogika\File\Tests\File\FileTestTrait; -use Rekalogika\File\Tests\TestKernel; +use Rekalogika\File\Tests\Tests\File\FileTestTrait; +use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase; use Symfony\Component\HttpFoundation\File\File; -class FileAdapterTest extends TestCase +class FileAdapterTest extends KernelTestCase { use FileTestTrait; private function createRemoteFile(): FileInterface { - $kernel = new TestKernel(); - $kernel->boot(); + $fileRepository = static::getContainer() + ->get(FileRepositoryInterface::class); - $container = $kernel->getContainer(); - $fileRepository = $container->get('test.' . FileRepositoryInterface::class); $this->assertInstanceOf(FileRepositoryInterface::class, $fileRepository); + return $fileRepository->createFromString(new FilePointer('default', 'key'), 'asdf'); } diff --git a/tests/FileSymfonyBridge/FileExtensionTest.php b/tests/src/Tests/FileSymfonyBridge/FileExtensionTest.php similarity index 94% rename from tests/FileSymfonyBridge/FileExtensionTest.php rename to tests/src/Tests/FileSymfonyBridge/FileExtensionTest.php index 6865b9f..e87442d 100644 --- a/tests/FileSymfonyBridge/FileExtensionTest.php +++ b/tests/src/Tests/FileSymfonyBridge/FileExtensionTest.php @@ -11,12 +11,12 @@ * that was distributed with this source code. */ -namespace Rekalogika\File\Tests\FileSymfonyBridge; +namespace Rekalogika\File\Tests\Tests\FileSymfonyBridge; use Rekalogika\Contracts\File\FileInterface; use Rekalogika\File\Bridge\Symfony\Form\FileTypeExtension; use Rekalogika\File\LocalTemporaryFile; -use Rekalogika\File\Tests\File\FileTestTrait; +use Rekalogika\File\Tests\Tests\File\FileTestTrait; use Symfony\Component\Form\Extension\Core\Type\FileType; use Symfony\Component\Form\Extension\HttpFoundation\HttpFoundationRequestHandler; use Symfony\Component\Form\Test\TypeTestCase; diff --git a/tests/FileSymfonyBridge/FileResponseTest.php b/tests/src/Tests/FileSymfonyBridge/FileResponseTest.php similarity index 97% rename from tests/FileSymfonyBridge/FileResponseTest.php rename to tests/src/Tests/FileSymfonyBridge/FileResponseTest.php index 56dd3ee..435fa85 100644 --- a/tests/FileSymfonyBridge/FileResponseTest.php +++ b/tests/src/Tests/FileSymfonyBridge/FileResponseTest.php @@ -11,7 +11,7 @@ * that was distributed with this source code. */ -namespace Rekalogika\File\Tests\FileSymfonyBridge; +namespace Rekalogika\File\Tests\Tests\FileSymfonyBridge; use PHPUnit\Framework\TestCase; use Rekalogika\File\Bridge\Symfony\HttpFoundation\FileResponse; diff --git a/tests/FileSymfonyBridge/FileTransformerTest.php b/tests/src/Tests/FileSymfonyBridge/FileTransformerTest.php similarity index 95% rename from tests/FileSymfonyBridge/FileTransformerTest.php rename to tests/src/Tests/FileSymfonyBridge/FileTransformerTest.php index d59f301..5a30f46 100644 --- a/tests/FileSymfonyBridge/FileTransformerTest.php +++ b/tests/src/Tests/FileSymfonyBridge/FileTransformerTest.php @@ -11,7 +11,7 @@ * that was distributed with this source code. */ -namespace Rekalogika\File\Tests\FileSymfonyBridge; +namespace Rekalogika\File\Tests\Tests\FileSymfonyBridge; use PHPUnit\Framework\TestCase; use Rekalogika\File\Bridge\Symfony\Form\FileTransformer; diff --git a/tests/FileSymfonyBridge/FileTypeTest.php b/tests/src/Tests/FileSymfonyBridge/FileTypeTest.php similarity index 93% rename from tests/FileSymfonyBridge/FileTypeTest.php rename to tests/src/Tests/FileSymfonyBridge/FileTypeTest.php index 57fa049..7abb348 100644 --- a/tests/FileSymfonyBridge/FileTypeTest.php +++ b/tests/src/Tests/FileSymfonyBridge/FileTypeTest.php @@ -11,12 +11,12 @@ * that was distributed with this source code. */ -namespace Rekalogika\File\Tests\FileSymfonyBridge; +namespace Rekalogika\File\Tests\Tests\FileSymfonyBridge; use Rekalogika\Contracts\File\FileInterface; use Rekalogika\File\Bridge\Symfony\Form\FileType; use Rekalogika\File\LocalTemporaryFile; -use Rekalogika\File\Tests\File\FileTestTrait; +use Rekalogika\File\Tests\Tests\File\FileTestTrait; use Symfony\Component\Form\Extension\HttpFoundation\HttpFoundationRequestHandler; use Symfony\Component\Form\Test\TypeTestCase; use Symfony\Component\HttpFoundation\File\UploadedFile; diff --git a/tests/FileSymfonyBridge/FileValidatorTest.php b/tests/src/Tests/FileSymfonyBridge/FileValidatorTest.php similarity index 97% rename from tests/FileSymfonyBridge/FileValidatorTest.php rename to tests/src/Tests/FileSymfonyBridge/FileValidatorTest.php index 03fcdbb..618b488 100644 --- a/tests/FileSymfonyBridge/FileValidatorTest.php +++ b/tests/src/Tests/FileSymfonyBridge/FileValidatorTest.php @@ -11,7 +11,7 @@ * that was distributed with this source code. */ -namespace Rekalogika\File\Tests\FileSymfonyBridge; +namespace Rekalogika\File\Tests\Tests\FileSymfonyBridge; use Rekalogika\File\Bridge\Symfony\Constraints\File; use Rekalogika\File\Bridge\Symfony\Constraints\FileValidator; diff --git a/tests/FileSymfonyBridge/ImageValidatorTest.php b/tests/src/Tests/FileSymfonyBridge/ImageValidatorTest.php similarity index 96% rename from tests/FileSymfonyBridge/ImageValidatorTest.php rename to tests/src/Tests/FileSymfonyBridge/ImageValidatorTest.php index 36e45db..1b3097e 100644 --- a/tests/FileSymfonyBridge/ImageValidatorTest.php +++ b/tests/src/Tests/FileSymfonyBridge/ImageValidatorTest.php @@ -11,7 +11,7 @@ * that was distributed with this source code. */ -namespace Rekalogika\File\Tests\FileSymfonyBridge; +namespace Rekalogika\File\Tests\Tests\FileSymfonyBridge; use Rekalogika\File\Bridge\Symfony\Constraints\Image; use Rekalogika\File\Bridge\Symfony\Constraints\ImageValidator; diff --git a/tests/FileZip/ZipTest.php b/tests/src/Tests/FileZip/ZipTest.php similarity index 90% rename from tests/FileZip/ZipTest.php rename to tests/src/Tests/FileZip/ZipTest.php index 93d497a..eea4584 100644 --- a/tests/FileZip/ZipTest.php +++ b/tests/src/Tests/FileZip/ZipTest.php @@ -11,17 +11,16 @@ * that was distributed with this source code. */ -namespace Rekalogika\File\Tests\FileZip; +namespace Rekalogika\File\Tests\Tests\FileZip; -use PHPUnit\Framework\TestCase; use Rekalogika\Contracts\File\FileInterface; use Rekalogika\Contracts\File\FileRepositoryInterface; use Rekalogika\File\FilePointer; -use Rekalogika\File\Tests\TestKernel; use Rekalogika\File\Zip\FileZip; use Rekalogika\File\Zip\Model\Directory; +use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase; -class ZipTest extends TestCase +class ZipTest extends KernelTestCase { private ?FileRepositoryInterface $fileRepository = null; @@ -30,13 +29,8 @@ class ZipTest extends TestCase #[\Override] protected function setUp(): void { - $kernel = new TestKernel(); - $kernel->boot(); - - $container = $kernel->getContainer(); - - $fileRepository = $container - ->get('test.' . FileRepositoryInterface::class); + $fileRepository = static::getContainer() + ->get(FileRepositoryInterface::class); $this->assertInstanceOf( FileRepositoryInterface::class, @@ -45,8 +39,8 @@ protected function setUp(): void $this->fileRepository = $fileRepository; - $fileZip = $container - ->get('test.' . FileZip::class); + $fileZip = static::getContainer() + ->get(FileZip::class); $this->assertInstanceOf( FileZip::class, diff --git a/tests/Model/Entity.php b/tests/src/Tests/Model/Entity.php similarity index 95% rename from tests/Model/Entity.php rename to tests/src/Tests/Model/Entity.php index baa504a..212e51d 100644 --- a/tests/Model/Entity.php +++ b/tests/src/Tests/Model/Entity.php @@ -11,7 +11,7 @@ * that was distributed with this source code. */ -namespace Rekalogika\File\Tests\Model; +namespace Rekalogika\File\Tests\Tests\Model; use Rekalogika\Contracts\File\Association\FileAssociationInterface; use Rekalogika\Contracts\File\FileInterface; diff --git a/tests/Model/EntityExtendingAbstractFile.php b/tests/src/Tests/Model/EntityExtendingAbstractFile.php similarity index 90% rename from tests/Model/EntityExtendingAbstractFile.php rename to tests/src/Tests/Model/EntityExtendingAbstractFile.php index 5fe1526..56e5941 100644 --- a/tests/Model/EntityExtendingAbstractFile.php +++ b/tests/src/Tests/Model/EntityExtendingAbstractFile.php @@ -11,7 +11,7 @@ * that was distributed with this source code. */ -namespace Rekalogika\File\Tests\Model; +namespace Rekalogika\File\Tests\Tests\Model; use Doctrine\ORM\Mapping\Entity; use Rekalogika\Domain\File\Association\Entity\AbstractFile; diff --git a/tests/Model/EntityWithAnyId.php b/tests/src/Tests/Model/EntityWithAnyId.php similarity index 91% rename from tests/Model/EntityWithAnyId.php rename to tests/src/Tests/Model/EntityWithAnyId.php index 541b795..cdd0584 100644 --- a/tests/Model/EntityWithAnyId.php +++ b/tests/src/Tests/Model/EntityWithAnyId.php @@ -11,7 +11,7 @@ * that was distributed with this source code. */ -namespace Rekalogika\File\Tests\Model; +namespace Rekalogika\File\Tests\Tests\Model; class EntityWithAnyId { diff --git a/tests/Model/EntityWithAttribute.php b/tests/src/Tests/Model/EntityWithAttribute.php similarity index 96% rename from tests/Model/EntityWithAttribute.php rename to tests/src/Tests/Model/EntityWithAttribute.php index 83534d6..44ed8c4 100644 --- a/tests/Model/EntityWithAttribute.php +++ b/tests/src/Tests/Model/EntityWithAttribute.php @@ -11,7 +11,7 @@ * that was distributed with this source code. */ -namespace Rekalogika\File\Tests\Model; +namespace Rekalogika\File\Tests\Tests\Model; use Rekalogika\Contracts\File\FileInterface; use Rekalogika\File\Association\Attribute\AsFileAssociation; diff --git a/tests/Model/EntityWithDifferentFileProperties.php b/tests/src/Tests/Model/EntityWithDifferentFileProperties.php similarity index 95% rename from tests/Model/EntityWithDifferentFileProperties.php rename to tests/src/Tests/Model/EntityWithDifferentFileProperties.php index 934c394..2a272b2 100644 --- a/tests/Model/EntityWithDifferentFileProperties.php +++ b/tests/src/Tests/Model/EntityWithDifferentFileProperties.php @@ -11,7 +11,7 @@ * that was distributed with this source code. */ -namespace Rekalogika\File\Tests\Model; +namespace Rekalogika\File\Tests\Tests\Model; use Rekalogika\Contracts\File\FileInterface; use Rekalogika\File\Association\Attribute\AsFileAssociation; diff --git a/tests/Model/EntityWithEmbeddedMetadata.php b/tests/src/Tests/Model/EntityWithEmbeddedMetadata.php similarity index 97% rename from tests/Model/EntityWithEmbeddedMetadata.php rename to tests/src/Tests/Model/EntityWithEmbeddedMetadata.php index 214a4d2..a68c159 100644 --- a/tests/Model/EntityWithEmbeddedMetadata.php +++ b/tests/src/Tests/Model/EntityWithEmbeddedMetadata.php @@ -11,7 +11,7 @@ * that was distributed with this source code. */ -namespace Rekalogika\File\Tests\Model; +namespace Rekalogika\File\Tests\Tests\Model; use Doctrine\ORM\Mapping\Embedded; use Doctrine\ORM\Mapping\Entity; diff --git a/tests/Model/EntityWithFileProxyUtilGetterSetter.php b/tests/src/Tests/Model/EntityWithFileProxyUtilGetterSetter.php similarity index 94% rename from tests/Model/EntityWithFileProxyUtilGetterSetter.php rename to tests/src/Tests/Model/EntityWithFileProxyUtilGetterSetter.php index f157eb1..69287e4 100644 --- a/tests/Model/EntityWithFileProxyUtilGetterSetter.php +++ b/tests/src/Tests/Model/EntityWithFileProxyUtilGetterSetter.php @@ -11,7 +11,7 @@ * that was distributed with this source code. */ -namespace Rekalogika\File\Tests\Model; +namespace Rekalogika\File\Tests\Tests\Model; use Rekalogika\Contracts\File\FileInterface; use Rekalogika\Contracts\File\FileProxy; diff --git a/tests/Model/EntityWithLazyFile.php b/tests/src/Tests/Model/EntityWithLazyFile.php similarity index 95% rename from tests/Model/EntityWithLazyFile.php rename to tests/src/Tests/Model/EntityWithLazyFile.php index 3e78362..e2d0d7f 100644 --- a/tests/Model/EntityWithLazyFile.php +++ b/tests/src/Tests/Model/EntityWithLazyFile.php @@ -11,7 +11,7 @@ * that was distributed with this source code. */ -namespace Rekalogika\File\Tests\Model; +namespace Rekalogika\File\Tests\Tests\Model; use Rekalogika\Contracts\File\FileInterface; use Rekalogika\File\Association\Attribute\AsFileAssociation; diff --git a/tests/Model/EntityWithMandatoryFile.php b/tests/src/Tests/Model/EntityWithMandatoryFile.php similarity index 95% rename from tests/Model/EntityWithMandatoryFile.php rename to tests/src/Tests/Model/EntityWithMandatoryFile.php index 3b29854..938fd41 100644 --- a/tests/Model/EntityWithMandatoryFile.php +++ b/tests/src/Tests/Model/EntityWithMandatoryFile.php @@ -11,7 +11,7 @@ * that was distributed with this source code. */ -namespace Rekalogika\File\Tests\Model; +namespace Rekalogika\File\Tests\Tests\Model; use Rekalogika\Contracts\File\FileInterface; use Rekalogika\File\Association\Attribute\AsFileAssociation; diff --git a/tests/Model/EntityWithPlainGetterSetter.php b/tests/src/Tests/Model/EntityWithPlainGetterSetter.php similarity index 93% rename from tests/Model/EntityWithPlainGetterSetter.php rename to tests/src/Tests/Model/EntityWithPlainGetterSetter.php index 3784073..97e4610 100644 --- a/tests/Model/EntityWithPlainGetterSetter.php +++ b/tests/src/Tests/Model/EntityWithPlainGetterSetter.php @@ -11,7 +11,7 @@ * that was distributed with this source code. */ -namespace Rekalogika\File\Tests\Model; +namespace Rekalogika\File\Tests\Tests\Model; use Rekalogika\Contracts\File\FileInterface; diff --git a/tests/Model/EntityWithoutId.php b/tests/src/Tests/Model/EntityWithoutId.php similarity index 93% rename from tests/Model/EntityWithoutId.php rename to tests/src/Tests/Model/EntityWithoutId.php index ac89074..d15d0e2 100644 --- a/tests/Model/EntityWithoutId.php +++ b/tests/src/Tests/Model/EntityWithoutId.php @@ -11,7 +11,7 @@ * that was distributed with this source code. */ -namespace Rekalogika\File\Tests\Model; +namespace Rekalogika\File\Tests\Tests\Model; use Rekalogika\Contracts\File\FileInterface; diff --git a/tests/Model/SubclassOfEntityWithAttribute.php b/tests/src/Tests/Model/SubclassOfEntityWithAttribute.php similarity index 96% rename from tests/Model/SubclassOfEntityWithAttribute.php rename to tests/src/Tests/Model/SubclassOfEntityWithAttribute.php index 9fd26a7..a5dae87 100644 --- a/tests/Model/SubclassOfEntityWithAttribute.php +++ b/tests/src/Tests/Model/SubclassOfEntityWithAttribute.php @@ -11,7 +11,7 @@ * that was distributed with this source code. */ -namespace Rekalogika\File\Tests\Model; +namespace Rekalogika\File\Tests\Tests\Model; use Rekalogika\Contracts\File\FileInterface; use Rekalogika\File\Association\Attribute\AsFileAssociation; diff --git a/tests/Resources/legacyImageMetadata.json b/tests/src/Tests/Resources/legacyImageMetadata.json similarity index 100% rename from tests/Resources/legacyImageMetadata.json rename to tests/src/Tests/Resources/legacyImageMetadata.json diff --git a/tests/Resources/legacyMetadata.json b/tests/src/Tests/Resources/legacyMetadata.json similarity index 100% rename from tests/Resources/legacyMetadata.json rename to tests/src/Tests/Resources/legacyMetadata.json diff --git a/tests/Resources/localFile.txt b/tests/src/Tests/Resources/localFile.txt similarity index 100% rename from tests/Resources/localFile.txt rename to tests/src/Tests/Resources/localFile.txt diff --git a/tests/Resources/smiley.png b/tests/src/Tests/Resources/smiley.png similarity index 100% rename from tests/Resources/smiley.png rename to tests/src/Tests/Resources/smiley.png diff --git a/tests/templates/base.html.twig b/tests/templates/base.html.twig new file mode 100644 index 0000000..3cda30f --- /dev/null +++ b/tests/templates/base.html.twig @@ -0,0 +1,17 @@ + + + + + Codestin Search App + + {% block stylesheets %} + {% endblock %} + + {% block javascripts %} + {% block importmap %}{{ importmap('app') }}{% endblock %} + {% endblock %} + + + {% block body %}{% endblock %} + + diff --git a/tests/templates/index.html.twig b/tests/templates/index.html.twig new file mode 100644 index 0000000..1503ec7 --- /dev/null +++ b/tests/templates/index.html.twig @@ -0,0 +1 @@ +{% extends 'base.html.twig' %}