chore(deps): upgrade nwidart/laravel-modules to v13 via invoiceshelf/modules ^3.0
Pulls invoiceshelf/modules ^3.0 from packagist — a thin extension package on top of current upstream nwidart/laravel-modules ^13.0 — replacing the stale 2021-era invoiceshelf/modules ^1.0 fork that bundled its own copy of nwidart. The host app's autoloader now resolves Nwidart\Modules\* from vendor/nwidart/laravel-modules and InvoiceShelf\Modules\* from vendor/invoiceshelf/modules. Existing imports of Nwidart\Modules\Facades\Module keep working unchanged. config/modules.php is republished from upstream v13 with two InvoiceShelf-specific overrides: - activators.file.statuses-file kept at storage/app/modules_statuses.json so existing installations don't lose track of which modules are enabled when the config is republished (upstream v13 defaults to base_path()). - New lang/menu and lang/settings entries in stubs.files / stubs.replacements that pair with the custom module:make stubs shipped from the package. Wires wikimedia/composer-merge-plugin (a transitive dependency of nwidart) so each module's nested composer.json autoload mapping is merged into the host autoloader at composer dump-autoload time. This is what makes a module generated via php artisan module:make MyModule actually loadable. The plugin is added to allow-plugins and configured via extra.merge-plugin.include. Drops the stale Modules\\: Modules/ PSR-4 fallback root from autoload — it didn't match nwidart's app/-prefixed module layout and was always broken for generated modules.
This commit is contained in:
@@ -14,7 +14,7 @@
|
||||
"gotenberg/gotenberg-php": "^2.8",
|
||||
"guzzlehttp/guzzle": "^7.9",
|
||||
"hashids/hashids": "^5.0",
|
||||
"invoiceshelf/modules": "^1.0.0",
|
||||
"invoiceshelf/modules": "^3.0",
|
||||
"laravel/framework": "^13.0",
|
||||
"laravel/helpers": "^1.7",
|
||||
"laravel/sanctum": "^4.0",
|
||||
@@ -49,8 +49,7 @@
|
||||
"psr-4": {
|
||||
"App\\": "app/",
|
||||
"Database\\Factories\\": "database/factories/",
|
||||
"Database\\Seeders\\": "database/seeders/",
|
||||
"Modules\\": "Modules/"
|
||||
"Database\\Seeders\\": "database/seeders/"
|
||||
},
|
||||
"files": [
|
||||
"app/Support/helpers.php"
|
||||
@@ -90,6 +89,18 @@
|
||||
"extra": {
|
||||
"laravel": {
|
||||
"dont-discover": []
|
||||
},
|
||||
"merge-plugin": {
|
||||
"include": [
|
||||
"Modules/*/composer.json"
|
||||
],
|
||||
"recurse": true,
|
||||
"replace": false,
|
||||
"ignore-duplicates": false,
|
||||
"merge-dev": true,
|
||||
"merge-extra": false,
|
||||
"merge-extra-deep": false,
|
||||
"merge-scripts": false
|
||||
}
|
||||
},
|
||||
"config": {
|
||||
@@ -98,7 +109,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",
|
||||
|
||||
196
composer.lock
generated
196
composer.lock
generated
@@ -4,7 +4,7 @@
|
||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "5df4a89701d63326d9f5d6a14d846659",
|
||||
"content-hash": "22bfbe20025a4775402886e590527c90",
|
||||
"packages": [
|
||||
{
|
||||
"name": "aws/aws-crt-php",
|
||||
@@ -1730,69 +1730,54 @@
|
||||
},
|
||||
{
|
||||
"name": "invoiceshelf/modules",
|
||||
"version": "1.0.0",
|
||||
"version": "3.0.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/InvoiceShelf/modules.git",
|
||||
"reference": "996f80cb279416ef7da5a32f6e119ff9ce703591"
|
||||
"reference": "f8184d400cdeb1bcc2ea5e6ed926f4e7b8433570"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/InvoiceShelf/modules/zipball/996f80cb279416ef7da5a32f6e119ff9ce703591",
|
||||
"reference": "996f80cb279416ef7da5a32f6e119ff9ce703591",
|
||||
"url": "https://api.github.com/repos/InvoiceShelf/modules/zipball/f8184d400cdeb1bcc2ea5e6ed926f4e7b8433570",
|
||||
"reference": "f8184d400cdeb1bcc2ea5e6ed926f4e7b8433570",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-json": "*",
|
||||
"php": ">=7.3"
|
||||
"nwidart/laravel-modules": "^13.0",
|
||||
"php": "^8.3"
|
||||
},
|
||||
"require-dev": {
|
||||
"friendsofphp/php-cs-fixer": "^2.16",
|
||||
"laravel/framework": "^8.0",
|
||||
"mockery/mockery": "~1.0",
|
||||
"orchestra/testbench": "^6.2",
|
||||
"phpstan/phpstan": "^0.12.14",
|
||||
"phpunit/phpunit": "^8.5",
|
||||
"spatie/phpunit-snapshot-assertions": "^2.1.0|^4.2"
|
||||
"laravel/pint": "^1.16",
|
||||
"orchestra/testbench": "^10.0",
|
||||
"phpunit/phpunit": "^12.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"laravel": {
|
||||
"aliases": {
|
||||
"Module": "Nwidart\\Modules\\Facades\\Module"
|
||||
},
|
||||
"providers": [
|
||||
"Nwidart\\Modules\\LaravelModulesServiceProvider"
|
||||
"InvoiceShelf\\Modules\\InvoiceShelfModulesServiceProvider"
|
||||
]
|
||||
},
|
||||
"branch-alias": {
|
||||
"dev-master": "8.0-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"files": [
|
||||
"src/helpers.php"
|
||||
],
|
||||
"psr-4": {
|
||||
"Nwidart\\Modules\\": "src"
|
||||
"InvoiceShelf\\Modules\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"description": "Crater Module Management Package",
|
||||
"description": "InvoiceShelf-specific extensions for nwidart/laravel-modules — registry for module-contributed sidebar items and settings schemas.",
|
||||
"keywords": [
|
||||
"crater",
|
||||
"invoiceshelf",
|
||||
"laravel",
|
||||
"module",
|
||||
"modules",
|
||||
"rad"
|
||||
"modules"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/InvoiceShelf/modules/tree/1.0.0"
|
||||
"source": "https://github.com/InvoiceShelf/modules/tree/3.0.1"
|
||||
},
|
||||
"time": "2021-12-21T14:18:56+00:00"
|
||||
"time": "2026-04-08T22:07:27+00:00"
|
||||
},
|
||||
{
|
||||
"name": "laravel/framework",
|
||||
@@ -3779,6 +3764,95 @@
|
||||
],
|
||||
"time": "2026-02-16T23:10:27+00:00"
|
||||
},
|
||||
{
|
||||
"name": "nwidart/laravel-modules",
|
||||
"version": "v13.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/nWidart/laravel-modules.git",
|
||||
"reference": "6aa5461e57ac89d0dc8377cdda074c10487f92f9"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/nWidart/laravel-modules/zipball/6aa5461e57ac89d0dc8377cdda074c10487f92f9",
|
||||
"reference": "6aa5461e57ac89d0dc8377cdda074c10487f92f9",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-dom": "*",
|
||||
"ext-json": "*",
|
||||
"ext-simplexml": "*",
|
||||
"php": "^8.3",
|
||||
"wikimedia/composer-merge-plugin": "^2.1"
|
||||
},
|
||||
"require-dev": {
|
||||
"friendsofphp/php-cs-fixer": "^v3.52",
|
||||
"laravel/framework": "^13.0",
|
||||
"laravel/pint": "^1.16",
|
||||
"mockery/mockery": "^1.6",
|
||||
"orchestra/testbench": "^11.0",
|
||||
"phpstan/phpstan": "^2.0",
|
||||
"phpunit/phpunit": "^12.0.",
|
||||
"spatie/phpunit-snapshot-assertions": "^5.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"laravel": {
|
||||
"aliases": {
|
||||
"Module": "Nwidart\\Modules\\Facades\\Module"
|
||||
},
|
||||
"providers": [
|
||||
"Nwidart\\Modules\\LaravelModulesServiceProvider"
|
||||
]
|
||||
},
|
||||
"branch-alias": {
|
||||
"dev-master": "13.x-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/v13.0.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://github.com/dcblogdev",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://github.com/nwidart",
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2026-03-19T19:16:52+00:00"
|
||||
},
|
||||
{
|
||||
"name": "php-http/discovery",
|
||||
"version": "1.20.0",
|
||||
@@ -8457,6 +8531,62 @@
|
||||
}
|
||||
],
|
||||
"time": "2024-11-21T01:49:47+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": {
|
||||
"class": "Wikimedia\\Composer\\Merge\\V2\\MergePlugin",
|
||||
"branch-alias": {
|
||||
"dev-master": "2.x-dev"
|
||||
}
|
||||
},
|
||||
"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": [
|
||||
@@ -12732,5 +12862,5 @@
|
||||
"php": "^8.4"
|
||||
},
|
||||
"platform-dev": {},
|
||||
"plugin-api-version": "2.9.0"
|
||||
"plugin-api-version": "2.6.0"
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?php
|
||||
|
||||
use Nwidart\Modules\Activators\FileActivator;
|
||||
use Nwidart\Modules\Commands;
|
||||
use Nwidart\Modules\Providers\ConsoleServiceProvider;
|
||||
|
||||
return [
|
||||
|
||||
@@ -13,9 +13,19 @@ return [
|
||||
| Default module namespace.
|
||||
|
|
||||
*/
|
||||
|
||||
'namespace' => 'Modules',
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Vapor Maintenance Mode
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Indicates if the application is running on Laravel Vapor.
|
||||
| When enabled, cached services path will be set to a writable location.
|
||||
|
|
||||
*/
|
||||
'vapor_maintenance_mode' => env('VAPOR_MAINTENANCE_MODE', false),
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Module Stubs
|
||||
@@ -24,35 +34,34 @@ return [
|
||||
| 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',
|
||||
'routes/web' => 'routes/web.php',
|
||||
'routes/api' => 'routes/api.php',
|
||||
'views/index' => 'resources/views/index.blade.php',
|
||||
'views/master' => 'resources/views/components/layouts/master.blade.php',
|
||||
'scaffold/config' => 'config/config.php',
|
||||
'composer' => 'composer.json',
|
||||
'resources/scripts/module' => 'Resources/scripts/module.js',
|
||||
'resources/sass/module' => 'Resources/sass/module.scss',
|
||||
'resources/scripts/stores/sample-store' => 'Resources/scripts/stores/sample-store.js',
|
||||
'resources/scripts/views/SamplePage' => 'Resources/scripts/views/SamplePage.vue',
|
||||
'resources/locales/en' => 'Resources/locales/en.json',
|
||||
'resources/locales/locales' => 'Resources/locales/locales.js',
|
||||
'assets/js/app' => 'resources/assets/js/app.js',
|
||||
'assets/sass/app' => 'resources/assets/sass/app.scss',
|
||||
'vite' => 'vite.config.js',
|
||||
'package' => 'package.json',
|
||||
'postcss.config' => 'postcss.config.js',
|
||||
'tailwind.config' => 'tailwind.config.js',
|
||||
'vite.config' => 'vite.config.js',
|
||||
|
||||
// InvoiceShelf stubs (shipped by the invoiceshelf/modules package)
|
||||
// — starter i18n files referenced by the registered menu title and
|
||||
// settings schema.
|
||||
'lang/menu' => 'lang/en/menu.php',
|
||||
'lang/settings' => 'lang/en/settings.php',
|
||||
],
|
||||
'replacements' => [
|
||||
'routes/web' => ['LOWER_NAME', 'STUDLY_NAME'],
|
||||
'routes/api' => ['LOWER_NAME'],
|
||||
'webpack' => ['LOWER_NAME'],
|
||||
'json' => ['LOWER_NAME', 'STUDLY_NAME', 'MODULE_NAMESPACE', 'PROVIDER_NAMESPACE'],
|
||||
'routes/web' => ['LOWER_NAME', 'STUDLY_NAME', 'PLURAL_LOWER_NAME', 'KEBAB_NAME', 'MODULE_NAMESPACE', 'CONTROLLER_NAMESPACE'],
|
||||
'routes/api' => ['LOWER_NAME', 'STUDLY_NAME', 'PLURAL_LOWER_NAME', 'KEBAB_NAME', 'MODULE_NAMESPACE', 'CONTROLLER_NAMESPACE'],
|
||||
'vite' => ['LOWER_NAME', 'STUDLY_NAME', 'KEBAB_NAME'],
|
||||
'json' => ['LOWER_NAME', 'STUDLY_NAME', 'KEBAB_NAME', 'MODULE_NAMESPACE', 'PROVIDER_NAMESPACE'],
|
||||
'views/index' => ['LOWER_NAME'],
|
||||
'views/master' => ['LOWER_NAME', 'STUDLY_NAME'],
|
||||
'views/master' => ['LOWER_NAME', 'STUDLY_NAME', 'KEBAB_NAME'],
|
||||
'scaffold/config' => ['STUDLY_NAME'],
|
||||
'composer' => [
|
||||
'LOWER_NAME',
|
||||
@@ -62,205 +71,140 @@ return [
|
||||
'AUTHOR_EMAIL',
|
||||
'MODULE_NAMESPACE',
|
||||
'PROVIDER_NAMESPACE',
|
||||
'APP_FOLDER_NAME',
|
||||
],
|
||||
'resources/scripts/module' => ['LOWER_NAME'],
|
||||
'resources/scripts/stores/sample-store' => ['LOWER_NAME'],
|
||||
'vite.config' => ['LOWER_NAME'],
|
||||
|
||||
// InvoiceShelf lang stubs — only need the module name tokens.
|
||||
'lang/menu' => ['STUDLY_NAME', 'LOWER_NAME'],
|
||||
'lang/settings' => ['STUDLY_NAME', 'LOWER_NAME'],
|
||||
],
|
||||
'gitkeep' => true,
|
||||
],
|
||||
|
||||
'paths' => [
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Modules path
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This path used for save the generated module. This path also will be added
|
||||
| automatically to list of scanned folders.
|
||||
|
|
||||
*/
|
||||
|
||||
'modules' => base_path('Modules'),
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Modules assets path
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Here you may update the modules assets path.
|
||||
|
|
||||
*/
|
||||
|
||||
'assets' => public_path('modules'),
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| The migrations path
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Where you run '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.
|
||||
| Set the generate key to false to not generate that folder
|
||||
*/
|
||||
'app_folder' => 'app/',
|
||||
'generator' => [
|
||||
'config' => ['path' => 'Config', 'generate' => true],
|
||||
'command' => ['path' => 'Console', 'generate' => true],
|
||||
'migration' => ['path' => 'Database/Migrations', 'generate' => true],
|
||||
'seeder' => ['path' => 'Database/Seeders', 'generate' => true],
|
||||
'factory' => ['path' => 'Database/factories', 'generate' => true],
|
||||
'model' => ['path' => 'Entities', 'generate' => true],
|
||||
'routes' => ['path' => 'Routes', 'generate' => true],
|
||||
'controller' => ['path' => 'Http/Controllers', 'generate' => true],
|
||||
'filter' => ['path' => 'Http/Middleware', 'generate' => true],
|
||||
'request' => ['path' => 'Http/Requests', 'generate' => true],
|
||||
'provider' => ['path' => 'Providers', 'generate' => true],
|
||||
'assets' => ['path' => 'Resources/assets', 'generate' => true],
|
||||
'lang' => ['path' => 'Resources/lang', 'generate' => true],
|
||||
'views' => ['path' => 'Resources/views', 'generate' => true],
|
||||
'test' => ['path' => 'Tests/Unit', 'generate' => true],
|
||||
'test-feature' => ['path' => 'Tests/Feature', 'generate' => true],
|
||||
'repository' => ['path' => 'Repositories', 'generate' => false],
|
||||
'event' => ['path' => 'Events', 'generate' => false],
|
||||
'listener' => ['path' => 'Listeners', 'generate' => false],
|
||||
'policies' => ['path' => 'Policies', 'generate' => false],
|
||||
'rules' => ['path' => 'Rules', 'generate' => false],
|
||||
'jobs' => ['path' => 'Jobs', 'generate' => false],
|
||||
'emails' => ['path' => 'Emails', 'generate' => false],
|
||||
'notifications' => ['path' => 'Notifications', 'generate' => false],
|
||||
'resource' => ['path' => 'Transformers', 'generate' => false],
|
||||
'component-view' => ['path' => 'Resources/views/components', 'generate' => false],
|
||||
'component-class' => ['path' => 'View/Components', 'generate' => false],
|
||||
// app/
|
||||
'actions' => ['path' => 'app/Actions', 'generate' => false],
|
||||
'casts' => ['path' => 'app/Casts', 'generate' => false],
|
||||
'channels' => ['path' => 'app/Broadcasting', 'generate' => false],
|
||||
'class' => ['path' => 'app/Classes', 'generate' => false],
|
||||
'command' => ['path' => 'app/Console', 'generate' => false],
|
||||
'command_replacements' => ['path' => 'app/Console/Replacements', 'generate' => false],
|
||||
'component-class' => ['path' => 'app/View/Components', 'generate' => false],
|
||||
'emails' => ['path' => 'app/Emails', 'generate' => false],
|
||||
'event' => ['path' => 'app/Events', 'generate' => false],
|
||||
'enums' => ['path' => 'app/Enums', 'generate' => false],
|
||||
'exceptions' => ['path' => 'app/Exceptions', 'generate' => false],
|
||||
'jobs' => ['path' => 'app/Jobs', 'generate' => false],
|
||||
'helpers' => ['path' => 'app/Helpers', 'generate' => false],
|
||||
'interfaces' => ['path' => 'app/Interfaces', 'generate' => false],
|
||||
'listener' => ['path' => 'app/Listeners', 'generate' => false],
|
||||
'model' => ['path' => 'app/Models', 'generate' => false],
|
||||
'notifications' => ['path' => 'app/Notifications', 'generate' => false],
|
||||
'observer' => ['path' => 'app/Observers', 'generate' => false],
|
||||
'policies' => ['path' => 'app/Policies', 'generate' => false],
|
||||
'provider' => ['path' => 'app/Providers', 'generate' => true],
|
||||
'repository' => ['path' => 'app/Repositories', 'generate' => false],
|
||||
'resource' => ['path' => 'app/Transformers', 'generate' => false],
|
||||
'route-provider' => ['path' => 'app/Providers', 'generate' => true],
|
||||
'rules' => ['path' => 'app/Rules', 'generate' => false],
|
||||
'services' => ['path' => 'app/Services', 'generate' => false],
|
||||
'scopes' => ['path' => 'app/Models/Scopes', 'generate' => false],
|
||||
'traits' => ['path' => 'app/Traits', 'generate' => false],
|
||||
|
||||
// app/Http/
|
||||
'controller' => ['path' => 'app/Http/Controllers', 'generate' => true],
|
||||
'filter' => ['path' => 'app/Http/Middleware', 'generate' => false],
|
||||
'request' => ['path' => 'app/Http/Requests', 'generate' => false],
|
||||
|
||||
// config/
|
||||
'config' => ['path' => 'config', 'generate' => true],
|
||||
|
||||
// database/
|
||||
'factory' => ['path' => 'database/factories', 'generate' => true],
|
||||
'migration' => ['path' => 'database/migrations', 'generate' => true],
|
||||
'seeder' => ['path' => 'database/seeders', 'generate' => true],
|
||||
|
||||
// lang/
|
||||
'lang' => ['path' => 'lang', 'generate' => false],
|
||||
|
||||
// resource/
|
||||
'assets' => ['path' => 'resources/assets', 'generate' => true],
|
||||
'component-view' => ['path' => 'resources/views/components', 'generate' => false],
|
||||
'views' => ['path' => 'resources/views', 'generate' => true],
|
||||
'inertia' => ['path' => 'resources/js/Pages', 'generate' => false],
|
||||
'inertia-components' => ['path' => 'resources/js/Components', 'generate' => false],
|
||||
|
||||
// routes/
|
||||
'routes' => ['path' => 'routes', 'generate' => true],
|
||||
|
||||
// tests/
|
||||
'test-feature' => ['path' => 'tests/Feature', 'generate' => true],
|
||||
'test-unit' => ['path' => 'tests/Unit', 'generate' => true],
|
||||
],
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Auto Discover of Modules
|
||||
|--------------------------------------------------------------------------
|
||||
*/
|
||||
'auto-discover' => [
|
||||
'migrations' => true,
|
||||
'translations' => false,
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Package commands
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Here you can define which commands will be visible and used in your
|
||||
| application. If for example you don't use some of the commands provided
|
||||
| you can simply comment them out.
|
||||
| Built dynamically from upstream nwidart's default command list. Add new
|
||||
| commands to the merge() block below.
|
||||
|
|
||||
*/
|
||||
'commands' => [
|
||||
Commands\CommandMakeCommand::class,
|
||||
Commands\ComponentClassMakeCommand::class,
|
||||
Commands\ComponentViewMakeCommand::class,
|
||||
Commands\ControllerMakeCommand::class,
|
||||
Commands\DisableCommand::class,
|
||||
Commands\DumpCommand::class,
|
||||
Commands\EnableCommand::class,
|
||||
Commands\EventMakeCommand::class,
|
||||
Commands\JobMakeCommand::class,
|
||||
Commands\ListenerMakeCommand::class,
|
||||
Commands\MailMakeCommand::class,
|
||||
Commands\MiddlewareMakeCommand::class,
|
||||
Commands\NotificationMakeCommand::class,
|
||||
Commands\ProviderMakeCommand::class,
|
||||
Commands\RouteProviderMakeCommand::class,
|
||||
Commands\InstallCommand::class,
|
||||
Commands\ListCommand::class,
|
||||
Commands\ModuleDeleteCommand::class,
|
||||
Commands\ModuleMakeCommand::class,
|
||||
Commands\FactoryMakeCommand::class,
|
||||
Commands\PolicyMakeCommand::class,
|
||||
Commands\RequestMakeCommand::class,
|
||||
Commands\RuleMakeCommand::class,
|
||||
Commands\MigrateCommand::class,
|
||||
Commands\MigrateRefreshCommand::class,
|
||||
Commands\MigrateResetCommand::class,
|
||||
Commands\MigrateRollbackCommand::class,
|
||||
Commands\MigrateStatusCommand::class,
|
||||
Commands\MigrationMakeCommand::class,
|
||||
Commands\ModelMakeCommand::class,
|
||||
Commands\PublishCommand::class,
|
||||
Commands\PublishConfigurationCommand::class,
|
||||
Commands\PublishMigrationCommand::class,
|
||||
Commands\PublishTranslationCommand::class,
|
||||
Commands\SeedCommand::class,
|
||||
Commands\SeedMakeCommand::class,
|
||||
Commands\SetupCommand::class,
|
||||
Commands\UnUseCommand::class,
|
||||
Commands\UpdateCommand::class,
|
||||
Commands\UseCommand::class,
|
||||
Commands\ResourceMakeCommand::class,
|
||||
Commands\TestMakeCommand::class,
|
||||
Commands\LaravelModulesV6Migrator::class,
|
||||
Commands\ComponentClassMakeCommand::class,
|
||||
Commands\ComponentViewMakeCommand::class,
|
||||
],
|
||||
'commands' => ConsoleServiceProvider::defaultCommands()
|
||||
->merge([
|
||||
// InvoiceShelf-specific module 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 composer.json file, generated by this package
|
||||
|
|
||||
*/
|
||||
|
||||
'composer' => [
|
||||
'vendor' => 'nwidart',
|
||||
'vendor' => env('MODULE_VENDOR', 'invoiceshelf'),
|
||||
'author' => [
|
||||
'name' => 'Nicolas Widart',
|
||||
'email' => 'n.widart@gmail.com',
|
||||
'name' => env('MODULE_AUTHOR_NAME', 'InvoiceShelf'),
|
||||
'email' => env('MODULE_AUTHOR_EMAIL', 'hello@invoiceshelf.com'),
|
||||
],
|
||||
'composer-output' => false,
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Caching
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Here is the config for setting up caching feature.
|
||||
|
|
||||
*/
|
||||
'cache' => [
|
||||
'enabled' => false,
|
||||
'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
|
||||
*
|
||||
* Note: boot not compatible with asgardcms
|
||||
*
|
||||
* @example boot|register
|
||||
*/
|
||||
'files' => 'register',
|
||||
],
|
||||
|
||||
@@ -269,9 +213,10 @@ return [
|
||||
| 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
|
||||
| InvoiceShelf-specific override: keep the statuses file under storage/app/
|
||||
| so existing installations don't lose track of which modules are enabled
|
||||
| when this config is republished. Upstream v13 defaults to base_path() but
|
||||
| the v3 ModuleInstaller already writes here.
|
||||
*/
|
||||
'activators' => [
|
||||
'file' => [
|
||||
@@ -283,4 +228,13 @@ return [
|
||||
],
|
||||
|
||||
'activator' => 'file',
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Inertia
|
||||
|--------------------------------------------------------------------------
|
||||
*/
|
||||
'inertia' => [
|
||||
'frontend' => 'vue',
|
||||
],
|
||||
];
|
||||
|
||||
45
yarn.lock
45
yarn.lock
@@ -38,6 +38,28 @@
|
||||
"@babel/helper-string-parser" "^7.27.1"
|
||||
"@babel/helper-validator-identifier" "^7.28.5"
|
||||
|
||||
"@emnapi/core@^1.7.1":
|
||||
version "1.9.2"
|
||||
resolved "https://registry.npmjs.org/@emnapi/core/-/core-1.9.2.tgz"
|
||||
integrity sha512-UC+ZhH3XtczQYfOlu3lNEkdW/p4dsJ1r/bP7H8+rhao3TTTMO1ATq/4DdIi23XuGoFY+Cz0JmCbdVl0hz9jZcA==
|
||||
dependencies:
|
||||
"@emnapi/wasi-threads" "1.2.1"
|
||||
tslib "^2.4.0"
|
||||
|
||||
"@emnapi/runtime@^1.7.1":
|
||||
version "1.9.2"
|
||||
resolved "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.9.2.tgz"
|
||||
integrity sha512-3U4+MIWHImeyu1wnmVygh5WlgfYDtyf0k8AbLhMFxOipihf6nrWC4syIm/SwEeec0mNSafiiNnMJwbza/Is6Lw==
|
||||
dependencies:
|
||||
tslib "^2.4.0"
|
||||
|
||||
"@emnapi/wasi-threads@1.2.1":
|
||||
version "1.2.1"
|
||||
resolved "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz"
|
||||
integrity sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==
|
||||
dependencies:
|
||||
tslib "^2.4.0"
|
||||
|
||||
"@eslint-community/eslint-utils@^4.4.0", "@eslint-community/eslint-utils@^4.8.0":
|
||||
version "4.9.1"
|
||||
resolved "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz"
|
||||
@@ -225,10 +247,10 @@
|
||||
resolved "https://registry.npmjs.org/@remirror/core-constants/-/core-constants-3.0.0.tgz"
|
||||
integrity sha512-42aWfPrimMfDKDi4YegyS7x+/0tlzaqwPQCULLanv3DMIlu96KTJR0fM5isWX2UViOqlGnX6YFgqWepcX+XMNg==
|
||||
|
||||
"@rolldown/binding-darwin-arm64@1.0.0-rc.12":
|
||||
"@rolldown/binding-linux-x64-gnu@1.0.0-rc.12":
|
||||
version "1.0.0-rc.12"
|
||||
resolved "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-rc.12.tgz"
|
||||
integrity sha512-cFYr6zTG/3PXXF3pUO+umXxt1wkRK/0AYT8lDwuqvRC+LuKYWSAQAQZjCWDQpAH172ZV6ieYrNnFzVVcnSflAg==
|
||||
resolved "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.0-rc.12.tgz"
|
||||
integrity sha512-RNrafz5bcwRy+O9e6P8Z/OCAJW/A+qtBczIqVYwTs14pf4iV1/+eKEjdOUta93q2TsT/FI0XYDP3TCky38LMAg==
|
||||
|
||||
"@rolldown/pluginutils@1.0.0-rc.12":
|
||||
version "1.0.0-rc.12"
|
||||
@@ -265,10 +287,10 @@
|
||||
source-map-js "^1.2.1"
|
||||
tailwindcss "4.2.2"
|
||||
|
||||
"@tailwindcss/oxide-darwin-arm64@4.2.2":
|
||||
"@tailwindcss/oxide-linux-x64-gnu@4.2.2":
|
||||
version "4.2.2"
|
||||
resolved "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.2.2.tgz"
|
||||
integrity sha512-iq9Qjr6knfMpZHj55/37ouZeykwbDqF21gPFtfnhCCKGDcPI/21FKC9XdMO/XyBM7qKORx6UIhGgg6jLl7BZlg==
|
||||
resolved "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.2.2.tgz"
|
||||
integrity sha512-rTAGAkDgqbXHNp/xW0iugLVmX62wOp2PoE39BTCGKjv3Iocf6AFbRP/wZT/kuCxC9QBh9Pu8XPkv/zCZB2mcMg==
|
||||
|
||||
"@tailwindcss/oxide@4.2.2":
|
||||
version "4.2.2"
|
||||
@@ -1229,11 +1251,6 @@ form-data@^4.0.5:
|
||||
hasown "^2.0.2"
|
||||
mime-types "^2.1.12"
|
||||
|
||||
fsevents@~2.3.3:
|
||||
version "2.3.3"
|
||||
resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz"
|
||||
integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==
|
||||
|
||||
function-bind@^1.1.2:
|
||||
version "1.1.2"
|
||||
resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz"
|
||||
@@ -1400,10 +1417,10 @@ levn@^0.4.1:
|
||||
prelude-ls "^1.2.1"
|
||||
type-check "~0.4.0"
|
||||
|
||||
lightningcss-darwin-arm64@1.32.0:
|
||||
lightningcss-linux-x64-gnu@1.32.0:
|
||||
version "1.32.0"
|
||||
resolved "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz"
|
||||
integrity sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==
|
||||
resolved "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz"
|
||||
integrity sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==
|
||||
|
||||
lightningcss@^1.32.0, lightningcss@1.32.0:
|
||||
version "1.32.0"
|
||||
|
||||
Reference in New Issue
Block a user