diff --git a/.github/workflows/realease-desktop-app.yml b/.github/workflows/realease-desktop-app.yml index f79c46c1dc..d4c00a578d 100644 --- a/.github/workflows/realease-desktop-app.yml +++ b/.github/workflows/realease-desktop-app.yml @@ -48,7 +48,7 @@ jobs: - name: Setup Node.js uses: actions/setup-node@v4 with: - node-version: 22 + node-version-file: .nvmrc cache: pnpm - name: Install Dependencies diff --git a/.nvmrc b/.nvmrc index ffa3aecbfb..f9c0a75873 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -v22.22.1 \ No newline at end of file +v24.14.0 \ No newline at end of file diff --git a/AGENTS.md b/AGENTS.md index 16806fc4e2..edd8349f74 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -35,7 +35,7 @@ Currently, we have below features / modules. **Languages** -- Node.js 22 - main runtime for most apps +- Node.js 24 LTS - main runtime for most apps - TypeScript 5 - main language for most apps - Python 3.12 - partially used for tasks / jobs, that are independent, e.g. `/library` - Deno - partially used for tasks / jobs, that shares the codebase, e.g. `/jobs` diff --git a/apps/backgrounds/package.json b/apps/backgrounds/package.json index 11d58a6158..b680ace0da 100644 --- a/apps/backgrounds/package.json +++ b/apps/backgrounds/package.json @@ -27,7 +27,7 @@ }, "devDependencies": { "@tailwindcss/postcss": "^4", - "@types/node": "^22", + "@types/node": "^24", "@types/react": "^19", "@types/react-dom": "^19", "@types/three": "^0.170.0", diff --git a/apps/blog/package.json b/apps/blog/package.json index e4cbf641ef..3e12cdbb5f 100644 --- a/apps/blog/package.json +++ b/apps/blog/package.json @@ -45,6 +45,6 @@ ] }, "engines": { - "node": ">=18.0" + "node": ">=24.0.0" } } diff --git a/apps/docs/docusaurus.config.ts b/apps/docs/docusaurus.config.ts index 31ded4ea8b..0527a1dc5b 100644 --- a/apps/docs/docusaurus.config.ts +++ b/apps/docs/docusaurus.config.ts @@ -49,7 +49,11 @@ const config: Config = { organizationName: "gridaco", projectName: "grida", onBrokenLinks: "ignore", - onBrokenMarkdownLinks: "warn", + markdown: { + hooks: { + onBrokenMarkdownLinks: "warn", + }, + }, stylesheets: [require.resolve("katex/dist/katex.min.css")], i18n: { defaultLocale: "en", diff --git a/apps/docs/package.json b/apps/docs/package.json index 911547c648..ed175867ca 100644 --- a/apps/docs/package.json +++ b/apps/docs/package.json @@ -53,6 +53,6 @@ ] }, "engines": { - "node": ">=18.0" + "node": ">=24.0.0" } } diff --git a/apps/docs/scripts/docs-site-gen/copy-docs.js b/apps/docs/scripts/docs-site-gen/copy-docs.js index 30e481f705..27b84588a4 100644 --- a/apps/docs/scripts/docs-site-gen/copy-docs.js +++ b/apps/docs/scripts/docs-site-gen/copy-docs.js @@ -11,12 +11,11 @@ const dest = path.join(__dirname, "../../../docs/docs"); * use fse.copySync() to copy files. */ function copyAll() { - fse.copySync(origin, dest, { overwrite: true }, function (err) { - if (err) { - console.error(err); - } else { - } - }); + // Mirror `/docs` into the Docusaurus content dir: remove stale files so + // deletions in the source tree do not leave duplicate routes (e.g. README + // vs index) in the build output. + fse.emptyDirSync(dest); + fse.copySync(origin, dest, { overwrite: true }); } module.exports = copyAll; diff --git a/apps/viewer/package.json b/apps/viewer/package.json index 46197a8c00..952fc7b08f 100644 --- a/apps/viewer/package.json +++ b/apps/viewer/package.json @@ -23,7 +23,7 @@ "devDependencies": { "@eslint/eslintrc": "^3", "@tailwindcss/postcss": "^4", - "@types/node": "^22", + "@types/node": "^24", "@types/react": "^19", "@types/react-dom": "^19", "eslint": "^9", diff --git a/crates/grida-canvas-wasm/package.json b/crates/grida-canvas-wasm/package.json index 66bc744935..a041dbf8b4 100644 --- a/crates/grida-canvas-wasm/package.json +++ b/crates/grida-canvas-wasm/package.json @@ -29,7 +29,7 @@ "typecheck": "tsc --noEmit" }, "devDependencies": { - "@types/node": "^22", + "@types/node": "^24", "@webgpu/types": "^0.1.61", "serve": "^14.2.4", "typescript": "^5" diff --git a/docs/@designto-code/README.md b/docs/@designto-code/README.md deleted file mode 100644 index af14576e78..0000000000 --- a/docs/@designto-code/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# This directory is copied from [gridaco/designto-code](https://github.com/gridaco/designto-code) - -> Documentations landingpage (for github) - -For entry, goto [grida.co/docs/@designto-code](grida.co/docs/) - -## Workflows (**Important!**) - -this directory will be copied to gridaco/grida.co by github actions. If you are interacting with this directory under gridaco/grida.co, your changes will be lost. diff --git a/docs/@designto-code/flags/--empty-content.md b/docs/@designto-code/flags/--empty-content.md index bdedf6899a..6790128004 100644 --- a/docs/@designto-code/flags/--empty-content.md +++ b/docs/@designto-code/flags/--empty-content.md @@ -15,5 +15,5 @@ stage: ## See also -- [`--dynamic-item`](./--dynamic-item/README.md) -- [`--dynamic-content`](./--dynamic-container/README.md) +- [`--dynamic-item`](./--dynamic-item.md) +- [`--dynamic-container`](./--dynamic-container.md) diff --git a/docs/@designto-code/flags/--hash.md b/docs/@designto-code/flags/--hash.md index 740995233b..2ba133d9aa 100644 --- a/docs/@designto-code/flags/--hash.md +++ b/docs/@designto-code/flags/--hash.md @@ -33,4 +33,4 @@ Now vector 1 & 2 will use the same svg data, based on vector 2's svg data (since ## See also -- [`--id`](./--id/README.md) +- [`--id`](./--id.md) diff --git a/docs/@designto-code/flags/--id.md b/docs/@designto-code/flags/--id.md index 1a82432c54..03282f7138 100644 --- a/docs/@designto-code/flags/--id.md +++ b/docs/@designto-code/flags/--id.md @@ -22,4 +22,4 @@ by specifing the id flag, you can take advantage in below scenarios. ## See also -- [`--hash`](./--hash/README.md) +- [`--hash`](./--hash.md) diff --git a/docs/@designto-code/flags/--ignore.md b/docs/@designto-code/flags/--ignore.md index acc86c372d..6021a6e44a 100644 --- a/docs/@designto-code/flags/--ignore.md +++ b/docs/@designto-code/flags/--ignore.md @@ -17,6 +17,6 @@ As a design choice, for example, a designer can add a boxshadow & radius to the e.g. -- `--ignore=*` - same as [`//@ignore`](../@ignore/README.md) +- `--ignore=*` - same as `//@ignore` (see [flags index](./index.md)) - `--ignore=effects` - `--ignore=border-radius` diff --git a/docs/@designto-code/flags/--overflow.md b/docs/@designto-code/flags/--overflow.md index f0e293cfa8..0f252c30a5 100644 --- a/docs/@designto-code/flags/--overflow.md +++ b/docs/@designto-code/flags/--overflow.md @@ -15,4 +15,4 @@ stage: ## See also -[`--scroll`](./--scroll/README.md) +[`--scroll`](./--scroll.md) diff --git a/docs/@designto-code/flags/--scroll.md b/docs/@designto-code/flags/--scroll.md index 2119965156..614cafd74e 100644 --- a/docs/@designto-code/flags/--scroll.md +++ b/docs/@designto-code/flags/--scroll.md @@ -2,4 +2,4 @@ ## See also -[`--overflow`](./--overflow/README.md) +[`--overflow`](./--overflow.md) diff --git a/docs/@designto-code/index.md b/docs/@designto-code/index.md index 469d3801db..284b633e7f 100644 --- a/docs/@designto-code/index.md +++ b/docs/@designto-code/index.md @@ -1,3 +1,19 @@ +--- +format: md +--- + +# This directory is copied from [gridaco/designto-code](https://github.com/gridaco/designto-code) + +> Documentations landingpage (for github) + +For entry, goto [grida.co/docs](https://grida.co/docs/) + +## Workflows (**Important!**) + +this directory will be copied to gridaco/grida.co by github actions. If you are interacting with this directory under gridaco/grida.co, your changes will be lost. + +--- + > developer docs for understanding / contributing / developing design-to-code. ## Widgets diff --git a/docs/support/README.md b/docs/support/README.md deleted file mode 100644 index 33a3e7ceaf..0000000000 --- a/docs/support/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# This is not a comunity support directory. - -This is a temporary directory for contents that should be listed under support.grida.co or grida.co/support. not grida.co/docs/support - -WILL BE ARCHIVED AND REMOVED. diff --git a/docs/support/index.mdx b/docs/support/index.mdx index 0048e1b95f..965aeae40b 100644 --- a/docs/support/index.mdx +++ b/docs/support/index.mdx @@ -1,3 +1,11 @@ # Support for issuing new support ticket, visit https://grida.co/contact + +--- + +This is not a community support directory. + +This is a temporary directory for contents that should be listed under support.grida.co or grida.co/support, not grida.co/docs/support. + +**WILL BE ARCHIVED AND REMOVED.** diff --git a/docs/tags.yml b/docs/tags.yml index 3880e05e9c..182c74d791 100644 --- a/docs/tags.yml +++ b/docs/tags.yml @@ -180,3 +180,63 @@ compositing: label: Compositing permalink: /compositing description: Layers, surfaces, tiles, and GPU composition. + +feat-2d: + label: 2D features + permalink: /feat-2d + description: Working-group notes on the 2D canvas engine and related systems. + +htmlcss: + label: HTML & CSS + permalink: /htmlcss + description: HTML/CSS alignment, design-to-code mapping, and web styling topics. + +lod: + label: LOD + permalink: /lod + description: Level-of-detail strategies for scene content and rendering. + +frame-budget: + label: Frame budget + permalink: /frame-budget + description: Per-frame time budgets, scheduling, and cost awareness in the render loop. + +benchmarking: + label: Benchmarking + permalink: /benchmarking + description: Performance measurement, profiling, and WASM or engine benchmarks. + +tray: + label: Tray + permalink: /tray + description: Tray-related UX and rendering surfaces (working group). + +scene-graph: + label: Scene graph + permalink: /scene-graph + description: Scene tree structure, traversal, and graph-level concerns. + +format: + label: Format + permalink: /format + description: File and interchange formats (Grida IR, SVG, HTML, Markdown, etc.). + +html: + label: HTML + permalink: /html + description: HTML import, mapping, and web document structure in Grida formats. + +markdown: + label: Markdown + permalink: /markdown + description: Markdown interchange and documentation-as-format topics. + +paint: + label: Paint + permalink: /paint + description: Paint records, display lists, and rasterization-oriented paint pipelines. + +data-layout: + label: Data layout + permalink: /data-layout + description: Memory layout, SoA/AoS, and property storage models (e.g. engine research). diff --git a/docs/wg/feat-2d/wasm-load-scene-optimization.md b/docs/wg/feat-2d/wasm-load-scene-optimization.md index aa5030985a..9c54f06f58 100644 --- a/docs/wg/feat-2d/wasm-load-scene-optimization.md +++ b/docs/wg/feat-2d/wasm-load-scene-optimization.md @@ -219,7 +219,7 @@ enum. To eliminate this cost, the split must happen **upstream** — at scene graph construction time — so that geometry-relevant data is never stored inside the monolithic `Node` enum in the first place. -See [docs/wg/research/chromium/node-data-layout.md](../../research/chromium/node-data-layout.md) +See [docs/wg/research/chromium/node-data-layout.md](../research/chromium/node-data-layout.md) for research on Chromium's property tree architecture, which solves exactly this problem by storing properties in separate flat arrays indexed by integer IDs. @@ -257,5 +257,5 @@ Replace `Node` enum with entity-component storage (e.g., archetype-based). **Recommendation: Option A** (split at SceneGraph) as the incremental path, with Option B as the long-term goal once the split maps stabilize. -See [docs/wg/research/chromium/node-data-layout.md](../../research/chromium/node-data-layout.md) +See [docs/wg/research/chromium/node-data-layout.md](../research/chromium/node-data-layout.md) for the full analysis including ECS tradeoffs and mutation considerations. diff --git a/editor/package.json b/editor/package.json index a6b73a2c70..6597cc522e 100644 --- a/editor/package.json +++ b/editor/package.json @@ -234,7 +234,7 @@ "@types/mime-types": "^2.1.4", "@types/ms": "^2.1.0", "@types/negotiator": "^0.6.3", - "@types/node": "^22", + "@types/node": "^24", "@types/papaparse": "^5.3.14", "@types/react": "19.2.8", "@types/react-dom": "19.2.3", diff --git a/package.json b/package.json index 237084a19e..464f70e485 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ }, "devDependencies": { "@changesets/cli": "^2.29.4", - "@types/node": "^22", + "@types/node": "^24", "oxfmt": "^0.44.0", "tsup": "^8.5.0", "tsx": "^4", @@ -28,7 +28,7 @@ }, "resolutions": {}, "engines": { - "node": ">=22.0.0", + "node": ">=24.0.0", "pnpm": ">=10.0.0" }, "packageManager": "pnpm@10.24.0", diff --git a/packages/grida-canvas-transparency-grid/package.json b/packages/grida-canvas-transparency-grid/package.json index 77ddaead46..66555e0138 100644 --- a/packages/grida-canvas-transparency-grid/package.json +++ b/packages/grida-canvas-transparency-grid/package.json @@ -44,7 +44,7 @@ "color-parse": "^2.0.2" }, "devDependencies": { - "@types/node": "^22", + "@types/node": "^24", "@types/react": "^19", "@webgpu/types": "^0.1.60", "react": "^19.0.0" diff --git a/packages/grida-fonts/package.json b/packages/grida-fonts/package.json index 8e9a0a3d2f..cc36e5bad4 100644 --- a/packages/grida-fonts/package.json +++ b/packages/grida-fonts/package.json @@ -54,6 +54,6 @@ "typecheck": "tsc --noEmit" }, "devDependencies": { - "@types/node": "^22" + "@types/node": "^24" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4b8774f699..dacc614029 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -24,10 +24,10 @@ importers: devDependencies: '@changesets/cli': specifier: ^2.29.4 - version: 2.29.8(@types/node@22.19.10) + version: 2.29.8(@types/node@24.12.2) '@types/node': - specifier: ^22 - version: 22.19.10 + specifier: ^24 + version: 24.12.2 oxfmt: specifier: ^0.44.0 version: 0.44.0 @@ -45,7 +45,7 @@ importers: version: 5.9.3 vitest: specifier: ^4 - version: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@22.19.10)(jiti@2.6.1)(jsdom@20.0.3(canvas@2.11.2(encoding@0.1.13)))(lightningcss@1.30.2)(msw@2.12.10(@types/node@22.19.10)(typescript@5.9.3))(terser@5.39.0)(tsx@4.21.0)(yaml@2.7.0) + version: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@24.12.2)(jiti@2.6.1)(jsdom@20.0.3(canvas@2.11.2(encoding@0.1.13)))(lightningcss@1.30.2)(msw@2.12.10(@types/node@24.12.2)(typescript@5.9.3))(terser@5.39.0)(tsx@4.21.0)(yaml@2.7.0) apps/backgrounds: dependencies: @@ -90,8 +90,8 @@ importers: specifier: ^4 version: 4.1.18 '@types/node': - specifier: ^22 - version: 22.19.10 + specifier: ^24 + version: 24.12.2 '@types/react': specifier: 19.1.3 version: 19.1.3 @@ -252,8 +252,8 @@ importers: specifier: ^4 version: 4.1.18 '@types/node': - specifier: ^22 - version: 22.19.10 + specifier: ^24 + version: 24.12.2 '@types/react': specifier: 19.1.3 version: 19.1.3 @@ -281,8 +281,8 @@ importers: crates/grida-canvas-wasm: devDependencies: '@types/node': - specifier: ^22 - version: 22.19.10 + specifier: ^24 + version: 24.12.2 '@webgpu/types': specifier: ^0.1.61 version: 0.1.69 @@ -959,8 +959,8 @@ importers: specifier: ^0.6.3 version: 0.6.4 '@types/node': - specifier: ^22 - version: 22.19.10 + specifier: ^24 + version: 24.12.2 '@types/papaparse': specifier: ^5.3.14 version: 5.5.2 @@ -1008,7 +1008,7 @@ importers: version: 7.5.2 shadcn: specifier: ^3.8.5 - version: 3.8.5(@types/node@22.19.10)(typescript@5.9.3) + version: 3.8.5(@types/node@24.12.2)(typescript@5.9.3) tailwindcss: specifier: ^4 version: 4.1.18 @@ -1214,8 +1214,8 @@ importers: version: 19.2.3(react@19.2.3) devDependencies: '@types/node': - specifier: ^22 - version: 22.19.10 + specifier: ^24 + version: 24.12.2 '@types/react': specifier: 19.1.3 version: 19.1.3 @@ -1240,8 +1240,8 @@ importers: packages/grida-fonts: devDependencies: '@types/node': - specifier: ^22 - version: 22.19.10 + specifier: ^24 + version: 24.12.2 packages/grida-format: dependencies: @@ -1259,7 +1259,7 @@ importers: version: 5.9.3 vitest: specifier: ^4 - version: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@22.19.10)(jiti@2.6.1)(jsdom@20.0.3(canvas@2.11.2(encoding@0.1.13)))(lightningcss@1.30.2)(msw@2.12.10(@types/node@22.19.10)(typescript@5.9.3))(terser@5.39.0)(tsx@4.21.0)(yaml@2.7.0) + version: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@24.12.2)(jiti@2.6.1)(jsdom@20.0.3(canvas@2.11.2(encoding@0.1.13)))(lightningcss@1.30.2)(msw@2.12.10(@types/node@24.12.2)(typescript@5.9.3))(terser@5.39.0)(tsx@4.21.0)(yaml@2.7.0) packages/grida-mixed-properties: dependencies: @@ -6634,6 +6634,9 @@ packages: '@types/node@22.19.10': resolution: {integrity: sha512-tF5VOugLS/EuDlTBijk0MqABfP8UxgYazTLo3uIn3b4yJgg26QRbVYJYsDtHrjdDUIRfP70+VfhTTc+CE1yskw==} + '@types/node@24.12.2': + resolution: {integrity: sha512-A1sre26ke7HDIuY/M23nd9gfB+nrmhtYyMINbjI1zHJxYteKR6qSMX56FsmjMcDb3SMcjJg5BiRRgOCC/yBD0g==} + '@types/offscreencanvas@2019.7.3': resolution: {integrity: sha512-ieXiYmgSRXUDeOntE1InxjWyvEelZGP63M+cGuquuRLuIKKT1osnkXjxev9B7d1nXSug5vpunx+gNlbVxMlC9A==} @@ -14312,6 +14315,9 @@ packages: undici-types@6.21.0: resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} + undici-types@7.16.0: + resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==} + undici@7.18.2: resolution: {integrity: sha512-y+8YjDFzWdQlSE9N5nzKMT3g4a5UBX1HKowfdXh0uvAnTaqqwqB92Jt4UXBAeKekDs5IaDKyJFR4X1gYVCgXcw==} engines: {node: '>=20.18.1'} @@ -16396,7 +16402,7 @@ snapshots: dependencies: '@changesets/types': 6.1.0 - '@changesets/cli@2.29.8(@types/node@22.19.10)': + '@changesets/cli@2.29.8(@types/node@24.12.2)': dependencies: '@changesets/apply-release-plan': 7.0.14 '@changesets/assemble-release-plan': 6.0.9 @@ -16412,7 +16418,7 @@ snapshots: '@changesets/should-skip-package': 0.1.2 '@changesets/types': 6.1.0 '@changesets/write': 0.4.0 - '@inquirer/external-editor': 1.0.3(@types/node@22.19.10) + '@inquirer/external-editor': 1.0.3(@types/node@24.12.2) '@manypkg/get-packages': 1.1.3 ansi-colors: 4.1.3 ci-info: 3.9.0 @@ -18292,38 +18298,38 @@ snapshots: '@inquirer/ansi@1.0.2': {} - '@inquirer/confirm@5.1.21(@types/node@22.19.10)': + '@inquirer/confirm@5.1.21(@types/node@24.12.2)': dependencies: - '@inquirer/core': 10.3.2(@types/node@22.19.10) - '@inquirer/type': 3.0.10(@types/node@22.19.10) + '@inquirer/core': 10.3.2(@types/node@24.12.2) + '@inquirer/type': 3.0.10(@types/node@24.12.2) optionalDependencies: - '@types/node': 22.19.10 + '@types/node': 24.12.2 - '@inquirer/core@10.3.2(@types/node@22.19.10)': + '@inquirer/core@10.3.2(@types/node@24.12.2)': dependencies: '@inquirer/ansi': 1.0.2 '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@22.19.10) + '@inquirer/type': 3.0.10(@types/node@24.12.2) 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': 22.19.10 + '@types/node': 24.12.2 - '@inquirer/external-editor@1.0.3(@types/node@22.19.10)': + '@inquirer/external-editor@1.0.3(@types/node@24.12.2)': dependencies: chardet: 2.1.1 iconv-lite: 0.7.2 optionalDependencies: - '@types/node': 22.19.10 + '@types/node': 24.12.2 '@inquirer/figures@1.0.15': {} - '@inquirer/type@3.0.10(@types/node@22.19.10)': + '@inquirer/type@3.0.10(@types/node@24.12.2)': optionalDependencies: - '@types/node': 22.19.10 + '@types/node': 24.12.2 '@isaacs/cliui@8.0.2': dependencies: @@ -18342,7 +18348,7 @@ snapshots: dependencies: '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 22.19.10 + '@types/node': 24.12.2 '@types/yargs': 15.0.19 chalk: 4.1.2 @@ -18351,7 +18357,7 @@ snapshots: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 22.19.10 + '@types/node': 24.12.2 '@types/yargs': 17.0.33 chalk: 4.1.2 @@ -21318,11 +21324,11 @@ snapshots: '@types/body-parser@1.19.5': dependencies: '@types/connect': 3.4.38 - '@types/node': 22.19.10 + '@types/node': 24.12.2 '@types/bonjour@3.5.13': dependencies: - '@types/node': 22.19.10 + '@types/node': 24.12.2 '@types/canvas-confetti@1.9.0': {} @@ -21334,11 +21340,11 @@ snapshots: '@types/connect-history-api-fallback@1.5.4': dependencies: '@types/express-serve-static-core': 5.0.6 - '@types/node': 22.19.10 + '@types/node': 24.12.2 '@types/connect@3.4.38': dependencies: - '@types/node': 22.19.10 + '@types/node': 24.12.2 '@types/core-js@2.5.8': {} @@ -21527,14 +21533,14 @@ snapshots: '@types/express-serve-static-core@4.19.6': dependencies: - '@types/node': 22.19.10 + '@types/node': 24.12.2 '@types/qs': 6.9.18 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 '@types/express-serve-static-core@5.0.6': dependencies: - '@types/node': 22.19.10 + '@types/node': 24.12.2 '@types/qs': 6.9.18 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -21570,7 +21576,7 @@ snapshots: '@types/http-proxy@1.17.16': dependencies: - '@types/node': 22.19.10 + '@types/node': 24.12.2 '@types/istanbul-lib-coverage@2.0.6': {} @@ -21621,7 +21627,7 @@ snapshots: '@types/mysql@2.15.27': dependencies: - '@types/node': 22.19.10 + '@types/node': 24.12.2 '@types/negotiator@0.6.4': {} @@ -21633,13 +21639,17 @@ snapshots: dependencies: undici-types: 6.21.0 + '@types/node@24.12.2': + dependencies: + undici-types: 7.16.0 + '@types/offscreencanvas@2019.7.3': {} '@types/pako@2.0.3': {} '@types/papaparse@5.5.2': dependencies: - '@types/node': 22.19.10 + '@types/node': 24.12.2 '@types/parse-json@4.0.2': {} @@ -21651,7 +21661,7 @@ snapshots: '@types/pg@8.15.6': dependencies: - '@types/node': 22.19.10 + '@types/node': 24.12.2 pg-protocol: 1.11.0 pg-types: 2.2.0 @@ -21700,14 +21710,14 @@ snapshots: '@types/sax@1.2.7': dependencies: - '@types/node': 22.19.10 + '@types/node': 24.12.2 '@types/semver@7.7.1': {} '@types/send@0.17.4': dependencies: '@types/mime': 1.3.5 - '@types/node': 22.19.10 + '@types/node': 24.12.2 '@types/serve-index@1.9.4': dependencies: @@ -21716,12 +21726,12 @@ snapshots: '@types/serve-static@1.15.7': dependencies: '@types/http-errors': 2.0.4 - '@types/node': 22.19.10 + '@types/node': 24.12.2 '@types/send': 0.17.4 '@types/sockjs@0.3.36': dependencies: - '@types/node': 22.19.10 + '@types/node': 24.12.2 '@types/stats.js@0.17.4': {} @@ -21735,7 +21745,7 @@ snapshots: '@types/tedious@4.0.14': dependencies: - '@types/node': 22.19.10 + '@types/node': 24.12.2 '@types/three@0.170.0': dependencies: @@ -21771,7 +21781,7 @@ snapshots: '@types/ws@8.18.1': dependencies: - '@types/node': 22.19.10 + '@types/node': 24.12.2 '@types/yargs-parser@21.0.3': {} @@ -22319,14 +22329,14 @@ snapshots: chai: 6.2.2 tinyrainbow: 3.0.3 - '@vitest/mocker@4.0.18(msw@2.12.10(@types/node@22.19.10)(typescript@5.9.3))(vite@7.3.0(@types/node@22.19.10)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.39.0)(tsx@4.21.0)(yaml@2.7.0))': + '@vitest/mocker@4.0.18(msw@2.12.10(@types/node@24.12.2)(typescript@5.9.3))(vite@7.3.0(@types/node@24.12.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.39.0)(tsx@4.21.0)(yaml@2.7.0))': dependencies: '@vitest/spy': 4.0.18 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - msw: 2.12.10(@types/node@22.19.10)(typescript@5.9.3) - vite: 7.3.0(@types/node@22.19.10)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.39.0)(tsx@4.21.0)(yaml@2.7.0) + msw: 2.12.10(@types/node@24.12.2)(typescript@5.9.3) + vite: 7.3.0(@types/node@24.12.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.39.0)(tsx@4.21.0)(yaml@2.7.0) '@vitest/pretty-format@4.0.18': dependencies: @@ -24893,7 +24903,7 @@ snapshots: eval@0.1.8: dependencies: - '@types/node': 22.19.10 + '@types/node': 24.12.2 require-like: 0.1.2 event-target-shim@5.0.1: @@ -26368,7 +26378,7 @@ snapshots: jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 22.19.10 + '@types/node': 24.12.2 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -26376,13 +26386,13 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 22.19.10 + '@types/node': 24.12.2 merge-stream: 2.0.0 supports-color: 8.1.1 jest-worker@29.7.0: dependencies: - '@types/node': 22.19.10 + '@types/node': 24.12.2 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -27613,9 +27623,9 @@ snapshots: ms@2.1.3: {} - msw@2.12.10(@types/node@22.19.10)(typescript@5.9.3): + msw@2.12.10(@types/node@24.12.2)(typescript@5.9.3): dependencies: - '@inquirer/confirm': 5.1.21(@types/node@22.19.10) + '@inquirer/confirm': 5.1.21(@types/node@24.12.2) '@mswjs/interceptors': 0.41.3 '@open-draft/deferred-promise': 2.2.0 '@types/statuses': 2.0.6 @@ -30167,7 +30177,7 @@ snapshots: setprototypeof@1.2.0: {} - shadcn@3.8.5(@types/node@22.19.10)(typescript@5.9.3): + shadcn@3.8.5(@types/node@24.12.2)(typescript@5.9.3): dependencies: '@antfu/ni': 25.0.0 '@babel/core': 7.29.0 @@ -30189,7 +30199,7 @@ snapshots: fuzzysort: 3.1.0 https-proxy-agent: 7.0.6 kleur: 4.1.5 - msw: 2.12.10(@types/node@22.19.10)(typescript@5.9.3) + msw: 2.12.10(@types/node@24.12.2)(typescript@5.9.3) node-fetch: 3.3.2 open: 11.0.0 ora: 8.2.0 @@ -31205,6 +31215,8 @@ snapshots: undici-types@6.21.0: {} + undici-types@7.16.0: {} + undici@7.18.2: {} unenv@2.0.0-rc.24: @@ -31490,7 +31502,7 @@ snapshots: d3-time: 3.1.0 d3-timer: 3.0.1 - vite@7.3.0(@types/node@22.19.10)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.39.0)(tsx@4.21.0)(yaml@2.7.0): + vite@7.3.0(@types/node@24.12.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.39.0)(tsx@4.21.0)(yaml@2.7.0): dependencies: esbuild: 0.27.3 fdir: 6.5.0(picomatch@4.0.3) @@ -31499,7 +31511,7 @@ snapshots: rollup: 4.53.5 tinyglobby: 0.2.15 optionalDependencies: - '@types/node': 22.19.10 + '@types/node': 24.12.2 fsevents: 2.3.3 jiti: 2.6.1 lightningcss: 1.30.2 @@ -31507,10 +31519,10 @@ snapshots: tsx: 4.21.0 yaml: 2.7.0 - vitest@4.0.18(@opentelemetry/api@1.9.0)(@types/node@22.19.10)(jiti@2.6.1)(jsdom@20.0.3(canvas@2.11.2(encoding@0.1.13)))(lightningcss@1.30.2)(msw@2.12.10(@types/node@22.19.10)(typescript@5.9.3))(terser@5.39.0)(tsx@4.21.0)(yaml@2.7.0): + vitest@4.0.18(@opentelemetry/api@1.9.0)(@types/node@24.12.2)(jiti@2.6.1)(jsdom@20.0.3(canvas@2.11.2(encoding@0.1.13)))(lightningcss@1.30.2)(msw@2.12.10(@types/node@24.12.2)(typescript@5.9.3))(terser@5.39.0)(tsx@4.21.0)(yaml@2.7.0): dependencies: '@vitest/expect': 4.0.18 - '@vitest/mocker': 4.0.18(msw@2.12.10(@types/node@22.19.10)(typescript@5.9.3))(vite@7.3.0(@types/node@22.19.10)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.39.0)(tsx@4.21.0)(yaml@2.7.0)) + '@vitest/mocker': 4.0.18(msw@2.12.10(@types/node@24.12.2)(typescript@5.9.3))(vite@7.3.0(@types/node@24.12.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.39.0)(tsx@4.21.0)(yaml@2.7.0)) '@vitest/pretty-format': 4.0.18 '@vitest/runner': 4.0.18 '@vitest/snapshot': 4.0.18 @@ -31527,11 +31539,11 @@ snapshots: tinyexec: 1.0.2 tinyglobby: 0.2.15 tinyrainbow: 3.0.3 - vite: 7.3.0(@types/node@22.19.10)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.39.0)(tsx@4.21.0)(yaml@2.7.0) + vite: 7.3.0(@types/node@24.12.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.39.0)(tsx@4.21.0)(yaml@2.7.0) why-is-node-running: 2.3.0 optionalDependencies: '@opentelemetry/api': 1.9.0 - '@types/node': 22.19.10 + '@types/node': 24.12.2 jsdom: 20.0.3(canvas@2.11.2(encoding@0.1.13)) transitivePeerDependencies: - jiti