diff --git a/docs/todo.md b/docs/todo.md index 4c87f99b8..70c89c016 100644 --- a/docs/todo.md +++ b/docs/todo.md @@ -33,6 +33,58 @@ - Investigate a focused PHPStan rule for cancellation checks that miss cleanup exception chains. Detect bare `CanceledException` checks around callbacks or listeners, including `releaseIdleConnections()`, where `Coroutine::causedByCancellation()` is needed to prevent retries or continued work after cancellation. Use the cancellation regression cases to assess detection and false positives; preserve valid native-only checks, cleanup-error reporting and foreign-cancellation boundaries. Integrate useful checks with the coroutine-safety analysis above rather than attempting to infer every ownership decision automatically. - Audit typed input accessors across `InteractsWithData`, Support `DataObject`, and Hypervel Data. Define the accepted integer, float, and boolean forms for each public contract. Extract a neutral Support conversion primitive only if `InteractsWithData` and `DataObject` converge on exactly the same strict semantics, and decide separately whether Hypervel Data should adopt those semantics rather than changing its tested permissive casts as a side effect. +## Legacy removals + +Remove older ways of doing things once a modern equivalent fully replaces them, so developers and LLMs writing Hypervel code have one correct way and get an immediate, clear error for the old one. These are deliberate departures from Laravel's API, not bug fixes. Make these changes in any private packages as well. + +- Remove Eloquent model configuration properties that have attribute equivalents, and require `#[Scope]` instead of `scopeXxx` methods. Do all of them in one change, so there is one rule rather than a list of exceptions. + - **Why.** Laravel's Eloquent docs already show only these attributes, but its code still supports both forms. A property and its attribute compete for the same instance property, and PHP inheritance cannot order one against the other, so the model has to decide which wins during construction. That has already caused a real bug: with a `$connection` property on a grandparent and `#[Connection]` on the parent, an empty child silently used the grandparent's database. The current fix for it cannot tell an untouched default from an assignment of the same value (see "Undo the inheritance fix" below). Without the property, none of this can happen. + - **Replacements.** Before removing each property, confirm its attribute covers every supported use. If one does not, keep that property and record why here. Properties with no attribute, such as `$casts`, `$with`, `$withCount`, `$perPage` and `$attributes`, stay. + + | Remove | Use instead | Runtime API that stays | + |---|---|---| + | `$table` | `#[Table('name')]` | `setTable()`, overriding `getTable()` | + | `$connection` | `#[Connection('name')]` | `setConnection()`, `on()`, overriding `getConnectionName()` | + | `$primaryKey`, `$keyType` | `#[Table(key: ..., keyType: ...)]` | `setKeyName()`, `setKeyType()` | + | `$incrementing` | `#[WithoutIncrementing]`, `#[Table(incrementing: ...)]` | `setIncrementing()` | + | `$timestamps` | `#[WithoutTimestamps]`, `#[Table(timestamps: ...)]` | Assigning `$model->timestamps` at runtime, which `AsPivot` relies on, so only declaring a default is removed | + | `$dateFormat` | `#[DateFormat]`, `#[Table(dateFormat: ...)]` | `setDateFormat()` | + | `$fillable` | `#[Fillable]` | `fillable()`, `mergeFillable()` | + | `$guarded` | `#[Guarded]`, `#[Unguarded]` | `guard()`, `mergeGuarded()` | + | `$hidden`, `$visible` | `#[Hidden]`, `#[Visible]` | `setHidden()`, `setVisible()`, `makeHidden()`, `makeVisible()` | + | `$appends` | `#[Appends]` | `setAppends()` | + | `$touches` | `#[Touches]` | `setTouchedRelations()` | + | `$refreshes` | `#[Refreshes]` | None today | + | `scopeXxx()` methods | `#[Scope]` | Not applicable | + + The instance properties themselves stay, because the runtime APIs need somewhere to store values. Only declaring them in a child class or trait is removed. Attributes accept constant expressions only, so config-driven values such as package table names must be set after `parent::__construct()`, as `Role` and `Permission` already do, or come from an overridden getter. + - **Failing loudly.** Silently ignoring a declared property would mean using the wrong table or database, so it must throw. Add one check on the model's boot path, so it runs once per class and costs nothing per hydrated model. Throw when `classPropertyDeclarer()` reports a class other than `Model` for a removed property, or when a model has a `scope[A-Z]` method, and name the replacement in the message, including the declared value where there is one, such as "App\Models\Post declares $table, which Hypervel doesn't support. Use #[Table('posts')] on the class instead. To choose a table at runtime, call setTable() after parent::__construct()." Do not use `final` properties instead: PHP's "Cannot override final property" error does not name the replacement, and an LLM may work around it in the constructor. An untyped `protected $table = 'posts';` never reaches this check, because PHP refuses to load the class first with "Type of Post::$table must be ?string", and that error cannot be caught or customized. Adding the type then triggers our message, so the LLM reaches the right answer on its second try. Accept that detour. The alternatives are worse: renaming the storage property so `Model` no longer declares `$table` sends `$this->table = 'x'` in a subclass through `__set`, where it becomes a model attribute and only fails on save; removing the native types from `Model` makes the code worse and gives typed declarations PHP's error instead; and adding a hint in `HandleExceptions::handleShutdown()` depends on matching PHP's wording. Convert framework classes first, since `Pivot` declares `$incrementing` and `$guarded`. + - **Undo the inheritance fix.** Replace the table and connection branches in `Model::initializeModelAttributes()` with: + + ```php + $this->table ??= $table?->name; + $this->connection ??= static::resolveClassAttribute(ConnectionAttribute::class, 'name'); + ``` + + Values assigned before `parent::__construct()` or in a trait initializer then always win, whether the attribute is direct or inherited. Today, a direct attribute overwrites them. Then: + - Delete `classAttributeOverridesProperty()`, `$classAttributeOverrides`, its resets in `clearBootedModels()` and `flushState()`, and the `ReflectionProperty` import. + - Delete the "assigning that property's exact default" entry from `src/database/README.md`. + - Delete the "A custom `$primaryKey` inherited from a parent" sentence from `src/docs/eloquent.md`. A child's `#[Table(key: false)]` simply wins once the parent cannot declare `$primaryKey`. + - In `DatabaseEloquentModelAttributesTest`, delete `testGrandchildKeepsTableAttributeOverride`, `testGrandchildKeepsConnectionAttributeOverride`, `testTableAttributeWithoutNamePreservesInheritedTable` and `testLocationAttributesInitializePropertiesWithoutDefaults`, plus the `GrandchildModelWithTableAttribute`, `GrandchildModelWithConnectionAttribute`, `ChildModelWithNamelessTableAttribute`, `ModelWithLocationProperties` and `ModelWithLocationAttributeOverrides` fixtures. + - Keep `testInheritedLocationAttributesPreserveValuesAssignedDuringConstruction` as runtime-assignment coverage, but rename it, drop its grandparent-property case, and make its direct-attribute case expect the runtime values. + - Remove the deleted caches from `testGuardAndTableMetadataCachesAreUsedAndCleared` and `DatabaseEloquentModelTest::testFlushStateRestoresStaticState`. + - **Simplify the other initializers.** Once `$guarded` is gone, `guardConfiguration()` no longer needs to stop at a declaring class or read the property's default, and `classPropertyDeclarer()` is left with only the new boot check. Remove the `get_class_vars($class)['timestamps']` read in `isIgnoringTouch()`. Keep value checks such as `$this->primaryKey === 'id'` and `$this->timestamps === true`, because they protect values assigned before initialization. The merging in `initializeGuardsAttributes()` and `initializeHidesAttributes()` can stay. + - **Nameless `Table` attributes.** The nearest `Table` attribute replaces a parent's entirely, because `resolveClassAttribute()` returns only one. So `#[Table(timestamps: false)]` on a child of `#[Table('flights')]` uses the name derived from the child's class, not `flights`. Keep this and document it in `src/docs/eloquent.md`: repeat the name, or use a dedicated attribute such as `WithoutTimestamps`, `WithoutIncrementing` or `DateFormat`, which leaves the parent's `Table` in place. Merging `Table` fields across classes would be a new rule. + - **Scopes.** Delete `isLegacyScopeMethod()`, `$legacyScopeMethods` and its reset in `flushScopeCaches()`, simplify `hasNamedScope()` and `callNamedScope()`, and remove the legacy branch from `ModelScopeMethodResolver`. Convert `DatabaseNotification`, `HasRoles`, `HasPermissions` and Telescope's `EntryModel`, plus the `NamedScopes`, `CustomBuilderForwarding` and `SoftDeletes` type fixtures and the test fixtures. Other `scope[A-Z]` methods in `src/` are not model scopes and stay, including `Route::scopeBindings()`, `Passport::scopeIds()`, `StoredValueCache::scopeTokenKey()`, `ResolvesInheritedScopes::scopeExistsIn()` and the nested-set relation helpers. + - **Consumers.** Convert the framework's models (about 20 files), `skeletons/hypervel/app/Models/User.php`, `src/testbench/src/Foundation/Console/stubs/user.stub` and all test fixtures. This is the largest part of the work: about 230 test files declare `$table` alone. + - **Documentation and rules.** + - Update `src/docs/eloquent.md`, `src/docs/nested-set.md` and `src/docs/migrations.md`. + - Rewrite the model part of "Inherited Properties" in `src/docs/porting-from-laravel.md`, including its "Common model properties to audit" list, and add the scope change. + - Add a `Differences From Laravel` entry to `src/database/README.md`. + - With owner approval, update `AGENTS.md`: the model examples under "Stricter typing", the `$table` note under "Helper class namespacing", the quick checklist's model-property step and "Use attributed local scopes". + - **Future syncs.** Upstream tests keep using the old forms: about 120 Laravel test files declare `$table`. Add a rule to `AGENTS.md`, under "Approved unsupported features" or beside it, telling sync work to convert upstream fixtures to attributes and to remove upstream tests of property precedence with a `REMOVED:` comment, rather than porting the old forms back. This conversion is a permanent cost of every sync. + - **Assess at the same time.** The `bootXxx` and `initializeXxx` trait method conventions have `#[Boot]` and `#[Initialize]` equivalents. Check whether they fully replace those conventions and add them to this removal if so. + ## Testing - Remove the PHPStan `2.3.1` pins in the root, Database and Foundation manifests once a release fixes the 2.3.2 loop-narrowing regression: `DataCollectionEloquentCast::set()` rejects a value narrowed by `instanceof` against `class-string`. Verify the full source and type-fixture analyses before restoring the version ranges. diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 790220bbb..0b787fb0a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,8 +13,8 @@ catalogs: specifier: ^4.3.3 version: 4.3.3 '@types/node': - specifier: ^22.20.5 - version: 22.20.5 + specifier: ^26.6.5 + version: 26.6.5 '@vitejs/plugin-vue': specifier: ^6.0.10 version: 6.0.10 @@ -80,7 +80,7 @@ importers: devDependencies: '@types/node': specifier: 'catalog:' - version: 22.20.5 + version: 26.6.5 terser: specifier: 5.51.2 version: 5.51.2 @@ -89,7 +89,7 @@ importers: version: 7.0.2 vite-plus: specifier: 'catalog:' - version: 1.4.0(@types/node@22.20.5)(@vitest/ui@5.0.5)(happy-dom@21.0.4)(jiti@2.7.0)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2) + version: 1.4.0(@types/node@26.6.5)(@vitest/ui@5.0.5)(happy-dom@21.0.4)(jiti@2.7.0)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2) dogfood/ai/workbench: dependencies: @@ -120,22 +120,22 @@ importers: devDependencies: '@tailwindcss/vite': specifier: 'catalog:' - version: 4.3.3(@voidzero-dev/vite-plus-core@1.4.0(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)) + version: 4.3.3(@voidzero-dev/vite-plus-core@1.4.0(@types/node@26.6.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)) '@vitejs/plugin-react': specifier: ^6.0.3 - version: 6.1.2(@voidzero-dev/vite-plus-core@1.4.0(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)) + version: 6.1.2(@voidzero-dev/vite-plus-core@1.4.0(@types/node@26.6.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)) laravel-vite-plugin: specifier: 'catalog:' - version: 3.2.0(@voidzero-dev/vite-plus-core@1.4.0(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)) + version: 3.2.0(@voidzero-dev/vite-plus-core@1.4.0(@types/node@26.6.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)) tailwindcss: specifier: 'catalog:' version: 4.3.3 vite: specifier: 'catalog:' - version: '@voidzero-dev/vite-plus-core@1.4.0(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)' + version: '@voidzero-dev/vite-plus-core@1.4.0(@types/node@26.6.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)' vite-plus: specifier: 'catalog:' - version: 1.4.0(@types/node@22.20.5)(@vitest/ui@5.0.5)(happy-dom@21.0.4)(jiti@2.7.0)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2) + version: 1.4.0(@types/node@26.6.5)(@vitest/ui@5.0.5)(happy-dom@21.0.4)(jiti@2.7.0)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2) src/foundation/resources/exceptions/renderer: dependencies: @@ -163,13 +163,13 @@ importers: devDependencies: '@tailwindcss/vite': specifier: 'catalog:' - version: 4.3.3(@voidzero-dev/vite-plus-core@1.4.0(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)) + version: 4.3.3(@voidzero-dev/vite-plus-core@1.4.0(@types/node@26.6.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)) vite: specifier: 'catalog:' - version: '@voidzero-dev/vite-plus-core@1.4.0(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)' + version: '@voidzero-dev/vite-plus-core@1.4.0(@types/node@26.6.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)' vite-plus: specifier: 'catalog:' - version: 1.4.0(@types/node@22.20.5)(@vitest/ui@5.0.5)(happy-dom@21.0.4)(jiti@2.7.0)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2) + version: 1.4.0(@types/node@26.6.5)(@vitest/ui@5.0.5)(happy-dom@21.0.4)(jiti@2.7.0)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2) src/horizon: devDependencies: @@ -178,7 +178,7 @@ importers: version: 2.11.8 '@vitejs/plugin-vue': specifier: 'catalog:' - version: 6.0.10(@voidzero-dev/vite-plus-core@1.4.0(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2))(vue@3.5.44(typescript@7.0.2)) + version: 6.0.10(@voidzero-dev/vite-plus-core@1.4.0(@types/node@26.6.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2))(vue@3.5.44(typescript@7.0.2)) '@vue/compiler-dom': specifier: 'catalog:' version: 3.5.44 @@ -214,10 +214,10 @@ importers: version: 1.106.0 vite: specifier: 'catalog:' - version: '@voidzero-dev/vite-plus-core@1.4.0(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)' + version: '@voidzero-dev/vite-plus-core@1.4.0(@types/node@26.6.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)' vite-plus: specifier: 'catalog:' - version: 1.4.0(@types/node@22.20.5)(@vitest/ui@5.0.5)(happy-dom@21.0.4)(jiti@2.7.0)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2) + version: 1.4.0(@types/node@26.6.5)(@vitest/ui@5.0.5)(happy-dom@21.0.4)(jiti@2.7.0)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2) vue: specifier: 'catalog:' version: 3.5.44(typescript@7.0.2) @@ -235,7 +235,7 @@ importers: version: 2.11.8 '@vitejs/plugin-vue': specifier: 'catalog:' - version: 6.0.10(@voidzero-dev/vite-plus-core@1.4.0(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2))(vue@3.5.44(typescript@7.0.2)) + version: 6.0.10(@voidzero-dev/vite-plus-core@1.4.0(@types/node@26.6.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2))(vue@3.5.44(typescript@7.0.2)) '@vue/compiler-dom': specifier: 'catalog:' version: 3.5.44 @@ -274,10 +274,10 @@ importers: version: 15.9.0 vite: specifier: 'catalog:' - version: '@voidzero-dev/vite-plus-core@1.4.0(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)' + version: '@voidzero-dev/vite-plus-core@1.4.0(@types/node@26.6.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)' vite-plus: specifier: 'catalog:' - version: 1.4.0(@types/node@22.20.5)(@vitest/ui@5.0.5)(happy-dom@21.0.4)(jiti@2.7.0)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2) + version: 1.4.0(@types/node@26.6.5)(@vitest/ui@5.0.5)(happy-dom@21.0.4)(jiti@2.7.0)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2) vue: specifier: 'catalog:' version: 3.5.44(typescript@7.0.2) @@ -292,7 +292,7 @@ importers: devDependencies: '@types/node': specifier: 'catalog:' - version: 22.20.5 + version: 26.6.5 happy-dom: specifier: ^21.0.4 version: 21.0.4 @@ -301,7 +301,7 @@ importers: version: 7.0.2 vite-plus: specifier: 'catalog:' - version: 1.4.0(@types/node@22.20.5)(@vitest/ui@5.0.5)(happy-dom@21.0.4)(jiti@2.7.0)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2) + version: 1.4.0(@types/node@26.6.5)(@vitest/ui@5.0.5)(happy-dom@21.0.4)(jiti@2.7.0)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2) src/workbench: devDependencies: @@ -316,7 +316,7 @@ importers: version: 10.6.1(postcss@8.5.31) laravel-vite-plugin: specifier: 'catalog:' - version: 3.2.0(@voidzero-dev/vite-plus-core@1.4.0(@types/node@22.20.5)(jiti@1.21.7)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)) + version: 3.2.0(@voidzero-dev/vite-plus-core@1.4.0(@types/node@26.6.5)(jiti@1.21.7)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)) postcss: specifier: ^8.5.28 version: 8.5.31 @@ -325,10 +325,10 @@ importers: version: 3.4.19 vite: specifier: 'catalog:' - version: '@voidzero-dev/vite-plus-core@1.4.0(@types/node@22.20.5)(jiti@1.21.7)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)' + version: '@voidzero-dev/vite-plus-core@1.4.0(@types/node@26.6.5)(jiti@1.21.7)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)' vite-plus: specifier: 'catalog:' - version: 1.4.0(@types/node@22.20.5)(@vitest/ui@5.0.5)(happy-dom@21.0.4)(jiti@1.21.7)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2) + version: 1.4.0(@types/node@26.6.5)(@vitest/ui@5.0.5)(happy-dom@21.0.4)(jiti@1.21.7)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2) packages: @@ -1695,8 +1695,8 @@ packages: '@types/mdast@4.0.4': resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} - '@types/node@22.20.5': - resolution: {integrity: sha512-U2+DNr+wSjpsTS/wZGYHq7GcwfuSmKiKvoPvK22zwTlRhU91yOniN4qRR5KhIjvif7ysw/dz/hKmfDH0Ris4aA==} + '@types/node@26.6.5': + resolution: {integrity: sha512-uMzsv9stDdofIZBx4UGh4Z9ZgXnGC9seRDscilBcTHAeOFk67MZg/k9bWVfO+bk4qZmG+l52hRnLwUiH2LnJTg==} '@types/unist@3.0.3': resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} @@ -3289,8 +3289,8 @@ packages: engines: {node: '>=16.20.0'} hasBin: true - undici-types@6.21.0: - resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} + undici-types@8.9.0: + resolution: {integrity: sha512-KTDyRTYX8sWmKXAikPHHSyc63CRPETMctyjKFupcC6OBLXT3xsN0e9aF7m+mIXutFWpUXuedtowG7iLOzp0kQg==} undici@8.12.3: resolution: {integrity: sha512-+fdndUTwBP86cVjihTp21hZHo7d6oj1c/47XPA3lL8mM0XHs+C4EkcjmgRsFnFk2f/UONGDy9ItBItmXsLOQHw==} @@ -4510,12 +4510,12 @@ snapshots: '@tailwindcss/oxide-win32-arm64-msvc': 4.3.3 '@tailwindcss/oxide-win32-x64-msvc': 4.3.3 - '@tailwindcss/vite@4.3.3(@voidzero-dev/vite-plus-core@1.4.0(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2))': + '@tailwindcss/vite@4.3.3(@voidzero-dev/vite-plus-core@1.4.0(@types/node@26.6.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2))': dependencies: '@tailwindcss/node': 4.3.3 '@tailwindcss/oxide': 4.3.3 tailwindcss: 4.3.3 - vite: '@voidzero-dev/vite-plus-core@1.4.0(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)' + vite: '@voidzero-dev/vite-plus-core@1.4.0(@types/node@26.6.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)' '@testing-library/dom@10.4.2': dependencies: @@ -4551,9 +4551,9 @@ snapshots: dependencies: '@types/unist': 3.0.3 - '@types/node@22.20.5': + '@types/node@26.6.5': dependencies: - undici-types: 6.21.0 + undici-types: 8.9.0 '@types/unist@3.0.3': {} @@ -4561,7 +4561,7 @@ snapshots: '@types/ws@8.18.2': dependencies: - '@types/node': 22.20.5 + '@types/node': 26.6.5 '@typescript/typescript-aix-ppc64@7.0.2': optional: true @@ -4625,23 +4625,23 @@ snapshots: '@ungap/structured-clone@1.4.0': {} - '@vitejs/plugin-react@6.1.2(@voidzero-dev/vite-plus-core@1.4.0(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2))': + '@vitejs/plugin-react@6.1.2(@voidzero-dev/vite-plus-core@1.4.0(@types/node@26.6.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2))': dependencies: '@rolldown/pluginutils': 1.0.1 - vite: '@voidzero-dev/vite-plus-core@1.4.0(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)' + vite: '@voidzero-dev/vite-plus-core@1.4.0(@types/node@26.6.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)' - '@vitejs/plugin-vue@6.0.10(@voidzero-dev/vite-plus-core@1.4.0(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2))(vue@3.5.44(typescript@7.0.2))': + '@vitejs/plugin-vue@6.0.10(@voidzero-dev/vite-plus-core@1.4.0(@types/node@26.6.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2))(vue@3.5.44(typescript@7.0.2))': dependencies: '@rolldown/pluginutils': 1.0.1 - vite: '@voidzero-dev/vite-plus-core@1.4.0(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)' + vite: '@voidzero-dev/vite-plus-core@1.4.0(@types/node@26.6.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)' vue: 3.5.44(typescript@7.0.2) - '@vitest/browser-preview@5.0.5(@types/node@22.20.5)(jiti@1.21.7)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)(vitest@5.0.5)': + '@vitest/browser-preview@5.0.5(@types/node@26.6.5)(jiti@1.21.7)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)(vitest@5.0.5)': dependencies: '@testing-library/dom': 10.4.2 '@testing-library/user-event': 14.6.8(@testing-library/dom@10.4.2) - '@vitest/browser': 5.0.5(@types/node@22.20.5)(jiti@1.21.7)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)(vitest@5.0.5) - vitest: 5.0.5(@types/node@22.20.5)(@vitest/browser-preview@5.0.5)(@vitest/ui@5.0.5)(@voidzero-dev/vite-plus-core@1.4.0(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2))(happy-dom@21.0.4)(jiti@2.7.0)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2) + '@vitest/browser': 5.0.5(@types/node@26.6.5)(jiti@1.21.7)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)(vitest@5.0.5) + vitest: 5.0.5(@types/node@26.6.5)(@vitest/browser-preview@5.0.5)(@vitest/ui@5.0.5)(@voidzero-dev/vite-plus-core@1.4.0(@types/node@26.6.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2))(happy-dom@21.0.4)(jiti@2.7.0)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2) transitivePeerDependencies: - '@arethetypeswrong/core' - '@types/node' @@ -4668,12 +4668,12 @@ snapshots: - vue-tsc - yaml - '@vitest/browser-preview@5.0.5(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)(vitest@5.0.5)': + '@vitest/browser-preview@5.0.5(@types/node@26.6.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)(vitest@5.0.5)': dependencies: '@testing-library/dom': 10.4.2 '@testing-library/user-event': 14.6.8(@testing-library/dom@10.4.2) - '@vitest/browser': 5.0.5(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)(vitest@5.0.5) - vitest: 5.0.5(@types/node@22.20.5)(@vitest/browser-preview@5.0.5)(@vitest/ui@5.0.5)(@voidzero-dev/vite-plus-core@1.4.0(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2))(happy-dom@21.0.4)(jiti@2.7.0)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2) + '@vitest/browser': 5.0.5(@types/node@26.6.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)(vitest@5.0.5) + vitest: 5.0.5(@types/node@26.6.5)(@vitest/browser-preview@5.0.5)(@vitest/ui@5.0.5)(@voidzero-dev/vite-plus-core@1.4.0(@types/node@26.6.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2))(happy-dom@21.0.4)(jiti@2.7.0)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2) transitivePeerDependencies: - '@arethetypeswrong/core' - '@types/node' @@ -4700,17 +4700,17 @@ snapshots: - vue-tsc - yaml - '@vitest/browser@5.0.5(@types/node@22.20.5)(jiti@1.21.7)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)(vitest@5.0.5)': + '@vitest/browser@5.0.5(@types/node@26.6.5)(jiti@1.21.7)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)(vitest@5.0.5)': dependencies: '@blazediff/core': 1.10.0 - '@vitest/mocker': 5.0.5(@types/node@22.20.5)(jiti@1.21.7)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2) + '@vitest/mocker': 5.0.5(@types/node@26.6.5)(jiti@1.21.7)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2) '@vitest/ui': 5.0.5(vitest@5.0.5) '@vitest/utils': 5.0.5 magic-string: 1.4.3 pngjs: 7.0.0 sirv: 3.0.2 tinyrainbow: 3.2.0 - vitest: 5.0.5(@types/node@22.20.5)(@vitest/browser-preview@5.0.5)(@vitest/ui@5.0.5)(@voidzero-dev/vite-plus-core@1.4.0(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2))(happy-dom@21.0.4)(jiti@2.7.0)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2) + vitest: 5.0.5(@types/node@26.6.5)(@vitest/browser-preview@5.0.5)(@vitest/ui@5.0.5)(@voidzero-dev/vite-plus-core@1.4.0(@types/node@26.6.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2))(happy-dom@21.0.4)(jiti@2.7.0)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2) ws: 8.22.0 transitivePeerDependencies: - '@arethetypeswrong/core' @@ -4738,17 +4738,17 @@ snapshots: - vue-tsc - yaml - '@vitest/browser@5.0.5(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)(vitest@5.0.5)': + '@vitest/browser@5.0.5(@types/node@26.6.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)(vitest@5.0.5)': dependencies: '@blazediff/core': 1.10.0 - '@vitest/mocker': 5.0.5(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2) + '@vitest/mocker': 5.0.5(@types/node@26.6.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2) '@vitest/ui': 5.0.5(vitest@5.0.5) '@vitest/utils': 5.0.5 magic-string: 1.4.3 pngjs: 7.0.0 sirv: 3.0.2 tinyrainbow: 3.2.0 - vitest: 5.0.5(@types/node@22.20.5)(@vitest/browser-preview@5.0.5)(@vitest/ui@5.0.5)(@voidzero-dev/vite-plus-core@1.4.0(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2))(happy-dom@21.0.4)(jiti@2.7.0)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2) + vitest: 5.0.5(@types/node@26.6.5)(@vitest/browser-preview@5.0.5)(@vitest/ui@5.0.5)(@voidzero-dev/vite-plus-core@1.4.0(@types/node@26.6.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2))(happy-dom@21.0.4)(jiti@2.7.0)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2) ws: 8.22.0 transitivePeerDependencies: - '@arethetypeswrong/core' @@ -4776,13 +4776,13 @@ snapshots: - vue-tsc - yaml - '@vitest/mocker@5.0.5(@types/node@22.20.5)(jiti@1.21.7)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)': + '@vitest/mocker@5.0.5(@types/node@26.6.5)(jiti@1.21.7)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)': dependencies: '@jridgewell/trace-mapping': 0.3.31 '@vitest/spy': 5.0.5 estree-walker: 3.0.3 magic-string: 1.4.3 - vite: '@voidzero-dev/vite-plus-core@1.4.0(@types/node@22.20.5)(jiti@1.21.7)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)' + vite: '@voidzero-dev/vite-plus-core@1.4.0(@types/node@26.6.5)(jiti@1.21.7)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)' transitivePeerDependencies: - '@arethetypeswrong/core' - '@types/node' @@ -4806,13 +4806,13 @@ snapshots: - vue-tsc - yaml - '@vitest/mocker@5.0.5(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)': + '@vitest/mocker@5.0.5(@types/node@26.6.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)': dependencies: '@jridgewell/trace-mapping': 0.3.31 '@vitest/spy': 5.0.5 estree-walker: 3.0.3 magic-string: 1.4.3 - vite: '@voidzero-dev/vite-plus-core@1.4.0(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)' + vite: '@voidzero-dev/vite-plus-core@1.4.0(@types/node@26.6.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)' transitivePeerDependencies: - '@arethetypeswrong/core' - '@types/node' @@ -4857,7 +4857,7 @@ snapshots: pathe: 2.0.3 sirv: 3.0.2 tinyrainbow: 3.2.0 - vitest: 5.0.5(@types/node@22.20.5)(@vitest/browser-preview@5.0.5)(@vitest/ui@5.0.5)(@voidzero-dev/vite-plus-core@1.4.0(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2))(happy-dom@21.0.4)(jiti@2.7.0)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2) + vitest: 5.0.5(@types/node@26.6.5)(@vitest/browser-preview@5.0.5)(@vitest/ui@5.0.5)(@voidzero-dev/vite-plus-core@1.4.0(@types/node@26.6.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2))(happy-dom@21.0.4)(jiti@2.7.0)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2) '@vitest/utils@5.0.5': dependencies: @@ -4865,7 +4865,7 @@ snapshots: convert-source-map: 2.0.0 tinyrainbow: 3.2.0 - '@voidzero-dev/vite-plus-core@1.4.0(@types/node@22.20.5)(jiti@1.21.7)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)': + '@voidzero-dev/vite-plus-core@1.4.0(@types/node@26.6.5)(jiti@1.21.7)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)': dependencies: '@oxc-project/runtime': 0.155.0 '@oxc-project/types': 0.155.0 @@ -4873,7 +4873,7 @@ snapshots: postcss: 8.5.31 yuku-parser: 0.19.0 optionalDependencies: - '@types/node': 22.20.5 + '@types/node': 26.6.5 '@voidzero-dev/vite-plus-darwin-arm64': 1.4.0 '@voidzero-dev/vite-plus-darwin-x64': 1.4.0 '@voidzero-dev/vite-plus-linux-arm64-gnu': 1.4.0 @@ -4888,7 +4888,7 @@ snapshots: terser: 5.51.2 typescript: 7.0.2 - '@voidzero-dev/vite-plus-core@1.4.0(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)': + '@voidzero-dev/vite-plus-core@1.4.0(@types/node@26.6.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)': dependencies: '@oxc-project/runtime': 0.155.0 '@oxc-project/types': 0.155.0 @@ -4896,7 +4896,7 @@ snapshots: postcss: 8.5.31 yuku-parser: 0.19.0 optionalDependencies: - '@types/node': 22.20.5 + '@types/node': 26.6.5 '@voidzero-dev/vite-plus-darwin-arm64': 1.4.0 '@voidzero-dev/vite-plus-darwin-x64': 1.4.0 '@voidzero-dev/vite-plus-linux-arm64-gnu': 1.4.0 @@ -5132,7 +5132,7 @@ snapshots: buffer-image-size@0.6.4: dependencies: - '@types/node': 22.20.5 + '@types/node': 26.6.5 call-bind-apply-helpers@1.0.2: dependencies: @@ -5394,7 +5394,7 @@ snapshots: happy-dom@21.0.4: dependencies: - '@types/node': 22.20.5 + '@types/node': 26.6.5 '@types/whatwg-mimetype': 3.0.2 '@types/ws': 8.18.2 buffer-image-size: 0.6.4 @@ -5513,18 +5513,18 @@ snapshots: transitivePeerDependencies: - '@noble/hashes' - laravel-vite-plugin@3.2.0(@voidzero-dev/vite-plus-core@1.4.0(@types/node@22.20.5)(jiti@1.21.7)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)): + laravel-vite-plugin@3.2.0(@voidzero-dev/vite-plus-core@1.4.0(@types/node@26.6.5)(jiti@1.21.7)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)): dependencies: picocolors: 1.1.1 tinyglobby: 0.2.17 - vite: '@voidzero-dev/vite-plus-core@1.4.0(@types/node@22.20.5)(jiti@1.21.7)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)' + vite: '@voidzero-dev/vite-plus-core@1.4.0(@types/node@26.6.5)(jiti@1.21.7)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)' vite-plugin-full-reload: 1.2.0 - laravel-vite-plugin@3.2.0(@voidzero-dev/vite-plus-core@1.4.0(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)): + laravel-vite-plugin@3.2.0(@voidzero-dev/vite-plus-core@1.4.0(@types/node@26.6.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)): dependencies: picocolors: 1.1.1 tinyglobby: 0.2.17 - vite: '@voidzero-dev/vite-plus-core@1.4.0(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)' + vite: '@voidzero-dev/vite-plus-core@1.4.0(@types/node@26.6.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)' vite-plugin-full-reload: 1.2.0 lightningcss-android-arm64@1.32.0: @@ -5753,7 +5753,7 @@ snapshots: regex: 6.1.0 regex-recursion: 6.0.2 - oxfmt@0.74.0(vite-plus@1.4.0(@types/node@22.20.5)(@vitest/ui@5.0.5)(happy-dom@21.0.4)(jiti@1.21.7)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)): + oxfmt@0.74.0(vite-plus@1.4.0(@types/node@26.6.5)(@vitest/ui@5.0.5)(happy-dom@21.0.4)(jiti@1.21.7)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)): dependencies: tinypool: 2.2.0 optionalDependencies: @@ -5776,9 +5776,9 @@ snapshots: '@oxfmt/binding-win32-arm64-msvc': 0.74.0 '@oxfmt/binding-win32-ia32-msvc': 0.74.0 '@oxfmt/binding-win32-x64-msvc': 0.74.0 - vite-plus: 1.4.0(@types/node@22.20.5)(@vitest/ui@5.0.5)(happy-dom@21.0.4)(jiti@1.21.7)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2) + vite-plus: 1.4.0(@types/node@26.6.5)(@vitest/ui@5.0.5)(happy-dom@21.0.4)(jiti@1.21.7)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2) - oxfmt@0.74.0(vite-plus@1.4.0(@types/node@22.20.5)(@vitest/ui@5.0.5)(happy-dom@21.0.4)(jiti@2.7.0)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)): + oxfmt@0.74.0(vite-plus@1.4.0(@types/node@26.6.5)(@vitest/ui@5.0.5)(happy-dom@21.0.4)(jiti@2.7.0)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)): dependencies: tinypool: 2.2.0 optionalDependencies: @@ -5801,7 +5801,7 @@ snapshots: '@oxfmt/binding-win32-arm64-msvc': 0.74.0 '@oxfmt/binding-win32-ia32-msvc': 0.74.0 '@oxfmt/binding-win32-x64-msvc': 0.74.0 - vite-plus: 1.4.0(@types/node@22.20.5)(@vitest/ui@5.0.5)(happy-dom@21.0.4)(jiti@2.7.0)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2) + vite-plus: 1.4.0(@types/node@26.6.5)(@vitest/ui@5.0.5)(happy-dom@21.0.4)(jiti@2.7.0)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2) oxlint-tsgolint@7.0.2004: optionalDependencies: @@ -5812,7 +5812,7 @@ snapshots: '@oxlint-tsgolint/win32-arm64': 7.0.2004 '@oxlint-tsgolint/win32-x64': 7.0.2004 - oxlint@1.89.0(oxlint-tsgolint@7.0.2004)(vite-plus@1.4.0(@types/node@22.20.5)(@vitest/ui@5.0.5)(happy-dom@21.0.4)(jiti@1.21.7)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)): + oxlint@1.89.0(oxlint-tsgolint@7.0.2004)(vite-plus@1.4.0(@types/node@26.6.5)(@vitest/ui@5.0.5)(happy-dom@21.0.4)(jiti@1.21.7)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)): optionalDependencies: '@oxlint/binding-android-arm-eabi': 1.89.0 '@oxlint/binding-android-arm64': 1.89.0 @@ -5834,9 +5834,9 @@ snapshots: '@oxlint/binding-win32-ia32-msvc': 1.89.0 '@oxlint/binding-win32-x64-msvc': 1.89.0 oxlint-tsgolint: 7.0.2004 - vite-plus: 1.4.0(@types/node@22.20.5)(@vitest/ui@5.0.5)(happy-dom@21.0.4)(jiti@1.21.7)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2) + vite-plus: 1.4.0(@types/node@26.6.5)(@vitest/ui@5.0.5)(happy-dom@21.0.4)(jiti@1.21.7)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2) - oxlint@1.89.0(oxlint-tsgolint@7.0.2004)(vite-plus@1.4.0(@types/node@22.20.5)(@vitest/ui@5.0.5)(happy-dom@21.0.4)(jiti@2.7.0)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)): + oxlint@1.89.0(oxlint-tsgolint@7.0.2004)(vite-plus@1.4.0(@types/node@26.6.5)(@vitest/ui@5.0.5)(happy-dom@21.0.4)(jiti@2.7.0)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)): optionalDependencies: '@oxlint/binding-android-arm-eabi': 1.89.0 '@oxlint/binding-android-arm64': 1.89.0 @@ -5858,7 +5858,7 @@ snapshots: '@oxlint/binding-win32-ia32-msvc': 1.89.0 '@oxlint/binding-win32-x64-msvc': 1.89.0 oxlint-tsgolint: 7.0.2004 - vite-plus: 1.4.0(@types/node@22.20.5)(@vitest/ui@5.0.5)(happy-dom@21.0.4)(jiti@2.7.0)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2) + vite-plus: 1.4.0(@types/node@26.6.5)(@vitest/ui@5.0.5)(happy-dom@21.0.4)(jiti@2.7.0)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2) parse5@8.0.1: dependencies: @@ -6257,7 +6257,7 @@ snapshots: '@typescript/typescript-win32-arm64': 7.0.2 '@typescript/typescript-win32-x64': 7.0.2 - undici-types@6.21.0: {} + undici-types@8.9.0: {} undici@8.12.3: {} @@ -6318,23 +6318,23 @@ snapshots: picocolors: 1.1.1 picomatch: 2.3.2 - vite-plus@1.4.0(@types/node@22.20.5)(@vitest/ui@5.0.5)(happy-dom@21.0.4)(jiti@1.21.7)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2): + vite-plus@1.4.0(@types/node@26.6.5)(@vitest/ui@5.0.5)(happy-dom@21.0.4)(jiti@1.21.7)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2): dependencies: '@oxc-project/runtime': 0.155.0 '@oxc-project/types': 0.155.0 '@oxlint/plugins': 1.89.0 - '@vitest/browser': 5.0.5(@types/node@22.20.5)(jiti@1.21.7)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)(vitest@5.0.5) - '@vitest/browser-preview': 5.0.5(@types/node@22.20.5)(jiti@1.21.7)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)(vitest@5.0.5) - '@vitest/mocker': 5.0.5(@types/node@22.20.5)(jiti@1.21.7)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2) + '@vitest/browser': 5.0.5(@types/node@26.6.5)(jiti@1.21.7)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)(vitest@5.0.5) + '@vitest/browser-preview': 5.0.5(@types/node@26.6.5)(jiti@1.21.7)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)(vitest@5.0.5) + '@vitest/mocker': 5.0.5(@types/node@26.6.5)(jiti@1.21.7)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2) '@vitest/pretty-format': 5.0.5 '@vitest/snapshot': 5.0.5 '@vitest/spy': 5.0.5 '@vitest/utils': 5.0.5 - oxfmt: 0.74.0(vite-plus@1.4.0(@types/node@22.20.5)(@vitest/ui@5.0.5)(happy-dom@21.0.4)(jiti@1.21.7)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)) - oxlint: 1.89.0(oxlint-tsgolint@7.0.2004)(vite-plus@1.4.0(@types/node@22.20.5)(@vitest/ui@5.0.5)(happy-dom@21.0.4)(jiti@1.21.7)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)) + oxfmt: 0.74.0(vite-plus@1.4.0(@types/node@26.6.5)(@vitest/ui@5.0.5)(happy-dom@21.0.4)(jiti@1.21.7)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)) + oxlint: 1.89.0(oxlint-tsgolint@7.0.2004)(vite-plus@1.4.0(@types/node@26.6.5)(@vitest/ui@5.0.5)(happy-dom@21.0.4)(jiti@1.21.7)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)) oxlint-tsgolint: 7.0.2004 - vite: '@voidzero-dev/vite-plus-core@1.4.0(@types/node@22.20.5)(jiti@1.21.7)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)' - vitest: 5.0.5(@types/node@22.20.5)(@vitest/browser-preview@5.0.5)(@vitest/ui@5.0.5)(@voidzero-dev/vite-plus-core@1.4.0(@types/node@22.20.5)(jiti@1.21.7)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2))(happy-dom@21.0.4)(jiti@1.21.7)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2) + vite: '@voidzero-dev/vite-plus-core@1.4.0(@types/node@26.6.5)(jiti@1.21.7)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)' + vitest: 5.0.5(@types/node@26.6.5)(@vitest/browser-preview@5.0.5)(@vitest/ui@5.0.5)(@voidzero-dev/vite-plus-core@1.4.0(@types/node@26.6.5)(jiti@1.21.7)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2))(happy-dom@21.0.4)(jiti@1.21.7)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2) optionalDependencies: '@voidzero-dev/vite-plus-darwin-arm64': 1.4.0 '@voidzero-dev/vite-plus-darwin-x64': 1.4.0 @@ -6379,23 +6379,23 @@ snapshots: - vue-tsc - yaml - vite-plus@1.4.0(@types/node@22.20.5)(@vitest/ui@5.0.5)(happy-dom@21.0.4)(jiti@2.7.0)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2): + vite-plus@1.4.0(@types/node@26.6.5)(@vitest/ui@5.0.5)(happy-dom@21.0.4)(jiti@2.7.0)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2): dependencies: '@oxc-project/runtime': 0.155.0 '@oxc-project/types': 0.155.0 '@oxlint/plugins': 1.89.0 - '@vitest/browser': 5.0.5(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)(vitest@5.0.5) - '@vitest/browser-preview': 5.0.5(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)(vitest@5.0.5) - '@vitest/mocker': 5.0.5(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2) + '@vitest/browser': 5.0.5(@types/node@26.6.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)(vitest@5.0.5) + '@vitest/browser-preview': 5.0.5(@types/node@26.6.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)(vitest@5.0.5) + '@vitest/mocker': 5.0.5(@types/node@26.6.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2) '@vitest/pretty-format': 5.0.5 '@vitest/snapshot': 5.0.5 '@vitest/spy': 5.0.5 '@vitest/utils': 5.0.5 - oxfmt: 0.74.0(vite-plus@1.4.0(@types/node@22.20.5)(@vitest/ui@5.0.5)(happy-dom@21.0.4)(jiti@2.7.0)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)) - oxlint: 1.89.0(oxlint-tsgolint@7.0.2004)(vite-plus@1.4.0(@types/node@22.20.5)(@vitest/ui@5.0.5)(happy-dom@21.0.4)(jiti@2.7.0)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)) + oxfmt: 0.74.0(vite-plus@1.4.0(@types/node@26.6.5)(@vitest/ui@5.0.5)(happy-dom@21.0.4)(jiti@2.7.0)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)) + oxlint: 1.89.0(oxlint-tsgolint@7.0.2004)(vite-plus@1.4.0(@types/node@26.6.5)(@vitest/ui@5.0.5)(happy-dom@21.0.4)(jiti@2.7.0)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)) oxlint-tsgolint: 7.0.2004 - vite: '@voidzero-dev/vite-plus-core@1.4.0(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)' - vitest: 5.0.5(@types/node@22.20.5)(@vitest/browser-preview@5.0.5)(@vitest/ui@5.0.5)(@voidzero-dev/vite-plus-core@1.4.0(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2))(happy-dom@21.0.4)(jiti@2.7.0)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2) + vite: '@voidzero-dev/vite-plus-core@1.4.0(@types/node@26.6.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)' + vitest: 5.0.5(@types/node@26.6.5)(@vitest/browser-preview@5.0.5)(@vitest/ui@5.0.5)(@voidzero-dev/vite-plus-core@1.4.0(@types/node@26.6.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2))(happy-dom@21.0.4)(jiti@2.7.0)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2) optionalDependencies: '@voidzero-dev/vite-plus-darwin-arm64': 1.4.0 '@voidzero-dev/vite-plus-darwin-x64': 1.4.0 @@ -6440,10 +6440,10 @@ snapshots: - vue-tsc - yaml - vitest@5.0.5(@types/node@22.20.5)(@vitest/browser-preview@5.0.5)(@vitest/ui@5.0.5)(@voidzero-dev/vite-plus-core@1.4.0(@types/node@22.20.5)(jiti@1.21.7)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2))(happy-dom@21.0.4)(jiti@1.21.7)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2): + vitest@5.0.5(@types/node@26.6.5)(@vitest/browser-preview@5.0.5)(@vitest/ui@5.0.5)(@voidzero-dev/vite-plus-core@1.4.0(@types/node@26.6.5)(jiti@1.21.7)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2))(happy-dom@21.0.4)(jiti@1.21.7)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2): dependencies: '@types/chai': 5.2.3 - '@vitest/mocker': 5.0.5(@types/node@22.20.5)(jiti@1.21.7)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2) + '@vitest/mocker': 5.0.5(@types/node@26.6.5)(jiti@1.21.7)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2) chai: 6.3.0 es-module-lexer: 2.3.2 expect-type: 1.4.0 @@ -6454,11 +6454,11 @@ snapshots: tinybench: 6.2.2 tinyexec: 1.3.1 tinyglobby: 0.2.17 - vite: '@voidzero-dev/vite-plus-core@1.4.0(@types/node@22.20.5)(jiti@1.21.7)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)' + vite: '@voidzero-dev/vite-plus-core@1.4.0(@types/node@26.6.5)(jiti@1.21.7)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)' why-is-node-running: 3.2.1 optionalDependencies: - '@types/node': 22.20.5 - '@vitest/browser-preview': 5.0.5(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)(vitest@5.0.5) + '@types/node': 26.6.5 + '@vitest/browser-preview': 5.0.5(@types/node@26.6.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)(vitest@5.0.5) '@vitest/ui': 5.0.5(vitest@5.0.5) happy-dom: 21.0.4 jsdom: 30.1.3 @@ -6485,10 +6485,10 @@ snapshots: - vue-tsc - yaml - vitest@5.0.5(@types/node@22.20.5)(@vitest/browser-preview@5.0.5)(@vitest/ui@5.0.5)(@voidzero-dev/vite-plus-core@1.4.0(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2))(happy-dom@21.0.4)(jiti@2.7.0)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2): + vitest@5.0.5(@types/node@26.6.5)(@vitest/browser-preview@5.0.5)(@vitest/ui@5.0.5)(@voidzero-dev/vite-plus-core@1.4.0(@types/node@26.6.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2))(happy-dom@21.0.4)(jiti@2.7.0)(jsdom@30.1.3)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2): dependencies: '@types/chai': 5.2.3 - '@vitest/mocker': 5.0.5(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2) + '@vitest/mocker': 5.0.5(@types/node@26.6.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2) chai: 6.3.0 es-module-lexer: 2.3.2 expect-type: 1.4.0 @@ -6499,11 +6499,11 @@ snapshots: tinybench: 6.2.2 tinyexec: 1.3.1 tinyglobby: 0.2.17 - vite: '@voidzero-dev/vite-plus-core@1.4.0(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)' + vite: '@voidzero-dev/vite-plus-core@1.4.0(@types/node@26.6.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)' why-is-node-running: 3.2.1 optionalDependencies: - '@types/node': 22.20.5 - '@vitest/browser-preview': 5.0.5(@types/node@22.20.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)(vitest@5.0.5) + '@types/node': 26.6.5 + '@vitest/browser-preview': 5.0.5(@types/node@26.6.5)(jiti@2.7.0)(sass@1.106.0)(terser@5.51.2)(typescript@7.0.2)(vitest@5.0.5) '@vitest/ui': 5.0.5(vitest@5.0.5) happy-dom: 21.0.4 jsdom: 30.1.3 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index ad8e8b964..200f745ae 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -25,7 +25,7 @@ minimumReleaseAge: 10080 catalog: '@popperjs/core': ^2.11.8 '@tailwindcss/vite': ^4.3.3 - '@types/node': ^22.20.5 + '@types/node': ^26.6.5 '@vitejs/plugin-vue': ^6.0.10 '@vue/compiler-dom': ^3.5.44 '@vue/server-renderer': ^3.5.44