From fcb18957fb522e39e42f46c180ad2dd096162d16 Mon Sep 17 00:00:00 2001 From: korridor <26689068+korridor@users.noreply.github.com> Date: Mon, 4 Mar 2024 18:42:52 +0100 Subject: [PATCH] Added extension system --- .gitignore | 4 + composer.json | 13 +- composer.lock | 857 +++++++++++++++++++++++++++++++++++------- config/modules.php | 232 ++++++++++++ vite-module-loader.js | 45 +++ 5 files changed, 1015 insertions(+), 136 deletions(-) create mode 100644 config/modules.php create mode 100644 vite-module-loader.js diff --git a/.gitignore b/.gitignore index e6028879..7500b583 100644 --- a/.gitignore +++ b/.gitignore @@ -26,3 +26,7 @@ yarn-error.log /blob-report/ /playwright/.cache/ /coverage +/extensions +!/extensions/.gitkeep +/auth.json +/modules_statuses.json diff --git a/composer.json b/composer.json index 8b895a38..b9f11e73 100644 --- a/composer.json +++ b/composer.json @@ -15,9 +15,11 @@ "laravel/jetstream": "^4.2", "laravel/passport": "^11.10.2", "laravel/tinker": "^2.8", + "nwidart/laravel-modules": "^10.0", "pxlrbt/filament-environment-indicator": "^2.0", "tightenco/ziggy": "^1.0", - "tpetry/laravel-postgresql-enhanced": "^0.33.0" + "tpetry/laravel-postgresql-enhanced": "^0.33.0", + "wikimedia/composer-merge-plugin": "^2.1.0" }, "require-dev": { "brianium/paratest": "^7.3", @@ -36,6 +38,7 @@ "autoload": { "psr-4": { "App\\": "app/", + "Extensions\\": "extensions/", "Database\\Factories\\": "database/factories/", "Database\\Seeders\\": "database/seeders/" } @@ -87,6 +90,11 @@ "dont-discover": [ "laravel/telescope" ] + }, + "merge-plugin": { + "include": [ + "extensions/*/composer.json" + ] } }, "config": { @@ -95,7 +103,8 @@ "sort-packages": true, "allow-plugins": { "pestphp/pest-plugin": true, - "php-http/discovery": true + "php-http/discovery": true, + "wikimedia/composer-merge-plugin": true } }, "minimum-stability": "stable", diff --git a/composer.lock b/composer.lock index d39541ae..ba24b58f 100644 --- a/composer.lock +++ b/composer.lock @@ -4,25 +4,25 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "e83929e68d256367652d91e43a79288e", + "content-hash": "de1902a8fd97d7cff852bce583628b47", "packages": [ { "name": "anourvalar/eloquent-serialize", - "version": "1.2.18", + "version": "1.2.19", "source": { "type": "git", "url": "https://github.com/AnourValar/eloquent-serialize.git", - "reference": "ea37278f305215bb763d8e901cd8fd448462a8af" + "reference": "7ab1be9b9d9a2369643b5e58796cd43717b9b5c3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/AnourValar/eloquent-serialize/zipball/ea37278f305215bb763d8e901cd8fd448462a8af", - "reference": "ea37278f305215bb763d8e901cd8fd448462a8af", + "url": "https://api.github.com/repos/AnourValar/eloquent-serialize/zipball/7ab1be9b9d9a2369643b5e58796cd43717b9b5c3", + "reference": "7ab1be9b9d9a2369643b5e58796cd43717b9b5c3", "shasum": "" }, "require": { "laravel/framework": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0", - "php": "^7.1|^8.0" + "php": "^7.4|^8.0" }, "require-dev": { "friendsofphp/php-cs-fixer": "^3.26", @@ -68,9 +68,9 @@ ], "support": { "issues": "https://github.com/AnourValar/eloquent-serialize/issues", - "source": "https://github.com/AnourValar/eloquent-serialize/tree/1.2.18" + "source": "https://github.com/AnourValar/eloquent-serialize/tree/1.2.19" }, - "time": "2024-02-25T11:04:10+00:00" + "time": "2024-03-03T05:05:13+00:00" }, { "name": "bacon/bacon-qr-code", @@ -557,16 +557,16 @@ }, { "name": "dedoc/scramble", - "version": "v0.8.5", + "version": "v0.8.6", "source": { "type": "git", "url": "https://github.com/dedoc/scramble.git", - "reference": "cc61cc79843c6e2206dc5d0f15ae705494de8249" + "reference": "f0331d5cde68cf14ce6287006ae536e5b9ed6df2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/dedoc/scramble/zipball/cc61cc79843c6e2206dc5d0f15ae705494de8249", - "reference": "cc61cc79843c6e2206dc5d0f15ae705494de8249", + "url": "https://api.github.com/repos/dedoc/scramble/zipball/f0331d5cde68cf14ce6287006ae536e5b9ed6df2", + "reference": "f0331d5cde68cf14ce6287006ae536e5b9ed6df2", "shasum": "" }, "require": { @@ -620,7 +620,7 @@ ], "support": { "issues": "https://github.com/dedoc/scramble/issues", - "source": "https://github.com/dedoc/scramble/tree/v0.8.5" + "source": "https://github.com/dedoc/scramble/tree/v0.8.6" }, "funding": [ { @@ -628,7 +628,7 @@ "type": "github" } ], - "time": "2023-12-02T09:58:18+00:00" + "time": "2024-03-03T18:32:22+00:00" }, { "name": "defuse/php-encryption", @@ -867,16 +867,16 @@ }, { "name": "doctrine/dbal", - "version": "3.8.2", + "version": "3.8.3", "source": { "type": "git", "url": "https://github.com/doctrine/dbal.git", - "reference": "a19a1d05ca211f41089dffcc387733a6875196cb" + "reference": "db922ba9436b7b18a23d1653a0b41ff2369ca41c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/dbal/zipball/a19a1d05ca211f41089dffcc387733a6875196cb", - "reference": "a19a1d05ca211f41089dffcc387733a6875196cb", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/db922ba9436b7b18a23d1653a0b41ff2369ca41c", + "reference": "db922ba9436b7b18a23d1653a0b41ff2369ca41c", "shasum": "" }, "require": { @@ -892,12 +892,12 @@ "doctrine/coding-standard": "12.0.0", "fig/log-test": "^1", "jetbrains/phpstorm-stubs": "2023.1", - "phpstan/phpstan": "1.10.57", + "phpstan/phpstan": "1.10.58", "phpstan/phpstan-strict-rules": "^1.5", "phpunit/phpunit": "9.6.16", "psalm/plugin-phpunit": "0.18.4", "slevomat/coding-standard": "8.13.1", - "squizlabs/php_codesniffer": "3.8.1", + "squizlabs/php_codesniffer": "3.9.0", "symfony/cache": "^5.4|^6.0|^7.0", "symfony/console": "^4.4|^5.4|^6.0|^7.0", "vimeo/psalm": "4.30.0" @@ -960,7 +960,7 @@ ], "support": { "issues": "https://github.com/doctrine/dbal/issues", - "source": "https://github.com/doctrine/dbal/tree/3.8.2" + "source": "https://github.com/doctrine/dbal/tree/3.8.3" }, "funding": [ { @@ -976,7 +976,7 @@ "type": "tidelift" } ], - "time": "2024-02-12T18:36:36+00:00" + "time": "2024-03-03T15:55:06+00:00" }, { "name": "doctrine/deprecations", @@ -1414,16 +1414,16 @@ }, { "name": "filament/actions", - "version": "v3.2.39", + "version": "v3.2.43", "source": { "type": "git", "url": "https://github.com/filamentphp/actions.git", - "reference": "dc87d0954eb05e04ffd7c94c2fec624fc0fb8cb5" + "reference": "7e7bd61e30504cd69d3f0a1127459feb30b3e6e0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/actions/zipball/dc87d0954eb05e04ffd7c94c2fec624fc0fb8cb5", - "reference": "dc87d0954eb05e04ffd7c94c2fec624fc0fb8cb5", + "url": "https://api.github.com/repos/filamentphp/actions/zipball/7e7bd61e30504cd69d3f0a1127459feb30b3e6e0", + "reference": "7e7bd61e30504cd69d3f0a1127459feb30b3e6e0", "shasum": "" }, "require": { @@ -1463,20 +1463,20 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2024-02-27T15:32:43+00:00" + "time": "2024-03-01T12:23:55+00:00" }, { "name": "filament/filament", - "version": "v3.2.39", + "version": "v3.2.43", "source": { "type": "git", "url": "https://github.com/filamentphp/panels.git", - "reference": "58b62998897e45017bab2beb1d3d27eba4e21cee" + "reference": "a091223785678e326ee89e9f194d774c288e26da" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/panels/zipball/58b62998897e45017bab2beb1d3d27eba4e21cee", - "reference": "58b62998897e45017bab2beb1d3d27eba4e21cee", + "url": "https://api.github.com/repos/filamentphp/panels/zipball/a091223785678e326ee89e9f194d774c288e26da", + "reference": "a091223785678e326ee89e9f194d774c288e26da", "shasum": "" }, "require": { @@ -1528,20 +1528,20 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2024-02-27T15:32:50+00:00" + "time": "2024-03-04T12:09:43+00:00" }, { "name": "filament/forms", - "version": "v3.2.39", + "version": "v3.2.43", "source": { "type": "git", "url": "https://github.com/filamentphp/forms.git", - "reference": "cb06d6e6f26d7b1837825fce3a4e77764fd346ad" + "reference": "64c3d18ca2c7794d96f113d3c5b11f6eccef30e7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/forms/zipball/cb06d6e6f26d7b1837825fce3a4e77764fd346ad", - "reference": "cb06d6e6f26d7b1837825fce3a4e77764fd346ad", + "url": "https://api.github.com/repos/filamentphp/forms/zipball/64c3d18ca2c7794d96f113d3c5b11f6eccef30e7", + "reference": "64c3d18ca2c7794d96f113d3c5b11f6eccef30e7", "shasum": "" }, "require": { @@ -1584,20 +1584,20 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2024-02-27T15:32:42+00:00" + "time": "2024-03-04T12:09:41+00:00" }, { "name": "filament/infolists", - "version": "v3.2.39", + "version": "v3.2.43", "source": { "type": "git", "url": "https://github.com/filamentphp/infolists.git", - "reference": "9c5748d4c5278c7854c53f283e16585002006920" + "reference": "9d13f101531ef920961967f1e4501540a22e1659" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/infolists/zipball/9c5748d4c5278c7854c53f283e16585002006920", - "reference": "9c5748d4c5278c7854c53f283e16585002006920", + "url": "https://api.github.com/repos/filamentphp/infolists/zipball/9d13f101531ef920961967f1e4501540a22e1659", + "reference": "9d13f101531ef920961967f1e4501540a22e1659", "shasum": "" }, "require": { @@ -1635,20 +1635,20 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2024-02-27T15:32:44+00:00" + "time": "2024-03-04T12:09:37+00:00" }, { "name": "filament/notifications", - "version": "v3.2.39", + "version": "v3.2.43", "source": { "type": "git", "url": "https://github.com/filamentphp/notifications.git", - "reference": "e6809dd500ce6b061c3bfb7d19dc03248572611e" + "reference": "93c1d72b12ff1bed520d082a1292ab25a566a8d8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/notifications/zipball/e6809dd500ce6b061c3bfb7d19dc03248572611e", - "reference": "e6809dd500ce6b061c3bfb7d19dc03248572611e", + "url": "https://api.github.com/repos/filamentphp/notifications/zipball/93c1d72b12ff1bed520d082a1292ab25a566a8d8", + "reference": "93c1d72b12ff1bed520d082a1292ab25a566a8d8", "shasum": "" }, "require": { @@ -1687,24 +1687,25 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2024-02-27T15:32:43+00:00" + "time": "2024-02-29T12:30:04+00:00" }, { "name": "filament/support", - "version": "v3.2.39", + "version": "v3.2.43", "source": { "type": "git", "url": "https://github.com/filamentphp/support.git", - "reference": "9f375682575c9669ccd24a47617b50308cc1a684" + "reference": "6dcf24890fdf69ffeb2d49f29a8a4c51cf7d4fc3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/support/zipball/9f375682575c9669ccd24a47617b50308cc1a684", - "reference": "9f375682575c9669ccd24a47617b50308cc1a684", + "url": "https://api.github.com/repos/filamentphp/support/zipball/6dcf24890fdf69ffeb2d49f29a8a4c51cf7d4fc3", + "reference": "6dcf24890fdf69ffeb2d49f29a8a4c51cf7d4fc3", "shasum": "" }, "require": { "blade-ui-kit/blade-heroicons": "^2.2.1", + "doctrine/dbal": "^3.2", "ext-intl": "*", "illuminate/contracts": "^10.45|^11.0", "illuminate/support": "^10.45|^11.0", @@ -1743,20 +1744,20 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2024-02-27T15:33:06+00:00" + "time": "2024-03-04T12:09:59+00:00" }, { "name": "filament/tables", - "version": "v3.2.39", + "version": "v3.2.43", "source": { "type": "git", "url": "https://github.com/filamentphp/tables.git", - "reference": "2515119b88b68339b64fb4e256375dfb2af5dd4c" + "reference": "081e59d82e463cea72f8c52579ceecc3b22937ca" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/tables/zipball/2515119b88b68339b64fb4e256375dfb2af5dd4c", - "reference": "2515119b88b68339b64fb4e256375dfb2af5dd4c", + "url": "https://api.github.com/repos/filamentphp/tables/zipball/081e59d82e463cea72f8c52579ceecc3b22937ca", + "reference": "081e59d82e463cea72f8c52579ceecc3b22937ca", "shasum": "" }, "require": { @@ -1796,20 +1797,20 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2024-02-27T15:33:09+00:00" + "time": "2024-03-04T12:10:08+00:00" }, { "name": "filament/widgets", - "version": "v3.2.39", + "version": "v3.2.43", "source": { "type": "git", "url": "https://github.com/filamentphp/widgets.git", - "reference": "3aa945b635745c5731a9728134411d500cf3a30a" + "reference": "fe151db7d32f1f85117a5be46b3fedd8ebb6380b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/widgets/zipball/3aa945b635745c5731a9728134411d500cf3a30a", - "reference": "3aa945b635745c5731a9728134411d500cf3a30a", + "url": "https://api.github.com/repos/filamentphp/widgets/zipball/fe151db7d32f1f85117a5be46b3fedd8ebb6380b", + "reference": "fe151db7d32f1f85117a5be46b3fedd8ebb6380b", "shasum": "" }, "require": { @@ -1840,7 +1841,7 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2024-02-01T11:30:24+00:00" + "time": "2024-03-04T12:10:03+00:00" }, { "name": "firebase/php-jwt", @@ -2585,26 +2586,26 @@ }, { "name": "korridor/laravel-model-validation-rules", - "version": "3.0.0", + "version": "3.1.0", "source": { "type": "git", "url": "https://github.com/korridor/laravel-model-validation-rules.git", - "reference": "23537e5bd296a042bbe0c3a1c6d556c89dfbad42" + "reference": "49370c70cc2b25d1b80252160ba3ab435828c95a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/korridor/laravel-model-validation-rules/zipball/23537e5bd296a042bbe0c3a1c6d556c89dfbad42", - "reference": "23537e5bd296a042bbe0c3a1c6d556c89dfbad42", + "url": "https://api.github.com/repos/korridor/laravel-model-validation-rules/zipball/49370c70cc2b25d1b80252160ba3ab435828c95a", + "reference": "49370c70cc2b25d1b80252160ba3ab435828c95a", "shasum": "" }, "require": { - "illuminate/database": "^10", - "illuminate/support": "^10", + "illuminate/database": "^10|^11", + "illuminate/support": "^10|^11", "php": ">=8.1" }, "require-dev": { "friendsofphp/php-cs-fixer": "^3.6", - "orchestra/testbench": "^8.0", + "orchestra/testbench": "^8.0|^9.0", "phpunit/phpunit": "^10", "squizlabs/php_codesniffer": "^3.5" }, @@ -2643,9 +2644,91 @@ ], "support": { "issues": "https://github.com/korridor/laravel-model-validation-rules/issues", - "source": "https://github.com/korridor/laravel-model-validation-rules/tree/3.0.0" + "source": "https://github.com/korridor/laravel-model-validation-rules/tree/3.1.0" + }, + "time": "2024-02-28T15:07:15+00:00" + }, + { + "name": "laravel/cashier-paddle", + "version": "v2.4.0", + "source": { + "type": "git", + "url": "https://github.com/laravel/cashier-paddle.git", + "reference": "435ae901784f414471184c5b28efe39a09c3d758" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/cashier-paddle/zipball/435ae901784f414471184c5b28efe39a09c3d758", + "reference": "435ae901784f414471184c5b28efe39a09c3d758", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ext-openssl": "*", + "guzzlehttp/guzzle": "^7.4.5", + "illuminate/contracts": "^10.0|^11.0", + "illuminate/database": "^10.0|^11.0", + "illuminate/http": "^10.0|^11.0", + "illuminate/routing": "^10.0|^11.0", + "illuminate/support": "^10.0|^11.0", + "illuminate/view": "^10.0|^11.0", + "moneyphp/money": "^3.2|^4.0", + "nesbot/carbon": "^2.67|^3.0", + "php": "^8.1", + "spatie/url": "^1.3.5|^2.0", + "symfony/http-kernel": "^6.2|^7.0", + "symfony/polyfill-intl-icu": "^1.22.1" + }, + "require-dev": { + "mockery/mockery": "^1.5.1", + "orchestra/testbench": "^8.14|^9.0", + "phpstan/phpstan": "^1.10", + "phpunit/phpunit": "^10.4" + }, + "suggest": { + "ext-intl": "Allows for more locales besides the default \"en\" when formatting money values." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + }, + "laravel": { + "providers": [ + "Laravel\\Paddle\\CashierServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Laravel\\Paddle\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + }, + { + "name": "Dries Vints", + "email": "dries@laravel.com" + } + ], + "description": "Cashier Paddle provides an expressive, fluent interface to Paddle's subscription billing services.", + "keywords": [ + "billing", + "laravel", + "paddle" + ], + "support": { + "issues": "https://github.com/laravel/cashier-paddle/issues", + "source": "https://github.com/laravel/cashier-paddle" }, - "time": "2023-02-16T11:15:08+00:00" + "time": "2024-02-27T17:02:47+00:00" }, { "name": "laravel/fortify", @@ -3181,6 +3264,78 @@ }, "time": "2023-11-08T14:08:06+00:00" }, + { + "name": "laravel/spark-paddle", + "version": "v5.1.2", + "source": { + "type": "git", + "url": "git@github.com:laravel/spark-paddle.git", + "reference": "dd188c5aeda435ebc6497e2f8f3f169dfabc447f" + }, + "dist": { + "type": "zip", + "url": "https://spark.laravel.com/dist/laravel/spark-paddle/laravel-spark-paddle-dd188c5aeda435ebc6497e2f8f3f169dfabc447f-zip-59074a.zip", + "reference": "dd188c5aeda435ebc6497e2f8f3f169dfabc447f", + "shasum": "f597e99133e5621af20d5d85068f7797fa22d69d" + }, + "require": { + "ext-bcmath": "*", + "ext-json": "*", + "illuminate/contracts": "^10.0|^11.0", + "inertiajs/inertia-laravel": "^0.6.4|^1.0", + "laravel/cashier-paddle": "^2.0.5", + "php": "^8.1" + }, + "require-dev": { + "mockery/mockery": "^1.0", + "orchestra/testbench": "^8.14|^9.0", + "phpstan/phpstan": "^1.10", + "phpunit/phpunit": "^10.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.x-dev" + }, + "laravel": { + "providers": [ + "Spark\\SparkServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Spark\\": "src/" + } + }, + "autoload-dev": { + "psr-4": { + "Spark\\Tests\\": "tests/" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "Laravel Spark provides scaffolding for Laravel SaaS applications.", + "keywords": [ + "billing", + "laravel", + "paddle", + "saas", + "scaffolding" + ], + "support": { + "source": "https://github.com/laravel/spark-paddle/tree/v5.1.2", + "issues": "https://github.com/laravel/spark-paddle/issues" + }, + "time": "2024-02-26T15:06:52+00:00" + }, { "name": "laravel/tinker", "version": "v2.9.0", @@ -4327,21 +4482,21 @@ }, { "name": "mobiledetect/mobiledetectlib", - "version": "4.8.05", + "version": "4.8.06", "source": { "type": "git", "url": "https://github.com/serbanghita/Mobile-Detect.git", - "reference": "b7a8cdd70955ea6162269939914ba97fe36a154a" + "reference": "af088b54cecc13b3264edca7da93a89ba7aa2d9e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/serbanghita/Mobile-Detect/zipball/b7a8cdd70955ea6162269939914ba97fe36a154a", - "reference": "b7a8cdd70955ea6162269939914ba97fe36a154a", + "url": "https://api.github.com/repos/serbanghita/Mobile-Detect/zipball/af088b54cecc13b3264edca7da93a89ba7aa2d9e", + "reference": "af088b54cecc13b3264edca7da93a89ba7aa2d9e", "shasum": "" }, "require": { "php": ">=8.0", - "psr/simple-cache": "^3.0" + "psr/simple-cache": "^2 || ^3" }, "require-dev": { "friendsofphp/php-cs-fixer": "^v3.35.1", @@ -4379,7 +4534,7 @@ ], "support": { "issues": "https://github.com/serbanghita/Mobile-Detect/issues", - "source": "https://github.com/serbanghita/Mobile-Detect/tree/4.8.05" + "source": "https://github.com/serbanghita/Mobile-Detect/tree/4.8.06" }, "funding": [ { @@ -4387,7 +4542,95 @@ "type": "github" } ], - "time": "2024-01-10T22:04:41+00:00" + "time": "2024-03-01T22:28:42+00:00" + }, + { + "name": "moneyphp/money", + "version": "v4.5.0", + "source": { + "type": "git", + "url": "https://github.com/moneyphp/money.git", + "reference": "a1daa7daf159b4044e3d0c34c41fe2be5860e850" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/moneyphp/money/zipball/a1daa7daf159b4044e3d0c34c41fe2be5860e850", + "reference": "a1daa7daf159b4044e3d0c34c41fe2be5860e850", + "shasum": "" + }, + "require": { + "ext-bcmath": "*", + "ext-filter": "*", + "ext-json": "*", + "php": "~8.1.0 || ~8.2.0 || ~8.3.0" + }, + "require-dev": { + "cache/taggable-cache": "^1.1.0", + "doctrine/coding-standard": "^12.0", + "doctrine/instantiator": "^1.5.0 || ^2.0", + "ext-gmp": "*", + "ext-intl": "*", + "florianv/exchanger": "^2.8.1", + "florianv/swap": "^4.3.0", + "moneyphp/crypto-currencies": "^1.1.0", + "moneyphp/iso-currencies": "^3.4", + "php-http/message": "^1.16.0", + "php-http/mock-client": "^1.6.0", + "phpbench/phpbench": "^1.2.5", + "phpunit/phpunit": "^10.5.9", + "psalm/plugin-phpunit": "^0.18.4", + "psr/cache": "^1.0.1 || ^2.0 || ^3.0", + "vimeo/psalm": "~5.20.0" + }, + "suggest": { + "ext-gmp": "Calculate without integer limits", + "ext-intl": "Format Money objects with intl", + "florianv/exchanger": "Exchange rates library for PHP", + "florianv/swap": "Exchange rates library for PHP", + "psr/cache-implementation": "Used for Currency caching" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Money\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mathias Verraes", + "email": "mathias@verraes.net", + "homepage": "http://verraes.net" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com" + }, + { + "name": "Frederik Bosch", + "email": "f.bosch@genkgo.nl" + } + ], + "description": "PHP implementation of Fowler's Money pattern", + "homepage": "http://moneyphp.org", + "keywords": [ + "Value Object", + "money", + "vo" + ], + "support": { + "issues": "https://github.com/moneyphp/money/issues", + "source": "https://github.com/moneyphp/money/tree/v4.5.0" + }, + "time": "2024-02-15T19:47:21+00:00" }, { "name": "monolog/monolog", @@ -4887,6 +5130,91 @@ ], "time": "2023-02-08T01:06:31+00:00" }, + { + "name": "nwidart/laravel-modules", + "version": "10.0.6", + "source": { + "type": "git", + "url": "https://github.com/nWidart/laravel-modules.git", + "reference": "a6f2c8b53ae7945ef41d296735e963cee885ebde" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nWidart/laravel-modules/zipball/a6f2c8b53ae7945ef41d296735e963cee885ebde", + "reference": "a6f2c8b53ae7945ef41d296735e963cee885ebde", + "shasum": "" + }, + "require": { + "ext-json": "*", + "php": ">=8.1" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^3.6", + "laravel/framework": "^10.41", + "mockery/mockery": "^1.5", + "orchestra/testbench": "^8.0", + "phpstan/phpstan": "^1.4", + "phpunit/phpunit": "^10.0", + "spatie/phpunit-snapshot-assertions": "^5.0" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Nwidart\\Modules\\LaravelModulesServiceProvider" + ], + "aliases": { + "Module": "Nwidart\\Modules\\Facades\\Module" + } + }, + "branch-alias": { + "dev-master": "10.0-dev" + } + }, + "autoload": { + "files": [ + "src/helpers.php" + ], + "psr-4": { + "Nwidart\\Modules\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Widart", + "email": "n.widart@gmail.com", + "homepage": "https://nicolaswidart.com", + "role": "Developer" + } + ], + "description": "Laravel Module management", + "keywords": [ + "laravel", + "module", + "modules", + "nwidart", + "rad" + ], + "support": { + "issues": "https://github.com/nWidart/laravel-modules/issues", + "source": "https://github.com/nWidart/laravel-modules/tree/10.0.6" + }, + "funding": [ + { + "url": "https://github.com/dcblogdev", + "type": "github" + }, + { + "url": "https://github.com/nwidart", + "type": "github" + } + ], + "time": "2024-01-28T10:04:15+00:00" + }, { "name": "nyholm/psr7", "version": "1.8.1", @@ -5252,16 +5580,16 @@ }, { "name": "phpseclib/phpseclib", - "version": "3.0.36", + "version": "3.0.37", "source": { "type": "git", "url": "https://github.com/phpseclib/phpseclib.git", - "reference": "c2fb5136162d4be18fdd4da9980696f3aee96d7b" + "reference": "cfa2013d0f68c062055180dd4328cc8b9d1f30b8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/c2fb5136162d4be18fdd4da9980696f3aee96d7b", - "reference": "c2fb5136162d4be18fdd4da9980696f3aee96d7b", + "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/cfa2013d0f68c062055180dd4328cc8b9d1f30b8", + "reference": "cfa2013d0f68c062055180dd4328cc8b9d1f30b8", "shasum": "" }, "require": { @@ -5342,7 +5670,7 @@ ], "support": { "issues": "https://github.com/phpseclib/phpseclib/issues", - "source": "https://github.com/phpseclib/phpseclib/tree/3.0.36" + "source": "https://github.com/phpseclib/phpseclib/tree/3.0.37" }, "funding": [ { @@ -5358,7 +5686,7 @@ "type": "tidelift" } ], - "time": "2024-02-26T05:13:14+00:00" + "time": "2024-03-03T02:14:58+00:00" }, { "name": "phpstan/phpdoc-parser", @@ -6542,6 +6870,118 @@ ], "time": "2024-01-11T08:43:00+00:00" }, + { + "name": "spatie/macroable", + "version": "2.0.0", + "source": { + "type": "git", + "url": "https://github.com/spatie/macroable.git", + "reference": "ec2c320f932e730607aff8052c44183cf3ecb072" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/macroable/zipball/ec2c320f932e730607aff8052c44183cf3ecb072", + "reference": "ec2c320f932e730607aff8052c44183cf3ecb072", + "shasum": "" + }, + "require": { + "php": "^8.0" + }, + "require-dev": { + "phpunit/phpunit": "^8.0|^9.3" + }, + "type": "library", + "autoload": { + "psr-4": { + "Spatie\\Macroable\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Freek Van der Herten", + "email": "freek@spatie.be", + "homepage": "https://spatie.be", + "role": "Developer" + } + ], + "description": "A trait to dynamically add methods to a class", + "homepage": "https://github.com/spatie/macroable", + "keywords": [ + "macroable", + "spatie" + ], + "support": { + "issues": "https://github.com/spatie/macroable/issues", + "source": "https://github.com/spatie/macroable/tree/2.0.0" + }, + "time": "2021-03-26T22:39:02+00:00" + }, + { + "name": "spatie/url", + "version": "2.3.0", + "source": { + "type": "git", + "url": "https://github.com/spatie/url.git", + "reference": "ae324f5f77290827d66486fc88aa2c9373bc2170" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/url/zipball/ae324f5f77290827d66486fc88aa2c9373bc2170", + "reference": "ae324f5f77290827d66486fc88aa2c9373bc2170", + "shasum": "" + }, + "require": { + "php": "^8.0", + "psr/http-message": "^1.0 || ^2.0", + "spatie/macroable": "^2.0" + }, + "require-dev": { + "pestphp/pest": "^1.21" + }, + "type": "library", + "autoload": { + "psr-4": { + "Spatie\\Url\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Sebastian De Deyne", + "email": "sebastian@spatie.be", + "homepage": "https://spatie.be", + "role": "Developer" + } + ], + "description": "Parse, build and manipulate URL's", + "homepage": "https://github.com/spatie/url", + "keywords": [ + "spatie", + "url" + ], + "support": { + "issues": "https://github.com/spatie/url/issues", + "source": "https://github.com/spatie/url/tree/2.3.0" + }, + "funding": [ + { + "url": "https://spatie.be/open-source/support-us", + "type": "custom" + }, + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "time": "2024-01-05T10:09:13+00:00" + }, { "name": "symfony/console", "version": "v6.4.4", @@ -7643,6 +8083,90 @@ ], "time": "2024-01-29T20:11:03+00:00" }, + { + "name": "symfony/polyfill-intl-icu", + "version": "v1.29.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-icu.git", + "reference": "07094a28851a49107f3ab4f9120ca2975a64b6e1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/07094a28851a49107f3ab4f9120ca2975a64b6e1", + "reference": "07094a28851a49107f3ab4f9120ca2975a64b6e1", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance and support of other locales than \"en\"" + }, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Icu\\": "" + }, + "classmap": [ + "Resources/stubs" + ], + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's ICU-related data and classes", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "icu", + "intl", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-icu/tree/v1.29.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-01-29T20:12:16+00:00" + }, { "name": "symfony/polyfill-intl-idn", "version": "v1.29.0", @@ -9330,6 +9854,62 @@ "source": "https://github.com/webmozarts/assert/tree/1.11.0" }, "time": "2022-06-03T18:03:27+00:00" + }, + { + "name": "wikimedia/composer-merge-plugin", + "version": "v2.1.0", + "source": { + "type": "git", + "url": "https://github.com/wikimedia/composer-merge-plugin.git", + "reference": "a03d426c8e9fb2c9c569d9deeb31a083292788bc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/wikimedia/composer-merge-plugin/zipball/a03d426c8e9fb2c9c569d9deeb31a083292788bc", + "reference": "a03d426c8e9fb2c9c569d9deeb31a083292788bc", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.1||^2.0", + "php": ">=7.2.0" + }, + "require-dev": { + "composer/composer": "^1.1||^2.0", + "ext-json": "*", + "mediawiki/mediawiki-phan-config": "0.11.1", + "php-parallel-lint/php-parallel-lint": "~1.3.1", + "phpspec/prophecy": "~1.15.0", + "phpunit/phpunit": "^8.5||^9.0", + "squizlabs/php_codesniffer": "~3.7.1" + }, + "type": "composer-plugin", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + }, + "class": "Wikimedia\\Composer\\Merge\\V2\\MergePlugin" + }, + "autoload": { + "psr-4": { + "Wikimedia\\Composer\\Merge\\V2\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bryan Davis", + "email": "bd808@wikimedia.org" + } + ], + "description": "Composer plugin to merge multiple composer.json files", + "support": { + "issues": "https://github.com/wikimedia/composer-merge-plugin/issues", + "source": "https://github.com/wikimedia/composer-merge-plugin/tree/v2.1.0" + }, + "time": "2023-04-15T19:07:00+00:00" } ], "packages-dev": [ @@ -9794,16 +10374,16 @@ }, { "name": "larastan/larastan", - "version": "v2.9.1", + "version": "v2.9.2", "source": { "type": "git", "url": "https://github.com/larastan/larastan.git", - "reference": "467113c58d110ad617cf9e07ff49b0948d1c03cc" + "reference": "a79b46b96060504b400890674b83f66aa7f5db6d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/larastan/larastan/zipball/467113c58d110ad617cf9e07ff49b0948d1c03cc", - "reference": "467113c58d110ad617cf9e07ff49b0948d1c03cc", + "url": "https://api.github.com/repos/larastan/larastan/zipball/a79b46b96060504b400890674b83f66aa7f5db6d", + "reference": "a79b46b96060504b400890674b83f66aa7f5db6d", "shasum": "" }, "require": { @@ -9820,6 +10400,7 @@ "phpstan/phpstan": "^1.10.50" }, "require-dev": { + "doctrine/coding-standard": "^12.0", "nikic/php-parser": "^4.17.1", "orchestra/canvas": "^7.11.1 || ^8.11.0 || ^9.0.0", "orchestra/testbench": "^7.33.0 || ^8.13.0 || ^9.0.0", @@ -9871,7 +10452,7 @@ ], "support": { "issues": "https://github.com/larastan/larastan/issues", - "source": "https://github.com/larastan/larastan/tree/v2.9.1" + "source": "https://github.com/larastan/larastan/tree/v2.9.2" }, "funding": [ { @@ -9891,7 +10472,7 @@ "type": "patreon" } ], - "time": "2024-02-26T14:10:20+00:00" + "time": "2024-02-27T03:16:03+00:00" }, { "name": "laravel/pint", @@ -10332,20 +10913,21 @@ }, { "name": "phar-io/manifest", - "version": "2.0.3", + "version": "2.0.4", "source": { "type": "git", "url": "https://github.com/phar-io/manifest.git", - "reference": "97803eca37d319dfa7826cc2437fc020857acb53" + "reference": "54750ef60c58e43759730615a392c31c80e23176" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53", - "reference": "97803eca37d319dfa7826cc2437fc020857acb53", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/54750ef60c58e43759730615a392c31c80e23176", + "reference": "54750ef60c58e43759730615a392c31c80e23176", "shasum": "" }, "require": { "ext-dom": "*", + "ext-libxml": "*", "ext-phar": "*", "ext-xmlwriter": "*", "phar-io/version": "^3.0.1", @@ -10386,9 +10968,15 @@ "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", "support": { "issues": "https://github.com/phar-io/manifest/issues", - "source": "https://github.com/phar-io/manifest/tree/2.0.3" + "source": "https://github.com/phar-io/manifest/tree/2.0.4" }, - "time": "2021-07-20T11:28:43+00:00" + "funding": [ + { + "url": "https://github.com/theseer", + "type": "github" + } + ], + "time": "2024-03-03T12:33:53+00:00" }, { "name": "phar-io/version", @@ -10593,16 +11181,16 @@ }, { "name": "phpunit/php-code-coverage", - "version": "10.1.11", + "version": "10.1.12", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "78c3b7625965c2513ee96569a4dbb62601784145" + "reference": "842f72662d6b9edda84c4b6f13885fd9cd53dc63" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/78c3b7625965c2513ee96569a4dbb62601784145", - "reference": "78c3b7625965c2513ee96569a4dbb62601784145", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/842f72662d6b9edda84c4b6f13885fd9cd53dc63", + "reference": "842f72662d6b9edda84c4b6f13885fd9cd53dc63", "shasum": "" }, "require": { @@ -10659,7 +11247,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.11" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.12" }, "funding": [ { @@ -10667,7 +11255,7 @@ "type": "github" } ], - "time": "2023-12-21T15:38:30+00:00" + "time": "2024-03-02T07:22:05+00:00" }, { "name": "phpunit/php-file-iterator", @@ -11015,16 +11603,16 @@ }, { "name": "sebastian/cli-parser", - "version": "2.0.0", + "version": "2.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/cli-parser.git", - "reference": "efdc130dbbbb8ef0b545a994fd811725c5282cae" + "reference": "c34583b87e7b7a8055bf6c450c2c77ce32a24084" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/efdc130dbbbb8ef0b545a994fd811725c5282cae", - "reference": "efdc130dbbbb8ef0b545a994fd811725c5282cae", + "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/c34583b87e7b7a8055bf6c450c2c77ce32a24084", + "reference": "c34583b87e7b7a8055bf6c450c2c77ce32a24084", "shasum": "" }, "require": { @@ -11059,7 +11647,8 @@ "homepage": "https://github.com/sebastianbergmann/cli-parser", "support": { "issues": "https://github.com/sebastianbergmann/cli-parser/issues", - "source": "https://github.com/sebastianbergmann/cli-parser/tree/2.0.0" + "security": "https://github.com/sebastianbergmann/cli-parser/security/policy", + "source": "https://github.com/sebastianbergmann/cli-parser/tree/2.0.1" }, "funding": [ { @@ -11067,7 +11656,7 @@ "type": "github" } ], - "time": "2023-02-03T06:58:15+00:00" + "time": "2024-03-02T07:12:49+00:00" }, { "name": "sebastian/code-unit", @@ -11317,16 +11906,16 @@ }, { "name": "sebastian/diff", - "version": "5.1.0", + "version": "5.1.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "fbf413a49e54f6b9b17e12d900ac7f6101591b7f" + "reference": "c41e007b4b62af48218231d6c2275e4c9b975b2e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/fbf413a49e54f6b9b17e12d900ac7f6101591b7f", - "reference": "fbf413a49e54f6b9b17e12d900ac7f6101591b7f", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/c41e007b4b62af48218231d6c2275e4c9b975b2e", + "reference": "c41e007b4b62af48218231d6c2275e4c9b975b2e", "shasum": "" }, "require": { @@ -11334,7 +11923,7 @@ }, "require-dev": { "phpunit/phpunit": "^10.0", - "symfony/process": "^4.2 || ^5" + "symfony/process": "^6.4" }, "type": "library", "extra": { @@ -11372,7 +11961,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/diff/issues", "security": "https://github.com/sebastianbergmann/diff/security/policy", - "source": "https://github.com/sebastianbergmann/diff/tree/5.1.0" + "source": "https://github.com/sebastianbergmann/diff/tree/5.1.1" }, "funding": [ { @@ -11380,7 +11969,7 @@ "type": "github" } ], - "time": "2023-12-22T10:55:06+00:00" + "time": "2024-03-02T07:15:17+00:00" }, { "name": "sebastian/environment", @@ -11448,16 +12037,16 @@ }, { "name": "sebastian/exporter", - "version": "5.1.1", + "version": "5.1.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "64f51654862e0f5e318db7e9dcc2292c63cdbddc" + "reference": "955288482d97c19a372d3f31006ab3f37da47adf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/64f51654862e0f5e318db7e9dcc2292c63cdbddc", - "reference": "64f51654862e0f5e318db7e9dcc2292c63cdbddc", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/955288482d97c19a372d3f31006ab3f37da47adf", + "reference": "955288482d97c19a372d3f31006ab3f37da47adf", "shasum": "" }, "require": { @@ -11514,7 +12103,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/exporter/issues", "security": "https://github.com/sebastianbergmann/exporter/security/policy", - "source": "https://github.com/sebastianbergmann/exporter/tree/5.1.1" + "source": "https://github.com/sebastianbergmann/exporter/tree/5.1.2" }, "funding": [ { @@ -11522,20 +12111,20 @@ "type": "github" } ], - "time": "2023-09-24T13:22:09+00:00" + "time": "2024-03-02T07:17:12+00:00" }, { "name": "sebastian/global-state", - "version": "6.0.1", + "version": "6.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "7ea9ead78f6d380d2a667864c132c2f7b83055e4" + "reference": "987bafff24ecc4c9ac418cab1145b96dd6e9cbd9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/7ea9ead78f6d380d2a667864c132c2f7b83055e4", - "reference": "7ea9ead78f6d380d2a667864c132c2f7b83055e4", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/987bafff24ecc4c9ac418cab1145b96dd6e9cbd9", + "reference": "987bafff24ecc4c9ac418cab1145b96dd6e9cbd9", "shasum": "" }, "require": { @@ -11569,14 +12158,14 @@ } ], "description": "Snapshotting of global state", - "homepage": "http://www.github.com/sebastianbergmann/global-state", + "homepage": "https://www.github.com/sebastianbergmann/global-state", "keywords": [ "global state" ], "support": { "issues": "https://github.com/sebastianbergmann/global-state/issues", "security": "https://github.com/sebastianbergmann/global-state/security/policy", - "source": "https://github.com/sebastianbergmann/global-state/tree/6.0.1" + "source": "https://github.com/sebastianbergmann/global-state/tree/6.0.2" }, "funding": [ { @@ -11584,7 +12173,7 @@ "type": "github" } ], - "time": "2023-07-19T07:19:23+00:00" + "time": "2024-03-02T07:19:19+00:00" }, { "name": "sebastian/lines-of-code", @@ -12307,16 +12896,16 @@ }, { "name": "theseer/tokenizer", - "version": "1.2.2", + "version": "1.2.3", "source": { "type": "git", "url": "https://github.com/theseer/tokenizer.git", - "reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96" + "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/b2ad5003ca10d4ee50a12da31de12a5774ba6b96", - "reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", + "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", "shasum": "" }, "require": { @@ -12345,7 +12934,7 @@ "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", "support": { "issues": "https://github.com/theseer/tokenizer/issues", - "source": "https://github.com/theseer/tokenizer/tree/1.2.2" + "source": "https://github.com/theseer/tokenizer/tree/1.2.3" }, "funding": [ { @@ -12353,7 +12942,7 @@ "type": "github" } ], - "time": "2023-11-20T00:12:19+00:00" + "time": "2024-03-03T12:36:25+00:00" }, { "name": "timacdonald/log-fake", diff --git a/config/modules.php b/config/modules.php new file mode 100644 index 00000000..316b0c81 --- /dev/null +++ b/config/modules.php @@ -0,0 +1,232 @@ + 'Extensions', + + /* + |-------------------------------------------------------------------------- + | Module Stubs + |-------------------------------------------------------------------------- + | + | Default module stubs. + | + */ + + 'stubs' => [ + 'enabled' => false, + 'path' => base_path('vendor/nwidart/laravel-modules/src/Commands/stubs'), + 'files' => [ + 'routes/web' => 'routes/web.php', + 'routes/api' => 'routes/api.php', + 'views/index' => 'resources/views/index.blade.php', + 'views/master' => 'resources/views/layouts/master.blade.php', + 'scaffold/config' => 'config/config.php', + 'composer' => 'composer.json', + 'assets/js/app' => 'resources/assets/js/app.js', + 'assets/sass/app' => 'resources/assets/sass/app.scss', + 'vite' => 'vite.config.js', + 'package' => 'package.json', + ], + 'replacements' => [ + 'routes/web' => ['LOWER_NAME', 'STUDLY_NAME', 'MODULE_NAMESPACE', 'CONTROLLER_NAMESPACE'], + 'routes/api' => ['LOWER_NAME', 'STUDLY_NAME'], + 'vite' => ['LOWER_NAME'], + 'json' => ['LOWER_NAME', 'STUDLY_NAME', 'MODULE_NAMESPACE', 'PROVIDER_NAMESPACE'], + 'views/index' => ['LOWER_NAME'], + 'views/master' => ['LOWER_NAME', 'STUDLY_NAME'], + 'scaffold/config' => ['STUDLY_NAME'], + 'composer' => [ + 'LOWER_NAME', + 'STUDLY_NAME', + 'VENDOR', + 'AUTHOR_NAME', + 'AUTHOR_EMAIL', + 'MODULE_NAMESPACE', + 'PROVIDER_NAMESPACE', + ], + ], + 'gitkeep' => true, + ], + 'paths' => [ + /* + |-------------------------------------------------------------------------- + | Modules path + |-------------------------------------------------------------------------- + | + | This path is used to save the generated module. + | This path will also be added automatically to the list of scanned folders. + | + */ + + 'modules' => base_path('extensions'), + /* + |-------------------------------------------------------------------------- + | Modules assets path + |-------------------------------------------------------------------------- + | + | Here you may update the modules' assets path. + | + */ + + 'assets' => public_path('extensions'), + /* + |-------------------------------------------------------------------------- + | The migrations' path + |-------------------------------------------------------------------------- + | + | Where you run the 'module:publish-migration' command, where do you publish the + | the migration files? + | + */ + + 'migration' => base_path('database/migrations'), + /* + |-------------------------------------------------------------------------- + | Generator path + |-------------------------------------------------------------------------- + | Customise the paths where the folders will be generated. + | Setting the generate key to false will not generate that folder + */ + 'generator' => [ + 'config' => ['path' => 'config', 'generate' => true], + 'command' => ['path' => 'App/Console', 'generate' => false], + 'channels' => ['path' => 'App/Broadcasting', 'generate' => false], + 'migration' => ['path' => 'Database/migrations', 'generate' => false], + 'seeder' => ['path' => 'Database/Seeders', 'generate' => true], + 'factory' => ['path' => 'Database/Factories', 'generate' => false], + 'model' => ['path' => 'App/Models', 'generate' => false], + 'observer' => ['path' => 'App/Observers', 'generate' => false], + 'routes' => ['path' => 'routes', 'generate' => true], + 'controller' => ['path' => 'App/Http/Controllers', 'generate' => true], + 'filter' => ['path' => 'App/Http/Middleware', 'generate' => false], + 'request' => ['path' => 'App/Http/Requests', 'generate' => false], + 'provider' => ['path' => 'App/Providers', 'generate' => true], + 'assets' => ['path' => 'resources/assets', 'generate' => false], + 'lang' => ['path' => 'lang', 'generate' => false], + 'views' => ['path' => 'resources/views', 'generate' => true], + 'test' => ['path' => 'tests/Unit', 'generate' => false], + 'test-feature' => ['path' => 'tests/Feature', 'generate' => false], + 'repository' => ['path' => 'App/Repositories', 'generate' => false], + 'event' => ['path' => 'App/Events', 'generate' => false], + 'listener' => ['path' => 'App/Listeners', 'generate' => false], + 'policies' => ['path' => 'App/Policies', 'generate' => false], + 'rules' => ['path' => 'App/Rules', 'generate' => false], + 'jobs' => ['path' => 'App/Jobs', 'generate' => false], + 'emails' => ['path' => 'App/Emails', 'generate' => false], + 'notifications' => ['path' => 'App/Notifications', 'generate' => false], + 'resource' => ['path' => 'App/resources', 'generate' => false], + 'component-view' => ['path' => 'resources/views/components', 'generate' => false], + 'component-class' => ['path' => 'App/View/Components', 'generate' => false], + ], + ], + + /* + |-------------------------------------------------------------------------- + | Package commands + |-------------------------------------------------------------------------- + | + | Here you can define which commands will be visible and used in your + | application. You can add your own commands to merge section. + | + */ + 'commands' => ConsoleServiceProvider::defaultCommands() + ->merge([ + // New commands go here + ])->toArray(), + + /* + |-------------------------------------------------------------------------- + | Scan Path + |-------------------------------------------------------------------------- + | + | Here you define which folder will be scanned. By default will scan vendor + | directory. This is useful if you host the package in packagist website. + | + */ + + 'scan' => [ + 'enabled' => false, + 'paths' => [ + base_path('vendor/*/*'), + ], + ], + /* + |-------------------------------------------------------------------------- + | Composer File Template + |-------------------------------------------------------------------------- + | + | Here is the config for the composer.json file, generated by this package + | + */ + + 'composer' => [ + 'vendor' => 'nwidart', + 'author' => [ + 'name' => 'Nicolas Widart', + 'email' => 'n.widart@gmail.com', + ], + 'composer-output' => false, + ], + + /* + |-------------------------------------------------------------------------- + | Caching + |-------------------------------------------------------------------------- + | + | Here is the config for setting up the caching feature. + | + */ + 'cache' => [ + 'enabled' => false, + 'driver' => 'file', + 'key' => 'laravel-modules', + 'lifetime' => 60, + ], + /* + |-------------------------------------------------------------------------- + | Choose what laravel-modules will register as custom namespaces. + | Setting one to false will require you to register that part + | in your own Service Provider class. + |-------------------------------------------------------------------------- + */ + 'register' => [ + 'translations' => true, + /** + * load files on boot or register method + */ + 'files' => 'register', + ], + + /* + |-------------------------------------------------------------------------- + | Activators + |-------------------------------------------------------------------------- + | + | You can define new types of activators here, file, database, etc. The only + | required parameter is 'class'. + | The file activator will store the activation status in storage/installed_modules + */ + 'activators' => [ + 'file' => [ + 'class' => FileActivator::class, + 'statuses-file' => base_path('modules_statuses.json'), + 'cache-key' => 'activator.installed', + 'cache-lifetime' => 604800, + ], + ], + + 'activator' => 'file', +]; diff --git a/vite-module-loader.js b/vite-module-loader.js new file mode 100644 index 00000000..ab41f226 --- /dev/null +++ b/vite-module-loader.js @@ -0,0 +1,45 @@ +import fs from 'fs/promises'; +import path from 'path'; + +async function collectModuleAssetsPaths(paths, modulesPath) { + modulesPath = path.join(__dirname, modulesPath); + + const moduleStatusesPath = path.join(__dirname, 'modules_statuses.json'); + + try { + // Read module_statuses.json + const moduleStatusesContent = await fs.readFile(moduleStatusesPath, 'utf-8'); + const moduleStatuses = JSON.parse(moduleStatusesContent); + + // Read module directories + const moduleDirectories = await fs.readdir(modulesPath); + + for (const moduleDir of moduleDirectories) { + if (moduleDir === '.DS_Store') { + // Skip .DS_Store directory + continue; + } + + // Check if the module is enabled (status is true) + if (moduleStatuses[moduleDir] === true) { + const viteConfigPath = path.join(modulesPath, moduleDir, 'vite.config.js'); + const stat = await fs.stat(viteConfigPath); + + if (stat.isFile()) { + // Import the module-specific Vite configuration + const moduleConfig = await import(viteConfigPath); + + if (moduleConfig.paths && Array.isArray(moduleConfig.paths)) { + paths.push(...moduleConfig.paths); + } + } + } + } + } catch (error) { + console.error(`Error reading module statuses or module configurations: ${error}`); + } + + return paths; +} + +export default collectModuleAssetsPaths;