From b601e94ddc76f46f6532e4bf7409bfeeb32d8227 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 19 Jun 2026 06:42:05 +0000 Subject: [PATCH 01/28] build(deps): bump @angular/core from 22.0.1 to 22.0.2 Bumps [@angular/core](https://github.com/angular/angular/tree/HEAD/packages/core) from 22.0.1 to 22.0.2. - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/v22.0.2/packages/core) --- updated-dependencies: - dependency-name: "@angular/core" dependency-version: 22.0.2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- pnpm-lock.yaml | 287 ++++++++++++++++++++++++++++++++++--------------- 1 file changed, 199 insertions(+), 88 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fae693cbdeb..715bda31aa2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -3109,25 +3109,25 @@ importers: dependencies: '@angular/common': specifier: ~22.0.1 - version: 22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2) + version: 22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2) '@angular/compiler': specifier: ~22.0.1 version: 22.0.1 '@angular/core': specifier: ~22.0.1 - version: 22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2) + version: 22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2) '@angular/forms': specifier: ~22.0.1 - version: 22.0.1(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(rxjs@7.8.2) + version: 22.0.1(@angular/common@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(rxjs@7.8.2) '@angular/platform-browser': specifier: ~22.0.1 - version: 22.0.1(@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)) + version: 22.0.1(@angular/animations@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)) '@angular/platform-browser-dynamic': specifier: ~22.0.1 - version: 22.0.1(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/compiler@22.0.1)(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))) + version: 22.0.1(@angular/common@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/compiler@22.0.1)(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))) '@angular/router': specifier: ~22.0.1 - version: 22.0.1(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(rxjs@7.8.2) + version: 22.0.1(@angular/common@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(rxjs@7.8.2) '@tsparticles/angular': specifier: workspace:* version: link:../../wrappers/angular/dist/ng-particles @@ -3344,7 +3344,7 @@ importers: devDependencies: '@angular/build': specifier: 22.0.1 - version: 22.0.1(@angular/compiler-cli@22.0.1(@angular/compiler@22.0.1)(typescript@6.0.3))(@angular/compiler@22.0.1)(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@types/node@25.9.3)(chokidar@5.0.0)(istanbul-lib-instrument@6.0.3)(jiti@2.7.0)(karma@6.4.4(supports-color@8.1.1))(less@4.6.6)(lightningcss@1.32.0)(ng-packagr@22.0.0(@angular/compiler-cli@22.0.1(@angular/compiler@22.0.1)(typescript@6.0.3))(tslib@2.8.1)(typescript@6.0.3))(postcss@8.5.15)(stylus@0.64.0)(supports-color@8.1.1)(terser@5.48.0)(tslib@2.8.1)(typescript@6.0.3)(vitest@4.1.9)(yaml@2.9.0) + version: 22.0.1(@angular/compiler-cli@22.0.1(@angular/compiler@22.0.1)(typescript@6.0.3))(@angular/compiler@22.0.1)(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@types/node@25.9.3)(chokidar@5.0.0)(istanbul-lib-instrument@6.0.3)(jiti@2.7.0)(karma@6.4.4(supports-color@8.1.1))(less@4.6.6)(lightningcss@1.32.0)(ng-packagr@22.0.0(@angular/compiler-cli@22.0.1(@angular/compiler@22.0.1)(typescript@6.0.3))(tslib@2.8.1)(typescript@6.0.3))(postcss@8.5.15)(stylus@0.64.0)(supports-color@8.1.1)(terser@5.48.0)(tslib@2.8.1)(typescript@6.0.3)(vitest@4.1.9)(yaml@2.9.0) '@angular/cli': specifier: ~22.0.1 version: 22.0.1(@types/node@25.9.3)(chokidar@5.0.0) @@ -3945,22 +3945,22 @@ importers: dependencies: '@angular/common': specifier: ~22.0.1 - version: 22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2) + version: 22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2) '@angular/core': specifier: ~22.0.1 - version: 22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2) + version: 22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2) '@angular/forms': specifier: ~22.0.1 - version: 22.0.1(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(rxjs@7.8.2) + version: 22.0.1(@angular/common@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(rxjs@7.8.2) '@angular/platform-browser': specifier: ~22.0.1 - version: 22.0.1(@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)) + version: 22.0.1(@angular/animations@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)) '@angular/platform-browser-dynamic': specifier: ~22.0.1 - version: 22.0.1(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/compiler@22.0.1)(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))) + version: 22.0.1(@angular/common@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/compiler@22.0.1)(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))) '@angular/router': specifier: ~22.0.1 - version: 22.0.1(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(rxjs@7.8.2) + version: 22.0.1(@angular/common@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(rxjs@7.8.2) '@capacitor/app': specifier: ^8.1.0 version: 8.1.0(@capacitor/core@8.4.0) @@ -3978,7 +3978,7 @@ importers: version: 8.0.2(@capacitor/core@8.4.0) '@ionic/angular': specifier: ^8.8.10 - version: 8.8.10(92bf5dfa8546ec0706234bf8611545e3) + version: 8.8.10(39a4b941aceaed4c8441d32f371a2152) '@ionic/core': specifier: ^8.8.10 version: 8.8.10 @@ -4198,7 +4198,7 @@ importers: version: 22.0.0(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) '@angular/build': specifier: ~22.0.1 - version: 22.0.1(@angular/compiler-cli@22.0.1(@angular/compiler@22.0.1)(typescript@6.0.3))(@angular/compiler@22.0.1)(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@types/node@25.9.3)(chokidar@5.0.0)(istanbul-lib-instrument@6.0.3)(jiti@2.7.0)(karma@6.4.4)(less@4.6.6)(lightningcss@1.32.0)(ng-packagr@22.0.0(@angular/compiler-cli@22.0.1(@angular/compiler@22.0.1)(typescript@6.0.3))(tslib@2.8.1)(typescript@6.0.3))(postcss@8.5.15)(stylus@0.64.0)(terser@5.48.0)(tslib@2.8.1)(typescript@6.0.3)(vitest@4.1.9)(yaml@2.9.0) + version: 22.0.1(@angular/compiler-cli@22.0.1(@angular/compiler@22.0.1)(typescript@6.0.3))(@angular/compiler@22.0.1)(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@types/node@25.9.3)(chokidar@5.0.0)(istanbul-lib-instrument@6.0.3)(jiti@2.7.0)(karma@6.4.4)(less@4.6.6)(lightningcss@1.32.0)(ng-packagr@22.0.0(@angular/compiler-cli@22.0.1(@angular/compiler@22.0.1)(typescript@6.0.3))(tslib@2.8.1)(typescript@6.0.3))(postcss@8.5.15)(stylus@0.64.0)(terser@5.48.0)(tslib@2.8.1)(typescript@6.0.3)(vitest@4.1.9)(yaml@2.9.0) '@angular/cli': specifier: ~22.0.1 version: 22.0.1(@types/node@25.9.3)(chokidar@5.0.0) @@ -12498,25 +12498,25 @@ importers: dependencies: '@angular/common': specifier: ~22.0.1 - version: 22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2) + version: 22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2) '@angular/compiler': specifier: ~22.0.1 version: 22.0.1 '@angular/core': specifier: ~22.0.1 - version: 22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2) + version: 22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2) '@angular/forms': specifier: ~22.0.1 - version: 22.0.1(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(rxjs@7.8.2) + version: 22.0.1(@angular/common@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(rxjs@7.8.2) '@angular/platform-browser': specifier: ~22.0.1 - version: 22.0.1(@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)) + version: 22.0.1(@angular/animations@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)) '@angular/platform-browser-dynamic': specifier: ~22.0.1 - version: 22.0.1(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/compiler@22.0.1)(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))) + version: 22.0.1(@angular/common@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/compiler@22.0.1)(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))) '@angular/router': specifier: ~22.0.1 - version: 22.0.1(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(rxjs@7.8.2) + version: 22.0.1(@angular/common@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(rxjs@7.8.2) '@tsparticles/engine': specifier: workspace:* version: link:../../engine/dist @@ -12532,7 +12532,7 @@ importers: devDependencies: '@angular/build': specifier: ~22.0.1 - version: 22.0.1(@angular/compiler-cli@22.0.1(@angular/compiler@22.0.1)(typescript@6.0.3))(@angular/compiler@22.0.1)(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@types/node@25.9.3)(chokidar@5.0.0)(istanbul-lib-instrument@6.0.3)(jiti@2.7.0)(karma@6.4.4)(less@4.6.6)(lightningcss@1.32.0)(ng-packagr@22.0.0(@angular/compiler-cli@22.0.1(@angular/compiler@22.0.1)(typescript@6.0.3))(tslib@2.8.1)(typescript@6.0.3))(postcss@8.5.15)(stylus@0.64.0)(terser@5.48.0)(tslib@2.8.1)(typescript@6.0.3)(vitest@4.1.9)(yaml@2.9.0) + version: 22.0.1(@angular/compiler-cli@22.0.1(@angular/compiler@22.0.1)(typescript@6.0.3))(@angular/compiler@22.0.1)(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@types/node@25.9.3)(chokidar@5.0.0)(istanbul-lib-instrument@6.0.3)(jiti@2.7.0)(karma@6.4.4)(less@4.6.6)(lightningcss@1.32.0)(ng-packagr@22.0.0(@angular/compiler-cli@22.0.1(@angular/compiler@22.0.1)(typescript@6.0.3))(tslib@2.8.1)(typescript@6.0.3))(postcss@8.5.15)(stylus@0.64.0)(terser@5.48.0)(tslib@2.8.1)(typescript@6.0.3)(vitest@4.1.9)(yaml@2.9.0) '@angular/cli': specifier: ~22.0.1 version: 22.0.1(@types/node@25.9.3)(chokidar@5.0.0) @@ -12581,25 +12581,25 @@ importers: dependencies: '@angular/common': specifier: ~22.0.1 - version: 22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2) + version: 22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2) '@angular/compiler': specifier: ~22.0.1 version: 22.0.1 '@angular/core': specifier: ~22.0.1 - version: 22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2) + version: 22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2) '@angular/forms': specifier: ~22.0.1 - version: 22.0.1(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(rxjs@7.8.2) + version: 22.0.1(@angular/common@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(rxjs@7.8.2) '@angular/platform-browser': specifier: ~22.0.1 - version: 22.0.1(@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)) + version: 22.0.1(@angular/animations@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)) '@angular/platform-browser-dynamic': specifier: ~22.0.1 - version: 22.0.1(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/compiler@22.0.1)(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))) + version: 22.0.1(@angular/common@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/compiler@22.0.1)(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))) '@angular/router': specifier: ~22.0.1 - version: 22.0.1(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(rxjs@7.8.2) + version: 22.0.1(@angular/common@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(rxjs@7.8.2) '@tsparticles/confetti': specifier: workspace:* version: link:../../bundles/confetti/dist @@ -12618,7 +12618,7 @@ importers: devDependencies: '@angular/build': specifier: ~22.0.1 - version: 22.0.1(@angular/compiler-cli@22.0.1(@angular/compiler@22.0.1)(typescript@6.0.3))(@angular/compiler@22.0.1)(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@types/node@25.9.3)(chokidar@5.0.0)(istanbul-lib-instrument@6.0.3)(jiti@2.7.0)(karma@6.4.4)(less@4.6.6)(lightningcss@1.32.0)(ng-packagr@22.0.0(@angular/compiler-cli@22.0.1(@angular/compiler@22.0.1)(typescript@6.0.3))(tslib@2.8.1)(typescript@6.0.3))(postcss@8.5.15)(stylus@0.64.0)(terser@5.48.0)(tslib@2.8.1)(typescript@6.0.3)(vitest@4.1.9)(yaml@2.9.0) + version: 22.0.1(@angular/compiler-cli@22.0.1(@angular/compiler@22.0.1)(typescript@6.0.3))(@angular/compiler@22.0.1)(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@types/node@25.9.3)(chokidar@5.0.0)(istanbul-lib-instrument@6.0.3)(jiti@2.7.0)(karma@6.4.4)(less@4.6.6)(lightningcss@1.32.0)(ng-packagr@22.0.0(@angular/compiler-cli@22.0.1(@angular/compiler@22.0.1)(typescript@6.0.3))(tslib@2.8.1)(typescript@6.0.3))(postcss@8.5.15)(stylus@0.64.0)(terser@5.48.0)(tslib@2.8.1)(typescript@6.0.3)(vitest@4.1.9)(yaml@2.9.0) '@angular/cli': specifier: ~22.0.1 version: 22.0.1(@types/node@25.9.3)(chokidar@5.0.0) @@ -12667,25 +12667,25 @@ importers: dependencies: '@angular/common': specifier: ~22.0.1 - version: 22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2) + version: 22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2) '@angular/compiler': specifier: ~22.0.1 version: 22.0.1 '@angular/core': specifier: ~22.0.1 - version: 22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2) + version: 22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2) '@angular/forms': specifier: ~22.0.1 - version: 22.0.1(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(rxjs@7.8.2) + version: 22.0.1(@angular/common@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(rxjs@7.8.2) '@angular/platform-browser': specifier: ~22.0.1 - version: 22.0.1(@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)) + version: 22.0.1(@angular/animations@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)) '@angular/platform-browser-dynamic': specifier: ~22.0.1 - version: 22.0.1(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/compiler@22.0.1)(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))) + version: 22.0.1(@angular/common@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/compiler@22.0.1)(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))) '@angular/router': specifier: ~22.0.1 - version: 22.0.1(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(rxjs@7.8.2) + version: 22.0.1(@angular/common@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(rxjs@7.8.2) '@tsparticles/engine': specifier: workspace:* version: link:../../engine/dist @@ -12704,7 +12704,7 @@ importers: devDependencies: '@angular/build': specifier: ~22.0.1 - version: 22.0.1(@angular/compiler-cli@22.0.1(@angular/compiler@22.0.1)(typescript@6.0.3))(@angular/compiler@22.0.1)(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@types/node@25.9.3)(chokidar@5.0.0)(istanbul-lib-instrument@6.0.3)(jiti@2.7.0)(karma@6.4.4)(less@4.6.6)(lightningcss@1.32.0)(ng-packagr@22.0.0(@angular/compiler-cli@22.0.1(@angular/compiler@22.0.1)(typescript@6.0.3))(tslib@2.8.1)(typescript@6.0.3))(postcss@8.5.15)(stylus@0.64.0)(terser@5.48.0)(tslib@2.8.1)(typescript@6.0.3)(vitest@4.1.9)(yaml@2.9.0) + version: 22.0.1(@angular/compiler-cli@22.0.1(@angular/compiler@22.0.1)(typescript@6.0.3))(@angular/compiler@22.0.1)(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@types/node@25.9.3)(chokidar@5.0.0)(istanbul-lib-instrument@6.0.3)(jiti@2.7.0)(karma@6.4.4)(less@4.6.6)(lightningcss@1.32.0)(ng-packagr@22.0.0(@angular/compiler-cli@22.0.1(@angular/compiler@22.0.1)(typescript@6.0.3))(tslib@2.8.1)(typescript@6.0.3))(postcss@8.5.15)(stylus@0.64.0)(terser@5.48.0)(tslib@2.8.1)(typescript@6.0.3)(vitest@4.1.9)(yaml@2.9.0) '@angular/cli': specifier: ~22.0.1 version: 22.0.1(@types/node@25.9.3)(chokidar@5.0.0) @@ -14672,11 +14672,11 @@ packages: resolution: {integrity: sha512-J8lcmYXJCGZn1+CHx3LSgq6rtS5Efc1/Nafcd/v8VZN2NrsFIkIlTbnAIUxcwHwYxzZs4X5CGfX+5ZIB4X9rUw==} engines: {node: ^22.22.3 || ^24.15.0 || >=26.0.0} - '@angular/core@22.0.1': - resolution: {integrity: sha512-Sk0fz+LR2q6QhJJtCV9ElN1GzoEX6lOB4difMqpOC0yRh/ue+9iKd+x3RRiL4p+dnAiRLQYAKqsXkYlqUm2SMg==} + '@angular/core@22.0.2': + resolution: {integrity: sha512-YMs6OZNeXh4tg67ePwSRN426WYvjqGdjxEwLrdOONKAruOmJAzW/Tqe328k/4SHfdbJTR87GPpRi5FzVP43DRA==} engines: {node: ^22.22.3 || ^24.15.0 || >=26.0.0} peerDependencies: - '@angular/compiler': 22.0.1 + '@angular/compiler': 22.0.2 rxjs: ^6.5.3 || ^7.4.0 zone.js: ~0.15.0 || ~0.16.0 peerDependenciesMeta: @@ -14701,6 +14701,7 @@ packages: '@angular/platform-browser-dynamic@22.0.1': resolution: {integrity: sha512-Z0h2gVNxPoJqzon7OlOhfScuMgPyW4qbJZAZCBMRYC8se+7YP1w81dw5dmqyeqf66pD+NwhkJXL1hOrYKK1m2g==} engines: {node: ^22.22.3 || ^24.15.0 || >=26.0.0} + deprecated: '@angular/platform-browser-dynamic is deprecated. Use `@angular/platform-browser` instead.' peerDependencies: '@angular/common': 22.0.1 '@angular/compiler': 22.0.1 @@ -14917,6 +14918,10 @@ packages: resolution: {integrity: sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==} engines: {node: '>=6.9.0'} + '@babel/core@7.29.7': + resolution: {integrity: sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==} + engines: {node: '>=6.9.0'} + '@babel/core@8.0.1': resolution: {integrity: sha512-5FgxM4dLQpMJHSiVATk8foW263dVHQHBVpXYiimNECVWG01f4nFyEbQixeT6Mwvg7TayREJ2gpKl3o2RoMdnqw==} engines: {node: ^22.18.0 || >=24.11.0} @@ -21247,8 +21252,8 @@ packages: peerDependencies: '@opentelemetry/api': ^1.8 - '@publint/pack@0.1.4': - resolution: {integrity: sha512-HDVTWq3H0uTXiU0eeSQntcVUTPP3GamzeXI41+x7uU9J65JgWQh3qWZHblR1i0npXfFtF+mxBiU2nJH8znxWnQ==} + '@publint/pack@0.1.5': + resolution: {integrity: sha512-edgyN2pP07uXiP4tJs0s8KVmU8M8i60YPbbI0/WDeok1mIJHRXz+CgD8I0nelwDkoCh3EWL/G5kGfbuHjsdbvw==} engines: {node: '>=18'} '@puppeteer/browsers@2.13.2': @@ -34299,6 +34304,11 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + nanoid@3.3.13: + resolution: {integrity: sha512-sPdqC6ByMVVGvF1ynvvMo0/o+oD1VX7DaHhijt1bFgjvBkHBib4t49GoNDhf2NDta4oeUNlaGbSt5K7qjZ955Q==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + nanomatch@1.2.13: resolution: {integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==} engines: {node: '>=0.10.0'} @@ -42951,13 +42961,13 @@ snapshots: eslint: 10.5.0(jiti@2.7.0) typescript: 6.0.3 - '@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))': + '@angular/animations@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))': dependencies: - '@angular/core': 22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2) + '@angular/core': 22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2) tslib: 2.8.1 optional: true - '@angular/build@22.0.1(@angular/compiler-cli@22.0.1(@angular/compiler@22.0.1)(typescript@6.0.3))(@angular/compiler@22.0.1)(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@types/node@25.9.3)(chokidar@5.0.0)(istanbul-lib-instrument@6.0.3)(jiti@2.7.0)(karma@6.4.4(supports-color@8.1.1))(less@4.6.6)(lightningcss@1.32.0)(ng-packagr@22.0.0(@angular/compiler-cli@22.0.1(@angular/compiler@22.0.1)(typescript@6.0.3))(tslib@2.8.1)(typescript@6.0.3))(postcss@8.5.15)(stylus@0.64.0)(supports-color@8.1.1)(terser@5.48.0)(tslib@2.8.1)(typescript@6.0.3)(vitest@4.1.9)(yaml@2.9.0)': + '@angular/build@22.0.1(@angular/compiler-cli@22.0.1(@angular/compiler@22.0.1)(typescript@6.0.3))(@angular/compiler@22.0.1)(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@types/node@25.9.3)(chokidar@5.0.0)(istanbul-lib-instrument@6.0.3)(jiti@2.7.0)(karma@6.4.4(supports-color@8.1.1))(less@4.6.6)(lightningcss@1.32.0)(ng-packagr@22.0.0(@angular/compiler-cli@22.0.1(@angular/compiler@22.0.1)(typescript@6.0.3))(tslib@2.8.1)(typescript@6.0.3))(postcss@8.5.15)(stylus@0.64.0)(supports-color@8.1.1)(terser@5.48.0)(tslib@2.8.1)(typescript@6.0.3)(vitest@4.1.9)(yaml@2.9.0)': dependencies: '@ampproject/remapping': 2.3.0 '@angular-devkit/architect': 0.2200.1(chokidar@5.0.0) @@ -42989,8 +42999,8 @@ snapshots: vite: 7.3.2(@types/node@25.9.3)(jiti@2.7.0)(less@4.6.6)(lightningcss@1.32.0)(sass@1.99.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) watchpack: 2.5.1 optionalDependencies: - '@angular/core': 22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2) - '@angular/platform-browser': 22.0.1(@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)) + '@angular/core': 22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2) + '@angular/platform-browser': 22.0.1(@angular/animations@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)) istanbul-lib-instrument: 6.0.3 karma: 6.4.4(supports-color@8.1.1) less: 4.6.6 @@ -43011,7 +43021,7 @@ snapshots: - tsx - yaml - '@angular/build@22.0.1(@angular/compiler-cli@22.0.1(@angular/compiler@22.0.1)(typescript@6.0.3))(@angular/compiler@22.0.1)(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@types/node@25.9.3)(chokidar@5.0.0)(istanbul-lib-instrument@6.0.3)(jiti@2.7.0)(karma@6.4.4)(less@4.6.6)(lightningcss@1.32.0)(ng-packagr@22.0.0(@angular/compiler-cli@22.0.1(@angular/compiler@22.0.1)(typescript@6.0.3))(tslib@2.8.1)(typescript@6.0.3))(postcss@8.5.15)(stylus@0.64.0)(terser@5.48.0)(tslib@2.8.1)(typescript@6.0.3)(vitest@4.1.9)(yaml@2.9.0)': + '@angular/build@22.0.1(@angular/compiler-cli@22.0.1(@angular/compiler@22.0.1)(typescript@6.0.3))(@angular/compiler@22.0.1)(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@types/node@25.9.3)(chokidar@5.0.0)(istanbul-lib-instrument@6.0.3)(jiti@2.7.0)(karma@6.4.4)(less@4.6.6)(lightningcss@1.32.0)(ng-packagr@22.0.0(@angular/compiler-cli@22.0.1(@angular/compiler@22.0.1)(typescript@6.0.3))(tslib@2.8.1)(typescript@6.0.3))(postcss@8.5.15)(stylus@0.64.0)(terser@5.48.0)(tslib@2.8.1)(typescript@6.0.3)(vitest@4.1.9)(yaml@2.9.0)': dependencies: '@ampproject/remapping': 2.3.0 '@angular-devkit/architect': 0.2200.1(chokidar@5.0.0) @@ -43043,8 +43053,8 @@ snapshots: vite: 7.3.2(@types/node@25.9.3)(jiti@2.7.0)(less@4.6.6)(lightningcss@1.32.0)(sass@1.99.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) watchpack: 2.5.1 optionalDependencies: - '@angular/core': 22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2) - '@angular/platform-browser': 22.0.1(@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)) + '@angular/core': 22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2) + '@angular/platform-browser': 22.0.1(@angular/animations@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)) istanbul-lib-instrument: 6.0.3 karma: 6.4.4(supports-color@8.1.1) less: 4.6.6 @@ -43091,9 +43101,9 @@ snapshots: - chokidar - supports-color - '@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2)': + '@angular/common@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2)': dependencies: - '@angular/core': 22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2) + '@angular/core': 22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2) rxjs: 7.8.2 tslib: 2.8.1 @@ -43117,7 +43127,7 @@ snapshots: dependencies: tslib: 2.8.1 - '@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)': + '@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)': dependencies: rxjs: 7.8.2 tslib: 2.8.1 @@ -43125,11 +43135,11 @@ snapshots: '@angular/compiler': 22.0.1 zone.js: 0.16.2 - '@angular/forms@22.0.1(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(rxjs@7.8.2)': + '@angular/forms@22.0.1(@angular/common@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(rxjs@7.8.2)': dependencies: - '@angular/common': 22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2) - '@angular/core': 22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2) - '@angular/platform-browser': 22.0.1(@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)) + '@angular/common': 22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2) + '@angular/core': 22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2) + '@angular/platform-browser': 22.0.1(@angular/animations@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)) '@standard-schema/spec': 1.1.0 rxjs: 7.8.2 tslib: 2.8.1 @@ -43137,27 +43147,27 @@ snapshots: '@angular/language-service@22.0.1': {} - '@angular/platform-browser-dynamic@22.0.1(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/compiler@22.0.1)(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))': + '@angular/platform-browser-dynamic@22.0.1(@angular/common@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/compiler@22.0.1)(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))': dependencies: - '@angular/common': 22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2) + '@angular/common': 22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2) '@angular/compiler': 22.0.1 - '@angular/core': 22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2) - '@angular/platform-browser': 22.0.1(@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)) + '@angular/core': 22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2) + '@angular/platform-browser': 22.0.1(@angular/animations@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)) tslib: 2.8.1 - '@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))': + '@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))': dependencies: - '@angular/common': 22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2) - '@angular/core': 22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2) + '@angular/common': 22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2) + '@angular/core': 22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2) tslib: 2.8.1 optionalDependencies: - '@angular/animations': 22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)) + '@angular/animations': 22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)) - '@angular/router@22.0.1(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(rxjs@7.8.2)': + '@angular/router@22.0.1(@angular/common@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(rxjs@7.8.2)': dependencies: - '@angular/common': 22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2) - '@angular/core': 22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2) - '@angular/platform-browser': 22.0.1(@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)) + '@angular/common': 22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2) + '@angular/core': 22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2) + '@angular/platform-browser': 22.0.1(@angular/animations@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)) rxjs: 7.8.2 tslib: 2.8.1 @@ -43429,6 +43439,26 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/core@7.29.7': + dependencies: + '@babel/code-frame': 7.29.7 + '@babel/generator': 7.29.7 + '@babel/helper-compilation-targets': 7.29.7 + '@babel/helper-module-transforms': 7.29.7(@babel/core@7.29.7) + '@babel/helpers': 7.29.7 + '@babel/parser': 7.29.7 + '@babel/template': 7.29.7 + '@babel/traverse': 7.29.7 + '@babel/types': 7.29.7 + '@jridgewell/remapping': 2.3.5 + convert-source-map: 2.0.0 + debug: 4.4.3(supports-color@8.1.1) + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + '@babel/core@8.0.1': dependencies: '@babel/code-frame': 8.0.0 @@ -43619,6 +43649,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-module-transforms@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-module-imports': 7.29.7 + '@babel/helper-validator-identifier': 7.29.7 + '@babel/traverse': 7.29.7 + transitivePeerDependencies: + - supports-color + '@babel/helper-module-transforms@7.29.7(@babel/core@8.0.1)': dependencies: '@babel/core': 8.0.1 @@ -47063,11 +47102,11 @@ snapshots: transitivePeerDependencies: - chokidar - '@ionic/angular@8.8.10(92bf5dfa8546ec0706234bf8611545e3)': + '@ionic/angular@8.8.10(39a4b941aceaed4c8441d32f371a2152)': dependencies: - '@angular/core': 22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2) - '@angular/forms': 22.0.1(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(rxjs@7.8.2) - '@angular/router': 22.0.1(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.1(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(rxjs@7.8.2) + '@angular/core': 22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2) + '@angular/forms': 22.0.1(@angular/common@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(rxjs@7.8.2) + '@angular/router': 22.0.1(@angular/common@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(@angular/platform-browser@22.0.1(@angular/animations@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(@angular/common@22.0.1(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2))(rxjs@7.8.2))(@angular/core@22.0.2(@angular/compiler@22.0.1)(rxjs@7.8.2)(zone.js@0.16.2)))(rxjs@7.8.2) '@ionic/core': 8.8.10 ionicons: 8.0.13 jsonc-parser: 3.3.1 @@ -47096,7 +47135,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@ionic/utils-fs@3.1.7(supports-color@8.1.1)': + '@ionic/utils-fs@3.1.7': dependencies: '@types/fs-extra': 8.1.5 debug: 4.4.3(supports-color@8.1.1) @@ -47133,7 +47172,7 @@ snapshots: '@ionic/utils-subprocess@3.0.1(supports-color@8.1.1)': dependencies: '@ionic/utils-array': 2.1.6(supports-color@8.1.1) - '@ionic/utils-fs': 3.1.7(supports-color@8.1.1) + '@ionic/utils-fs': 3.1.7 '@ionic/utils-process': 2.1.12(supports-color@8.1.1) '@ionic/utils-stream': 3.1.7(supports-color@8.1.1) '@ionic/utils-terminal': 2.3.5 @@ -50820,7 +50859,9 @@ snapshots: transitivePeerDependencies: - supports-color - '@publint/pack@0.1.4': {} + '@publint/pack@0.1.5': + dependencies: + tinyexec: 1.2.4 '@puppeteer/browsers@2.13.2(supports-color@8.1.1)': dependencies: @@ -52556,7 +52597,7 @@ snapshots: '@types/connect-history-api-fallback@1.5.4': dependencies: - '@types/express-serve-static-core': 5.1.1 + '@types/express-serve-static-core': 4.19.8 '@types/node': 25.9.3 '@types/connect-livereload@0.6.3': @@ -52592,6 +52633,26 @@ snapshots: '@types/deep-eql@4.0.2': {} + '@types/ember@4.0.11': + dependencies: + '@types/ember__application': 4.0.11(@babel/core@7.29.0) + '@types/ember__array': 4.0.10 + '@types/ember__component': 4.0.22 + '@types/ember__controller': 4.0.12 + '@types/ember__debug': 4.0.8 + '@types/ember__engine': 4.0.11 + '@types/ember__error': 4.0.6 + '@types/ember__object': 4.0.12(@babel/core@7.29.0) + '@types/ember__polyfills': 4.0.6 + '@types/ember__routing': 4.0.23 + '@types/ember__runloop': 4.0.10 + '@types/ember__service': 4.0.9 + '@types/ember__string': 3.0.15 + '@types/ember__template': 4.0.7 + '@types/ember__test': 4.0.6(@babel/core@7.29.0) + '@types/ember__utils': 4.0.7 + '@types/rsvp': 4.0.9 + '@types/ember@4.0.11(@babel/core@7.29.0)': dependencies: '@types/ember__application': 4.0.11(@babel/core@7.29.0) @@ -52627,6 +52688,11 @@ snapshots: - '@babel/core' - supports-color + '@types/ember__array@4.0.10': + dependencies: + '@types/ember': 4.0.11 + '@types/ember__object': 4.0.12 + '@types/ember__array@4.0.10(@babel/core@7.29.0)': dependencies: '@types/ember': 4.0.11(@babel/core@7.29.0) @@ -52635,14 +52701,23 @@ snapshots: - '@babel/core' - supports-color + '@types/ember__component@4.0.22': + dependencies: + '@types/ember': 4.0.11 + '@types/ember__object': 4.0.12 + '@types/ember__component@4.0.22(@babel/core@7.29.0)': dependencies: '@types/ember': 4.0.11(@babel/core@7.29.0) - '@types/ember__object': 4.0.12(@babel/core@7.29.0) + '@types/ember__object': 4.0.12 transitivePeerDependencies: - '@babel/core' - supports-color + '@types/ember__controller@4.0.12': + dependencies: + '@types/ember__object': 4.0.12 + '@types/ember__controller@4.0.12(@babel/core@7.29.0)': dependencies: '@types/ember__object': 4.0.12(@babel/core@7.29.0) @@ -52650,6 +52725,11 @@ snapshots: - '@babel/core' - supports-color + '@types/ember__debug@4.0.8': + dependencies: + '@types/ember__object': 4.0.12 + '@types/ember__owner': 4.0.9 + '@types/ember__debug@4.0.8(@babel/core@7.29.0)': dependencies: '@types/ember__object': 4.0.12(@babel/core@7.29.0) @@ -52660,6 +52740,11 @@ snapshots: '@types/ember__destroyable@4.0.5': {} + '@types/ember__engine@4.0.11': + dependencies: + '@types/ember__object': 4.0.12 + '@types/ember__owner': 4.0.9 + '@types/ember__engine@4.0.11(@babel/core@7.29.0)': dependencies: '@types/ember__object': 4.0.12(@babel/core@7.29.0) @@ -52670,6 +52755,11 @@ snapshots: '@types/ember__error@4.0.6': {} + '@types/ember__object@4.0.12': + dependencies: + '@types/ember': 4.0.11 + '@types/rsvp': 4.0.9 + '@types/ember__object@4.0.12(@babel/core@7.29.0)': dependencies: '@types/ember': 4.0.11(@babel/core@7.29.0) @@ -52682,16 +52772,27 @@ snapshots: '@types/ember__polyfills@4.0.6': {} + '@types/ember__routing@4.0.23': + dependencies: + '@types/ember': 4.0.11 + '@types/ember__controller': 4.0.12 + '@types/ember__object': 4.0.12 + '@types/ember__service': 4.0.9 + '@types/ember__routing@4.0.23(@babel/core@7.29.0)': dependencies: '@types/ember': 4.0.11(@babel/core@7.29.0) - '@types/ember__controller': 4.0.12(@babel/core@7.29.0) + '@types/ember__controller': 4.0.12 '@types/ember__object': 4.0.12(@babel/core@7.29.0) - '@types/ember__service': 4.0.9(@babel/core@7.29.0) + '@types/ember__service': 4.0.9 transitivePeerDependencies: - '@babel/core' - supports-color + '@types/ember__runloop@4.0.10': + dependencies: + '@types/ember': 4.0.11 + '@types/ember__runloop@4.0.10(@babel/core@7.29.0)': dependencies: '@types/ember': 4.0.11(@babel/core@7.29.0) @@ -52699,6 +52800,10 @@ snapshots: - '@babel/core' - supports-color + '@types/ember__service@4.0.9': + dependencies: + '@types/ember__object': 4.0.12 + '@types/ember__service@4.0.9(@babel/core@7.29.0)': dependencies: '@types/ember__object': 4.0.12(@babel/core@7.29.0) @@ -52721,6 +52826,10 @@ snapshots: - '@babel/core' - supports-color + '@types/ember__utils@4.0.7': + dependencies: + '@types/ember': 4.0.11 + '@types/ember__utils@4.0.7(@babel/core@7.29.0)': dependencies: '@types/ember': 4.0.11(@babel/core@7.29.0) @@ -53107,7 +53216,7 @@ snapshots: '@types/serve-index@1.9.4': dependencies: - '@types/express': 5.0.6 + '@types/express': 4.17.25 '@types/serve-static@1.15.10': dependencies: @@ -53343,7 +53452,7 @@ snapshots: dependencies: '@typescript-eslint/scope-manager': 6.21.0 '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/typescript-estree': 6.21.0(typescript@6.0.3) + '@typescript-eslint/typescript-estree': 6.21.0(supports-color@8.1.1)(typescript@6.0.3) '@typescript-eslint/visitor-keys': 6.21.0 debug: 4.4.3(supports-color@8.1.1) eslint: 10.5.0(jiti@2.7.0) @@ -53444,7 +53553,7 @@ snapshots: '@typescript-eslint/type-utils@6.21.0(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1)(typescript@6.0.3)': dependencies: - '@typescript-eslint/typescript-estree': 6.21.0(typescript@6.0.3) + '@typescript-eslint/typescript-estree': 6.21.0(supports-color@8.1.1)(typescript@6.0.3) '@typescript-eslint/utils': 6.21.0(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) debug: 4.4.3(supports-color@8.1.1) eslint: 10.5.0(jiti@2.7.0) @@ -53498,7 +53607,7 @@ snapshots: '@typescript-eslint/types@8.61.1': {} - '@typescript-eslint/typescript-estree@6.21.0(typescript@6.0.3)': + '@typescript-eslint/typescript-estree@6.21.0(supports-color@8.1.1)(typescript@6.0.3)': dependencies: '@typescript-eslint/types': 6.21.0 '@typescript-eslint/visitor-keys': 6.21.0 @@ -53565,7 +53674,7 @@ snapshots: '@types/semver': 7.7.1 '@typescript-eslint/scope-manager': 6.21.0 '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/typescript-estree': 6.21.0(typescript@6.0.3) + '@typescript-eslint/typescript-estree': 6.21.0(supports-color@8.1.1)(typescript@6.0.3) eslint: 10.5.0(jiti@2.7.0) semver: 7.8.4 transitivePeerDependencies: @@ -65187,7 +65296,7 @@ snapshots: istanbul-lib-instrument@6.0.3: dependencies: - '@babel/core': 7.29.0 + '@babel/core': 7.29.7 '@babel/parser': 7.29.7 '@istanbuljs/schema': 0.1.6 istanbul-lib-coverage: 3.2.2 @@ -68063,6 +68172,8 @@ snapshots: nanoid@3.3.12: {} + nanoid@3.3.13: {} + nanomatch@1.2.13: dependencies: arr-diff: 4.0.0 @@ -68087,7 +68198,7 @@ snapshots: native-run@2.0.3(supports-color@8.1.1): dependencies: - '@ionic/utils-fs': 3.1.7(supports-color@8.1.1) + '@ionic/utils-fs': 3.1.7 '@ionic/utils-terminal': 2.3.5 bplist-parser: 0.3.2 debug: 4.4.3(supports-color@8.1.1) @@ -72097,7 +72208,7 @@ snapshots: postcss@8.5.15: dependencies: - nanoid: 3.3.12 + nanoid: 3.3.13 picocolors: 1.1.1 source-map-js: 1.2.1 @@ -72478,7 +72589,7 @@ snapshots: publint@0.3.21: dependencies: - '@publint/pack': 0.1.4 + '@publint/pack': 0.1.5 package-manager-detector: 1.6.0 picocolors: 1.1.1 sade: 1.8.1 From 6aac635c1adc0d45c7a30fc48a22a36017a2ba63 Mon Sep 17 00:00:00 2001 From: Matteo Bruni <176620+matteobruni@users.noreply.github.com> Date: Fri, 19 Jun 2026 09:24:09 +0200 Subject: [PATCH 02/28] build: updated some deps --- pnpm-lock.yaml | 259 ++------------------------------- websites/confetti/package.json | 10 +- websites/ribbons/package.json | 10 +- websites/website/package.json | 6 +- 4 files changed, 27 insertions(+), 258 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fae693cbdeb..f8abe3182d2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -11714,7 +11714,7 @@ importers: specifier: workspace:* version: link:../../bundles/confetti/dist ace-builds: - specifier: ^1.37.5 + specifier: ^1.44.0 version: 1.44.0 js-beautify: specifier: ^1.15.4 @@ -11724,13 +11724,13 @@ importers: specifier: ^10.0.1 version: 10.0.1(eslint@10.5.0(jiti@2.7.0)) eslint: - specifier: ^10.4.0 + specifier: ^10.5.0 version: 10.5.0(jiti@2.7.0) eslint-config-prettier: specifier: ^10.1.8 version: 10.1.8(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-prettier: - specifier: ^5.5.5 + specifier: ^5.5.6 version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.5.0(jiti@2.7.0)))(eslint@10.5.0(jiti@2.7.0))(prettier@3.8.4) gh-pages: specifier: ^6.3.0 @@ -11739,10 +11739,10 @@ importers: specifier: ^17.6.0 version: 17.6.0 prettier: - specifier: ^3.8.3 + specifier: ^3.8.4 version: 3.8.4 vite: - specifier: ^8.0.14 + specifier: ^8.0.16 version: 8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) websites/ribbons: @@ -11751,7 +11751,7 @@ importers: specifier: workspace:* version: link:../../bundles/ribbons/dist ace-builds: - specifier: ^1.37.5 + specifier: ^1.44.0 version: 1.44.0 js-beautify: specifier: ^1.15.4 @@ -11761,13 +11761,13 @@ importers: specifier: ^10.0.1 version: 10.0.1(eslint@10.5.0(jiti@2.7.0)) eslint: - specifier: ^10.4.0 + specifier: ^10.5.0 version: 10.5.0(jiti@2.7.0) eslint-config-prettier: specifier: ^10.1.8 version: 10.1.8(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-prettier: - specifier: ^5.5.5 + specifier: ^5.5.6 version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.5.0(jiti@2.7.0)))(eslint@10.5.0(jiti@2.7.0))(prettier@3.8.4) gh-pages: specifier: ^6.3.0 @@ -11776,10 +11776,10 @@ importers: specifier: ^17.6.0 version: 17.6.0 prettier: - specifier: ^3.8.3 + specifier: ^3.8.4 version: 3.8.4 vite: - specifier: ^8.0.14 + specifier: ^8.0.16 version: 8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) websites/website: @@ -12461,7 +12461,7 @@ importers: version: link:../../bundles/full/dist devDependencies: prettier: - specifier: ^3.8.3 + specifier: ^3.8.4 version: 3.8.4 typedoc: specifier: ^0.28.19 @@ -12479,7 +12479,7 @@ importers: specifier: ^1.6.0 version: 1.6.0(typedoc@0.28.19(typescript@6.0.3)) typedoc-plugin-markdown: - specifier: ^4.11.0 + specifier: ^4.12.0 version: 4.12.0(typedoc@0.28.19(typescript@6.0.3)) typedoc-plugin-mdn-links: specifier: ^5.1.1 @@ -12488,8 +12488,8 @@ importers: specifier: ^4.1.3 version: 4.1.3(typedoc@0.28.19(typescript@6.0.3)) vite: - specifier: 8.0.14 - version: 8.0.14(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) + specifier: ^8.0.16 + version: 8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) vitepress: specifier: ^1.6.4 version: 1.6.4(@algolia/client-search@5.54.1)(@types/node@25.9.3)(@types/react@18.3.31)(axios@1.18.0)(fuse.js@7.4.2)(less@4.6.6)(lightningcss@1.32.0)(postcss@8.5.15)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.101.0)(search-insights@2.17.3)(stylus@0.64.0)(terser@5.48.0)(typescript@6.0.3) @@ -21523,12 +21523,6 @@ packages: cpu: [arm64] os: [android] - '@rolldown/binding-android-arm64@1.0.2': - resolution: {integrity: sha512-ZS4D1JPGn/MYQN/SYDWftIE/nVsM8j/AFOYEzAoOE2O3NktQOZru+/vYXGbR/qtdLdIfGCP0lcoJiYVzsEz+iQ==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [android] - '@rolldown/binding-android-arm64@1.0.3': resolution: {integrity: sha512-454rs7jHngixp/NMxd5srYD57OnzSlZ/eFTETjORQHLwJG1lRtmNOJcBerZlfu4GjKqeq8aCCIQrMdHyhI51Hw==} engines: {node: ^20.19.0 || >=22.12.0} @@ -21547,12 +21541,6 @@ packages: cpu: [arm64] os: [darwin] - '@rolldown/binding-darwin-arm64@1.0.2': - resolution: {integrity: sha512-vdFA9+C/rekyGce7WqHs/xoT0ioZEWaOFyZLIV1mEeNFaFDUQrPIo8Vs2GvJ6eetb3rzDUtUBgzto3ExpXJB3w==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [darwin] - '@rolldown/binding-darwin-arm64@1.0.3': resolution: {integrity: sha512-PcAhP+ynjURNyy8SKGl5DQP94aGuB/7JrXJb/t7P+hanXvQVMWzUvRRhBAcg/lNRadBhoUPqSoP4xw5tR/KBEA==} engines: {node: ^20.19.0 || >=22.12.0} @@ -21571,12 +21559,6 @@ packages: cpu: [x64] os: [darwin] - '@rolldown/binding-darwin-x64@1.0.2': - resolution: {integrity: sha512-BewSOwTHazv77DTYiAZXSqqKZ4KP/KonFisDMVU7PImxoWfB2aepnPhd2E4SWz3zDzYgDNbs6jBmTdgNnF02GA==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [darwin] - '@rolldown/binding-darwin-x64@1.0.3': resolution: {integrity: sha512-9YpfeUvSE2RS7wysJ81uOZkXJz7f7Q55H2Gvp3VEw/EsahqDtrphrZ0EwDLK5vvKOzaCrBsjF8JmnMLcUt78Gg==} engines: {node: ^20.19.0 || >=22.12.0} @@ -21595,12 +21577,6 @@ packages: cpu: [x64] os: [freebsd] - '@rolldown/binding-freebsd-x64@1.0.2': - resolution: {integrity: sha512-m41o7M0YWtUdqk61Tb+jnKb2rN++iRdIASlExkUoKfIAH30DOHCB8fVLzSUpbWHHU8esmEioY62PxzexE8MBuA==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [freebsd] - '@rolldown/binding-freebsd-x64@1.0.3': resolution: {integrity: sha512-yB1IlAsSNHncV6SCTL27/MVGR5htvQsoGxIv5KMGXALp+Ll1wYsn+x98M9MW7qa+NdSbvrrY7ANI4wLJ0n1e6g==} engines: {node: ^20.19.0 || >=22.12.0} @@ -21619,12 +21595,6 @@ packages: cpu: [arm] os: [linux] - '@rolldown/binding-linux-arm-gnueabihf@1.0.2': - resolution: {integrity: sha512-jcojB9H7W/jS29pMKWAK1N+fU99vXodHDTatS3b3y/XSOCiHo0kkA74pL3jJmkoQtYpOCxDvaKs1fo2Ij/1X5w==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm] - os: [linux] - '@rolldown/binding-linux-arm-gnueabihf@1.0.3': resolution: {integrity: sha512-Yi30IVAAfLUCy2MseFjbB1jAMDl1VMCAas5StnYp8da9+CKvMd2H2cbEjWcw5NPaPqzvYkVIaF1nNUG+b7u/sw==} engines: {node: ^20.19.0 || >=22.12.0} @@ -21644,13 +21614,6 @@ packages: os: [linux] libc: [glibc] - '@rolldown/binding-linux-arm64-gnu@1.0.2': - resolution: {integrity: sha512-1jn6qDU5iiOgFgygDzKUuKP0maTi0/f1+sBLgvij/76C77Nm3ts6ufz9Bjg5q5dduxiUIxtq86JIoBvo1xQ4Ig==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [linux] - libc: [glibc] - '@rolldown/binding-linux-arm64-gnu@1.0.3': resolution: {integrity: sha512-jsO7R8To+AdlYgUmN5sHSCZbfhtMBkO0WUx8iORQnPcMMdgr7qM2DQmMwgabs3GhNztdmoKkMKQFHD6DTMCIQw==} engines: {node: ^20.19.0 || >=22.12.0} @@ -21672,13 +21635,6 @@ packages: os: [linux] libc: [musl] - '@rolldown/binding-linux-arm64-musl@1.0.2': - resolution: {integrity: sha512-QVLO/czFMdoMFSqlX3bcswcJNm/23r+qoa/jgtmFc/qEp6/jXmIkDjF/XIo8dPfGaiwy1xfQn8o77L79GeXFgw==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [linux] - libc: [musl] - '@rolldown/binding-linux-arm64-musl@1.0.3': resolution: {integrity: sha512-VWkUHwWriDciit80wleYwKILoR/KMvxh/IdwS/paX+ZgpuRpCrKLUdadJbc0NpBEiyhpYawsJ73j9aCvOH+f7Q==} engines: {node: ^20.19.0 || >=22.12.0} @@ -21700,13 +21656,6 @@ packages: os: [linux] libc: [glibc] - '@rolldown/binding-linux-ppc64-gnu@1.0.2': - resolution: {integrity: sha512-hgO5Abm0w5UL6FEa2iFnZqo2KlK7TQ5QhV5x09hujBf7t5KzHQ1VmfPuTpqRy/rNlSxua3eWH374xxiVrP+lcA==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [ppc64] - os: [linux] - libc: [glibc] - '@rolldown/binding-linux-ppc64-gnu@1.0.3': resolution: {integrity: sha512-5f1laC0SlIR0yDbFCd8acUhvJIag6N3zC5P7oUPN6wX0aOma+uKJ0wBDH5aq7I1PVI2ttTlhJwzwRIBnLiSGEg==} engines: {node: ^20.19.0 || >=22.12.0} @@ -21728,13 +21677,6 @@ packages: os: [linux] libc: [glibc] - '@rolldown/binding-linux-s390x-gnu@1.0.2': - resolution: {integrity: sha512-fy8rXxuYEu602abC8MUNaPjYLIFzReOaEIEMKMUa0rFEUxNpVXhs15KSSQ4qlqSaM7B6rcj9rDZgADh/IGDzLQ==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [s390x] - os: [linux] - libc: [glibc] - '@rolldown/binding-linux-s390x-gnu@1.0.3': resolution: {integrity: sha512-Iq4ko0r4XsgbrF/LunNgHtAGLRRVE2kXonAXQ/MV0mC6jQpMOhW1SvtZja2EhC/kd05++bP78dsqBeIQyYJ6Yg==} engines: {node: ^20.19.0 || >=22.12.0} @@ -21756,13 +21698,6 @@ packages: os: [linux] libc: [glibc] - '@rolldown/binding-linux-x64-gnu@1.0.2': - resolution: {integrity: sha512-0+bOkiQ779+r1WpoHOWHqncvyySci0vKph+myNDYb+im6meJAzHQXay6oEgnkHuUGouM1LKTZwqKpBow6Kj7CQ==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [linux] - libc: [glibc] - '@rolldown/binding-linux-x64-gnu@1.0.3': resolution: {integrity: sha512-B8m6tD5+/N5FeNQFbKlLA/2yVq9ycQP1SeedyEYYKWBNR3ZQbkvIUcNnDNM03lO1l5F2roiiFJGgvoLLyZXtSg==} engines: {node: ^20.19.0 || >=22.12.0} @@ -21784,13 +21719,6 @@ packages: os: [linux] libc: [musl] - '@rolldown/binding-linux-x64-musl@1.0.2': - resolution: {integrity: sha512-mjSkrzZK5Qsl0a9d1JgILOiuZOSDTVdKENcSXBoqbzSrspLR/4/IRVDo5wd2GgZjNss/viBFJdeq+j7qH2nypw==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [linux] - libc: [musl] - '@rolldown/binding-linux-x64-musl@1.0.3': resolution: {integrity: sha512-pSdpdUJHkuCxun9LE7jvgUB9qsRgaiyNNCX7m/AvHTcq67AiT/Yhoxvw5zPfhrM8k/BfP8ce/hMOpthKDpEUow==} engines: {node: ^20.19.0 || >=22.12.0} @@ -21811,12 +21739,6 @@ packages: cpu: [arm64] os: [openharmony] - '@rolldown/binding-openharmony-arm64@1.0.2': - resolution: {integrity: sha512-1v5vHasdfQAZoEHakBV72LIFAC9JjnymsiKxp+GEr/ma3+NJCPSaYK+qavInOovJkgwFrs7GccX2d6IgDA3Z5w==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [openharmony] - '@rolldown/binding-openharmony-arm64@1.0.3': resolution: {integrity: sha512-OXXS3RKJgX2uLwM+gYyuH5omcH8fL1LJs96pZGgtetVCahON57+d4SJHzTgZiOjxgGkSnpXpOsWuPDGAKAigEg==} engines: {node: ^20.19.0 || >=22.12.0} @@ -21834,11 +21756,6 @@ packages: engines: {node: '>=14.0.0'} cpu: [wasm32] - '@rolldown/binding-wasm32-wasi@1.0.2': - resolution: {integrity: sha512-mb1VobWn6NheziTk5/WEaR6AKVbrwT5sOi6C7zk3gy/pD1qtJfU1j4PgTo2NJnOtbL9Dl3Aeei8w9jJ7qC2jZQ==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [wasm32] - '@rolldown/binding-wasm32-wasi@1.0.3': resolution: {integrity: sha512-JTtb8BWFynicNSoPrehsCzBtOKjZ6jhMiPFEmOiuXg1Fl8dn2KHQob+GuPSGR0dryQa1PQJbzjF3dqO/whhjLg==} engines: {node: ^20.19.0 || >=22.12.0} @@ -21855,12 +21772,6 @@ packages: cpu: [arm64] os: [win32] - '@rolldown/binding-win32-arm64-msvc@1.0.2': - resolution: {integrity: sha512-SqKonF56vA/L2yHwHYcEp2P34URpOZ7d1fS635cTkpDnUtEGdUbhI6NzsPdqeSWvAAeGDrxjWjNmibDIdFf9/A==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [win32] - '@rolldown/binding-win32-arm64-msvc@1.0.3': resolution: {integrity: sha512-gEdFFEN70A/jxb2svrWsN3aDL7OUtmvlOy+6fa2jxG8K0wQ1ZbdeLGnidov6Yu5/733dI5ySfzFlQ/cb0bSz1g==} engines: {node: ^20.19.0 || >=22.12.0} @@ -21879,12 +21790,6 @@ packages: cpu: [x64] os: [win32] - '@rolldown/binding-win32-x64-msvc@1.0.2': - resolution: {integrity: sha512-v7qRI7gXLRINcOGXt+7YmAZ6iFuyZVMIoXAxhd8oP+DR9dLfL9GfNIx7PLMxmhZdvq8waUJBQiWN9EKNy+TRBQ==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [win32] - '@rolldown/binding-win32-x64-msvc@1.0.3': resolution: {integrity: sha512-eXB7CHuaQdqmJcc3koCNtNPmT/bj2gc999kUFgBxG8Ac0NdgXc4rkCHhqrgrhN3zddvvvrgzj1e90SuSfmyIXA==} engines: {node: ^20.19.0 || >=22.12.0} @@ -37941,11 +37846,6 @@ packages: engines: {node: ^20.19.0 || >=22.12.0} hasBin: true - rolldown@1.0.2: - resolution: {integrity: sha512-oZx5zVDtVB44AW3eaifgDml1gWRDZGvjcfdxonE4swNPG98PrrXjaO/KrnUjzlMnztCCRVlUueA1kCXhARGk6g==} - engines: {node: ^20.19.0 || >=22.12.0} - hasBin: true - rolldown@1.0.3: resolution: {integrity: sha512-i00lAJ2ks1BYr7rjNjKC7BcqAS7nVfiT3QX1SI5aY+AFHblCmaUf9OE9dbdzDvW6dJxbi2ZCZiy9v3CcwOiX3g==} engines: {node: ^20.19.0 || >=22.12.0} @@ -41204,49 +41104,6 @@ packages: yaml: optional: true - vite@8.0.14: - resolution: {integrity: sha512-s4BJJ+5y1pYL6Otw51FHhVJQhPnuRinKig64g/1+EUNaJsd3gCKdD31IPFvswUgW9/60QT9oFHbZHbQK5imcxw==} - engines: {node: ^20.19.0 || >=22.12.0} - hasBin: true - peerDependencies: - '@types/node': ^20.19.0 || >=22.12.0 - '@vitejs/devtools': ^0.1.18 - esbuild: ^0.27.0 || ^0.28.0 - jiti: '>=1.21.0' - less: ^4.0.0 - sass: ^1.70.0 - sass-embedded: ^1.70.0 - stylus: '>=0.54.8' - sugarss: ^5.0.0 - terser: ^5.16.0 - tsx: ^4.8.1 - yaml: ^2.4.2 - peerDependenciesMeta: - '@types/node': - optional: true - '@vitejs/devtools': - optional: true - esbuild: - optional: true - jiti: - optional: true - less: - optional: true - sass: - optional: true - sass-embedded: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - tsx: - optional: true - yaml: - optional: true - vite@8.0.16: resolution: {integrity: sha512-h9bXPmJichP5fLmVQo3PyaGSDE2n3aPuomeAlVRm0JLmt4rY6zmPKd59HYI4LNW8oTK7tlTsuC7l/m7awx9Jcw==} engines: {node: ^20.19.0 || >=22.12.0} @@ -51114,9 +50971,6 @@ snapshots: '@rolldown/binding-android-arm64@1.0.0-rc.12': optional: true - '@rolldown/binding-android-arm64@1.0.2': - optional: true - '@rolldown/binding-android-arm64@1.0.3': optional: true @@ -51126,9 +50980,6 @@ snapshots: '@rolldown/binding-darwin-arm64@1.0.0-rc.12': optional: true - '@rolldown/binding-darwin-arm64@1.0.2': - optional: true - '@rolldown/binding-darwin-arm64@1.0.3': optional: true @@ -51138,9 +50989,6 @@ snapshots: '@rolldown/binding-darwin-x64@1.0.0-rc.12': optional: true - '@rolldown/binding-darwin-x64@1.0.2': - optional: true - '@rolldown/binding-darwin-x64@1.0.3': optional: true @@ -51150,9 +50998,6 @@ snapshots: '@rolldown/binding-freebsd-x64@1.0.0-rc.12': optional: true - '@rolldown/binding-freebsd-x64@1.0.2': - optional: true - '@rolldown/binding-freebsd-x64@1.0.3': optional: true @@ -51162,9 +51007,6 @@ snapshots: '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.12': optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.0.2': - optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.0.3': optional: true @@ -51174,9 +51016,6 @@ snapshots: '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.12': optional: true - '@rolldown/binding-linux-arm64-gnu@1.0.2': - optional: true - '@rolldown/binding-linux-arm64-gnu@1.0.3': optional: true @@ -51186,9 +51025,6 @@ snapshots: '@rolldown/binding-linux-arm64-musl@1.0.0-rc.12': optional: true - '@rolldown/binding-linux-arm64-musl@1.0.2': - optional: true - '@rolldown/binding-linux-arm64-musl@1.0.3': optional: true @@ -51198,9 +51034,6 @@ snapshots: '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.12': optional: true - '@rolldown/binding-linux-ppc64-gnu@1.0.2': - optional: true - '@rolldown/binding-linux-ppc64-gnu@1.0.3': optional: true @@ -51210,9 +51043,6 @@ snapshots: '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.12': optional: true - '@rolldown/binding-linux-s390x-gnu@1.0.2': - optional: true - '@rolldown/binding-linux-s390x-gnu@1.0.3': optional: true @@ -51222,9 +51052,6 @@ snapshots: '@rolldown/binding-linux-x64-gnu@1.0.0-rc.12': optional: true - '@rolldown/binding-linux-x64-gnu@1.0.2': - optional: true - '@rolldown/binding-linux-x64-gnu@1.0.3': optional: true @@ -51234,9 +51061,6 @@ snapshots: '@rolldown/binding-linux-x64-musl@1.0.0-rc.12': optional: true - '@rolldown/binding-linux-x64-musl@1.0.2': - optional: true - '@rolldown/binding-linux-x64-musl@1.0.3': optional: true @@ -51246,9 +51070,6 @@ snapshots: '@rolldown/binding-openharmony-arm64@1.0.0-rc.12': optional: true - '@rolldown/binding-openharmony-arm64@1.0.2': - optional: true - '@rolldown/binding-openharmony-arm64@1.0.3': optional: true @@ -51263,13 +51084,6 @@ snapshots: - '@emnapi/runtime' optional: true - '@rolldown/binding-wasm32-wasi@1.0.2': - dependencies: - '@emnapi/core': 1.10.0 - '@emnapi/runtime': 1.10.0 - '@napi-rs/wasm-runtime': 1.1.5(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) - optional: true - '@rolldown/binding-wasm32-wasi@1.0.3': dependencies: '@emnapi/core': 1.10.0 @@ -51287,9 +51101,6 @@ snapshots: '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.12': optional: true - '@rolldown/binding-win32-arm64-msvc@1.0.2': - optional: true - '@rolldown/binding-win32-arm64-msvc@1.0.3': optional: true @@ -51299,9 +51110,6 @@ snapshots: '@rolldown/binding-win32-x64-msvc@1.0.0-rc.12': optional: true - '@rolldown/binding-win32-x64-msvc@1.0.2': - optional: true - '@rolldown/binding-win32-x64-msvc@1.0.3': optional: true @@ -73533,27 +73341,6 @@ snapshots: - '@emnapi/core' - '@emnapi/runtime' - rolldown@1.0.2: - dependencies: - '@oxc-project/types': 0.132.0 - '@rolldown/pluginutils': 1.0.1 - optionalDependencies: - '@rolldown/binding-android-arm64': 1.0.2 - '@rolldown/binding-darwin-arm64': 1.0.2 - '@rolldown/binding-darwin-x64': 1.0.2 - '@rolldown/binding-freebsd-x64': 1.0.2 - '@rolldown/binding-linux-arm-gnueabihf': 1.0.2 - '@rolldown/binding-linux-arm64-gnu': 1.0.2 - '@rolldown/binding-linux-arm64-musl': 1.0.2 - '@rolldown/binding-linux-ppc64-gnu': 1.0.2 - '@rolldown/binding-linux-s390x-gnu': 1.0.2 - '@rolldown/binding-linux-x64-gnu': 1.0.2 - '@rolldown/binding-linux-x64-musl': 1.0.2 - '@rolldown/binding-openharmony-arm64': 1.0.2 - '@rolldown/binding-wasm32-wasi': 1.0.2 - '@rolldown/binding-win32-arm64-msvc': 1.0.2 - '@rolldown/binding-win32-x64-msvc': 1.0.2 - rolldown@1.0.3: dependencies: '@oxc-project/types': 0.133.0 @@ -77611,24 +77398,6 @@ snapshots: terser: 5.48.0 yaml: 2.9.0 - vite@8.0.14(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0): - dependencies: - lightningcss: 1.32.0 - picomatch: 4.0.4 - postcss: 8.5.15 - rolldown: 1.0.2 - tinyglobby: 0.2.17 - optionalDependencies: - '@types/node': 25.9.3 - esbuild: 0.28.1 - fsevents: 2.3.3 - jiti: 2.7.0 - less: 4.6.6 - sass: 1.101.0 - stylus: 0.64.0 - terser: 5.48.0 - yaml: 2.9.0 - vite@8.0.16(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0): dependencies: lightningcss: 1.32.0 diff --git a/websites/confetti/package.json b/websites/confetti/package.json index f7982c3986b..9da1706136b 100644 --- a/websites/confetti/package.json +++ b/websites/confetti/package.json @@ -31,18 +31,18 @@ "homepage": "https://confetti.js.org", "dependencies": { "@tsparticles/confetti": "workspace:*", - "ace-builds": "^1.37.5", + "ace-builds": "^1.44.0", "js-beautify": "^1.15.4" }, "devDependencies": { "@eslint/js": "^10.0.1", - "eslint": "^10.4.0", + "eslint": "^10.5.0", "eslint-config-prettier": "^10.1.8", - "eslint-plugin-prettier": "^5.5.5", + "eslint-plugin-prettier": "^5.5.6", "gh-pages": "^6.3.0", "globals": "^17.6.0", - "prettier": "^3.8.3", - "vite": "^8.0.14" + "prettier": "^3.8.4", + "vite": "^8.0.16" }, "nx": { "implicitDependencies": [ diff --git a/websites/ribbons/package.json b/websites/ribbons/package.json index daafa2f7ee1..cdc7b51e6df 100644 --- a/websites/ribbons/package.json +++ b/websites/ribbons/package.json @@ -31,18 +31,18 @@ "homepage": "https://ribbons.js.org", "dependencies": { "@tsparticles/ribbons": "workspace:*", - "ace-builds": "^1.37.5", + "ace-builds": "^1.44.0", "js-beautify": "^1.15.4" }, "devDependencies": { "@eslint/js": "^10.0.1", - "eslint": "^10.4.0", + "eslint": "^10.5.0", "eslint-config-prettier": "^10.1.8", - "eslint-plugin-prettier": "^5.5.5", + "eslint-plugin-prettier": "^5.5.6", "gh-pages": "^6.3.0", "globals": "^17.6.0", - "prettier": "^3.8.3", - "vite": "^8.0.14" + "prettier": "^3.8.4", + "vite": "^8.0.16" }, "nx": { "implicitDependencies": [ diff --git a/websites/website/package.json b/websites/website/package.json index b91c2ad9a3c..4e1b83a1567 100644 --- a/websites/website/package.json +++ b/websites/website/package.json @@ -257,16 +257,16 @@ "tsparticles": "workspace:*" }, "devDependencies": { - "prettier": "^3.8.3", + "prettier": "^3.8.4", "typedoc": "^0.28.19", "typedoc-plugin-clarity": "^1.6.0", "typedoc-plugin-coverage": "^4.0.3", "typedoc-plugin-google-ads": "^1.6.0", "typedoc-plugin-keywords": "^1.6.0", - "typedoc-plugin-markdown": "^4.11.0", + "typedoc-plugin-markdown": "^4.12.0", "typedoc-plugin-mdn-links": "^5.1.1", "typedoc-plugin-missing-exports": "^4.1.3", - "vite": "8.0.14", + "vite": "^8.0.16", "vitepress": "^1.6.4" }, "nx": { From 39b4e5111263646b321128d958a6a71a7c434cb9 Mon Sep 17 00:00:00 2001 From: Matteo Bruni <176620+matteobruni@users.noreply.github.com> Date: Sat, 20 Jun 2026 00:12:08 +0200 Subject: [PATCH 03/28] chore(plugins): moved animated gif support to a separate shape --- .planning/handovers/4.3.0_PLAN.md | 142 ++++++++-------- .planning/handovers/GIF_SHAPE_PLAN.md | 158 +++++++++--------- bundles/all/package.dist.json | 1 + bundles/all/package.json | 1 + bundles/all/src/index.ts | 2 + demo/vanilla/app.ts | 1 + demo/vanilla/package.json | 1 + demo/vanilla/views/index.pug | 1 + demo/vanilla/views/playground.pug | 1 + demo/vanilla/views/slim.pug | 1 + pnpm-lock.yaml | 143 ++++------------ shapes/gif/.browserslistrc | 1 + shapes/gif/LICENSE | 21 +++ shapes/gif/README.md | 110 ++++++++++++ shapes/gif/eslint.config.js | 6 + shapes/gif/package.dist.json | 115 +++++++++++++ shapes/gif/package.json | 95 +++++++++++ shapes/gif/rollup.config.js | 18 ++ shapes/gif/src/GifDrawer.ts | 71 ++++++++ .../{image => gif}/src/GifUtils/ByteStream.ts | 0 .../{image => gif}/src/GifUtils/Constants.ts | 0 .../src/GifUtils/Enums/DisposalMethod.ts | 0 .../GifUtils/Types/ApplicationExtension.ts | 0 .../src/GifUtils/Types/Frame.ts | 0 .../{image => gif}/src/GifUtils/Types/GIF.ts | 0 .../src/GifUtils/Types/GIFDataHeaders.ts | 0 .../Types/GIFProgressCallbackFunction.ts | 0 .../src/GifUtils/Types/PlainTextData.ts | 0 shapes/{image => gif}/src/GifUtils/Utils.ts | 59 ++----- shapes/gif/src/IGifShape.ts | 9 + shapes/gif/src/browser.ts | 10 ++ shapes/gif/src/index.lazy.ts | 17 ++ shapes/gif/src/index.ts | 16 ++ shapes/gif/src/types.ts | 9 + shapes/gif/tsconfig.base.json | 9 + shapes/gif/tsconfig.browser.json | 6 + shapes/gif/tsconfig.json | 6 + shapes/gif/tsconfig.module.json | 6 + shapes/gif/tsconfig.types.json | 6 + shapes/gif/typedoc.json | 15 ++ shapes/image/src/IImageShape.ts | 1 - shapes/image/src/ImageDrawer.ts | 9 +- shapes/image/src/Options/Classes/Preload.ts | 2 - .../image/src/Options/Interfaces/IPreload.ts | 2 - shapes/image/src/Utils.ts | 11 -- shapes/image/src/index.lazy.ts | 7 +- shapes/image/src/index.ts | 6 +- utils/configs/src/g/gifs.ts | 5 +- 48 files changed, 753 insertions(+), 347 deletions(-) create mode 100644 shapes/gif/.browserslistrc create mode 100644 shapes/gif/LICENSE create mode 100644 shapes/gif/README.md create mode 100644 shapes/gif/eslint.config.js create mode 100644 shapes/gif/package.dist.json create mode 100644 shapes/gif/package.json create mode 100644 shapes/gif/rollup.config.js create mode 100644 shapes/gif/src/GifDrawer.ts rename shapes/{image => gif}/src/GifUtils/ByteStream.ts (100%) rename shapes/{image => gif}/src/GifUtils/Constants.ts (100%) rename shapes/{image => gif}/src/GifUtils/Enums/DisposalMethod.ts (100%) rename shapes/{image => gif}/src/GifUtils/Types/ApplicationExtension.ts (100%) rename shapes/{image => gif}/src/GifUtils/Types/Frame.ts (100%) rename shapes/{image => gif}/src/GifUtils/Types/GIF.ts (100%) rename shapes/{image => gif}/src/GifUtils/Types/GIFDataHeaders.ts (100%) rename shapes/{image => gif}/src/GifUtils/Types/GIFProgressCallbackFunction.ts (100%) rename shapes/{image => gif}/src/GifUtils/Types/PlainTextData.ts (100%) rename shapes/{image => gif}/src/GifUtils/Utils.ts (93%) create mode 100644 shapes/gif/src/IGifShape.ts create mode 100644 shapes/gif/src/browser.ts create mode 100644 shapes/gif/src/index.lazy.ts create mode 100644 shapes/gif/src/index.ts create mode 100644 shapes/gif/src/types.ts create mode 100644 shapes/gif/tsconfig.base.json create mode 100644 shapes/gif/tsconfig.browser.json create mode 100644 shapes/gif/tsconfig.json create mode 100644 shapes/gif/tsconfig.module.json create mode 100644 shapes/gif/tsconfig.types.json create mode 100644 shapes/gif/typedoc.json diff --git a/.planning/handovers/4.3.0_PLAN.md b/.planning/handovers/4.3.0_PLAN.md index 0bae76f1f8e..bfdb3dc29ca 100644 --- a/.planning/handovers/4.3.0_PLAN.md +++ b/.planning/handovers/4.3.0_PLAN.md @@ -50,6 +50,14 @@ Checklist riassuntiva di tutte le attività del piano. Da tenere aggiornata dura ``` ## 4.3.0 Dashboard — [date] +### C: GIF Shape +- [x] Step 1: scaffold shapes/gif/ (17 files) +- [x] Step 2: copy + adapt GifUtils (10 files) +- [x] Step 3: remove GIF from shape-image (9 files) +- [x] Step 4: add to @tsparticles/all (2 files) +- [x] Step 5: build + verify +- [x] Step 6: demo config updated + ### A: Background Canvas - [ ] Phase 0: hook points identified - [ ] Phase 1: size delta measured, path chosen @@ -74,14 +82,6 @@ Checklist riassuntiva di tutte le attività del piano. Da tenere aggiornata dura - [ ] Step 8: docs + presets finalized - [ ] Step 9: (optional) plugin orchestration -### C: GIF Shape -- [ ] Step 1: scaffold shapes/gif/ (17 files) -- [ ] Step 2: copy + adapt GifUtils (10 files) -- [ ] Step 3: remove GIF from shape-image (9 files) -- [ ] Step 4: add to @tsparticles/all (2 files) -- [ ] Step 5: build + verify -- [ ] Step 6: demo config updated - ### Release Gate (4.3.0) - [x] ~~Step 0.1~~ — Workspace `@tsparticles/` deps use `workspace:*` (✅ automatico via `post-version-fix.js` dalla 4.2.1) - [ ] Step 0.2 — `pnpm run build:ci` passes @@ -94,22 +94,22 @@ Checklist riassuntiva di tutte le attività del piano. Da tenere aggiornata dura ## Feature Inventory -| # | Feature | Package(s) Affected | Type | Plan | -|---|---------|--------------------|------|------| -| A | Background Canvas programmable hook | `@tsparticles/engine` | Engine enhancement | `BACKGROUND_CANVAS_PLAN.md` | -| B | Fluid Particle Interaction | `@tsparticles/interaction-particles-fluid` | New package | `FLUID_INTERACTION_PLAN.md` | -| C | Separate GIF Shape from Image Shape | `@tsparticles/shape-gif` (new), `@tsparticles/shape-image` (modified), `@tsparticles/all` (modified) | Refactor + new package | `GIF_SHAPE_PLAN.md` | +| # | Feature | Package(s) Affected | Type | Plan | +|---|-------------------------------------|------------------------------------------------------------------------------------------------------|------------------------|-----------------------------| +| C | Separate GIF Shape from Image Shape | `@tsparticles/shape-gif` (new), `@tsparticles/shape-image` (modified), `@tsparticles/all` (modified) | Refactor + new package | `GIF_SHAPE_PLAN.md` | +| A | Background Canvas programmable hook | `@tsparticles/engine` | Engine enhancement | `BACKGROUND_CANVAS_PLAN.md` | +| B | Fluid Particle Interaction | `@tsparticles/interaction-particles-fluid` | New package | `FLUID_INTERACTION_PLAN.md` | --- ## Dependency Graph ``` -A (Background Canvas) B (Fluid Interaction) C (GIF Shape) - engine only new package only shape-image refactor - no deps on B/C no deps on A/C shape-gif (new) - all bundle update - no deps on A/B +C (GIF Shape) A (Background Canvas) B (Fluid Interaction) + shape-image refactor engine only new package only + shape-gif (new) no deps on A/C no deps on A/C + all bundle update + no deps on A/B All three are INDEPENDENT — no shared files, no conflicting changes. They can be implemented in any order or in parallel. @@ -117,12 +117,12 @@ They can be implemented in any order or in parallel. ### Conflict matrix -| Area | A ∩ B | A ∩ C | B ∩ C | +| Area | C ∩ A | C ∩ B | A ∩ B | |------|-------|-------|-------| | Files | None | None | None | | Types | None | None | None | -| Engine | A modifies engine; B, C only use engine types | Same | None | -| Bundle `all` | Not affected | C touches `bundles/all/` | Not affected | +| Engine | A modifies engine; C only uses engine types | C, B only use engine types | A modifies engine; B only uses engine types | +| Bundle `all` | C touches `bundles/all/` | Not affected | Not affected | | Risk | None isolated | None isolated | None isolated | **Verdict:** All three are fully parallelizable. No merge conflicts expected. @@ -136,14 +136,14 @@ Since all features are independent, the recommended execution is **parallel**: ``` Week 1-2: + Agent C: GIF Shape (Steps 1-4) Agent A: Background Canvas (Phases 0-4) Agent B: Fluid Interaction (Steps 0-5) - Agent C: GIF Shape (Steps 1-4) Week 2-3: + Agent C: GIF Shape (Steps 5-6) Agent A: Background Canvas (Phases 5-8) Agent B: Fluid Interaction (Steps 6-9) - Agent C: GIF Shape (Steps 5-6) Week 3-4: Integration: build all, integration tests, soak tests @@ -161,13 +161,13 @@ If resources are limited, priority order: ### Per-Feature Verification (run during/after each feature implementation) +- [x] **C:** `@tsparticles/shape-image` builds with zero GIF references +- [x] **C:** `@tsparticles/shape-gif` builds and registers as `type: "gif"` +- [x] **C:** GIF demo config (`utils/configs/src/g/gifs.ts`) works with new shape - [ ] **A:** Bundle impact decision recorded (engine vs plugin path) and within accepted threshold - [ ] **A:** Zero regressions on legacy background behavior - [ ] **B:** No NaN/Infinity in standard presets after 20k+ frame soak - [ ] **B:** Fluid visual effect clearly distinguishable from plain attract/repulse -- [ ] **C:** `@tsparticles/shape-image` builds with zero GIF references -- [ ] **C:** `@tsparticles/shape-gif` builds and registers as `type: "gif"` -- [ ] **C:** GIF demo config (`utils/configs/src/g/gifs.ts`) works with new shape ### Pre-Release Gate (run before cutting release branch) @@ -201,11 +201,11 @@ Each feature produces its own changelog section: ## 4.3.0 ### New Features +- GIF Shape: new `@tsparticles/shape-gif` shape extracted from image shape. + Use `type: "gif"` instead of `type: "image"` with `gif: true` (#C) - Background Canvas: programmable `background.draw` callback + `background.element` target (#A) - Fluid Interaction: new `@tsparticles/interaction-particles-fluid` package with DDR-based liquid simulation, pointer stirring, and presets (#B) -- GIF Shape: new `@tsparticles/shape-gif` shape extracted from image shape. - Use `type: "gif"` instead of `type: "image"` with `gif: true` (#C) ### Breaking Changes - `@tsparticles/shape-image`: removed animated GIF support (`gif` option no longer available). @@ -217,6 +217,45 @@ Each feature produces its own changelog section: --- +## Feature C — GIF Shape (from `GIF_SHAPE_PLAN.md`) + +**Target:** `@tsparticles/shape-gif` (new), `@tsparticles/shape-image` (modified), `@tsparticles/all` (modified) +**Load function:** `loadGifShape(engine)` +**Plan substeps:** 1.1 through 6.1 + +### Implementation steps + +| Step | Description | Verification | +|------|-------------|-------------| +| 1 | Scaffold `shapes/gif/` — 17 new files | Directory exists | +| 2 | Copy `GifUtils/` from image shape — adapt `drawGif`, remove `loadGifImage` | Imports resolve | +| 3 | Remove GIF from `@tsparticles/shape-image` — 9 files modified | `grep` zero matches | +| 4 | Add `@tsparticles/shape-gif` to `@tsparticles/all` bundle | Build passes | +| 5 | Build + verify — `pnpm run build:ci` | `dist/` output OK | +| 6 | Update demo config `utils/configs/src/g/gifs.ts` | Demo works | + +### Critical files + +| File | Change | Type | +|------|--------|------| +| `shapes/gif/src/GifDrawer.ts` | New — IShapeDrawer with GIF cache | New | +| `shapes/gif/src/GifUtils/Utils.ts` | Copied + adapted (drawGif, no loadGifImage) | Copy+edit | +| `shapes/image/src/Utils.ts` | Remove 7 gif fields + import | Modify | +| `shapes/image/src/ImageDrawer.ts` | Remove drawGif branch, gif fields | Modify | +| `bundles/all/src/index.ts` | Add loadGifShape import + call | Modify | + +### User-facing config change + +```jsonc +// Before (4.2.x): +{ "shape": { "type": "image", "options": { "image": { "gif": true, "src": "...", "width": 200, "height": 200 } } } } + +// After (4.3.0): +{ "shape": { "type": "gif", "options": { "gif": { "src": "...", "width": 200, "height": 200 } } } } +``` + +--- + ## Feature A — Background Canvas (from `BACKGROUND_CANVAS_PLAN.md`) **Target:** `@tsparticles/engine` @@ -300,45 +339,6 @@ Each feature produces its own changelog section: --- -## Feature C — GIF Shape (from `GIF_SHAPE_PLAN.md`) - -**Target:** `@tsparticles/shape-gif` (new), `@tsparticles/shape-image` (modified), `@tsparticles/all` (modified) -**Load function:** `loadGifShape(engine)` -**Plan substeps:** 1.1 through 6.1 - -### Implementation steps - -| Step | Description | Verification | -|------|-------------|-------------| -| 1 | Scaffold `shapes/gif/` — 17 new files | Directory exists | -| 2 | Copy `GifUtils/` from image shape — adapt `drawGif`, remove `loadGifImage` | Imports resolve | -| 3 | Remove GIF from `@tsparticles/shape-image` — 9 files modified | `grep` zero matches | -| 4 | Add `@tsparticles/shape-gif` to `@tsparticles/all` bundle | Build passes | -| 5 | Build + verify — `pnpm run build:ci` | `dist/` output OK | -| 6 | Update demo config `utils/configs/src/g/gifs.ts` | Demo works | - -### Critical files - -| File | Change | Type | -|------|--------|------| -| `shapes/gif/src/GifDrawer.ts` | New — IShapeDrawer with GIF cache | New | -| `shapes/gif/src/GifUtils/Utils.ts` | Copied + adapted (drawGif, no loadGifImage) | Copy+edit | -| `shapes/image/src/Utils.ts` | Remove 7 gif fields + import | Modify | -| `shapes/image/src/ImageDrawer.ts` | Remove drawGif branch, gif fields | Modify | -| `bundles/all/src/index.ts` | Add loadGifShape import + call | Modify | - -### User-facing config change - -```jsonc -// Before (4.2.x): -{ "shape": { "type": "image", "options": { "image": { "gif": true, "src": "...", "width": 200, "height": 200 } } } } - -// After (4.3.0): -{ "shape": { "type": "gif", "options": { "gif": { "src": "...", "width": 200, "height": 200 } } } } -``` - ---- - ## Release Infrastructure ### Root `package.json` version sync @@ -358,11 +358,11 @@ If any feature is not ready at the 4.3.0 freeze date: | Scenario | Action | |----------|--------| -| A not ready | Ship B + C as 4.3.0, defer A to 4.4.0 | -| B not ready | Ship A + C as 4.3.0, defer B to 4.4.0 | | C not ready | Ship A + B as 4.3.0, defer C to 4.4.0 | -| A+B not ready | Ship C alone as 4.3.0 | -| A+B+C not ready | No 4.3.0 — reassess scope | +| A not ready | Ship C + B as 4.3.0, defer A to 4.4.0 | +| B not ready | Ship C + A as 4.3.0, defer B to 4.4.0 | +| C+A not ready | Ship B alone as 4.3.0 | +| C+A+B not ready | No 4.3.0 — reassess scope | Each feature's branch must be independent so partial shipping is trivial. diff --git a/.planning/handovers/GIF_SHAPE_PLAN.md b/.planning/handovers/GIF_SHAPE_PLAN.md index d7aafafb5c2..7f6a67d9075 100644 --- a/.planning/handovers/GIF_SHAPE_PLAN.md +++ b/.planning/handovers/GIF_SHAPE_PLAN.md @@ -2,22 +2,22 @@ ## Summary -| | | -|---|---| -| **Target** | `@tsparticles/shape-gif` (new), `@tsparticles/shape-image` (modified), `@tsparticles/all` (modified) | -| **Steps** | 6 (1–6) | -| **Type** | Refactor + new package | -| **Load function** | `loadGifShape(engine)` | -| **Files** | ~17 new (shape-gif), ~9 modified (shape-image), ~2 modified (all bundle) | +| | | +|-------------------|------------------------------------------------------------------------------------------------------| +| **Target** | `@tsparticles/shape-gif` (new), `@tsparticles/shape-image` (modified), `@tsparticles/all` (modified) | +| **Steps** | 6 (1–6) | +| **Type** | Refactor + new package | +| **Load function** | `loadGifShape(engine)` | +| **Files** | ~17 new (shape-gif), ~9 modified (shape-image), ~2 modified (all bundle) | ### Progress -- [ ] Step 1: Scaffold `shapes/gif/` (17 files) -- [ ] Step 2: Copy `GifUtils/` from image shape — adapt `drawGif`, remove `loadGifImage` -- [ ] Step 3: Remove GIF from `@tsparticles/shape-image` (9 files) -- [ ] Step 4: Add `@tsparticles/shape-gif` to `@tsparticles/all` bundle -- [ ] Step 5: Build + verify -- [ ] Step 6: Update demo config (`utils/configs/src/g/gifs.ts`) +- [x] Step 1: Scaffold `shapes/gif/` (17 files) +- [x] Step 2: Copy `GifUtils/` from image shape — adapt `drawGif`, remove `loadGifImage` +- [x] Step 3: Remove GIF from `@tsparticles/shape-image` (9 files) +- [x] Step 4: Add `@tsparticles/shape-gif` to `@tsparticles/all` bundle +- [x] Step 5: Build + verify +- [x] Step 6: Update demo config (`utils/configs/src/g/gifs.ts`) --- @@ -605,17 +605,17 @@ export function drawGif(data: IShapeDrawData, canvasSettings?: Canv Check that all imported paths resolve correctly: -| File | Imports | Status | -|---|---|---| -| `ByteStream.ts` | `./Types/GIFDataHeaders.js` | ✅ Internal | -| `Constants.ts` | none | ✅ | -| `Utils.ts` | `@tsparticles/engine`, `../types.js`, `./Constants.js`, `./ByteStream.js`, `./Enums/DisposalMethod.js`, `./Types/GIF.js`, `./Types/GIFDataHeaders.js`, `./Types/GIFProgressCallbackFunction.js` | ✅ Fixed in 2.2 | -| `Enums/DisposalMethod.ts` | none | ✅ | -| `Types/GIF.ts` | `@tsparticles/engine`, `./ApplicationExtension.js`, `./Frame.js` | ✅ | -| `Types/Frame.ts` | `@tsparticles/engine`, `../Enums/DisposalMethod.js`, `./PlainTextData.js` | ✅ | -| `Types/GIFProgressCallbackFunction.ts` | `@tsparticles/engine` | ✅ | -| `Types/PlainTextData.ts` | `@tsparticles/engine` | ✅ | -| Others | none | ✅ | +| File | Imports | Status | +|----------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------| +| `ByteStream.ts` | `./Types/GIFDataHeaders.js` | ✅ Internal | +| `Constants.ts` | none | ✅ | +| `Utils.ts` | `@tsparticles/engine`, `../types.js`, `./Constants.js`, `./ByteStream.js`, `./Enums/DisposalMethod.js`, `./Types/GIF.js`, `./Types/GIFDataHeaders.js`, `./Types/GIFProgressCallbackFunction.js` | ✅ Fixed in 2.2 | +| `Enums/DisposalMethod.ts` | none | ✅ | +| `Types/GIF.ts` | `@tsparticles/engine`, `./ApplicationExtension.js`, `./Frame.js` | ✅ | +| `Types/Frame.ts` | `@tsparticles/engine`, `../Enums/DisposalMethod.js`, `./PlainTextData.js` | ✅ | +| `Types/GIFProgressCallbackFunction.ts` | `@tsparticles/engine` | ✅ | +| `Types/PlainTextData.ts` | `@tsparticles/engine` | ✅ | +| Others | none | ✅ | --- @@ -1065,73 +1065,73 @@ Step 6 (demo config) ### New files (17) -| # | File | Sub-step | -|---|---|---| -| 1 | `shapes/gif/package.json` | 1.2 | -| 2 | `shapes/gif/package.dist.json` | 1.3 | -| 3 | `shapes/gif/.browserslistrc` | 1.4 | -| 4 | `shapes/gif/eslint.config.js` | 1.5 | -| 5 | `shapes/gif/rollup.config.js` | 1.6 | -| 6 | `shapes/gif/tsconfig.base.json` | 1.7 | -| 7 | `shapes/gif/tsconfig.json` | 1.7 | -| 8 | `shapes/gif/tsconfig.browser.json` | 1.7 | -| 9 | `shapes/gif/tsconfig.module.json` | 1.7 | -| 10 | `shapes/gif/tsconfig.types.json` | 1.7 | -| 11 | `shapes/gif/typedoc.json` | 1.8 | -| 12 | `shapes/gif/src/IGifShape.ts` | 1.9 | -| 13 | `shapes/gif/src/types.ts` | 1.10 | -| 14 | `shapes/gif/src/GifDrawer.ts` | 1.11 | -| 15 | `shapes/gif/src/index.ts` | 1.12 | -| 16 | `shapes/gif/src/index.lazy.ts` | 1.13 | -| 17 | `shapes/gif/src/browser.ts` | 1.14 | +| # | File | Sub-step | +|----|------------------------------------|----------| +| 1 | `shapes/gif/package.json` | 1.2 | +| 2 | `shapes/gif/package.dist.json` | 1.3 | +| 3 | `shapes/gif/.browserslistrc` | 1.4 | +| 4 | `shapes/gif/eslint.config.js` | 1.5 | +| 5 | `shapes/gif/rollup.config.js` | 1.6 | +| 6 | `shapes/gif/tsconfig.base.json` | 1.7 | +| 7 | `shapes/gif/tsconfig.json` | 1.7 | +| 8 | `shapes/gif/tsconfig.browser.json` | 1.7 | +| 9 | `shapes/gif/tsconfig.module.json` | 1.7 | +| 10 | `shapes/gif/tsconfig.types.json` | 1.7 | +| 11 | `shapes/gif/typedoc.json` | 1.8 | +| 12 | `shapes/gif/src/IGifShape.ts` | 1.9 | +| 13 | `shapes/gif/src/types.ts` | 1.10 | +| 14 | `shapes/gif/src/GifDrawer.ts` | 1.11 | +| 15 | `shapes/gif/src/index.ts` | 1.12 | +| 16 | `shapes/gif/src/index.lazy.ts` | 1.13 | +| 17 | `shapes/gif/src/browser.ts` | 1.14 | ### Copied files (10) -| File | From | To | Edit needed | -|---|---|---|---| -| `GifUtils/ByteStream.ts` | `shapes/image/src/GifUtils/` | `shapes/gif/src/GifUtils/` | No | -| `GifUtils/Constants.ts` | same | same | No | -| `GifUtils/Utils.ts` | same | same | **Yes** — 2.2, 2.3, 2.4 | -| `GifUtils/Enums/DisposalMethod.ts` | same | same | No | -| `GifUtils/Types/GIF.ts` | same | same | No | -| `GifUtils/Types/Frame.ts` | same | same | No | -| `GifUtils/Types/ApplicationExtension.ts` | same | same | No | -| `GifUtils/Types/GIFDataHeaders.ts` | same | same | No | -| `GifUtils/Types/GIFProgressCallbackFunction.ts` | same | same | No | -| `GifUtils/Types/PlainTextData.ts` | same | same | No | +| File | From | To | Edit needed | +|-------------------------------------------------|------------------------------|----------------------------|-------------------------| +| `GifUtils/ByteStream.ts` | `shapes/image/src/GifUtils/` | `shapes/gif/src/GifUtils/` | No | +| `GifUtils/Constants.ts` | same | same | No | +| `GifUtils/Utils.ts` | same | same | **Yes** — 2.2, 2.3, 2.4 | +| `GifUtils/Enums/DisposalMethod.ts` | same | same | No | +| `GifUtils/Types/GIF.ts` | same | same | No | +| `GifUtils/Types/Frame.ts` | same | same | No | +| `GifUtils/Types/ApplicationExtension.ts` | same | same | No | +| `GifUtils/Types/GIFDataHeaders.ts` | same | same | No | +| `GifUtils/Types/GIFProgressCallbackFunction.ts` | same | same | No | +| `GifUtils/Types/PlainTextData.ts` | same | same | No | ### Modified files (10) -| File | Change | Sub-step | -|---|---|---| -| `shapes/image/src/Utils.ts` | Remove GIF import + 7 gif fields + 1 `gif:` in literal | 3.2 | -| `shapes/image/src/IImageShape.ts` | Remove `gif: boolean` | 3.3 | -| `shapes/image/src/Options/Classes/Preload.ts` | Remove `gif` property + `loadProperty("gif")` | 3.4 | -| `shapes/image/src/Options/Interfaces/IPreload.ts` | Remove `gif: boolean` | 3.5 | -| `shapes/image/src/ImageDrawer.ts` | Remove drawGif import, if-gif branch, gif fields in particleInit, gif in loadImageShape | 3.6 | -| `shapes/image/src/index.ts` | Remove loadGifImage import, gif literal field, if(data.gif) branch | 3.7 | -| `shapes/image/src/index.lazy.ts` | Same as index.ts | 3.8 | -| `bundles/all/package.json` | Add `@tsparticles/shape-gif` dependency | 4.1 | -| `bundles/all/src/index.ts` | Add import + loadGifShape call | 4.3 | -| `utils/configs/src/g/gifs.ts` | Change `type: "image"` + gif opts → `type: "gif"` | 6.1 | +| File | Change | Sub-step | +|---------------------------------------------------|-----------------------------------------------------------------------------------------|----------| +| `shapes/image/src/Utils.ts` | Remove GIF import + 7 gif fields + 1 `gif:` in literal | 3.2 | +| `shapes/image/src/IImageShape.ts` | Remove `gif: boolean` | 3.3 | +| `shapes/image/src/Options/Classes/Preload.ts` | Remove `gif` property + `loadProperty("gif")` | 3.4 | +| `shapes/image/src/Options/Interfaces/IPreload.ts` | Remove `gif: boolean` | 3.5 | +| `shapes/image/src/ImageDrawer.ts` | Remove drawGif import, if-gif branch, gif fields in particleInit, gif in loadImageShape | 3.6 | +| `shapes/image/src/index.ts` | Remove loadGifImage import, gif literal field, if(data.gif) branch | 3.7 | +| `shapes/image/src/index.lazy.ts` | Same as index.ts | 3.8 | +| `bundles/all/package.json` | Add `@tsparticles/shape-gif` dependency | 4.1 | +| `bundles/all/src/index.ts` | Add import + loadGifShape call | 4.3 | +| `utils/configs/src/g/gifs.ts` | Change `type: "image"` + gif opts → `type: "gif"` | 6.1 | ### Deleted (1) -| Path | Sub-step | -|---|---| -| `shapes/image/src/GifUtils/` | 3.1 | +| Path | Sub-step | +|------------------------------|----------| +| `shapes/image/src/GifUtils/` | 3.1 | ### No changes needed -| Reason | | -|---|---| -| `pnpm-workspace.yaml` | Already includes `shapes/*` | -| `bundles/all/src/bundle.ts` | Re-exports from `./index.js` | -| `bundles/all/src/browser.ts` | Re-exports from `./index.js` | -| `shapes/image/src/types.ts` | No GIF-specific types | -| `shapes/image/src/ImagePreloader.ts` | No GIF-specific code | -| `shapes/image/src/ImagePreloaderInstance.ts` | No GIF-specific code | -| `shapes/image/src/browser.ts` | No GIF-specific code | +| Reason | | +|----------------------------------------------|------------------------------| +| `pnpm-workspace.yaml` | Already includes `shapes/*` | +| `bundles/all/src/bundle.ts` | Re-exports from `./index.js` | +| `bundles/all/src/browser.ts` | Re-exports from `./index.js` | +| `shapes/image/src/types.ts` | No GIF-specific types | +| `shapes/image/src/ImagePreloader.ts` | No GIF-specific code | +| `shapes/image/src/ImagePreloaderInstance.ts` | No GIF-specific code | +| `shapes/image/src/browser.ts` | No GIF-specific code | --- diff --git a/bundles/all/package.dist.json b/bundles/all/package.dist.json index be72b30df9d..68184225d6c 100644 --- a/bundles/all/package.dist.json +++ b/bundles/all/package.dist.json @@ -171,6 +171,7 @@ "@tsparticles/shape-arrow": "4.2.1", "@tsparticles/shape-cards": "4.2.1", "@tsparticles/shape-cog": "4.2.1", + "@tsparticles/shape-gif": "4.2.1", "@tsparticles/shape-heart": "4.2.1", "@tsparticles/shape-infinity": "4.2.1", "@tsparticles/shape-matrix": "4.2.1", diff --git a/bundles/all/package.json b/bundles/all/package.json index 5323e41a3c9..91e4f07f1d2 100644 --- a/bundles/all/package.json +++ b/bundles/all/package.json @@ -181,6 +181,7 @@ "@tsparticles/shape-arrow": "workspace:*", "@tsparticles/shape-cards": "workspace:*", "@tsparticles/shape-cog": "workspace:*", + "@tsparticles/shape-gif": "workspace:*", "@tsparticles/shape-heart": "workspace:*", "@tsparticles/shape-infinity": "workspace:*", "@tsparticles/shape-matrix": "workspace:*", diff --git a/bundles/all/src/index.ts b/bundles/all/src/index.ts index f961bd81668..42852662b0f 100644 --- a/bundles/all/src/index.ts +++ b/bundles/all/src/index.ts @@ -34,6 +34,7 @@ import { loadExternalPopInteraction } from "@tsparticles/interaction-external-po import { loadFilterEffect } from "@tsparticles/effect-filter"; import { loadFractalNoisePath } from "@tsparticles/path-fractal-noise"; import { loadFull } from "tsparticles"; +import { loadGifShape } from "@tsparticles/shape-gif"; import { loadGradientUpdater } from "@tsparticles/updater-gradient"; import { loadGridPath } from "@tsparticles/path-grid"; import { loadHeartShape } from "@tsparticles/shape-heart"; @@ -177,6 +178,7 @@ export async function loadAll(engine: Engine): Promise { loadArrowShape(e), loadCardsShape(e), loadCogShape(e), + loadGifShape(e), loadHeartShape(e), loadInfinityShape(e), loadMatrixShape(e), diff --git a/demo/vanilla/app.ts b/demo/vanilla/app.ts index e17d34f55dd..fc653781103 100644 --- a/demo/vanilla/app.ts +++ b/demo/vanilla/app.ts @@ -485,6 +485,7 @@ app.use( app.use("/interaction-particles-links", express.static("./node_modules/@tsparticles/interaction-particles-links")); app.use("/shape-circle", express.static("./node_modules/@tsparticles/shape-circle")); app.use("/shape-emoji", express.static("./node_modules/@tsparticles/shape-emoji")); +app.use("/shape-gif", express.static("./node_modules/@tsparticles/shape-gif")); app.use("/shape-image", express.static("./node_modules/@tsparticles/shape-image")); app.use("/shape-line", express.static("./node_modules/@tsparticles/shape-line")); app.use("/shape-polygon", express.static("./node_modules/@tsparticles/shape-polygon")); diff --git a/demo/vanilla/package.json b/demo/vanilla/package.json index 8cf8c60cd36..0eef16eaa1c 100644 --- a/demo/vanilla/package.json +++ b/demo/vanilla/package.json @@ -376,6 +376,7 @@ "@tsparticles/shape-circle": "workspace:*", "@tsparticles/shape-cog": "workspace:*", "@tsparticles/shape-emoji": "workspace:*", + "@tsparticles/shape-gif": "workspace:*", "@tsparticles/shape-heart": "workspace:*", "@tsparticles/shape-image": "workspace:*", "@tsparticles/shape-infinity": "workspace:*", diff --git a/demo/vanilla/views/index.pug b/demo/vanilla/views/index.pug index 75cb450ac5b..b2d1c62980b 100644 --- a/demo/vanilla/views/index.pug +++ b/demo/vanilla/views/index.pug @@ -143,6 +143,7 @@ html(lang="en") script(src="/plugin-move/tsparticles.plugin.move.min.js") script(src="/shape-circle/tsparticles.shape.circle.min.js") script(src="/shape-image/tsparticles.shape.image.min.js") + script(src="/shape-gif/tsparticles.shape.gif.min.js") script(src="/shape-line/tsparticles.shape.line.min.js") script(src="/shape-polygon/tsparticles.shape.polygon.min.js") script(src="/shape-square/tsparticles.shape.square.min.js") diff --git a/demo/vanilla/views/playground.pug b/demo/vanilla/views/playground.pug index a44370a46de..5155c0968eb 100644 --- a/demo/vanilla/views/playground.pug +++ b/demo/vanilla/views/playground.pug @@ -130,6 +130,7 @@ html(lang="en") script(src="/interaction-external-parallax/tsparticles.interaction.external.parallax.js") script(src="/shape-circle/tsparticles.shape.circle.js") script(src="/shape-image/tsparticles.shape.image.js") + script(src="/shape-gif/tsparticles.shape.gif.js") script(src="/shape-line/tsparticles.shape.line.js") script(src="/shape-polygon/tsparticles.shape.polygon.js") script(src="/shape-square/tsparticles.shape.square.js") diff --git a/demo/vanilla/views/slim.pug b/demo/vanilla/views/slim.pug index 7e26c67f0b4..fc7fbd1d5b8 100644 --- a/demo/vanilla/views/slim.pug +++ b/demo/vanilla/views/slim.pug @@ -190,6 +190,7 @@ html(lang="en") script(src="/plugin-move/tsparticles.plugin.move.min.js") script(src="/shape-circle/tsparticles.shape.circle.min.js") script(src="/shape-image/tsparticles.shape.image.min.js") + script(src="/shape-gif/tsparticles.shape.gif.min.js") script(src="/shape-line/tsparticles.shape.line.min.js") script(src="/shape-polygon/tsparticles.shape.polygon.min.js") script(src="/shape-square/tsparticles.shape.square.min.js") diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f229c1067fb..f312de5b6de 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -358,6 +358,9 @@ importers: '@tsparticles/shape-cog': specifier: workspace:* version: link:../../shapes/cog/dist + '@tsparticles/shape-gif': + specifier: workspace:* + version: link:../../shapes/gif/dist '@tsparticles/shape-heart': specifier: workspace:* version: link:../../shapes/heart/dist @@ -6146,6 +6149,9 @@ importers: '@tsparticles/shape-emoji': specifier: workspace:* version: link:../../shapes/emoji/dist + '@tsparticles/shape-gif': + specifier: workspace:* + version: link:../../shapes/gif/dist '@tsparticles/shape-heart': specifier: workspace:* version: link:../../shapes/heart/dist @@ -11177,6 +11183,16 @@ importers: version: link:../../engine/dist publishDirectory: dist + shapes/gif: + devDependencies: + '@tsparticles/cli-build': + specifier: workspace:* + version: link:../../cli/packages/cli-build + '@tsparticles/engine': + specifier: workspace:* + version: link:../../engine/dist + publishDirectory: dist + shapes/heart: devDependencies: '@tsparticles/cli-build': @@ -14918,10 +14934,6 @@ packages: resolution: {integrity: sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==} engines: {node: '>=6.9.0'} - '@babel/core@7.29.7': - resolution: {integrity: sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==} - engines: {node: '>=6.9.0'} - '@babel/core@8.0.1': resolution: {integrity: sha512-5FgxM4dLQpMJHSiVATk8foW263dVHQHBVpXYiimNECVWG01f4nFyEbQixeT6Mwvg7TayREJ2gpKl3o2RoMdnqw==} engines: {node: ^22.18.0 || >=24.11.0} @@ -43296,26 +43308,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/core@7.29.7': - dependencies: - '@babel/code-frame': 7.29.7 - '@babel/generator': 7.29.7 - '@babel/helper-compilation-targets': 7.29.7 - '@babel/helper-module-transforms': 7.29.7(@babel/core@7.29.7) - '@babel/helpers': 7.29.7 - '@babel/parser': 7.29.7 - '@babel/template': 7.29.7 - '@babel/traverse': 7.29.7 - '@babel/types': 7.29.7 - '@jridgewell/remapping': 2.3.5 - convert-source-map: 2.0.0 - debug: 4.4.3(supports-color@8.1.1) - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - '@babel/core@8.0.1': dependencies: '@babel/code-frame': 8.0.0 @@ -43506,15 +43498,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.29.7(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-module-imports': 7.29.7 - '@babel/helper-validator-identifier': 7.29.7 - '@babel/traverse': 7.29.7 - transitivePeerDependencies: - - supports-color - '@babel/helper-module-transforms@7.29.7(@babel/core@8.0.1)': dependencies: '@babel/core': 8.0.1 @@ -46992,7 +46975,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@ionic/utils-fs@3.1.7': + '@ionic/utils-fs@3.1.7(supports-color@8.1.1)': dependencies: '@types/fs-extra': 8.1.5 debug: 4.4.3(supports-color@8.1.1) @@ -47029,7 +47012,7 @@ snapshots: '@ionic/utils-subprocess@3.0.1(supports-color@8.1.1)': dependencies: '@ionic/utils-array': 2.1.6(supports-color@8.1.1) - '@ionic/utils-fs': 3.1.7 + '@ionic/utils-fs': 3.1.7(supports-color@8.1.1) '@ionic/utils-process': 2.1.12(supports-color@8.1.1) '@ionic/utils-stream': 3.1.7(supports-color@8.1.1) '@ionic/utils-terminal': 2.3.5 @@ -52405,7 +52388,7 @@ snapshots: '@types/connect-history-api-fallback@1.5.4': dependencies: - '@types/express-serve-static-core': 4.19.8 + '@types/express-serve-static-core': 5.1.1 '@types/node': 25.9.3 '@types/connect-livereload@0.6.3': @@ -52441,26 +52424,6 @@ snapshots: '@types/deep-eql@4.0.2': {} - '@types/ember@4.0.11': - dependencies: - '@types/ember__application': 4.0.11(@babel/core@7.29.0) - '@types/ember__array': 4.0.10 - '@types/ember__component': 4.0.22 - '@types/ember__controller': 4.0.12 - '@types/ember__debug': 4.0.8 - '@types/ember__engine': 4.0.11 - '@types/ember__error': 4.0.6 - '@types/ember__object': 4.0.12(@babel/core@7.29.0) - '@types/ember__polyfills': 4.0.6 - '@types/ember__routing': 4.0.23 - '@types/ember__runloop': 4.0.10 - '@types/ember__service': 4.0.9 - '@types/ember__string': 3.0.15 - '@types/ember__template': 4.0.7 - '@types/ember__test': 4.0.6(@babel/core@7.29.0) - '@types/ember__utils': 4.0.7 - '@types/rsvp': 4.0.9 - '@types/ember@4.0.11(@babel/core@7.29.0)': dependencies: '@types/ember__application': 4.0.11(@babel/core@7.29.0) @@ -52496,11 +52459,6 @@ snapshots: - '@babel/core' - supports-color - '@types/ember__array@4.0.10': - dependencies: - '@types/ember': 4.0.11 - '@types/ember__object': 4.0.12 - '@types/ember__array@4.0.10(@babel/core@7.29.0)': dependencies: '@types/ember': 4.0.11(@babel/core@7.29.0) @@ -52509,23 +52467,14 @@ snapshots: - '@babel/core' - supports-color - '@types/ember__component@4.0.22': - dependencies: - '@types/ember': 4.0.11 - '@types/ember__object': 4.0.12 - '@types/ember__component@4.0.22(@babel/core@7.29.0)': dependencies: '@types/ember': 4.0.11(@babel/core@7.29.0) - '@types/ember__object': 4.0.12 + '@types/ember__object': 4.0.12(@babel/core@7.29.0) transitivePeerDependencies: - '@babel/core' - supports-color - '@types/ember__controller@4.0.12': - dependencies: - '@types/ember__object': 4.0.12 - '@types/ember__controller@4.0.12(@babel/core@7.29.0)': dependencies: '@types/ember__object': 4.0.12(@babel/core@7.29.0) @@ -52533,11 +52482,6 @@ snapshots: - '@babel/core' - supports-color - '@types/ember__debug@4.0.8': - dependencies: - '@types/ember__object': 4.0.12 - '@types/ember__owner': 4.0.9 - '@types/ember__debug@4.0.8(@babel/core@7.29.0)': dependencies: '@types/ember__object': 4.0.12(@babel/core@7.29.0) @@ -52548,11 +52492,6 @@ snapshots: '@types/ember__destroyable@4.0.5': {} - '@types/ember__engine@4.0.11': - dependencies: - '@types/ember__object': 4.0.12 - '@types/ember__owner': 4.0.9 - '@types/ember__engine@4.0.11(@babel/core@7.29.0)': dependencies: '@types/ember__object': 4.0.12(@babel/core@7.29.0) @@ -52563,11 +52502,6 @@ snapshots: '@types/ember__error@4.0.6': {} - '@types/ember__object@4.0.12': - dependencies: - '@types/ember': 4.0.11 - '@types/rsvp': 4.0.9 - '@types/ember__object@4.0.12(@babel/core@7.29.0)': dependencies: '@types/ember': 4.0.11(@babel/core@7.29.0) @@ -52580,27 +52514,16 @@ snapshots: '@types/ember__polyfills@4.0.6': {} - '@types/ember__routing@4.0.23': - dependencies: - '@types/ember': 4.0.11 - '@types/ember__controller': 4.0.12 - '@types/ember__object': 4.0.12 - '@types/ember__service': 4.0.9 - '@types/ember__routing@4.0.23(@babel/core@7.29.0)': dependencies: '@types/ember': 4.0.11(@babel/core@7.29.0) - '@types/ember__controller': 4.0.12 + '@types/ember__controller': 4.0.12(@babel/core@7.29.0) '@types/ember__object': 4.0.12(@babel/core@7.29.0) - '@types/ember__service': 4.0.9 + '@types/ember__service': 4.0.9(@babel/core@7.29.0) transitivePeerDependencies: - '@babel/core' - supports-color - '@types/ember__runloop@4.0.10': - dependencies: - '@types/ember': 4.0.11 - '@types/ember__runloop@4.0.10(@babel/core@7.29.0)': dependencies: '@types/ember': 4.0.11(@babel/core@7.29.0) @@ -52608,10 +52531,6 @@ snapshots: - '@babel/core' - supports-color - '@types/ember__service@4.0.9': - dependencies: - '@types/ember__object': 4.0.12 - '@types/ember__service@4.0.9(@babel/core@7.29.0)': dependencies: '@types/ember__object': 4.0.12(@babel/core@7.29.0) @@ -52634,10 +52553,6 @@ snapshots: - '@babel/core' - supports-color - '@types/ember__utils@4.0.7': - dependencies: - '@types/ember': 4.0.11 - '@types/ember__utils@4.0.7(@babel/core@7.29.0)': dependencies: '@types/ember': 4.0.11(@babel/core@7.29.0) @@ -53024,7 +52939,7 @@ snapshots: '@types/serve-index@1.9.4': dependencies: - '@types/express': 4.17.25 + '@types/express': 5.0.6 '@types/serve-static@1.15.10': dependencies: @@ -53260,7 +53175,7 @@ snapshots: dependencies: '@typescript-eslint/scope-manager': 6.21.0 '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/typescript-estree': 6.21.0(supports-color@8.1.1)(typescript@6.0.3) + '@typescript-eslint/typescript-estree': 6.21.0(typescript@6.0.3) '@typescript-eslint/visitor-keys': 6.21.0 debug: 4.4.3(supports-color@8.1.1) eslint: 10.5.0(jiti@2.7.0) @@ -53361,7 +53276,7 @@ snapshots: '@typescript-eslint/type-utils@6.21.0(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1)(typescript@6.0.3)': dependencies: - '@typescript-eslint/typescript-estree': 6.21.0(supports-color@8.1.1)(typescript@6.0.3) + '@typescript-eslint/typescript-estree': 6.21.0(typescript@6.0.3) '@typescript-eslint/utils': 6.21.0(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) debug: 4.4.3(supports-color@8.1.1) eslint: 10.5.0(jiti@2.7.0) @@ -53415,7 +53330,7 @@ snapshots: '@typescript-eslint/types@8.61.1': {} - '@typescript-eslint/typescript-estree@6.21.0(supports-color@8.1.1)(typescript@6.0.3)': + '@typescript-eslint/typescript-estree@6.21.0(typescript@6.0.3)': dependencies: '@typescript-eslint/types': 6.21.0 '@typescript-eslint/visitor-keys': 6.21.0 @@ -53482,7 +53397,7 @@ snapshots: '@types/semver': 7.7.1 '@typescript-eslint/scope-manager': 6.21.0 '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/typescript-estree': 6.21.0(supports-color@8.1.1)(typescript@6.0.3) + '@typescript-eslint/typescript-estree': 6.21.0(typescript@6.0.3) eslint: 10.5.0(jiti@2.7.0) semver: 7.8.4 transitivePeerDependencies: @@ -65104,7 +65019,7 @@ snapshots: istanbul-lib-instrument@6.0.3: dependencies: - '@babel/core': 7.29.7 + '@babel/core': 7.29.0 '@babel/parser': 7.29.7 '@istanbuljs/schema': 0.1.6 istanbul-lib-coverage: 3.2.2 @@ -68006,7 +67921,7 @@ snapshots: native-run@2.0.3(supports-color@8.1.1): dependencies: - '@ionic/utils-fs': 3.1.7 + '@ionic/utils-fs': 3.1.7(supports-color@8.1.1) '@ionic/utils-terminal': 2.3.5 bplist-parser: 0.3.2 debug: 4.4.3(supports-color@8.1.1) diff --git a/shapes/gif/.browserslistrc b/shapes/gif/.browserslistrc new file mode 100644 index 00000000000..9cce1e55dd9 --- /dev/null +++ b/shapes/gif/.browserslistrc @@ -0,0 +1 @@ +extends @tsparticles/browserslist-config diff --git a/shapes/gif/LICENSE b/shapes/gif/LICENSE new file mode 100644 index 00000000000..bdc05f528fa --- /dev/null +++ b/shapes/gif/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Matteo Bruni + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/shapes/gif/README.md b/shapes/gif/README.md new file mode 100644 index 00000000000..71568df2283 --- /dev/null +++ b/shapes/gif/README.md @@ -0,0 +1,110 @@ +[![banner](https://particles.js.org/images/banner2.png)](https://particles.js.org) + +# tsParticles GIF Shape + +[![jsDelivr](https://data.jsdelivr.com/v1/package/npm/@tsparticles/shape-gif/badge)](https://www.jsdelivr.com/package/npm/@tsparticles/shape-gif) +[![npmjs](https://badge.fury.io/js/@tsparticles/shape-gif.svg)](https://www.npmjs.com/package/@tsparticles/shape-gif) +[![npmjs](https://img.shields.io/npm/dt/@tsparticles/shape-gif)](https://www.npmjs.com/package/@tsparticles/shape-gif) [![GitHub Sponsors](https://img.shields.io/github/sponsors/matteobruni)](https://github.com/sponsors/matteobruni) + +[tsParticles](https://github.com/tsparticles/tsparticles) additional GIF shape. + +## Quick checklist + +1. Install `@tsparticles/engine` (or use the CDN bundle below) +2. Call the package loader function(s) before `tsParticles.load(...)` +3. Apply the package options in your `tsParticles.load(...)` config + +## How to use it + +### CDN / Vanilla JS / jQuery + +The CDN/Vanilla version JS has one required file in vanilla configuration: + +Including the `tsparticles.shape.gif.min.js` file will export the function to load the shape: + +```javascript +loadGifShape; +``` + +### Usage + +Once the scripts are loaded you can set up `tsParticles` and the shape like this: + +```javascript +(async () => { + await loadGifShape(tsParticles); + + await tsParticles.load({ + id: "tsparticles", + options: { + /* options */ + /* here you can use particles.shape.type: "gif" */ + }, + }); +})(); +``` + +### ESM / CommonJS + +This package is compatible also with ES or CommonJS modules, firstly this needs to be installed, like this: + +```shell +$ npm install @tsparticles/shape-gif +``` + +or + +```shell +$ yarn add @tsparticles/shape-gif +``` + +Then you need to import it in the app, like this: + +```javascript +const { tsParticles } = require("@tsparticles/engine"); +const { loadGifShape } = require("@tsparticles/shape-gif"); + +(async () => { + await loadGifShape(tsParticles); +})(); +``` + +or + +```javascript +import { tsParticles } from "@tsparticles/engine"; +import { loadGifShape } from "@tsparticles/shape-gif"; + +(async () => { + await loadGifShape(tsParticles); +})(); +``` + +## Option mapping + +- Primary options key: `particles.shape.type: "gif"` +- Shape-specific options key: `particles.shape.options.gif` + +```json +{ + "particles": { + "shape": { + "type": "gif", + "options": { + "gif": {} + } + } + } +} +``` + +## Common pitfalls + +- Calling `tsParticles.load(...)` before `loadGifShape(...)` +- Verify required peer packages before enabling advanced options +- Change one option group at a time to isolate regressions quickly + +## Related docs + +- All packages catalog: +- Main docs: diff --git a/shapes/gif/eslint.config.js b/shapes/gif/eslint.config.js new file mode 100644 index 00000000000..a461ddbce48 --- /dev/null +++ b/shapes/gif/eslint.config.js @@ -0,0 +1,6 @@ +import tsParticlesESLintConfig from "@tsparticles/eslint-config"; +import { defineConfig } from "eslint/config"; + +export default defineConfig([ + tsParticlesESLintConfig, +]); diff --git a/shapes/gif/package.dist.json b/shapes/gif/package.dist.json new file mode 100644 index 00000000000..f2990182ff7 --- /dev/null +++ b/shapes/gif/package.dist.json @@ -0,0 +1,115 @@ +{ + "name": "@tsparticles/shape-gif", + "version": "4.2.1", + "description": "tsParticles gif shape", + "homepage": "https://particles.js.org", + "repository": { + "type": "git", + "url": "git+https://github.com/tsparticles/tsparticles.git", + "directory": "shapes/gif" + }, + "keywords": [ + "front-end", + "frontend", + "tsparticles", + "particles.js", + "particlesjs", + "particles", + "particle", + "canvas", + "jsparticles", + "xparticles", + "particles-js", + "particles-bg", + "particles-bg-vue", + "particles-ts", + "particles.ts", + "react-particles-js", + "react-particles.js", + "react-particles", + "react", + "reactjs", + "vue-particles", + "ngx-particles", + "angular-particles", + "particleground", + "vue", + "vuejs", + "preact", + "preactjs", + "jquery", + "angularjs", + "angular", + "typescript", + "javascript", + "animation", + "web", + "html5", + "web-design", + "webdesign", + "css", + "html", + "css3", + "animated", + "background", + "confetti", + "canvas", + "fireworks", + "fireworks-js", + "confetti-js", + "confettijs", + "fireworksjs", + "canvas-confetti", + "tsparticles-shape" + ], + "author": "Matteo Bruni ", + "license": "MIT", + "bugs": { + "url": "https://github.com/tsparticles/tsparticles/issues" + }, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/matteobruni" + }, + { + "type": "github", + "url": "https://github.com/sponsors/tsparticles" + }, + { + "type": "buymeacoffee", + "url": "https://www.buymeacoffee.com/matteobruni" + } + ], + "sideEffects": false, + "jsdelivr": "tsparticles.shape.gif.min.js", + "unpkg": "tsparticles.shape.gif.min.js", + "browser": "browser/index.js", + "main": "cjs/index.js", + "module": "esm/index.js", + "types": "types/index.d.ts", + "exports": { + ".": { + "types": "./types/index.d.ts", + "browser": "./browser/index.js", + "import": "./esm/index.js", + "require": "./cjs/index.js", + "default": "./esm/index.js" + }, + "./lazy": { + "types": "./types/index.lazy.d.ts", + "browser": "./browser/index.lazy.js", + "import": "./esm/index.lazy.js", + "require": "./cjs/index.lazy.js", + "default": "./esm/index.lazy.js" + }, + "./package.json": "./package.json" + }, + "peerDependencies": { + "@tsparticles/engine": "4.2.1" + }, + "publishConfig": { + "access": "public" + }, + "type": "module" +} diff --git a/shapes/gif/package.json b/shapes/gif/package.json new file mode 100644 index 00000000000..e0e50c1ace5 --- /dev/null +++ b/shapes/gif/package.json @@ -0,0 +1,95 @@ +{ + "name": "@tsparticles/shape-gif", + "version": "4.2.1", + "description": "tsParticles shape for rendering particles as animated GIFs", + "homepage": "https://particles.js.org", + "scripts": { + "build": "tsparticles-build", + "version": "tsparticles-build -d && git add package.dist.json && tsparticles-build -p -l && git add .", + "prepack": "pnpm run build" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/tsparticles/tsparticles.git", + "directory": "shapes/gif" + }, + "keywords": [ + "front-end", + "frontend", + "tsparticles", + "particles", + "particle", + "canvas", + "animation", + "web", + "html5", + "css3", + "animated", + "background", + "confetti", + "fireworks", + "typescript", + "javascript", + "tsparticles-shape", + "gif", + "animated-gif" + ], + "author": "Matteo Bruni ", + "license": "MIT", + "bugs": { + "url": "https://github.com/tsparticles/tsparticles/issues" + }, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/matteobruni" + }, + { + "type": "github", + "url": "https://github.com/sponsors/tsparticles" + }, + { + "type": "buymeacoffee", + "url": "https://www.buymeacoffee.com/matteobruni" + } + ], + "prettier": "@tsparticles/prettier-config", + "files": [ + "dist" + ], + "sideEffects": false, + "browser": "dist/browser/index.js", + "main": "dist/cjs/index.js", + "module": "dist/esm/index.js", + "types": "dist/types/index.d.ts", + "exports": { + ".": { + "types": "./dist/types/index.d.ts", + "browser": "./dist/browser/index.js", + "import": "./dist/esm/index.js", + "require": "./dist/cjs/index.js", + "default": "./dist/esm/index.js" + }, + "./lazy": { + "types": "./dist/types/index.lazy.d.ts", + "browser": "./dist/browser/index.lazy.js", + "import": "./dist/esm/index.lazy.js", + "require": "./dist/cjs/index.lazy.js", + "default": "./dist/esm/index.lazy.js" + }, + "./package.json": "./dist/package.json" + }, + "peerDependencies": { + "@tsparticles/engine": "workspace:*" + }, + "devDependencies": { + "@tsparticles/cli-build": "workspace:*", + "@tsparticles/engine": "workspace:*" + }, + "publishConfig": { + "access": "public", + "directory": "dist", + "linkDirectory": true + }, + "type": "module" +} diff --git a/shapes/gif/rollup.config.js b/shapes/gif/rollup.config.js new file mode 100644 index 00000000000..394d9b9589a --- /dev/null +++ b/shapes/gif/rollup.config.js @@ -0,0 +1,18 @@ +import { loadParticlesShape } from "@tsparticles/rollup-plugin"; +import { fileURLToPath } from "node:url"; +import fs from "fs-extra"; +import path from "node:path"; + +const __filename = fileURLToPath(import.meta.url), + __dirname = path.dirname(__filename), + rootPkgPath = path.join(__dirname, "package.json"), + pkg = await fs.readJson(rootPkgPath), + version = pkg.version; + +export default loadParticlesShape({ + moduleName: "gif", + shapeName: "Gif", + version, + dir: __dirname, + progress: false, +}); diff --git a/shapes/gif/src/GifDrawer.ts b/shapes/gif/src/GifDrawer.ts new file mode 100644 index 00000000000..755f1fd740a --- /dev/null +++ b/shapes/gif/src/GifDrawer.ts @@ -0,0 +1,71 @@ +import type { Container, IShapeDrawData, IShapeDrawer } from "@tsparticles/engine"; +import { decodeGIF, drawGif, getGIFLoopAmount } from "./GifUtils/Utils.js"; +import type { GIF } from "./GifUtils/Types/GIF.js"; +import type { GifParticle } from "./types.js"; +import type { IGifShape } from "./IGifShape.js"; + +export class GifDrawer implements IShapeDrawer { + readonly #container: Container; + readonly #gifCache: Map; + + constructor(container: Container) { + this.#container = container; + this.#gifCache = new Map(); + } + + destroy(): void { + this.#gifCache.clear(); + } + + draw(data: IShapeDrawData): void { + const { context, opacity } = data; + + if (!data.particle.gifData) return; + + context.globalAlpha = opacity; + drawGif(data, this.#container.canvas.render.settings); + context.globalAlpha = 1; + } + + loadShape(particle: GifParticle): void { + const shapeData = particle.shapeData as IGifShape | undefined; + + if (!shapeData?.src) return; + + if (this.#gifCache.has(shapeData.src)) return; + + void decodeGIF(shapeData.src, { colorSpace: "srgb" }).then(gifData => { + this.#gifCache.set(shapeData.src, gifData); + }); + } + + particleInit(container: Container, particle: GifParticle): void { + const shapeData = particle.shapeData as IGifShape | undefined; + + if (!shapeData?.src) return; + + const gifData = this.#gifCache.get(shapeData.src); + + if (!gifData) { + setTimeout((): void => { + this.particleInit(container, particle); + }); + + return; + } + + particle.gifData = gifData; + particle.gifFrame = 0; + particle.gifTime = 0; + particle.gifLoopCount = getGIFLoopAmount(gifData); + + // eslint-disable-next-line @typescript-eslint/no-magic-numbers + if (particle.gifLoopCount === 0) { + particle.gifLoopCount = Number.POSITIVE_INFINITY; + } + + if (shapeData.loopCount !== undefined) { + particle.gifLoopCount = shapeData.loopCount; + } + } +} diff --git a/shapes/image/src/GifUtils/ByteStream.ts b/shapes/gif/src/GifUtils/ByteStream.ts similarity index 100% rename from shapes/image/src/GifUtils/ByteStream.ts rename to shapes/gif/src/GifUtils/ByteStream.ts diff --git a/shapes/image/src/GifUtils/Constants.ts b/shapes/gif/src/GifUtils/Constants.ts similarity index 100% rename from shapes/image/src/GifUtils/Constants.ts rename to shapes/gif/src/GifUtils/Constants.ts diff --git a/shapes/image/src/GifUtils/Enums/DisposalMethod.ts b/shapes/gif/src/GifUtils/Enums/DisposalMethod.ts similarity index 100% rename from shapes/image/src/GifUtils/Enums/DisposalMethod.ts rename to shapes/gif/src/GifUtils/Enums/DisposalMethod.ts diff --git a/shapes/image/src/GifUtils/Types/ApplicationExtension.ts b/shapes/gif/src/GifUtils/Types/ApplicationExtension.ts similarity index 100% rename from shapes/image/src/GifUtils/Types/ApplicationExtension.ts rename to shapes/gif/src/GifUtils/Types/ApplicationExtension.ts diff --git a/shapes/image/src/GifUtils/Types/Frame.ts b/shapes/gif/src/GifUtils/Types/Frame.ts similarity index 100% rename from shapes/image/src/GifUtils/Types/Frame.ts rename to shapes/gif/src/GifUtils/Types/Frame.ts diff --git a/shapes/image/src/GifUtils/Types/GIF.ts b/shapes/gif/src/GifUtils/Types/GIF.ts similarity index 100% rename from shapes/image/src/GifUtils/Types/GIF.ts rename to shapes/gif/src/GifUtils/Types/GIF.ts diff --git a/shapes/image/src/GifUtils/Types/GIFDataHeaders.ts b/shapes/gif/src/GifUtils/Types/GIFDataHeaders.ts similarity index 100% rename from shapes/image/src/GifUtils/Types/GIFDataHeaders.ts rename to shapes/gif/src/GifUtils/Types/GIFDataHeaders.ts diff --git a/shapes/image/src/GifUtils/Types/GIFProgressCallbackFunction.ts b/shapes/gif/src/GifUtils/Types/GIFProgressCallbackFunction.ts similarity index 100% rename from shapes/image/src/GifUtils/Types/GIFProgressCallbackFunction.ts rename to shapes/gif/src/GifUtils/Types/GIFProgressCallbackFunction.ts diff --git a/shapes/image/src/GifUtils/Types/PlainTextData.ts b/shapes/gif/src/GifUtils/Types/PlainTextData.ts similarity index 100% rename from shapes/image/src/GifUtils/Types/PlainTextData.ts rename to shapes/gif/src/GifUtils/Types/PlainTextData.ts diff --git a/shapes/image/src/GifUtils/Utils.ts b/shapes/gif/src/GifUtils/Utils.ts similarity index 93% rename from shapes/image/src/GifUtils/Utils.ts rename to shapes/gif/src/GifUtils/Utils.ts index ca6b0c7cd1e..ed8d31516a0 100644 --- a/shapes/image/src/GifUtils/Utils.ts +++ b/shapes/gif/src/GifUtils/Utils.ts @@ -1,6 +1,5 @@ /* eslint-disable @typescript-eslint/no-magic-numbers */ /* eslint-disable @typescript-eslint/no-non-null-assertion */ -import { type IImage, type ImageParticle, loadImage } from "../Utils.js"; import { type IRgb, type IRgba, type IShapeDrawData, half, originPoint } from "@tsparticles/engine"; import { InterlaceOffsets, InterlaceSteps } from "./Constants.js"; import type { ApplicationExtension } from "./Types/ApplicationExtension.js"; @@ -9,6 +8,7 @@ import { DisposalMethod } from "./Enums/DisposalMethod.js"; import type { GIF } from "./Types/GIF.js"; import { GIFDataHeaders } from "./Types/GIFDataHeaders.js"; import type { GIFProgressCallbackFunction } from "./Types/GIFProgressCallbackFunction.js"; +import type { GifParticle } from "../types.js"; const defaultFrame = 0, initialTime = 0, @@ -638,15 +638,15 @@ export async function decodeGIF( * @param data - The data to handle * @param canvasSettings - The canvasSettings */ -export function drawGif(data: IShapeDrawData, canvasSettings?: CanvasRenderingContext2DSettings): void { +export function drawGif(data: IShapeDrawData, canvasSettings?: CanvasRenderingContext2DSettings): void { const { context, radius, particle, delta } = data, - image = particle.image; + gifData = particle.gifData; - if (!image?.gifData || !image.gif) { + if (!gifData) { return; } - const offscreenCanvas = new OffscreenCanvas(image.gifData.width, image.gifData.height), + const offscreenCanvas = new OffscreenCanvas(gifData.width, gifData.height), offscreenContext = offscreenCanvas.getContext("2d", canvasSettings); if (!offscreenContext) { @@ -658,12 +658,10 @@ export function drawGif(data: IShapeDrawData, canvasSettings?: Ca offscreenContext.clearRect(originPoint.x, originPoint.y, offscreenCanvas.width, offscreenCanvas.height); - particle.gifLoopCount ??= image.gifLoopCount ?? defaultLoopCount; - let frameIndex = particle.gifFrame ?? defaultFrame; - const pos = { x: -image.gifData.width * half, y: -image.gifData.height * half }, - frame = image.gifData.frames[frameIndex]!; + const pos = { x: -gifData.width * half, y: -gifData.height * half }, + frame = gifData.frames[frameIndex]!; particle.gifTime ??= initialTime; @@ -671,7 +669,7 @@ export function drawGif(data: IShapeDrawData, canvasSettings?: Ca return; } - context.scale(radius / image.gifData.width, radius / image.gifData.height); + context.scale(radius / gifData.width, radius / gifData.height); switch (frame.disposalMethod) { case DisposalMethod.UndefinedA: // ! fall through @@ -699,10 +697,10 @@ export function drawGif(data: IShapeDrawData, canvasSettings?: Ca offscreenContext.clearRect(originPoint.x, originPoint.y, offscreenCanvas.width, offscreenCanvas.height); - if (!image.gifData.globalColorTable.length) { - offscreenContext.putImageData(image.gifData.frames[firstIndex]!.image, pos.x + frame.left, pos.y + frame.top); + if (!gifData.globalColorTable.length) { + offscreenContext.putImageData(gifData.frames[firstIndex]!.image, pos.x + frame.left, pos.y + frame.top); } else { - offscreenContext.putImageData(image.gifData.backgroundImage, pos.x, pos.y); + offscreenContext.putImageData(gifData.backgroundImage, pos.x, pos.y); } break; @@ -730,8 +728,8 @@ export function drawGif(data: IShapeDrawData, canvasSettings?: Ca if (particle.gifTime > frame.delayTime) { particle.gifTime -= frame.delayTime; - if (++frameIndex >= image.gifData.frames.length) { - if (--particle.gifLoopCount <= defaultLoopCount) { + if (++frameIndex >= gifData.frames.length) { + if (particle.gifLoopCount == null || --particle.gifLoopCount <= defaultLoopCount) { return; } @@ -744,34 +742,5 @@ export function drawGif(data: IShapeDrawData, canvasSettings?: Ca particle.gifFrame = frameIndex; } - context.scale(image.gifData.width / radius, image.gifData.height / radius); -} - -/** - * Loads the GIF image - * @param image - the image to load - * @param canvasSettings - settings for the canvas used to render the GIF frames - */ -export async function loadGifImage(image: IImage, canvasSettings: CanvasRenderingContext2DSettings): Promise { - if (image.type !== "gif") { - await loadImage(image); - - return; - } - - image.loading = true; - - try { - image.gifData = await decodeGIF(image.source, canvasSettings); - - image.gifLoopCount = getGIFLoopAmount(image.gifData); - - if (!image.gifLoopCount) { - image.gifLoopCount = Infinity; - } - } catch { - image.error = true; - } - - image.loading = false; + context.scale(gifData.width / radius, gifData.height / radius); } diff --git a/shapes/gif/src/IGifShape.ts b/shapes/gif/src/IGifShape.ts new file mode 100644 index 00000000000..78839cc0a75 --- /dev/null +++ b/shapes/gif/src/IGifShape.ts @@ -0,0 +1,9 @@ +import type { IShapeValues } from "@tsparticles/engine"; + +export interface IGifShape extends IShapeValues { + height: number; + loopCount?: number; + name?: string; + src: string; + width: number; +} diff --git a/shapes/gif/src/browser.ts b/shapes/gif/src/browser.ts new file mode 100644 index 00000000000..f5f4f1f7573 --- /dev/null +++ b/shapes/gif/src/browser.ts @@ -0,0 +1,10 @@ +import { loadGifShape } from "./index.js"; + +const globalObject = globalThis as typeof globalThis & { + __tsParticlesInternals?: Record; + loadGifShape?: typeof loadGifShape; +}; +globalObject.__tsParticlesInternals = globalObject.__tsParticlesInternals ?? {}; +globalObject.loadGifShape = loadGifShape; + +export * from "./index.js"; diff --git a/shapes/gif/src/index.lazy.ts b/shapes/gif/src/index.lazy.ts new file mode 100644 index 00000000000..8fc44230d03 --- /dev/null +++ b/shapes/gif/src/index.lazy.ts @@ -0,0 +1,17 @@ +import { type Engine } from "@tsparticles/engine/lazy"; + +declare const __VERSION__: string; + +/** + * Loads the GIF shape in the given engine + * @param engine - the engine where the GIF shape is going to be added + */ +export async function loadGifShape(engine: Engine): Promise { + engine.checkVersion(__VERSION__); + + await engine.pluginManager.register(async e => { + const { GifDrawer } = await import("./GifDrawer.js"); + + e.pluginManager.addShape(["gif", "gifs"], container => Promise.resolve(new GifDrawer(container))); + }); +} diff --git a/shapes/gif/src/index.ts b/shapes/gif/src/index.ts new file mode 100644 index 00000000000..0472917683a --- /dev/null +++ b/shapes/gif/src/index.ts @@ -0,0 +1,16 @@ +import { type Engine } from "@tsparticles/engine"; +import { GifDrawer } from "./GifDrawer.js"; + +declare const __VERSION__: string; + +/** + * Loads the GIF shape in the given engine + * @param engine - the engine where the GIF shape is going to be added + */ +export async function loadGifShape(engine: Engine): Promise { + engine.checkVersion(__VERSION__); + + await engine.pluginManager.register(e => { + e.pluginManager.addShape(["gif", "gifs"], container => Promise.resolve(new GifDrawer(container))); + }); +} diff --git a/shapes/gif/src/types.ts b/shapes/gif/src/types.ts new file mode 100644 index 00000000000..0c103c78e7f --- /dev/null +++ b/shapes/gif/src/types.ts @@ -0,0 +1,9 @@ +import type { GIF } from "./GifUtils/Types/GIF.js"; +import type { Particle } from "@tsparticles/engine"; + +export type GifParticle = Particle & { + gifData?: GIF; + gifFrame?: number; + gifLoopCount?: number; + gifTime?: number; +}; diff --git a/shapes/gif/tsconfig.base.json b/shapes/gif/tsconfig.base.json new file mode 100644 index 00000000000..2b489b6aa1c --- /dev/null +++ b/shapes/gif/tsconfig.base.json @@ -0,0 +1,9 @@ +{ + "extends": "@tsparticles/tsconfig/dist/tsconfig.base.json", + "compilerOptions": { + "rootDir": "./src" + }, + "include": [ + "./src" + ] +} diff --git a/shapes/gif/tsconfig.browser.json b/shapes/gif/tsconfig.browser.json new file mode 100644 index 00000000000..d114ea7d433 --- /dev/null +++ b/shapes/gif/tsconfig.browser.json @@ -0,0 +1,6 @@ +{ + "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/dist/tsconfig.browser.json"], + "compilerOptions": { + "outDir": "./dist/browser" + } +} diff --git a/shapes/gif/tsconfig.json b/shapes/gif/tsconfig.json new file mode 100644 index 00000000000..4ebb3ae88eb --- /dev/null +++ b/shapes/gif/tsconfig.json @@ -0,0 +1,6 @@ +{ + "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/dist/tsconfig.json"], + "compilerOptions": { + "outDir": "./dist/cjs" + } +} diff --git a/shapes/gif/tsconfig.module.json b/shapes/gif/tsconfig.module.json new file mode 100644 index 00000000000..7faa233aa42 --- /dev/null +++ b/shapes/gif/tsconfig.module.json @@ -0,0 +1,6 @@ +{ + "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/dist/tsconfig.module.json"], + "compilerOptions": { + "outDir": "./dist/esm" + } +} diff --git a/shapes/gif/tsconfig.types.json b/shapes/gif/tsconfig.types.json new file mode 100644 index 00000000000..01755624ba5 --- /dev/null +++ b/shapes/gif/tsconfig.types.json @@ -0,0 +1,6 @@ +{ + "extends": ["./tsconfig.base.json", "@tsparticles/tsconfig/dist/tsconfig.types.json"], + "compilerOptions": { + "outDir": "./dist/types" + } +} diff --git a/shapes/gif/typedoc.json b/shapes/gif/typedoc.json new file mode 100644 index 00000000000..828c28afd22 --- /dev/null +++ b/shapes/gif/typedoc.json @@ -0,0 +1,15 @@ +{ + "projectDocuments": ["../markdown/**/*.md"], + "entryPoints": [ + "./src/" + ], + "entryPointStrategy": "expand", + "name": "tsParticles GIF Shape", + "includeVersion": true, + "hideGenerator": true, + "out": "./docs", + "validation": { + "invalidLink": true, + "notDocumented": true + } +} diff --git a/shapes/image/src/IImageShape.ts b/shapes/image/src/IImageShape.ts index be20891330d..ea27dc58938 100644 --- a/shapes/image/src/IImageShape.ts +++ b/shapes/image/src/IImageShape.ts @@ -1,7 +1,6 @@ import type { IShapeValues } from "@tsparticles/engine"; export interface IImageShape extends IShapeValues { - gif: boolean; height: number; name: string; replaceColor: boolean; diff --git a/shapes/image/src/ImageDrawer.ts b/shapes/image/src/ImageDrawer.ts index 628c4428122..c401b244f42 100644 --- a/shapes/image/src/ImageDrawer.ts +++ b/shapes/image/src/ImageDrawer.ts @@ -9,7 +9,6 @@ import { import { type IImage, type IParticleImage, type ImageParticle, replaceImageColor, shapeTypes } from "./Utils.js"; import type { ImageContainer, ImageEngine } from "./types.js"; import type { IImageShape } from "./IImageShape.js"; -import { drawGif } from "./GifUtils/Utils.js"; const sides = 12; @@ -45,9 +44,7 @@ export class ImageDrawer implements IShapeDrawer { context.globalAlpha = opacity; - if (image.gif && image.gifData) { - drawGif(data, this.#container.canvas.render.settings); - } else if (element) { + if (element) { const ratio = image.ratio, pos = { x: -radius, @@ -155,9 +152,6 @@ export class ImageDrawer implements IShapeDrawer { color, data: image, element: image.element, - gif: image.gif, - gifData: image.gifData, - gifLoopCount: image.gifLoopCount, loaded: true, ratio: imageData.width && imageData.height ? imageData.width / imageData.height : (image.ratio ?? defaultRatio), @@ -193,7 +187,6 @@ export class ImageDrawer implements IShapeDrawer { } await this.#engine.loadImage(container, { - gif: imageShape.gif, name: imageShape.name, replaceColor: imageShape.replaceColor, src: imageShape.src, diff --git a/shapes/image/src/Options/Classes/Preload.ts b/shapes/image/src/Options/Classes/Preload.ts index db1c856067c..cb43204996c 100644 --- a/shapes/image/src/Options/Classes/Preload.ts +++ b/shapes/image/src/Options/Classes/Preload.ts @@ -2,7 +2,6 @@ import { type IOptionLoader, type RecursivePartial, isNull, loadProperty } from import type { IPreload } from "../Interfaces/IPreload.js"; export class Preload implements IPreload, IOptionLoader { - gif = false; height?: number; name?: string; replaceColor?: boolean; @@ -14,7 +13,6 @@ export class Preload implements IPreload, IOptionLoader { return; } - loadProperty(this, "gif", data.gif); loadProperty(this, "height", data.height); loadProperty(this, "name", data.name); loadProperty(this, "replaceColor", data.replaceColor); diff --git a/shapes/image/src/Options/Interfaces/IPreload.ts b/shapes/image/src/Options/Interfaces/IPreload.ts index 63dbbc7be79..c7a6dd8cbd1 100644 --- a/shapes/image/src/Options/Interfaces/IPreload.ts +++ b/shapes/image/src/Options/Interfaces/IPreload.ts @@ -1,7 +1,5 @@ /** The preload image options */ export interface IPreload { - /** Enables gif support */ - gif: boolean; /** The image height */ height?: number; /** The image name */ diff --git a/shapes/image/src/Utils.ts b/shapes/image/src/Utils.ts index ce5da98e584..0b0f5c31f92 100644 --- a/shapes/image/src/Utils.ts +++ b/shapes/image/src/Utils.ts @@ -1,5 +1,4 @@ import { type IHsl, type Particle, getLogger, getStyleFromHsl } from "@tsparticles/engine"; -import type { GIF } from "./GifUtils/Types/GIF.js"; import type { IImageShape } from "./IImageShape.js"; /** Image shape types */ @@ -15,9 +14,6 @@ export interface IImage { color?: IHsl; element?: HTMLImageElement; error: boolean; - gif: boolean; - gifData?: GIF; - gifLoopCount?: number; loading: boolean; name: string; ratio?: number; @@ -34,9 +30,6 @@ export interface IParticleImage { color?: IHsl; data: IImage; element?: HTMLImageElement; - gif: boolean; - gifData?: GIF; - gifLoopCount?: number; loaded?: boolean; ratio: number; replaceColor: boolean; @@ -47,9 +40,6 @@ export interface IParticleImage { * The Particle extension type */ export type ImageParticle = Particle & { - gifFrame?: number; - gifLoopCount?: number; - gifTime?: number; image?: IParticleImage; }; @@ -163,7 +153,6 @@ export function replaceImageColor( const svgColoredData = replaceColorSvg(image, color, particle.opacity?.value ?? defaultOpacity, hdr), imageRes: IParticleImage = { color, - gif: imageData.gif, data: { ...image, svgData: svgColoredData, diff --git a/shapes/image/src/index.lazy.ts b/shapes/image/src/index.lazy.ts index 1e36952bb7e..70db884d9e6 100644 --- a/shapes/image/src/index.lazy.ts +++ b/shapes/image/src/index.lazy.ts @@ -42,7 +42,6 @@ function addLoadImageToEngine(engine: ImageEngine): void { try { const image: IImage = { - gif: data.gif, name: data.name ?? data.src, source: data.src, type: data.src.substring(data.src.length - extLength), @@ -58,11 +57,7 @@ function addLoadImageToEngine(engine: ImageEngine): void { let imageFunc: (image: IImage) => Promise; - if (data.gif) { - const { loadGifImage } = await import("./GifUtils/Utils.js"); - - imageFunc = (img): Promise => loadGifImage(img, { colorSpace: "srgb" }); - } else if (data.replaceColor) { + if (data.replaceColor) { const { downloadSvgImage } = await import("./Utils.js"); imageFunc = downloadSvgImage; diff --git a/shapes/image/src/index.ts b/shapes/image/src/index.ts index 73eb68b6066..7966a77fcf5 100644 --- a/shapes/image/src/index.ts +++ b/shapes/image/src/index.ts @@ -3,7 +3,6 @@ import type { ImageContainer, ImageEngine } from "./types.js"; import type { IPreload } from "./Options/Interfaces/IPreload.js"; import { ImageDrawer } from "./ImageDrawer.js"; import { ImagePreloaderPlugin } from "./ImagePreloader.js"; -import { loadGifImage } from "./GifUtils/Utils.js"; const extLength = 3; @@ -45,7 +44,6 @@ function addLoadImageToEngine(engine: ImageEngine): void { try { const image: IImage = { - gif: data.gif, name: data.name ?? data.src, source: data.src, type: data.src.substring(data.src.length - extLength), @@ -61,9 +59,7 @@ function addLoadImageToEngine(engine: ImageEngine): void { let imageFunc: (image: IImage) => Promise; - if (data.gif) { - imageFunc = (img): Promise => loadGifImage(img, { colorSpace: "srgb" }); - } else if (data.replaceColor) { + if (data.replaceColor) { imageFunc = downloadSvgImage; } else { imageFunc = loadImage; diff --git a/utils/configs/src/g/gifs.ts b/utils/configs/src/g/gifs.ts index 4f7ce6ba10b..911cdee42f3 100644 --- a/utils/configs/src/g/gifs.ts +++ b/utils/configs/src/g/gifs.ts @@ -33,14 +33,13 @@ const options: ISourceOptions = { }, shape: { options: { - image: { - gif: true, + gif: { height: 200, src: "https://particles.js.org/images/mario.gif", width: 200, }, }, - type: "image", + type: "gif", }, size: { value: { From 74a28cfb1fbb1523c33f93e999963a41fb4bf186 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 19 Jun 2026 22:17:12 +0000 Subject: [PATCH 04/28] build(deps): bump @nx/devkit from 22.7.5 to 23.0.0 Bumps [@nx/devkit](https://github.com/nrwl/nx/tree/HEAD/packages/devkit) from 22.7.5 to 23.0.0. - [Release notes](https://github.com/nrwl/nx/releases) - [Commits](https://github.com/nrwl/nx/commits/23.0.0/packages/devkit) --- updated-dependencies: - dependency-name: "@nx/devkit" dependency-version: 23.0.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- cli/packages/nx-plugin/package.json | 2 +- pnpm-lock.yaml | 1628 +++++++++++++++++++++++---- 2 files changed, 1409 insertions(+), 221 deletions(-) diff --git a/cli/packages/nx-plugin/package.json b/cli/packages/nx-plugin/package.json index ca1b502ff68..bbd143ffbbd 100644 --- a/cli/packages/nx-plugin/package.json +++ b/cli/packages/nx-plugin/package.json @@ -31,7 +31,7 @@ "nx": "^22" }, "dependencies": { - "@nx/devkit": "^22.7.5", + "@nx/devkit": "^23.0.0", "@tsparticles/eslint-config": "workspace:*", "@tsparticles/prettier-config": "workspace:*", "@tsparticles/tsconfig": "workspace:*", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f312de5b6de..dfd0e4f04d1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2803,8 +2803,8 @@ importers: cli/packages/nx-plugin: dependencies: '@nx/devkit': - specifier: ^22.7.5 - version: 22.7.5(nx@22.7.5(@swc-node/register@1.11.1(@swc/core@1.15.41)(@swc/types@0.1.26)(typescript@6.0.3))(@swc/core@1.15.41)) + specifier: ^23.0.0 + version: 23.0.0(nx@22.7.5(@swc-node/register@1.11.1(@swc/core@1.15.41)(@swc/types@0.1.26)(typescript@6.0.3))(@swc/core@1.15.41)) '@tsparticles/eslint-config': specifier: workspace:* version: link:../../utils/eslint-config @@ -3827,7 +3827,7 @@ importers: version: 7.0.1(@babel/core@7.29.0)(@types/node@25.9.3)(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(nunjucks@3.2.4(chokidar@3.6.0))(pug@3.0.4)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(supports-color@8.1.1)(underscore@1.13.8) ember-cli-dependency-checker: specifier: ^3.4.0 - version: 3.4.0(@babel/core@7.29.0)(ember-cli@7.0.1(@babel/core@7.29.0)(@types/node@25.9.3)(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(nunjucks@3.2.4(chokidar@3.6.0))(pug@3.0.4)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(underscore@1.13.8))(eslint@10.5.0(jiti@2.7.0)) + version: 3.4.0(@babel/core@7.29.0)(ember-cli@7.0.1(@babel/core@7.29.0)(@types/node@25.9.3)(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(nunjucks@3.2.4(chokidar@3.6.0))(pug@3.0.4)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(supports-color@8.1.1)(underscore@1.13.8))(eslint@10.5.0(jiti@2.7.0)) ember-cli-inject-live-reload: specifier: ^2.1.0 version: 2.1.0 @@ -4698,7 +4698,7 @@ importers: version: 17.0.7 nuxt: specifier: ^3.21.8 - version: 3.21.8(@parcel/watcher@2.5.6)(@types/node@25.9.3)(@vue/compiler-sfc@3.5.38)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(encoding@0.1.13)(eslint@10.5.0(jiti@2.7.0))(ioredis@5.11.1)(less@4.6.6)(lightningcss@1.32.0)(magicast@0.5.3)(meow@14.1.0)(optionator@0.9.4)(rolldown@1.1.1)(rollup-plugin-visualizer@7.0.1(rolldown@1.1.1)(rollup@4.62.0))(rollup@4.62.0)(sass@1.101.0)(srvx@0.11.16)(stylelint@16.26.1(typescript@6.0.3))(stylus@0.64.0)(supports-color@8.1.1)(terser@5.48.0)(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.5(typescript@6.0.3))(xml2js@0.6.2)(yaml@2.9.0) + version: 3.21.8(@parcel/watcher@2.5.6)(@types/node@25.9.3)(@vue/compiler-sfc@3.5.38)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(encoding@0.1.13)(eslint@10.5.0(jiti@2.7.0))(ioredis@5.11.1)(less@4.6.6)(lightningcss@1.32.0)(magicast@0.5.3)(meow@14.1.0)(optionator@0.9.4)(rolldown@1.1.1)(rollup-plugin-visualizer@7.0.1(rolldown@1.1.1)(rollup@4.62.0))(rollup@4.62.0)(sass@1.101.0)(srvx@0.11.16)(stylelint@16.26.1(typescript@6.0.3))(stylus@0.64.0)(supports-color@8.1.1)(terser@5.48.0)(typescript@6.0.3)(vite@8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.5(typescript@6.0.3))(xml2js@0.6.2)(yaml@2.9.0) prettier: specifier: ^3.8.4 version: 3.8.4 @@ -4767,7 +4767,7 @@ importers: version: 17.0.7 nuxt: specifier: ^4.4.8 - version: 4.4.8(@babel/plugin-proposal-decorators@7.29.7(@babel/core@8.0.1))(@babel/plugin-syntax-jsx@7.29.7(@babel/core@8.0.1))(@babel/plugin-syntax-typescript@7.29.7(@babel/core@8.0.1))(@parcel/watcher@2.5.6)(@rollup/plugin-babel@7.1.0(@babel/core@8.0.1)(@types/babel__core@7.20.5)(rollup@4.62.0))(@types/node@25.9.3)(@vue/compiler-sfc@3.5.38)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(encoding@0.1.13)(eslint@10.5.0(jiti@2.7.0))(ioredis@5.11.1)(less@4.6.6)(lightningcss@1.32.0)(magicast@0.5.3)(meow@14.1.0)(optionator@0.9.4)(rolldown@1.1.1)(rollup-plugin-visualizer@7.0.1(rolldown@1.1.1)(rollup@4.62.0))(rollup@4.62.0)(sass@1.101.0)(stylelint@16.26.1(typescript@6.0.3))(stylus@0.64.0)(terser@5.48.0)(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.5(typescript@6.0.3))(xml2js@0.6.2)(yaml@2.9.0) + version: 4.4.8(@babel/plugin-proposal-decorators@7.29.7(@babel/core@8.0.1))(@babel/plugin-syntax-jsx@7.29.7(@babel/core@8.0.1))(@babel/plugin-syntax-typescript@7.29.7(@babel/core@8.0.1))(@parcel/watcher@2.5.6)(@rollup/plugin-babel@7.1.0(@babel/core@8.0.1)(@types/babel__core@7.20.5)(rollup@4.62.2))(@types/node@25.9.3)(@vue/compiler-sfc@3.5.38)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(encoding@0.1.13)(eslint@10.5.0(jiti@2.7.0))(ioredis@5.11.1)(less@4.6.6)(lightningcss@1.32.0)(magicast@0.5.3)(meow@14.1.0)(optionator@0.9.4)(rolldown@1.1.1)(rollup-plugin-visualizer@7.0.1(rolldown@1.1.1)(rollup@4.62.2))(rollup@4.62.0)(sass@1.101.0)(stylelint@16.26.1(typescript@6.0.3))(stylus@0.64.0)(terser@5.48.0)(typescript@6.0.3)(vite@8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.5(typescript@6.0.3))(xml2js@0.6.2)(yaml@2.9.0) prettier: specifier: ^3.8.4 version: 3.8.4 @@ -4840,7 +4840,7 @@ importers: version: 3.0.0 preact-cli: specifier: ^3.5.1 - version: 3.5.1(@types/babel__core@7.20.5)(encoding@0.1.13)(eslint@10.5.0(jiti@2.7.0))(preact-render-to-string@6.7.0(preact@10.29.2))(preact@10.29.2)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3))(typescript@6.0.3)(vue-template-compiler@2.7.16)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) + version: 3.5.1(@types/babel__core@7.20.5)(encoding@0.1.13)(eslint@10.5.0(jiti@2.7.0))(preact-render-to-string@6.7.0(preact@10.29.2))(preact@10.29.2)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@26.0.0)(typescript@6.0.3))(typescript@6.0.3)(vue-template-compiler@2.7.16)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) prettier: specifier: ^3.8.4 version: 3.8.4 @@ -5140,7 +5140,7 @@ importers: version: 10.1.8(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-svelte: specifier: ^3.19.0 - version: 3.19.0(eslint@10.5.0(jiti@2.7.0))(svelte@5.56.3(@typescript-eslint/types@8.61.1))(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3)) + version: 3.19.0(eslint@10.5.0(jiti@2.7.0))(svelte@5.56.3(@typescript-eslint/types@8.61.1))(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@26.0.0)(typescript@6.0.3)) prettier: specifier: ^3.8.4 version: 3.8.4 @@ -9956,7 +9956,7 @@ importers: version: link:../../../engine/dist vitest: specifier: ^4.1.6 - version: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@25.9.3)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.9)(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3))(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) + version: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@25.9.3)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.9)(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3))(vite@8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) publishDirectory: dist plugins/colors/hsl: @@ -9969,7 +9969,7 @@ importers: version: link:../../../engine/dist vitest: specifier: ^4.1.6 - version: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@25.9.3)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.9)(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3))(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) + version: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@25.9.3)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.9)(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3))(vite@8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) publishDirectory: dist plugins/colors/hsv: @@ -9982,7 +9982,7 @@ importers: version: link:../../../engine/dist vitest: specifier: ^4.1.6 - version: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@25.9.3)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.9)(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3))(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) + version: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@25.9.3)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.9)(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3))(vite@8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) publishDirectory: dist plugins/colors/hwb: @@ -9995,7 +9995,7 @@ importers: version: link:../../../engine/dist vitest: specifier: ^4.1.6 - version: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@25.9.3)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.9)(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3))(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) + version: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@25.9.3)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.9)(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3))(vite@8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) publishDirectory: dist plugins/colors/lab: @@ -10008,7 +10008,7 @@ importers: version: link:../../../engine/dist vitest: specifier: ^4.1.6 - version: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@25.9.3)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.9)(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3))(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) + version: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@25.9.3)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.9)(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3))(vite@8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) publishDirectory: dist plugins/colors/lch: @@ -10021,7 +10021,7 @@ importers: version: link:../../../engine/dist vitest: specifier: ^4.1.6 - version: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@25.9.3)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.9)(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3))(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) + version: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@25.9.3)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.9)(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3))(vite@8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) publishDirectory: dist plugins/colors/named: @@ -10034,7 +10034,7 @@ importers: version: link:../../../engine/dist vitest: specifier: ^4.1.6 - version: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@25.9.3)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.9)(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3))(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) + version: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@25.9.3)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.9)(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3))(vite@8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) publishDirectory: dist plugins/colors/oklab: @@ -10047,7 +10047,7 @@ importers: version: link:../../../engine/dist vitest: specifier: ^4.1.6 - version: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@25.9.3)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.9)(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3))(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) + version: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@25.9.3)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.9)(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3))(vite@8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) publishDirectory: dist plugins/colors/oklch: @@ -10060,7 +10060,7 @@ importers: version: link:../../../engine/dist vitest: specifier: ^4.1.6 - version: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@25.9.3)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.9)(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3))(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) + version: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@25.9.3)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.9)(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3))(vite@8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) publishDirectory: dist plugins/colors/rgb: @@ -10073,7 +10073,7 @@ importers: version: link:../../../engine/dist vitest: specifier: ^4.1.6 - version: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@25.9.3)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.9)(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3))(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) + version: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@25.9.3)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.9)(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3))(vite@8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) publishDirectory: dist plugins/easings/back: @@ -11722,7 +11722,7 @@ importers: version: 3.0.2(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3)) vitest: specifier: ^4.1.9 - version: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@25.9.3)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.9)(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3))(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) + version: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@25.9.3)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.9)(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3))(vite@8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) websites/confetti: dependencies: @@ -12776,7 +12776,7 @@ importers: version: link:../../cli/utils/prettier-config astro: specifier: ^6.4.7 - version: 6.4.7(@types/node@25.9.3)(db0@0.3.4)(ioredis@5.11.1)(jiti@2.7.0)(less@4.6.6)(lightningcss@1.32.0)(rollup@4.62.0)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) + version: 6.4.7(@types/node@26.0.0)(db0@0.3.4)(ioredis@5.11.1)(jiti@2.7.0)(less@4.6.6)(lightningcss@1.32.0)(rollup@4.62.2)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) prettier: specifier: ^3.8.4 version: 3.8.4 @@ -12816,7 +12816,7 @@ importers: version: 7.29.0 '@ember/optional-features': specifier: ^3.0.0 - version: 3.0.0(@types/node@25.9.3) + version: 3.0.0(@types/node@26.0.0) '@ember/test-helpers': specifier: ^5.4.3 version: 5.4.3(@babel/core@7.29.0) @@ -12900,10 +12900,10 @@ importers: version: 3.0.0 ember-cli: specifier: ~7.0.1 - version: 7.0.1(@babel/core@7.29.0)(@types/node@25.9.3)(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(nunjucks@3.2.4(chokidar@3.6.0))(pug@3.0.4)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(supports-color@8.1.1)(underscore@1.13.8) + version: 7.0.1(@babel/core@7.29.0)(@types/node@26.0.0)(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(nunjucks@3.2.4(chokidar@3.6.0))(pug@3.0.4)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(underscore@1.13.8) ember-cli-dependency-checker: specifier: ^3.4.0 - version: 3.4.0(@babel/core@7.29.0)(ember-cli@7.0.1(@babel/core@7.29.0)(@types/node@25.9.3)(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(nunjucks@3.2.4(chokidar@3.6.0))(pug@3.0.4)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(underscore@1.13.8))(eslint@10.5.0(jiti@2.7.0)) + version: 3.4.0(@babel/core@7.29.0)(ember-cli@7.0.1(@babel/core@7.29.0)(@types/node@26.0.0)(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(nunjucks@3.2.4(chokidar@3.6.0))(pug@3.0.4)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(underscore@1.13.8))(eslint@10.5.0(jiti@2.7.0)) ember-cli-inject-live-reload: specifier: ^2.1.0 version: 2.1.0 @@ -13246,7 +13246,7 @@ importers: version: link:../vue3/dist nuxt: specifier: ^3.0.0 - version: 3.21.8(@parcel/watcher@2.5.6)(@types/node@25.9.3)(@vue/compiler-sfc@3.5.38)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(encoding@0.1.13)(eslint@10.5.0(jiti@2.7.0))(ioredis@5.11.1)(less@4.6.6)(lightningcss@1.32.0)(magicast@0.5.3)(meow@14.1.0)(optionator@0.9.4)(rolldown@1.1.1)(rollup-plugin-visualizer@7.0.1(rolldown@1.1.1)(rollup@4.62.0))(rollup@4.62.0)(sass@1.101.0)(stylelint@16.26.1(typescript@6.0.3))(stylus@0.64.0)(terser@5.48.0)(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.5(typescript@6.0.3))(xml2js@0.6.2)(yaml@2.9.0) + version: 3.21.8(@parcel/watcher@2.5.6)(@types/node@25.9.3)(@vue/compiler-sfc@3.5.38)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(encoding@0.1.13)(eslint@10.5.0(jiti@2.7.0))(ioredis@5.11.1)(less@4.6.6)(lightningcss@1.32.0)(magicast@0.5.3)(meow@14.1.0)(optionator@0.9.4)(rolldown@1.1.1)(rollup-plugin-visualizer@7.0.1(rolldown@1.1.1)(rollup@4.62.2))(rollup@4.62.2)(sass@1.101.0)(stylelint@16.26.1(typescript@6.0.3))(stylus@0.64.0)(terser@5.48.0)(typescript@6.0.3)(vite@8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.5(typescript@6.0.3))(xml2js@0.6.2)(yaml@2.9.0) devDependencies: '@eslint/js': specifier: ^10.0.1 @@ -13303,7 +13303,7 @@ importers: version: 17.6.0 nuxt: specifier: ^4.4.8 - version: 4.4.8(@babel/plugin-proposal-decorators@7.29.7(@babel/core@8.0.1))(@babel/plugin-syntax-jsx@7.29.7(@babel/core@8.0.1))(@babel/plugin-syntax-typescript@7.29.7(@babel/core@8.0.1))(@parcel/watcher@2.5.6)(@rollup/plugin-babel@7.1.0(@babel/core@8.0.1)(@types/babel__core@7.20.5)(rollup@4.62.0))(@types/node@25.9.3)(@vue/compiler-sfc@3.5.38)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(encoding@0.1.13)(eslint@10.5.0(jiti@2.7.0))(ioredis@5.11.1)(less@4.6.6)(lightningcss@1.32.0)(magicast@0.5.3)(meow@14.1.0)(optionator@0.9.4)(rolldown@1.1.1)(rollup-plugin-visualizer@7.0.1(rolldown@1.1.1)(rollup@4.62.0))(rollup@4.62.0)(sass@1.101.0)(stylelint@16.26.1(typescript@6.0.3))(stylus@0.64.0)(terser@5.48.0)(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.5(typescript@6.0.3))(xml2js@0.6.2)(yaml@2.9.0) + version: 4.4.8(@babel/plugin-proposal-decorators@7.29.7(@babel/core@8.0.1))(@babel/plugin-syntax-jsx@7.29.7(@babel/core@8.0.1))(@babel/plugin-syntax-typescript@7.29.7(@babel/core@8.0.1))(@parcel/watcher@2.5.6)(@rollup/plugin-babel@7.1.0(@babel/core@8.0.1)(@types/babel__core@7.20.5)(rollup@4.62.2))(@types/node@25.9.3)(@vue/compiler-sfc@3.5.38)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(encoding@0.1.13)(eslint@10.5.0(jiti@2.7.0))(ioredis@5.11.1)(less@4.6.6)(lightningcss@1.32.0)(magicast@0.5.3)(meow@14.1.0)(optionator@0.9.4)(rolldown@1.1.1)(rollup-plugin-visualizer@7.0.1(rolldown@1.1.1)(rollup@4.62.2))(rollup@4.62.2)(sass@1.101.0)(stylelint@16.26.1(typescript@6.0.3))(stylus@0.64.0)(terser@5.48.0)(typescript@6.0.3)(vite@8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.5(typescript@6.0.3))(xml2js@0.6.2)(yaml@2.9.0) typescript: specifier: ^6.0.3 version: 6.0.3 @@ -13650,7 +13650,7 @@ importers: version: 10.1.8(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-svelte: specifier: ^3.19.0 - version: 3.19.0(eslint@10.5.0(jiti@2.7.0))(svelte@5.56.3(@typescript-eslint/types@8.61.1))(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3)) + version: 3.19.0(eslint@10.5.0(jiti@2.7.0))(svelte@5.56.3(@typescript-eslint/types@8.61.1))(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@26.0.0)(typescript@6.0.3)) prettier: specifier: ^3.8.4 version: 3.8.4 @@ -14328,7 +14328,7 @@ importers: version: 6.21.1 '@wordpress/scripts': specifier: ^32.4.1 - version: 32.4.1(@playwright/test@1.61.0)(@swc/core@1.15.41)(@types/eslint@9.6.1)(@types/node@25.9.3)(@types/webpack@4.41.40)(@typescript-eslint/eslint-plugin@8.61.1(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(babel-plugin-macros@3.1.0)(canvas@3.2.3)(file-loader@6.2.0(webpack@5.107.2))(jiti@2.7.0)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(stylelint-scss@6.14.0(stylelint@16.26.1(typescript@6.0.3)))(supports-color@8.1.1)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3))(type-fest@4.41.0)(typescript@6.0.3)(webpack-hot-middleware@2.26.1) + version: 32.4.1(@playwright/test@1.61.0)(@swc/core@1.15.41)(@types/eslint@9.6.1)(@types/node@26.0.0)(@types/webpack@4.41.40)(@typescript-eslint/eslint-plugin@8.61.1(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(babel-plugin-macros@3.1.0)(canvas@3.2.3)(file-loader@6.2.0(webpack@5.107.2))(jiti@2.7.0)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(stylelint-scss@6.14.0(stylelint@16.26.1(typescript@6.0.3)))(supports-color@8.1.1)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@26.0.0)(typescript@6.0.3))(type-fest@4.41.0)(typescript@6.0.3)(webpack-hot-middleware@2.26.1) fs-extra: specifier: ^11.3.5 version: 11.3.5 @@ -16442,8 +16442,8 @@ packages: '@csstools/css-parser-algorithms': ^3.0.5 '@csstools/css-tokenizer': ^3.0.4 - '@csstools/css-color-parser@4.1.7': - resolution: {integrity: sha512-CmjJFQTFQx/U/xNJhSjCQ0ilpesPmNQ8+eOUeM/+kDOVW33qsIjeOXc27vrQDdWVkf83ZSWwtg7kXSUvKDJ8cQ==} + '@csstools/css-color-parser@4.1.8': + resolution: {integrity: sha512-3chWb7PRLijpJpPIKkDxdu6IBeO5MrFACND57On0j8OPpc0wZibcGc3xAHrSEbOx/KDRyMHoIxGn0w1PhXMYHw==} engines: {node: '>=20.19.0'} peerDependencies: '@csstools/css-parser-algorithms': ^4.0.0 @@ -22002,6 +22002,11 @@ packages: cpu: [arm] os: [android] + '@rollup/rollup-android-arm-eabi@4.62.2': + resolution: {integrity: sha512-6o7ZLZK+BeenkZCFNDXqpbjw9bD6nuWonvS/lwQJp7NoVVxm6p3qE7qQ5jGuBjiFsgvqjD8mZAU5oWxTmbOeOg==} + cpu: [arm] + os: [android] + '@rollup/rollup-android-arm64@4.60.2': resolution: {integrity: sha512-OqZTwDRDchGRHHm/hwLOL7uVPB9aUvI0am/eQuWMNyFHf5PSEQmyEeYYheA0EPPKUO/l0uigCp+iaTjoLjVoHg==} cpu: [arm64] @@ -22012,6 +22017,11 @@ packages: cpu: [arm64] os: [android] + '@rollup/rollup-android-arm64@4.62.2': + resolution: {integrity: sha512-BaH7BllCACHoH1LguOU56UItGfUWjujlO65kS9LAodViaN4bwIKd7oeW/ZHJ/4ljr/7MIiENnNy3HJ0zXv8Zkw==} + cpu: [arm64] + os: [android] + '@rollup/rollup-darwin-arm64@4.44.0': resolution: {integrity: sha512-VGF3wy0Eq1gcEIkSCr8Ke03CWT+Pm2yveKLaDvq51pPpZza3JX/ClxXOCmTYYq3us5MvEuNRTaeyFThCKRQhOA==} cpu: [arm64] @@ -22027,6 +22037,11 @@ packages: cpu: [arm64] os: [darwin] + '@rollup/rollup-darwin-arm64@4.62.2': + resolution: {integrity: sha512-v39RCCvj4He82I9sFmk+M1VZ0PLM9sfsLVikjfx2hYBNALhrrOR2D3JjQA6AhlaSOgcR+RzrKY7e1+bT6SUO/A==} + cpu: [arm64] + os: [darwin] + '@rollup/rollup-darwin-x64@4.44.0': resolution: {integrity: sha512-fBkyrDhwquRvrTxSGH/qqt3/T0w5Rg0L7ZIDypvBPc1/gzjJle6acCpZ36blwuwcKD/u6oCE/sRWlUAcxLWQbQ==} cpu: [x64] @@ -22042,6 +22057,11 @@ packages: cpu: [x64] os: [darwin] + '@rollup/rollup-darwin-x64@4.62.2': + resolution: {integrity: sha512-yl0y2vq3S3lHeuXhEdss6TWfKW8vkujImO12tn4ZkG/4oghr09LvdYm2RElVjokTQiUvDUGXLGsYeLqUMCKpGA==} + cpu: [x64] + os: [darwin] + '@rollup/rollup-freebsd-arm64@4.60.2': resolution: {integrity: sha512-Bcl6CYDeAgE70cqZaMojOi/eK63h5Me97ZqAQoh77VPjMysA/4ORQBRGo3rRy45x4MzVlU9uZxs8Uwy7ZaKnBw==} cpu: [arm64] @@ -22052,6 +22072,11 @@ packages: cpu: [arm64] os: [freebsd] + '@rollup/rollup-freebsd-arm64@4.62.2': + resolution: {integrity: sha512-tT4pvt4qXD+vEoezupCWi+a1F0vvDiksiHc+PxRlYTOH1I6/X4id9jPxTP+Fg+545euaFT1jJVs4CEdHZAU1vw==} + cpu: [arm64] + os: [freebsd] + '@rollup/rollup-freebsd-x64@4.60.2': resolution: {integrity: sha512-LU+TPda3mAE2QB0/Hp5VyeKJivpC6+tlOXd1VMoXV/YFMvk/MNk5iXeBfB4MQGRWyOYVJ01625vjkr0Az98OJQ==} cpu: [x64] @@ -22062,6 +22087,11 @@ packages: cpu: [x64] os: [freebsd] + '@rollup/rollup-freebsd-x64@4.62.2': + resolution: {integrity: sha512-6nU5F2wCW+qvCBhTn1pdIU3bzsIoF7EUwsCDRxilWGprQR6yd508YnH9+OKFCwpfS8pjZqDUmnCAr7exax0XCg==} + cpu: [x64] + os: [freebsd] + '@rollup/rollup-linux-arm-gnueabihf@4.60.2': resolution: {integrity: sha512-2QxQrM+KQ7DAW4o22j+XZ6RKdxjLD7BOWTP0Bv0tmjdyhXSsr2Ul1oJDQqh9Zf5qOwTuTc7Ek83mOFaKnodPjg==} cpu: [arm] @@ -22074,6 +22104,12 @@ packages: os: [linux] libc: [glibc] + '@rollup/rollup-linux-arm-gnueabihf@4.62.2': + resolution: {integrity: sha512-n1GJHPOvpIfhi3TmrCeh6S6URt9BFCt0KQE3qvexyGCTAKpR4Lg+eWvNZEqu7epxwus/8ElT3hacYEucm49SZg==} + cpu: [arm] + os: [linux] + libc: [glibc] + '@rollup/rollup-linux-arm-musleabihf@4.60.2': resolution: {integrity: sha512-TbziEu2DVsTEOPif2mKWkMeDMLoYjx95oESa9fkQQK7r/Orta0gnkcDpzwufEcAO2BLBsD7mZkXGFqEdMRRwfw==} cpu: [arm] @@ -22086,6 +22122,12 @@ packages: os: [linux] libc: [musl] + '@rollup/rollup-linux-arm-musleabihf@4.62.2': + resolution: {integrity: sha512-JqgflS8wEB+UXV/vS1RpRbifGBeN4D5lz8D8oOFbFZw4vedvdOgCFAjfBmIMdW3yL10XpQQ0Ambepw6MXrhOnA==} + cpu: [arm] + os: [linux] + libc: [musl] + '@rollup/rollup-linux-arm64-gnu@4.44.0': resolution: {integrity: sha512-ZTR2mxBHb4tK4wGf9b8SYg0Y6KQPjGpR4UWwTFdnmjB4qRtoATZ5dWn3KsDwGa5Z2ZBOE7K52L36J9LueKBdOQ==} cpu: [arm64] @@ -22104,6 +22146,12 @@ packages: os: [linux] libc: [glibc] + '@rollup/rollup-linux-arm64-gnu@4.62.2': + resolution: {integrity: sha512-wnFJkogWvN4jm/hQRF2UBaeUmk20j5+DmHvoyWii2b8HJDyvz1MF2OU/6ynXt2KR63rbZLWkFpoytpdc/yBuSA==} + cpu: [arm64] + os: [linux] + libc: [glibc] + '@rollup/rollup-linux-arm64-musl@4.44.0': resolution: {integrity: sha512-GFWfAhVhWGd4r6UxmnKRTBwP1qmModHtd5gkraeW2G490BpFOZkFtem8yuX2NyafIP/mGpRJgTJ2PwohQkUY/Q==} cpu: [arm64] @@ -22122,6 +22170,12 @@ packages: os: [linux] libc: [musl] + '@rollup/rollup-linux-arm64-musl@4.62.2': + resolution: {integrity: sha512-HVu2bp0zhvJ8xHEV9+UUs7S90VadmBSY3LcIMvozbPo4AuMGDWlz3ymHLHZPX4hR67TKTt8Qp5PJ5RBg/i+RMQ==} + cpu: [arm64] + os: [linux] + libc: [musl] + '@rollup/rollup-linux-loong64-gnu@4.60.2': resolution: {integrity: sha512-pOjB/uSIyDt+ow3k/RcLvUAOGpysT2phDn7TTUB3n75SlIgZzM6NKAqlErPhoFU+npgY3/n+2HYIQVbF70P9/A==} cpu: [loong64] @@ -22134,6 +22188,12 @@ packages: os: [linux] libc: [glibc] + '@rollup/rollup-linux-loong64-gnu@4.62.2': + resolution: {integrity: sha512-mQqqAV8QaoSgr9I2fKDLY2BAVvmKjWoGiu/cSYQonsLvtqwEn1E4QYfnCOcp5zoEqNhsDYin1s6jx/VJmrxlZg==} + cpu: [loong64] + os: [linux] + libc: [glibc] + '@rollup/rollup-linux-loong64-musl@4.60.2': resolution: {integrity: sha512-2/w+q8jszv9Ww1c+6uJT3OwqhdmGP2/4T17cu8WuwyUuuaCDDJ2ojdyYwZzCxx0GcsZBhzi3HmH+J5pZNXnd+Q==} cpu: [loong64] @@ -22146,6 +22206,12 @@ packages: os: [linux] libc: [musl] + '@rollup/rollup-linux-loong64-musl@4.62.2': + resolution: {integrity: sha512-IxKLoxCQ2IWi6bT2akyDUBGsOImDKB+sPp4EsTmwFQ/fMwpCKm8uLSSgP/Kx/QYUgKis6SEZ5/Nlhup0DIA0PQ==} + cpu: [loong64] + os: [linux] + libc: [musl] + '@rollup/rollup-linux-ppc64-gnu@4.60.2': resolution: {integrity: sha512-11+aL5vKheYgczxtPVVRhdptAM2H7fcDR5Gw4/bTcteuZBlH4oP9f5s9zYO9aGZvoGeBpqXI/9TZZihZ609wKw==} cpu: [ppc64] @@ -22158,6 +22224,12 @@ packages: os: [linux] libc: [glibc] + '@rollup/rollup-linux-ppc64-gnu@4.62.2': + resolution: {integrity: sha512-Mk5ha2RQSgyFfmYYLkBpPnUk8D8FriBxesO1u9O75X0mHgXL1UQcH5Itl2lurWL2tj0RxV9b9tJgipac0hRY9A==} + cpu: [ppc64] + os: [linux] + libc: [glibc] + '@rollup/rollup-linux-ppc64-musl@4.60.2': resolution: {integrity: sha512-i16fokAGK46IVZuV8LIIwMdtqhin9hfYkCh8pf8iC3QU3LpwL+1FSFGej+O7l3E/AoknL6Dclh2oTdnRMpTzFQ==} cpu: [ppc64] @@ -22170,6 +22242,12 @@ packages: os: [linux] libc: [musl] + '@rollup/rollup-linux-ppc64-musl@4.62.2': + resolution: {integrity: sha512-CjvEnqJL/0/TQ3TXX3OPIJ/kmBellrWd4heXUmHeJlTnmwjKpSJzoehLaL6Xk0ZnMHBu9dZuFADNOrtjF4v+2w==} + cpu: [ppc64] + os: [linux] + libc: [musl] + '@rollup/rollup-linux-riscv64-gnu@4.60.2': resolution: {integrity: sha512-49FkKS6RGQoriDSK/6E2GkAsAuU5kETFCh7pG4yD/ylj9rKhTmO3elsnmBvRD4PgJPds5W2PkhC82aVwmUcJ7A==} cpu: [riscv64] @@ -22182,6 +22260,12 @@ packages: os: [linux] libc: [glibc] + '@rollup/rollup-linux-riscv64-gnu@4.62.2': + resolution: {integrity: sha512-1SiZbzwdkaDURsew/tSOrooKiYy7EQGT6m8ufavAi9NEyQb/6VuIxFXAL1fqa4iZe3g4NbNk4P7J32z2tw5Mgg==} + cpu: [riscv64] + os: [linux] + libc: [glibc] + '@rollup/rollup-linux-riscv64-musl@4.60.2': resolution: {integrity: sha512-mjYNkHPfGpUR00DuM1ZZIgs64Hpf4bWcz9Z41+4Q+pgDx73UwWdAYyf6EG/lRFldmdHHzgrYyge5akFUW0D3mQ==} cpu: [riscv64] @@ -22194,6 +22278,12 @@ packages: os: [linux] libc: [musl] + '@rollup/rollup-linux-riscv64-musl@4.62.2': + resolution: {integrity: sha512-nQts12zJ3NQRoE6uYljOH89v7szzLDvG2JD/vsX+vGXU8w/At1GowTZ5/7qeFQ8m7L55rpR8Okugnuo5bgjy2Q==} + cpu: [riscv64] + os: [linux] + libc: [musl] + '@rollup/rollup-linux-s390x-gnu@4.60.2': resolution: {integrity: sha512-ALyvJz965BQk8E9Al/JDKKDLH2kfKFLTGMlgkAbbYtZuJt9LU8DW3ZoDMCtQpXAltZxwBHevXz5u+gf0yA0YoA==} cpu: [s390x] @@ -22206,6 +22296,12 @@ packages: os: [linux] libc: [glibc] + '@rollup/rollup-linux-s390x-gnu@4.62.2': + resolution: {integrity: sha512-E9/ll019jhPIJgpzfZoIkBGhcz+kKNgVWYRY0zr9srBdPPFVpvOKW8VaJKUbeK+eZXyQF9ltME+Kk6affeaPgg==} + cpu: [s390x] + os: [linux] + libc: [glibc] + '@rollup/rollup-linux-x64-gnu@4.44.0': resolution: {integrity: sha512-iUVJc3c0o8l9Sa/qlDL2Z9UP92UZZW1+EmQ4xfjTc1akr0iUFZNfxrXJ/R1T90h/ILm9iXEY6+iPrmYB3pXKjw==} cpu: [x64] @@ -22224,6 +22320,12 @@ packages: os: [linux] libc: [glibc] + '@rollup/rollup-linux-x64-gnu@4.62.2': + resolution: {integrity: sha512-5BqxR/pshjey51iliyzTD5Xi3EN0aLmQ2lZ3lvefVV9c82BvrLo2/6OT55iifpWBufs6kdwWbuOKS841DrmK9A==} + cpu: [x64] + os: [linux] + libc: [glibc] + '@rollup/rollup-linux-x64-musl@4.44.0': resolution: {integrity: sha512-PQUobbhLTQT5yz/SPg116VJBgz+XOtXt8D1ck+sfJJhuEsMj2jSej5yTdp8CvWBSceu+WW+ibVL6dm0ptG5fcA==} cpu: [x64] @@ -22242,6 +22344,12 @@ packages: os: [linux] libc: [musl] + '@rollup/rollup-linux-x64-musl@4.62.2': + resolution: {integrity: sha512-uNN83XxQrRAh/w0/pmAfibcwyb6YWt4gP+dpnQKPVJshAloQ785ii8CT8ZCIxkGg9opVsvAlGhFitSm6D1Jjpg==} + cpu: [x64] + os: [linux] + libc: [musl] + '@rollup/rollup-openbsd-x64@4.60.2': resolution: {integrity: sha512-6d4Z3534xitaA1FcMWP7mQPq5zGwBmGbhphh2DwaA1aNIXUu3KTOfwrWpbwI4/Gr0uANo7NTtaykFyO2hPuFLg==} cpu: [x64] @@ -22252,6 +22360,11 @@ packages: cpu: [x64] os: [openbsd] + '@rollup/rollup-openbsd-x64@4.62.2': + resolution: {integrity: sha512-srjEIxSH3LRnJN6THczDHWQplqEMFiAJrTab0msUryh9kwNpkICf3Ea6q6MN/2cZwRFUNx5w+h6Hpi4QuHS6Zg==} + cpu: [x64] + os: [openbsd] + '@rollup/rollup-openharmony-arm64@4.60.2': resolution: {integrity: sha512-NetAg5iO2uN7eB8zE5qrZ3CSil+7IJt4WDFLcC75Ymywq1VZVD6qJ6EvNLjZ3rEm6gB7XW5JdT60c6MN35Z85Q==} cpu: [arm64] @@ -22262,6 +22375,11 @@ packages: cpu: [arm64] os: [openharmony] + '@rollup/rollup-openharmony-arm64@4.62.2': + resolution: {integrity: sha512-8hOJnxgbyObnCm5AlRA3A931xX19xq80RjVTKgJOvEKWqJruP/Uf12IbAOaDjjEXYRewwHLfmF0YRIdK3OwKWA==} + cpu: [arm64] + os: [openharmony] + '@rollup/rollup-win32-arm64-msvc@4.44.0': resolution: {integrity: sha512-M0CpcHf8TWn+4oTxJfh7LQuTuaYeXGbk0eageVjQCKzYLsajWS/lFC94qlRqOlyC2KvRT90ZrfXULYmukeIy7w==} cpu: [arm64] @@ -22277,6 +22395,11 @@ packages: cpu: [arm64] os: [win32] + '@rollup/rollup-win32-arm64-msvc@4.62.2': + resolution: {integrity: sha512-mmF4AY1i0hG/bLWUctUq59gtmgaSIRa3cu/A3JFRp/sCNEme2bgDEiDS22P9FbnJB8NJNF4jPJiSP5RHQpUTDg==} + cpu: [arm64] + os: [win32] + '@rollup/rollup-win32-ia32-msvc@4.60.2': resolution: {integrity: sha512-RXsaOqXxfoUBQoOgvmmijVxJnW2IGB0eoMO7F8FAjaj0UTywUO/luSqimWBJn04WNgUkeNhh7fs7pESXajWmkg==} cpu: [ia32] @@ -22287,6 +22410,11 @@ packages: cpu: [ia32] os: [win32] + '@rollup/rollup-win32-ia32-msvc@4.62.2': + resolution: {integrity: sha512-DZgkknc6jhHrk46V25vbAM0zZkyP0nSDkJB8/dRkLTxv470dOmWDqGoEJl/9A0dFfS7yE3REOwNDxpHwSLSt0Q==} + cpu: [ia32] + os: [win32] + '@rollup/rollup-win32-x64-gnu@4.60.2': resolution: {integrity: sha512-qdAzEULD+/hzObedtmV6iBpdL5TIbKVztGiK7O3/KYSf+HIzU257+MX1EXJcyIiDbMAqmbwaufcYPvyRryeZtA==} cpu: [x64] @@ -22297,6 +22425,11 @@ packages: cpu: [x64] os: [win32] + '@rollup/rollup-win32-x64-gnu@4.62.2': + resolution: {integrity: sha512-T6xr6ucWSFto+VGajA8YH26LdpHRuP4YLHEKAtCWvJDOlnmWcDZVCI2Jmjr+IFHDlt2zRaTAKE4tfjTaWLgJBg==} + cpu: [x64] + os: [win32] + '@rollup/rollup-win32-x64-msvc@4.44.0': resolution: {integrity: sha512-Q2Mgwt+D8hd5FIPUuPDsvPR7Bguza6yTkJxspDGkZj7tBRn2y4KSWYuIXpftFSjBra76TbKerCV7rgFPQrn+wQ==} cpu: [x64] @@ -22312,8 +22445,13 @@ packages: cpu: [x64] os: [win32] - '@rollup/wasm-node@4.62.0': - resolution: {integrity: sha512-TW5f2b5d8Y1DwilaxaXhPkYI1a+i1Am2+eDEf6Tu/QrPxt6kdh/4HT6y460MmzE1im71rudvEs5zLLFr7qBAtQ==} + '@rollup/rollup-win32-x64-msvc@4.62.2': + resolution: {integrity: sha512-BfzEnDJOt9T8M989/lA37EcJgat01wLRnoi5dQf3QzOH7jzpqTAzdDbVfRljVr5r+jzKqpbHeyOfAaXxAd0PAA==} + cpu: [x64] + os: [win32] + + '@rollup/wasm-node@4.62.2': + resolution: {integrity: sha512-LseVv64SSO6S7eyc+LFGUnH36NMMFbtKN28vTUHFinRVzFKH4cVQ/BB22JfXM9Ei5l7x46AIQp+n2QzzJ9kxHg==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -23384,6 +23522,12 @@ packages: '@types/node@25.9.3': resolution: {integrity: sha512-603BddQMv3pUcr4U2dhujk83N2tTDVr/34wII2B6bJy6g+8WD6yUb11jszNs0gdi4PesVWl7ABt8nYMVpnLUcg==} + '@types/node@25.9.4': + resolution: {integrity: sha512-dszCsrKb5U7ZsVZBWiHFklTloVl0mSEnWH/iZXfZUlI4rzCUnsvGmgqfuVRHL54ugE7/wRuxEIXRa2iMZ+BG6g==} + + '@types/node@26.0.0': + resolution: {integrity: sha512-vf2YFi1iY9lHGwNJMs01biZFbKJkrZR1T6/MlzjhJLPdntOHLhTrDSnSVcdtvjihi4VQNlrFRIxLsDBlQpAipA==} + '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -31296,6 +31440,15 @@ packages: resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} engines: {node: '>= 14'} + http-proxy-middleware@2.0.10: + resolution: {integrity: sha512-RKzRWNPxUZqbuk3BC5mGVJbBnWgr+diEnjJexIOytFbBzDy88Fbh/YvBr3DsNrl1jYAfjWfpATEv0NO35FDuPQ==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@types/express': ^4.17.13 + peerDependenciesMeta: + '@types/express': + optional: true + http-proxy-middleware@2.0.9: resolution: {integrity: sha512-c1IyJYLYppU574+YI7R4QyX2ystMtVXZwIdzazUIPIJsHuWNd+mho2j+bKoHftndicGj9yh+xjd+l0yj7VeT1Q==} engines: {node: '>=12.0.0'} @@ -37964,6 +38117,11 @@ packages: engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true + rollup@4.62.2: + resolution: {integrity: sha512-RFnrW4lhXA3s3eqHDZvN654g8OTjzRfqpIRJYczCGB6HzphckVAi/Qh4tbPUbRuDi7s1Llv8g/NspLkttY3gTA==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + rou3@0.8.1: resolution: {integrity: sha512-ePa+XGk00/3HuCqrEnK3LxJW7I0SdNg6EFzKUJG73hMAdDcOUC/i/aSz7LSDwLrGr33kal/rqOGydzwl6U7zBA==} @@ -38256,6 +38414,11 @@ packages: engines: {node: '>=10'} hasBin: true + semver@7.8.5: + resolution: {integrity: sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==} + engines: {node: '>=10'} + hasBin: true + send@0.19.2: resolution: {integrity: sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==} engines: {node: '>= 0.8.0'} @@ -40295,6 +40458,9 @@ packages: undici-types@7.28.0: resolution: {integrity: sha512-LJAfY+2w6HGeT8d8J1wNQsUGUEGio6NWWpwdwurQe4f6oojzCFuGLizl1KSve4irsTxyLly1QhEeE6iapdaIvQ==} + undici-types@8.3.0: + resolution: {integrity: sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ==} + undici-types@8.5.0: resolution: {integrity: sha512-+FxhD+5RUdCZHlVPt+pd0DaYYHBPsgoHovxhMnFq9R1SOejHGE4ma0swzuRoKhOisEzsjFWdFedyD0JQmftrHg==} @@ -43100,7 +43266,7 @@ snapshots: dependencies: '@asamuzakjp/generational-cache': 1.0.1 '@csstools/css-calc': 3.2.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) - '@csstools/css-color-parser': 4.1.7(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) + '@csstools/css-color-parser': 4.1.8(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0) '@csstools/css-tokenizer': 4.0.0 @@ -43325,7 +43491,7 @@ snapshots: import-meta-resolve: 4.2.0 json5: 2.2.3 obug: 2.1.3 - semver: 7.8.4 + semver: 7.8.5 '@babel/eslint-parser@7.29.7(@babel/core@7.29.0)(eslint@10.5.0(jiti@2.7.0))': dependencies: @@ -43378,7 +43544,7 @@ snapshots: '@babel/helper-validator-option': 8.0.0 browserslist: 4.28.2 lru-cache: 11.5.1 - semver: 7.8.4 + semver: 7.8.5 '@babel/helper-compilation-targets@8.0.0-rc.6': dependencies: @@ -45083,7 +45249,7 @@ snapshots: '@commitlint/is-ignored@21.0.2': dependencies: '@commitlint/types': 21.0.1 - semver: 7.8.4 + semver: 7.8.5 '@commitlint/lint@21.0.2': dependencies: @@ -45155,7 +45321,7 @@ snapshots: dependencies: '@simple-libs/child-process-utils': 1.0.2 '@simple-libs/stream-utils': 1.2.0 - semver: 7.8.4 + semver: 7.8.5 optionalDependencies: conventional-commits-parser: 6.4.0 @@ -45203,7 +45369,7 @@ snapshots: '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 - '@csstools/css-color-parser@4.1.7(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)': + '@csstools/css-color-parser@4.1.8(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)': dependencies: '@csstools/color-helpers': 6.0.2 '@csstools/css-calc': 3.2.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) @@ -45667,6 +45833,16 @@ snapshots: - '@types/node' - supports-color + '@ember/optional-features@3.0.0(@types/node@26.0.0)': + dependencies: + ember-cli-version-checker: 5.1.2 + inquirer: 13.4.3(@types/node@26.0.0) + silent-error: 1.1.1 + tinyglobby: 0.2.17 + transitivePeerDependencies: + - '@types/node' + - supports-color + '@ember/test-helpers@5.4.3(@babel/core@7.29.0)': dependencies: '@ember/test-waiters': 4.1.2 @@ -46691,6 +46867,15 @@ snapshots: optionalDependencies: '@types/node': 25.9.3 + '@inquirer/checkbox@5.2.1(@types/node@26.0.0)': + dependencies: + '@inquirer/ansi': 2.0.7 + '@inquirer/core': 11.2.1(@types/node@26.0.0) + '@inquirer/figures': 2.0.7 + '@inquirer/type': 4.0.7(@types/node@26.0.0) + optionalDependencies: + '@types/node': 26.0.0 + '@inquirer/confirm@5.1.21(@types/node@25.9.3)': dependencies: '@inquirer/core': 10.3.2(@types/node@25.9.3) @@ -46712,6 +46897,13 @@ snapshots: optionalDependencies: '@types/node': 25.9.3 + '@inquirer/confirm@6.1.1(@types/node@26.0.0)': + dependencies: + '@inquirer/core': 11.2.1(@types/node@26.0.0) + '@inquirer/type': 4.0.7(@types/node@26.0.0) + optionalDependencies: + '@types/node': 26.0.0 + '@inquirer/core@10.3.2(@types/node@25.9.3)': dependencies: '@inquirer/ansi': 1.0.2 @@ -46737,6 +46929,18 @@ snapshots: optionalDependencies: '@types/node': 25.9.3 + '@inquirer/core@11.2.1(@types/node@26.0.0)': + dependencies: + '@inquirer/ansi': 2.0.7 + '@inquirer/figures': 2.0.7 + '@inquirer/type': 4.0.7(@types/node@26.0.0) + cli-width: 4.1.0 + fast-wrap-ansi: 0.2.2 + mute-stream: 3.0.0 + signal-exit: 4.1.0 + optionalDependencies: + '@types/node': 26.0.0 + '@inquirer/editor@4.2.23(@types/node@25.9.3)': dependencies: '@inquirer/core': 10.3.2(@types/node@25.9.3) @@ -46753,6 +46957,14 @@ snapshots: optionalDependencies: '@types/node': 25.9.3 + '@inquirer/editor@5.2.2(@types/node@26.0.0)': + dependencies: + '@inquirer/core': 11.2.1(@types/node@26.0.0) + '@inquirer/external-editor': 3.0.3(@types/node@26.0.0) + '@inquirer/type': 4.0.7(@types/node@26.0.0) + optionalDependencies: + '@types/node': 26.0.0 + '@inquirer/expand@4.0.23(@types/node@25.9.3)': dependencies: '@inquirer/core': 10.3.2(@types/node@25.9.3) @@ -46768,6 +46980,13 @@ snapshots: optionalDependencies: '@types/node': 25.9.3 + '@inquirer/expand@5.1.1(@types/node@26.0.0)': + dependencies: + '@inquirer/core': 11.2.1(@types/node@26.0.0) + '@inquirer/type': 4.0.7(@types/node@26.0.0) + optionalDependencies: + '@types/node': 26.0.0 + '@inquirer/external-editor@1.0.3(@types/node@25.9.3)': dependencies: chardet: 2.1.1 @@ -46782,6 +47001,13 @@ snapshots: optionalDependencies: '@types/node': 25.9.3 + '@inquirer/external-editor@3.0.3(@types/node@26.0.0)': + dependencies: + chardet: 2.1.1 + iconv-lite: 0.7.2 + optionalDependencies: + '@types/node': 26.0.0 + '@inquirer/figures@1.0.15': {} '@inquirer/figures@2.0.7': {} @@ -46800,6 +47026,13 @@ snapshots: optionalDependencies: '@types/node': 25.9.3 + '@inquirer/input@5.1.2(@types/node@26.0.0)': + dependencies: + '@inquirer/core': 11.2.1(@types/node@26.0.0) + '@inquirer/type': 4.0.7(@types/node@26.0.0) + optionalDependencies: + '@types/node': 26.0.0 + '@inquirer/number@3.0.23(@types/node@25.9.3)': dependencies: '@inquirer/core': 10.3.2(@types/node@25.9.3) @@ -46814,6 +47047,13 @@ snapshots: optionalDependencies: '@types/node': 25.9.3 + '@inquirer/number@4.1.1(@types/node@26.0.0)': + dependencies: + '@inquirer/core': 11.2.1(@types/node@26.0.0) + '@inquirer/type': 4.0.7(@types/node@26.0.0) + optionalDependencies: + '@types/node': 26.0.0 + '@inquirer/password@4.0.23(@types/node@25.9.3)': dependencies: '@inquirer/ansi': 1.0.2 @@ -46830,6 +47070,14 @@ snapshots: optionalDependencies: '@types/node': 25.9.3 + '@inquirer/password@5.1.1(@types/node@26.0.0)': + dependencies: + '@inquirer/ansi': 2.0.7 + '@inquirer/core': 11.2.1(@types/node@26.0.0) + '@inquirer/type': 4.0.7(@types/node@26.0.0) + optionalDependencies: + '@types/node': 26.0.0 + '@inquirer/prompts@7.10.1(@types/node@25.9.3)': dependencies: '@inquirer/checkbox': 4.3.2(@types/node@25.9.3) @@ -46875,6 +47123,21 @@ snapshots: optionalDependencies: '@types/node': 25.9.3 + '@inquirer/prompts@8.5.2(@types/node@26.0.0)': + dependencies: + '@inquirer/checkbox': 5.2.1(@types/node@26.0.0) + '@inquirer/confirm': 6.1.1(@types/node@26.0.0) + '@inquirer/editor': 5.2.2(@types/node@26.0.0) + '@inquirer/expand': 5.1.1(@types/node@26.0.0) + '@inquirer/input': 5.1.2(@types/node@26.0.0) + '@inquirer/number': 4.1.1(@types/node@26.0.0) + '@inquirer/password': 5.1.1(@types/node@26.0.0) + '@inquirer/rawlist': 5.3.1(@types/node@26.0.0) + '@inquirer/search': 4.2.1(@types/node@26.0.0) + '@inquirer/select': 5.2.1(@types/node@26.0.0) + optionalDependencies: + '@types/node': 26.0.0 + '@inquirer/rawlist@4.1.11(@types/node@25.9.3)': dependencies: '@inquirer/core': 10.3.2(@types/node@25.9.3) @@ -46890,6 +47153,13 @@ snapshots: optionalDependencies: '@types/node': 25.9.3 + '@inquirer/rawlist@5.3.1(@types/node@26.0.0)': + dependencies: + '@inquirer/core': 11.2.1(@types/node@26.0.0) + '@inquirer/type': 4.0.7(@types/node@26.0.0) + optionalDependencies: + '@types/node': 26.0.0 + '@inquirer/search@3.2.2(@types/node@25.9.3)': dependencies: '@inquirer/core': 10.3.2(@types/node@25.9.3) @@ -46907,6 +47177,14 @@ snapshots: optionalDependencies: '@types/node': 25.9.3 + '@inquirer/search@4.2.1(@types/node@26.0.0)': + dependencies: + '@inquirer/core': 11.2.1(@types/node@26.0.0) + '@inquirer/figures': 2.0.7 + '@inquirer/type': 4.0.7(@types/node@26.0.0) + optionalDependencies: + '@types/node': 26.0.0 + '@inquirer/select@4.4.2(@types/node@25.9.3)': dependencies: '@inquirer/ansi': 1.0.2 @@ -46926,6 +47204,15 @@ snapshots: optionalDependencies: '@types/node': 25.9.3 + '@inquirer/select@5.2.1(@types/node@26.0.0)': + dependencies: + '@inquirer/ansi': 2.0.7 + '@inquirer/core': 11.2.1(@types/node@26.0.0) + '@inquirer/figures': 2.0.7 + '@inquirer/type': 4.0.7(@types/node@26.0.0) + optionalDependencies: + '@types/node': 26.0.0 + '@inquirer/type@3.0.10(@types/node@25.9.3)': optionalDependencies: '@types/node': 25.9.3 @@ -46934,6 +47221,10 @@ snapshots: optionalDependencies: '@types/node': 25.9.3 + '@inquirer/type@4.0.7(@types/node@26.0.0)': + optionalDependencies: + '@types/node': 26.0.0 + '@ionic/angular-toolkit@12.3.0': dependencies: '@angular-devkit/core': 20.3.28 @@ -46975,7 +47266,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@ionic/utils-fs@3.1.7(supports-color@8.1.1)': + '@ionic/utils-fs@3.1.7': dependencies: '@types/fs-extra': 8.1.5 debug: 4.4.3(supports-color@8.1.1) @@ -47012,7 +47303,7 @@ snapshots: '@ionic/utils-subprocess@3.0.1(supports-color@8.1.1)': dependencies: '@ionic/utils-array': 2.1.6(supports-color@8.1.1) - '@ionic/utils-fs': 3.1.7(supports-color@8.1.1) + '@ionic/utils-fs': 3.1.7 '@ionic/utils-process': 2.1.12(supports-color@8.1.1) '@ionic/utils-stream': 3.1.7(supports-color@8.1.1) '@ionic/utils-terminal': 2.3.5 @@ -47074,7 +47365,7 @@ snapshots: jest-util: 29.7.0 slash: 3.0.0 - '@jest/core@29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3))': + '@jest/core@29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@26.0.0)(typescript@6.0.3))': dependencies: '@jest/console': 29.7.0 '@jest/reporters': 29.7.0 @@ -47088,7 +47379,7 @@ snapshots: exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@25.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3)) + jest-config: 29.7.0(@types/node@25.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@26.0.0)(typescript@6.0.3)) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -47805,7 +48096,7 @@ snapshots: proggy: 3.0.0 promise-all-reject-late: 1.0.1 promise-call-limit: 3.0.2 - semver: 7.8.4 + semver: 7.7.2 ssri: 12.0.0 treeverse: 3.0.0 walk-up-path: 4.0.0 @@ -47815,24 +48106,24 @@ snapshots: '@npmcli/fs@1.1.1': dependencies: '@gar/promisify': 1.1.3 - semver: 7.8.4 + semver: 7.8.5 '@npmcli/fs@2.1.2': dependencies: '@gar/promisify': 1.1.3 - semver: 7.8.4 + semver: 7.8.5 '@npmcli/fs@3.1.1': dependencies: - semver: 7.8.4 + semver: 7.8.5 '@npmcli/fs@4.0.0': dependencies: - semver: 7.8.4 + semver: 7.7.2 '@npmcli/fs@5.0.0': dependencies: - semver: 7.8.4 + semver: 7.7.2 '@npmcli/git@4.1.0(bluebird@3.7.2)': dependencies: @@ -47842,7 +48133,7 @@ snapshots: proc-log: 3.0.0 promise-inflight: 1.0.1(bluebird@3.7.2) promise-retry: 2.0.1 - semver: 7.8.4 + semver: 7.8.5 which: 3.0.1 transitivePeerDependencies: - bluebird @@ -47855,7 +48146,7 @@ snapshots: npm-pick-manifest: 10.0.0 proc-log: 5.0.0 promise-retry: 2.0.1 - semver: 7.8.4 + semver: 7.7.2 which: 5.0.0 '@npmcli/git@7.0.2': @@ -47866,7 +48157,7 @@ snapshots: lru-cache: 11.5.1 npm-pick-manifest: 11.0.3 proc-log: 6.1.0 - semver: 7.8.4 + semver: 7.7.2 which: 6.0.1 '@npmcli/installed-package-contents@2.1.0': @@ -47897,7 +48188,7 @@ snapshots: json-parse-even-better-errors: 5.0.0 pacote: 21.5.1 proc-log: 6.1.0 - semver: 7.8.4 + semver: 7.7.2 transitivePeerDependencies: - supports-color @@ -47928,7 +48219,7 @@ snapshots: hosted-git-info: 9.0.3 json-parse-even-better-errors: 5.0.0 proc-log: 6.1.0 - semver: 7.8.4 + semver: 7.7.2 validate-npm-package-license: 3.0.4 '@npmcli/package-json@7.0.5': @@ -47938,7 +48229,7 @@ snapshots: hosted-git-info: 9.0.3 json-parse-even-better-errors: 5.0.0 proc-log: 6.1.0 - semver: 7.8.4 + semver: 7.7.4 spdx-expression-parse: 4.0.0 '@npmcli/promise-spawn@6.0.2': @@ -48321,11 +48612,11 @@ snapshots: '@nuxt/devalue@2.0.2': {} - '@nuxt/devtools-kit@3.2.4(magicast@0.5.3)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))': + '@nuxt/devtools-kit@3.2.4(magicast@0.5.3)(vite@8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))': dependencies: '@nuxt/kit': 4.4.8(magicast@0.5.3) execa: 8.0.1 - vite: 8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) + vite: 8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) transitivePeerDependencies: - magicast @@ -48340,9 +48631,9 @@ snapshots: pkg-types: 2.3.1 semver: 7.8.4 - '@nuxt/devtools@3.2.4(supports-color@8.1.1)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.38(typescript@6.0.3))': + '@nuxt/devtools@3.2.4(supports-color@8.1.1)(vite@8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.38(typescript@6.0.3))': dependencies: - '@nuxt/devtools-kit': 3.2.4(magicast@0.5.3)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) + '@nuxt/devtools-kit': 3.2.4(magicast@0.5.3)(vite@8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) '@nuxt/devtools-wizard': 3.2.4 '@nuxt/kit': 4.4.8(magicast@0.5.3) '@vue/devtools-core': 8.1.3(vue@3.5.38(typescript@6.0.3)) @@ -48370,9 +48661,9 @@ snapshots: sirv: 3.0.2 structured-clone-es: 2.0.0 tinyglobby: 0.2.17 - vite: 8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) - vite-plugin-inspect: 11.4.1(@nuxt/kit@4.4.8(magicast@0.5.3))(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) - vite-plugin-vue-tracer: 1.4.0(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.38(typescript@6.0.3)) + vite: 8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) + vite-plugin-inspect: 11.4.1(@nuxt/kit@4.4.8(magicast@0.5.3))(vite@8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) + vite-plugin-vue-tracer: 1.4.0(vite@8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.38(typescript@6.0.3)) which: 6.0.1 ws: 8.21.0 transitivePeerDependencies: @@ -48462,7 +48753,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@nuxt/nitro-server@3.21.8(db0@0.3.4)(encoding@0.1.13)(ioredis@5.11.1)(magicast@0.5.3)(nuxt@3.21.8(@parcel/watcher@2.5.6)(@types/node@25.9.3)(@vue/compiler-sfc@3.5.38)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(encoding@0.1.13)(eslint@10.5.0(jiti@2.7.0))(ioredis@5.11.1)(less@4.6.6)(lightningcss@1.32.0)(magicast@0.5.3)(meow@14.1.0)(optionator@0.9.4)(rolldown@1.1.1)(rollup-plugin-visualizer@7.0.1(rolldown@1.1.1)(rollup@4.62.0))(rollup@4.62.0)(sass@1.101.0)(srvx@0.11.16)(stylelint@16.26.1(typescript@6.0.3))(stylus@0.64.0)(supports-color@8.1.1)(terser@5.48.0)(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.5(typescript@6.0.3))(xml2js@0.6.2)(yaml@2.9.0))(oxc-parser@0.132.0)(rolldown@1.1.1)(srvx@0.11.16)(typescript@6.0.3)(xml2js@0.6.2)': + '@nuxt/nitro-server@3.21.8(db0@0.3.4)(encoding@0.1.13)(ioredis@5.11.1)(magicast@0.5.3)(nuxt@3.21.8(@parcel/watcher@2.5.6)(@types/node@25.9.3)(@vue/compiler-sfc@3.5.38)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(encoding@0.1.13)(eslint@10.5.0(jiti@2.7.0))(ioredis@5.11.1)(less@4.6.6)(lightningcss@1.32.0)(magicast@0.5.3)(meow@14.1.0)(optionator@0.9.4)(rolldown@1.1.1)(rollup-plugin-visualizer@7.0.1(rolldown@1.1.1)(rollup@4.62.0))(rollup@4.62.0)(sass@1.101.0)(srvx@0.11.16)(stylelint@16.26.1(typescript@6.0.3))(stylus@0.64.0)(supports-color@8.1.1)(terser@5.48.0)(typescript@6.0.3)(vite@8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.5(typescript@6.0.3))(xml2js@0.6.2)(yaml@2.9.0))(oxc-parser@0.132.0)(rolldown@1.1.1)(srvx@0.11.16)(typescript@6.0.3)(xml2js@0.6.2)': dependencies: '@nuxt/devalue': 2.0.2 '@nuxt/kit': 3.21.8(magicast@0.5.3) @@ -48480,7 +48771,7 @@ snapshots: klona: 2.0.6 mocked-exports: 0.1.1 nitropack: 2.13.4(encoding@0.1.13)(oxc-parser@0.132.0)(rolldown@1.1.1)(srvx@0.11.16)(xml2js@0.6.2) - nuxt: 3.21.8(@parcel/watcher@2.5.6)(@types/node@25.9.3)(@vue/compiler-sfc@3.5.38)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(encoding@0.1.13)(eslint@10.5.0(jiti@2.7.0))(ioredis@5.11.1)(less@4.6.6)(lightningcss@1.32.0)(magicast@0.5.3)(meow@14.1.0)(optionator@0.9.4)(rolldown@1.1.1)(rollup-plugin-visualizer@7.0.1(rolldown@1.1.1)(rollup@4.62.0))(rollup@4.62.0)(sass@1.101.0)(srvx@0.11.16)(stylelint@16.26.1(typescript@6.0.3))(stylus@0.64.0)(supports-color@8.1.1)(terser@5.48.0)(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.5(typescript@6.0.3))(xml2js@0.6.2)(yaml@2.9.0) + nuxt: 3.21.8(@parcel/watcher@2.5.6)(@types/node@25.9.3)(@vue/compiler-sfc@3.5.38)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(encoding@0.1.13)(eslint@10.5.0(jiti@2.7.0))(ioredis@5.11.1)(less@4.6.6)(lightningcss@1.32.0)(magicast@0.5.3)(meow@14.1.0)(optionator@0.9.4)(rolldown@1.1.1)(rollup-plugin-visualizer@7.0.1(rolldown@1.1.1)(rollup@4.62.0))(rollup@4.62.0)(sass@1.101.0)(srvx@0.11.16)(stylelint@16.26.1(typescript@6.0.3))(stylus@0.64.0)(supports-color@8.1.1)(terser@5.48.0)(typescript@6.0.3)(vite@8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.5(typescript@6.0.3))(xml2js@0.6.2)(yaml@2.9.0) ohash: 2.0.11 pathe: 2.0.3 pkg-types: 2.3.1 @@ -48530,7 +48821,7 @@ snapshots: - uploadthing - xml2js - '@nuxt/nitro-server@3.21.8(db0@0.3.4)(encoding@0.1.13)(ioredis@5.11.1)(magicast@0.5.3)(nuxt@3.21.8(@parcel/watcher@2.5.6)(@types/node@25.9.3)(@vue/compiler-sfc@3.5.38)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(encoding@0.1.13)(eslint@10.5.0(jiti@2.7.0))(ioredis@5.11.1)(less@4.6.6)(lightningcss@1.32.0)(magicast@0.5.3)(meow@14.1.0)(optionator@0.9.4)(rolldown@1.1.1)(rollup-plugin-visualizer@7.0.1(rolldown@1.1.1)(rollup@4.62.0))(rollup@4.62.0)(sass@1.101.0)(stylelint@16.26.1(typescript@6.0.3))(stylus@0.64.0)(terser@5.48.0)(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.5(typescript@6.0.3))(xml2js@0.6.2)(yaml@2.9.0))(oxc-parser@0.132.0)(rolldown@1.1.1)(typescript@6.0.3)(xml2js@0.6.2)': + '@nuxt/nitro-server@3.21.8(db0@0.3.4)(encoding@0.1.13)(ioredis@5.11.1)(magicast@0.5.3)(nuxt@3.21.8(@parcel/watcher@2.5.6)(@types/node@25.9.3)(@vue/compiler-sfc@3.5.38)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(encoding@0.1.13)(eslint@10.5.0(jiti@2.7.0))(ioredis@5.11.1)(less@4.6.6)(lightningcss@1.32.0)(magicast@0.5.3)(meow@14.1.0)(optionator@0.9.4)(rolldown@1.1.1)(rollup-plugin-visualizer@7.0.1(rolldown@1.1.1)(rollup@4.62.2))(rollup@4.62.2)(sass@1.101.0)(stylelint@16.26.1(typescript@6.0.3))(stylus@0.64.0)(terser@5.48.0)(typescript@6.0.3)(vite@8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.5(typescript@6.0.3))(xml2js@0.6.2)(yaml@2.9.0))(oxc-parser@0.132.0)(rolldown@1.1.1)(typescript@6.0.3)(xml2js@0.6.2)': dependencies: '@nuxt/devalue': 2.0.2 '@nuxt/kit': 3.21.8(magicast@0.5.3) @@ -48548,7 +48839,7 @@ snapshots: klona: 2.0.6 mocked-exports: 0.1.1 nitropack: 2.13.4(encoding@0.1.13)(oxc-parser@0.132.0)(rolldown@1.1.1)(srvx@0.11.16)(xml2js@0.6.2) - nuxt: 3.21.8(@parcel/watcher@2.5.6)(@types/node@25.9.3)(@vue/compiler-sfc@3.5.38)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(encoding@0.1.13)(eslint@10.5.0(jiti@2.7.0))(ioredis@5.11.1)(less@4.6.6)(lightningcss@1.32.0)(magicast@0.5.3)(meow@14.1.0)(optionator@0.9.4)(rolldown@1.1.1)(rollup-plugin-visualizer@7.0.1(rolldown@1.1.1)(rollup@4.62.0))(rollup@4.62.0)(sass@1.101.0)(stylelint@16.26.1(typescript@6.0.3))(stylus@0.64.0)(terser@5.48.0)(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.5(typescript@6.0.3))(xml2js@0.6.2)(yaml@2.9.0) + nuxt: 3.21.8(@parcel/watcher@2.5.6)(@types/node@25.9.3)(@vue/compiler-sfc@3.5.38)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(encoding@0.1.13)(eslint@10.5.0(jiti@2.7.0))(ioredis@5.11.1)(less@4.6.6)(lightningcss@1.32.0)(magicast@0.5.3)(meow@14.1.0)(optionator@0.9.4)(rolldown@1.1.1)(rollup-plugin-visualizer@7.0.1(rolldown@1.1.1)(rollup@4.62.2))(rollup@4.62.2)(sass@1.101.0)(stylelint@16.26.1(typescript@6.0.3))(stylus@0.64.0)(terser@5.48.0)(typescript@6.0.3)(vite@8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.5(typescript@6.0.3))(xml2js@0.6.2)(yaml@2.9.0) ohash: 2.0.11 pathe: 2.0.3 pkg-types: 2.3.1 @@ -48598,7 +48889,79 @@ snapshots: - uploadthing - xml2js - '@nuxt/nitro-server@4.4.8(c4ff195fe9034f1d7cb8c0ada1da132d)': + '@nuxt/nitro-server@4.4.8(0c2f4d7e13475a54281476c97f90bf3f)': + dependencies: + '@nuxt/devalue': 2.0.2 + '@nuxt/kit': 4.4.8(magicast@0.5.3) + '@unhead/vue': 2.1.15(vue@3.5.38(typescript@6.0.3)) + '@vue/shared': 3.5.38 + consola: 3.4.2 + defu: 6.1.7 + destr: 2.0.5 + devalue: 5.8.1 + errx: 0.1.0 + escape-string-regexp: 5.0.0 + exsolve: 1.0.8 + h3: 1.15.11 + impound: 1.1.5 + klona: 2.0.6 + mocked-exports: 0.1.1 + nitropack: 2.13.4(encoding@0.1.13)(oxc-parser@0.133.0)(rolldown@1.1.1)(xml2js@0.6.2) + nuxt: 4.4.8(@babel/plugin-proposal-decorators@7.29.7(@babel/core@8.0.1))(@babel/plugin-syntax-jsx@7.29.7(@babel/core@8.0.1))(@babel/plugin-syntax-typescript@7.29.7(@babel/core@8.0.1))(@parcel/watcher@2.5.6)(@rollup/plugin-babel@7.1.0(@babel/core@8.0.1)(@types/babel__core@7.20.5)(rollup@4.62.2))(@types/node@25.9.3)(@vue/compiler-sfc@3.5.38)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(encoding@0.1.13)(eslint@10.5.0(jiti@2.7.0))(ioredis@5.11.1)(less@4.6.6)(lightningcss@1.32.0)(magicast@0.5.3)(meow@14.1.0)(optionator@0.9.4)(rolldown@1.1.1)(rollup-plugin-visualizer@7.0.1(rolldown@1.1.1)(rollup@4.62.2))(rollup@4.62.2)(sass@1.101.0)(stylelint@16.26.1(typescript@6.0.3))(stylus@0.64.0)(terser@5.48.0)(typescript@6.0.3)(vite@8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.5(typescript@6.0.3))(xml2js@0.6.2)(yaml@2.9.0) + nypm: 0.6.7 + ohash: 2.0.11 + pathe: 2.0.3 + rou3: 0.8.1 + std-env: 4.1.0 + ufo: 1.6.4 + unctx: 2.5.0 + unstorage: 1.17.5(db0@0.3.4)(ioredis@5.11.1) + vue: 3.5.38(typescript@6.0.3) + vue-bundle-renderer: 2.2.0 + vue-devtools-stub: 0.1.0 + optionalDependencies: + '@babel/plugin-proposal-decorators': 7.29.7(@babel/core@8.0.1) + '@babel/plugin-syntax-typescript': 7.29.7(@babel/core@8.0.1) + '@rollup/plugin-babel': 7.1.0(@babel/core@8.0.1)(@types/babel__core@7.20.5)(rollup@4.62.2) + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@deno/kv' + - '@electric-sql/pglite' + - '@libsql/client' + - '@netlify/blobs' + - '@planetscale/database' + - '@upstash/redis' + - '@vercel/blob' + - '@vercel/functions' + - '@vercel/kv' + - aws4fetch + - bare-abort-controller + - bare-buffer + - better-sqlite3 + - db0 + - drizzle-orm + - encoding + - idb-keyval + - ioredis + - magicast + - mysql2 + - oxc-parser + - react-native-b4a + - rolldown + - sqlite3 + - srvx + - supports-color + - typescript + - uploadthing + - xml2js + + '@nuxt/nitro-server@4.4.8(40a1ced0029f84355d6ba3c39a86f7f2)': dependencies: '@nuxt/devalue': 2.0.2 '@nuxt/kit': 4.4.8(magicast@0.5.3) @@ -48616,7 +48979,7 @@ snapshots: klona: 2.0.6 mocked-exports: 0.1.1 nitropack: 2.13.4(encoding@0.1.13)(oxc-parser@0.133.0)(rolldown@1.1.1)(xml2js@0.6.2) - nuxt: 4.4.8(@babel/plugin-proposal-decorators@7.29.7(@babel/core@8.0.1))(@babel/plugin-syntax-jsx@7.29.7(@babel/core@8.0.1))(@babel/plugin-syntax-typescript@7.29.7(@babel/core@8.0.1))(@parcel/watcher@2.5.6)(@rollup/plugin-babel@7.1.0(@babel/core@8.0.1)(@types/babel__core@7.20.5)(rollup@4.62.0))(@types/node@25.9.3)(@vue/compiler-sfc@3.5.38)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(encoding@0.1.13)(eslint@10.5.0(jiti@2.7.0))(ioredis@5.11.1)(less@4.6.6)(lightningcss@1.32.0)(magicast@0.5.3)(meow@14.1.0)(optionator@0.9.4)(rolldown@1.1.1)(rollup-plugin-visualizer@7.0.1(rolldown@1.1.1)(rollup@4.62.0))(rollup@4.62.0)(sass@1.101.0)(stylelint@16.26.1(typescript@6.0.3))(stylus@0.64.0)(terser@5.48.0)(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.5(typescript@6.0.3))(xml2js@0.6.2)(yaml@2.9.0) + nuxt: 4.4.8(@babel/plugin-proposal-decorators@7.29.7(@babel/core@8.0.1))(@babel/plugin-syntax-jsx@7.29.7(@babel/core@8.0.1))(@babel/plugin-syntax-typescript@7.29.7(@babel/core@8.0.1))(@parcel/watcher@2.5.6)(@rollup/plugin-babel@7.1.0(@babel/core@8.0.1)(@types/babel__core@7.20.5)(rollup@4.62.2))(@types/node@25.9.3)(@vue/compiler-sfc@3.5.38)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(encoding@0.1.13)(eslint@10.5.0(jiti@2.7.0))(ioredis@5.11.1)(less@4.6.6)(lightningcss@1.32.0)(magicast@0.5.3)(meow@14.1.0)(optionator@0.9.4)(rolldown@1.1.1)(rollup-plugin-visualizer@7.0.1(rolldown@1.1.1)(rollup@4.62.2))(rollup@4.62.0)(sass@1.101.0)(stylelint@16.26.1(typescript@6.0.3))(stylus@0.64.0)(terser@5.48.0)(typescript@6.0.3)(vite@8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.5(typescript@6.0.3))(xml2js@0.6.2)(yaml@2.9.0) nypm: 0.6.7 ohash: 2.0.11 pathe: 2.0.3 @@ -48631,7 +48994,7 @@ snapshots: optionalDependencies: '@babel/plugin-proposal-decorators': 7.29.7(@babel/core@8.0.1) '@babel/plugin-syntax-typescript': 7.29.7(@babel/core@8.0.1) - '@rollup/plugin-babel': 7.1.0(@babel/core@8.0.1)(@types/babel__core@7.20.5)(rollup@4.62.0) + '@rollup/plugin-babel': 7.1.0(@babel/core@8.0.1)(@types/babel__core@7.20.5)(rollup@4.62.2) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -48798,10 +49161,10 @@ snapshots: ua-parser-js: 1.0.41 ufo: 1.6.4 - '@nuxt/vite-builder@3.21.8(7107088f52ca05d3b951cdb5018e32bb)': + '@nuxt/vite-builder@3.21.8(c9bbb9d880a3f43926f265af76304359)': dependencies: '@nuxt/kit': 3.21.8(magicast@0.5.3) - '@rollup/plugin-replace': 6.0.3(rollup@4.62.0) + '@rollup/plugin-replace': 6.0.3(rollup@4.62.2) '@vitejs/plugin-vue': 6.0.7(vite@7.3.5(@types/node@25.9.3)(jiti@2.7.0)(less@4.6.6)(lightningcss@1.32.0)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.38(typescript@6.0.3)) '@vitejs/plugin-vue-jsx': 5.1.5(vite@7.3.5(@types/node@25.9.3)(jiti@2.7.0)(less@4.6.6)(lightningcss@1.32.0)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.38(typescript@6.0.3)) autoprefixer: 10.5.0(postcss@8.5.15) @@ -48817,7 +49180,7 @@ snapshots: magic-string: 0.30.21 mlly: 1.8.2 mocked-exports: 0.1.1 - nuxt: 3.21.8(@parcel/watcher@2.5.6)(@types/node@25.9.3)(@vue/compiler-sfc@3.5.38)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(encoding@0.1.13)(eslint@10.5.0(jiti@2.7.0))(ioredis@5.11.1)(less@4.6.6)(lightningcss@1.32.0)(magicast@0.5.3)(meow@14.1.0)(optionator@0.9.4)(rolldown@1.1.1)(rollup-plugin-visualizer@7.0.1(rolldown@1.1.1)(rollup@4.62.0))(rollup@4.62.0)(sass@1.101.0)(stylelint@16.26.1(typescript@6.0.3))(stylus@0.64.0)(terser@5.48.0)(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.5(typescript@6.0.3))(xml2js@0.6.2)(yaml@2.9.0) + nuxt: 3.21.8(@parcel/watcher@2.5.6)(@types/node@25.9.3)(@vue/compiler-sfc@3.5.38)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(encoding@0.1.13)(eslint@10.5.0(jiti@2.7.0))(ioredis@5.11.1)(less@4.6.6)(lightningcss@1.32.0)(magicast@0.5.3)(meow@14.1.0)(optionator@0.9.4)(rolldown@1.1.1)(rollup-plugin-visualizer@7.0.1(rolldown@1.1.1)(rollup@4.62.2))(rollup@4.62.2)(sass@1.101.0)(stylelint@16.26.1(typescript@6.0.3))(stylus@0.64.0)(terser@5.48.0)(typescript@6.0.3)(vite@8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.5(typescript@6.0.3))(xml2js@0.6.2)(yaml@2.9.0) nypm: 0.6.7 ohash: 2.0.11 pathe: 2.0.3 @@ -48835,7 +49198,7 @@ snapshots: vue-bundle-renderer: 2.2.0 optionalDependencies: rolldown: 1.1.1 - rollup-plugin-visualizer: 7.0.1(rolldown@1.1.1)(rollup@4.62.0) + rollup-plugin-visualizer: 7.0.1(rolldown@1.1.1)(rollup@4.62.2) transitivePeerDependencies: - '@biomejs/biome' - '@types/node' @@ -48861,7 +49224,7 @@ snapshots: - vue-tsc - yaml - '@nuxt/vite-builder@3.21.8(9a2ba7ad2787a68a46599744ee88c30c)': + '@nuxt/vite-builder@3.21.8(e6ed81320246c0bbae8805ade5e30142)': dependencies: '@nuxt/kit': 3.21.8(magicast@0.5.3) '@rollup/plugin-replace': 6.0.3(rollup@4.62.0) @@ -48880,7 +49243,7 @@ snapshots: magic-string: 0.30.21 mlly: 1.8.2 mocked-exports: 0.1.1 - nuxt: 3.21.8(@parcel/watcher@2.5.6)(@types/node@25.9.3)(@vue/compiler-sfc@3.5.38)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(encoding@0.1.13)(eslint@10.5.0(jiti@2.7.0))(ioredis@5.11.1)(less@4.6.6)(lightningcss@1.32.0)(magicast@0.5.3)(meow@14.1.0)(optionator@0.9.4)(rolldown@1.1.1)(rollup-plugin-visualizer@7.0.1(rolldown@1.1.1)(rollup@4.62.0))(rollup@4.62.0)(sass@1.101.0)(srvx@0.11.16)(stylelint@16.26.1(typescript@6.0.3))(stylus@0.64.0)(supports-color@8.1.1)(terser@5.48.0)(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.5(typescript@6.0.3))(xml2js@0.6.2)(yaml@2.9.0) + nuxt: 3.21.8(@parcel/watcher@2.5.6)(@types/node@25.9.3)(@vue/compiler-sfc@3.5.38)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(encoding@0.1.13)(eslint@10.5.0(jiti@2.7.0))(ioredis@5.11.1)(less@4.6.6)(lightningcss@1.32.0)(magicast@0.5.3)(meow@14.1.0)(optionator@0.9.4)(rolldown@1.1.1)(rollup-plugin-visualizer@7.0.1(rolldown@1.1.1)(rollup@4.62.0))(rollup@4.62.0)(sass@1.101.0)(srvx@0.11.16)(stylelint@16.26.1(typescript@6.0.3))(stylus@0.64.0)(supports-color@8.1.1)(terser@5.48.0)(typescript@6.0.3)(vite@8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.5(typescript@6.0.3))(xml2js@0.6.2)(yaml@2.9.0) nypm: 0.6.7 ohash: 2.0.11 pathe: 2.0.3 @@ -48924,7 +49287,67 @@ snapshots: - vue-tsc - yaml - '@nuxt/vite-builder@4.4.8(3f3fa0b1816a1dc51b95898b17635868)': + '@nuxt/vite-builder@4.4.8(2eac3e6ad1f1d2c87a6572663d8c76cd)': + dependencies: + '@nuxt/kit': 4.4.8(magicast@0.5.3) + '@rollup/plugin-replace': 6.0.3(rollup@4.62.2) + '@vitejs/plugin-vue': 6.0.7(vite@7.3.5(@types/node@25.9.3)(jiti@2.7.0)(less@4.6.6)(lightningcss@1.32.0)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.38(typescript@6.0.3)) + '@vitejs/plugin-vue-jsx': 5.1.5(vite@7.3.5(@types/node@25.9.3)(jiti@2.7.0)(less@4.6.6)(lightningcss@1.32.0)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.38(typescript@6.0.3)) + autoprefixer: 10.5.0(postcss@8.5.15) + consola: 3.4.2 + cssnano: 8.0.2(postcss@8.5.15) + defu: 6.1.7 + escape-string-regexp: 5.0.0 + exsolve: 1.0.8 + get-port-please: 3.2.0 + jiti: 2.7.0 + knitwork: 1.3.0 + magic-string: 0.30.21 + mlly: 1.8.2 + mocked-exports: 0.1.1 + nuxt: 4.4.8(@babel/plugin-proposal-decorators@7.29.7(@babel/core@8.0.1))(@babel/plugin-syntax-jsx@7.29.7(@babel/core@8.0.1))(@babel/plugin-syntax-typescript@7.29.7(@babel/core@8.0.1))(@parcel/watcher@2.5.6)(@rollup/plugin-babel@7.1.0(@babel/core@8.0.1)(@types/babel__core@7.20.5)(rollup@4.62.2))(@types/node@25.9.3)(@vue/compiler-sfc@3.5.38)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(encoding@0.1.13)(eslint@10.5.0(jiti@2.7.0))(ioredis@5.11.1)(less@4.6.6)(lightningcss@1.32.0)(magicast@0.5.3)(meow@14.1.0)(optionator@0.9.4)(rolldown@1.1.1)(rollup-plugin-visualizer@7.0.1(rolldown@1.1.1)(rollup@4.62.2))(rollup@4.62.2)(sass@1.101.0)(stylelint@16.26.1(typescript@6.0.3))(stylus@0.64.0)(terser@5.48.0)(typescript@6.0.3)(vite@8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.5(typescript@6.0.3))(xml2js@0.6.2)(yaml@2.9.0) + nypm: 0.6.7 + pathe: 2.0.3 + pkg-types: 2.3.1 + postcss: 8.5.15 + seroval: 1.5.4 + std-env: 4.1.0 + ufo: 1.6.4 + unenv: 2.0.0-rc.24 + vite: 7.3.5(@types/node@25.9.3)(jiti@2.7.0)(less@4.6.6)(lightningcss@1.32.0)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) + vite-node: 5.3.0(@types/node@25.9.3)(jiti@2.7.0)(less@4.6.6)(lightningcss@1.32.0)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) + vite-plugin-checker: 0.14.1(eslint@10.5.0(jiti@2.7.0))(meow@14.1.0)(optionator@0.9.4)(stylelint@16.26.1(typescript@6.0.3))(typescript@6.0.3)(vite@7.3.5(@types/node@25.9.3)(jiti@2.7.0)(less@4.6.6)(lightningcss@1.32.0)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.5(typescript@6.0.3)) + vue: 3.5.38(typescript@6.0.3) + vue-bundle-renderer: 2.2.0 + optionalDependencies: + '@babel/plugin-proposal-decorators': 7.29.7(@babel/core@8.0.1) + '@babel/plugin-syntax-jsx': 7.29.7(@babel/core@8.0.1) + rolldown: 1.1.1 + rollup-plugin-visualizer: 7.0.1(rolldown@1.1.1)(rollup@4.62.2) + transitivePeerDependencies: + - '@biomejs/biome' + - '@types/node' + - eslint + - less + - lightningcss + - magicast + - meow + - optionator + - oxlint + - rollup + - sass + - sass-embedded + - stylelint + - stylus + - sugarss + - supports-color + - terser + - tsx + - typescript + - vue-tsc + - yaml + + '@nuxt/vite-builder@4.4.8(320fe315a651c548418cb0edb410dfe3)': dependencies: '@nuxt/kit': 4.4.8(magicast@0.5.3) '@rollup/plugin-replace': 6.0.3(rollup@4.62.0) @@ -48942,7 +49365,7 @@ snapshots: magic-string: 0.30.21 mlly: 1.8.2 mocked-exports: 0.1.1 - nuxt: 4.4.8(@babel/plugin-proposal-decorators@7.29.7(@babel/core@8.0.1))(@babel/plugin-syntax-jsx@7.29.7(@babel/core@8.0.1))(@babel/plugin-syntax-typescript@7.29.7(@babel/core@8.0.1))(@parcel/watcher@2.5.6)(@rollup/plugin-babel@7.1.0(@babel/core@8.0.1)(@types/babel__core@7.20.5)(rollup@4.62.0))(@types/node@25.9.3)(@vue/compiler-sfc@3.5.38)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(encoding@0.1.13)(eslint@10.5.0(jiti@2.7.0))(ioredis@5.11.1)(less@4.6.6)(lightningcss@1.32.0)(magicast@0.5.3)(meow@14.1.0)(optionator@0.9.4)(rolldown@1.1.1)(rollup-plugin-visualizer@7.0.1(rolldown@1.1.1)(rollup@4.62.0))(rollup@4.62.0)(sass@1.101.0)(stylelint@16.26.1(typescript@6.0.3))(stylus@0.64.0)(terser@5.48.0)(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.5(typescript@6.0.3))(xml2js@0.6.2)(yaml@2.9.0) + nuxt: 4.4.8(@babel/plugin-proposal-decorators@7.29.7(@babel/core@8.0.1))(@babel/plugin-syntax-jsx@7.29.7(@babel/core@8.0.1))(@babel/plugin-syntax-typescript@7.29.7(@babel/core@8.0.1))(@parcel/watcher@2.5.6)(@rollup/plugin-babel@7.1.0(@babel/core@8.0.1)(@types/babel__core@7.20.5)(rollup@4.62.2))(@types/node@25.9.3)(@vue/compiler-sfc@3.5.38)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(encoding@0.1.13)(eslint@10.5.0(jiti@2.7.0))(ioredis@5.11.1)(less@4.6.6)(lightningcss@1.32.0)(magicast@0.5.3)(meow@14.1.0)(optionator@0.9.4)(rolldown@1.1.1)(rollup-plugin-visualizer@7.0.1(rolldown@1.1.1)(rollup@4.62.2))(rollup@4.62.0)(sass@1.101.0)(stylelint@16.26.1(typescript@6.0.3))(stylus@0.64.0)(terser@5.48.0)(typescript@6.0.3)(vite@8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.5(typescript@6.0.3))(xml2js@0.6.2)(yaml@2.9.0) nypm: 0.6.7 pathe: 2.0.3 pkg-types: 2.3.1 @@ -48960,7 +49383,7 @@ snapshots: '@babel/plugin-proposal-decorators': 7.29.7(@babel/core@8.0.1) '@babel/plugin-syntax-jsx': 7.29.7(@babel/core@8.0.1) rolldown: 1.1.1 - rollup-plugin-visualizer: 7.0.1(rolldown@1.1.1)(rollup@4.62.0) + rollup-plugin-visualizer: 7.0.1(rolldown@1.1.1)(rollup@4.62.2) transitivePeerDependencies: - '@biomejs/biome' - '@types/node' @@ -49292,14 +49715,25 @@ snapshots: mustache: 2.3.2 stack-trace: 0.0.10 - '@nx/devkit@22.7.5(nx@22.7.5(@swc-node/register@1.11.1(@swc/core@1.15.41)(@swc/types@0.1.26)(typescript@6.0.3))(@swc/core@1.15.41))': + '@nx/devkit@22.7.5(nx@22.7.5(@swc-node/register@1.11.1(@swc/core@1.15.41)(@swc/types@0.1.26)(supports-color@8.1.1)(typescript@6.0.3))(@swc/core@1.15.41))': dependencies: '@zkochan/js-yaml': 0.0.7 ejs: 5.0.1 enquirer: 2.3.6 minimatch: 10.2.5 nx: 22.7.5(@swc-node/register@1.11.1(@swc/core@1.15.41)(@swc/types@0.1.26)(typescript@6.0.3))(@swc/core@1.15.41) - semver: 7.8.4 + semver: 7.7.2 + tslib: 2.8.1 + yargs-parser: 21.1.1 + + '@nx/devkit@23.0.0(nx@22.7.5(@swc-node/register@1.11.1(@swc/core@1.15.41)(@swc/types@0.1.26)(typescript@6.0.3))(@swc/core@1.15.41))': + dependencies: + '@zkochan/js-yaml': 0.0.7 + ejs: 5.0.1 + enquirer: 2.3.6 + minimatch: 10.2.5 + nx: 22.7.5(@swc-node/register@1.11.1(@swc/core@1.15.41)(@swc/types@0.1.26)(typescript@6.0.3))(@swc/core@1.15.41) + semver: 7.8.5 tslib: 2.8.1 yargs-parser: 21.1.1 @@ -49310,7 +49744,7 @@ snapshots: enquirer: 2.3.6 minimatch: 10.2.5 nx: 23.0.0(@swc-node/register@1.11.1(@swc/core@1.15.41)(@swc/types@0.1.26)(supports-color@8.1.1)(typescript@6.0.3))(@swc/core@1.15.41) - semver: 7.8.4 + semver: 7.8.5 tslib: 2.8.1 yargs-parser: 21.1.1 @@ -49689,7 +50123,7 @@ snapshots: '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.1)(supports-color@8.1.1) '@opentelemetry/semantic-conventions': 1.28.0 forwarded-parse: 2.1.2 - semver: 7.8.4 + semver: 7.8.5 transitivePeerDependencies: - supports-color @@ -49814,7 +50248,7 @@ snapshots: '@types/shimmer': 1.2.0 import-in-the-middle: 1.15.0 require-in-the-middle: 7.5.2(supports-color@8.1.1) - semver: 7.8.4 + semver: 7.8.5 shimmer: 1.2.1 transitivePeerDependencies: - supports-color @@ -50708,8 +51142,8 @@ snapshots: debug: 4.4.3(supports-color@8.1.1) extract-zip: 2.0.1(supports-color@8.1.1) progress: 2.0.3 - proxy-agent: 6.5.0 - semver: 7.8.4 + proxy-agent: 6.5.0(supports-color@8.1.1) + semver: 7.8.5 tar-fs: 3.1.2 yargs: 17.7.2 transitivePeerDependencies: @@ -50723,8 +51157,8 @@ snapshots: debug: 4.4.3(supports-color@8.1.1) extract-zip: 2.0.1(supports-color@8.1.1) progress: 2.0.3 - proxy-agent: 6.5.0 - semver: 7.8.4 + proxy-agent: 6.5.0(supports-color@8.1.1) + semver: 7.8.5 tar-fs: 3.1.2 unbzip2-stream: 1.4.3 yargs: 17.7.2 @@ -51182,6 +51616,19 @@ snapshots: transitivePeerDependencies: - supports-color + '@rollup/plugin-babel@7.1.0(@babel/core@8.0.1)(@types/babel__core@7.20.5)(rollup@4.62.2)': + dependencies: + '@babel/core': 8.0.1 + '@babel/helper-module-imports': 7.29.7 + '@rollup/pluginutils': 5.4.0(rollup@4.62.2) + workerpool: 9.3.4 + optionalDependencies: + '@types/babel__core': 7.20.5 + rollup: 4.62.2 + transitivePeerDependencies: + - supports-color + optional: true + '@rollup/plugin-commonjs@28.0.9(rollup@4.62.0)': dependencies: '@rollup/pluginutils': 5.4.0(rollup@4.62.0) @@ -51220,6 +51667,12 @@ snapshots: optionalDependencies: rollup: 4.62.0 + '@rollup/plugin-json@6.1.0(rollup@4.62.2)': + dependencies: + '@rollup/pluginutils': 5.4.0(rollup@4.62.2) + optionalDependencies: + rollup: 4.62.2 + '@rollup/plugin-node-resolve@11.2.1(rollup@2.80.0)': dependencies: '@rollup/pluginutils': 3.1.0(rollup@2.80.0) @@ -51272,6 +51725,13 @@ snapshots: optionalDependencies: rollup: 4.62.0 + '@rollup/plugin-replace@6.0.3(rollup@4.62.2)': + dependencies: + '@rollup/pluginutils': 5.4.0(rollup@4.62.2) + magic-string: 0.30.21 + optionalDependencies: + rollup: 4.62.2 + '@rollup/plugin-terser@1.0.0(rollup@4.62.0)': dependencies: serialize-javascript: 7.0.5 @@ -51309,18 +51769,32 @@ snapshots: optionalDependencies: rollup: 4.62.0 + '@rollup/pluginutils@5.4.0(rollup@4.62.2)': + dependencies: + '@types/estree': 1.0.9 + estree-walker: 2.0.2 + picomatch: 4.0.4 + optionalDependencies: + rollup: 4.62.2 + '@rollup/rollup-android-arm-eabi@4.60.2': optional: true '@rollup/rollup-android-arm-eabi@4.62.0': optional: true + '@rollup/rollup-android-arm-eabi@4.62.2': + optional: true + '@rollup/rollup-android-arm64@4.60.2': optional: true '@rollup/rollup-android-arm64@4.62.0': optional: true + '@rollup/rollup-android-arm64@4.62.2': + optional: true + '@rollup/rollup-darwin-arm64@4.44.0': optional: true @@ -51330,6 +51804,9 @@ snapshots: '@rollup/rollup-darwin-arm64@4.62.0': optional: true + '@rollup/rollup-darwin-arm64@4.62.2': + optional: true + '@rollup/rollup-darwin-x64@4.44.0': optional: true @@ -51339,30 +51816,45 @@ snapshots: '@rollup/rollup-darwin-x64@4.62.0': optional: true + '@rollup/rollup-darwin-x64@4.62.2': + optional: true + '@rollup/rollup-freebsd-arm64@4.60.2': optional: true '@rollup/rollup-freebsd-arm64@4.62.0': optional: true + '@rollup/rollup-freebsd-arm64@4.62.2': + optional: true + '@rollup/rollup-freebsd-x64@4.60.2': optional: true '@rollup/rollup-freebsd-x64@4.62.0': optional: true + '@rollup/rollup-freebsd-x64@4.62.2': + optional: true + '@rollup/rollup-linux-arm-gnueabihf@4.60.2': optional: true '@rollup/rollup-linux-arm-gnueabihf@4.62.0': optional: true + '@rollup/rollup-linux-arm-gnueabihf@4.62.2': + optional: true + '@rollup/rollup-linux-arm-musleabihf@4.60.2': optional: true '@rollup/rollup-linux-arm-musleabihf@4.62.0': optional: true + '@rollup/rollup-linux-arm-musleabihf@4.62.2': + optional: true + '@rollup/rollup-linux-arm64-gnu@4.44.0': optional: true @@ -51372,6 +51864,9 @@ snapshots: '@rollup/rollup-linux-arm64-gnu@4.62.0': optional: true + '@rollup/rollup-linux-arm64-gnu@4.62.2': + optional: true + '@rollup/rollup-linux-arm64-musl@4.44.0': optional: true @@ -51381,48 +51876,72 @@ snapshots: '@rollup/rollup-linux-arm64-musl@4.62.0': optional: true + '@rollup/rollup-linux-arm64-musl@4.62.2': + optional: true + '@rollup/rollup-linux-loong64-gnu@4.60.2': optional: true '@rollup/rollup-linux-loong64-gnu@4.62.0': optional: true + '@rollup/rollup-linux-loong64-gnu@4.62.2': + optional: true + '@rollup/rollup-linux-loong64-musl@4.60.2': optional: true '@rollup/rollup-linux-loong64-musl@4.62.0': optional: true + '@rollup/rollup-linux-loong64-musl@4.62.2': + optional: true + '@rollup/rollup-linux-ppc64-gnu@4.60.2': optional: true '@rollup/rollup-linux-ppc64-gnu@4.62.0': optional: true + '@rollup/rollup-linux-ppc64-gnu@4.62.2': + optional: true + '@rollup/rollup-linux-ppc64-musl@4.60.2': optional: true '@rollup/rollup-linux-ppc64-musl@4.62.0': optional: true + '@rollup/rollup-linux-ppc64-musl@4.62.2': + optional: true + '@rollup/rollup-linux-riscv64-gnu@4.60.2': optional: true '@rollup/rollup-linux-riscv64-gnu@4.62.0': optional: true + '@rollup/rollup-linux-riscv64-gnu@4.62.2': + optional: true + '@rollup/rollup-linux-riscv64-musl@4.60.2': optional: true '@rollup/rollup-linux-riscv64-musl@4.62.0': optional: true + '@rollup/rollup-linux-riscv64-musl@4.62.2': + optional: true + '@rollup/rollup-linux-s390x-gnu@4.60.2': optional: true '@rollup/rollup-linux-s390x-gnu@4.62.0': optional: true + '@rollup/rollup-linux-s390x-gnu@4.62.2': + optional: true + '@rollup/rollup-linux-x64-gnu@4.44.0': optional: true @@ -51432,6 +51951,9 @@ snapshots: '@rollup/rollup-linux-x64-gnu@4.62.0': optional: true + '@rollup/rollup-linux-x64-gnu@4.62.2': + optional: true + '@rollup/rollup-linux-x64-musl@4.44.0': optional: true @@ -51441,18 +51963,27 @@ snapshots: '@rollup/rollup-linux-x64-musl@4.62.0': optional: true + '@rollup/rollup-linux-x64-musl@4.62.2': + optional: true + '@rollup/rollup-openbsd-x64@4.60.2': optional: true '@rollup/rollup-openbsd-x64@4.62.0': optional: true + '@rollup/rollup-openbsd-x64@4.62.2': + optional: true + '@rollup/rollup-openharmony-arm64@4.60.2': optional: true '@rollup/rollup-openharmony-arm64@4.62.0': optional: true + '@rollup/rollup-openharmony-arm64@4.62.2': + optional: true + '@rollup/rollup-win32-arm64-msvc@4.44.0': optional: true @@ -51462,18 +51993,27 @@ snapshots: '@rollup/rollup-win32-arm64-msvc@4.62.0': optional: true + '@rollup/rollup-win32-arm64-msvc@4.62.2': + optional: true + '@rollup/rollup-win32-ia32-msvc@4.60.2': optional: true '@rollup/rollup-win32-ia32-msvc@4.62.0': optional: true + '@rollup/rollup-win32-ia32-msvc@4.62.2': + optional: true + '@rollup/rollup-win32-x64-gnu@4.60.2': optional: true '@rollup/rollup-win32-x64-gnu@4.62.0': optional: true + '@rollup/rollup-win32-x64-gnu@4.62.2': + optional: true + '@rollup/rollup-win32-x64-msvc@4.44.0': optional: true @@ -51483,7 +52023,10 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.62.0': optional: true - '@rollup/wasm-node@4.62.0': + '@rollup/rollup-win32-x64-msvc@4.62.2': + optional: true + + '@rollup/wasm-node@4.62.2': dependencies: '@types/estree': 1.0.9 optionalDependencies: @@ -52352,7 +52895,7 @@ snapshots: '@types/bonjour@3.5.13': dependencies: - '@types/node': 25.9.3 + '@types/node': 25.9.4 '@types/browserslist-useragent@3.0.7': {} @@ -52389,7 +52932,7 @@ snapshots: '@types/connect-history-api-fallback@1.5.4': dependencies: '@types/express-serve-static-core': 5.1.1 - '@types/node': 25.9.3 + '@types/node': 25.9.4 '@types/connect-livereload@0.6.3': dependencies: @@ -52424,6 +52967,26 @@ snapshots: '@types/deep-eql@4.0.2': {} + '@types/ember@4.0.11': + dependencies: + '@types/ember__application': 4.0.11(@babel/core@7.29.0) + '@types/ember__array': 4.0.10 + '@types/ember__component': 4.0.22 + '@types/ember__controller': 4.0.12 + '@types/ember__debug': 4.0.8 + '@types/ember__engine': 4.0.11 + '@types/ember__error': 4.0.6 + '@types/ember__object': 4.0.12(@babel/core@7.29.0) + '@types/ember__polyfills': 4.0.6 + '@types/ember__routing': 4.0.23 + '@types/ember__runloop': 4.0.10 + '@types/ember__service': 4.0.9 + '@types/ember__string': 3.0.15 + '@types/ember__template': 4.0.7 + '@types/ember__test': 4.0.6(@babel/core@7.29.0) + '@types/ember__utils': 4.0.7 + '@types/rsvp': 4.0.9 + '@types/ember@4.0.11(@babel/core@7.29.0)': dependencies: '@types/ember__application': 4.0.11(@babel/core@7.29.0) @@ -52459,6 +53022,11 @@ snapshots: - '@babel/core' - supports-color + '@types/ember__array@4.0.10': + dependencies: + '@types/ember': 4.0.11 + '@types/ember__object': 4.0.12 + '@types/ember__array@4.0.10(@babel/core@7.29.0)': dependencies: '@types/ember': 4.0.11(@babel/core@7.29.0) @@ -52467,14 +53035,23 @@ snapshots: - '@babel/core' - supports-color + '@types/ember__component@4.0.22': + dependencies: + '@types/ember': 4.0.11 + '@types/ember__object': 4.0.12 + '@types/ember__component@4.0.22(@babel/core@7.29.0)': dependencies: '@types/ember': 4.0.11(@babel/core@7.29.0) - '@types/ember__object': 4.0.12(@babel/core@7.29.0) + '@types/ember__object': 4.0.12 transitivePeerDependencies: - '@babel/core' - supports-color + '@types/ember__controller@4.0.12': + dependencies: + '@types/ember__object': 4.0.12 + '@types/ember__controller@4.0.12(@babel/core@7.29.0)': dependencies: '@types/ember__object': 4.0.12(@babel/core@7.29.0) @@ -52482,6 +53059,11 @@ snapshots: - '@babel/core' - supports-color + '@types/ember__debug@4.0.8': + dependencies: + '@types/ember__object': 4.0.12 + '@types/ember__owner': 4.0.9 + '@types/ember__debug@4.0.8(@babel/core@7.29.0)': dependencies: '@types/ember__object': 4.0.12(@babel/core@7.29.0) @@ -52492,6 +53074,11 @@ snapshots: '@types/ember__destroyable@4.0.5': {} + '@types/ember__engine@4.0.11': + dependencies: + '@types/ember__object': 4.0.12 + '@types/ember__owner': 4.0.9 + '@types/ember__engine@4.0.11(@babel/core@7.29.0)': dependencies: '@types/ember__object': 4.0.12(@babel/core@7.29.0) @@ -52502,6 +53089,11 @@ snapshots: '@types/ember__error@4.0.6': {} + '@types/ember__object@4.0.12': + dependencies: + '@types/ember': 4.0.11 + '@types/rsvp': 4.0.9 + '@types/ember__object@4.0.12(@babel/core@7.29.0)': dependencies: '@types/ember': 4.0.11(@babel/core@7.29.0) @@ -52514,16 +53106,27 @@ snapshots: '@types/ember__polyfills@4.0.6': {} + '@types/ember__routing@4.0.23': + dependencies: + '@types/ember': 4.0.11 + '@types/ember__controller': 4.0.12 + '@types/ember__object': 4.0.12 + '@types/ember__service': 4.0.9 + '@types/ember__routing@4.0.23(@babel/core@7.29.0)': dependencies: '@types/ember': 4.0.11(@babel/core@7.29.0) - '@types/ember__controller': 4.0.12(@babel/core@7.29.0) + '@types/ember__controller': 4.0.12 '@types/ember__object': 4.0.12(@babel/core@7.29.0) - '@types/ember__service': 4.0.9(@babel/core@7.29.0) + '@types/ember__service': 4.0.9 transitivePeerDependencies: - '@babel/core' - supports-color + '@types/ember__runloop@4.0.10': + dependencies: + '@types/ember': 4.0.11 + '@types/ember__runloop@4.0.10(@babel/core@7.29.0)': dependencies: '@types/ember': 4.0.11(@babel/core@7.29.0) @@ -52531,6 +53134,10 @@ snapshots: - '@babel/core' - supports-color + '@types/ember__service@4.0.9': + dependencies: + '@types/ember__object': 4.0.12 + '@types/ember__service@4.0.9(@babel/core@7.29.0)': dependencies: '@types/ember__object': 4.0.12(@babel/core@7.29.0) @@ -52553,6 +53160,10 @@ snapshots: - '@babel/core' - supports-color + '@types/ember__utils@4.0.7': + dependencies: + '@types/ember': 4.0.11 + '@types/ember__utils@4.0.7(@babel/core@7.29.0)': dependencies: '@types/ember': 4.0.11(@babel/core@7.29.0) @@ -52588,7 +53199,7 @@ snapshots: '@types/express-serve-static-core@4.19.8': dependencies: - '@types/node': 25.9.3 + '@types/node': 25.9.4 '@types/qs': 6.15.1 '@types/range-parser': 1.2.7 '@types/send': 1.2.1 @@ -52660,7 +53271,7 @@ snapshots: '@types/http-proxy@1.17.17': dependencies: - '@types/node': 25.9.3 + '@types/node': 25.9.4 '@types/istanbul-lib-coverage@2.0.6': {} @@ -52840,6 +53451,14 @@ snapshots: dependencies: undici-types: 7.24.6 + '@types/node@25.9.4': + dependencies: + undici-types: 7.24.6 + + '@types/node@26.0.0': + dependencies: + undici-types: 8.3.0 + '@types/normalize-package-data@2.4.4': {} '@types/optimize-css-assets-webpack-plugin@5.0.8': @@ -52931,11 +53550,11 @@ snapshots: '@types/send@0.17.6': dependencies: '@types/mime': 1.3.5 - '@types/node': 25.9.3 + '@types/node': 25.9.4 '@types/send@1.2.1': dependencies: - '@types/node': 25.9.3 + '@types/node': 25.9.4 '@types/serve-index@1.9.4': dependencies: @@ -52944,7 +53563,7 @@ snapshots: '@types/serve-static@1.15.10': dependencies: '@types/http-errors': 2.0.5 - '@types/node': 25.9.3 + '@types/node': 25.9.4 '@types/send': 0.17.6 '@types/serve-static@1.15.7': @@ -52979,7 +53598,7 @@ snapshots: '@types/sockjs@0.3.36': dependencies: - '@types/node': 25.9.3 + '@types/node': 25.9.4 '@types/source-list-map@0.1.6': {} @@ -53051,13 +53670,13 @@ snapshots: '@types/webpack-sources@3.2.3': dependencies: - '@types/node': 25.9.3 + '@types/node': 25.9.4 '@types/source-list-map': 0.1.6 source-map: 0.7.6 '@types/webpack@4.41.40': dependencies: - '@types/node': 25.9.3 + '@types/node': 25.9.4 '@types/tapable': 1.0.12 '@types/uglify-js': 3.17.5 '@types/webpack-sources': 3.2.3 @@ -53074,7 +53693,7 @@ snapshots: '@types/ws@8.18.1': dependencies: - '@types/node': 25.9.3 + '@types/node': 25.9.4 '@types/yargs-parser@21.0.3': {} @@ -53175,7 +53794,7 @@ snapshots: dependencies: '@typescript-eslint/scope-manager': 6.21.0 '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/typescript-estree': 6.21.0(typescript@6.0.3) + '@typescript-eslint/typescript-estree': 6.21.0(supports-color@8.1.1)(typescript@6.0.3) '@typescript-eslint/visitor-keys': 6.21.0 debug: 4.4.3(supports-color@8.1.1) eslint: 10.5.0(jiti@2.7.0) @@ -53276,7 +53895,7 @@ snapshots: '@typescript-eslint/type-utils@6.21.0(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1)(typescript@6.0.3)': dependencies: - '@typescript-eslint/typescript-estree': 6.21.0(typescript@6.0.3) + '@typescript-eslint/typescript-estree': 6.21.0(supports-color@8.1.1)(typescript@6.0.3) '@typescript-eslint/utils': 6.21.0(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) debug: 4.4.3(supports-color@8.1.1) eslint: 10.5.0(jiti@2.7.0) @@ -53330,7 +53949,7 @@ snapshots: '@typescript-eslint/types@8.61.1': {} - '@typescript-eslint/typescript-estree@6.21.0(typescript@6.0.3)': + '@typescript-eslint/typescript-estree@6.21.0(supports-color@8.1.1)(typescript@6.0.3)': dependencies: '@typescript-eslint/types': 6.21.0 '@typescript-eslint/visitor-keys': 6.21.0 @@ -53338,7 +53957,7 @@ snapshots: globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.3 - semver: 7.8.4 + semver: 7.8.5 ts-api-utils: 1.4.3(typescript@6.0.3) optionalDependencies: typescript: 6.0.3 @@ -53353,7 +53972,7 @@ snapshots: '@typescript-eslint/visitor-keys': 8.56.1 debug: 4.4.3(supports-color@8.1.1) minimatch: 10.2.5 - semver: 7.8.4 + semver: 7.8.5 tinyglobby: 0.2.17 ts-api-utils: 2.5.0(typescript@6.0.3) typescript: 6.0.3 @@ -53368,7 +53987,7 @@ snapshots: '@typescript-eslint/visitor-keys': 8.61.1 debug: 4.4.3(supports-color@8.1.1) minimatch: 10.2.5 - semver: 7.8.4 + semver: 7.8.5 tinyglobby: 0.2.17 ts-api-utils: 2.5.0(typescript@5.9.3) typescript: 5.9.3 @@ -53383,7 +54002,7 @@ snapshots: '@typescript-eslint/visitor-keys': 8.61.1 debug: 4.4.3(supports-color@8.1.1) minimatch: 10.2.5 - semver: 7.8.4 + semver: 7.8.5 tinyglobby: 0.2.17 ts-api-utils: 2.5.0(typescript@6.0.3) typescript: 6.0.3 @@ -53397,7 +54016,7 @@ snapshots: '@types/semver': 7.7.1 '@typescript-eslint/scope-manager': 6.21.0 '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/typescript-estree': 6.21.0(typescript@6.0.3) + '@typescript-eslint/typescript-estree': 6.21.0(supports-color@8.1.1)(typescript@6.0.3) eslint: 10.5.0(jiti@2.7.0) semver: 7.8.4 transitivePeerDependencies: @@ -53698,6 +54317,14 @@ snapshots: optionalDependencies: vite: 8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) + '@vitest/mocker@4.1.9(vite@8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))': + dependencies: + '@vitest/spy': 4.1.9 + estree-walker: 3.0.3 + magic-string: 0.30.21 + optionalDependencies: + vite: 8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) + '@vitest/pretty-format@4.1.7': dependencies: tinyrainbow: 3.1.0 @@ -53907,7 +54534,7 @@ snapshots: '@vue/babel-preset-jsx': 1.4.0(@babel/core@7.29.0)(vue@2.7.16) babel-plugin-dynamic-import-node: 2.3.3 core-js-compat: 3.49.0 - semver: 7.8.4 + semver: 7.8.5 optionalDependencies: core-js: 3.49.0 vue: 2.7.16 @@ -54196,7 +54823,7 @@ snapshots: open: 8.4.2 ora: 5.4.1 read-pkg: 5.2.0 - semver: 7.8.4 + semver: 7.8.5 strip-ansi: 6.0.1 transitivePeerDependencies: - encoding @@ -55038,10 +55665,10 @@ snapshots: dependencies: '@wordpress/deprecated': 4.48.1 - '@wordpress/e2e-test-utils-playwright@1.48.1(@playwright/test@1.61.0)(@types/node@25.9.3)(supports-color@8.1.1)': + '@wordpress/e2e-test-utils-playwright@1.48.1(@playwright/test@1.61.0)(@types/node@26.0.0)(supports-color@8.1.1)': dependencies: '@playwright/test': 1.61.0 - '@types/node': 25.9.3 + '@types/node': 26.0.0 change-case: 4.1.2 get-port: 5.1.1 lighthouse: 12.8.2(supports-color@8.1.1) @@ -55068,7 +55695,7 @@ snapshots: '@wordpress/escape-html@3.48.1': {} - '@wordpress/eslint-plugin@25.4.1(@babel/core@7.29.0)(@types/eslint@9.6.1)(@typescript-eslint/eslint-plugin@8.61.1(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(jest@29.7.0(@types/node@25.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3)))(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(stylelint@16.26.1(typescript@6.0.3))(supports-color@8.1.1)(typescript@6.0.3)(wp-prettier@3.0.3)': + '@wordpress/eslint-plugin@25.4.1(@babel/core@7.29.0)(@types/eslint@9.6.1)(@typescript-eslint/eslint-plugin@8.61.1(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(jest@29.7.0(@types/node@25.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@26.0.0)(typescript@6.0.3)))(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(stylelint@16.26.1(typescript@6.0.3))(supports-color@8.1.1)(typescript@6.0.3)(wp-prettier@3.0.3)': dependencies: '@babel/core': 7.29.0 '@babel/eslint-parser': 7.29.7(@babel/core@7.29.0)(eslint@10.5.0(jiti@2.7.0)) @@ -55082,7 +55709,7 @@ snapshots: eslint-config-prettier: 10.1.8(eslint@10.5.0(jiti@2.7.0)) eslint-import-resolver-typescript: 4.4.5(eslint-plugin-import@2.32.0)(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1) eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint-import-resolver-typescript@4.4.5)(eslint@10.5.0(jiti@2.7.0)) - eslint-plugin-jest: 28.14.0(@typescript-eslint/eslint-plugin@8.61.1(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(jest@29.7.0(@types/node@25.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3)))(typescript@6.0.3) + eslint-plugin-jest: 28.14.0(@typescript-eslint/eslint-plugin@8.61.1(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(jest@29.7.0(@types/node@25.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@26.0.0)(typescript@6.0.3)))(typescript@6.0.3) eslint-plugin-jsdoc: 50.8.0(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1) eslint-plugin-jsx-a11y: 6.10.2(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-playwright: 2.10.4(eslint@10.5.0(jiti@2.7.0)) @@ -55165,18 +55792,18 @@ snapshots: '@wordpress/is-shallow-equal@5.48.1': {} - '@wordpress/jest-console@8.48.1(jest@29.7.0(@types/node@25.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3)))': + '@wordpress/jest-console@8.48.1(jest@29.7.0(@types/node@25.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@26.0.0)(typescript@6.0.3)))': dependencies: - jest: 29.7.0(@types/node@25.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3)) + jest: 29.7.0(@types/node@25.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@26.0.0)(typescript@6.0.3)) jest-matcher-utils: 29.7.0 jest-mock: 29.7.0 - '@wordpress/jest-preset-default@12.48.1(@babel/core@7.29.0)(jest@29.7.0(@types/node@25.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3)))': + '@wordpress/jest-preset-default@12.48.1(@babel/core@7.29.0)(jest@29.7.0(@types/node@25.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@26.0.0)(typescript@6.0.3)))': dependencies: '@babel/core': 7.29.0 - '@wordpress/jest-console': 8.48.1(jest@29.7.0(@types/node@25.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3))) + '@wordpress/jest-console': 8.48.1(jest@29.7.0(@types/node@25.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@26.0.0)(typescript@6.0.3))) babel-jest: 29.7.0(@babel/core@7.29.0) - jest: 29.7.0(@types/node@25.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3)) + jest: 29.7.0(@types/node@25.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@26.0.0)(typescript@6.0.3)) transitivePeerDependencies: - supports-color @@ -55283,7 +55910,7 @@ snapshots: memize: 2.1.1 react: 19.2.7 - '@wordpress/scripts@32.4.1(@playwright/test@1.61.0)(@swc/core@1.15.41)(@types/eslint@9.6.1)(@types/node@25.9.3)(@types/webpack@4.41.40)(@typescript-eslint/eslint-plugin@8.61.1(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(babel-plugin-macros@3.1.0)(canvas@3.2.3)(file-loader@6.2.0(webpack@5.107.2))(jiti@2.7.0)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(stylelint-scss@6.14.0(stylelint@16.26.1(typescript@6.0.3)))(supports-color@8.1.1)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3))(type-fest@4.41.0)(typescript@6.0.3)(webpack-hot-middleware@2.26.1)': + '@wordpress/scripts@32.4.1(@playwright/test@1.61.0)(@swc/core@1.15.41)(@types/eslint@9.6.1)(@types/node@26.0.0)(@types/webpack@4.41.40)(@typescript-eslint/eslint-plugin@8.61.1(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(babel-plugin-macros@3.1.0)(canvas@3.2.3)(file-loader@6.2.0(webpack@5.107.2))(jiti@2.7.0)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(stylelint-scss@6.14.0(stylelint@16.26.1(typescript@6.0.3)))(supports-color@8.1.1)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@26.0.0)(typescript@6.0.3))(type-fest@4.41.0)(typescript@6.0.3)(webpack-hot-middleware@2.26.1)': dependencies: '@babel/core': 7.29.0 '@playwright/test': 1.61.0 @@ -55292,9 +55919,9 @@ snapshots: '@wordpress/babel-preset-default': 8.48.1 '@wordpress/browserslist-config': 6.48.1 '@wordpress/dependency-extraction-webpack-plugin': 6.48.1(webpack@5.107.2) - '@wordpress/e2e-test-utils-playwright': 1.48.1(@playwright/test@1.61.0)(@types/node@25.9.3)(supports-color@8.1.1) - '@wordpress/eslint-plugin': 25.4.1(@babel/core@7.29.0)(@types/eslint@9.6.1)(@typescript-eslint/eslint-plugin@8.61.1(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(jest@29.7.0(@types/node@25.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3)))(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(stylelint@16.26.1(typescript@6.0.3))(supports-color@8.1.1)(typescript@6.0.3)(wp-prettier@3.0.3) - '@wordpress/jest-preset-default': 12.48.1(@babel/core@7.29.0)(jest@29.7.0(@types/node@25.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3))) + '@wordpress/e2e-test-utils-playwright': 1.48.1(@playwright/test@1.61.0)(@types/node@26.0.0)(supports-color@8.1.1) + '@wordpress/eslint-plugin': 25.4.1(@babel/core@7.29.0)(@types/eslint@9.6.1)(@typescript-eslint/eslint-plugin@8.61.1(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(jest@29.7.0(@types/node@25.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@26.0.0)(typescript@6.0.3)))(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(stylelint@16.26.1(typescript@6.0.3))(supports-color@8.1.1)(typescript@6.0.3)(wp-prettier@3.0.3) + '@wordpress/jest-preset-default': 12.48.1(@babel/core@7.29.0)(jest@29.7.0(@types/node@25.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@26.0.0)(typescript@6.0.3))) '@wordpress/npm-package-json-lint-config': 5.48.1(npm-package-json-lint@6.4.0(supports-color@8.1.1)(typescript@6.0.3)) '@wordpress/postcss-plugins-preset': 5.48.1(postcss@8.5.15) '@wordpress/prettier-config': 4.48.1(wp-prettier@3.0.3) @@ -55315,7 +55942,7 @@ snapshots: expect-puppeteer: 4.4.0 fast-glob: 3.3.3 filenamify: 4.3.0 - jest: 29.7.0(@types/node@25.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3)) + jest: 29.7.0(@types/node@25.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@26.0.0)(typescript@6.0.3)) jest-dev-server: 10.1.4 jest-environment-jsdom: 30.4.1(canvas@3.2.3) jest-environment-node: 29.7.0 @@ -56148,6 +56775,99 @@ snapshots: - uploadthing - yaml + astro@6.4.7(@types/node@26.0.0)(db0@0.3.4)(ioredis@5.11.1)(jiti@2.7.0)(less@4.6.6)(lightningcss@1.32.0)(rollup@4.62.2)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0): + dependencies: + '@astrojs/compiler': 4.0.0 + '@astrojs/internal-helpers': 0.10.0 + '@astrojs/markdown-remark': 7.2.0 + '@astrojs/telemetry': 3.3.2 + '@capsizecss/unpack': 4.0.1 + '@clack/prompts': 1.5.1 + '@oslojs/encoding': 1.1.0 + '@rollup/pluginutils': 5.4.0(rollup@4.62.2) + aria-query: 5.3.2 + axobject-query: 4.1.0 + ci-info: 4.4.0 + clsx: 2.1.1 + common-ancestor-path: 2.0.0 + cookie: 1.1.1 + devalue: 5.8.1 + diff: 8.0.4 + dset: 3.1.4 + es-module-lexer: 2.1.0 + esbuild: 0.27.7 + flattie: 1.1.1 + fontace: 0.4.1 + get-tsconfig: 5.0.0-beta.4 + github-slugger: 2.0.0 + html-escaper: 3.0.3 + http-cache-semantics: 4.2.0 + js-yaml: 4.2.0 + jsonc-parser: 3.3.1 + magic-string: 0.30.21 + magicast: 0.5.3 + mrmime: 2.0.1 + neotraverse: 0.6.18 + obug: 2.1.3 + p-limit: 7.3.0 + p-queue: 9.3.0 + package-manager-detector: 1.6.0 + piccolore: 0.1.3 + picomatch: 4.0.4 + rehype: 13.0.2 + semver: 7.8.4 + shiki: 4.2.0 + smol-toml: 1.6.1 + svgo: 4.0.1 + tinyclip: 0.1.14 + tinyexec: 1.2.4 + tinyglobby: 0.2.17 + ultrahtml: 1.6.0 + unifont: 0.7.4 + unist-util-visit: 5.1.0 + unstorage: 1.17.5(db0@0.3.4)(ioredis@5.11.1) + vfile: 6.0.3 + vite: 7.3.5(@types/node@26.0.0)(jiti@2.7.0)(less@4.6.6)(lightningcss@1.32.0)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) + vitefu: 1.1.3(vite@7.3.5(@types/node@26.0.0)(jiti@2.7.0)(less@4.6.6)(lightningcss@1.32.0)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) + xxhash-wasm: 1.1.0 + yargs-parser: 22.0.0 + zod: 4.4.3 + optionalDependencies: + sharp: 0.34.5 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@deno/kv' + - '@netlify/blobs' + - '@planetscale/database' + - '@types/node' + - '@upstash/redis' + - '@vercel/blob' + - '@vercel/functions' + - '@vercel/kv' + - aws4fetch + - db0 + - idb-keyval + - ioredis + - jiti + - less + - lightningcss + - rollup + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - uploadthing + - yaml + async-disk-cache@1.3.5: dependencies: debug: 2.6.9 @@ -57631,7 +58351,7 @@ snapshots: dependencies: browserslist: 4.28.2 electron-to-chromium: 1.5.372 - semver: 7.8.4 + semver: 7.8.5 useragent: 2.3.0 yamlparser: 0.0.2 @@ -57684,7 +58404,7 @@ snapshots: builtins@5.1.0: dependencies: - semver: 7.8.4 + semver: 7.8.5 bundle-name@4.1.0: dependencies: @@ -58764,7 +59484,7 @@ snapshots: handlebars: 4.7.9 json-stringify-safe: 5.0.1 meow: 8.1.2 - semver: 7.8.4 + semver: 7.7.2 split: 1.0.1 conventional-commits-filter@3.0.0: @@ -59022,13 +59742,13 @@ snapshots: safe-buffer: 5.2.1 sha.js: 2.4.12 - create-jest@29.7.0(@types/node@25.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3)): + create-jest@29.7.0(@types/node@25.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@26.0.0)(typescript@6.0.3)): dependencies: '@jest/types': 29.6.3 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@25.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3)) + jest-config: 29.7.0(@types/node@25.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@26.0.0)(typescript@6.0.3)) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -60114,14 +60834,14 @@ snapshots: '@one-ini/wasm': 0.1.1 commander: 10.0.1 minimatch: 9.0.9 - semver: 7.8.4 + semver: 7.8.5 editorconfig@3.0.2: dependencies: '@one-ini/wasm': 0.2.1 commander: 14.0.3 minimatch: 10.2.5 - semver: 7.8.4 + semver: 7.8.5 ee-first@1.1.1: {} @@ -60278,7 +60998,7 @@ snapshots: transitivePeerDependencies: - supports-color - ember-cli-dependency-checker@3.4.0(@babel/core@7.29.0)(ember-cli@7.0.1(@babel/core@7.29.0)(@types/node@25.9.3)(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(nunjucks@3.2.4(chokidar@3.6.0))(pug@3.0.4)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(underscore@1.13.8))(eslint@10.5.0(jiti@2.7.0)): + ember-cli-dependency-checker@3.4.0(@babel/core@7.29.0)(ember-cli@7.0.1(@babel/core@7.29.0)(@types/node@25.9.3)(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(nunjucks@3.2.4(chokidar@3.6.0))(pug@3.0.4)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(supports-color@8.1.1)(underscore@1.13.8))(eslint@10.5.0(jiti@2.7.0)): dependencies: '@babel/eslint-parser': 7.29.7(@babel/core@7.29.0)(eslint@10.5.0(jiti@2.7.0)) chalk: 4.1.2 @@ -60291,6 +61011,19 @@ snapshots: - '@babel/core' - eslint + ember-cli-dependency-checker@3.4.0(@babel/core@7.29.0)(ember-cli@7.0.1(@babel/core@7.29.0)(@types/node@26.0.0)(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(nunjucks@3.2.4(chokidar@3.6.0))(pug@3.0.4)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(underscore@1.13.8))(eslint@10.5.0(jiti@2.7.0)): + dependencies: + '@babel/eslint-parser': 7.29.7(@babel/core@7.29.0)(eslint@10.5.0(jiti@2.7.0)) + chalk: 4.1.2 + ember-cli: 7.0.1(@babel/core@7.29.0)(@types/node@26.0.0)(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(nunjucks@3.2.4(chokidar@3.6.0))(pug@3.0.4)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(underscore@1.13.8) + find-yarn-workspace-root: 2.0.0 + is-git-url: 1.0.0 + resolve: 1.22.12 + semver: 7.8.4 + transitivePeerDependencies: + - '@babel/core' + - eslint + ember-cli-get-component-path-option@1.0.0: {} ember-cli-htmlbars@7.0.1(@babel/core@7.29.0)(ember-source@7.0.0(@glimmer/component@2.1.1)): @@ -60401,7 +61134,7 @@ snapshots: ember-cli-version-checker@5.1.2: dependencies: resolve-package-path: 3.1.0 - semver: 7.8.4 + semver: 7.8.5 silent-error: 1.1.1 transitivePeerDependencies: - supports-color @@ -60545,6 +61278,145 @@ snapshots: - walrus - whiskers + ember-cli@7.0.1(@babel/core@7.29.0)(@types/node@26.0.0)(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(nunjucks@3.2.4(chokidar@3.6.0))(pug@3.0.4)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(underscore@1.13.8): + dependencies: + '@ember-tooling/blueprint-blueprint': 0.3.0 + '@ember-tooling/blueprint-model': 0.6.3 + '@ember-tooling/classic-build-addon-blueprint': 7.0.0 + '@ember-tooling/classic-build-app-blueprint': 7.0.0 + '@ember/app-blueprint': 7.0.1 + '@pnpm/find-workspace-dir': 1000.1.5 + babel-remove-types: 1.1.0 + broccoli: 4.0.0 + broccoli-concat: 4.2.7 + broccoli-config-loader: 1.0.1 + broccoli-config-replace: 1.1.3 + broccoli-debug: 0.6.5 + broccoli-funnel: 3.0.8 + broccoli-funnel-reducer: 1.0.0 + broccoli-merge-trees: 4.2.0 + broccoli-middleware: 2.1.2 + broccoli-slow-trees: 3.1.0 + broccoli-source: 3.0.1 + broccoli-stew: 3.0.0 + calculate-cache-key-for-tree: 2.0.0 + capture-exit: 2.0.0 + chalk: 5.6.2 + ci-info: 4.4.0 + clean-base-url: 1.0.0 + compression: 1.8.1 + configstore: 7.1.0 + console-ui: 3.1.2 + content-tag: 4.2.0 + core-object: 3.1.5 + dag-map: 2.0.2 + diff: 8.0.4 + ember-cli-is-package-missing: 1.0.0 + ember-cli-normalize-entity-name: 1.0.0 + ember-cli-preprocess-registry: 5.0.1(supports-color@8.1.1) + ember-cli-string-utils: 1.1.0 + ensure-posix-path: 1.1.1 + execa: 9.6.1 + exit: 0.1.2 + express: 5.2.1 + filesize: 11.0.17 + find-up: 8.0.0 + find-yarn-workspace-root: 2.0.0 + fs-extra: 11.3.5 + fs-tree-diff: 2.0.1 + get-caller-file: 2.0.5 + git-repo-info: 2.1.1 + glob: 13.0.6 + heimdalljs: 0.2.6 + heimdalljs-fs-monitor: 1.1.2 + heimdalljs-graph: 1.0.0 + heimdalljs-logger: 0.1.10 + http-proxy: 1.18.1(debug@4.4.3(supports-color@8.1.1)) + inflection: 3.0.2 + inquirer: 13.4.3(@types/node@26.0.0) + is-git-url: 1.0.0 + is-language-code: 5.1.3 + lodash: 4.18.1 + markdown-it: 14.2.0 + markdown-it-terminal: 0.4.0(markdown-it@14.2.0) + minimatch: 10.2.5 + morgan: 1.11.0 + nopt: 3.0.6 + npm-package-arg: 13.0.2 + os-locale: 6.0.2 + p-defer: 4.0.1 + portfinder: 1.0.38(supports-color@8.1.1) + promise-map-series: 0.3.0 + promise.hash.helper: 1.0.8 + quick-temp: 0.1.9 + resolve: 1.22.12 + resolve-package-path: 4.0.3 + safe-stable-stringify: 2.5.0 + sane: 5.0.1 + semver: 7.8.4 + silent-error: 1.1.1 + sort-package-json: 3.7.1 + symlink-or-copy: 1.3.1 + testem: 3.20.1(@babel/core@7.29.0)(ejs@3.1.10)(hamljs@0.6.2)(handlebars@4.7.9)(nunjucks@3.2.4(chokidar@3.6.0))(pug@3.0.4)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(underscore@1.13.8) + tiny-lr: 2.0.0 + tree-sync: 2.1.0 + walk-sync: 4.0.2 + watch-detector: 1.0.2 + workerpool: 10.0.2 + yam: 1.0.0 + transitivePeerDependencies: + - '@babel/core' + - '@types/node' + - arc-templates + - atpl + - bracket-template + - bufferutil + - coffee-script + - debug + - dot + - dust + - dustjs-helpers + - dustjs-linkedin + - eco + - ect + - ejs + - haml-coffee + - hamlet + - hamljs + - handlebars + - hogan.js + - htmling + - jazz + - jqtpl + - just + - liquid-node + - liquor + - mote + - nunjucks + - plates + - pug + - qejs + - ractive + - react + - react-dom + - slm + - supports-color + - swig + - swig-templates + - teacup + - templayed + - then-pug + - tinyliquid + - toffee + - twig + - twing + - underscore + - utf-8-validate + - vash + - velocityjs + - walrus + - whiskers + ember-compatibility-helpers@1.2.7(@babel/core@7.29.0): dependencies: babel-plugin-debug-macros: 0.2.0(@babel/core@7.29.0) @@ -61489,7 +62361,7 @@ snapshots: find-up: 5.0.0 globals: 15.15.0 lodash.memoize: 4.1.2 - semver: 7.8.4 + semver: 7.8.5 eslint-plugin-ember@13.3.2(@babel/eslint-parser@7.29.7(@babel/core@7.29.0)(eslint@10.5.0(jiti@2.7.0)))(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3): dependencies: @@ -61622,13 +62494,13 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-plugin-jest@28.14.0(@typescript-eslint/eslint-plugin@8.61.1(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(jest@29.7.0(@types/node@25.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3)))(typescript@6.0.3): + eslint-plugin-jest@28.14.0(@typescript-eslint/eslint-plugin@8.61.1(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(jest@29.7.0(@types/node@25.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@26.0.0)(typescript@6.0.3)))(typescript@6.0.3): dependencies: '@typescript-eslint/utils': 8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) eslint: 10.5.0(jiti@2.7.0) optionalDependencies: '@typescript-eslint/eslint-plugin': 8.61.1(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1)(typescript@6.0.3) - jest: 29.7.0(@types/node@25.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3)) + jest: 29.7.0(@types/node@25.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@26.0.0)(typescript@6.0.3)) transitivePeerDependencies: - supports-color - typescript @@ -61644,7 +62516,7 @@ snapshots: espree: 10.4.0 esquery: 1.7.0 parse-imports-exports: 0.2.4 - semver: 7.8.4 + semver: 7.8.5 spdx-expression-parse: 4.0.0 transitivePeerDependencies: - supports-color @@ -61718,7 +62590,7 @@ snapshots: is-core-module: 2.16.2 minimatch: 3.1.5 resolve: 1.22.12 - semver: 7.8.4 + semver: 7.8.5 eslint-plugin-no-only-tests@3.4.0: {} @@ -61840,7 +62712,7 @@ snapshots: string.prototype.matchall: 4.0.12 string.prototype.repeat: 1.0.0 - eslint-plugin-svelte@3.19.0(eslint@10.5.0(jiti@2.7.0))(svelte@5.56.3(@typescript-eslint/types@8.61.1))(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3)): + eslint-plugin-svelte@3.19.0(eslint@10.5.0(jiti@2.7.0))(svelte@5.56.3(@typescript-eslint/types@8.61.1))(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@26.0.0)(typescript@6.0.3)): dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@10.5.0(jiti@2.7.0)) '@jridgewell/sourcemap-codec': 1.5.5 @@ -61849,7 +62721,7 @@ snapshots: globals: 16.5.0 known-css-properties: 0.37.0 postcss: 8.5.15 - postcss-load-config: 3.1.4(postcss@8.5.15)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3)) + postcss-load-config: 3.1.4(postcss@8.5.15)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@26.0.0)(typescript@6.0.3)) postcss-safe-parser: 7.0.1(postcss@8.5.15) semver: 7.8.4 svelte-eslint-parser: 1.8.0(svelte@5.56.3(@typescript-eslint/types@8.61.1)) @@ -61893,7 +62765,7 @@ snapshots: read-pkg-up: 7.0.1 regexp-tree: 0.1.27 safe-regex: 2.1.1 - semver: 7.8.4 + semver: 7.8.5 strip-indent: 3.0.0 eslint-plugin-vue@10.9.2(@stylistic/eslint-plugin@5.10.0(eslint@10.5.0(jiti@2.7.0)))(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(vue-eslint-parser@10.4.1(eslint@10.5.0(jiti@2.7.0))): @@ -62845,7 +63717,7 @@ snapshots: memfs: 3.6.0 minimatch: 3.1.5 schema-utils: 2.7.0 - semver: 7.8.4 + semver: 7.8.5 tapable: 1.1.3 typescript: 6.0.3 webpack: 4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) @@ -62866,7 +63738,7 @@ snapshots: memfs: 3.6.0 minimatch: 3.1.5 schema-utils: 2.7.0 - semver: 7.8.4 + semver: 7.8.5 tapable: 1.1.3 typescript: 6.0.3 webpack: 5.107.2(@swc/core@1.15.41)(postcss@8.5.15)(webpack-cli@7.0.3) @@ -63220,7 +64092,7 @@ snapshots: dependencies: resolve-pkg-maps: 1.0.0 - get-uri@6.0.5: + get-uri@6.0.5(supports-color@8.1.1): dependencies: basic-ftp: 5.3.1 data-uri-to-buffer: 6.0.2 @@ -63281,7 +64153,7 @@ snapshots: git-semver-tags@5.0.1: dependencies: meow: 8.1.2 - semver: 7.8.4 + semver: 7.7.2 git-up@7.0.0: dependencies: @@ -64169,6 +65041,18 @@ snapshots: transitivePeerDependencies: - supports-color + http-proxy-middleware@2.0.10(@types/express@4.17.25): + dependencies: + '@types/http-proxy': 1.17.17 + http-proxy: 1.18.1(debug@4.4.3(supports-color@8.1.1)) + is-glob: 4.0.3 + is-plain-obj: 3.0.0 + micromatch: 4.0.8 + optionalDependencies: + '@types/express': 4.17.25 + transitivePeerDependencies: + - debug + http-proxy-middleware@2.0.9(@types/express@4.17.25)(debug@4.4.3(supports-color@8.1.1)): dependencies: '@types/http-proxy': 1.17.17 @@ -64391,7 +65275,7 @@ snapshots: npm-package-arg: 13.0.2 promzard: 2.0.0 read: 4.1.0 - semver: 7.8.4 + semver: 7.7.2 validate-npm-package-license: 3.0.4 validate-npm-package-name: 6.0.2 @@ -64429,6 +65313,18 @@ snapshots: optionalDependencies: '@types/node': 25.9.3 + inquirer@13.4.3(@types/node@26.0.0): + dependencies: + '@inquirer/ansi': 2.0.7 + '@inquirer/core': 11.2.1(@types/node@26.0.0) + '@inquirer/prompts': 8.5.2(@types/node@26.0.0) + '@inquirer/type': 4.0.7(@types/node@26.0.0) + mute-stream: 3.0.0 + run-async: 4.0.6 + rxjs: 7.8.2 + optionalDependencies: + '@types/node': 26.0.0 + inquirer@6.5.2: dependencies: ansi-escapes: 3.2.0 @@ -64594,7 +65490,7 @@ snapshots: is-bun-module@2.0.0: dependencies: - semver: 7.8.4 + semver: 7.8.5 is-callable@1.2.7: {} @@ -65023,7 +65919,7 @@ snapshots: '@babel/parser': 7.29.7 '@istanbuljs/schema': 0.1.6 istanbul-lib-coverage: 3.2.2 - semver: 7.8.4 + semver: 7.8.5 transitivePeerDependencies: - supports-color @@ -65145,16 +66041,16 @@ snapshots: - babel-plugin-macros - supports-color - jest-cli@29.7.0(@types/node@25.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3)): + jest-cli@29.7.0(@types/node@25.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@26.0.0)(typescript@6.0.3)): dependencies: - '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3)) + '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@26.0.0)(typescript@6.0.3)) '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@25.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3)) + create-jest: 29.7.0(@types/node@25.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@26.0.0)(typescript@6.0.3)) exit: 0.1.2 import-local: 3.2.0 - jest-config: 29.7.0(@types/node@25.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3)) + jest-config: 29.7.0(@types/node@25.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@26.0.0)(typescript@6.0.3)) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -65164,7 +66060,7 @@ snapshots: - supports-color - ts-node - jest-config@29.7.0(@types/node@25.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3)): + jest-config@29.7.0(@types/node@25.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@26.0.0)(typescript@6.0.3)): dependencies: '@babel/core': 7.29.0 '@jest/test-sequencer': 29.7.0 @@ -65190,7 +66086,7 @@ snapshots: strip-json-comments: 3.1.1 optionalDependencies: '@types/node': 25.9.3 - ts-node: 10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3) + ts-node: 10.9.2(@swc/core@1.15.41)(@types/node@26.0.0)(typescript@6.0.3) transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -65430,7 +66326,7 @@ snapshots: jest-util: 29.7.0 natural-compare: 1.4.0 pretty-format: 29.7.0 - semver: 7.8.4 + semver: 7.8.5 transitivePeerDependencies: - supports-color @@ -65491,12 +66387,12 @@ snapshots: merge-stream: 2.0.0 supports-color: 8.1.1 - jest@29.7.0(@types/node@25.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3)): + jest@29.7.0(@types/node@25.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@26.0.0)(typescript@6.0.3)): dependencies: - '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3)) + '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@26.0.0)(typescript@6.0.3)) '@jest/types': 29.6.3 import-local: 3.2.0 - jest-cli: 29.7.0(@types/node@25.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3)) + jest-cli: 29.7.0(@types/node@25.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@26.0.0)(typescript@6.0.3)) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -66099,7 +66995,7 @@ snapshots: '@npmcli/arborist': 9.1.6 '@npmcli/package-json': 7.0.2 '@npmcli/run-script': 10.0.3 - '@nx/devkit': 22.7.5(nx@22.7.5(@swc-node/register@1.11.1(@swc/core@1.15.41)(@swc/types@0.1.26)(typescript@6.0.3))(@swc/core@1.15.41)) + '@nx/devkit': 22.7.5(nx@22.7.5(@swc-node/register@1.11.1(@swc/core@1.15.41)(@swc/types@0.1.26)(supports-color@8.1.1)(typescript@6.0.3))(@swc/core@1.15.41)) '@octokit/plugin-enterprise-rest': 6.0.1 '@octokit/rest': 20.1.2 aproba: 2.0.0 @@ -66209,7 +67105,7 @@ snapshots: npm-package-arg: 13.0.2 npm-registry-fetch: 19.1.0 proc-log: 5.0.0 - semver: 7.8.4 + semver: 7.7.2 sigstore: 4.1.1 ssri: 12.0.0 transitivePeerDependencies: @@ -66807,7 +67703,7 @@ snapshots: make-dir@4.0.0: dependencies: - semver: 7.8.4 + semver: 7.8.5 make-dir@5.1.0: optional: true @@ -67921,7 +68817,7 @@ snapshots: native-run@2.0.3(supports-color@8.1.1): dependencies: - '@ionic/utils-fs': 3.1.7(supports-color@8.1.1) + '@ionic/utils-fs': 3.1.7 '@ionic/utils-terminal': 2.3.5 bplist-parser: 0.3.2 debug: 4.4.3(supports-color@8.1.1) @@ -68001,8 +68897,8 @@ snapshots: dependencies: '@ampproject/remapping': 2.3.0 '@angular/compiler-cli': 22.0.1(@angular/compiler@22.0.1)(typescript@6.0.3) - '@rollup/plugin-json': 6.1.0(rollup@4.62.0) - '@rollup/wasm-node': 4.62.0 + '@rollup/plugin-json': 6.1.0(rollup@4.62.2) + '@rollup/wasm-node': 4.62.2 ajv: 8.20.0 browserslist: 4.28.2 chokidar: 5.0.0 @@ -68016,14 +68912,14 @@ snapshots: ora: 9.4.0 piscina: 5.2.0 postcss: 8.5.15 - rollup-plugin-dts: 6.4.1(rollup@4.62.0)(typescript@6.0.3) + rollup-plugin-dts: 6.4.1(rollup@4.62.2)(typescript@6.0.3) rxjs: 7.8.2 sass: 1.101.0 tinyglobby: 0.2.17 tslib: 2.8.1 typescript: 6.0.3 optionalDependencies: - rollup: 4.62.0 + rollup: 4.62.2 nice-try@1.0.5: {} @@ -68256,7 +69152,7 @@ snapshots: node-abi@3.92.0: dependencies: - semver: 7.8.4 + semver: 7.8.5 node-abort-controller@3.1.1: {} @@ -68301,7 +69197,7 @@ snapshots: graceful-fs: 4.2.11 nopt: 9.0.0 proc-log: 6.1.0 - semver: 7.8.4 + semver: 7.7.2 tar: 7.5.16 tinyglobby: 0.2.17 undici: 6.27.0 @@ -68317,7 +69213,7 @@ snapshots: nopt: 6.0.0 npmlog: 6.0.2 rimraf: 3.0.2 - semver: 7.8.4 + semver: 7.8.5 tar: 6.2.1 which: 2.0.2 transitivePeerDependencies: @@ -68439,14 +69335,14 @@ snapshots: dependencies: hosted-git-info: 4.1.0 is-core-module: 2.16.2 - semver: 7.8.4 + semver: 7.7.2 validate-npm-package-license: 3.0.4 normalize-package-data@5.0.0: dependencies: hosted-git-info: 6.1.3 is-core-module: 2.16.2 - semver: 7.8.4 + semver: 7.8.5 validate-npm-package-license: 3.0.4 normalize-package-data@8.0.0: @@ -68543,15 +69439,15 @@ snapshots: npm-install-checks@6.3.0: dependencies: - semver: 7.8.4 + semver: 7.8.5 npm-install-checks@7.1.2: dependencies: - semver: 7.8.4 + semver: 7.7.2 npm-install-checks@8.0.0: dependencies: - semver: 7.8.4 + semver: 7.7.2 npm-name@8.1.0: dependencies: @@ -68577,28 +69473,28 @@ snapshots: dependencies: hosted-git-info: 6.1.3 proc-log: 3.0.0 - semver: 7.8.4 + semver: 7.8.5 validate-npm-package-name: 5.0.1 npm-package-arg@12.0.2: dependencies: hosted-git-info: 8.1.0 proc-log: 5.0.0 - semver: 7.8.4 + semver: 7.7.2 validate-npm-package-name: 6.0.2 npm-package-arg@13.0.1: dependencies: hosted-git-info: 9.0.3 proc-log: 5.0.0 - semver: 7.8.4 + semver: 7.7.2 validate-npm-package-name: 6.0.2 npm-package-arg@13.0.2: dependencies: hosted-git-info: 9.0.3 proc-log: 6.1.0 - semver: 7.8.4 + semver: 7.7.4 validate-npm-package-name: 7.0.2 npm-package-json-lint@6.4.0(supports-color@8.1.1)(typescript@6.0.3): @@ -68615,7 +69511,7 @@ snapshots: log-symbols: 4.1.0 meow: 9.0.0 plur: 4.0.0 - semver: 7.8.4 + semver: 7.8.5 slash: 3.0.0 strip-json-comments: 3.1.1 type-fest: 3.13.1 @@ -68650,21 +69546,21 @@ snapshots: npm-install-checks: 7.1.2 npm-normalize-package-bin: 4.0.0 npm-package-arg: 12.0.2 - semver: 7.8.4 + semver: 7.7.2 npm-pick-manifest@11.0.3: dependencies: npm-install-checks: 8.0.0 npm-normalize-package-bin: 5.0.0 npm-package-arg: 13.0.2 - semver: 7.8.4 + semver: 7.7.2 npm-pick-manifest@8.0.2: dependencies: npm-install-checks: 6.3.0 npm-normalize-package-bin: 3.0.1 npm-package-arg: 10.1.0 - semver: 7.8.4 + semver: 7.8.5 npm-registry-fetch@14.0.5: dependencies: @@ -68932,16 +69828,16 @@ snapshots: - webpack-command - whiskers - nuxt@3.21.8(@parcel/watcher@2.5.6)(@types/node@25.9.3)(@vue/compiler-sfc@3.5.38)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(encoding@0.1.13)(eslint@10.5.0(jiti@2.7.0))(ioredis@5.11.1)(less@4.6.6)(lightningcss@1.32.0)(magicast@0.5.3)(meow@14.1.0)(optionator@0.9.4)(rolldown@1.1.1)(rollup-plugin-visualizer@7.0.1(rolldown@1.1.1)(rollup@4.62.0))(rollup@4.62.0)(sass@1.101.0)(srvx@0.11.16)(stylelint@16.26.1(typescript@6.0.3))(stylus@0.64.0)(supports-color@8.1.1)(terser@5.48.0)(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.5(typescript@6.0.3))(xml2js@0.6.2)(yaml@2.9.0): + nuxt@3.21.8(@parcel/watcher@2.5.6)(@types/node@25.9.3)(@vue/compiler-sfc@3.5.38)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(encoding@0.1.13)(eslint@10.5.0(jiti@2.7.0))(ioredis@5.11.1)(less@4.6.6)(lightningcss@1.32.0)(magicast@0.5.3)(meow@14.1.0)(optionator@0.9.4)(rolldown@1.1.1)(rollup-plugin-visualizer@7.0.1(rolldown@1.1.1)(rollup@4.62.0))(rollup@4.62.0)(sass@1.101.0)(srvx@0.11.16)(stylelint@16.26.1(typescript@6.0.3))(stylus@0.64.0)(supports-color@8.1.1)(terser@5.48.0)(typescript@6.0.3)(vite@8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.5(typescript@6.0.3))(xml2js@0.6.2)(yaml@2.9.0): dependencies: '@dxup/nuxt': 0.4.1(magicast@0.5.3)(typescript@6.0.3) '@nuxt/cli': 3.35.2(@nuxt/schema@3.21.8)(cac@6.7.14)(commander@13.1.0)(magicast@0.5.3)(supports-color@8.1.1) - '@nuxt/devtools': 3.2.4(supports-color@8.1.1)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.38(typescript@6.0.3)) + '@nuxt/devtools': 3.2.4(supports-color@8.1.1)(vite@8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.38(typescript@6.0.3)) '@nuxt/kit': 3.21.8(magicast@0.5.3) - '@nuxt/nitro-server': 3.21.8(db0@0.3.4)(encoding@0.1.13)(ioredis@5.11.1)(magicast@0.5.3)(nuxt@3.21.8(@parcel/watcher@2.5.6)(@types/node@25.9.3)(@vue/compiler-sfc@3.5.38)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(encoding@0.1.13)(eslint@10.5.0(jiti@2.7.0))(ioredis@5.11.1)(less@4.6.6)(lightningcss@1.32.0)(magicast@0.5.3)(meow@14.1.0)(optionator@0.9.4)(rolldown@1.1.1)(rollup-plugin-visualizer@7.0.1(rolldown@1.1.1)(rollup@4.62.0))(rollup@4.62.0)(sass@1.101.0)(srvx@0.11.16)(stylelint@16.26.1(typescript@6.0.3))(stylus@0.64.0)(supports-color@8.1.1)(terser@5.48.0)(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.5(typescript@6.0.3))(xml2js@0.6.2)(yaml@2.9.0))(oxc-parser@0.132.0)(rolldown@1.1.1)(srvx@0.11.16)(typescript@6.0.3)(xml2js@0.6.2) + '@nuxt/nitro-server': 3.21.8(db0@0.3.4)(encoding@0.1.13)(ioredis@5.11.1)(magicast@0.5.3)(nuxt@3.21.8(@parcel/watcher@2.5.6)(@types/node@25.9.3)(@vue/compiler-sfc@3.5.38)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(encoding@0.1.13)(eslint@10.5.0(jiti@2.7.0))(ioredis@5.11.1)(less@4.6.6)(lightningcss@1.32.0)(magicast@0.5.3)(meow@14.1.0)(optionator@0.9.4)(rolldown@1.1.1)(rollup-plugin-visualizer@7.0.1(rolldown@1.1.1)(rollup@4.62.0))(rollup@4.62.0)(sass@1.101.0)(srvx@0.11.16)(stylelint@16.26.1(typescript@6.0.3))(stylus@0.64.0)(supports-color@8.1.1)(terser@5.48.0)(typescript@6.0.3)(vite@8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.5(typescript@6.0.3))(xml2js@0.6.2)(yaml@2.9.0))(oxc-parser@0.132.0)(rolldown@1.1.1)(srvx@0.11.16)(typescript@6.0.3)(xml2js@0.6.2) '@nuxt/schema': 3.21.8 '@nuxt/telemetry': 2.8.0(@nuxt/kit@3.21.8(magicast@0.5.3)) - '@nuxt/vite-builder': 3.21.8(9a2ba7ad2787a68a46599744ee88c30c) + '@nuxt/vite-builder': 3.21.8(e6ed81320246c0bbae8805ade5e30142) '@unhead/vue': 2.1.15(vue@3.5.38(typescript@6.0.3)) '@vue/shared': 3.5.38 c12: 3.3.4(magicast@0.5.3) @@ -69058,16 +69954,16 @@ snapshots: - xml2js - yaml - nuxt@3.21.8(@parcel/watcher@2.5.6)(@types/node@25.9.3)(@vue/compiler-sfc@3.5.38)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(encoding@0.1.13)(eslint@10.5.0(jiti@2.7.0))(ioredis@5.11.1)(less@4.6.6)(lightningcss@1.32.0)(magicast@0.5.3)(meow@14.1.0)(optionator@0.9.4)(rolldown@1.1.1)(rollup-plugin-visualizer@7.0.1(rolldown@1.1.1)(rollup@4.62.0))(rollup@4.62.0)(sass@1.101.0)(stylelint@16.26.1(typescript@6.0.3))(stylus@0.64.0)(terser@5.48.0)(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.5(typescript@6.0.3))(xml2js@0.6.2)(yaml@2.9.0): + nuxt@3.21.8(@parcel/watcher@2.5.6)(@types/node@25.9.3)(@vue/compiler-sfc@3.5.38)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(encoding@0.1.13)(eslint@10.5.0(jiti@2.7.0))(ioredis@5.11.1)(less@4.6.6)(lightningcss@1.32.0)(magicast@0.5.3)(meow@14.1.0)(optionator@0.9.4)(rolldown@1.1.1)(rollup-plugin-visualizer@7.0.1(rolldown@1.1.1)(rollup@4.62.2))(rollup@4.62.2)(sass@1.101.0)(stylelint@16.26.1(typescript@6.0.3))(stylus@0.64.0)(terser@5.48.0)(typescript@6.0.3)(vite@8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.5(typescript@6.0.3))(xml2js@0.6.2)(yaml@2.9.0): dependencies: '@dxup/nuxt': 0.4.1(magicast@0.5.3)(typescript@6.0.3) '@nuxt/cli': 3.35.2(@nuxt/schema@3.21.8)(cac@6.7.14)(commander@13.1.0)(magicast@0.5.3)(supports-color@8.1.1) - '@nuxt/devtools': 3.2.4(supports-color@8.1.1)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.38(typescript@6.0.3)) + '@nuxt/devtools': 3.2.4(supports-color@8.1.1)(vite@8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.38(typescript@6.0.3)) '@nuxt/kit': 3.21.8(magicast@0.5.3) - '@nuxt/nitro-server': 3.21.8(db0@0.3.4)(encoding@0.1.13)(ioredis@5.11.1)(magicast@0.5.3)(nuxt@3.21.8(@parcel/watcher@2.5.6)(@types/node@25.9.3)(@vue/compiler-sfc@3.5.38)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(encoding@0.1.13)(eslint@10.5.0(jiti@2.7.0))(ioredis@5.11.1)(less@4.6.6)(lightningcss@1.32.0)(magicast@0.5.3)(meow@14.1.0)(optionator@0.9.4)(rolldown@1.1.1)(rollup-plugin-visualizer@7.0.1(rolldown@1.1.1)(rollup@4.62.0))(rollup@4.62.0)(sass@1.101.0)(stylelint@16.26.1(typescript@6.0.3))(stylus@0.64.0)(terser@5.48.0)(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.5(typescript@6.0.3))(xml2js@0.6.2)(yaml@2.9.0))(oxc-parser@0.132.0)(rolldown@1.1.1)(typescript@6.0.3)(xml2js@0.6.2) + '@nuxt/nitro-server': 3.21.8(db0@0.3.4)(encoding@0.1.13)(ioredis@5.11.1)(magicast@0.5.3)(nuxt@3.21.8(@parcel/watcher@2.5.6)(@types/node@25.9.3)(@vue/compiler-sfc@3.5.38)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(encoding@0.1.13)(eslint@10.5.0(jiti@2.7.0))(ioredis@5.11.1)(less@4.6.6)(lightningcss@1.32.0)(magicast@0.5.3)(meow@14.1.0)(optionator@0.9.4)(rolldown@1.1.1)(rollup-plugin-visualizer@7.0.1(rolldown@1.1.1)(rollup@4.62.2))(rollup@4.62.2)(sass@1.101.0)(stylelint@16.26.1(typescript@6.0.3))(stylus@0.64.0)(terser@5.48.0)(typescript@6.0.3)(vite@8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.5(typescript@6.0.3))(xml2js@0.6.2)(yaml@2.9.0))(oxc-parser@0.132.0)(rolldown@1.1.1)(typescript@6.0.3)(xml2js@0.6.2) '@nuxt/schema': 3.21.8 '@nuxt/telemetry': 2.8.0(@nuxt/kit@3.21.8(magicast@0.5.3)) - '@nuxt/vite-builder': 3.21.8(7107088f52ca05d3b951cdb5018e32bb) + '@nuxt/vite-builder': 3.21.8(c9bbb9d880a3f43926f265af76304359) '@unhead/vue': 2.1.15(vue@3.5.38(typescript@6.0.3)) '@vue/shared': 3.5.38 c12: 3.3.4(magicast@0.5.3) @@ -69184,16 +70080,16 @@ snapshots: - xml2js - yaml - nuxt@4.4.8(@babel/plugin-proposal-decorators@7.29.7(@babel/core@8.0.1))(@babel/plugin-syntax-jsx@7.29.7(@babel/core@8.0.1))(@babel/plugin-syntax-typescript@7.29.7(@babel/core@8.0.1))(@parcel/watcher@2.5.6)(@rollup/plugin-babel@7.1.0(@babel/core@8.0.1)(@types/babel__core@7.20.5)(rollup@4.62.0))(@types/node@25.9.3)(@vue/compiler-sfc@3.5.38)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(encoding@0.1.13)(eslint@10.5.0(jiti@2.7.0))(ioredis@5.11.1)(less@4.6.6)(lightningcss@1.32.0)(magicast@0.5.3)(meow@14.1.0)(optionator@0.9.4)(rolldown@1.1.1)(rollup-plugin-visualizer@7.0.1(rolldown@1.1.1)(rollup@4.62.0))(rollup@4.62.0)(sass@1.101.0)(stylelint@16.26.1(typescript@6.0.3))(stylus@0.64.0)(terser@5.48.0)(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.5(typescript@6.0.3))(xml2js@0.6.2)(yaml@2.9.0): + nuxt@4.4.8(@babel/plugin-proposal-decorators@7.29.7(@babel/core@8.0.1))(@babel/plugin-syntax-jsx@7.29.7(@babel/core@8.0.1))(@babel/plugin-syntax-typescript@7.29.7(@babel/core@8.0.1))(@parcel/watcher@2.5.6)(@rollup/plugin-babel@7.1.0(@babel/core@8.0.1)(@types/babel__core@7.20.5)(rollup@4.62.2))(@types/node@25.9.3)(@vue/compiler-sfc@3.5.38)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(encoding@0.1.13)(eslint@10.5.0(jiti@2.7.0))(ioredis@5.11.1)(less@4.6.6)(lightningcss@1.32.0)(magicast@0.5.3)(meow@14.1.0)(optionator@0.9.4)(rolldown@1.1.1)(rollup-plugin-visualizer@7.0.1(rolldown@1.1.1)(rollup@4.62.2))(rollup@4.62.0)(sass@1.101.0)(stylelint@16.26.1(typescript@6.0.3))(stylus@0.64.0)(terser@5.48.0)(typescript@6.0.3)(vite@8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.5(typescript@6.0.3))(xml2js@0.6.2)(yaml@2.9.0): dependencies: '@dxup/nuxt': 0.4.1(magicast@0.5.3)(typescript@6.0.3) '@nuxt/cli': 3.35.2(@nuxt/schema@4.4.8)(cac@6.7.14)(commander@13.1.0)(magicast@0.5.3) - '@nuxt/devtools': 3.2.4(supports-color@8.1.1)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.38(typescript@6.0.3)) + '@nuxt/devtools': 3.2.4(supports-color@8.1.1)(vite@8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.38(typescript@6.0.3)) '@nuxt/kit': 4.4.8(magicast@0.5.3) - '@nuxt/nitro-server': 4.4.8(c4ff195fe9034f1d7cb8c0ada1da132d) + '@nuxt/nitro-server': 4.4.8(40a1ced0029f84355d6ba3c39a86f7f2) '@nuxt/schema': 4.4.8 '@nuxt/telemetry': 2.8.0(@nuxt/kit@4.4.8(magicast@0.5.3)) - '@nuxt/vite-builder': 4.4.8(3f3fa0b1816a1dc51b95898b17635868) + '@nuxt/vite-builder': 4.4.8(320fe315a651c548418cb0edb410dfe3) '@unhead/vue': 2.1.15(vue@3.5.38(typescript@6.0.3)) '@vue/shared': 3.5.38 chokidar: 5.0.0 @@ -69241,7 +70137,136 @@ snapshots: unrouting: 0.1.7 untyped: 2.0.0 vue: 3.5.38(typescript@6.0.3) - vue-router: 5.1.0(@vue/compiler-sfc@3.5.38)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.38(typescript@6.0.3)) + vue-router: 5.1.0(@vue/compiler-sfc@3.5.38)(vite@8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.38(typescript@6.0.3)) + optionalDependencies: + '@parcel/watcher': 2.5.6 + '@types/node': 25.9.3 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@babel/plugin-proposal-decorators' + - '@babel/plugin-syntax-jsx' + - '@babel/plugin-syntax-typescript' + - '@biomejs/biome' + - '@capacitor/preferences' + - '@deno/kv' + - '@electric-sql/pglite' + - '@libsql/client' + - '@netlify/blobs' + - '@pinia/colada' + - '@planetscale/database' + - '@rollup/plugin-babel' + - '@upstash/redis' + - '@vercel/blob' + - '@vercel/functions' + - '@vercel/kv' + - '@vitejs/devtools' + - '@vue/compiler-sfc' + - aws4fetch + - bare-abort-controller + - bare-buffer + - better-sqlite3 + - bufferutil + - cac + - commander + - db0 + - drizzle-orm + - encoding + - eslint + - idb-keyval + - ioredis + - less + - lightningcss + - magicast + - meow + - mysql2 + - optionator + - oxlint + - pinia + - react-native-b4a + - rolldown + - rollup + - rollup-plugin-visualizer + - sass + - sass-embedded + - sqlite3 + - srvx + - stylelint + - stylus + - sugarss + - supports-color + - terser + - tsx + - typescript + - uploadthing + - utf-8-validate + - vite + - vue-tsc + - xml2js + - yaml + + nuxt@4.4.8(@babel/plugin-proposal-decorators@7.29.7(@babel/core@8.0.1))(@babel/plugin-syntax-jsx@7.29.7(@babel/core@8.0.1))(@babel/plugin-syntax-typescript@7.29.7(@babel/core@8.0.1))(@parcel/watcher@2.5.6)(@rollup/plugin-babel@7.1.0(@babel/core@8.0.1)(@types/babel__core@7.20.5)(rollup@4.62.2))(@types/node@25.9.3)(@vue/compiler-sfc@3.5.38)(cac@6.7.14)(commander@13.1.0)(db0@0.3.4)(encoding@0.1.13)(eslint@10.5.0(jiti@2.7.0))(ioredis@5.11.1)(less@4.6.6)(lightningcss@1.32.0)(magicast@0.5.3)(meow@14.1.0)(optionator@0.9.4)(rolldown@1.1.1)(rollup-plugin-visualizer@7.0.1(rolldown@1.1.1)(rollup@4.62.2))(rollup@4.62.2)(sass@1.101.0)(stylelint@16.26.1(typescript@6.0.3))(stylus@0.64.0)(terser@5.48.0)(typescript@6.0.3)(vite@8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue-tsc@3.3.5(typescript@6.0.3))(xml2js@0.6.2)(yaml@2.9.0): + dependencies: + '@dxup/nuxt': 0.4.1(magicast@0.5.3)(typescript@6.0.3) + '@nuxt/cli': 3.35.2(@nuxt/schema@4.4.8)(cac@6.7.14)(commander@13.1.0)(magicast@0.5.3) + '@nuxt/devtools': 3.2.4(supports-color@8.1.1)(vite@8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.38(typescript@6.0.3)) + '@nuxt/kit': 4.4.8(magicast@0.5.3) + '@nuxt/nitro-server': 4.4.8(0c2f4d7e13475a54281476c97f90bf3f) + '@nuxt/schema': 4.4.8 + '@nuxt/telemetry': 2.8.0(@nuxt/kit@4.4.8(magicast@0.5.3)) + '@nuxt/vite-builder': 4.4.8(2eac3e6ad1f1d2c87a6572663d8c76cd) + '@unhead/vue': 2.1.15(vue@3.5.38(typescript@6.0.3)) + '@vue/shared': 3.5.38 + chokidar: 5.0.0 + compatx: 0.2.0 + consola: 3.4.2 + cookie-es: 3.1.1 + defu: 6.1.7 + devalue: 5.8.1 + errx: 0.1.0 + escape-string-regexp: 5.0.0 + exsolve: 1.0.8 + hookable: 6.1.1 + ignore: 7.0.5 + impound: 1.1.5 + jiti: 2.7.0 + klona: 2.0.6 + knitwork: 1.3.0 + magic-string: 0.30.21 + mlly: 1.8.2 + nanotar: 0.3.0 + nypm: 0.6.7 + ofetch: 1.5.1 + ohash: 2.0.11 + on-change: 6.0.2 + oxc-minify: 0.133.0 + oxc-parser: 0.133.0 + oxc-transform: 0.133.0 + oxc-walker: 1.0.0(oxc-parser@0.133.0)(rolldown@1.1.1) + pathe: 2.0.3 + perfect-debounce: 2.1.0 + picomatch: 4.0.4 + pkg-types: 2.3.1 + rou3: 0.8.1 + scule: 1.3.0 + semver: 7.8.4 + std-env: 4.1.0 + tinyglobby: 0.2.17 + ufo: 1.6.4 + ultrahtml: 1.6.0 + uncrypto: 0.1.3 + unctx: 2.5.0 + unhead: 2.1.15 + unimport: 6.3.0(oxc-parser@0.133.0)(rolldown@1.1.1) + unplugin: 3.0.0 + unrouting: 0.1.7 + untyped: 2.0.0 + vue: 3.5.38(typescript@6.0.3) + vue-router: 5.1.0(@vue/compiler-sfc@3.5.38)(vite@8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.38(typescript@6.0.3)) optionalDependencies: '@parcel/watcher': 2.5.6 '@types/node': 25.9.3 @@ -70258,12 +71283,12 @@ snapshots: dependencies: p-reduce: 2.1.0 - pac-proxy-agent@7.2.0: + pac-proxy-agent@7.2.0(supports-color@8.1.1): dependencies: '@tootallnate/quickjs-emscripten': 0.23.0 agent-base: 7.1.4 debug: 4.4.3(supports-color@8.1.1) - get-uri: 6.0.5 + get-uri: 6.0.5(supports-color@8.1.1) http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 pac-resolver: 7.0.1 @@ -71116,13 +72141,13 @@ snapshots: '@csstools/utilities': 1.0.0(postcss@8.5.15) postcss: 8.5.15 - postcss-load-config@3.1.4(postcss@8.5.15)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3)): + postcss-load-config@3.1.4(postcss@8.5.15)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@26.0.0)(typescript@6.0.3)): dependencies: lilconfig: 2.1.0 yaml: 1.10.3 optionalDependencies: postcss: 8.5.15 - ts-node: 10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3) + ts-node: 10.9.2(@swc/core@1.15.41)(@types/node@26.0.0)(typescript@6.0.3) postcss-load-config@6.0.1(jiti@2.7.0)(postcss@8.5.15)(yaml@2.9.0): dependencies: @@ -71147,7 +72172,7 @@ snapshots: cosmiconfig: 7.1.0 klona: 2.0.6 postcss: 8.5.15 - semver: 7.8.4 + semver: 7.8.5 webpack: 5.107.2(@swc/core@1.15.41)(cssnano@5.1.15(postcss@8.5.15))(postcss@8.5.15)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)) postcss-loader@6.2.1(postcss@8.5.15)(webpack@5.107.2): @@ -71155,7 +72180,7 @@ snapshots: cosmiconfig: 7.1.0 klona: 2.0.6 postcss: 8.5.15 - semver: 7.8.4 + semver: 7.8.5 webpack: 5.107.2(@swc/core@1.15.41)(postcss@8.5.15)(webpack-cli@5.1.4) postcss-logical@7.0.1(postcss@8.5.15): @@ -71970,7 +72995,7 @@ snapshots: powershell-utils@0.2.0: {} - preact-cli@3.5.1(@types/babel__core@7.20.5)(encoding@0.1.13)(eslint@10.5.0(jiti@2.7.0))(preact-render-to-string@6.7.0(preact@10.29.2))(preact@10.29.2)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3))(typescript@6.0.3)(vue-template-compiler@2.7.16)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)): + preact-cli@3.5.1(@types/babel__core@7.20.5)(encoding@0.1.13)(eslint@10.5.0(jiti@2.7.0))(preact-render-to-string@6.7.0(preact@10.29.2))(preact@10.29.2)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@26.0.0)(typescript@6.0.3))(typescript@6.0.3)(vue-template-compiler@2.7.16)(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2)): dependencies: '@babel/core': 7.29.0 '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.29.0) @@ -72019,7 +73044,7 @@ snapshots: ora: 5.4.1 pnp-webpack-plugin: 1.7.0(typescript@6.0.3) postcss: 8.5.15 - postcss-load-config: 3.1.4(postcss@8.5.15)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3)) + postcss-load-config: 3.1.4(postcss@8.5.15)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@26.0.0)(typescript@6.0.3)) postcss-loader: 4.3.0(postcss@8.5.15)(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) preact: 10.29.2 preact-render-to-string: 6.7.0(preact@10.29.2) @@ -72269,14 +73294,14 @@ snapshots: forwarded: 0.2.0 ipaddr.js: 1.9.1 - proxy-agent@6.5.0: + proxy-agent@6.5.0(supports-color@8.1.1): dependencies: agent-base: 7.1.4 debug: 4.4.3(supports-color@8.1.1) http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 lru-cache: 7.18.3 - pac-proxy-agent: 7.2.0 + pac-proxy-agent: 7.2.0(supports-color@8.1.1) proxy-from-env: 1.1.0 socks-proxy-agent: 8.0.5 transitivePeerDependencies: @@ -73414,13 +74439,13 @@ snapshots: '@rollup/pluginutils': 5.4.0(rollup@4.62.0) rollup: 4.62.0 - rollup-plugin-dts@6.4.1(rollup@4.62.0)(typescript@6.0.3): + rollup-plugin-dts@6.4.1(rollup@4.62.2)(typescript@6.0.3): dependencies: '@jridgewell/remapping': 2.3.5 '@jridgewell/sourcemap-codec': 1.5.5 convert-source-map: 2.0.0 magic-string: 0.30.21 - rollup: 4.62.0 + rollup: 4.62.2 typescript: 6.0.3 optionalDependencies: '@babel/code-frame': 7.29.7 @@ -73502,6 +74527,17 @@ snapshots: rolldown: 1.1.1 rollup: 4.62.0 + rollup-plugin-visualizer@7.0.1(rolldown@1.1.1)(rollup@4.62.2): + dependencies: + open: 11.0.0 + picomatch: 4.0.4 + source-map: 0.7.6 + yargs: 18.0.0 + optionalDependencies: + rolldown: 1.1.1 + rollup: 4.62.2 + optional: true + rollup-plugin-vue@6.0.0(@vue/compiler-sfc@3.5.38)(supports-color@8.1.1): dependencies: '@vue/compiler-sfc': 3.5.38 @@ -73581,6 +74617,37 @@ snapshots: '@rollup/rollup-win32-x64-msvc': 4.62.0 fsevents: 2.3.3 + rollup@4.62.2: + dependencies: + '@types/estree': 1.0.9 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.62.2 + '@rollup/rollup-android-arm64': 4.62.2 + '@rollup/rollup-darwin-arm64': 4.62.2 + '@rollup/rollup-darwin-x64': 4.62.2 + '@rollup/rollup-freebsd-arm64': 4.62.2 + '@rollup/rollup-freebsd-x64': 4.62.2 + '@rollup/rollup-linux-arm-gnueabihf': 4.62.2 + '@rollup/rollup-linux-arm-musleabihf': 4.62.2 + '@rollup/rollup-linux-arm64-gnu': 4.62.2 + '@rollup/rollup-linux-arm64-musl': 4.62.2 + '@rollup/rollup-linux-loong64-gnu': 4.62.2 + '@rollup/rollup-linux-loong64-musl': 4.62.2 + '@rollup/rollup-linux-ppc64-gnu': 4.62.2 + '@rollup/rollup-linux-ppc64-musl': 4.62.2 + '@rollup/rollup-linux-riscv64-gnu': 4.62.2 + '@rollup/rollup-linux-riscv64-musl': 4.62.2 + '@rollup/rollup-linux-s390x-gnu': 4.62.2 + '@rollup/rollup-linux-x64-gnu': 4.62.2 + '@rollup/rollup-linux-x64-musl': 4.62.2 + '@rollup/rollup-openbsd-x64': 4.62.2 + '@rollup/rollup-openharmony-arm64': 4.62.2 + '@rollup/rollup-win32-arm64-msvc': 4.62.2 + '@rollup/rollup-win32-ia32-msvc': 4.62.2 + '@rollup/rollup-win32-x64-gnu': 4.62.2 + '@rollup/rollup-win32-x64-msvc': 4.62.2 + fsevents: 2.3.3 + rou3@0.8.1: {} route-recognizer@0.3.4: {} @@ -73846,6 +74913,8 @@ snapshots: semver@7.8.4: {} + semver@7.8.5: {} + send@0.19.2: dependencies: debug: 2.6.9 @@ -76092,6 +77161,27 @@ snapshots: optionalDependencies: '@swc/core': 1.15.41 + ts-node@10.9.2(@swc/core@1.15.41)(@types/node@26.0.0)(typescript@6.0.3): + dependencies: + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node10': 1.0.12 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.4 + '@types/node': 26.0.0 + acorn: 8.17.0 + acorn-walk: 8.3.5 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.4 + make-error: 1.3.6 + typescript: 6.0.3 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + optionalDependencies: + '@swc/core': 1.15.41 + optional: true + ts-pnp@1.2.0(typescript@6.0.3): optionalDependencies: typescript: 6.0.3 @@ -76360,7 +77450,7 @@ snapshots: typescript-auto-import-cache@0.3.6: dependencies: - semver: 7.8.4 + semver: 7.8.5 typescript-eslint@8.61.1(eslint@10.5.0(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3): dependencies: @@ -76473,6 +77563,8 @@ snapshots: undici-types@7.28.0: {} + undici-types@8.3.0: {} + undici-types@8.5.0: {} undici@6.27.0: {} @@ -76893,7 +77985,7 @@ snapshots: is-yarn-global: 0.3.0 latest-version: 5.1.0 pupa: 2.1.1 - semver: 7.8.4 + semver: 7.8.5 semver-diff: 3.1.1 xdg-basedir: 4.0.0 @@ -77160,15 +78252,15 @@ snapshots: - bare-abort-controller - react-native-b4a - vite-dev-rpc@2.0.0(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)): + vite-dev-rpc@2.0.0(vite@8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)): dependencies: birpc: 4.0.0 - vite: 8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) - vite-hot-client: 2.2.0(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) + vite: 8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) + vite-hot-client: 2.2.0(vite@8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) - vite-hot-client@2.2.0(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)): + vite-hot-client@2.2.0(vite@8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)): dependencies: - vite: 8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) + vite: 8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) vite-node@5.3.0(@types/node@25.9.3)(jiti@2.7.0)(less@4.6.6)(lightningcss@1.32.0)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0): dependencies: @@ -77281,7 +78373,7 @@ snapshots: rollup: 2.80.0 vite: 8.0.16(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) - vite-plugin-inspect@11.4.1(@nuxt/kit@4.4.8(magicast@0.5.3))(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)): + vite-plugin-inspect@11.4.1(@nuxt/kit@4.4.8(magicast@0.5.3))(vite@8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)): dependencies: ansis: 4.3.1 error-stack-parser-es: 1.0.5 @@ -77291,8 +78383,8 @@ snapshots: perfect-debounce: 2.1.0 sirv: 3.0.2 unplugin-utils: 0.3.1 - vite: 8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) - vite-dev-rpc: 2.0.0(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) + vite: 8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) + vite-dev-rpc: 2.0.0(vite@8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) optionalDependencies: '@nuxt/kit': 4.4.8(magicast@0.5.3) @@ -77333,14 +78425,14 @@ snapshots: transitivePeerDependencies: - supports-color - vite-plugin-vue-tracer@1.4.0(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.38(typescript@6.0.3)): + vite-plugin-vue-tracer@1.4.0(vite@8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.38(typescript@6.0.3)): dependencies: estree-walker: 3.0.3 exsolve: 1.0.8 magic-string: 0.30.21 pathe: 2.0.3 source-map-js: 1.2.1 - vite: 8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) + vite: 8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) vue: 3.5.38(typescript@6.0.3) vite-tsconfig-paths@6.1.1(supports-color@8.1.1)(typescript@6.0.3)(vite@8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)): @@ -77424,6 +78516,25 @@ snapshots: terser: 5.48.0 yaml: 2.9.0 + vite@7.3.5(@types/node@26.0.0)(jiti@2.7.0)(less@4.6.6)(lightningcss@1.32.0)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0): + dependencies: + esbuild: 0.27.7 + fdir: 6.5.0(picomatch@4.0.4) + picomatch: 4.0.4 + postcss: 8.5.15 + rollup: 4.62.0 + tinyglobby: 0.2.17 + optionalDependencies: + '@types/node': 26.0.0 + fsevents: 2.3.3 + jiti: 2.7.0 + less: 4.6.6 + lightningcss: 1.32.0 + sass: 1.101.0 + stylus: 0.64.0 + terser: 5.48.0 + yaml: 2.9.0 + vite@8.0.16(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0): dependencies: lightningcss: 1.32.0 @@ -77460,6 +78571,24 @@ snapshots: terser: 5.48.0 yaml: 2.9.0 + vite@8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0): + dependencies: + lightningcss: 1.32.0 + picomatch: 4.0.4 + postcss: 8.5.15 + rolldown: 1.0.3 + tinyglobby: 0.2.17 + optionalDependencies: + '@types/node': 26.0.0 + esbuild: 0.28.1 + fsevents: 2.3.3 + jiti: 2.7.0 + less: 4.6.6 + sass: 1.101.0 + stylus: 0.64.0 + terser: 5.48.0 + yaml: 2.9.0 + vite@8.0.5(@emnapi/core@1.11.0)(@emnapi/runtime@1.11.1)(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0): dependencies: lightningcss: 1.32.0 @@ -77485,6 +78614,10 @@ snapshots: optionalDependencies: vite: 7.3.5(@types/node@25.9.3)(jiti@2.7.0)(less@4.6.6)(lightningcss@1.32.0)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) + vitefu@1.1.3(vite@7.3.5(@types/node@26.0.0)(jiti@2.7.0)(less@4.6.6)(lightningcss@1.32.0)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)): + optionalDependencies: + vite: 7.3.5(@types/node@26.0.0)(jiti@2.7.0)(less@4.6.6)(lightningcss@1.32.0)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) + vitefu@1.1.3(vite@8.0.16(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)): optionalDependencies: vite: 8.0.16(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) @@ -77669,6 +78802,37 @@ snapshots: transitivePeerDependencies: - msw + vitest@4.1.9(@opentelemetry/api@1.9.1)(@types/node@25.9.3)(@vitest/coverage-v8@4.1.9)(@vitest/ui@4.1.9)(jsdom@29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3))(vite@8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)): + dependencies: + '@vitest/expect': 4.1.9 + '@vitest/mocker': 4.1.9(vite@8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0)) + '@vitest/pretty-format': 4.1.9 + '@vitest/runner': 4.1.9 + '@vitest/snapshot': 4.1.9 + '@vitest/spy': 4.1.9 + '@vitest/utils': 4.1.9 + es-module-lexer: 2.1.0 + expect-type: 1.3.0 + magic-string: 0.30.21 + obug: 2.1.3 + pathe: 2.0.3 + picomatch: 4.0.4 + std-env: 4.1.0 + tinybench: 2.9.0 + tinyexec: 1.2.4 + tinyglobby: 0.2.17 + tinyrainbow: 3.1.0 + vite: 8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) + why-is-node-running: 2.3.0 + optionalDependencies: + '@opentelemetry/api': 1.9.1 + '@types/node': 25.9.3 + '@vitest/coverage-v8': 4.1.9(vitest@4.1.9) + '@vitest/ui': 4.1.9(vitest@4.1.9) + jsdom: 29.1.1(@noble/hashes@2.2.0)(canvas@3.2.3) + transitivePeerDependencies: + - msw + vm-browserify@1.1.2: {} void-elements@2.0.1: {} @@ -77716,7 +78880,7 @@ snapshots: volar-service-typescript@0.0.70(@volar/language-service@2.4.28): dependencies: path-browserify: 1.0.1 - semver: 7.8.4 + semver: 7.8.5 typescript-auto-import-cache: 0.3.6 vscode-languageserver-textdocument: 1.0.12 vscode-nls: 5.2.0 @@ -78170,6 +79334,30 @@ snapshots: '@vue/compiler-sfc': 3.5.38 vite: 8.0.16(@types/node@25.9.3)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) + vue-router@5.1.0(@vue/compiler-sfc@3.5.38)(vite@8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.38(typescript@6.0.3)): + dependencies: + '@babel/generator': 8.0.0 + '@vue-macros/common': 3.1.2(vue@3.5.38(typescript@6.0.3)) + '@vue/devtools-api': 8.1.3 + ast-walker-scope: 0.9.0 + chokidar: 5.0.0 + json5: 2.2.3 + local-pkg: 1.2.1 + magic-string: 0.30.21 + mlly: 1.8.2 + muggle-string: 0.4.1 + pathe: 2.0.3 + picomatch: 4.0.4 + scule: 1.3.0 + tinyglobby: 0.2.17 + unplugin: 3.0.0 + unplugin-utils: 0.3.1 + vue: 3.5.38(typescript@6.0.3) + yaml: 2.9.0 + optionalDependencies: + '@vue/compiler-sfc': 3.5.38 + vite: 8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0) + vue-server-renderer@2.7.16(patch_hash=7374e4bf5b7956d7097feec494aaea43bf8f6a02e2b64e8a3cc57e19c2f65132): dependencies: chalk: 4.1.2 @@ -78628,7 +79816,7 @@ snapshots: connect-history-api-fallback: 2.0.0 express: 4.22.2 graceful-fs: 4.2.11 - http-proxy-middleware: 2.0.9(@types/express@4.17.25)(debug@4.4.3(supports-color@8.1.1)) + http-proxy-middleware: 2.0.10(@types/express@4.17.25) ipaddr.js: 2.4.0 launch-editor: 2.14.1 open: 10.2.0 From b745b9bc305cc54b7ac8abb7604948673c965946 Mon Sep 17 00:00:00 2001 From: Matteo Bruni <176620+matteobruni@users.noreply.github.com> Date: Sat, 20 Jun 2026 18:08:35 +0200 Subject: [PATCH 05/28] build: updated some deps --- package.json | 14 +- pnpm-lock.yaml | 606 +++++++++++++++++++++++-------------------------- 2 files changed, 294 insertions(+), 326 deletions(-) diff --git a/package.json b/package.json index f67d984482c..f6bb4b13972 100644 --- a/package.json +++ b/package.json @@ -12,11 +12,11 @@ "prettify:ci:readme": "prettier --config ./prettier.readme.config.json --check ./README.md ./markdown/*", "prettify:readme": "prettier --config ./prettier.readme.config.json --write ./README.md ./markdown/*", "postversion:fix": "node scripts/post-version-fix.js", -"version:alpha": "lerna version prerelease --preid alpha --no-git-tag-version --yes && pnpm run postversion:fix", -"version:beta": "lerna version prerelease --preid beta --no-git-tag-version --yes && pnpm run postversion:fix", -"version:patch": "lerna version patch --no-git-tag-version --yes && pnpm run postversion:fix", -"version:minor": "lerna version minor --no-git-tag-version --yes && pnpm run postversion:fix", -"version:major": "lerna version major --no-git-tag-version --yes && pnpm run postversion:fix", + "version:alpha": "lerna version prerelease --preid alpha --no-git-tag-version --yes && pnpm run postversion:fix", + "version:beta": "lerna version prerelease --preid beta --no-git-tag-version --yes && pnpm run postversion:fix", + "version:patch": "lerna version patch --no-git-tag-version --yes && pnpm run postversion:fix", + "version:minor": "lerna version minor --no-git-tag-version --yes && pnpm run postversion:fix", + "version:major": "lerna version major --no-git-tag-version --yes && pnpm run postversion:fix", "publish:alpha": "lerna publish from-package --pre-dist-tag alpha --preid alpha", "publish:beta": "lerna publish from-package --pre-dist-tag beta --preid beta", "publish:next": "lerna publish from-package --dist-tag next", @@ -46,14 +46,14 @@ "@tsparticles/rollup-plugin": "workspace:*", "@tsparticles/tsconfig": "workspace:*", "@tsparticles/webpack-plugin": "workspace:*", - "@types/node": "^25.9.3", + "@types/node": "^26.0.0", "@types/webpack-env": "^1.18.8", "browserslist": "^4.28.2", "copyfiles": "^2.4.1", "cross-env": "^10.1.0", "eslint": "^10.5.0", "eslint-config-prettier": "^10.1.8", - "eslint-plugin-jsdoc": "^63.0.5", + "eslint-plugin-jsdoc": "^63.0.6", "eslint-plugin-prettier": "^5.5.6", "eslint-plugin-tsdoc": "^0.5.2", "fs-extra": "^11.3.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index dfd0e4f04d1..57d84335964 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -21,7 +21,7 @@ importers: devDependencies: '@commitlint/cli': specifier: ^21.0.2 - version: 21.0.2(@types/node@25.9.3)(conventional-commits-parser@6.4.0)(typescript@6.0.3) + version: 21.0.2(@types/node@26.0.0)(conventional-commits-parser@6.4.0)(typescript@6.0.3) '@commitlint/config-conventional': specifier: ^21.0.2 version: 21.0.2 @@ -65,8 +65,8 @@ importers: specifier: workspace:* version: link:cli/utils/webpack-config '@types/node': - specifier: ^25.9.3 - version: 25.9.3 + specifier: ^26.0.0 + version: 26.0.0 '@types/webpack-env': specifier: ^1.18.8 version: 1.18.8 @@ -86,8 +86,8 @@ importers: specifier: ^10.1.8 version: 10.1.8(eslint@10.5.0(jiti@2.7.0)(supports-color@8.1.1)) eslint-plugin-jsdoc: - specifier: ^63.0.5 - version: 63.0.5(eslint@10.5.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1) + specifier: ^63.0.6 + version: 63.0.6(eslint@10.5.0(jiti@2.7.0)(supports-color@8.1.1)) eslint-plugin-prettier: specifier: ^5.5.6 version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.5.0(jiti@2.7.0)(supports-color@8.1.1)))(eslint@10.5.0(jiti@2.7.0)(supports-color@8.1.1))(prettier@3.8.4) @@ -105,7 +105,7 @@ importers: version: 9.1.7 lerna: specifier: ^9.0.7 - version: 9.0.7(@swc-node/register@1.11.1(@swc/core@1.15.41)(@swc/types@0.1.26)(supports-color@8.1.1)(typescript@6.0.3))(@swc/core@1.15.41)(@types/node@25.9.3)(babel-plugin-macros@3.1.0) + version: 9.0.7(@swc-node/register@1.11.1(@swc/core@1.15.41)(@swc/types@0.1.26)(supports-color@8.1.1)(typescript@6.0.3))(@swc/core@1.15.41)(@types/node@26.0.0)(babel-plugin-macros@3.1.0) nx: specifier: ^23.0.0 version: 23.0.0(@swc-node/register@1.11.1(@swc/core@1.15.41)(@swc/types@0.1.26)(supports-color@8.1.1)(typescript@6.0.3))(@swc/core@1.15.41) @@ -138,7 +138,7 @@ importers: version: 2.9.0 ts-node: specifier: ^10.9.2 - version: 10.9.2(@swc/core@1.15.41)(@types/node@25.9.3)(typescript@6.0.3) + version: 10.9.2(@swc/core@1.15.41)(@types/node@26.0.0)(typescript@6.0.3) typescript: specifier: ^6.0.3 version: 6.0.3 @@ -837,7 +837,7 @@ importers: version: 10.1.8(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-jsdoc: specifier: ^63.0.5 - version: 63.0.5(eslint@10.5.0(jiti@2.7.0)) + version: 63.0.5(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1) eslint-plugin-prettier: specifier: ^5.5.6 version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.5.0(jiti@2.7.0)))(eslint@10.5.0(jiti@2.7.0))(prettier@3.8.4) @@ -952,7 +952,7 @@ importers: version: 10.1.8(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-jsdoc: specifier: ^63.0.5 - version: 63.0.5(eslint@10.5.0(jiti@2.7.0)) + version: 63.0.5(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1) eslint-plugin-prettier: specifier: ^5.5.6 version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.5.0(jiti@2.7.0)))(eslint@10.5.0(jiti@2.7.0))(prettier@3.8.4) @@ -1055,7 +1055,7 @@ importers: version: 10.1.8(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-jsdoc: specifier: ^63.0.5 - version: 63.0.5(eslint@10.5.0(jiti@2.7.0)) + version: 63.0.5(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1) eslint-plugin-prettier: specifier: ^5.5.6 version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.5.0(jiti@2.7.0)))(eslint@10.5.0(jiti@2.7.0))(prettier@3.8.4) @@ -1167,7 +1167,7 @@ importers: version: 10.1.8(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-jsdoc: specifier: ^63.0.5 - version: 63.0.5(eslint@10.5.0(jiti@2.7.0)) + version: 63.0.5(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1) eslint-plugin-prettier: specifier: ^5.5.6 version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.5.0(jiti@2.7.0)))(eslint@10.5.0(jiti@2.7.0))(prettier@3.8.4) @@ -1261,7 +1261,7 @@ importers: version: 10.1.8(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-jsdoc: specifier: ^63.0.5 - version: 63.0.5(eslint@10.5.0(jiti@2.7.0)) + version: 63.0.5(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1) eslint-plugin-prettier: specifier: ^5.5.6 version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.5.0(jiti@2.7.0)))(eslint@10.5.0(jiti@2.7.0))(prettier@3.8.4) @@ -1355,7 +1355,7 @@ importers: version: 10.1.8(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-jsdoc: specifier: ^63.0.5 - version: 63.0.5(eslint@10.5.0(jiti@2.7.0)) + version: 63.0.5(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1) eslint-plugin-prettier: specifier: ^5.5.6 version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.5.0(jiti@2.7.0)))(eslint@10.5.0(jiti@2.7.0))(prettier@3.8.4) @@ -1449,7 +1449,7 @@ importers: version: 10.1.8(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-jsdoc: specifier: ^63.0.5 - version: 63.0.5(eslint@10.5.0(jiti@2.7.0)) + version: 63.0.5(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1) eslint-plugin-prettier: specifier: ^5.5.6 version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.5.0(jiti@2.7.0)))(eslint@10.5.0(jiti@2.7.0))(prettier@3.8.4) @@ -1531,7 +1531,7 @@ importers: version: 10.1.8(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-jsdoc: specifier: ^63.0.5 - version: 63.0.5(eslint@10.5.0(jiti@2.7.0)) + version: 63.0.5(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1) eslint-plugin-prettier: specifier: ^5.5.6 version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.5.0(jiti@2.7.0)))(eslint@10.5.0(jiti@2.7.0))(prettier@3.8.4) @@ -1628,7 +1628,7 @@ importers: version: 10.1.8(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-jsdoc: specifier: ^63.0.5 - version: 63.0.5(eslint@10.5.0(jiti@2.7.0)) + version: 63.0.5(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1) eslint-plugin-prettier: specifier: ^5.5.6 version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.5.0(jiti@2.7.0)))(eslint@10.5.0(jiti@2.7.0))(prettier@3.8.4) @@ -1722,7 +1722,7 @@ importers: version: 10.1.8(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-jsdoc: specifier: ^63.0.5 - version: 63.0.5(eslint@10.5.0(jiti@2.7.0)) + version: 63.0.5(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1) eslint-plugin-prettier: specifier: ^5.5.6 version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.5.0(jiti@2.7.0)))(eslint@10.5.0(jiti@2.7.0))(prettier@3.8.4) @@ -1846,7 +1846,7 @@ importers: version: 10.1.8(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-jsdoc: specifier: ^63.0.5 - version: 63.0.5(eslint@10.5.0(jiti@2.7.0)) + version: 63.0.5(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1) eslint-plugin-prettier: specifier: ^5.5.6 version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.5.0(jiti@2.7.0)))(eslint@10.5.0(jiti@2.7.0))(prettier@3.8.4) @@ -1952,7 +1952,7 @@ importers: version: 10.1.8(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-jsdoc: specifier: ^63.0.5 - version: 63.0.5(eslint@10.5.0(jiti@2.7.0)) + version: 63.0.5(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1) eslint-plugin-prettier: specifier: ^5.5.6 version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.5.0(jiti@2.7.0)))(eslint@10.5.0(jiti@2.7.0))(prettier@3.8.4) @@ -2028,7 +2028,7 @@ importers: version: 10.1.8(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-jsdoc: specifier: ^63.0.5 - version: 63.0.5(eslint@10.5.0(jiti@2.7.0)) + version: 63.0.5(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1) eslint-plugin-prettier: specifier: ^5.5.6 version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.5.0(jiti@2.7.0)))(eslint@10.5.0(jiti@2.7.0))(prettier@3.8.4) @@ -2098,7 +2098,7 @@ importers: version: 10.1.8(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-jsdoc: specifier: ^63.0.5 - version: 63.0.5(eslint@10.5.0(jiti@2.7.0)) + version: 63.0.5(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1) eslint-plugin-prettier: specifier: ^5.5.6 version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.5.0(jiti@2.7.0)))(eslint@10.5.0(jiti@2.7.0))(prettier@3.8.4) @@ -2168,7 +2168,7 @@ importers: version: 10.1.8(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-jsdoc: specifier: ^63.0.5 - version: 63.0.5(eslint@10.5.0(jiti@2.7.0)) + version: 63.0.5(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1) eslint-plugin-prettier: specifier: ^5.5.6 version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.5.0(jiti@2.7.0)))(eslint@10.5.0(jiti@2.7.0))(prettier@3.8.4) @@ -2238,7 +2238,7 @@ importers: version: 10.1.8(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-jsdoc: specifier: ^63.0.5 - version: 63.0.5(eslint@10.5.0(jiti@2.7.0)) + version: 63.0.5(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1) eslint-plugin-prettier: specifier: ^5.5.6 version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.5.0(jiti@2.7.0)))(eslint@10.5.0(jiti@2.7.0))(prettier@3.8.4) @@ -2308,7 +2308,7 @@ importers: version: 10.1.8(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-jsdoc: specifier: ^63.0.5 - version: 63.0.5(eslint@10.5.0(jiti@2.7.0)) + version: 63.0.5(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1) eslint-plugin-prettier: specifier: ^5.5.6 version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.5.0(jiti@2.7.0)))(eslint@10.5.0(jiti@2.7.0))(prettier@3.8.4) @@ -2378,7 +2378,7 @@ importers: version: 10.1.8(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-jsdoc: specifier: ^63.0.5 - version: 63.0.5(eslint@10.5.0(jiti@2.7.0)) + version: 63.0.5(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1) eslint-plugin-prettier: specifier: ^5.5.6 version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.5.0(jiti@2.7.0)))(eslint@10.5.0(jiti@2.7.0))(prettier@3.8.4) @@ -2448,7 +2448,7 @@ importers: version: 10.1.8(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-jsdoc: specifier: ^63.0.5 - version: 63.0.5(eslint@10.5.0(jiti@2.7.0)) + version: 63.0.5(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1) eslint-plugin-prettier: specifier: ^5.5.6 version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.5.0(jiti@2.7.0)))(eslint@10.5.0(jiti@2.7.0))(prettier@3.8.4) @@ -2518,7 +2518,7 @@ importers: version: 10.1.8(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-jsdoc: specifier: ^63.0.5 - version: 63.0.5(eslint@10.5.0(jiti@2.7.0)) + version: 63.0.5(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1) eslint-plugin-prettier: specifier: ^5.5.6 version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.5.0(jiti@2.7.0)))(eslint@10.5.0(jiti@2.7.0))(prettier@3.8.4) @@ -2588,7 +2588,7 @@ importers: version: 10.1.8(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-jsdoc: specifier: ^63.0.5 - version: 63.0.5(eslint@10.5.0(jiti@2.7.0)) + version: 63.0.5(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1) eslint-plugin-prettier: specifier: ^5.5.6 version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.5.0(jiti@2.7.0)))(eslint@10.5.0(jiti@2.7.0))(prettier@3.8.4) @@ -2661,7 +2661,7 @@ importers: version: 10.1.8(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-jsdoc: specifier: ^63.0.5 - version: 63.0.5(eslint@10.5.0(jiti@2.7.0)) + version: 63.0.5(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1) eslint-plugin-prettier: specifier: ^5.5.6 version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.5.0(jiti@2.7.0)))(eslint@10.5.0(jiti@2.7.0))(prettier@3.8.4) @@ -2822,7 +2822,7 @@ importers: version: 10.1.8(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-jsdoc: specifier: ^63.0.5 - version: 63.0.5(eslint@10.5.0(jiti@2.7.0)) + version: 63.0.5(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1) eslint-plugin-prettier: specifier: ^5.5.6 version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.5.0(jiti@2.7.0)))(eslint@10.5.0(jiti@2.7.0))(prettier@3.8.4) @@ -2889,7 +2889,7 @@ importers: version: 10.1.8(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-jsdoc: specifier: ^63.0.5 - version: 63.0.5(eslint@10.5.0(jiti@2.7.0)) + version: 63.0.5(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1) eslint-plugin-tsdoc: specifier: ^0.5.2 version: 0.5.2(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) @@ -2925,7 +2925,7 @@ importers: version: 10.1.8(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-jsdoc: specifier: ^63.0.5 - version: 63.0.5(eslint@10.5.0(jiti@2.7.0)) + version: 63.0.5(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1) eslint-plugin-prettier: specifier: ^5.5.6 version: 5.5.6(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.5.0(jiti@2.7.0)))(eslint@10.5.0(jiti@2.7.0))(prettier@3.8.4) @@ -2996,7 +2996,7 @@ importers: version: 10.1.8(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-jsdoc: specifier: ^63.0.5 - version: 63.0.5(eslint@10.5.0(jiti@2.7.0)) + version: 63.0.5(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1) eslint-plugin-tsdoc: specifier: ^0.5.2 version: 0.5.2(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) @@ -3063,7 +3063,7 @@ importers: version: 10.1.8(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-jsdoc: specifier: ^63.0.5 - version: 63.0.5(eslint@10.5.0(jiti@2.7.0)) + version: 63.0.5(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1) eslint-plugin-tsdoc: specifier: ^0.5.2 version: 0.5.2(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) @@ -4243,7 +4243,7 @@ importers: version: 2.32.0(@typescript-eslint/parser@8.61.1(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3))(eslint-import-resolver-typescript@4.4.5)(eslint@10.5.0(jiti@2.7.0)) eslint-plugin-jsdoc: specifier: ^63.0.5 - version: 63.0.5(eslint@10.5.0(jiti@2.7.0)) + version: 63.0.5(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1) eslint-plugin-prefer-arrow: specifier: ^1.2.3 version: 1.2.3(eslint@10.5.0(jiti@2.7.0)) @@ -29604,6 +29604,12 @@ packages: peerDependencies: eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0 + eslint-plugin-jsdoc@63.0.6: + resolution: {integrity: sha512-qXMUdwQf+igjSLe/DZqyY1baVR0+snEJ3l/+2odJjeoAG43PrcpA0tSaLw2dC1iHvfKzo1YnZLGvgxrvAViyfQ==} + engines: {node: ^22.13.0 || >=24} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0 + eslint-plugin-jsx-a11y@6.10.2: resolution: {integrity: sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==} engines: {node: '>=4.0'} @@ -43552,7 +43558,7 @@ snapshots: '@babel/helper-validator-option': 8.0.0 browserslist: 4.28.2 lru-cache: 7.18.3 - semver: 7.8.4 + semver: 7.8.5 '@babel/helper-create-class-features-plugin@7.29.7(@babel/core@7.29.0)': dependencies: @@ -43589,7 +43595,7 @@ snapshots: '@babel/helper-replace-supers': 8.0.0(@babel/core@8.0.1) '@babel/helper-skip-transparent-expression-wrappers': 8.0.0 '@babel/traverse': 8.0.0 - semver: 7.8.4 + semver: 7.8.5 '@babel/helper-create-regexp-features-plugin@7.29.7(@babel/core@7.29.0)': dependencies: @@ -43603,7 +43609,7 @@ snapshots: '@babel/core': 8.0.1 '@babel/helper-annotate-as-pure': 8.0.0 regexpu-core: 6.4.0 - semver: 7.8.4 + semver: 7.8.5 '@babel/helper-define-polyfill-provider@0.6.8(@babel/core@7.29.0)': dependencies: @@ -45209,11 +45215,11 @@ snapshots: '@colors/colors@1.6.0': {} - '@commitlint/cli@21.0.2(@types/node@25.9.3)(conventional-commits-parser@6.4.0)(typescript@6.0.3)': + '@commitlint/cli@21.0.2(@types/node@26.0.0)(conventional-commits-parser@6.4.0)(typescript@6.0.3)': dependencies: '@commitlint/format': 21.0.1 '@commitlint/lint': 21.0.2 - '@commitlint/load': 21.0.2(@types/node@25.9.3)(typescript@6.0.3) + '@commitlint/load': 21.0.2(@types/node@26.0.0)(typescript@6.0.3) '@commitlint/read': 21.0.2(conventional-commits-parser@6.4.0) '@commitlint/types': 21.0.1 tinyexec: 1.2.4 @@ -45258,14 +45264,14 @@ snapshots: '@commitlint/rules': 21.0.2 '@commitlint/types': 21.0.1 - '@commitlint/load@21.0.2(@types/node@25.9.3)(typescript@6.0.3)': + '@commitlint/load@21.0.2(@types/node@26.0.0)(typescript@6.0.3)': dependencies: '@commitlint/config-validator': 21.0.1 '@commitlint/execute-rule': 21.0.1 '@commitlint/resolve-extends': 21.0.1 '@commitlint/types': 21.0.1 cosmiconfig: 9.0.2(typescript@6.0.3) - cosmiconfig-typescript-loader: 6.3.0(@types/node@25.9.3)(cosmiconfig@9.0.2(typescript@6.0.3))(typescript@6.0.3) + cosmiconfig-typescript-loader: 6.3.0(@types/node@26.0.0)(cosmiconfig@9.0.2(typescript@6.0.3))(typescript@6.0.3) es-toolkit: 1.47.1 is-plain-obj: 4.1.0 picocolors: 1.1.1 @@ -45865,7 +45871,7 @@ snapshots: '@embroider/shared-internals': 3.1.1 broccoli-funnel: 3.0.8 common-ancestor-path: 1.0.1 - semver: 7.8.4 + semver: 7.8.5 transitivePeerDependencies: - supports-color @@ -45878,7 +45884,7 @@ snapshots: find-up: 5.0.0 lodash: 4.18.1 resolve: 1.22.12 - semver: 7.8.4 + semver: 7.8.5 transitivePeerDependencies: - '@babel/core' - supports-color @@ -45900,7 +45906,7 @@ snapshots: minimatch: 3.1.5 pkg-entry-points: 1.1.2 resolve-package-path: 4.0.3 - semver: 7.8.4 + semver: 7.8.5 typescript-memoize: 1.1.1 transitivePeerDependencies: - supports-color @@ -45918,7 +45924,7 @@ snapshots: pkg-entry-points: 1.1.2 resolve-package-path: 4.0.3 resolve.exports: 2.0.3 - semver: 7.8.4 + semver: 7.8.5 typescript-memoize: 1.1.1 transitivePeerDependencies: - supports-color @@ -46848,15 +46854,15 @@ snapshots: '@inquirer/ansi@2.0.7': {} - '@inquirer/checkbox@4.3.2(@types/node@25.9.3)': + '@inquirer/checkbox@4.3.2(@types/node@26.0.0)': dependencies: '@inquirer/ansi': 1.0.2 - '@inquirer/core': 10.3.2(@types/node@25.9.3) + '@inquirer/core': 10.3.2(@types/node@26.0.0) '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@25.9.3) + '@inquirer/type': 3.0.10(@types/node@26.0.0) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 25.9.3 + '@types/node': 26.0.0 '@inquirer/checkbox@5.2.1(@types/node@25.9.3)': dependencies: @@ -46876,12 +46882,12 @@ snapshots: optionalDependencies: '@types/node': 26.0.0 - '@inquirer/confirm@5.1.21(@types/node@25.9.3)': + '@inquirer/confirm@5.1.21(@types/node@26.0.0)': dependencies: - '@inquirer/core': 10.3.2(@types/node@25.9.3) - '@inquirer/type': 3.0.10(@types/node@25.9.3) + '@inquirer/core': 10.3.2(@types/node@26.0.0) + '@inquirer/type': 3.0.10(@types/node@26.0.0) optionalDependencies: - '@types/node': 25.9.3 + '@types/node': 26.0.0 '@inquirer/confirm@6.0.12(@types/node@25.9.3)': dependencies: @@ -46904,18 +46910,18 @@ snapshots: optionalDependencies: '@types/node': 26.0.0 - '@inquirer/core@10.3.2(@types/node@25.9.3)': + '@inquirer/core@10.3.2(@types/node@26.0.0)': dependencies: '@inquirer/ansi': 1.0.2 '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@25.9.3) + '@inquirer/type': 3.0.10(@types/node@26.0.0) cli-width: 4.1.0 mute-stream: 2.0.0 signal-exit: 4.1.0 wrap-ansi: 6.2.0 yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 25.9.3 + '@types/node': 26.0.0 '@inquirer/core@11.2.1(@types/node@25.9.3)': dependencies: @@ -46941,13 +46947,13 @@ snapshots: optionalDependencies: '@types/node': 26.0.0 - '@inquirer/editor@4.2.23(@types/node@25.9.3)': + '@inquirer/editor@4.2.23(@types/node@26.0.0)': dependencies: - '@inquirer/core': 10.3.2(@types/node@25.9.3) - '@inquirer/external-editor': 1.0.3(@types/node@25.9.3) - '@inquirer/type': 3.0.10(@types/node@25.9.3) + '@inquirer/core': 10.3.2(@types/node@26.0.0) + '@inquirer/external-editor': 1.0.3(@types/node@26.0.0) + '@inquirer/type': 3.0.10(@types/node@26.0.0) optionalDependencies: - '@types/node': 25.9.3 + '@types/node': 26.0.0 '@inquirer/editor@5.2.2(@types/node@25.9.3)': dependencies: @@ -46965,13 +46971,13 @@ snapshots: optionalDependencies: '@types/node': 26.0.0 - '@inquirer/expand@4.0.23(@types/node@25.9.3)': + '@inquirer/expand@4.0.23(@types/node@26.0.0)': dependencies: - '@inquirer/core': 10.3.2(@types/node@25.9.3) - '@inquirer/type': 3.0.10(@types/node@25.9.3) + '@inquirer/core': 10.3.2(@types/node@26.0.0) + '@inquirer/type': 3.0.10(@types/node@26.0.0) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 25.9.3 + '@types/node': 26.0.0 '@inquirer/expand@5.1.1(@types/node@25.9.3)': dependencies: @@ -46987,12 +46993,12 @@ snapshots: optionalDependencies: '@types/node': 26.0.0 - '@inquirer/external-editor@1.0.3(@types/node@25.9.3)': + '@inquirer/external-editor@1.0.3(@types/node@26.0.0)': dependencies: chardet: 2.1.1 iconv-lite: 0.7.2 optionalDependencies: - '@types/node': 25.9.3 + '@types/node': 26.0.0 '@inquirer/external-editor@3.0.3(@types/node@25.9.3)': dependencies: @@ -47012,12 +47018,12 @@ snapshots: '@inquirer/figures@2.0.7': {} - '@inquirer/input@4.3.1(@types/node@25.9.3)': + '@inquirer/input@4.3.1(@types/node@26.0.0)': dependencies: - '@inquirer/core': 10.3.2(@types/node@25.9.3) - '@inquirer/type': 3.0.10(@types/node@25.9.3) + '@inquirer/core': 10.3.2(@types/node@26.0.0) + '@inquirer/type': 3.0.10(@types/node@26.0.0) optionalDependencies: - '@types/node': 25.9.3 + '@types/node': 26.0.0 '@inquirer/input@5.1.2(@types/node@25.9.3)': dependencies: @@ -47033,12 +47039,12 @@ snapshots: optionalDependencies: '@types/node': 26.0.0 - '@inquirer/number@3.0.23(@types/node@25.9.3)': + '@inquirer/number@3.0.23(@types/node@26.0.0)': dependencies: - '@inquirer/core': 10.3.2(@types/node@25.9.3) - '@inquirer/type': 3.0.10(@types/node@25.9.3) + '@inquirer/core': 10.3.2(@types/node@26.0.0) + '@inquirer/type': 3.0.10(@types/node@26.0.0) optionalDependencies: - '@types/node': 25.9.3 + '@types/node': 26.0.0 '@inquirer/number@4.1.1(@types/node@25.9.3)': dependencies: @@ -47054,13 +47060,13 @@ snapshots: optionalDependencies: '@types/node': 26.0.0 - '@inquirer/password@4.0.23(@types/node@25.9.3)': + '@inquirer/password@4.0.23(@types/node@26.0.0)': dependencies: '@inquirer/ansi': 1.0.2 - '@inquirer/core': 10.3.2(@types/node@25.9.3) - '@inquirer/type': 3.0.10(@types/node@25.9.3) + '@inquirer/core': 10.3.2(@types/node@26.0.0) + '@inquirer/type': 3.0.10(@types/node@26.0.0) optionalDependencies: - '@types/node': 25.9.3 + '@types/node': 26.0.0 '@inquirer/password@5.1.1(@types/node@25.9.3)': dependencies: @@ -47078,20 +47084,20 @@ snapshots: optionalDependencies: '@types/node': 26.0.0 - '@inquirer/prompts@7.10.1(@types/node@25.9.3)': - dependencies: - '@inquirer/checkbox': 4.3.2(@types/node@25.9.3) - '@inquirer/confirm': 5.1.21(@types/node@25.9.3) - '@inquirer/editor': 4.2.23(@types/node@25.9.3) - '@inquirer/expand': 4.0.23(@types/node@25.9.3) - '@inquirer/input': 4.3.1(@types/node@25.9.3) - '@inquirer/number': 3.0.23(@types/node@25.9.3) - '@inquirer/password': 4.0.23(@types/node@25.9.3) - '@inquirer/rawlist': 4.1.11(@types/node@25.9.3) - '@inquirer/search': 3.2.2(@types/node@25.9.3) - '@inquirer/select': 4.4.2(@types/node@25.9.3) + '@inquirer/prompts@7.10.1(@types/node@26.0.0)': + dependencies: + '@inquirer/checkbox': 4.3.2(@types/node@26.0.0) + '@inquirer/confirm': 5.1.21(@types/node@26.0.0) + '@inquirer/editor': 4.2.23(@types/node@26.0.0) + '@inquirer/expand': 4.0.23(@types/node@26.0.0) + '@inquirer/input': 4.3.1(@types/node@26.0.0) + '@inquirer/number': 3.0.23(@types/node@26.0.0) + '@inquirer/password': 4.0.23(@types/node@26.0.0) + '@inquirer/rawlist': 4.1.11(@types/node@26.0.0) + '@inquirer/search': 3.2.2(@types/node@26.0.0) + '@inquirer/select': 4.4.2(@types/node@26.0.0) optionalDependencies: - '@types/node': 25.9.3 + '@types/node': 26.0.0 '@inquirer/prompts@8.4.2(@types/node@25.9.3)': dependencies: @@ -47138,13 +47144,13 @@ snapshots: optionalDependencies: '@types/node': 26.0.0 - '@inquirer/rawlist@4.1.11(@types/node@25.9.3)': + '@inquirer/rawlist@4.1.11(@types/node@26.0.0)': dependencies: - '@inquirer/core': 10.3.2(@types/node@25.9.3) - '@inquirer/type': 3.0.10(@types/node@25.9.3) + '@inquirer/core': 10.3.2(@types/node@26.0.0) + '@inquirer/type': 3.0.10(@types/node@26.0.0) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 25.9.3 + '@types/node': 26.0.0 '@inquirer/rawlist@5.3.1(@types/node@25.9.3)': dependencies: @@ -47160,14 +47166,14 @@ snapshots: optionalDependencies: '@types/node': 26.0.0 - '@inquirer/search@3.2.2(@types/node@25.9.3)': + '@inquirer/search@3.2.2(@types/node@26.0.0)': dependencies: - '@inquirer/core': 10.3.2(@types/node@25.9.3) + '@inquirer/core': 10.3.2(@types/node@26.0.0) '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@25.9.3) + '@inquirer/type': 3.0.10(@types/node@26.0.0) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 25.9.3 + '@types/node': 26.0.0 '@inquirer/search@4.2.1(@types/node@25.9.3)': dependencies: @@ -47185,15 +47191,15 @@ snapshots: optionalDependencies: '@types/node': 26.0.0 - '@inquirer/select@4.4.2(@types/node@25.9.3)': + '@inquirer/select@4.4.2(@types/node@26.0.0)': dependencies: '@inquirer/ansi': 1.0.2 - '@inquirer/core': 10.3.2(@types/node@25.9.3) + '@inquirer/core': 10.3.2(@types/node@26.0.0) '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@25.9.3) + '@inquirer/type': 3.0.10(@types/node@26.0.0) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 25.9.3 + '@types/node': 26.0.0 '@inquirer/select@5.2.1(@types/node@25.9.3)': dependencies: @@ -47213,9 +47219,9 @@ snapshots: optionalDependencies: '@types/node': 26.0.0 - '@inquirer/type@3.0.10(@types/node@25.9.3)': + '@inquirer/type@3.0.10(@types/node@26.0.0)': optionalDependencies: - '@types/node': 25.9.3 + '@types/node': 26.0.0 '@inquirer/type@4.0.7(@types/node@25.9.3)': optionalDependencies: @@ -47266,7 +47272,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@ionic/utils-fs@3.1.7': + '@ionic/utils-fs@3.1.7(supports-color@8.1.1)': dependencies: '@types/fs-extra': 8.1.5 debug: 4.4.3(supports-color@8.1.1) @@ -47303,7 +47309,7 @@ snapshots: '@ionic/utils-subprocess@3.0.1(supports-color@8.1.1)': dependencies: '@ionic/utils-array': 2.1.6(supports-color@8.1.1) - '@ionic/utils-fs': 3.1.7 + '@ionic/utils-fs': 3.1.7(supports-color@8.1.1) '@ionic/utils-process': 2.1.12(supports-color@8.1.1) '@ionic/utils-stream': 3.1.7(supports-color@8.1.1) '@ionic/utils-terminal': 2.3.5 @@ -47359,7 +47365,7 @@ snapshots: '@jest/console@29.7.0': dependencies: '@jest/types': 29.6.3 - '@types/node': 25.9.3 + '@types/node': 25.9.4 chalk: 4.1.2 jest-message-util: 29.7.0 jest-util: 29.7.0 @@ -47372,14 +47378,14 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 25.9.3 + '@types/node': 25.9.4 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.9.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@25.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@26.0.0)(typescript@6.0.3)) + jest-config: 29.7.0(@types/node@25.9.4)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@26.0.0)(typescript@6.0.3)) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -47410,7 +47416,7 @@ snapshots: '@jest/fake-timers': 30.4.1 '@jest/types': 30.4.1 '@types/jsdom': 21.1.7 - '@types/node': 25.9.3 + '@types/node': 25.9.4 jest-mock: 30.4.1 jest-util: 30.4.1 jsdom: 26.1.0(canvas@3.2.3) @@ -47421,14 +47427,14 @@ snapshots: dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 25.9.3 + '@types/node': 25.9.4 jest-mock: 29.7.0 '@jest/environment@30.4.1': dependencies: '@jest/fake-timers': 30.4.1 '@jest/types': 30.4.1 - '@types/node': 25.9.3 + '@types/node': 25.9.4 jest-mock: 30.4.1 '@jest/expect-utils@29.7.0': @@ -47450,7 +47456,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 25.9.3 + '@types/node': 25.9.4 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -47459,7 +47465,7 @@ snapshots: dependencies: '@jest/types': 30.4.1 '@sinonjs/fake-timers': 15.4.0 - '@types/node': 25.9.3 + '@types/node': 25.9.4 jest-message-util: 30.4.1 jest-mock: 30.4.1 jest-util: 30.4.1 @@ -47477,7 +47483,7 @@ snapshots: '@jest/pattern@30.4.0': dependencies: - '@types/node': 25.9.3 + '@types/node': 25.9.4 jest-regex-util: 30.4.0 '@jest/reporters@29.7.0': @@ -47488,7 +47494,7 @@ snapshots: '@jest/transform': 29.7.0 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.31 - '@types/node': 25.9.3 + '@types/node': 25.9.4 chalk: 4.1.2 collect-v8-coverage: 1.0.3 exit: 0.1.2 @@ -47562,7 +47568,7 @@ snapshots: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 25.9.3 + '@types/node': 25.9.4 '@types/yargs': 17.0.35 chalk: 4.1.2 @@ -47572,7 +47578,7 @@ snapshots: '@jest/schemas': 30.4.1 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 25.9.3 + '@types/node': 25.9.4 '@types/yargs': 17.0.35 chalk: 4.1.2 @@ -47810,7 +47816,7 @@ snapshots: https-proxy-agent: 7.0.6 node-fetch: 2.7.0(encoding@0.1.13) nopt: 8.1.0 - semver: 7.8.4 + semver: 7.8.5 tar: 7.5.16 transitivePeerDependencies: - encoding @@ -48096,7 +48102,7 @@ snapshots: proggy: 3.0.0 promise-all-reject-late: 1.0.1 promise-call-limit: 3.0.2 - semver: 7.7.2 + semver: 7.8.5 ssri: 12.0.0 treeverse: 3.0.0 walk-up-path: 4.0.0 @@ -48119,11 +48125,11 @@ snapshots: '@npmcli/fs@4.0.0': dependencies: - semver: 7.7.2 + semver: 7.8.5 '@npmcli/fs@5.0.0': dependencies: - semver: 7.7.2 + semver: 7.8.5 '@npmcli/git@4.1.0(bluebird@3.7.2)': dependencies: @@ -48146,7 +48152,7 @@ snapshots: npm-pick-manifest: 10.0.0 proc-log: 5.0.0 promise-retry: 2.0.1 - semver: 7.7.2 + semver: 7.8.5 which: 5.0.0 '@npmcli/git@7.0.2': @@ -48157,7 +48163,7 @@ snapshots: lru-cache: 11.5.1 npm-pick-manifest: 11.0.3 proc-log: 6.1.0 - semver: 7.7.2 + semver: 7.8.5 which: 6.0.1 '@npmcli/installed-package-contents@2.1.0': @@ -48188,7 +48194,7 @@ snapshots: json-parse-even-better-errors: 5.0.0 pacote: 21.5.1 proc-log: 6.1.0 - semver: 7.7.2 + semver: 7.8.5 transitivePeerDependencies: - supports-color @@ -48219,7 +48225,7 @@ snapshots: hosted-git-info: 9.0.3 json-parse-even-better-errors: 5.0.0 proc-log: 6.1.0 - semver: 7.7.2 + semver: 7.8.5 validate-npm-package-license: 3.0.4 '@npmcli/package-json@7.0.5': @@ -48229,7 +48235,7 @@ snapshots: hosted-git-info: 9.0.3 json-parse-even-better-errors: 5.0.0 proc-log: 6.1.0 - semver: 7.7.4 + semver: 7.8.5 spdx-expression-parse: 4.0.0 '@npmcli/promise-spawn@6.0.2': @@ -48488,7 +48494,7 @@ snapshots: minimist: 1.2.8 opener: 1.5.2 pretty-bytes: 5.6.0 - semver: 7.8.4 + semver: 7.8.5 serve-static: 1.16.3 std-env: 3.10.0 upath: 2.0.1 @@ -48520,7 +48526,7 @@ snapshots: perfect-debounce: 2.1.0 pkg-types: 2.3.1 scule: 1.3.0 - semver: 7.8.4 + semver: 7.8.5 srvx: 0.11.16 std-env: 4.1.0 tinyclip: 0.1.14 @@ -48558,7 +48564,7 @@ snapshots: perfect-debounce: 2.1.0 pkg-types: 2.3.1 scule: 1.3.0 - semver: 7.8.4 + semver: 7.8.5 srvx: 0.11.16 std-env: 4.1.0 tinyclip: 0.1.14 @@ -48581,7 +48587,7 @@ snapshots: glob: 7.2.3 globby: 11.1.0 scule: 0.2.1 - semver: 7.8.4 + semver: 7.8.5 upath: 2.0.1 vue-template-compiler: 2.7.16 @@ -48629,7 +48635,7 @@ snapshots: magicast: 0.5.3 pathe: 2.0.3 pkg-types: 2.3.1 - semver: 7.8.4 + semver: 7.8.5 '@nuxt/devtools@3.2.4(supports-color@8.1.1)(vite@8.0.16(@types/node@26.0.0)(esbuild@0.28.1)(jiti@2.7.0)(less@4.6.6)(sass@1.101.0)(stylus@0.64.0)(terser@5.48.0)(yaml@2.9.0))(vue@3.5.38(typescript@6.0.3))': dependencies: @@ -48656,7 +48662,7 @@ snapshots: pathe: 2.0.3 perfect-debounce: 2.1.0 pkg-types: 2.3.1 - semver: 7.8.4 + semver: 7.8.5 simple-git: 3.36.0(supports-color@8.1.1) sirv: 3.0.2 structured-clone-es: 2.0.0 @@ -49155,7 +49161,7 @@ snapshots: jiti: 1.21.7 lodash: 4.18.1 proper-lockfile: 4.1.2 - semver: 7.8.4 + semver: 7.8.5 serialize-javascript: 6.0.2 signal-exit: 4.1.0 ua-parser-js: 1.0.41 @@ -49465,7 +49471,7 @@ snapshots: postcss-loader: 4.3.0(postcss@8.5.15)(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) postcss-preset-env: 9.6.0(postcss@8.5.15) postcss-url: 10.1.4(postcss@8.5.15) - semver: 7.8.4 + semver: 7.8.5 std-env: 3.10.0 style-resources-loader: 1.5.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) terser-webpack-plugin: 4.2.3(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) @@ -49580,7 +49586,7 @@ snapshots: postcss-loader: 4.3.0(postcss@8.5.15)(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) postcss-preset-env: 9.6.0(postcss@8.5.15) postcss-url: 10.1.4(postcss@8.5.15) - semver: 7.8.4 + semver: 7.8.5 std-env: 3.10.0 style-resources-loader: 1.5.0(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) terser-webpack-plugin: 4.2.3(webpack@4.47.0(webpack-cli@7.0.3(webpack-bundle-analyzer@5.3.0)(webpack-dev-server@5.2.5)(webpack@5.107.2))) @@ -49722,7 +49728,7 @@ snapshots: enquirer: 2.3.6 minimatch: 10.2.5 nx: 22.7.5(@swc-node/register@1.11.1(@swc/core@1.15.41)(@swc/types@0.1.26)(typescript@6.0.3))(@swc/core@1.15.41) - semver: 7.7.2 + semver: 7.8.5 tslib: 2.8.1 yargs-parser: 21.1.1 @@ -51142,7 +51148,7 @@ snapshots: debug: 4.4.3(supports-color@8.1.1) extract-zip: 2.0.1(supports-color@8.1.1) progress: 2.0.3 - proxy-agent: 6.5.0(supports-color@8.1.1) + proxy-agent: 6.5.0 semver: 7.8.5 tar-fs: 3.1.2 yargs: 17.7.2 @@ -51157,7 +51163,7 @@ snapshots: debug: 4.4.3(supports-color@8.1.1) extract-zip: 2.0.1(supports-color@8.1.1) progress: 2.0.3 - proxy-agent: 6.5.0(supports-color@8.1.1) + proxy-agent: 6.5.0 semver: 7.8.5 tar-fs: 3.1.2 unbzip2-stream: 1.4.3 @@ -52861,7 +52867,7 @@ snapshots: '@types/accepts@1.3.7': dependencies: - '@types/node': 25.9.3 + '@types/node': 25.9.4 '@types/aria-query@5.0.4': {} @@ -52891,7 +52897,7 @@ snapshots: '@types/body-parser@1.19.6': dependencies: '@types/connect': 3.4.38 - '@types/node': 25.9.3 + '@types/node': 25.9.4 '@types/bonjour@3.5.13': dependencies: @@ -52918,7 +52924,7 @@ snapshots: '@types/co-body@6.1.3': dependencies: - '@types/node': 25.9.3 + '@types/node': 25.9.4 '@types/qs': 6.15.1 '@types/command-line-args@5.2.3': {} @@ -52940,7 +52946,7 @@ snapshots: '@types/connect@3.4.38': dependencies: - '@types/node': 25.9.3 + '@types/node': 25.9.4 '@types/content-disposition@0.5.9': {} @@ -52953,11 +52959,11 @@ snapshots: '@types/connect': 3.4.38 '@types/express': 5.0.6 '@types/keygrip': 1.0.6 - '@types/node': 25.9.3 + '@types/node': 25.9.4 '@types/cors@2.8.19': dependencies: - '@types/node': 25.9.3 + '@types/node': 25.9.4 '@types/debounce@1.2.4': {} @@ -52967,26 +52973,6 @@ snapshots: '@types/deep-eql@4.0.2': {} - '@types/ember@4.0.11': - dependencies: - '@types/ember__application': 4.0.11(@babel/core@7.29.0) - '@types/ember__array': 4.0.10 - '@types/ember__component': 4.0.22 - '@types/ember__controller': 4.0.12 - '@types/ember__debug': 4.0.8 - '@types/ember__engine': 4.0.11 - '@types/ember__error': 4.0.6 - '@types/ember__object': 4.0.12(@babel/core@7.29.0) - '@types/ember__polyfills': 4.0.6 - '@types/ember__routing': 4.0.23 - '@types/ember__runloop': 4.0.10 - '@types/ember__service': 4.0.9 - '@types/ember__string': 3.0.15 - '@types/ember__template': 4.0.7 - '@types/ember__test': 4.0.6(@babel/core@7.29.0) - '@types/ember__utils': 4.0.7 - '@types/rsvp': 4.0.9 - '@types/ember@4.0.11(@babel/core@7.29.0)': dependencies: '@types/ember__application': 4.0.11(@babel/core@7.29.0) @@ -53022,11 +53008,6 @@ snapshots: - '@babel/core' - supports-color - '@types/ember__array@4.0.10': - dependencies: - '@types/ember': 4.0.11 - '@types/ember__object': 4.0.12 - '@types/ember__array@4.0.10(@babel/core@7.29.0)': dependencies: '@types/ember': 4.0.11(@babel/core@7.29.0) @@ -53035,23 +53016,14 @@ snapshots: - '@babel/core' - supports-color - '@types/ember__component@4.0.22': - dependencies: - '@types/ember': 4.0.11 - '@types/ember__object': 4.0.12 - '@types/ember__component@4.0.22(@babel/core@7.29.0)': dependencies: '@types/ember': 4.0.11(@babel/core@7.29.0) - '@types/ember__object': 4.0.12 + '@types/ember__object': 4.0.12(@babel/core@7.29.0) transitivePeerDependencies: - '@babel/core' - supports-color - '@types/ember__controller@4.0.12': - dependencies: - '@types/ember__object': 4.0.12 - '@types/ember__controller@4.0.12(@babel/core@7.29.0)': dependencies: '@types/ember__object': 4.0.12(@babel/core@7.29.0) @@ -53059,11 +53031,6 @@ snapshots: - '@babel/core' - supports-color - '@types/ember__debug@4.0.8': - dependencies: - '@types/ember__object': 4.0.12 - '@types/ember__owner': 4.0.9 - '@types/ember__debug@4.0.8(@babel/core@7.29.0)': dependencies: '@types/ember__object': 4.0.12(@babel/core@7.29.0) @@ -53074,11 +53041,6 @@ snapshots: '@types/ember__destroyable@4.0.5': {} - '@types/ember__engine@4.0.11': - dependencies: - '@types/ember__object': 4.0.12 - '@types/ember__owner': 4.0.9 - '@types/ember__engine@4.0.11(@babel/core@7.29.0)': dependencies: '@types/ember__object': 4.0.12(@babel/core@7.29.0) @@ -53089,11 +53051,6 @@ snapshots: '@types/ember__error@4.0.6': {} - '@types/ember__object@4.0.12': - dependencies: - '@types/ember': 4.0.11 - '@types/rsvp': 4.0.9 - '@types/ember__object@4.0.12(@babel/core@7.29.0)': dependencies: '@types/ember': 4.0.11(@babel/core@7.29.0) @@ -53106,27 +53063,16 @@ snapshots: '@types/ember__polyfills@4.0.6': {} - '@types/ember__routing@4.0.23': - dependencies: - '@types/ember': 4.0.11 - '@types/ember__controller': 4.0.12 - '@types/ember__object': 4.0.12 - '@types/ember__service': 4.0.9 - '@types/ember__routing@4.0.23(@babel/core@7.29.0)': dependencies: '@types/ember': 4.0.11(@babel/core@7.29.0) - '@types/ember__controller': 4.0.12 + '@types/ember__controller': 4.0.12(@babel/core@7.29.0) '@types/ember__object': 4.0.12(@babel/core@7.29.0) - '@types/ember__service': 4.0.9 + '@types/ember__service': 4.0.9(@babel/core@7.29.0) transitivePeerDependencies: - '@babel/core' - supports-color - '@types/ember__runloop@4.0.10': - dependencies: - '@types/ember': 4.0.11 - '@types/ember__runloop@4.0.10(@babel/core@7.29.0)': dependencies: '@types/ember': 4.0.11(@babel/core@7.29.0) @@ -53134,10 +53080,6 @@ snapshots: - '@babel/core' - supports-color - '@types/ember__service@4.0.9': - dependencies: - '@types/ember__object': 4.0.12 - '@types/ember__service@4.0.9(@babel/core@7.29.0)': dependencies: '@types/ember__object': 4.0.12(@babel/core@7.29.0) @@ -53160,10 +53102,6 @@ snapshots: - '@babel/core' - supports-color - '@types/ember__utils@4.0.7': - dependencies: - '@types/ember': 4.0.11 - '@types/ember__utils@4.0.7(@babel/core@7.29.0)': dependencies: '@types/ember': 4.0.11(@babel/core@7.29.0) @@ -53191,11 +53129,11 @@ snapshots: '@types/etag@1.8.3': dependencies: - '@types/node': 25.9.3 + '@types/node': 25.9.4 '@types/etag@1.8.4': dependencies: - '@types/node': 25.9.3 + '@types/node': 25.9.4 '@types/express-serve-static-core@4.19.8': dependencies: @@ -53206,7 +53144,7 @@ snapshots: '@types/express-serve-static-core@5.1.1': dependencies: - '@types/node': 25.9.3 + '@types/node': 25.9.4 '@types/qs': 6.15.1 '@types/range-parser': 1.2.7 '@types/send': 1.2.1 @@ -53230,18 +53168,18 @@ snapshots: '@types/fs-extra@5.1.0': dependencies: - '@types/node': 25.9.3 + '@types/node': 25.9.4 '@types/fs-extra@8.1.5': dependencies: - '@types/node': 25.9.3 + '@types/node': 25.9.4 '@types/gensync@1.0.5': {} '@types/glob@7.2.0': dependencies: '@types/minimatch': 6.0.0 - '@types/node': 25.9.3 + '@types/node': 25.9.4 '@types/glob@9.0.0': dependencies: @@ -53249,7 +53187,7 @@ snapshots: '@types/graceful-fs@4.1.9': dependencies: - '@types/node': 25.9.3 + '@types/node': 25.9.4 '@types/gradient-parser@1.1.0': {} @@ -53298,13 +53236,13 @@ snapshots: '@types/jsdom@21.1.7': dependencies: - '@types/node': 25.9.3 + '@types/node': 25.9.4 '@types/tough-cookie': 4.0.5 parse5: 7.3.0 '@types/jsdom@28.0.3': dependencies: - '@types/node': 25.9.3 + '@types/node': 25.9.4 '@types/tough-cookie': 4.0.5 parse5: 8.0.1 undici-types: 7.28.0 @@ -53331,7 +53269,7 @@ snapshots: '@types/karma@5.0.1(supports-color@8.1.1)': dependencies: - '@types/node': 25.9.3 + '@types/node': 25.9.4 log4js: 4.5.1(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -53340,11 +53278,11 @@ snapshots: '@types/keyv@3.1.4': dependencies: - '@types/node': 25.9.3 + '@types/node': 25.9.4 '@types/klaw@3.0.7': dependencies: - '@types/node': 25.9.3 + '@types/node': 25.9.4 '@types/koa-compose@3.2.9': dependencies: @@ -53353,7 +53291,7 @@ snapshots: '@types/koa-compress@2.0.9': dependencies: '@types/koa': 2.15.2 - '@types/node': 25.9.3 + '@types/node': 25.9.4 '@types/koa-etag@3.0.4': dependencies: @@ -53378,7 +53316,7 @@ snapshots: '@types/http-errors': 2.0.5 '@types/keygrip': 1.0.6 '@types/koa-compose': 3.2.9 - '@types/node': 25.9.3 + '@types/node': 25.9.4 '@types/koa__cors@3.3.1': dependencies: @@ -53427,7 +53365,7 @@ snapshots: '@types/mysql@2.15.26': dependencies: - '@types/node': 25.9.3 + '@types/node': 25.9.4 '@types/nlcst@2.0.3': dependencies: @@ -53435,7 +53373,7 @@ snapshots: '@types/node-forge@1.3.14': dependencies: - '@types/node': 25.9.3 + '@types/node': 25.9.4 '@types/node@16.18.126': {} @@ -53477,13 +53415,13 @@ snapshots: '@types/pg@8.6.1': dependencies: - '@types/node': 25.9.3 + '@types/node': 25.9.4 pg-protocol: 1.14.0 pg-types: 2.2.0 '@types/prompts@2.4.9': dependencies: - '@types/node': 25.9.3 + '@types/node': 25.9.4 kleur: 3.0.3 '@types/prop-types@15.7.15': {} @@ -53522,17 +53460,17 @@ snapshots: '@types/resolve@0.0.8': dependencies: - '@types/node': 25.9.3 + '@types/node': 25.9.4 '@types/resolve@1.17.1': dependencies: - '@types/node': 25.9.3 + '@types/node': 25.9.4 '@types/resolve@1.20.2': {} '@types/responselike@1.0.3': dependencies: - '@types/node': 25.9.3 + '@types/node': 25.9.4 '@types/retry@0.12.0': {} @@ -53541,7 +53479,7 @@ snapshots: '@types/rimraf@2.0.5': dependencies: '@types/glob': 9.0.0 - '@types/node': 25.9.3 + '@types/node': 25.9.4 '@types/rsvp@4.0.9': {} @@ -53569,13 +53507,13 @@ snapshots: '@types/serve-static@1.15.7': dependencies: '@types/http-errors': 2.0.5 - '@types/node': 25.9.3 + '@types/node': 25.9.4 '@types/send': 1.2.1 '@types/serve-static@2.2.0': dependencies: '@types/http-errors': 2.0.5 - '@types/node': 25.9.3 + '@types/node': 25.9.4 '@types/shimmer@1.2.0': {} @@ -53606,7 +53544,7 @@ snapshots: '@types/stylus@0.48.43': dependencies: - '@types/node': 25.9.3 + '@types/node': 25.9.4 '@types/symlink-or-copy@1.2.2': {} @@ -53614,7 +53552,7 @@ snapshots: '@types/tedious@4.0.14': dependencies: - '@types/node': 25.9.3 + '@types/node': 25.9.4 '@types/terser-webpack-plugin@4.2.1': dependencies: @@ -53643,7 +53581,7 @@ snapshots: '@types/webpack-bundle-analyzer@4.7.0(@swc/core@1.15.41)(webpack-cli@7.0.3)': dependencies: - '@types/node': 25.9.3 + '@types/node': 25.9.4 tapable: 2.3.3 webpack: 5.107.2(@swc/core@1.15.41)(webpack-cli@7.0.3) transitivePeerDependencies: @@ -53685,11 +53623,11 @@ snapshots: '@types/whatwg-url@6.4.0': dependencies: - '@types/node': 25.9.3 + '@types/node': 25.9.4 '@types/ws@7.4.7': dependencies: - '@types/node': 25.9.3 + '@types/node': 25.9.4 '@types/ws@8.18.1': dependencies: @@ -53703,7 +53641,7 @@ snapshots: '@types/yauzl@2.10.3': dependencies: - '@types/node': 25.9.3 + '@types/node': 25.9.4 optional: true '@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1)(typescript@6.0.3))(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1)(typescript@6.0.3)': @@ -53719,7 +53657,7 @@ snapshots: graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 - semver: 7.8.4 + semver: 7.8.5 ts-api-utils: 1.4.3(typescript@6.0.3) optionalDependencies: typescript: 6.0.3 @@ -53794,7 +53732,7 @@ snapshots: dependencies: '@typescript-eslint/scope-manager': 6.21.0 '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/typescript-estree': 6.21.0(supports-color@8.1.1)(typescript@6.0.3) + '@typescript-eslint/typescript-estree': 6.21.0(typescript@6.0.3) '@typescript-eslint/visitor-keys': 6.21.0 debug: 4.4.3(supports-color@8.1.1) eslint: 10.5.0(jiti@2.7.0) @@ -53895,7 +53833,7 @@ snapshots: '@typescript-eslint/type-utils@6.21.0(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1)(typescript@6.0.3)': dependencies: - '@typescript-eslint/typescript-estree': 6.21.0(supports-color@8.1.1)(typescript@6.0.3) + '@typescript-eslint/typescript-estree': 6.21.0(typescript@6.0.3) '@typescript-eslint/utils': 6.21.0(eslint@10.5.0(jiti@2.7.0))(typescript@6.0.3) debug: 4.4.3(supports-color@8.1.1) eslint: 10.5.0(jiti@2.7.0) @@ -53949,7 +53887,7 @@ snapshots: '@typescript-eslint/types@8.61.1': {} - '@typescript-eslint/typescript-estree@6.21.0(supports-color@8.1.1)(typescript@6.0.3)': + '@typescript-eslint/typescript-estree@6.21.0(typescript@6.0.3)': dependencies: '@typescript-eslint/types': 6.21.0 '@typescript-eslint/visitor-keys': 6.21.0 @@ -54016,9 +53954,9 @@ snapshots: '@types/semver': 7.7.1 '@typescript-eslint/scope-manager': 6.21.0 '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/typescript-estree': 6.21.0(supports-color@8.1.1)(typescript@6.0.3) + '@typescript-eslint/typescript-estree': 6.21.0(typescript@6.0.3) eslint: 10.5.0(jiti@2.7.0) - semver: 7.8.4 + semver: 7.8.5 transitivePeerDependencies: - supports-color - typescript @@ -58872,7 +58810,7 @@ snapshots: chrome-launcher@1.2.1: dependencies: - '@types/node': 25.9.3 + '@types/node': 25.9.4 escape-string-regexp: 4.0.0 is-wsl: 2.2.0 lighthouse-logger: 2.0.2 @@ -59484,7 +59422,7 @@ snapshots: handlebars: 4.7.9 json-stringify-safe: 5.0.1 meow: 8.1.2 - semver: 7.7.2 + semver: 7.8.5 split: 1.0.1 conventional-commits-filter@3.0.0: @@ -59641,9 +59579,9 @@ snapshots: object-assign: 4.1.1 vary: 1.1.2 - cosmiconfig-typescript-loader@6.3.0(@types/node@25.9.3)(cosmiconfig@9.0.2(typescript@6.0.3))(typescript@6.0.3): + cosmiconfig-typescript-loader@6.3.0(@types/node@26.0.0)(cosmiconfig@9.0.2(typescript@6.0.3))(typescript@6.0.3): dependencies: - '@types/node': 25.9.3 + '@types/node': 26.0.0 cosmiconfig: 9.0.2(typescript@6.0.3) jiti: 2.6.1 typescript: 6.0.3 @@ -61555,7 +61493,7 @@ snapshots: lodash: 4.18.1 package-json: 6.5.0 remote-git-tags: 3.0.0 - semver: 7.8.4 + semver: 7.8.5 transitivePeerDependencies: - encoding @@ -61663,7 +61601,7 @@ snapshots: engine.io@6.6.8(supports-color@8.1.1): dependencies: '@types/cors': 2.8.19 - '@types/node': 25.9.3 + '@types/node': 25.9.4 '@types/ws': 8.18.1 accepts: 1.3.8 base64id: 2.0.0 @@ -62521,7 +62459,7 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-jsdoc@63.0.5(eslint@10.5.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1): + eslint-plugin-jsdoc@63.0.5(eslint@10.5.0(jiti@2.7.0))(supports-color@8.1.1): dependencies: '@es-joy/jsdoccomment': 0.87.0 '@es-joy/resolve.exports': 1.2.0 @@ -62529,7 +62467,7 @@ snapshots: comment-parser: 1.4.7 debug: 4.4.3(supports-color@8.1.1) escape-string-regexp: 4.0.0 - eslint: 10.5.0(jiti@2.7.0)(supports-color@8.1.1) + eslint: 10.5.0(jiti@2.7.0) espree: 11.2.0 esquery: 1.7.0 html-entities: 2.6.0 @@ -62541,7 +62479,7 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-jsdoc@63.0.5(eslint@10.5.0(jiti@2.7.0)): + eslint-plugin-jsdoc@63.0.6(eslint@10.5.0(jiti@2.7.0)(supports-color@8.1.1)): dependencies: '@es-joy/jsdoccomment': 0.87.0 '@es-joy/resolve.exports': 1.2.0 @@ -62549,13 +62487,13 @@ snapshots: comment-parser: 1.4.7 debug: 4.4.3(supports-color@8.1.1) escape-string-regexp: 4.0.0 - eslint: 10.5.0(jiti@2.7.0) + eslint: 10.5.0(jiti@2.7.0)(supports-color@8.1.1) espree: 11.2.0 esquery: 1.7.0 html-entities: 2.6.0 object-deep-merge: 2.0.1 parse-imports-exports: 0.2.4 - semver: 7.8.4 + semver: 7.8.5 spdx-expression-parse: 4.0.0 to-valid-identifier: 1.0.0 transitivePeerDependencies: @@ -62790,7 +62728,7 @@ snapshots: natural-compare: 1.4.0 nth-check: 2.1.1 postcss-selector-parser: 6.1.4 - semver: 7.8.4 + semver: 7.8.5 vue-eslint-parser: 9.4.3(eslint@10.5.0(jiti@2.7.0)) xml-name-validator: 4.0.0 transitivePeerDependencies: @@ -64092,7 +64030,7 @@ snapshots: dependencies: resolve-pkg-maps: 1.0.0 - get-uri@6.0.5(supports-color@8.1.1): + get-uri@6.0.5: dependencies: basic-ftp: 5.3.1 data-uri-to-buffer: 6.0.2 @@ -64153,7 +64091,7 @@ snapshots: git-semver-tags@5.0.1: dependencies: meow: 8.1.2 - semver: 7.7.2 + semver: 7.8.5 git-up@7.0.0: dependencies: @@ -65275,7 +65213,7 @@ snapshots: npm-package-arg: 13.0.2 promzard: 2.0.0 read: 4.1.0 - semver: 7.7.2 + semver: 7.8.5 validate-npm-package-license: 3.0.4 validate-npm-package-name: 6.0.2 @@ -65289,17 +65227,17 @@ snapshots: inquirer: 6.5.2 rxjs: 6.6.7 - inquirer@12.9.6(@types/node@25.9.3): + inquirer@12.9.6(@types/node@26.0.0): dependencies: '@inquirer/ansi': 1.0.2 - '@inquirer/core': 10.3.2(@types/node@25.9.3) - '@inquirer/prompts': 7.10.1(@types/node@25.9.3) - '@inquirer/type': 3.0.10(@types/node@25.9.3) + '@inquirer/core': 10.3.2(@types/node@26.0.0) + '@inquirer/prompts': 7.10.1(@types/node@26.0.0) + '@inquirer/type': 3.0.10(@types/node@26.0.0) mute-stream: 2.0.0 run-async: 4.0.6 rxjs: 7.8.2 optionalDependencies: - '@types/node': 25.9.3 + '@types/node': 26.0.0 inquirer@13.4.3(@types/node@25.9.3): dependencies: @@ -66021,7 +65959,7 @@ snapshots: '@jest/expect': 29.7.0 '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 25.9.3 + '@types/node': 25.9.4 chalk: 4.1.2 co: 4.6.0 dedent: 1.7.2(babel-plugin-macros@3.1.0) @@ -66091,6 +66029,37 @@ snapshots: - babel-plugin-macros - supports-color + jest-config@29.7.0(@types/node@25.9.4)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.15.41)(@types/node@26.0.0)(typescript@6.0.3)): + dependencies: + '@babel/core': 7.29.0 + '@jest/test-sequencer': 29.7.0 + '@jest/types': 29.6.3 + babel-jest: 29.7.0(@babel/core@7.29.0) + chalk: 4.1.2 + ci-info: 3.9.0 + deepmerge: 4.3.1 + glob: 7.2.3 + graceful-fs: 4.2.11 + jest-circus: 29.7.0(babel-plugin-macros@3.1.0) + jest-environment-node: 29.7.0 + jest-get-type: 29.6.3 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-runner: 29.7.0 + jest-util: 29.7.0 + jest-validate: 29.7.0 + micromatch: 4.0.8 + parse-json: 5.2.0 + pretty-format: 29.7.0 + slash: 3.0.0 + strip-json-comments: 3.1.1 + optionalDependencies: + '@types/node': 25.9.4 + ts-node: 10.9.2(@swc/core@1.15.41)(@types/node@26.0.0)(typescript@6.0.3) + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + jest-dev-server@10.1.4: dependencies: chalk: 4.1.2 @@ -66147,7 +66116,7 @@ snapshots: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 25.9.3 + '@types/node': 25.9.4 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -66157,7 +66126,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.9 - '@types/node': 25.9.3 + '@types/node': 25.9.4 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -66216,13 +66185,13 @@ snapshots: jest-mock@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 25.9.3 + '@types/node': 25.9.4 jest-util: 29.7.0 jest-mock@30.4.1: dependencies: '@jest/types': 30.4.1 - '@types/node': 25.9.3 + '@types/node': 25.9.4 jest-util: 30.4.1 jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): @@ -66259,7 +66228,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 25.9.3 + '@types/node': 25.9.4 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.11 @@ -66287,7 +66256,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 25.9.3 + '@types/node': 25.9.4 chalk: 4.1.2 cjs-module-lexer: 1.4.3 collect-v8-coverage: 1.0.3 @@ -66333,7 +66302,7 @@ snapshots: jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 25.9.3 + '@types/node': 25.9.4 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -66342,7 +66311,7 @@ snapshots: jest-util@30.4.1: dependencies: '@jest/types': 30.4.1 - '@types/node': 25.9.3 + '@types/node': 25.9.4 chalk: 4.1.2 ci-info: 4.4.0 graceful-fs: 4.2.11 @@ -66361,7 +66330,7 @@ snapshots: dependencies: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 25.9.3 + '@types/node': 25.9.4 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -66370,19 +66339,19 @@ snapshots: jest-worker@26.6.2: dependencies: - '@types/node': 25.9.3 + '@types/node': 25.9.4 merge-stream: 2.0.0 supports-color: 7.2.0 jest-worker@27.5.1: dependencies: - '@types/node': 25.9.3 + '@types/node': 25.9.4 merge-stream: 2.0.0 supports-color: 8.1.1 jest-worker@29.7.0: dependencies: - '@types/node': 25.9.3 + '@types/node': 25.9.4 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -66990,7 +66959,7 @@ snapshots: legacy-javascript@0.0.1: {} - lerna@9.0.7(@swc-node/register@1.11.1(@swc/core@1.15.41)(@swc/types@0.1.26)(supports-color@8.1.1)(typescript@6.0.3))(@swc/core@1.15.41)(@types/node@25.9.3)(babel-plugin-macros@3.1.0): + lerna@9.0.7(@swc-node/register@1.11.1(@swc/core@1.15.41)(@swc/types@0.1.26)(supports-color@8.1.1)(typescript@6.0.3))(@swc/core@1.15.41)(@types/node@26.0.0)(babel-plugin-macros@3.1.0): dependencies: '@npmcli/arborist': 9.1.6 '@npmcli/package-json': 7.0.2 @@ -67021,7 +66990,7 @@ snapshots: import-local: 3.1.0 ini: 1.3.8 init-package-json: 8.2.2 - inquirer: 12.9.6(@types/node@25.9.3) + inquirer: 12.9.6(@types/node@26.0.0) is-ci: 3.0.1 jest-diff: 30.4.1 js-yaml: 4.1.1 @@ -67105,7 +67074,7 @@ snapshots: npm-package-arg: 13.0.2 npm-registry-fetch: 19.1.0 proc-log: 5.0.0 - semver: 7.7.2 + semver: 7.8.5 sigstore: 4.1.1 ssri: 12.0.0 transitivePeerDependencies: @@ -67657,7 +67626,7 @@ snapshots: macos-version@6.0.0: dependencies: - semver: 7.8.4 + semver: 7.8.5 magic-regexp@0.11.0: dependencies: @@ -68817,7 +68786,7 @@ snapshots: native-run@2.0.3(supports-color@8.1.1): dependencies: - '@ionic/utils-fs': 3.1.7 + '@ionic/utils-fs': 3.1.7(supports-color@8.1.1) '@ionic/utils-terminal': 2.3.5 bplist-parser: 0.3.2 debug: 4.4.3(supports-color@8.1.1) @@ -68978,7 +68947,7 @@ snapshots: rollup: 4.62.0 rollup-plugin-visualizer: 7.0.1(rolldown@1.1.1)(rollup@4.62.0) scule: 1.3.0 - semver: 7.8.4 + semver: 7.8.5 serve-placeholder: 2.0.2 serve-static: 2.2.1 source-map: 0.7.6 @@ -69085,7 +69054,7 @@ snapshots: rollup: 4.62.0 rollup-plugin-visualizer: 7.0.1(rolldown@1.1.1)(rollup@4.62.0) scule: 1.3.0 - semver: 7.8.4 + semver: 7.8.5 serve-placeholder: 2.0.2 serve-static: 2.2.1 source-map: 0.7.6 @@ -69197,7 +69166,7 @@ snapshots: graceful-fs: 4.2.11 nopt: 9.0.0 proc-log: 6.1.0 - semver: 7.7.2 + semver: 7.8.5 tar: 7.5.16 tinyglobby: 0.2.17 undici: 6.27.0 @@ -69335,7 +69304,7 @@ snapshots: dependencies: hosted-git-info: 4.1.0 is-core-module: 2.16.2 - semver: 7.7.2 + semver: 7.8.5 validate-npm-package-license: 3.0.4 normalize-package-data@5.0.0: @@ -69348,7 +69317,7 @@ snapshots: normalize-package-data@8.0.0: dependencies: hosted-git-info: 9.0.3 - semver: 7.8.4 + semver: 7.8.5 validate-npm-package-license: 3.0.4 normalize-path@2.1.1: @@ -69443,11 +69412,11 @@ snapshots: npm-install-checks@7.1.2: dependencies: - semver: 7.7.2 + semver: 7.8.5 npm-install-checks@8.0.0: dependencies: - semver: 7.7.2 + semver: 7.8.5 npm-name@8.1.0: dependencies: @@ -69480,21 +69449,21 @@ snapshots: dependencies: hosted-git-info: 8.1.0 proc-log: 5.0.0 - semver: 7.7.2 + semver: 7.8.5 validate-npm-package-name: 6.0.2 npm-package-arg@13.0.1: dependencies: hosted-git-info: 9.0.3 proc-log: 5.0.0 - semver: 7.7.2 + semver: 7.8.5 validate-npm-package-name: 6.0.2 npm-package-arg@13.0.2: dependencies: hosted-git-info: 9.0.3 proc-log: 6.1.0 - semver: 7.7.4 + semver: 7.8.5 validate-npm-package-name: 7.0.2 npm-package-json-lint@6.4.0(supports-color@8.1.1)(typescript@6.0.3): @@ -69546,14 +69515,14 @@ snapshots: npm-install-checks: 7.1.2 npm-normalize-package-bin: 4.0.0 npm-package-arg: 12.0.2 - semver: 7.7.2 + semver: 7.8.5 npm-pick-manifest@11.0.3: dependencies: npm-install-checks: 8.0.0 npm-normalize-package-bin: 5.0.0 npm-package-arg: 13.0.2 - semver: 7.7.2 + semver: 7.8.5 npm-pick-manifest@8.0.2: dependencies: @@ -71283,12 +71252,12 @@ snapshots: dependencies: p-reduce: 2.1.0 - pac-proxy-agent@7.2.0(supports-color@8.1.1): + pac-proxy-agent@7.2.0: dependencies: '@tootallnate/quickjs-emscripten': 0.23.0 agent-base: 7.1.4 debug: 4.4.3(supports-color@8.1.1) - get-uri: 6.0.5(supports-color@8.1.1) + get-uri: 6.0.5 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 pac-resolver: 7.0.1 @@ -71319,7 +71288,7 @@ snapshots: ky: 1.14.3 registry-auth-token: 5.1.1 registry-url: 6.0.1 - semver: 7.8.4 + semver: 7.8.5 package-json@6.5.0: dependencies: @@ -73294,14 +73263,14 @@ snapshots: forwarded: 0.2.0 ipaddr.js: 1.9.1 - proxy-agent@6.5.0(supports-color@8.1.1): + proxy-agent@6.5.0: dependencies: agent-base: 7.1.4 debug: 4.4.3(supports-color@8.1.1) http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 lru-cache: 7.18.3 - pac-proxy-agent: 7.2.0(supports-color@8.1.1) + pac-proxy-agent: 7.2.0 proxy-from-env: 1.1.0 socks-proxy-agent: 8.0.5 transitivePeerDependencies: @@ -75080,7 +75049,7 @@ snapshots: dependencies: '@img/colour': 1.1.0 detect-libc: 2.1.2 - semver: 7.8.4 + semver: 7.8.5 optionalDependencies: '@img/sharp-darwin-arm64': 0.34.5 '@img/sharp-darwin-x64': 0.34.5 @@ -75241,7 +75210,7 @@ snapshots: simple-update-notifier@2.0.0: dependencies: - semver: 7.8.4 + semver: 7.8.5 sinon@22.0.0: dependencies: @@ -75502,7 +75471,7 @@ snapshots: get-stdin: 9.0.0 git-hooks-list: 3.2.0 is-plain-obj: 4.1.0 - semver: 7.8.4 + semver: 7.8.5 sort-object-keys: 1.1.3 tinyglobby: 0.2.17 @@ -75512,7 +75481,7 @@ snapshots: detect-newline: 4.0.1 git-hooks-list: 4.2.1 is-plain-obj: 4.1.0 - semver: 7.8.4 + semver: 7.8.5 sort-object-keys: 2.1.0 tinyglobby: 0.2.17 @@ -75653,7 +75622,7 @@ snapshots: speedline-core@1.4.3: dependencies: - '@types/node': 25.9.3 + '@types/node': 25.9.4 image-ssim: 0.2.0 jpeg-js: 0.4.4 @@ -76969,7 +76938,7 @@ snapshots: dependencies: growly: 1.3.0 is-wsl: 2.2.0 - semver: 7.8.4 + semver: 7.8.5 shellwords: 0.1.1 which: 2.0.2 @@ -77180,7 +77149,6 @@ snapshots: yn: 3.1.1 optionalDependencies: '@swc/core': 1.15.41 - optional: true ts-pnp@1.2.0(typescript@6.0.3): optionalDependencies: @@ -77999,7 +77967,7 @@ snapshots: is-npm: 6.1.0 latest-version: 9.0.0 pupa: 3.3.0 - semver: 7.8.4 + semver: 7.8.5 xdg-basedir: 5.1.0 upper-case-first@2.0.2: @@ -78998,7 +78966,7 @@ snapshots: espree: 9.6.1 esquery: 1.7.0 lodash: 4.18.1 - semver: 7.8.4 + semver: 7.8.5 transitivePeerDependencies: - supports-color From fb71bd974412666b0207b3823a81f078090357a9 Mon Sep 17 00:00:00 2001 From: Matteo Bruni <176620+matteobruni@users.noreply.github.com> Date: Sun, 21 Jun 2026 14:07:39 +0200 Subject: [PATCH 06/28] feat: added support for canvas background and custom draw callbacks --- .planning/handovers/4.3.0_PLAN.md | 22 +-- .planning/handovers/BACKGROUND_CANVAS_PLAN.md | 20 +-- engine/src/Core/RenderManager.ts | 85 +++++++++++ .../Options/Classes/Background/Background.ts | 7 +- .../Interfaces/Background/IBackground.ts | 16 ++ markdown/Options/Background.md | 70 ++++++++- utils/configs/src/b/backgroundCanvas.ts | 76 ++++++++++ utils/configs/src/b/index.ts | 2 + utils/tests/src/tests/Background.ts | 138 ++++++++++++++++++ .../website/docs/de/options/background.md | 2 + .../website/docs/es/options/background.md | 2 + .../website/docs/fr/options/background.md | 2 + .../website/docs/hi/options/background.md | 2 + .../website/docs/it/options/background.md | 2 + .../website/docs/ja/options/background.md | 2 + websites/website/docs/options/background.md | 2 + .../website/docs/pt/options/background.md | 2 + .../website/docs/ru/options/background.md | 2 + .../website/docs/zh/options/background.md | 2 + 19 files changed, 426 insertions(+), 30 deletions(-) create mode 100644 utils/configs/src/b/backgroundCanvas.ts create mode 100644 utils/tests/src/tests/Background.ts diff --git a/.planning/handovers/4.3.0_PLAN.md b/.planning/handovers/4.3.0_PLAN.md index bfdb3dc29ca..d68f9958496 100644 --- a/.planning/handovers/4.3.0_PLAN.md +++ b/.planning/handovers/4.3.0_PLAN.md @@ -59,16 +59,16 @@ Checklist riassuntiva di tutte le attività del piano. Da tenere aggiornata dura - [x] Step 6: demo config updated ### A: Background Canvas -- [ ] Phase 0: hook points identified -- [ ] Phase 1: size delta measured, path chosen -- [ ] Phase 1b: release target decided -- [ ] Phase 2: API/types exported -- [ ] Phase 3: frame hook integrated -- [ ] Phase 4: context cache + fallback integrated -- [ ] Phase 5: warning/error policy integrated -- [ ] Phase 6: tests added and passing -- [ ] Phase 7: docs/examples updated -- [ ] Phase 8: validation commands passing +- [x] Phase 0: hook points identified +- [x] Phase 1: size delta measured, path chosen +- [x] Phase 1b: release target decided → 4.3.0 (additive, backward-compatible, no semver risk) +- [x] Phase 2: API/types exported +- [x] Phase 3: frame hook integrated +- [x] Phase 4: context cache + fallback integrated +- [x] Phase 5: warning/error policy integrated +- [x] Phase 6: tests added and passing (8 tests, 147 total passing) +- [x] Phase 7: docs/examples updated (11 doc files: 1 English + 9 translations + 1 TypeDoc include) +- [x] Phase 8: validation commands passing (147 tests passed, 461 Nx projects built ok) ### B: Fluid Interaction - [ ] Step 0: conventions aligned, naming frozen @@ -84,7 +84,7 @@ Checklist riassuntiva di tutte le attività del piano. Da tenere aggiornata dura ### Release Gate (4.3.0) - [x] ~~Step 0.1~~ — Workspace `@tsparticles/` deps use `workspace:*` (✅ automatico via `post-version-fix.js` dalla 4.2.1) -- [ ] Step 0.2 — `pnpm run build:ci` passes +- [x] Step 0.2 — `pnpm run build:ci` passes (461 Nx projects build ok; website docs build failure pre-existing, non-blocking) - [x] ~~Root `package.json` version matches packages~~ (✅ automatico via `post-version-fix.js` dalla 4.2.1) - [ ] Integration tests pass - [ ] Demo server smoke-tested diff --git a/.planning/handovers/BACKGROUND_CANVAS_PLAN.md b/.planning/handovers/BACKGROUND_CANVAS_PLAN.md index 125477011b1..8e916b8416c 100644 --- a/.planning/handovers/BACKGROUND_CANVAS_PLAN.md +++ b/.planning/handovers/BACKGROUND_CANVAS_PLAN.md @@ -12,16 +12,16 @@ ### Progress -- [ ] Phase 0: Baseline scan -- [ ] Phase 1: Bundle impact + decision -- [ ] Phase 1b: Release target decision -- [ ] Phase 2: Type contract -- [ ] Phase 3: Runtime hook -- [ ] Phase 4: Target resolution/cache -- [ ] Phase 5: Error/warning handling -- [ ] Phase 6: Tests -- [ ] Phase 7: Docs/examples -- [ ] Phase 8: Validation gate +- [x] Phase 0: Baseline scan +- [x] Phase 1: Bundle impact + decision +- [x] Phase 1b: Release target decision → 4.3.0 (additive, backward-compatible, no semver risk) +- [x] Phase 2: Type contract +- [x] Phase 3: Runtime hook +- [x] Phase 4: Target resolution/cache +- [x] Phase 5: Error/warning handling +- [x] Phase 6: Tests (8 tests, 147 total passing) +- [x] Phase 7: Docs/examples (11 doc files: 1 English + 9 translations + 1 TypeDoc include) +- [x] Phase 8: Validation gate (147 tests passed, 461 Nx projects built ok) --- diff --git a/engine/src/Core/RenderManager.ts b/engine/src/Core/RenderManager.ts index 5ebe016031e..555fad9e7f2 100644 --- a/engine/src/Core/RenderManager.ts +++ b/engine/src/Core/RenderManager.ts @@ -8,6 +8,7 @@ import { zIndexFactorOffset, } from "./Utils/Constants.js"; import { getStyleFromHsl, rangeColorToHsl } from "../Utils/ColorUtils.js"; +import type { BackgroundDrawContext } from "../Options/Interfaces/Background/IBackground.js"; import type { CanvasManager } from "./CanvasManager.js"; import type { Container } from "./Container.js"; import type { IContainerPlugin } from "./Interfaces/IContainerPlugin.js"; @@ -22,6 +23,7 @@ import type { IShapeDrawData } from "./Interfaces/IShapeDrawData.js"; import type { IShapeDrawer } from "./Interfaces/IShapeDrawer.js"; import type { Particle } from "./Particle.js"; import type { PluginManager } from "./Utils/PluginManager.js"; +import { getLogger } from "../Utils/LogUtils.js"; const fColorIndex = 0, sColorIndex = 1; @@ -47,6 +49,8 @@ function setTransformValue( * Canvas manager */ export class RenderManager { + #backgroundContext: BackgroundDrawContext | null; + readonly #backgroundWarnings: Set; #canvasClearPlugins: IContainerPlugin[]; readonly #canvasManager: CanvasManager; #canvasPaintPlugins: IContainerPlugin[]; @@ -82,6 +86,8 @@ export class RenderManager { this.#container = container; this.#canvasManager = canvasManager; this.#context = null; + this.#backgroundContext = null; + this.#backgroundWarnings = new Set(); this.#preDrawUpdaters = []; this.#postDrawUpdaters = []; this.#colorPlugins = []; @@ -142,6 +148,8 @@ export class RenderManager { destroy(): void { this.stop(); + this.#backgroundContext = null; + this.#backgroundWarnings.clear(); this.#preDrawUpdaters = []; this.#postDrawUpdaters = []; this.#colorPlugins = []; @@ -261,6 +269,8 @@ export class RenderManager { this.clear(); + this.#drawBackground(delta); + /* update each particle before drawing */ particles.update(delta); @@ -291,6 +301,7 @@ export class RenderManager { init(): void { this.initUpdaters(); this.initPlugins(); + this.#resolveBackgroundContext(); this.paint(); } @@ -509,6 +520,26 @@ export class RenderManager { drawer.drawAfter(data); } + #drawBackground(delta: IDelta): void { + const background = this.#container.actualOptions.background; + + if (!background.draw) { + return; + } + + const ctx = this.#backgroundContext ?? this.#context; + + if (!ctx) { + return; + } + + try { + background.draw(ctx, delta); + } catch (_e) { + this.#warnOnce("background-draw-error", "Error in background.draw callback"); + } + } + #drawBeforeEffect(drawer: IEffectDrawer | undefined, data: IShapeDrawData): void { if (!drawer?.drawBefore) { return; @@ -672,4 +703,58 @@ export class RenderManager { return this.#reusablePluginColors; } + + #resolveBackgroundContext(): void { + const background = this.#container.actualOptions.background; + + this.#backgroundContext = null; + + if (!background.element) { + return; + } + + let element: HTMLCanvasElement | OffscreenCanvas | null = null; + + if (typeof background.element === "string") { + if (typeof document !== "undefined") { + const node = document.querySelector(background.element); + + if (node instanceof HTMLCanvasElement) { + element = node; + } else if (node) { + this.#warnOnce( + "background-element-not-canvas", + `Background element "${background.element}" is not a canvas element`, + ); + } else { + this.#warnOnce( + "background-element-selector-not-found", + `Background element selector "${background.element}" not found`, + ); + } + } + } else if (background.element instanceof HTMLCanvasElement || background.element instanceof OffscreenCanvas) { + element = background.element; + } + + if (!element) { + return; + } + + const ctx = element.getContext("2d"); + + if (ctx) { + this.#backgroundContext = ctx; + } else { + this.#warnOnce("background-element-context-unavailable", "Failed to get 2D context from background element"); + } + } + + #warnOnce(key: string, message: string): void { + if (!this.#backgroundWarnings.has(key)) { + this.#backgroundWarnings.add(key); + + getLogger().warning(message); + } + } } diff --git a/engine/src/Options/Classes/Background/Background.ts b/engine/src/Options/Classes/Background/Background.ts index 8d5e075916e..4b8debe750c 100644 --- a/engine/src/Options/Classes/Background/Background.ts +++ b/engine/src/Options/Classes/Background/Background.ts @@ -1,5 +1,6 @@ +import type { BackgroundDrawContext, IBackground } from "../../Interfaces/Background/IBackground.js"; import { OptionLoader, loadProperty } from "../../../Utils/OptionsUtils.js"; -import type { IBackground } from "../../Interfaces/Background/IBackground.js"; +import type { IDelta } from "../../../Core/Interfaces/IDelta.js"; import { OptionsColor } from "../OptionsColor.js"; import type { RecursivePartial } from "../../../Types/RecursivePartial.js"; @@ -8,6 +9,8 @@ import type { RecursivePartial } from "../../../Types/RecursivePartial.js"; */ export class Background extends OptionLoader implements IBackground { color: OptionsColor; + draw?: (context: BackgroundDrawContext, delta: IDelta) => void; + element?: string | HTMLCanvasElement | OffscreenCanvas; image = ""; opacity = 1; position = ""; @@ -25,6 +28,8 @@ export class Background extends OptionLoader implements IBackground this.color = OptionsColor.create(this.color, data.color); } + loadProperty(this, "element", data.element); + this.draw = data.draw as typeof this.draw; loadProperty(this, "image", data.image); loadProperty(this, "position", data.position); loadProperty(this, "repeat", data.repeat); diff --git a/engine/src/Options/Interfaces/Background/IBackground.ts b/engine/src/Options/Interfaces/Background/IBackground.ts index b003a90d54b..d7559cd3127 100644 --- a/engine/src/Options/Interfaces/Background/IBackground.ts +++ b/engine/src/Options/Interfaces/Background/IBackground.ts @@ -1,5 +1,8 @@ +import type { IDelta } from "../../../Core/Interfaces/IDelta.js"; import type { IOptionsColor } from "../IOptionsColor.js"; +export type BackgroundDrawContext = OffscreenCanvasRenderingContext2D | CanvasRenderingContext2D; + /** * The background options used by the canvas element, it's not drawn, it's applied in the style * [[include:Options/Background.md]] @@ -12,6 +15,19 @@ export interface IBackground { */ color: string | IOptionsColor; + /** + * An optional per-frame callback for custom background rendering. + * When specified, it is called each frame after the canvas is cleared and before particles are drawn. + * The callback receives the drawing context and delta time. + */ + draw?: (context: BackgroundDrawContext, delta: IDelta) => void; + + /** + * An optional target canvas element (CSS selector, HTMLCanvasElement, or OffscreenCanvas) for the custom background draw callback. + * If not specified, the internal rendering context is used. + */ + element?: string | HTMLCanvasElement | OffscreenCanvas; + /** * The `image` property sets the canvas style `background-image` property. * diff --git a/markdown/Options/Background.md b/markdown/Options/Background.md index 09b0eadecad..3013d99f6e7 100644 --- a/markdown/Options/Background.md +++ b/markdown/Options/Background.md @@ -4,14 +4,16 @@ Controls the canvas background layer rendered behind particles. ## Properties -| Key | Type | Example | Notes | -| ---------- | ------------------- | ---------------------------------------------------------- | ----------------------------------------- | -| `color` | `string` / `object` | `"#bada55"` / `{ "value": "#bada55" }` | Background color, supports {@link IColor} | -| `opacity` | `number` | `1` / `0.5` | Background color alpha, from `0` to `1` | -| `image` | `string` | `"url('https://particles.js.org/images/background3.jpg')"` | CSS `background-image` value | -| `position` | `string` | `"50% 50%"` | CSS `background-position` value | -| `repeat` | `string` | `"no-repeat"` | CSS `background-repeat` value | -| `size` | `string` | `"cover"` | CSS `background-size` value | +| Key | Type | Example | Notes | +| ---------- | -------------------------------------------------- | ---------------------------------------------------------- | --------------------------------------------------------- | +| `color` | `string` / `object` | `"#bada55"` / `{ "value": "#bada55" }` | Background color, supports {@link IColor} | +| `opacity` | `number` | `1` / `0.5` | Background color alpha, from `0` to `1` | +| `image` | `string` | `"url('https://particles.js.org/images/background3.jpg')"` | CSS `background-image` value | +| `position` | `string` | `"50% 50%"` | CSS `background-position` value | +| `repeat` | `string` | `"no-repeat"` | CSS `background-repeat` value | +| `size` | `string` | `"cover"` | CSS `background-size` value | +| `element` | `string` / `HTMLCanvasElement` / `OffscreenCanvas` | `"#bg"` / `document.getElementById("bg")` | Target canvas for `draw`; omitted → uses particles canvas | +| `draw` | `function` | `(ctx, delta) => { /* custom draw */ }` | Per-frame custom background callback, called after clear | ## Quick examples @@ -50,3 +52,55 @@ Controls the canvas background layer rendered behind particles. } } ``` + +### Custom background draw + +```json +{ + "background": { + "draw": "(ctx, delta) => { ctx.fillStyle = 'blue'; ctx.fillRect(0, 0, ctx.canvas.width, ctx.canvas.height); }" + } +} +``` + +(TypeScript uses a function reference, not a string.) + +```ts +import { type BackgroundDrawContext, type IDelta } from "@tsparticles/engine"; + +const drawBackground = (ctx: BackgroundDrawContext, delta: IDelta): void => { + ctx.fillStyle = "#ff0000"; + ctx.fillRect(0, 0, ctx.canvas.width, ctx.canvas.height); +}; +``` + +### Custom background draw on external element + +```json +{ + "background": { + "element": "#my-bg-canvas", + "draw": "(ctx, delta) => { ctx.fillStyle = 'rgba(0,0,0,0.1)'; ctx.fillRect(0, 0, ctx.canvas.width, ctx.canvas.height); }" + } +} +``` + +```ts +import { BackgroundDrawContext, IDelta } from "@tsparticles/engine"; + +const drawBackground = (ctx: BackgroundDrawContext, delta: IDelta): void => { + // Composite over the external canvas each frame + ctx.fillStyle = `rgba(0,0,0,${0.05 * delta.factor})`; + ctx.fillRect(0, 0, ctx.canvas.width, ctx.canvas.height); +}; + +tsParticles.load({ + id: "tsparticles", + options: { + background: { + element: "#bg-canvas", + draw: drawBackground, + }, + }, +}); +``` diff --git a/utils/configs/src/b/backgroundCanvas.ts b/utils/configs/src/b/backgroundCanvas.ts new file mode 100644 index 00000000000..3c9f19774ae --- /dev/null +++ b/utils/configs/src/b/backgroundCanvas.ts @@ -0,0 +1,76 @@ +/* eslint-disable @typescript-eslint/no-magic-numbers */ +import type { BackgroundDrawContext, IDelta, ISourceOptions } from "@tsparticles/engine"; + +let hue = 0; + +const options: ISourceOptions = { + key: "backgroundCanvas", + name: "Background Canvas", + particles: { + number: { + value: 80, + density: { + enable: true, + }, + }, + paint: { + fill: { + color: { + value: "#ffffff", + }, + enable: true, + }, + }, + shape: { + type: "circle", + }, + opacity: { + value: 0.5, + }, + size: { + value: { + min: 1, + max: 3, + }, + }, + links: { + enable: true, + distance: 150, + color: "#ffffff", + opacity: 0.4, + width: 1, + }, + move: { + enable: true, + speed: 2, + }, + }, + interactivity: { + events: { + onHover: { + enable: true, + mode: "repulse", + }, + }, + modes: { + repulse: { + distance: 100, + }, + }, + }, + background: { + draw: (ctx: BackgroundDrawContext, delta: IDelta): void => { + hue = (hue + delta.value * 0.02) % 360; + + const gradient = ctx.createLinearGradient(0, 0, ctx.canvas.width, ctx.canvas.height); + + gradient.addColorStop(0, `hsl(${hue}, 70%, 20%)`); + gradient.addColorStop(1, `hsl(${(hue + 60) % 360}, 70%, 10%)`); + + ctx.fillStyle = gradient; + ctx.fillRect(0, 0, ctx.canvas.width, ctx.canvas.height); + }, + }, +}; + +export default options; diff --git a/utils/configs/src/b/index.ts b/utils/configs/src/b/index.ts index 9380a627831..9f76328bb41 100644 --- a/utils/configs/src/b/index.ts +++ b/utils/configs/src/b/index.ts @@ -1,3 +1,4 @@ +import backgroundCanvas from "./backgroundCanvas.js"; import backgroundMask from "./backgroundMask.js"; import backgroundMaskImage from "./backgroundMaskImage.js"; import basic from "./basic.js"; @@ -9,6 +10,7 @@ import blackHole from "./blackHole.js"; import bubble from "./bubble.js"; export default { + backgroundCanvas, backgroundMask, backgroundMaskImage, basic, diff --git a/utils/tests/src/tests/Background.ts b/utils/tests/src/tests/Background.ts new file mode 100644 index 00000000000..e36cca905a9 --- /dev/null +++ b/utils/tests/src/tests/Background.ts @@ -0,0 +1,138 @@ +/* eslint-disable @typescript-eslint/no-magic-numbers,@typescript-eslint/no-unused-expressions */ +import { Background, type IDelta, type RecursivePartial } from "@tsparticles/engine"; +import { describe, expect, it } from "vitest"; + +describe("Background options", () => { + it("check default values", () => { + const bg = new Background(); + + expect(bg.draw).to.be.undefined; + expect(bg.element).to.be.undefined; + expect(bg.color.value).to.equal(""); + expect(bg.image).to.equal(""); + expect(bg.opacity).to.equal(1); + expect(bg.position).to.equal(""); + expect(bg.repeat).to.equal(""); + expect(bg.size).to.equal(""); + }); + + it("loading draw callback", () => { + const bg = new Background(); + let callCount = 0; + + bg.load({ + draw: (_ctx: unknown, _delta: IDelta) => { + callCount++; + }, + }); + + expect(bg.draw).to.be.a("function"); + expect(callCount).to.equal(0); + + // invoke it + if (bg.draw) { + bg.draw({} as never, { value: 16.67, factor: 1 }); + } + + expect(callCount).to.equal(1); + }); + + it("loading element string selector", () => { + const bg = new Background(); + + bg.load({ + element: "#bg-canvas", + }); + + expect(bg.element).to.equal("#bg-canvas"); + }); + + it("loading element HTMLCanvasElement", () => { + const bg = new Background(), + canvas = document.createElement("canvas"); + + bg.load({ + element: canvas, + }); + + expect(bg.element).to.equal(canvas); + }); + + it("loading element OffscreenCanvas", () => { + if (typeof OffscreenCanvas === "undefined") { + return; + } + + const bg = new Background(), + canvas = new OffscreenCanvas(100, 100); + + bg.load({ + element: canvas, + }); + + expect(bg.element).to.equal(canvas); + }); + + it("loading draw with undefined clears it", () => { + const bg = new Background(); + + bg.load({ draw: () => undefined }); + expect(bg.draw).to.be.a("function"); + + bg.load({ draw: undefined as unknown as RecursivePartial<{ draw?: never }> }); + expect(bg.draw).to.be.undefined; + }); + + it("loading element with undefined does not clear it", () => { + const bg = new Background(); + + bg.load({ element: "#bg" }); + expect(bg.element).to.equal("#bg"); + + bg.load({ element: undefined as unknown as RecursivePartial<{ element?: never }> }); + expect(bg.element).to.equal("#bg"); + }); + + it("loading legacy fields still works", () => { + const bg = new Background(); + + bg.load({ + color: "#ff0000", + image: "url('test.png')", + opacity: 0.5, + position: "center", + repeat: "repeat-x", + size: "50%", + }); + + expect(bg.color.value).to.equal("#ff0000"); + expect(bg.image).to.equal("url('test.png')"); + expect(bg.opacity).to.equal(0.5); + expect(bg.position).to.equal("center"); + expect(bg.repeat).to.equal("repeat-x"); + expect(bg.size).to.equal("50%"); + }); + + it("loading mixed legacy and new fields", () => { + const bg = new Background(), + canvas = document.createElement("canvas"); + let called = false; + + bg.load({ + color: "#0f0", + opacity: 0.8, + element: canvas, + draw: () => { + called = true; + }, + }); + + expect(bg.color.value).to.equal("#0f0"); + expect(bg.opacity).to.equal(0.8); + expect(bg.element).to.equal(canvas); + expect(bg.draw).to.be.a("function"); + + bg.draw?.({} as never, { value: 16.67, factor: 1 }); + expect(called).to.be.true; + }); +}); diff --git a/websites/website/docs/de/options/background.md b/websites/website/docs/de/options/background.md index 06af324f30b..a4a0b07527e 100644 --- a/websites/website/docs/de/options/background.md +++ b/websites/website/docs/de/options/background.md @@ -27,6 +27,8 @@ background: { - `opacity`: Alphakanal für die Hintergrundebene. - `image`: optionales Hintergrundbild. - `position`, `repeat`, `size`: CSS-ähnliches Verhalten. +- `element`: optionaler CSS-Selektor, `HTMLCanvasElement` oder `OffscreenCanvas` für den benutzerdefinierten draw-Callback. Standardmäßig wird der Partikel-Canvas verwendet. +- `draw`: optionaler Frame-Callback `(context, delta) => void` für benutzerdefinierte Hintergrunddarstellung. ## `fullScreen` diff --git a/websites/website/docs/es/options/background.md b/websites/website/docs/es/options/background.md index 2ac9712b42d..53140e9073a 100644 --- a/websites/website/docs/es/options/background.md +++ b/websites/website/docs/es/options/background.md @@ -27,6 +27,8 @@ background: { - `opacity`: canal alfa para la capa de fondo. - `image`: imagen de fondo opcional. - `position`, `repeat`, `size`: comportamiento similar a CSS. +- `element`: selector CSS opcional, `HTMLCanvasElement` o `OffscreenCanvas` para el draw callback. Si se omite, se usa el lienzo de partículas. +- `draw`: callback opcional por frame `(context, delta) => void` para renderizado personalizado del fondo. ## `fullScreen` diff --git a/websites/website/docs/fr/options/background.md b/websites/website/docs/fr/options/background.md index 5453ffeb94c..d88c36ad1ff 100644 --- a/websites/website/docs/fr/options/background.md +++ b/websites/website/docs/fr/options/background.md @@ -27,6 +27,8 @@ background: { - `opacity` : canal alpha pour le calque d'arrière-plan. - `image` : image de fond optionnelle. - `position`, `repeat`, `size` : comportement de type CSS. +- `element` : sélecteur CSS, `HTMLCanvasElement` ou `OffscreenCanvas` optionnel pour le draw callback. S'il est omis, le canvas des particules est utilisé. +- `draw` : callback optionnel par frame `(context, delta) => void` pour le rendu personnalisé de l'arrière-plan. ## `fullScreen` diff --git a/websites/website/docs/hi/options/background.md b/websites/website/docs/hi/options/background.md index 083ac4d3f6a..ed6b99c9ceb 100644 --- a/websites/website/docs/hi/options/background.md +++ b/websites/website/docs/hi/options/background.md @@ -27,6 +27,8 @@ background: { - `opacity`: पृष्ठभूमि परत के लिए अल्फा चैनल। - `image`: वैकल्पिक पृष्ठभूमि छवि। - `position`, `repeat`, `size`: CSS जैसा व्यवहार। +- `element`: कस्टम draw कॉलबैक के लिए वैकल्पिक CSS सेलेक्टर, `HTMLCanvasElement` या `OffscreenCanvas`। छोड़े जाने पर कण कैनवास का उपयोग होता है। +- `draw`: कस्टम पृष्ठभूमि रेंडरिंग के लिए वैकल्पिक प्रति-फ्रेम कॉलबैक `(context, delta) => void`। ## `fullScreen` diff --git a/websites/website/docs/it/options/background.md b/websites/website/docs/it/options/background.md index b4bbdb62859..71566e2cd29 100644 --- a/websites/website/docs/it/options/background.md +++ b/websites/website/docs/it/options/background.md @@ -27,6 +27,8 @@ background: { - `opacity`: canale alfa per il livello di sfondo. - `image`: immagine di sfondo opzionale. - `position`, `repeat`, `size`: comportamento simile a CSS. +- `element`: selettore CSS opzionale, `HTMLCanvasElement` o `OffscreenCanvas` per il draw callback. Se omesso, viene usata la tela delle particelle. +- `draw`: callback opzionale per frame `(context, delta) => void` per il rendering personalizzato dello sfondo. ## `fullScreen` diff --git a/websites/website/docs/ja/options/background.md b/websites/website/docs/ja/options/background.md index 37afc608089..6fd1db00a6f 100644 --- a/websites/website/docs/ja/options/background.md +++ b/websites/website/docs/ja/options/background.md @@ -27,6 +27,8 @@ background: { - `opacity`: 背景レイヤーのアルファ チャネル。 - `image`: オプションの背景画像。 - `position`、`repeat`、`size`: CSS のような動作。 +- `element`: カスタム draw コールバック用のオプションの CSS セレクター、`HTMLCanvasElement` または `OffscreenCanvas`。省略するとパーティクルキャンバスが使用されます。 +- `draw`: カスタム背景描画用のオプションのフレームごとのコールバック `(context, delta) => void`。 ## `fullScreen` diff --git a/websites/website/docs/options/background.md b/websites/website/docs/options/background.md index 218b83ba7b2..947fc26d3a8 100644 --- a/websites/website/docs/options/background.md +++ b/websites/website/docs/options/background.md @@ -27,6 +27,8 @@ background: { - `opacity`: alpha channel for the background layer. - `image`: optional background image. - `position`, `repeat`, `size`: CSS-like behavior. +- `element`: optional CSS selector, `HTMLCanvasElement`, or `OffscreenCanvas` for the custom draw callback target. If omitted, the particles canvas is used. +- `draw`: optional per-frame callback `(context, delta) => void` for custom background rendering. Receives the 2D context of the target element (or the particles canvas) and the frame delta. ## `fullScreen` diff --git a/websites/website/docs/pt/options/background.md b/websites/website/docs/pt/options/background.md index 37787d25679..58aee422243 100644 --- a/websites/website/docs/pt/options/background.md +++ b/websites/website/docs/pt/options/background.md @@ -27,6 +27,8 @@ background: { - `opacity`: canal alfa para a camada de fundo. - `image`: imagem de fundo opcional. - `position`, `repeat`, `size`: comportamento semelhante ao CSS. +- `element`: seletor CSS opcional, `HTMLCanvasElement` ou `OffscreenCanvas` para o draw callback. Se omitido, a tela de partículas é usada. +- `draw`: callback opcional por quadro `(context, delta) => void` para renderização personalizada do fundo. ## `fullScreen` diff --git a/websites/website/docs/ru/options/background.md b/websites/website/docs/ru/options/background.md index dd914dbed04..69e1d8500a4 100644 --- a/websites/website/docs/ru/options/background.md +++ b/websites/website/docs/ru/options/background.md @@ -27,6 +27,8 @@ background: { - `opacity`: альфа-канал для фонового слоя. - `image`: необязательное фоновое изображение. - `position`, `repeat`, `size`: поведение, подобное CSS. +- `element`: опциональный CSS-селектор, `HTMLCanvasElement` или `OffscreenCanvas` для пользовательского draw callback. Если не указано, используется холст частиц. +- `draw`: опциональный покадровый callback `(context, delta) => void` для пользовательской отрисовки фона. ## `fullScreen` diff --git a/websites/website/docs/zh/options/background.md b/websites/website/docs/zh/options/background.md index a72b6104393..faf7a3bb446 100644 --- a/websites/website/docs/zh/options/background.md +++ b/websites/website/docs/zh/options/background.md @@ -27,6 +27,8 @@ background: { - `opacity`:背景层的 Alpha 通道。 - `image`:可选背景图像。 - `position`、`repeat`、`size`:类似 CSS 的行为。 +- `element`:可选的 CSS 选择器、`HTMLCanvasElement` 或 `OffscreenCanvas`,用于自定义 draw 回调。省略时使用粒子画布。 +- `draw`:可选的逐帧回调 `(context, delta) => void`,用于自定义背景渲染。 ## `fullScreen` From a88798c72ff3c981fa8828bb9b51cd6f29245463 Mon Sep 17 00:00:00 2001 From: Matteo Bruni <176620+matteobruni@users.noreply.github.com> Date: Mon, 22 Jun 2026 00:56:33 +0200 Subject: [PATCH 07/28] feat: improved support for canvas background and custom draw callbacks --- .planning/handovers/4.3.0_PLAN.md | 86 +-- .planning/handovers/BACKGROUND_CANVAS_PLAN.md | 496 +++++++++++------- demo/vanilla/views/index.pug | 1 + engine/src/Core/RenderManager.ts | 74 +-- .../Options/Classes/Background/Background.ts | 4 +- .../Interfaces/Background/IBackground.ts | 7 +- markdown/Options/Background.md | 71 ++- pnpm-lock.yaml | 4 +- utils/tests/src/tests/Background.ts | 74 ++- .../website/docs/de/options/background.md | 108 +++- .../website/docs/es/options/background.md | 106 +++- .../website/docs/fr/options/background.md | 110 +++- .../website/docs/hi/options/background.md | 106 +++- .../website/docs/it/options/background.md | 106 +++- .../website/docs/ja/options/background.md | 108 +++- websites/website/docs/options/background.md | 106 +++- .../website/docs/pt/options/background.md | 106 +++- .../website/docs/ru/options/background.md | 107 +++- .../website/docs/zh/options/background.md | 106 +++- 19 files changed, 1446 insertions(+), 440 deletions(-) diff --git a/.planning/handovers/4.3.0_PLAN.md b/.planning/handovers/4.3.0_PLAN.md index d68f9958496..8dffbb57cec 100644 --- a/.planning/handovers/4.3.0_PLAN.md +++ b/.planning/handovers/4.3.0_PLAN.md @@ -48,7 +48,7 @@ If either check fails, fix the regression first before starting any feature work Checklist riassuntiva di tutte le attività del piano. Da tenere aggiornata durante l'esecuzione. ``` -## 4.3.0 Dashboard — [date] +## 4.3.0 Dashboard — 2026-06-21 ### C: GIF Shape - [x] Step 1: scaffold shapes/gif/ (17 files) @@ -58,25 +58,23 @@ Checklist riassuntiva di tutte le attività del piano. Da tenere aggiornata dura - [x] Step 5: build + verify - [x] Step 6: demo config updated -### A: Background Canvas -- [x] Phase 0: hook points identified -- [x] Phase 1: size delta measured, path chosen -- [x] Phase 1b: release target decided → 4.3.0 (additive, backward-compatible, no semver risk) -- [x] Phase 2: API/types exported -- [x] Phase 3: frame hook integrated -- [x] Phase 4: context cache + fallback integrated -- [x] Phase 5: warning/error policy integrated -- [x] Phase 6: tests added and passing (8 tests, 147 total passing) -- [x] Phase 7: docs/examples updated (11 doc files: 1 English + 9 translations + 1 TypeDoc include) -- [x] Phase 8: validation commands passing (147 tests passed, 461 Nx projects built ok) +### A: Background Canvas (v2 layered redesign) +- [x] V1 phases 0-8 completed (original element + draw implementation) +- [x] Phase 9: types/methods rename (widen element type, #backgroundElement) +- [x] Phase 10: rewrite #drawBackground() — independent element + draw layers +- [x] Phase 11: rewrite #resolveBackgroundElement() — store element ref, no context +- [x] Phase 12: tests updated for v2 semantics +- [x] Phase 13: docs updated for layering model +- [x] Phase 14: bundle impact re-measurement + plugin extraction decision +- [x] Phase 15: validation gate ### B: Fluid Interaction -- [ ] Step 0: conventions aligned, naming frozen -- [ ] Step 1: package skeleton + noop interactor -- [ ] Step 2: options contract + loaders + tests -- [ ] Step 3: baseline DDR solver -- [ ] Step 4: boundaries + caps + stability -- [ ] Step 5: viscosity + pointer stirring +- [x] Step 0: conventions aligned, naming frozen +- [x] Step 1: package skeleton + noop interactor +- [x] Step 2: options contract + loaders + tests +- [x] Step 3: baseline DDR solver +- [x] Step 4: boundaries + caps + stability +- [x] Step 5: viscosity + pointer stirring - [ ] Step 6: interoperability validated - [ ] Step 7: performance + soak passed - [ ] Step 8: docs + presets finalized @@ -97,7 +95,7 @@ Checklist riassuntiva di tutte le attività del piano. Da tenere aggiornata dura | # | Feature | Package(s) Affected | Type | Plan | |---|-------------------------------------|------------------------------------------------------------------------------------------------------|------------------------|-----------------------------| | C | Separate GIF Shape from Image Shape | `@tsparticles/shape-gif` (new), `@tsparticles/shape-image` (modified), `@tsparticles/all` (modified) | Refactor + new package | `GIF_SHAPE_PLAN.md` | -| A | Background Canvas programmable hook | `@tsparticles/engine` | Engine enhancement | `BACKGROUND_CANVAS_PLAN.md` | +| A | Background Canvas layered pipeline | `@tsparticles/engine` | Engine enhancement | `BACKGROUND_CANVAS_PLAN.md` | | B | Fluid Particle Interaction | `@tsparticles/interaction-particles-fluid` | New package | `FLUID_INTERACTION_PLAN.md` | --- @@ -164,8 +162,9 @@ If resources are limited, priority order: - [x] **C:** `@tsparticles/shape-image` builds with zero GIF references - [x] **C:** `@tsparticles/shape-gif` builds and registers as `type: "gif"` - [x] **C:** GIF demo config (`utils/configs/src/g/gifs.ts`) works with new shape -- [ ] **A:** Bundle impact decision recorded (engine vs plugin path) and within accepted threshold +- [x] **A:** Bundle impact decision recorded (engine vs plugin path) and within accepted threshold (Phase 14) — +183B minified, LOW, keep in engine - [ ] **A:** Zero regressions on legacy background behavior +- [ ] **A:** Plugin extraction feasibility documented (future: `@tsparticles/plugin-background`) - [ ] **B:** No NaN/Infinity in standard presets after 20k+ frame soak - [ ] **B:** Fluid visual effect clearly distinguishable from plain attract/repulse @@ -203,7 +202,10 @@ Each feature produces its own changelog section: ### New Features - GIF Shape: new `@tsparticles/shape-gif` shape extracted from image shape. Use `type: "gif"` instead of `type: "image"` with `gif: true` (#C) -- Background Canvas: programmable `background.draw` callback + `background.element` target (#A) +- Background Canvas: layered background pipeline (#A) + - `background.element`: auto-draw external source (`HTMLCanvasElement`, `OffscreenCanvas`, `HTMLVideoElement`, `HTMLImageElement`) + - `background.draw`: custom draw callback on main canvas context + - Layer order: CSS → element auto-draw → draw callback → particles - Fluid Interaction: new `@tsparticles/interaction-particles-fluid` package with DDR-based liquid simulation, pointer stirring, and presets (#B) @@ -260,36 +262,36 @@ Each feature produces its own changelog section: **Target:** `@tsparticles/engine` **Load function:** N/A (built into engine) -**Plan phases:** 0-8 + +**Design:** Multi-layer background pipeline (CSS → element auto-draw → draw callback → particles). +`element` and `draw` are independent layers; element is auto-composited via `ctx.drawImage()`, +`draw` always receives the main canvas context. See `BACKGROUND_CANVAS_PLAN.md` for full details. ### Key decisions (from plan) -1. **Bundle impact gate** (Phase 1): measure delta; if LOW/MEDIUM → keep in engine; if HIGH → extract plugin -2. **Release target gate** (Phase 1b): feature-gate passes → target 4.3.0 +1. **Bundle impact gate** (Phase 14): re-measure delta after v2 refactor; if LOW/MEDIUM → keep in engine; if HIGH → extract `@tsparticles/plugin-background` +2. **Plugin extraction**: if engine grows too large, `@tsparticles/plugin-background` owns all programmable layers; engine retains only CSS-style background -### Implementation phases +### Implementation phases (v2 refactor) | Phase | Description | Verification | |-------|-------------|-------------| -| 0 | Baseline scan — identify insertion points | Short notes | -| 1 | Bundle impact measurement + decision | Size delta block | -| 1b | Release target decision | Go/No-go for 4.3.0 | -| 2 | Type contract — add `element`, `draw`, `BackgroundDrawContext` | Compile passes | -| 3 | Runtime hook in `RenderManager.drawParticles` after `clear()` | Callback runs in order | -| 4 | Target context resolution + caching | Deterministic selection | -| 5 | Error/warning handling (once-per-key, try/catch) | No log flood | -| 6 | Tests — load, precedence, fallback, resilience | Tests green | -| 7 | Docs/examples | No ambiguity | -| 8 | Validation gate | Final checklist complete | +| 9 | Types/methods rename — widen element type (`HTMLVideoElement \| HTMLImageElement`), rename `#backgroundContext` → `#backgroundElement` | Compile passes | +| 10 | Rewrite `#drawBackground()` — independent element auto-draw (`ctx.drawImage`) + draw callback on main context | Layering order verified | +| 11 | Rewrite `#resolveBackgroundContext()` → `#resolveBackgroundElement()` — store element ref, no `getContext("2d")` | Element stored, context not extracted | +| 12 | Update tests — remove element-as-context tests, add auto-draw + layering tests | Tests green | +| 13 | Update docs — layers, video/image examples, worker+OffscreenCanvas example | Docs match design | +| 14 | Bundle impact re-measurement + plugin extraction decision | Size delta block | +| 15 | Validation gate | Final checklist complete | ### Critical files | File | Change | |------|--------| -| `engine/src/Options/Interfaces/Background/IBackground.ts` | Add `element`, `draw` | -| `engine/src/Options/Classes/Background/Background.ts` | Add properties + load | -| `engine/src/Core/Utils/RenderManager.ts` | Add callback call after `clear()` | -| `engine/src/export-types.ts` | Export `BackgroundDrawContext` | +| `engine/src/Options/Interfaces/Background/IBackground.ts` | Widen `element` type to include `HTMLVideoElement \| HTMLImageElement` | +| `engine/src/Options/Classes/Background/Background.ts` | Update property type | +| `engine/src/Core/RenderManager.ts` | `#backgroundContext` → `#backgroundElement`; rewrite `#drawBackground()`; rewrite `#resolveBackgroundElement()` | +| `engine/src/export-types.ts` | Keep `BackgroundDrawContext` export (still used by `draw` callback) | --- @@ -358,9 +360,9 @@ If any feature is not ready at the 4.3.0 freeze date: | Scenario | Action | |----------|--------| -| C not ready | Ship A + B as 4.3.0, defer C to 4.4.0 | -| A not ready | Ship C + B as 4.3.0, defer A to 4.4.0 | -| B not ready | Ship C + A as 4.3.0, defer B to 4.4.0 | +| C not ready | Ship A (v2) + B as 4.3.0, defer C to 4.4.0 | +| A (v2) not ready | Ship C + B as 4.3.0, defer A to 4.4.0 (or ship A v1 as-is) | +| B not ready | Ship C + A (v2) as 4.3.0, defer B to 4.4.0 | | C+A not ready | Ship B alone as 4.3.0 | | C+A+B not ready | No 4.3.0 — reassess scope | diff --git a/.planning/handovers/BACKGROUND_CANVAS_PLAN.md b/.planning/handovers/BACKGROUND_CANVAS_PLAN.md index 8e916b8416c..888ff5745a0 100644 --- a/.planning/handovers/BACKGROUND_CANVAS_PLAN.md +++ b/.planning/handovers/BACKGROUND_CANVAS_PLAN.md @@ -1,27 +1,37 @@ -# Background Canvas Plan (v5.0 Agent-Ready) +# Background Canvas Plan (4.3.0 — Layered Redesign) ## Summary | | | |---|---| | **Target** | `@tsparticles/engine` | -| **Phases** | 8 (0–8) | | **Type** | Engine enhancement | -| **Load function** | N/A (built into engine) | -| **Key decision gate** | Phase 1: bundle impact → engine vs plugin; Phase 1b: 4.2.0 vs 4.3.0 | +| **Key decision gate** | Bundle impact → engine vs plugin extraction | ### Progress +## V1 (original implementation — completed for 4.3.0 alpha) + - [x] Phase 0: Baseline scan - [x] Phase 1: Bundle impact + decision -- [x] Phase 1b: Release target decision → 4.3.0 (additive, backward-compatible, no semver risk) -- [x] Phase 2: Type contract +- [x] Phase 1b: Release target decision → 4.3.0 +- [x] Phase 2: Type contract (element + draw) - [x] Phase 3: Runtime hook - [x] Phase 4: Target resolution/cache - [x] Phase 5: Error/warning handling -- [x] Phase 6: Tests (8 tests, 147 total passing) -- [x] Phase 7: Docs/examples (11 doc files: 1 English + 9 translations + 1 TypeDoc include) -- [x] Phase 8: Validation gate (147 tests passed, 461 Nx projects built ok) +- [x] Phase 6: Tests +- [x] Phase 7: Docs/examples +- [x] Phase 8: Validation gate + +## V2 (layered refactor — current) + +- [x] Phase 9: Type contract update — element accepts HTMLVideoElement | HTMLImageElement; element/draw become independent layers +- [x] Phase 10: Rewrite #drawBackground() — layer 0: element auto-drawImage; layer 1: draw callback on main context +- [x] Phase 11: Rewrite #resolveBackgroundContext() → #resolveBackgroundElement() — store element ref, drop context extraction +- [x] Phase 12: Update tests — new element auto-draw tests; remove element-as-context-target tests; verify layering order +- [x] Phase 13: Docs — rewrite docs to reflect layers (CSS → element → draw → particles); add video/image examples +- [x] Phase 14: Bundle impact re-measurement + plugin extraction trigger +- [x] Phase 15: Validation gate --- @@ -35,22 +45,33 @@ This proposal adds an opt-in programmable background hook for advanced JS/TS use ## Product Goal -Add two optional fields under `background`: +Replace the v1 "element-as-context-target" design with an independent multi-layer background pipeline. + +The rendering order (back to front) is: -- `background.element`: optional target canvas (`string` selector or `HTMLCanvasElement`) -- `background.draw`: optional callback called each frame with drawing context + delta +1. **CSS background** (color, image, position, repeat, size) — applied as DOM canvas style, unchanged +2. **`clear()`** — canvas pixel clear each frame, unchanged +3. **`background.element` auto-draw** — if set, `ctx.drawImage(element, 0, 0, w, h)` composites the external element as-is (no engine management) +4. **`background.draw` callback** — if set, called with main rendering context + delta, independent of element +5. **Particles** — existing particle rendering, unchanged -The goal is custom background rendering (procedural, animated, layered) without rewriting the existing rendering pipeline. +Key principles: +- `element` and `draw` are **independent** layers, not coupled +- `element` is auto-drawn when set; no custom callback needed for compositing +- `draw` always receives the main canvas context, not the element's context +- Both are optional; using neither = legacy behavior ## Hard Product Constraints (non-negotiable) 1. Use `background.element` only. Do not introduce `background.canvas`. -2. Both new options are optional and `undefined` by default. -3. Explicit precedence: - - highest: `background.draw` - - fallback target: `background.element` +2. All new options are optional and `undefined` by default. +3. **Layer order is always**: CSS → `element` auto-draw → `draw` callback → particles. + - If both `element` and `draw` are set, both execute every frame (element first, then draw). + - If only one is set, only that layer executes. 4. Existing CSS `background.color` (and style background options) must continue working exactly as today. -5. If `draw` exists, do not add any automatic compose/copy step between external and internal canvases. +5. **No coupling between `element` and `draw`**: `element` is NOT a context provider for `draw`. Each is independent. +6. `draw` always receives the **main canvas context** (`OffscreenCanvasRenderingContext2D | CanvasRenderingContext2D`), never the element's context. +7. `element` type is limited to `CanvasImageSource` drawable types: `HTMLCanvasElement | OffscreenCanvas | HTMLVideoElement | HTMLImageElement`. No generic `HTMLElement`. ## Scope and Non-Goals @@ -222,56 +243,57 @@ Recommendation right now: **provisionally target `4.3.0`**, and only pull into ` ### `background.element` -- Type: `string | HTMLCanvasElement` +- Type: `string | HTMLCanvasElement | OffscreenCanvas | HTMLVideoElement | HTMLImageElement` - Optional: yes - Default: `undefined` - Semantics: - - `string`: CSS selector resolved in DOM-capable environments - - `HTMLCanvasElement`: direct reference + - `string`: CSS selector resolved in DOM-capable environments (must match a drawable element — canvas, video, or img) + - `HTMLCanvasElement | OffscreenCanvas | HTMLVideoElement | HTMLImageElement`: direct reference + - When set, the element's current visual content is drawn onto the main canvas each frame via `ctx.drawImage()` + - The element is **not** managed by the engine — external code handles its rendering ### `background.draw` - Type: `(context: BackgroundDrawContext, delta: IDelta) => void` - Optional: yes - Default: `undefined` -- Semantics: callback executed each frame in the background phase +- Semantics: callback executed each frame in the background phase. Always receives the **main canvas context**, never the element's context. ### Supporting exported type -Introduce and export a type alias for clarity and Offscreen support: - - `type BackgroundDrawContext = OffscreenCanvasRenderingContext2D | CanvasRenderingContext2D` -Reason: internal engine rendering uses Offscreen contexts in many environments; callback typing must reflect runtime reality. - ### Serialization note -- `element` can be expressed in JSON (selector string) +- `element` can be expressed in JSON (selector string) for canvas/video/img elements in the DOM - `draw` is function-only and therefore JS/TS runtime config only -## Behavior and Precedence +## Behavior and Precedence (layered) -1. No `draw`, no `element` - - unchanged behavior only (CSS background + standard particles rendering) +Rendering order each frame (back to front): -2. `element` only - - no background callback execution - - no implicit rendering/compositing - - CSS background behavior unchanged +``` +CSS style background ← DOM layer (behind canvas, unchanged) +clear() ← canvas pixel clear (unchanged) +element auto-draw ← NEW: ctx.drawImage(element) if element is set +draw callback ← MODIFIED: ctx.draw(ctx, delta) on main context, always +particles ← unchanged +``` -3. `draw` only - - callback runs on internal render context - - CSS background behavior unchanged +### Layer matrix -4. `draw` + `element` - - callback runs on resolved `element` context if valid - - otherwise callback falls back to internal render context - - no extra copy/composition between contexts - - CSS background behavior unchanged +| `element` | `draw` | Behavior | +|-----------|--------|----------| +| unset | unset | Legacy: CSS background only + particles | +| set | unset | CSS + element auto-drawn as background + particles | +| unset | set | CSS + draw callback on main context + particles | +| set | set | CSS + element auto-drawn + draw callback + particles | ### Key interpretation -`element` is only target selection. `draw` is rendering logic. There is no hidden strategy beyond that. +- `element` is a **visual source** (auto-composited), not a target selector +- `draw` is **independent rendering logic** on the main context +- The two are orthogonal: you can use one, both, or neither ## Engine Integration Design @@ -286,7 +308,7 @@ Target files: Changes: -- Add optional `element` and `draw` to `IBackground` +- Add optional `element` (widened to include `HTMLVideoElement | HTMLImageElement`) and `draw` to `IBackground` - Keep both undefined by default in class implementation - Add exported callback context alias + callback type (or inline signature with alias) @@ -294,10 +316,12 @@ Rule: do not change existing background fields defaults or semantics. ## 2) Runtime placement in frame loop (critical) -Implement background callback in `RenderManager.drawParticles(delta)` with this order: +Implement background layers in `RenderManager.drawParticles(delta)` with this order: 1. `clear()` -2. Execute background callback phase (new) +2. `#drawBackground(delta)` — handles both element auto-draw AND draw callback: + - Layer 0: `ctx.drawImage(backgroundElement, 0, 0, width, height)` if element is set + - Layer 1: `background.draw(ctx, delta)` if draw callback is set 3. Continue existing draw pipeline (`drawSettingsSetup`, plugin `draw`, particles, cleanup) This keeps background visuals behind particles/effects and avoids changing current plugin contract semantics. @@ -307,27 +331,36 @@ Important clarification: - CSS background style (`CanvasManager.initBackground`) is not a per-frame operation today and should remain so. - Do not move CSS style writes into the hot loop. -## 3) Context resolution and caching +## 3) Element resolution and caching (replaces old context resolution) -Resolve target context once and cache it; do not resolve selectors per frame. +Resolve external element reference once and cache it; do not resolve selectors per frame. Resolution rules: -1. If `element` is `HTMLCanvasElement`, try `getContext("2d")` -2. If `element` is `string` and DOM is available, resolve `document.querySelector` -3. If selected node is not a canvas, treat as invalid target -4. On any invalid/missing target, fallback to internal render context +1. If `element` is a direct reference (`HTMLCanvasElement | OffscreenCanvas | HTMLVideoElement | HTMLImageElement`): store it directly. +2. If `element` is a `string` and DOM is available: resolve `document.querySelector(selector)`. + - If resolved node is `HTMLCanvasElement | HTMLVideoElement | HTMLImageElement`: store it. + - If resolved node is something else: warn once (`background-element-not-supported`), store null. + - If selector doesn't match: warn once (`background-element-not-found`), store null. +3. If element is null after resolution: skip auto-draw layer; no fallback needed (layer is simply skipped). + +Store as `#backgroundElement` — a direct element reference for `ctx.drawImage()`, NOT a 2D context. Cache invalidation events: - container init/start - options reload/reset/refresh -- explicit background options change path (if applicable) No per-frame allocations from this feature. ## 4) Safety and diagnostics +### drawImage exception handling + +- Wrap `drawImage()` in `try/catch` to guard against context loss or invalid element states (e.g., video not loaded) +- Keep animation loop alive +- Warn with deterministic message + ### Callback exception handling - Wrap callback invocation in `try/catch` @@ -338,28 +371,41 @@ No per-frame allocations from this feature. - Warn once per container per warning key - Suggested keys: - - `background-element-selector-not-found` - - `background-element-not-canvas` - - `background-element-context-unavailable` + - `background-element-not-found` + - `background-element-not-supported` + - `background-element-draw-error` - `background-draw-error` -Implementation can use a small `Set` attached to container/render state. +Implementation uses a small `Set` attached to container/render state (already exists as `#backgroundWarnings`). ## 5) Environment constraints -- In non-DOM environments, selector resolution is skipped safely. -- If an external canvas context cannot be obtained, fallback to internal context. -- No assumptions that external canvas size or DPR match internal canvas. -- External canvas sizing remains user responsibility (document this clearly). +- In non-DOM environments, CSS selector resolution is skipped safely. +- No assumptions that external element pixel dimensions, DPR, or format match internal canvas. +- External element sizing/cropping is handled by the browser's `drawImage()` — it will stretch by default to fill the canvas size. Users should size their elements appropriately. +- For `HTMLVideoElement`: ensure video metadata is loaded before use (user responsibility). `drawImage(video, ...)` draws the current frame; the video playback is externally managed. +- For `OffscreenCanvas`: must be transferred/controlled externally. The engine only reads the pixel content each frame. ## Compatibility Model ## Backward compatibility guarantees - Existing configs remain behavior-identical when new options are not used. -- Existing background style path remains unchanged. +- Existing CSS background style path remains unchanged. - Feature is fully opt-in. +## Breaking changes from v1 (original implementation) + +⚠️ **Important: this redesign changes the semantics of `element` + `draw` together.** + +| Scenario | v1 behavior | v2 behavior | +|----------|-------------|-------------| +| `element` only | No-op (element context resolved but unused) | Element auto-drawn as background | +| `draw` only | `draw` runs on main context | Same (unchanged) | +| `element` + `draw` | `draw` runs on element's context | `draw` runs on main context; element auto-drawn first | + +This is a **breaking change** for anyone using the v1 `element` + `draw` together pattern. Since v1 was in 4.3.0 alpha and never released, this is safe. + ## Wrapper compatibility - Engine type exports must include new types/options. @@ -367,182 +413,238 @@ Implementation can use a small `Set` attached to container/render state. ## JSON vs JS/TS expectations -- JSON: `element` only -- JS/TS: `element` and `draw` +- JSON: `element` only (CSS selector string) +- JS/TS: `element` (direct reference) and `draw` - Docs/examples must show both to avoid false expectations. ## Test Plan -## Unit tests +## Unit tests (v2 additions) 1. Options loading - - new fields accepted + - new fields accepted (`element`, `draw`) + - `element` accepts `HTMLVideoElement` and `HTMLImageElement` - defaults remain `undefined` - legacy fields unchanged -2. Resolution logic - - valid selector -> canvas context - - selector missing -> fallback + once warning - - non-canvas match -> fallback + once warning - - direct canvas without context -> fallback + once warning +2. Element resolution logic (replaces old context resolution) + - valid CSS selector for canvas/video/img → element stored as `#backgroundElement` + - selector not found → null + once warning + - non-canvas/video/img match → null + once warning (`background-element-not-supported`) + - direct element reference (canvas/video/img/offscreen) → stored directly -3. Precedence logic - - no `draw` -> callback never runs (even if `element` exists) - - `draw` only -> internal context used - - `draw` + valid `element` -> external context used - - `draw` + invalid `element` -> internal fallback +3. Layer execution logic + - no `element`, no `draw` → neither layer executes + - `element` only → `drawImage` called with element, no draw callback + - `draw` only → draw callback on main context, no drawImage + - `element` + `draw` → drawImage first, then draw callback + - invalid `element` → drawImage skipped, draw callback still executes 4. Error resilience - - throwing callback does not break next frame - - warning is throttled (once-key behavior) + - throw inside `draw` callback does not break next frame + - drawImage on invalid/disconnected element does not break next frame + - warning is throttled (once-key behavior) for each warning key 5. Performance guard - feature disabled path adds no measurable overhead in smoke benchmark + - drawImage path adds only ~0.01-0.05ms per frame (GPU blit) ## Integration/manual smoke 1. Legacy style-only background visually unchanged -2. JS `draw` only renders animated background on internal canvas -3. JS `draw` + external `element` renders on external target -4. Invalid selector + `draw` safely falls back -5. Large particle count + lightweight callback remains stable +2. JS `draw` only renders animated background on main canvas +3. External canvas (animated by rAF/worker) auto-drawn as background via element +4. External video element current frame drawn as background +5. Both element + draw: element visible behind draw output +6. Invalid selector gracefully skips element layer ## Acceptance Criteria (Definition of Done) 1. API - - `background.element` and `background.draw` available and optional + - `background.element` accepts `string | HTMLCanvasElement | OffscreenCanvas | HTMLVideoElement | HTMLImageElement` + - `background.draw` accepts `(context: BackgroundDrawContext, delta: IDelta) => void` + - both are optional, `undefined` by default - no `background.canvas` alias -2. Behavior - - `draw` is the only trigger for custom background rendering - - `element` only selects callback target context - - no implicit compose/copy between canvases - - CSS style background path remains active and unchanged - -3. Stability - - invalid target gracefully falls back +2. Layer rendering order + - CSS style background → DOM level (unchanged) + - `clear()` → canvas clear (unchanged) + - `background.element` → auto-drawn via `drawImage` on main context + - `background.draw` → executed on main context + - Particles → drawn on top + - If both element and draw: element first, then draw + +3. Element independence + - element is auto-drawn without requiring a `draw` callback + - element is NOT used as a context provider for `draw` + - `draw` always receives the main canvas context + - element's rendering is fully managed by external code + +4. Stability + - invalid element gracefully skips auto-draw layer + - drawImage failures do not stop rendering - callback exceptions do not stop rendering - - warnings are deterministic and non-spammy + - warnings are deterministic and non-spammy (once-per-key) -4. Performance/compatibility - - unchanged behavior for legacy configs - - no meaningful overhead when callback is disabled +5. Performance/compatibility + - unchanged behavior for legacy configs (no element, no draw) + - no meaningful overhead when new features are disabled + - drawImage is GPU-accelerated (~0.01-0.05ms per frame) -5. Architecture decision +6. Architecture decision - bundle-size delta has been measured and documented - decision (engine vs plugin path) follows defined thresholds - - final implementation matches recorded decision - -6. Release target decision - - feature-level minor-safety checklist completed - - release-train gate explicitly evaluated (`4.2.0` vs `4.3.0`) - - final target version documented with rationale - -## Execution Plan for Build Agent (phase-based) - -### Phase 0 - Baseline scan - -- Identify exact insertion points in `IBackground`, `Background`, `RenderManager` -- Confirm current draw order and options load flow -- Output: short notes with chosen hook points - -### Phase 1 - Bundle impact baseline and decision gate - -- Capture baseline engine artifact sizes -- Implement minimal spike (or use completed implementation) and capture candidate sizes -- Compute delta bytes/% and classify LOW/MEDIUM/HIGH -- Choose path: - - Path A: engine implementation (LOW/MEDIUM) - - Path B: plugin extraction (HIGH) -- Output: decision block with measurements and rationale - -### Phase 1b - Release-target gate (`4.2.0` vs `4.3.0`) - -- Evaluate feature-level semver safety checklist -- Evaluate branch/release-train risk (aggregate churn, open regressions, pending risky work) -- Propose target: - - `4.2.0` if both gates pass - - `4.3.0` if release-train gate fails -- Output: short release recommendation block with evidence - -### Phase 2 - Type contract - -- Add `element` + `draw` options types -- Add and export `BackgroundDrawContext` alias (and callback type if introduced) -- Output: compile passes for type surface - -Path note: - -- Path A (engine): change engine option surface directly. -- Path B (plugin): keep engine base types stable, add plugin options/types and plugin registration API. - -### Phase 3 - Runtime hook - -- Add background callback execution method in `RenderManager` -- Invoke it in `drawParticles` immediately after `clear()` -- Keep existing draw flow unchanged otherwise -- Output: callback runs in intended order - -Path note: - -- Path A: implement in engine render loop. -- Path B: implement via plugin container hooks (`canvasPaint`/`draw` strategy) without breaking existing plugin contracts. - -### Phase 4 - Target resolution/cache - -- Implement resolver + cached target context -- Implement fallback to internal context -- Hook cache refresh in init/refresh-reload paths -- Output: deterministic context selection without per-frame selector calls - -### Phase 5 - Error/warning handling - -- Add once-per-key warning mechanism -- Guard callback invocation -- Output: safe loop on callback errors, no log flood - -### Phase 6 - Tests - -- Add/update tests for load, precedence, fallback, warnings, resilience -- Output: tests green for new behavior and no regressions - -Path note: - -- Path B must include plugin integration tests and plugin-not-loaded behavior tests. - -### Phase 7 - Docs/examples - -- Update docs for API semantics, JSON limits, JS callback usage -- Add minimal examples for each mode -- Output: no ambiguity around `element` vs `draw` - -Path note: - -- Path B docs must clearly explain plugin installation/registration requirement. - -### Phase 8 - Validation gate + - plugin extraction feasibility assessed and documented + +## Execution Plan for Build Agent (phase-based — v2 redesign) + +### Phase 9 — Types/methods rename + +- **IBackground.element**: widen to `string | HTMLCanvasElement | OffscreenCanvas | HTMLVideoElement | HTMLImageElement` +- **Background.ts**: update property type to match interface +- **RenderManager**: rename `#backgroundContext` → `#backgroundElement`, update type +- Remove import of `BackgroundDrawContext` from RenderManager (no longer used there) +- Output: compile passes for updated type surface + +### Phase 10 — Rewrite `#drawBackground()` + +- Change method to handle two independent layers: + ```typescript + #drawBackground(delta: IDelta): void { + const ctx = this.#context; + if (!ctx) return; + + // Layer 0: auto-draw external element + if (this.#backgroundElement) { + try { ctx.drawImage(this.#backgroundElement, 0, 0, w, h); } + catch { warnOnce("background-element-draw-error", ...); } + } + + // Layer 1: custom draw callback (always on main context) + if (background.draw) { + try { background.draw(ctx, delta); } + catch { warnOnce("background-draw-error", ...); } + } + } + ``` +- Remove old logic that used `#backgroundContext ?? this.#context` +- Output: layering works with both element and draw + +### Phase 11 — Rewrite `#resolveBackgroundContext()` → `#resolveBackgroundElement()` + +- Rename method and update internal logic: + - Accept CSS selector → resolve to `HTMLCanvasElement | HTMLVideoElement | HTMLImageElement` + - Accept direct reference → store as-is + - Store element reference itself (not its context) + - New warning key: `background-element-not-supported` for non-drawable elements + - Remove `getContext("2d")` call entirely +- Update callers: + - `init()` → calls `#resolveBackgroundElement()` + - `destroy()` → sets `#backgroundElement = null` +- Output: element resolution stores element, not context + +### Phase 12 — Update tests + +- Remove tests for: + - `element` as context target for `draw` + - `getContext("2d")` on element + - fallback to internal context for draw +- Add tests for: + - `element` auto-draw with HTMLCanvasElement, OffscreenCanvas, HTMLVideoElement, HTMLImageElement + - Layering order: element drawn before draw callback + - `draw` callback receives main context (not element context) + - Invalid element silently skips layer +- Output: tests green for v2 behavior + +### Phase 13 — Update docs/examples + +- Rewrite docs to describe the layer model (CSS → element → draw → particles) +- Add HTMLVideoElement example (video background) +- Add OffscreenCanvas + Worker example (worker-rendered background) +- Remove or correct references to "element as draw target" +- Output: docs match new design + +### Phase 14 — Bundle impact re-measurement + plugin extraction trigger + +- Re-measure bundle delta after v2 changes +- Compare against thresholds: + - LOW: `< 1.0 KB` minified → keep in engine + - MEDIUM: `1.0-2.5 KB` → keep in engine, open RFC for plugin extraction + - HIGH: `> 2.5 KB` → extract to `@tsparticles/plugin-background` +- If extraction is triggered, plugin owns: + - `draw` callback execution + - `element` resolution and auto-draw + - BackgroundDrawContext type +- Engine retains only CSS-style background options (color, image, position, repeat, size, opacity) +- Output: decision block with measurements + +**Measured results (2026-06-21):** +- `baseline_min`: 68,076 bytes +- `candidate_min`: 69,177 bytes +- `delta_min`: +1,101 bytes (+1.08 KB, +1.62%) +- `decision`: engine-now-with-followup (MEDIUM impact) +- `rationale`: 1.08 KB is within 1.0-2.5 KB threshold; 1.62% is within 1.5-3.5% threshold. Keep in engine now, open follow-up RFC for plugin extraction. + +### Phase 15 — Validation gate - Run targeted engine tests and affected build/lint tasks - Verify no behavior regressions in legacy background config +- Verify v1-style configs (element + draw) produce correct layered output (not old behavior) - Output: final checklist complete +**Validation results (2026-06-21):** +- ✅ Tests pass: `pnpm --filter @tsparticles/tests exec vitest run src/tests/Background.ts` — 13/13 tests green +- ✅ TypeScript compiles clean: `cd engine && npx tsc --noEmit` — no errors +- ✅ Legacy CSS background configs untouched (CanvasManager.initBackground unchanged) +- ✅ V2 layering order verified in code: clear() → element auto-draw → draw callback → particles +- ✅ element and draw independently optional, undefined by default +- ✅ HTMLVideoElement, HTMLImageElement, OffscreenCanvas all accepted as element types +- ✅ Warning system deduplicates by key (no log flood) +- ✅ drawImage errors caught and warned once +- ✅ draw callback errors caught and warned once +- ✅ Bundle impact classified MEDIUM — keep in engine, open RFC for plugin extraction + ## Progress Checklist Template (for agent status updates) -- [ ] Phase 0 complete: hook points identified -- [ ] Phase 1 complete: size delta measured and path chosen -- [ ] Phase 1b complete: release target (`4.2.0`/`4.3.0`) decided -- [ ] Phase 2 complete: API/types exported -- [ ] Phase 3 complete: frame hook integrated -- [ ] Phase 4 complete: context cache + fallback integrated -- [ ] Phase 5 complete: warning/error policy integrated -- [ ] Phase 6 complete: tests added and passing -- [ ] Phase 7 complete: docs/examples updated -- [ ] Phase 8 complete: validation commands passing +### V1 (original — completed) +- [x] Phase 0: hook points identified +- [x] Phase 1: size delta measured and path chosen +- [x] Phase 1b: release target decided +- [x] Phase 2: API/types exported +- [x] Phase 3: frame hook integrated +- [x] Phase 4: context cache + fallback integrated +- [x] Phase 5: warning/error policy integrated +- [x] Phase 6: tests added and passing +- [x] Phase 7: docs/examples updated +- [x] Phase 8: validation commands passing + +### V2 (layered refactor — current) +- [x] Phase 9: types/methods rename (widen element type, #backgroundElement) +- [x] Phase 10: rewrite #drawBackground() — independent element + draw layers +- [x] Phase 11: rewrite #resolveBackgroundElement() — store element ref, no context +- [x] Phase 12: tests updated for v2 semantics +- [x] Phase 13: docs updated for layering model +- [x] Phase 14: bundle impact re-measurement + plugin extraction decision +- [x] Phase 15: validation gate ## Notes for Build Agent - Keep the implementation additive and minimal. - Do not alter existing CSS background semantics. -- Do not add hidden auto-composition behavior. +- Do not couple `element` and `draw` — they are independent layers. +- `draw` always receives the main context, never the element's context. +- `drawImage()` with a video element draws the current frame; no additional frame management needed. - Prefer explicit fallback logic over magic. - If a choice is ambiguous, choose least-surprising behavior and document it in PR notes. + +## Future: Plugin Extraction + +If the background feature grows beyond acceptable bundle thresholds, extract a `@tsparticles/plugin-background` package: + +- **Plugin owns**: `draw` callback, `element` resolution/auto-draw, `BackgroundDrawContext` type +- **Engine retains**: CSS-style background options (`color`, `image`, `position`, `repeat`, `size`, `opacity`) as DOM style properties +- **Registration**: `loadBackgroundPlugin(engine)` — adds the programmable layer support +- **When engine loads without plugin**: programmable layers are silently skipped; CSS background works as today +- **Migration path**: engine users who don't need programmable backgrounds get zero extra bytes + +Trigger: if Phase 14 measurement exceeds MEDIUM threshold or if the feature continues to grow in maintenance complexity. diff --git a/demo/vanilla/views/index.pug b/demo/vanilla/views/index.pug index b2d1c62980b..d732efeb976 100644 --- a/demo/vanilla/views/index.pug +++ b/demo/vanilla/views/index.pug @@ -168,6 +168,7 @@ html(lang="en") script(src="/interaction-external-particle/tsparticles.interaction.external.particle.min.js") script(src="/interaction-external-pop/tsparticles.interaction.external.pop.min.js") script(src="/interaction-light/tsparticles.interaction.light.min.js") + script(src="/interaction-particles-fluid/tsparticles.interaction.particles.fluid.min.js") script(src="/interaction-particles-repulse/tsparticles.interaction.particles.repulse.min.js") script(src="/updater-gradient/tsparticles.updater.gradient.min.js") script(src="/updater-orbit/tsparticles.updater.orbit.min.js") diff --git a/engine/src/Core/RenderManager.ts b/engine/src/Core/RenderManager.ts index 555fad9e7f2..98c12ce07fe 100644 --- a/engine/src/Core/RenderManager.ts +++ b/engine/src/Core/RenderManager.ts @@ -8,7 +8,6 @@ import { zIndexFactorOffset, } from "./Utils/Constants.js"; import { getStyleFromHsl, rangeColorToHsl } from "../Utils/ColorUtils.js"; -import type { BackgroundDrawContext } from "../Options/Interfaces/Background/IBackground.js"; import type { CanvasManager } from "./CanvasManager.js"; import type { Container } from "./Container.js"; import type { IContainerPlugin } from "./Interfaces/IContainerPlugin.js"; @@ -49,7 +48,7 @@ function setTransformValue( * Canvas manager */ export class RenderManager { - #backgroundContext: BackgroundDrawContext | null; + #backgroundElement: CanvasImageSource | null; readonly #backgroundWarnings: Set; #canvasClearPlugins: IContainerPlugin[]; readonly #canvasManager: CanvasManager; @@ -86,7 +85,7 @@ export class RenderManager { this.#container = container; this.#canvasManager = canvasManager; this.#context = null; - this.#backgroundContext = null; + this.#backgroundElement = null; this.#backgroundWarnings = new Set(); this.#preDrawUpdaters = []; this.#postDrawUpdaters = []; @@ -148,7 +147,7 @@ export class RenderManager { destroy(): void { this.stop(); - this.#backgroundContext = null; + this.#backgroundElement = null; this.#backgroundWarnings.clear(); this.#preDrawUpdaters = []; this.#postDrawUpdaters = []; @@ -301,7 +300,7 @@ export class RenderManager { init(): void { this.initUpdaters(); this.initPlugins(); - this.#resolveBackgroundContext(); + this.#resolveBackgroundElement(); this.paint(); } @@ -521,22 +520,32 @@ export class RenderManager { } #drawBackground(delta: IDelta): void { - const background = this.#container.actualOptions.background; + const background = this.#container.actualOptions.background, + ctx = this.#context; - if (!background.draw) { + if (!ctx) { return; } - const ctx = this.#backgroundContext ?? this.#context; + const width = this.#canvasManager.size.width, + height = this.#canvasManager.size.height; - if (!ctx) { - return; + // Layer 0: auto-draw external element + if (this.#backgroundElement) { + try { + ctx.drawImage(this.#backgroundElement, originPoint.x, originPoint.y, width, height); + } catch { + this.#warnOnce("background-element-draw-error", "Error drawing background element onto canvas"); + } } - try { - background.draw(ctx, delta); - } catch (_e) { - this.#warnOnce("background-draw-error", "Error in background.draw callback"); + // Layer 1: custom draw callback (always on main context) + if (background.draw) { + try { + background.draw(ctx, delta); + } catch { + this.#warnOnce("background-draw-error", "Error in background.draw callback"); + } } } @@ -704,49 +713,40 @@ export class RenderManager { return this.#reusablePluginColors; } - #resolveBackgroundContext(): void { + #resolveBackgroundElement(): void { const background = this.#container.actualOptions.background; - this.#backgroundContext = null; + this.#backgroundElement = null; if (!background.element) { return; } - let element: HTMLCanvasElement | OffscreenCanvas | null = null; - if (typeof background.element === "string") { if (typeof document !== "undefined") { const node = document.querySelector(background.element); - if (node instanceof HTMLCanvasElement) { - element = node; + if (node instanceof HTMLCanvasElement || node instanceof HTMLVideoElement || node instanceof HTMLImageElement) { + this.#backgroundElement = node; } else if (node) { this.#warnOnce( - "background-element-not-canvas", - `Background element "${background.element}" is not a canvas element`, + "background-element-not-supported", + `Background element "${background.element}" is not a supported drawable element (canvas, video, or img)`, ); } else { this.#warnOnce( - "background-element-selector-not-found", + "background-element-not-found", `Background element selector "${background.element}" not found`, ); } } - } else if (background.element instanceof HTMLCanvasElement || background.element instanceof OffscreenCanvas) { - element = background.element; - } - - if (!element) { - return; - } - - const ctx = element.getContext("2d"); - - if (ctx) { - this.#backgroundContext = ctx; - } else { - this.#warnOnce("background-element-context-unavailable", "Failed to get 2D context from background element"); + } else if ( + background.element instanceof HTMLCanvasElement || + background.element instanceof OffscreenCanvas || + background.element instanceof HTMLVideoElement || + background.element instanceof HTMLImageElement + ) { + this.#backgroundElement = background.element; } } diff --git a/engine/src/Options/Classes/Background/Background.ts b/engine/src/Options/Classes/Background/Background.ts index 4b8debe750c..d0524cf7817 100644 --- a/engine/src/Options/Classes/Background/Background.ts +++ b/engine/src/Options/Classes/Background/Background.ts @@ -10,7 +10,7 @@ import type { RecursivePartial } from "../../../Types/RecursivePartial.js"; export class Background extends OptionLoader implements IBackground { color: OptionsColor; draw?: (context: BackgroundDrawContext, delta: IDelta) => void; - element?: string | HTMLCanvasElement | OffscreenCanvas; + element?: string | HTMLCanvasElement | OffscreenCanvas | HTMLVideoElement | HTMLImageElement; image = ""; opacity = 1; position = ""; @@ -29,7 +29,7 @@ export class Background extends OptionLoader implements IBackground } loadProperty(this, "element", data.element); - this.draw = data.draw as typeof this.draw; + loadProperty(this, "draw", data.draw as typeof this.draw); loadProperty(this, "image", data.image); loadProperty(this, "position", data.position); loadProperty(this, "repeat", data.repeat); diff --git a/engine/src/Options/Interfaces/Background/IBackground.ts b/engine/src/Options/Interfaces/Background/IBackground.ts index d7559cd3127..26a525e46c9 100644 --- a/engine/src/Options/Interfaces/Background/IBackground.ts +++ b/engine/src/Options/Interfaces/Background/IBackground.ts @@ -23,10 +23,11 @@ export interface IBackground { draw?: (context: BackgroundDrawContext, delta: IDelta) => void; /** - * An optional target canvas element (CSS selector, HTMLCanvasElement, or OffscreenCanvas) for the custom background draw callback. - * If not specified, the internal rendering context is used. + * An optional external element (CSS selector, canvas, video, image, or OffscreenCanvas) that is + * auto-drawn onto the main canvas each frame via ctx.drawImage(). + * The element is not managed by the engine — external code handles its rendering. */ - element?: string | HTMLCanvasElement | OffscreenCanvas; + element?: string | HTMLCanvasElement | OffscreenCanvas | HTMLVideoElement | HTMLImageElement; /** * The `image` property sets the canvas style `background-image` property. diff --git a/markdown/Options/Background.md b/markdown/Options/Background.md index 3013d99f6e7..fef4e0067b5 100644 --- a/markdown/Options/Background.md +++ b/markdown/Options/Background.md @@ -2,18 +2,28 @@ Controls the canvas background layer rendered behind particles. +## Layer order (back to front) + +1. **CSS background** (color, image, position, repeat, size) — applied as DOM canvas style +2. **`clear()`** — canvas pixel clear each frame +3. **`background.element` auto-draw** — if set, `ctx.drawImage(element, ...)` composites the external element as-is +4. **`background.draw` callback** — if set, called with the main rendering context + delta +5. **Particles** — drawn on top + +`element` and `draw` are **independent layers**. Both are optional and can be used together or separately. + ## Properties -| Key | Type | Example | Notes | -| ---------- | -------------------------------------------------- | ---------------------------------------------------------- | --------------------------------------------------------- | -| `color` | `string` / `object` | `"#bada55"` / `{ "value": "#bada55" }` | Background color, supports {@link IColor} | -| `opacity` | `number` | `1` / `0.5` | Background color alpha, from `0` to `1` | -| `image` | `string` | `"url('https://particles.js.org/images/background3.jpg')"` | CSS `background-image` value | -| `position` | `string` | `"50% 50%"` | CSS `background-position` value | -| `repeat` | `string` | `"no-repeat"` | CSS `background-repeat` value | -| `size` | `string` | `"cover"` | CSS `background-size` value | -| `element` | `string` / `HTMLCanvasElement` / `OffscreenCanvas` | `"#bg"` / `document.getElementById("bg")` | Target canvas for `draw`; omitted → uses particles canvas | -| `draw` | `function` | `(ctx, delta) => { /* custom draw */ }` | Per-frame custom background callback, called after clear | +| Key | Type | Example | Notes | +| ---------- | -------------------------------------------------------------------------------------------- | ----------------------------------------- | ----------------------------------------------------------------------------- | +| `color` | `string` / `object` | `"#bada55"` / `{ "value": "#bada55" }` | Background color, supports {@link IColor} | +| `opacity` | `number` | `1` / `0.5` | Background color alpha, from `0` to `1` | +| `image` | `string` | `"url('...')"` | CSS `background-image` value | +| `position` | `string` | `"50% 50%"` | CSS `background-position` value | +| `repeat` | `string` | `"no-repeat"` | CSS `background-repeat` value | +| `size` | `string` | `"cover"` | CSS `background-size` value | +| `element` | `string` / `HTMLCanvasElement` / `OffscreenCanvas` / `HTMLVideoElement` / `HTMLImageElement` | `"#bg"` / `document.getElementById("bg")` | External element auto-drawn each frame via `drawImage`; not managed by engine | +| `draw` | `function` | `(ctx, delta) => { /* custom draw */ }` | Per-frame custom background callback on main canvas context | ## Quick examples @@ -74,32 +84,53 @@ const drawBackground = (ctx: BackgroundDrawContext, delta: IDelta): void => { }; ``` -### Custom background draw on external element +### Element auto-draw (external canvas, video, or image) ```json { "background": { - "element": "#my-bg-canvas", - "draw": "(ctx, delta) => { ctx.fillStyle = 'rgba(0,0,0,0.1)'; ctx.fillRect(0, 0, ctx.canvas.width, ctx.canvas.height); }" + "element": "#my-bg-canvas" } } ``` +When `element` is set, the element's current visual content is drawn onto the main canvas each frame. The element is **not managed** by the engine — external code handles its rendering. + ```ts -import { BackgroundDrawContext, IDelta } from "@tsparticles/engine"; +// Auto-draw an external