diff --git a/composer.json b/composer.json index 62c30b01..f4bdced5 100644 --- a/composer.json +++ b/composer.json @@ -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", diff --git a/composer.lock b/composer.lock index d08f0b16..cf630817 100644 --- a/composer.lock +++ b/composer.lock @@ -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" } diff --git a/config/modules.php b/config/modules.php index 2376ff0e..8c37b01d 100644 --- a/config/modules.php +++ b/config/modules.php @@ -1,7 +1,7 @@ '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', + ], ]; diff --git a/yarn.lock b/yarn.lock index 58d8c5e9..11a5d372 100644 --- a/yarn.lock +++ b/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"