From 6887e5704bc0943f9af21105cb6f5ebed0f97df9 Mon Sep 17 00:00:00 2001 From: Ravi Madabhushi Date: Thu, 23 Apr 2026 14:20:28 +0530 Subject: [PATCH 01/36] chore: update package.json with packageManager field and dependency cleanup - Add packageManager field to specify pnpm version - Remove husky (project uses simple-git-hooks) - Move pnpm, @types/react, @types/react-dom to devDependencies --- package.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index c263e40be..242a0070c 100644 --- a/package.json +++ b/package.json @@ -2,6 +2,7 @@ "name": "scalekit-docs", "type": "module", "version": "2.0.0", + "packageManager": "pnpm@10.33.0", "scripts": { "dev": "netlify dev:exec pnpm run start", "start": "cross-env NETLIFY_DEV=1 astro dev", @@ -37,8 +38,6 @@ "@scalar/api-reference": "^1.52.3", "@scalar/astro": "^0.2.8", "@tailwindcss/vite": "^4.2.2", - "@types/react": "^19.2.14", - "@types/react-dom": "^19.2.3", "@usesapient/agent-tracker": "^0.1.1", "accessible-astro-components": "^5.2.0", "astro": "^5.18.1", @@ -47,7 +46,6 @@ "astro-og-canvas": "^0.10.1", "canvaskit-wasm": "0.40.0", "jose": "^6.2.2", - "pnpm": "^10.33.0", "react": "^19.2.5", "react-dom": "^19.2.5", "sharp": "^0.34.5", @@ -69,11 +67,13 @@ }, "devDependencies": { "@scalar/openapi-to-markdown": "^0.4.16", + "@types/react": "^19.2.14", + "@types/react-dom": "^19.2.3", "@vitejs/plugin-vue": "^6.0.6", "cross-env": "^10.1.0", "dotenv": "^17.4.2", - "husky": "^9.1.7", "netlify-cli": "^25.0.1", + "pnpm": "^10.33.0", "prettier": "^3.8.3", "prettier-plugin-astro": "^0.14.1", "prettier-plugin-tailwindcss": "^0.7.2", From c82ee419166ba7bf68d1df2bbd2f903cfa91f603 Mon Sep 17 00:00:00 2001 From: Ravi Madabhushi Date: Thu, 23 Apr 2026 14:32:04 +0530 Subject: [PATCH 02/36] build(deps): update pnpm to 10.33.1 and bump patch versions - Add simple-git-hooks to pnpm.onlyBuiltDependencies (silences install warning) - Update packageManager field to pnpm@10.33.1 - Patch-level bumps: @astrojs/react, @iconify/json, @scalar/api-reference, @scalar/astro, @scalar/openapi-to-markdown, @tailwindcss/vite, tailwindcss, vue, netlify-cli, pnpm --- package.json | 25 +- pnpm-lock.yaml | 1014 ++++++++++++++++++------------------------------ 2 files changed, 387 insertions(+), 652 deletions(-) diff --git a/package.json b/package.json index 242a0070c..a24eb56a3 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "scalekit-docs", "type": "module", "version": "2.0.0", - "packageManager": "pnpm@10.33.0", + "packageManager": "pnpm@10.33.1", "scripts": { "dev": "netlify dev:exec pnpm run start", "start": "cross-env NETLIFY_DEV=1 astro dev", @@ -22,7 +22,7 @@ "dependencies": { "@astrojs/mdx": "^4.3.14", "@astrojs/netlify": "^6.6.5", - "@astrojs/react": "^5.0.3", + "@astrojs/react": "^5.0.4", "@astrojs/starlight": "^0.37.7", "@astrojs/starlight-docsearch": "file:vendor/docsearch", "@astrojs/starlight-tailwind": "^4.0.2", @@ -34,10 +34,10 @@ "@fontsource-variable/outfit": "^5.2.8", "@fontsource/jetbrains-mono": "^5.2.8", "@hideoo/starlight-plugins-docs-components": "^0.4.2", - "@iconify/json": "^2.2.463", - "@scalar/api-reference": "^1.52.3", - "@scalar/astro": "^0.2.8", - "@tailwindcss/vite": "^4.2.2", + "@iconify/json": "^2.2.465", + "@scalar/api-reference": "^1.52.5", + "@scalar/astro": "^0.2.9", + "@tailwindcss/vite": "^4.2.4", "@usesapient/agent-tracker": "^0.1.1", "accessible-astro-components": "^5.2.0", "astro": "^5.18.1", @@ -61,19 +61,19 @@ "starlight-sidebar-topics-dropdown": "^0.5.4", "starlight-theme-nova": "^0.11.9", "starlight-videos": "^0.3.1", - "tailwindcss": "^4.2.2", + "tailwindcss": "^4.2.4", "unplugin-icons": "^23.0.1", - "vue": "^3.5.32" + "vue": "^3.5.33" }, "devDependencies": { - "@scalar/openapi-to-markdown": "^0.4.16", + "@scalar/openapi-to-markdown": "^0.5.6", "@types/react": "^19.2.14", "@types/react-dom": "^19.2.3", "@vitejs/plugin-vue": "^6.0.6", "cross-env": "^10.1.0", "dotenv": "^17.4.2", - "netlify-cli": "^25.0.1", - "pnpm": "^10.33.0", + "netlify-cli": "^25.3.0", + "pnpm": "^10.33.1", "prettier": "^3.8.3", "prettier-plugin-astro": "^0.14.1", "prettier-plugin-tailwindcss": "^0.7.2", @@ -88,7 +88,8 @@ "sharp", "esbuild", "@parcel/watcher", - "netlify-cli" + "netlify-cli", + "simple-git-hooks" ], "overrides": { "@astrojs/starlight-docsearch": "file:./vendor/docsearch", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0e43abb74..083dda0ee 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -25,8 +25,8 @@ importers: specifier: ^6.6.5 version: 6.6.5(@types/node@25.6.0)(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3))(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(yaml@2.8.3) '@astrojs/react': - specifier: ^5.0.3 - version: 5.0.3(@types/node@25.6.0)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(jiti@2.6.1)(lightningcss@1.32.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(terser@5.46.1)(yaml@2.8.3) + specifier: ^5.0.4 + version: 5.0.4(@types/node@25.6.0)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(jiti@2.6.1)(lightningcss@1.32.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(terser@5.46.1)(yaml@2.8.3) '@astrojs/starlight': specifier: ^0.37.7 version: 0.37.7(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)) @@ -35,10 +35,10 @@ importers: version: file:vendor/docsearch(@astrojs/starlight@0.37.7(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3))) '@astrojs/starlight-tailwind': specifier: ^4.0.2 - version: 4.0.2(@astrojs/starlight@0.37.7(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)))(tailwindcss@4.2.2) + version: 4.0.2(@astrojs/starlight@0.37.7(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)))(tailwindcss@4.2.4) '@astrojs/vue': specifier: ^5.1.4 - version: 5.1.4(@types/node@25.6.0)(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3))(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(vue@3.5.32(typescript@5.9.3))(yaml@2.8.3) + version: 5.1.4(@types/node@25.6.0)(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3))(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(vue@3.5.33(typescript@5.9.3))(yaml@2.8.3) '@expressive-code/plugin-collapsible-sections': specifier: ^0.41.7 version: 0.41.7 @@ -61,23 +61,17 @@ importers: specifier: ^0.4.2 version: 0.4.2(@astrojs/starlight@0.37.7(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3))) '@iconify/json': - specifier: ^2.2.463 - version: 2.2.463 + specifier: ^2.2.465 + version: 2.2.465 '@scalar/api-reference': - specifier: ^1.52.3 - version: 1.52.3(@vue/compiler-sfc@3.5.32)(jwt-decode@4.0.0)(tailwindcss@4.2.2)(typescript@5.9.3) + specifier: ^1.52.5 + version: 1.52.5(@vue/compiler-sfc@3.5.33)(jwt-decode@4.0.0)(tailwindcss@4.2.4)(typescript@5.9.3) '@scalar/astro': - specifier: ^0.2.8 - version: 0.2.8(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)) + specifier: ^0.2.9 + version: 0.2.9(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)) '@tailwindcss/vite': - specifier: ^4.2.2 - version: 4.2.2(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3)) - '@types/react': - specifier: ^19.2.14 - version: 19.2.14 - '@types/react-dom': - specifier: ^19.2.3 - version: 19.2.3(@types/react@19.2.14) + specifier: ^4.2.4 + version: 4.2.4(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3)) '@usesapient/agent-tracker': specifier: ^0.1.1 version: 0.1.1 @@ -102,9 +96,6 @@ importers: jose: specifier: ^6.2.2 version: 6.2.2 - pnpm: - specifier: ^10.33.0 - version: 10.33.0 react: specifier: ^19.2.5 version: 19.2.5 @@ -151,33 +142,39 @@ importers: specifier: ^0.3.1 version: 0.3.1(@astrojs/starlight@0.37.7(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3))) tailwindcss: - specifier: ^4.2.2 - version: 4.2.2 + specifier: ^4.2.4 + version: 4.2.4 unplugin-icons: specifier: ^23.0.1 - version: 23.0.1(@vue/compiler-sfc@3.5.32) + version: 23.0.1(@vue/compiler-sfc@3.5.33) vue: - specifier: ^3.5.32 - version: 3.5.32(typescript@5.9.3) + specifier: ^3.5.33 + version: 3.5.33(typescript@5.9.3) devDependencies: '@scalar/openapi-to-markdown': - specifier: ^0.4.16 - version: 0.4.16(typescript@5.9.3) + specifier: ^0.5.6 + version: 0.5.6(typescript@5.9.3) + '@types/react': + specifier: ^19.2.14 + version: 19.2.14 + '@types/react-dom': + specifier: ^19.2.3 + version: 19.2.3(@types/react@19.2.14) '@vitejs/plugin-vue': specifier: ^6.0.6 - version: 6.0.6(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3))(vue@3.5.32(typescript@5.9.3)) + version: 6.0.6(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3))(vue@3.5.33(typescript@5.9.3)) cross-env: specifier: ^10.1.0 version: 10.1.0 dotenv: specifier: ^17.4.2 version: 17.4.2 - husky: - specifier: ^9.1.7 - version: 9.1.7 netlify-cli: - specifier: ^25.0.1 - version: 25.0.1(@types/node@25.6.0)(picomatch@4.0.4)(rollup@4.60.1) + specifier: ^25.3.0 + version: 25.3.0(@types/node@25.6.0)(picomatch@4.0.4)(rollup@4.60.1) + pnpm: + specifier: ^10.33.1 + version: 10.33.1 prettier: specifier: ^3.8.3 version: 3.8.3 @@ -261,8 +258,8 @@ packages: '@astrojs/internal-helpers@0.7.6': resolution: {integrity: sha512-GOle7smBWKfMSP8osUIGOlB5kaHdQLV3foCsf+5Q9Wsuu+C6Fs3Ez/ttXmhjZ1HkSgsogcM1RXSjjOVieHq16Q==} - '@astrojs/internal-helpers@0.8.0': - resolution: {integrity: sha512-J56GrhEiV+4dmrGLPNOl2pZjpHXAndWVyiVDYGDuw6MWKpBSEMLdFxHzeM/6sqaknw9M+HFfHZAcvi3OfT3D/w==} + '@astrojs/internal-helpers@0.9.0': + resolution: {integrity: sha512-GdYkzR26re8izmyYlBqf4z2s7zNngmWLFuxw0UKiPNqHraZGS6GKWIwSHgS22RDlu2ePFJ8bzmpBcUszut/SDg==} '@astrojs/markdown-remark@6.3.11': resolution: {integrity: sha512-hcaxX/5aC6lQgHeGh1i+aauvSwIT6cfyFjKWvExYSxUhZZBBdvCliOtu06gbQyhbe0pGJNoNmqNlQZ5zYUuIyQ==} @@ -282,8 +279,8 @@ packages: resolution: {integrity: sha512-q8VwfU/fDZNoDOf+r7jUnMC2//H2l0TuQ6FkGJL8vD8nw/q5KiL3DS1KKBI3QhI9UQhpJ5dc7AtqfbXWuOgLCQ==} engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0} - '@astrojs/react@5.0.3': - resolution: {integrity: sha512-z6JXjgADH4/7e0hqcRj+dO9UQlrKmsm2ZJoVT1GzOTYY0ThQ3Znpfr8tY8XKlEHWSTUlT9LP5u4v6QpEJwLz5A==} + '@astrojs/react@5.0.4': + resolution: {integrity: sha512-yDNE4VnKOzCjH9dCBi7pT4F6kpI3M9TkS+uxnCB0sGIS6t5vKonOY+Hs/UUnSajJGT5jeBRfpI9IQp+r/n1fBA==} engines: {node: '>=22.12.0'} peerDependencies: '@types/react': ^17.0.50 || ^18.0.21 || ^19.0.0 @@ -1147,8 +1144,8 @@ packages: '@iarna/toml@2.2.5': resolution: {integrity: sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==} - '@iconify/json@2.2.463': - resolution: {integrity: sha512-VZ0n+99OWe9677b04KPF0NajDbFEyWNxMalXZA/4j8HrqyVvY+N1XN/EIER4ceQlKQJ501w9UxLJZjZ5mga0xA==} + '@iconify/json@2.2.465': + resolution: {integrity: sha512-5N335QKo4ESk2uohTgzcL19Pdw2ECOQl9ho+5MdDE9FdSLzU4PdjHiypqR/34NpIiq8mjzNgEgwlEsrLLgzikw==} '@iconify/types@2.0.0': resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} @@ -2209,132 +2206,76 @@ packages: cpu: [x64] os: [win32] - '@scalar/agent-chat@0.10.5': - resolution: {integrity: sha512-t+4Yc8vJv8jvBFZaWsEo0QUo2BQee6LUBnU8me0SeFp0Q6BCUpuxSLXqCpftjIw/1xRVzFThIzKzfpcb4Jq2Kg==} + '@scalar/agent-chat@0.10.7': + resolution: {integrity: sha512-Sm0Jtj1Eq3B7GRdbZxLivPZZ+z/k9Pz5H+MUbffBQqRIoT4lPx/RREDEuF2beIxmJejAY5de4qFpm3/6a5lNtg==} engines: {node: '>=22'} - '@scalar/api-client@3.1.0': - resolution: {integrity: sha512-r7uc0V34lu//sRoveULHr+TF447lATrDTHMjTHdxuK4zxlDWpXB3v9kVYCoxhbAEYWTQSwKBS+I4iRhDvweLBA==} + '@scalar/api-client@3.2.1': + resolution: {integrity: sha512-T5glnUyQfUdbTp6qIpuq0Xu3b5f6E+naPIWv7ruk5BYMnjGrm/O01GYKPRwVSrBGVJcnYbJRsKWAJZ/tRmVEEQ==} engines: {node: '>=22'} - '@scalar/api-reference@1.52.3': - resolution: {integrity: sha512-8DI46vnQ9Ae49dUeqL+LFEvYByuY6o7QH1vM1U8k1plvcez2UlhsT8NaPvyBFgVWeJkkxD8aQ+iJ3lym2BIyYg==} + '@scalar/api-reference@1.52.5': + resolution: {integrity: sha512-wfZdL+sHfTJyN/AwOoOBy0hOGoytEa+8qx3LM/emnPI/3Hvkd6RqE/RX/tunPV9Uo90wi9LYr01sDLJZiN1yVQ==} engines: {node: '>=22'} - '@scalar/astro@0.2.8': - resolution: {integrity: sha512-qCVG7Occs0TM+45SiL/0ANE+0jnKi3EaLH+awcWAwNhkjUFqnkmN4Z6qmB1+Hl2+N2qiJ+g0fyBLyHfAo6Y3XA==} + '@scalar/astro@0.2.9': + resolution: {integrity: sha512-KOmQMAolj3vkvHXnLmKY3kL8q2/yml2gsY0s6Mn3Wr372xPIiF+CTuWoog3z4BU+VlvEgTdpltq0cIl53yyEHg==} engines: {node: '>=22'} peerDependencies: astro: ^4.0.0 || ^5.0.0 - '@scalar/client-side-rendering@0.1.1': - resolution: {integrity: sha512-ACASA/nQAC6HXQTIkkBlvCFxUN9xfCy3Zdgo75rw8jzUqsxRIpTuucR7r9VW1bO/N4qsgEQumC4hK4ESCMdZmQ==} - engines: {node: '>=22'} - - '@scalar/code-highlight@0.3.1': - resolution: {integrity: sha512-2nUHEssDMBJ52r5D9IhqcB+3cMuVmBP9s77pwRGd8Lj6Qa/R8Pzxqcv9jNbS7uYilNSNCZ5NbgR7Efh66qHLag==} + '@scalar/client-side-rendering@0.1.2': + resolution: {integrity: sha512-gX2QIc+lpErO9RWkJmt02sBZoCOjyZ7EiLLEyGj7x9UKkk7E4zj6Wbk1eUPo6i3oIwhtZ+Vybj/xzexCK2bxwA==} engines: {node: '>=22'} '@scalar/code-highlight@0.3.3': resolution: {integrity: sha512-33XJBofu94qGu9lvprNs0dHi4ygCSp47xcTqwlWCBR+iq08PA+fPcypMHfwIW72S2j+X7qNW+eNwAyMtFQ1wnw==} engines: {node: '>=22'} - '@scalar/components@0.21.2': - resolution: {integrity: sha512-KDI2fBg+c3akUqYn8hU9a63+GVLyegeeI01oWGKWVMxIIQzs0LRPZc0CaMe8bRsLU+BO3xCQl+5AhXQAZUklLg==} - engines: {node: '>=22'} - - '@scalar/components@0.22.1': - resolution: {integrity: sha512-ymlKvHkXw0/HIGsR6XVUO5TdVJ79/TT4wt73ZL0JbAnsb5xN8DcaZfNkwh6Q97EbUJ2PAN7nNAnzGPu4ya4yyw==} - engines: {node: '>=22'} - - '@scalar/core@0.5.1': - resolution: {integrity: sha512-LvH4m502KjEICn7d6lG28fU2TT5AIAJN/czpnx1wusLei2EAgVeEfy0Gkr/kQy+lU215fockVngcvOktYb6KrA==} - engines: {node: '>=22'} - - '@scalar/helpers@0.4.2': - resolution: {integrity: sha512-IrgrGVSahCfYDNWITazz4Q1BOndp5eEzlimRkfxiYn++KqeWyLfALyym1omqcdKGYtiSx1KIbKaUJL9vkjaN7w==} - engines: {node: '>=22'} - - '@scalar/helpers@0.5.0': - resolution: {integrity: sha512-S7m46UWqngUmDXuihUerNKS58vlUqF/qaXle3QREfc8Xh9wperAKxFmmxrnulAayrcCQ/fTJyGu5oSM2STlxkA==} + '@scalar/components@0.22.2': + resolution: {integrity: sha512-22SAwKUn8rpHu+ywSeSHhsyltjguW+BJN/sWja6COJY2x2RdJZr/A5YoHSfj+LUVHZCKlVqCbbctL4fS4uZgPw==} engines: {node: '>=22'} '@scalar/helpers@0.5.1': resolution: {integrity: sha512-9VvPfv8b+YZVIFwR3SWeq4Y8ij/kU3/kf2M6NKcbf2iVyh63d8s0ssap5m/nOhiz/Puidv/29MAJlJCA0LRssA==} engines: {node: '>=22'} - '@scalar/icons@0.7.1': - resolution: {integrity: sha512-z6ZlhZ6WOvUxQH6h28TblrWR1xP/AmKmg3nGnC8KbJf400MQY4q3ePDm4PGbPwua79I/4yAAH3QcMZQkg3GwTg==} - engines: {node: '>=22'} - '@scalar/icons@0.7.2': resolution: {integrity: sha512-21L2y/D6oU7wZHHa9i6FK98cZ+XH4HX9+e69uNpvlp4awRUpz6ifNHOLlxI607bq+Yz4G313gnV0uyUHwZ/pig==} engines: {node: '>=22'} - '@scalar/json-magic@0.12.4': - resolution: {integrity: sha512-ZsJM+y9SOVjRL+g9Tr/jFEodcYPfHSt5ZRrpbeGDK71yTvSZw41A3UJ7Bg+RXM8JJWRYcJkYVkzrmbb/ig7qlA==} - engines: {node: '>=22'} - '@scalar/json-magic@0.12.7': resolution: {integrity: sha512-GD7BdZzlkCjNwRxGjsg5TmsFqNKWVuUjIfEUeTux2BqCarToqsU29HzwdA1Z9RZSeG3e4G46ogMVHRID9cmAnQ==} engines: {node: '>=22'} - '@scalar/oas-utils@0.10.14': - resolution: {integrity: sha512-A5sS/tTRvelMxnxwVAh5ZRflZ04118+GunquvG9ug8gpDukuW4p5WRUB9o+QZdMTi4NUKJ+fokITKNDuY9CfcA==} + '@scalar/oas-utils@0.13.1': + resolution: {integrity: sha512-JeYQMedp+jNxxpxZ4PSgujdQBaEsn3Zx6qyDBJJgSvfqxyU0YMwIvIl8r1A0M2g18JKRbp5j30LjlMvYrgHLcg==} engines: {node: '>=22'} - '@scalar/oas-utils@0.13.0': - resolution: {integrity: sha512-TwHii2vp+ZkdYBtsmEIDRknzXq91Sexb5CzwwcMYsaBWsoRebA6XRHnvODoN3SMc/+j4pYu4HNj905hNtsNjIw==} + '@scalar/openapi-to-markdown@0.5.6': + resolution: {integrity: sha512-uc2boJNE79HFBiPRbW6W65Gpq9hrz/Br7Y61y88Y4fmD3fVt6TgW4S/MuV+jyV5IwVBDZqGe3CEemgippiyMvA==} engines: {node: '>=22'} - '@scalar/object-utils@1.3.3': - resolution: {integrity: sha512-8BvTy3d5CpF7nZjexgRDZ+TfAuv+biqvb9mJDV4UuWYMhLPZWKio0G+vcAB+8Rq3hrVrY+y9Yeha6OBz39NgVw==} + '@scalar/openapi-types@0.8.0': + resolution: {integrity: sha512-WmaxVSfvY5K/TwcG2B2TU1WOe1As1uc2s7myswtP6dBlcjU3hM08SApxv/jmyGaCE8t4gO5BBhmHY4pDUfmr2g==} engines: {node: '>=22'} - '@scalar/openapi-parser@0.25.7': - resolution: {integrity: sha512-Zfagv2wEprukR3Y2zKS2qcepX1n4u1uan1jpnj3tROrWG4bFAT6TULo0cobuiPgs6YROd5sIhN64wTboA2llcg==} + '@scalar/openapi-upgrader@0.2.6': + resolution: {integrity: sha512-pvEmfSCDNYR4+lygidUqfo+shzyp4OSh9+UgK110rzA8Oot6WbJBM03Fuq3M255G7G6R9iXyfsebB7MBUocPkw==} engines: {node: '>=22'} - '@scalar/openapi-to-markdown@0.4.16': - resolution: {integrity: sha512-yNfRgceCHmeNJ8Ba0az0xSk/kNbC9yjRbD50smFKgjRkao5F6P5MjHrVNqQllJ1aNSyN3g67KRMHxeadqps+rw==} + '@scalar/postman-to-openapi@0.7.0': + resolution: {integrity: sha512-ar6ChdR5ps0JNygABxX3qhVyw/9TwgFzroqttI5O6Bgy/DQhcaqdkOlx53Xe7WeRYgptAu/TxNGGdAnLPCntCg==} engines: {node: '>=22'} - '@scalar/openapi-types@0.6.1': - resolution: {integrity: sha512-P1RvyTFN0vRSL136OqWjlZfSFjY9JoJfuD6LM1mIjoocfwmqX3WuzsFEFX6hAeeDlTh6gjbiy+OdhSee8GFfSA==} - engines: {node: '>=22'} - - '@scalar/openapi-types@0.7.0': - resolution: {integrity: sha512-kN0PwlJW0de4bwQ4ib+mBHzKJUvBCyR/gwU4zLEq6SCbj+GfgYUh+2a0/yl1WYVUiSkkwFsHjfmQ8KjhR3HK0Q==} - engines: {node: '>=22'} - - '@scalar/openapi-upgrader@0.2.3': - resolution: {integrity: sha512-h8Orhztvd4hivrxoj809nTw3TOKY0al8cB0wXWHR6fZvI9UtsQchkDgXw1FfGMZstgKcDD6W3PHg98frwpFezg==} - engines: {node: '>=22'} - - '@scalar/openapi-upgrader@0.2.5': - resolution: {integrity: sha512-Nmfwx9JpH4hPnbWV2NOzQ+bz1VTHEPlnIvkBF8Q8coW+TCBHmQzuM8hHzJp5NicX0UAZCT62X7+QzBUsVUlX0w==} - engines: {node: '>=22'} - - '@scalar/postman-to-openapi@0.6.3': - resolution: {integrity: sha512-Y/tMuRZG34wEfpTxDfXFp5o2X3ibb5ojGWupGJ9ZxkThCx7rOGydnszJPzEbgDK3eF6nJ6UuE7bCTpIEutYnPw==} - engines: {node: '>=22'} - - '@scalar/sidebar@0.9.2': - resolution: {integrity: sha512-ffeY5iyedSCTDT26VUlzRw6+pYYlngfaJV+JinJNQST8mVYbbXOMIb2Cgy6f0i+8LLgl+L9dw3+wFoWxlcJQ4A==} - engines: {node: '>=22'} - - '@scalar/snippetz@0.7.7': - resolution: {integrity: sha512-TCW900YpkscT0/sy4s8Zvakp9dqH27KPYWe/EC9rLu0h66tG3jHXELULehLJWI+M05g1nbtuJs0Z3pVvEX1IJg==} + '@scalar/sidebar@0.9.3': + resolution: {integrity: sha512-8YXiidQ6CbLK/4i6xj82uJ2rOTlnI0xp2YLcJzQlI/4y0eSuSNyy2WjLOTtxDQm6m9coCfWfgLUAeci/JpSjJQ==} engines: {node: '>=22'} '@scalar/snippetz@0.9.1': resolution: {integrity: sha512-2AipHEdeTr68F0zXHHtXukwtWYAoqqreN5IkVJBBrNzNRvUZfXa6vKHA/fTraPCzS3R6Vl2L4ZTcTfGSop2puw==} engines: {node: '>=22'} - '@scalar/themes@0.15.1': - resolution: {integrity: sha512-+UtMhokjshg+FJwOFIAIMlrn2/k6FC/Otd9QSL0unW7doP+vGY3nMXpyfQ18mNU4Tok8/nbLtfXHONxRIJgQHQ==} - engines: {node: '>=22'} - '@scalar/themes@0.15.3': resolution: {integrity: sha512-KIGMVglWKxVcdPsdjiXDgyAYhCh53w0qoKRG/cmfP+N4OwR0pk0WzFaMzBscu+sKoZ8SMvZqbXyODO5CBtyD3w==} engines: {node: '>=22'} @@ -2342,14 +2283,6 @@ packages: '@scalar/typebox@0.1.3': resolution: {integrity: sha512-lU055AUccECZMIfGA0z/C1StYmboAYIPJLDFBzOO81yXBi35Pxdq+I4fWX6iUZ8qcoHneiLGk9jAUM1rA93iEg==} - '@scalar/types@0.7.5': - resolution: {integrity: sha512-LUR/+nNpHfMbGCqTnrzyRlgRTC4FMyyqwCYCFYVs57gkEWzmXnrx+r3+igrWtuZoK/Hsr+ffFMzbBvmxnTFH7g==} - engines: {node: '>=22'} - - '@scalar/types@0.9.0': - resolution: {integrity: sha512-SJNI2f2ZEsN+Cp7o4rAjPu2nFRFXdSkO1ocG9rzynhJhbMBniHnbkCAe19QT/iHMvSCXfj8J8qDOn2S+TnMymg==} - engines: {node: '>=22'} - '@scalar/types@0.9.1': resolution: {integrity: sha512-3EbkhtQc+XuDE8Ur1MPosM3YTACFIFNba4M3vGulqv8jcvhMXT+KWPvGUJxq0CDvySqjGa8cE6w85v8T+MjDng==} engines: {node: '>=22'} @@ -2358,32 +2291,20 @@ packages: resolution: {integrity: sha512-5wtC4pUjzhy72j3aAueJg+fh9KflevJvXMn0YscsxiDTvqwIzeZcHe1N9VNtvzDXgLblEeBT6D0+Vs+boyExxg==} engines: {node: '>=22'} - '@scalar/use-hooks@0.4.1': - resolution: {integrity: sha512-+lx57gPT9c5WT18MwgUQMxsYv8sqdcV1K/aaCRevD/SWMoFmG5rvUDsoApWtNpjjKsyR2G/QOLXIj7CN/RXOFQ==} - engines: {node: '>=22'} - - '@scalar/use-hooks@0.4.2': - resolution: {integrity: sha512-c12RFw75aqRFc2iXQDdm9cHk0E/bT8LTelgNQDR8Bhp7950Swssr10lWC61CWdOigjRth+ES61Jo8yGi5yUBwQ==} + '@scalar/use-hooks@0.4.3': + resolution: {integrity: sha512-dhDWGwqtiVshrAv/bpJ9qPt2Mdbbqyqvtvl2Fau+S9iv7Trsc2XDbfBc40cckSj6EhajgR4EHiuCR0E4DyaveQ==} engines: {node: '>=22'} - '@scalar/use-toasts@0.10.1': - resolution: {integrity: sha512-8fsDd4efEDF+EydA+1+np/ac2KsAXPR1LdTYtTUxpv8Uj1l7lUMT/T5A7xnR+wNKmyVREihb9KnGp3pSjO2kYg==} + '@scalar/use-toasts@0.10.2': + resolution: {integrity: sha512-1iHQFbDXv0YQRp13aa63S5EcTJ5K8T0ocnLxk+nziloPrLjKt6jdRt6vOHsLSv5sm9kFKcVKNQTQgialmKCOGA==} engines: {node: '>=22'} - '@scalar/validation@0.2.0': - resolution: {integrity: sha512-nWW319vw6hLDT0l+JD0Vw8e2WUE+uGuOTR3HavWsqXGAA9EyrO8dgsNL1QrLO/ccOpBZ/wapSK+1+V3vCC60gQ==} - engines: {node: '>=20'} - '@scalar/validation@0.3.0': resolution: {integrity: sha512-4X/AP3JO23DuYxs1MMjn6IlT9gyrKPCuZj8ybTB9QIjC+3tSJLpQOwZg7HEyyz2HoVwOt9jdef2jO3RXW7DqTw==} engines: {node: '>=20'} - '@scalar/workspace-store@0.42.0': - resolution: {integrity: sha512-Iwwua2h+e1G6c+CTDfwVmPOgZpWGF6cnlaMqGtns1lOw7aT4zAfIsUM9MRBdfO9Lbw8nXmKb9Wvp4XM8UxNZoQ==} - engines: {node: '>=22'} - - '@scalar/workspace-store@0.46.1': - resolution: {integrity: sha512-dFUaWeEpF4vHQHT63UiDo48i/DTXUi9dr5+5530M5MXp6Ww8c9tw+vg/W+c3XCEdlzkjFJpt6nt8njlNpSJALQ==} + '@scalar/workspace-store@0.46.2': + resolution: {integrity: sha512-Qjo2eHZdXd8R3N7SgX4IoqzCOk2UeOH99r2nflUfu+B4sXj+LhYKofPhE3MXFu8sY7xXszu+9WqerHwunY4+JA==} engines: {node: '>=22'} '@sec-ant/readable-stream@0.4.1': @@ -2462,69 +2383,69 @@ packages: '@swc/helpers@0.5.21': resolution: {integrity: sha512-jI/VAmtdjB/RnI8GTnokyX7Ug8c+g+ffD6QRLa6XQewtnGyukKkKSk3wLTM3b5cjt1jNh9x0jfVlagdN2gDKQg==} - '@tailwindcss/node@4.2.2': - resolution: {integrity: sha512-pXS+wJ2gZpVXqFaUEjojq7jzMpTGf8rU6ipJz5ovJV6PUGmlJ+jvIwGrzdHdQ80Sg+wmQxUFuoW1UAAwHNEdFA==} + '@tailwindcss/node@4.2.4': + resolution: {integrity: sha512-Ai7+yQPxz3ddrDQzFfBKdHEVBg0w3Zl83jnjuwxnZOsnH9pGn93QHQtpU0p/8rYWxvbFZHneni6p1BSLK4DkGA==} - '@tailwindcss/oxide-android-arm64@4.2.2': - resolution: {integrity: sha512-dXGR1n+P3B6748jZO/SvHZq7qBOqqzQ+yFrXpoOWWALWndF9MoSKAT3Q0fYgAzYzGhxNYOoysRvYlpixRBBoDg==} + '@tailwindcss/oxide-android-arm64@4.2.4': + resolution: {integrity: sha512-e7MOr1SAn9U8KlZzPi1ZXGZHeC5anY36qjNwmZv9pOJ8E4Q6jmD1vyEHkQFmNOIN7twGPEMXRHmitN4zCMN03g==} engines: {node: '>= 20'} cpu: [arm64] os: [android] - '@tailwindcss/oxide-darwin-arm64@4.2.2': - resolution: {integrity: sha512-iq9Qjr6knfMpZHj55/37ouZeykwbDqF21gPFtfnhCCKGDcPI/21FKC9XdMO/XyBM7qKORx6UIhGgg6jLl7BZlg==} + '@tailwindcss/oxide-darwin-arm64@4.2.4': + resolution: {integrity: sha512-tSC/Kbqpz/5/o/C2sG7QvOxAKqyd10bq+ypZNf+9Fi2TvbVbv1zNpcEptcsU7DPROaSbVgUXmrzKhurFvo5eDg==} engines: {node: '>= 20'} cpu: [arm64] os: [darwin] - '@tailwindcss/oxide-darwin-x64@4.2.2': - resolution: {integrity: sha512-BlR+2c3nzc8f2G639LpL89YY4bdcIdUmiOOkv2GQv4/4M0vJlpXEa0JXNHhCHU7VWOKWT/CjqHdTP8aUuDJkuw==} + '@tailwindcss/oxide-darwin-x64@4.2.4': + resolution: {integrity: sha512-yPyUXn3yO/ufR6+Kzv0t4fCg2qNr90jxXc5QqBpjlPNd0NqyDXcmQb/6weunH/MEDXW5dhyEi+agTDiqa3WsGg==} engines: {node: '>= 20'} cpu: [x64] os: [darwin] - '@tailwindcss/oxide-freebsd-x64@4.2.2': - resolution: {integrity: sha512-YUqUgrGMSu2CDO82hzlQ5qSb5xmx3RUrke/QgnoEx7KvmRJHQuZHZmZTLSuuHwFf0DJPybFMXMYf+WJdxHy/nQ==} + '@tailwindcss/oxide-freebsd-x64@4.2.4': + resolution: {integrity: sha512-BoMIB4vMQtZsXdGLVc2z+P9DbETkiopogfWZKbWwM8b/1Vinbs4YcUwo+kM/KeLkX3Ygrf4/PsRndKaYhS8Eiw==} engines: {node: '>= 20'} cpu: [x64] os: [freebsd] - '@tailwindcss/oxide-linux-arm-gnueabihf@4.2.2': - resolution: {integrity: sha512-FPdhvsW6g06T9BWT0qTwiVZYE2WIFo2dY5aCSpjG/S/u1tby+wXoslXS0kl3/KXnULlLr1E3NPRRw0g7t2kgaQ==} + '@tailwindcss/oxide-linux-arm-gnueabihf@4.2.4': + resolution: {integrity: sha512-7pIHBLTHYRAlS7V22JNuTh33yLH4VElwKtB3bwchK/UaKUPpQ0lPQiOWcbm4V3WP2I6fNIJ23vABIvoy2izdwA==} engines: {node: '>= 20'} cpu: [arm] os: [linux] - '@tailwindcss/oxide-linux-arm64-gnu@4.2.2': - resolution: {integrity: sha512-4og1V+ftEPXGttOO7eCmW7VICmzzJWgMx+QXAJRAhjrSjumCwWqMfkDrNu1LXEQzNAwz28NCUpucgQPrR4S2yw==} + '@tailwindcss/oxide-linux-arm64-gnu@4.2.4': + resolution: {integrity: sha512-+E4wxJ0ZGOzSH325reXTWB48l42i93kQqMvDyz5gqfRzRZ7faNhnmvlV4EPGJU3QJM/3Ab5jhJ5pCRUsKn6OQw==} engines: {node: '>= 20'} cpu: [arm64] os: [linux] libc: [glibc] - '@tailwindcss/oxide-linux-arm64-musl@4.2.2': - resolution: {integrity: sha512-oCfG/mS+/+XRlwNjnsNLVwnMWYH7tn/kYPsNPh+JSOMlnt93mYNCKHYzylRhI51X+TbR+ufNhhKKzm6QkqX8ag==} + '@tailwindcss/oxide-linux-arm64-musl@4.2.4': + resolution: {integrity: sha512-bBADEGAbo4ASnppIziaQJelekCxdMaxisrk+fB7Thit72IBnALp9K6ffA2G4ruj90G9XRS2VQ6q2bCKbfFV82g==} engines: {node: '>= 20'} cpu: [arm64] os: [linux] libc: [musl] - '@tailwindcss/oxide-linux-x64-gnu@4.2.2': - resolution: {integrity: sha512-rTAGAkDgqbXHNp/xW0iugLVmX62wOp2PoE39BTCGKjv3Iocf6AFbRP/wZT/kuCxC9QBh9Pu8XPkv/zCZB2mcMg==} + '@tailwindcss/oxide-linux-x64-gnu@4.2.4': + resolution: {integrity: sha512-7Mx25E4WTfnht0TVRTyC00j3i0M+EeFe7wguMDTlX4mRxafznw0CA8WJkFjWYH5BlgELd1kSjuU2JiPnNZbJDA==} engines: {node: '>= 20'} cpu: [x64] os: [linux] libc: [glibc] - '@tailwindcss/oxide-linux-x64-musl@4.2.2': - resolution: {integrity: sha512-XW3t3qwbIwiSyRCggeO2zxe3KWaEbM0/kW9e8+0XpBgyKU4ATYzcVSMKteZJ1iukJ3HgHBjbg9P5YPRCVUxlnQ==} + '@tailwindcss/oxide-linux-x64-musl@4.2.4': + resolution: {integrity: sha512-2wwJRF7nyhOR0hhHoChc04xngV3iS+akccHTGtz965FwF0up4b2lOdo6kI1EbDaEXKgvcrFBYcYQQ/rrnWFVfA==} engines: {node: '>= 20'} cpu: [x64] os: [linux] libc: [musl] - '@tailwindcss/oxide-wasm32-wasi@4.2.2': - resolution: {integrity: sha512-eKSztKsmEsn1O5lJ4ZAfyn41NfG7vzCg496YiGtMDV86jz1q/irhms5O0VrY6ZwTUkFy/EKG3RfWgxSI3VbZ8Q==} + '@tailwindcss/oxide-wasm32-wasi@4.2.4': + resolution: {integrity: sha512-FQsqApeor8Fo6gUEklzmaa9994orJZZDBAlQpK2Mq+DslRKFJeD6AjHpBQ0kZFQohVr8o85PPh8eOy86VlSCmw==} engines: {node: '>=14.0.0'} cpu: [wasm32] bundledDependencies: @@ -2535,24 +2456,24 @@ packages: - '@emnapi/wasi-threads' - tslib - '@tailwindcss/oxide-win32-arm64-msvc@4.2.2': - resolution: {integrity: sha512-qPmaQM4iKu5mxpsrWZMOZRgZv1tOZpUm+zdhhQP0VhJfyGGO3aUKdbh3gDZc/dPLQwW4eSqWGrrcWNBZWUWaXQ==} + '@tailwindcss/oxide-win32-arm64-msvc@4.2.4': + resolution: {integrity: sha512-L9BXqxC4ToVgwMFqj3pmZRqyHEztulpUJzCxUtLjobMCzTPsGt1Fa9enKbOpY2iIyVtaHNeNvAK8ERP/64sqGQ==} engines: {node: '>= 20'} cpu: [arm64] os: [win32] - '@tailwindcss/oxide-win32-x64-msvc@4.2.2': - resolution: {integrity: sha512-1T/37VvI7WyH66b+vqHj/cLwnCxt7Qt3WFu5Q8hk65aOvlwAhs7rAp1VkulBJw/N4tMirXjVnylTR72uI0HGcA==} + '@tailwindcss/oxide-win32-x64-msvc@4.2.4': + resolution: {integrity: sha512-ESlKG0EpVJQwRjXDDa9rLvhEAh0mhP1sF7sap9dNZT0yyl9SAG6T7gdP09EH0vIv0UNTlo6jPWyujD6559fZvw==} engines: {node: '>= 20'} cpu: [x64] os: [win32] - '@tailwindcss/oxide@4.2.2': - resolution: {integrity: sha512-qEUA07+E5kehxYp9BVMpq9E8vnJuBHfJEC0vPC5e7iL/hw7HR61aDKoVoKzrG+QKp56vhNZe4qwkRmMC0zDLvg==} + '@tailwindcss/oxide@4.2.4': + resolution: {integrity: sha512-9El/iI069DKDSXwTvB9J4BwdO5JhRrOweGaK25taBAvBXyXqJAX+Jqdvs8r8gKpsI/1m0LeJLyQYTf/WLrBT1Q==} engines: {node: '>= 20'} - '@tailwindcss/vite@4.2.2': - resolution: {integrity: sha512-mEiF5HO1QqCLXoNEfXVA1Tzo+cYsrqV7w9Juj2wdUFyW07JRenqMG225MvPwr3ZD9N1bFQj46X7r33iHxLUW0w==} + '@tailwindcss/vite@4.2.4': + resolution: {integrity: sha512-pCvohwOCspk3ZFn6eJzrrX3g4n2JY73H6MmYC87XfGPyTty4YsCjYTMArRZm/zOI8dIt3+EcrLHAFPe5A4bgtw==} peerDependencies: vite: ^5.2.0 || ^6 || ^7 || ^8 @@ -2877,15 +2798,27 @@ packages: '@vue/compiler-core@3.5.32': resolution: {integrity: sha512-4x74Tbtqnda8s/NSD6e1Dr5p1c8HdMU5RWSjMSUzb8RTcUQqevDCxVAitcLBKT+ie3o0Dl9crc/S/opJM7qBGQ==} + '@vue/compiler-core@3.5.33': + resolution: {integrity: sha512-3PZLQwFw4Za3TC8t0FvTy3wI16Kt+pmwcgNZca4Pj9iWL2E72a/gZlpBtAJvEdDMdCxdG/qq0C7PN0bsJuv0Rw==} + '@vue/compiler-dom@3.5.32': resolution: {integrity: sha512-ybHAu70NtiEI1fvAUz3oXZqkUYEe5J98GjMDpTGl5iHb0T15wQYLR4wE3h9xfuTNA+Cm2f4czfe8B4s+CCH57Q==} + '@vue/compiler-dom@3.5.33': + resolution: {integrity: sha512-PXq0yrfCLzzL07rbXO4awtXY1Z06LG2eu6Adg3RJFa/j3Cii217XxxLXG22N330gw7GmALCY0Z8RgXEviwgpjA==} + '@vue/compiler-sfc@3.5.32': resolution: {integrity: sha512-8UYUYo71cP/0YHMO814TRZlPuUUw3oifHuMR7Wp9SNoRSrxRQnhMLNlCeaODNn6kNTJsjFoQ/kqIj4qGvya4Xg==} + '@vue/compiler-sfc@3.5.33': + resolution: {integrity: sha512-UTUvRO9cY+rROrx/pvN9P5Z7FgA6QGfokUCfhQE4EnmUj3rVnK+CHI0LsEO1pg+I7//iRYMUfcNcCPe7tg0CoA==} + '@vue/compiler-ssr@3.5.32': resolution: {integrity: sha512-Gp4gTs22T3DgRotZ8aA/6m2jMR+GMztvBXUBEUOYOcST+giyGWJ4WvFd7QLHBkzTxkfOt8IELKNdpzITLbA2rw==} + '@vue/compiler-ssr@3.5.33': + resolution: {integrity: sha512-IErjYdnj1qIupG5xxiVIYiiRvDhGWV4zuh/RCrwfYpuL+HWQzeU6lCk/nF9r7olWMnjKxCAkOctT2qFWFkzb1A==} + '@vue/devtools-api@8.1.1': resolution: {integrity: sha512-bsDMJ07b3GN1puVwJb/fyFnj/U2imyswK5UQVLZwVl7O05jDrt6BHxeG5XffmOOdasOj/bOmIjxJvGPxU7pcqw==} @@ -2906,23 +2839,26 @@ packages: '@vue/devtools-shared@8.1.1': resolution: {integrity: sha512-+h4ttmJYl/txpxHKaoZcaKpC+pvckgLzIDiSQlaQ7kKthKh8KuwoLW2D8hPJEnqKzXOvu15UHEoGyngAXCz0EQ==} - '@vue/reactivity@3.5.32': - resolution: {integrity: sha512-/ORasxSGvZ6MN5gc+uE364SxFdJ0+WqVG0CENXaGW58TOCdrAW76WWaplDtECeS1qphvtBZtR+3/o1g1zL4xPQ==} + '@vue/reactivity@3.5.33': + resolution: {integrity: sha512-p8UfIqyIhb0rYGlSgSBV+lPhF2iUSBcRy7enhTmPqKWadHy9kcOFYF1AejYBP9P+avnd3OBbD49DU4pLWX/94A==} - '@vue/runtime-core@3.5.32': - resolution: {integrity: sha512-pDrXCejn4UpFDFmMd27AcJEbHaLemaE5o4pbb7sLk79SRIhc6/t34BQA7SGNgYtbMnvbF/HHOftYBgFJtUoJUQ==} + '@vue/runtime-core@3.5.33': + resolution: {integrity: sha512-UpFF45RI9//a7rvq7RdOQblb4tup7hHG9QsmIrxkFQLzQ7R8/iNQ5LE15NhLZ1/WcHMU2b47u6P33CPUelHyIQ==} - '@vue/runtime-dom@3.5.32': - resolution: {integrity: sha512-1CDVv7tv/IV13V8Nip1k/aaObVbWqRlVCVezTwx3K07p7Vxossp5JU1dcPNhJk3w347gonIUT9jQOGutyJrSVQ==} + '@vue/runtime-dom@3.5.33': + resolution: {integrity: sha512-IOxMsAOwquhfITgmOgaPYl7/j8gKUxUFoflRc+u4LxyD3+783xne8vNta1PONVCvCV9A0w7hkyEepINDqfO0tw==} - '@vue/server-renderer@3.5.32': - resolution: {integrity: sha512-IOjm2+JQwRFS7W28HNuJeXQle9KdZbODFY7hFGVtnnghF51ta20EWAZJHX+zLGtsHhaU6uC9BGPV52KVpYryMQ==} + '@vue/server-renderer@3.5.33': + resolution: {integrity: sha512-0xylq/8/h44lVG0pZFknv1XIdEgymq2E9n59uTWJBG+dIgiT0TMCSsxrN7nO16Z0MU0MPjFcguBbZV8Itk52Hw==} peerDependencies: - vue: 3.5.32 + vue: 3.5.33 '@vue/shared@3.5.32': resolution: {integrity: sha512-ksNyrmRQzWJJ8n3cRDuSF7zNNontuJg1YHnmWRJd2AMu8Ij2bqwiiri2lH5rHtYPZjj4STkNcgcmiQqlOjiYGg==} + '@vue/shared@3.5.33': + resolution: {integrity: sha512-5vR2QIlmaLG77Ygd4pMP6+SGQ5yox9VhtnbDWTy9DzMzdmeLxZ1QqxrywEZ9sa1AVubfIJyaCG3ytyWU81ufcQ==} + '@vueuse/core@10.11.1': resolution: {integrity: sha512-guoy26JQktXPcz+0n3GukWIy/JDNKti9v6VEMu6kV2sYBsWuGiTU8OWdg+ADfUbHg3/3DlqySDe7JmdHrktiww==} @@ -3076,14 +3012,6 @@ packages: peerDependencies: zod: ^3.25.76 || ^4.1.8 - ajv-draft-04@1.0.0: - resolution: {integrity: sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==} - peerDependencies: - ajv: ^8.5.0 - peerDependenciesMeta: - ajv: - optional: true - ajv-errors@3.0.0: resolution: {integrity: sha512-V3wD15YHfHz6y0KdhYFjyy9vWtEVALT9UrxfN3zqlI6dMioHnJrqOYfyPKol3oqrnCM9uwkcdCwkJ0WUcbLMTQ==} peerDependencies: @@ -3763,14 +3691,6 @@ packages: csstype@3.2.3: resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} - cva@1.0.0-beta.2: - resolution: {integrity: sha512-dqcOFe247I5pKxfuzqfq3seLL5iMYsTgo40Uw7+pKZAntPgFtR7Tmy59P5IVIq/XgB0NQWoIvYDt9TwHkuK8Cg==} - peerDependencies: - typescript: '>= 4.5.5 < 6' - peerDependenciesMeta: - typescript: - optional: true - cva@1.0.0-beta.4: resolution: {integrity: sha512-F/JS9hScapq4DBVQXcK85l9U91M6ePeXoBMSp7vypzShoefUBxjQTo3g3935PUHgQd+IW77DjbPRIxugy4/GCQ==} peerDependencies: @@ -4667,9 +4587,6 @@ packages: resolution: {integrity: sha512-Xwwo44whKBVCYoliBQwaPvtd/2tYFkRQtXDWj1nackaV2JPXx3L0+Jvd8/qCJ2p+ML0/XVkJ2q+Mr+UVdpJK5w==} engines: {node: '>=12.0.0'} - highlightjs-curl@1.3.0: - resolution: {integrity: sha512-50UEfZq1KR0Lfk2Tr6xb/MUIZH3h10oNC0OTy9g7WELcs5Fgy/mKN1vEhuKTkKbdo8vr5F9GXstu2eLhApfQ3A==} - hookable@5.5.3: resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==} @@ -4753,11 +4670,6 @@ packages: resolution: {integrity: sha512-eKCa6bwnJhvxj14kZk5NCPc6Hb6BdsU9DZcOnmQKSnO1VKrfV0zCvtttPZUsBvjmNDn8rpcJfpwSYnHBjc95MQ==} engines: {node: '>=18.18.0'} - husky@9.1.7: - resolution: {integrity: sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==} - engines: {node: '>=18'} - hasBin: true - i18next@23.16.8: resolution: {integrity: sha512-06r/TitrM88Mg5FdUXAKL96dJMzgqLE5dv3ryBAra4KCwD9mJ4ndOTS95ZuymIGoE+2hzfdaMak2X11/es7ZWg==} @@ -5180,9 +5092,6 @@ packages: resolution: {integrity: sha512-Qush0uP+G8ZScpGMZvHUiRfI0YBWuB3gVBYlI0v0vvOJt5FLicco+IkP0a50LqTTQhmts/m6tP5SWE+USyIvcQ==} engines: {node: '>=12.20'} - just-clone@6.2.0: - resolution: {integrity: sha512-1IynUYEc/HAwxhi3WDpIpxJbZpMCvvrrmZVqvj9EhpvbH8lls7HhdhiByjL7DkAaWlLIzpC0Xc/VPvy/UxLNjA==} - jwa@2.0.1: resolution: {integrity: sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==} @@ -5236,10 +5145,6 @@ packages: resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} engines: {node: '>=6'} - leven@4.1.0: - resolution: {integrity: sha512-KZ9W9nWDT7rF7Dazg8xyLHGLrmpgq2nVNFUckhqdW3szVP6YhCpp/RAnpmVExA9JvrMynjwSLVrEj3AepHR6ew==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - light-my-request@6.6.0: resolution: {integrity: sha512-CHYbu8RtboSIoVsHZ6Ye4cj4Aw/yg2oAFimlF7mNvfDV192LR7nDiKtSIfCuLT7KokPSTn/9kfVLm5OGN0A28A==} @@ -5810,8 +5715,8 @@ packages: resolution: {integrity: sha512-Z4SmBUweYa09+o6pG+eASabEpP6QkQ70yHj351pQoEXIs8uHbaU2DWVmzBANKgflPa47A50PtB2+NgRpQvr7vA==} engines: {node: '>= 10'} - netlify-cli@25.0.1: - resolution: {integrity: sha512-DVv+3CYXgp/u0YLlGUxnRmDRDa6HLr7Y0yL9HigMrQFuaU2iV+j9EfZvmeCZaX7FElebFfb+cU0NWJEOmb5AHg==} + netlify-cli@25.3.0: + resolution: {integrity: sha512-Mtri/S2sm1iCr6k1O0lp2I9w9D4ZNbE4DnVL4ERBD/Hcp5gWcQY+obuoc0Sept1mgww96dni/9IMBiMmqh8ZAQ==} engines: {node: '>=20.12.2'} hasBin: true @@ -6245,8 +6150,8 @@ packages: pkg-types@2.3.0: resolution: {integrity: sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==} - pnpm@10.33.0: - resolution: {integrity: sha512-EFaLtKavtYyes2MNqQzJUWQXq+vT+rvmc58K55VyjaFJHp21pUTHatjrdXD1xLs9bGN7LLQb/c20f6gjyGSTGQ==} + pnpm@10.33.1: + resolution: {integrity: sha512-Bbo8HV0cGPaN8GRw10BV5i1B/BEKDGYNsbLfsnhTJ/BM8PaDRdRgm8Ugief6A0PDFZOy+VlOLF1dpCYjCsyYIA==} engines: {node: '>=18.12'} hasBin: true @@ -6367,10 +6272,6 @@ packages: engines: {node: '>=14'} hasBin: true - pretty-bytes@7.1.0: - resolution: {integrity: sha512-nODzvTiYVRGRqAOvE84Vk5JDPyyxsVk0/fbA/bq7RqlnhksGpset09XTxbpvLTIjoaF7K8Z8DG8yHtKGTPSYRw==} - engines: {node: '>=20'} - pretty-ms@9.3.0: resolution: {integrity: sha512-gjVS5hOP+M3wMm5nmNOucbIrqudzs9v/57bWRHQWLYklXqoXKrVfYW2W9+glfGsqtPgpiz5WwyEEB+ksXIx3gQ==} engines: {node: '>=18'} @@ -7215,11 +7116,11 @@ packages: resolution: {integrity: sha512-yEFYrVhod+hdNyx7g5Bnkkb0G6si8HJurOoOEgC8B/O0uXLHlaey/65KRv6cuWBNhBgHKAROVpc7QyYqE5gFng==} engines: {node: '>=20'} - tailwind-merge@3.4.0: - resolution: {integrity: sha512-uSaO4gnW+b3Y2aWoWfFpX62vn2sR3skfhbjsEnaBI81WD1wBLlHZe5sWf0AqjksNdYTbGBEd0UasQMT3SNV15g==} + tailwind-merge@3.5.0: + resolution: {integrity: sha512-I8K9wewnVDkL1NTGoqWmVEIlUcB9gFriAEkXkfCjX5ib8ezGxtR3xD7iZIxrfArjEsH7F1CHD4RFUtxefdqV/A==} - tailwindcss@4.2.2: - resolution: {integrity: sha512-KWBIxs1Xb6NoLdMVqhbhgwZf2PGBpPEiwOqgI4pFIYbNTfBXiKYyWoTsXgBQ9WFg/OlhnvHaY+AEpW7wSmFo2Q==} + tailwindcss@4.2.4: + resolution: {integrity: sha512-HhKppgO81FQof5m6TEnuBWCZGgfRAWbaeOaGT00KOy/Pf/j6oUihdvBpA7ltCeAvZpFhW3j0PTclkxsd4IXYDA==} tapable@2.3.2: resolution: {integrity: sha512-1MOpMXuhGzGL5TTCZFItxCc0AARf1EZFQkGqMm7ERKj8+Hgr5oLvJOVFcC+lRmR8hCe2S3jC4T5D7Vg/d7/fhA==} @@ -7340,10 +7241,6 @@ packages: peerDependencies: typescript: '>=4.8.4' - ts-deepmerge@7.0.3: - resolution: {integrity: sha512-Du/ZW2RfwV/D4cmA5rXafYjBQVuvu4qGiEEla4EmEHVHgRdx68Gftx7i66jn2bzHPwSVZY36Ae6OuDn9el4ZKA==} - engines: {node: '>=14.13.1'} - ts-node@10.9.2: resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} hasBin: true @@ -7881,8 +7778,8 @@ packages: vue-sonner@1.3.2: resolution: {integrity: sha512-UbZ48E9VIya3ToiRHAZUbodKute/z/M1iT8/3fU8zEbwBRE11AKuHikssv18LMk2gTTr6eMQT4qf6JoLHWuj/A==} - vue@3.5.32: - resolution: {integrity: sha512-vM4z4Q9tTafVfMAK7IVzmxg34rSzTFMyIe0UUEijUCkn9+23lj0WRfA83dg7eQZIUlgOSGrkViIaCfqSAUXsMw==} + vue@3.5.33: + resolution: {integrity: sha512-1AgChhx5w3ALgT4oK3acm2Es/7jyZhWSVUfs3rOBlGQC0rjEDkS7G4lWlJJGGNQD+BV3reCwbQrOe1mPNwKHBQ==} peerDependencies: typescript: '*' peerDependenciesMeta: @@ -8104,12 +8001,12 @@ snapshots: dependencies: json-schema: 0.4.0 - '@ai-sdk/vue@3.0.33(vue@3.5.32(typescript@5.9.3))(zod@4.3.6)': + '@ai-sdk/vue@3.0.33(vue@3.5.33(typescript@5.9.3))(zod@4.3.6)': dependencies: '@ai-sdk/provider-utils': 4.0.5(zod@4.3.6) ai: 6.0.33(zod@4.3.6) - swrv: 1.2.0(vue@3.5.32(typescript@5.9.3)) - vue: 3.5.32(typescript@5.9.3) + swrv: 1.2.0(vue@3.5.33(typescript@5.9.3)) + vue: 3.5.33(typescript@5.9.3) transitivePeerDependencies: - zod @@ -8159,7 +8056,7 @@ snapshots: '@astrojs/internal-helpers@0.7.6': {} - '@astrojs/internal-helpers@0.8.0': + '@astrojs/internal-helpers@0.9.0': dependencies: picomatch: 4.0.4 @@ -8263,9 +8160,9 @@ snapshots: dependencies: prismjs: 1.30.0 - '@astrojs/react@5.0.3(@types/node@25.6.0)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(jiti@2.6.1)(lightningcss@1.32.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(terser@5.46.1)(yaml@2.8.3)': + '@astrojs/react@5.0.4(@types/node@25.6.0)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(jiti@2.6.1)(lightningcss@1.32.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(terser@5.46.1)(yaml@2.8.3)': dependencies: - '@astrojs/internal-helpers': 0.8.0 + '@astrojs/internal-helpers': 0.9.0 '@types/react': 19.2.14 '@types/react-dom': 19.2.3(@types/react@19.2.14) '@vitejs/plugin-react': 5.2.0(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3)) @@ -8306,10 +8203,10 @@ snapshots: '@docsearch/css': 4.6.2 '@docsearch/js': 4.6.2 - '@astrojs/starlight-tailwind@4.0.2(@astrojs/starlight@0.37.7(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)))(tailwindcss@4.2.2)': + '@astrojs/starlight-tailwind@4.0.2(@astrojs/starlight@0.37.7(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)))(tailwindcss@4.2.4)': dependencies: '@astrojs/starlight': 0.37.7(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)) - tailwindcss: 4.2.2 + tailwindcss: 4.2.4 '@astrojs/starlight@0.37.7(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3))': dependencies: @@ -8359,15 +8256,15 @@ snapshots: '@astrojs/underscore-redirects@1.0.0': {} - '@astrojs/vue@5.1.4(@types/node@25.6.0)(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3))(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(vue@3.5.32(typescript@5.9.3))(yaml@2.8.3)': + '@astrojs/vue@5.1.4(@types/node@25.6.0)(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3))(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(vue@3.5.33(typescript@5.9.3))(yaml@2.8.3)': dependencies: - '@vitejs/plugin-vue': 5.2.4(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3))(vue@3.5.32(typescript@5.9.3)) - '@vitejs/plugin-vue-jsx': 4.2.0(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3))(vue@3.5.32(typescript@5.9.3)) + '@vitejs/plugin-vue': 5.2.4(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3))(vue@3.5.33(typescript@5.9.3)) + '@vitejs/plugin-vue-jsx': 4.2.0(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3))(vue@3.5.33(typescript@5.9.3)) '@vue/compiler-sfc': 3.5.32 astro: 5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3) vite: 6.4.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3) - vite-plugin-vue-devtools: 7.7.9(rollup@4.60.1)(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3))(vue@3.5.32(typescript@5.9.3)) - vue: 3.5.32(typescript@5.9.3) + vite-plugin-vue-devtools: 7.7.9(rollup@4.60.1)(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3))(vue@3.5.33(typescript@5.9.3)) + vue: 3.5.33(typescript@5.9.3) transitivePeerDependencies: - '@nuxt/kit' - '@types/node' @@ -9051,7 +8948,7 @@ snapshots: '@lukeed/ms': 2.0.2 escape-html: 1.0.3 fast-decode-uri-component: 1.0.1 - http-errors: 2.0.0 + http-errors: 2.0.1 mime: 3.0.0 '@fastify/static@9.0.0': @@ -9076,11 +8973,11 @@ snapshots: '@floating-ui/utils@0.2.11': {} - '@floating-ui/vue@1.1.9(vue@3.5.32(typescript@5.9.3))': + '@floating-ui/vue@1.1.9(vue@3.5.33(typescript@5.9.3))': dependencies: '@floating-ui/dom': 1.7.6 - '@floating-ui/utils': 0.2.10 - vue-demi: 0.14.10(vue@3.5.32(typescript@5.9.3)) + '@floating-ui/utils': 0.2.11 + vue-demi: 0.14.10(vue@3.5.33(typescript@5.9.3)) transitivePeerDependencies: - '@vue/composition-api' - vue @@ -9093,14 +8990,14 @@ snapshots: '@fontsource/jetbrains-mono@5.2.8': {} - '@headlessui/tailwindcss@0.2.2(tailwindcss@4.2.2)': + '@headlessui/tailwindcss@0.2.2(tailwindcss@4.2.4)': dependencies: - tailwindcss: 4.2.2 + tailwindcss: 4.2.4 - '@headlessui/vue@1.7.23(vue@3.5.32(typescript@5.9.3))': + '@headlessui/vue@1.7.23(vue@3.5.33(typescript@5.9.3))': dependencies: - '@tanstack/vue-virtual': 3.13.23(vue@3.5.32(typescript@5.9.3)) - vue: 3.5.32(typescript@5.9.3) + '@tanstack/vue-virtual': 3.13.23(vue@3.5.33(typescript@5.9.3)) + vue: 3.5.33(typescript@5.9.3) '@hideoo/starlight-plugins-docs-components@0.4.2(@astrojs/starlight@0.37.7(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)))': dependencies: @@ -9112,7 +9009,7 @@ snapshots: '@iarna/toml@2.2.5': {} - '@iconify/json@2.2.463': + '@iconify/json@2.2.465': dependencies: '@iconify/types': 2.0.0 pathe: 2.0.3 @@ -10455,25 +10352,25 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.60.1': optional: true - '@scalar/agent-chat@0.10.5(@vue/compiler-sfc@3.5.32)(jwt-decode@4.0.0)(tailwindcss@4.2.2)(typescript@5.9.3)': + '@scalar/agent-chat@0.10.7(@vue/compiler-sfc@3.5.33)(jwt-decode@4.0.0)(tailwindcss@4.2.4)(typescript@5.9.3)': dependencies: - '@ai-sdk/vue': 3.0.33(vue@3.5.32(typescript@5.9.3))(zod@4.3.6) - '@scalar/api-client': 3.1.0(@vue/compiler-sfc@3.5.32)(jwt-decode@4.0.0)(tailwindcss@4.2.2)(typescript@5.9.3) - '@scalar/components': 0.22.1(typescript@5.9.3) + '@ai-sdk/vue': 3.0.33(vue@3.5.33(typescript@5.9.3))(zod@4.3.6) + '@scalar/api-client': 3.2.1(@vue/compiler-sfc@3.5.33)(jwt-decode@4.0.0)(tailwindcss@4.2.4)(typescript@5.9.3) + '@scalar/components': 0.22.2(typescript@5.9.3) '@scalar/helpers': 0.5.1 '@scalar/icons': 0.7.2(typescript@5.9.3) '@scalar/json-magic': 0.12.7 - '@scalar/openapi-types': 0.7.0 + '@scalar/openapi-types': 0.8.0 '@scalar/themes': 0.15.3 '@scalar/types': 0.9.1 - '@scalar/use-toasts': 0.10.1(typescript@5.9.3) - '@scalar/workspace-store': 0.46.1(typescript@5.9.3) - '@vueuse/core': 13.9.0(vue@3.5.32(typescript@5.9.3)) + '@scalar/use-toasts': 0.10.2(typescript@5.9.3) + '@scalar/workspace-store': 0.46.2(typescript@5.9.3) + '@vueuse/core': 13.9.0(vue@3.5.33(typescript@5.9.3)) ai: 6.0.33(zod@4.3.6) js-base64: 3.7.8 neverpanic: 0.0.7(typescript@5.9.3) truncate-json: 3.0.1 - vue: 3.5.32(typescript@5.9.3) + vue: 3.5.33(typescript@5.9.3) zod: 4.3.6 transitivePeerDependencies: - '@pinia/colada' @@ -10494,29 +10391,29 @@ snapshots: - typescript - universal-cookie - '@scalar/api-client@3.1.0(@vue/compiler-sfc@3.5.32)(jwt-decode@4.0.0)(tailwindcss@4.2.2)(typescript@5.9.3)': + '@scalar/api-client@3.2.1(@vue/compiler-sfc@3.5.33)(jwt-decode@4.0.0)(tailwindcss@4.2.4)(typescript@5.9.3)': dependencies: - '@headlessui/tailwindcss': 0.2.2(tailwindcss@4.2.2) - '@headlessui/vue': 1.7.23(vue@3.5.32(typescript@5.9.3)) - '@scalar/components': 0.22.1(typescript@5.9.3) + '@headlessui/tailwindcss': 0.2.2(tailwindcss@4.2.4) + '@headlessui/vue': 1.7.23(vue@3.5.33(typescript@5.9.3)) + '@scalar/components': 0.22.2(typescript@5.9.3) '@scalar/helpers': 0.5.1 '@scalar/icons': 0.7.2(typescript@5.9.3) '@scalar/json-magic': 0.12.7 - '@scalar/oas-utils': 0.13.0(typescript@5.9.3) - '@scalar/openapi-types': 0.7.0 - '@scalar/postman-to-openapi': 0.6.3 - '@scalar/sidebar': 0.9.2(typescript@5.9.3) + '@scalar/oas-utils': 0.13.1(typescript@5.9.3) + '@scalar/openapi-types': 0.8.0 + '@scalar/postman-to-openapi': 0.7.0 + '@scalar/sidebar': 0.9.3(typescript@5.9.3) '@scalar/snippetz': 0.9.1 '@scalar/themes': 0.15.3 '@scalar/typebox': 0.1.3 '@scalar/types': 0.9.1 '@scalar/use-codemirror': 0.14.11(typescript@5.9.3) - '@scalar/use-hooks': 0.4.2(typescript@5.9.3) - '@scalar/use-toasts': 0.10.1(typescript@5.9.3) - '@scalar/workspace-store': 0.46.1(typescript@5.9.3) + '@scalar/use-hooks': 0.4.3(typescript@5.9.3) + '@scalar/use-toasts': 0.10.2(typescript@5.9.3) + '@scalar/workspace-store': 0.46.2(typescript@5.9.3) '@types/har-format': 1.2.16 - '@vueuse/core': 13.9.0(vue@3.5.32(typescript@5.9.3)) - '@vueuse/integrations': 13.9.0(focus-trap@7.8.0)(fuse.js@7.3.0)(jwt-decode@4.0.0)(vue@3.5.32(typescript@5.9.3)) + '@vueuse/core': 13.9.0(vue@3.5.33(typescript@5.9.3)) + '@vueuse/integrations': 13.9.0(focus-trap@7.8.0)(fuse.js@7.3.0)(jwt-decode@4.0.0)(vue@3.5.33(typescript@5.9.3)) cookie: 1.1.1 focus-trap: 7.8.0 fuse.js: 7.3.0 @@ -10525,12 +10422,12 @@ snapshots: monaco-yaml: 5.4.1(monaco-editor@0.55.1) nanoid: 5.1.9 pretty-ms: 9.3.0 - radix-vue: 1.9.17(vue@3.5.32(typescript@5.9.3)) + radix-vue: 1.9.17(vue@3.5.33(typescript@5.9.3)) set-cookie-parser: 3.1.0 shell-quote: 1.8.3 vite-plugin-monaco-editor: 1.1.0(monaco-editor@0.55.1) - vue: 3.5.32(typescript@5.9.3) - vue-router: 5.0.4(@vue/compiler-sfc@3.5.32)(vue@3.5.32(typescript@5.9.3)) + vue: 3.5.33(typescript@5.9.3) + vue-router: 5.0.4(@vue/compiler-sfc@3.5.33)(vue@3.5.33(typescript@5.9.3)) yaml: 2.8.3 zod: 4.3.6 transitivePeerDependencies: @@ -10552,30 +10449,30 @@ snapshots: - typescript - universal-cookie - '@scalar/api-reference@1.52.3(@vue/compiler-sfc@3.5.32)(jwt-decode@4.0.0)(tailwindcss@4.2.2)(typescript@5.9.3)': + '@scalar/api-reference@1.52.5(@vue/compiler-sfc@3.5.33)(jwt-decode@4.0.0)(tailwindcss@4.2.4)(typescript@5.9.3)': dependencies: - '@headlessui/vue': 1.7.23(vue@3.5.32(typescript@5.9.3)) - '@scalar/agent-chat': 0.10.5(@vue/compiler-sfc@3.5.32)(jwt-decode@4.0.0)(tailwindcss@4.2.2)(typescript@5.9.3) - '@scalar/api-client': 3.1.0(@vue/compiler-sfc@3.5.32)(jwt-decode@4.0.0)(tailwindcss@4.2.2)(typescript@5.9.3) + '@headlessui/vue': 1.7.23(vue@3.5.33(typescript@5.9.3)) + '@scalar/agent-chat': 0.10.7(@vue/compiler-sfc@3.5.33)(jwt-decode@4.0.0)(tailwindcss@4.2.4)(typescript@5.9.3) + '@scalar/api-client': 3.2.1(@vue/compiler-sfc@3.5.33)(jwt-decode@4.0.0)(tailwindcss@4.2.4)(typescript@5.9.3) '@scalar/code-highlight': 0.3.3 - '@scalar/components': 0.22.1(typescript@5.9.3) + '@scalar/components': 0.22.2(typescript@5.9.3) '@scalar/helpers': 0.5.1 '@scalar/icons': 0.7.2(typescript@5.9.3) - '@scalar/oas-utils': 0.13.0(typescript@5.9.3) - '@scalar/sidebar': 0.9.2(typescript@5.9.3) + '@scalar/oas-utils': 0.13.1(typescript@5.9.3) + '@scalar/sidebar': 0.9.3(typescript@5.9.3) '@scalar/snippetz': 0.9.1 '@scalar/themes': 0.15.3 '@scalar/types': 0.9.1 - '@scalar/use-hooks': 0.4.2(typescript@5.9.3) - '@scalar/use-toasts': 0.10.1(typescript@5.9.3) - '@scalar/workspace-store': 0.46.1(typescript@5.9.3) - '@unhead/vue': 2.1.13(vue@3.5.32(typescript@5.9.3)) - '@vueuse/core': 13.9.0(vue@3.5.32(typescript@5.9.3)) + '@scalar/use-hooks': 0.4.3(typescript@5.9.3) + '@scalar/use-toasts': 0.10.2(typescript@5.9.3) + '@scalar/workspace-store': 0.46.2(typescript@5.9.3) + '@unhead/vue': 2.1.13(vue@3.5.33(typescript@5.9.3)) + '@vueuse/core': 13.9.0(vue@3.5.33(typescript@5.9.3)) fuse.js: 7.3.0 github-slugger: 2.0.0 microdiff: 1.5.0 nanoid: 5.1.9 - vue: 3.5.32(typescript@5.9.3) + vue: 3.5.33(typescript@5.9.3) yaml: 2.8.3 transitivePeerDependencies: - '@pinia/colada' @@ -10596,35 +10493,14 @@ snapshots: - typescript - universal-cookie - '@scalar/astro@0.2.8(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3))': + '@scalar/astro@0.2.9(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3))': dependencies: - '@scalar/core': 0.5.1 + '@scalar/client-side-rendering': 0.1.2 astro: 5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3) - '@scalar/client-side-rendering@0.1.1': + '@scalar/client-side-rendering@0.1.2': dependencies: - '@scalar/types': 0.9.0 - - '@scalar/code-highlight@0.3.1': - dependencies: - hast-util-to-text: 4.0.2 - highlight.js: 11.11.1 - highlightjs-curl: 1.3.0 - lowlight: 3.3.0 - rehype-external-links: 3.0.0 - rehype-format: 5.0.1 - rehype-parse: 9.0.1 - rehype-raw: 7.0.0 - rehype-sanitize: 6.0.0 - rehype-stringify: 10.0.1 - remark-gfm: 4.0.1 - remark-parse: 11.0.0 - remark-rehype: 11.1.2 - remark-stringify: 11.0.0 - unified: 11.0.5 - unist-util-visit: 5.1.0 - transitivePeerDependencies: - - supports-color + '@scalar/types': 0.9.1 '@scalar/code-highlight@0.3.3': dependencies: @@ -10646,152 +10522,63 @@ snapshots: transitivePeerDependencies: - supports-color - '@scalar/components@0.21.2(typescript@5.9.3)': - dependencies: - '@floating-ui/utils': 0.2.10 - '@floating-ui/vue': 1.1.9(vue@3.5.32(typescript@5.9.3)) - '@headlessui/vue': 1.7.23(vue@3.5.32(typescript@5.9.3)) - '@scalar/code-highlight': 0.3.1 - '@scalar/helpers': 0.4.2 - '@scalar/icons': 0.7.1(typescript@5.9.3) - '@scalar/themes': 0.15.1 - '@scalar/use-hooks': 0.4.1(typescript@5.9.3) - '@vueuse/core': 13.9.0(vue@3.5.32(typescript@5.9.3)) - cva: 1.0.0-beta.4(typescript@5.9.3) - nanoid: 5.1.9 - pretty-bytes: 7.1.0 - radix-vue: 1.9.17(vue@3.5.32(typescript@5.9.3)) - vue: 3.5.32(typescript@5.9.3) - vue-component-type-helpers: 3.2.6 - transitivePeerDependencies: - - '@vue/composition-api' - - supports-color - - typescript - - '@scalar/components@0.22.1(typescript@5.9.3)': + '@scalar/components@0.22.2(typescript@5.9.3)': dependencies: '@floating-ui/utils': 0.2.10 - '@floating-ui/vue': 1.1.9(vue@3.5.32(typescript@5.9.3)) - '@headlessui/vue': 1.7.23(vue@3.5.32(typescript@5.9.3)) + '@floating-ui/vue': 1.1.9(vue@3.5.33(typescript@5.9.3)) + '@headlessui/vue': 1.7.23(vue@3.5.33(typescript@5.9.3)) '@scalar/code-highlight': 0.3.3 '@scalar/helpers': 0.5.1 '@scalar/icons': 0.7.2(typescript@5.9.3) '@scalar/themes': 0.15.3 - '@scalar/use-hooks': 0.4.2(typescript@5.9.3) - '@vueuse/core': 13.9.0(vue@3.5.32(typescript@5.9.3)) + '@scalar/use-hooks': 0.4.3(typescript@5.9.3) + '@vueuse/core': 13.9.0(vue@3.5.33(typescript@5.9.3)) cva: 1.0.0-beta.4(typescript@5.9.3) nanoid: 5.1.9 - radix-vue: 1.9.17(vue@3.5.32(typescript@5.9.3)) - vue: 3.5.32(typescript@5.9.3) + radix-vue: 1.9.17(vue@3.5.33(typescript@5.9.3)) + vue: 3.5.33(typescript@5.9.3) vue-component-type-helpers: 3.2.6 transitivePeerDependencies: - '@vue/composition-api' - supports-color - typescript - '@scalar/core@0.5.1': - dependencies: - '@scalar/client-side-rendering': 0.1.1 - '@scalar/types': 0.9.0 - - '@scalar/helpers@0.4.2': {} - - '@scalar/helpers@0.5.0': {} - '@scalar/helpers@0.5.1': {} - '@scalar/icons@0.7.1(typescript@5.9.3)': - dependencies: - '@phosphor-icons/core': 2.1.1 - '@types/node': 24.12.2 - chalk: 5.6.2 - vue: 3.5.32(typescript@5.9.3) - transitivePeerDependencies: - - typescript - '@scalar/icons@0.7.2(typescript@5.9.3)': dependencies: '@phosphor-icons/core': 2.1.1 '@types/node': 24.12.2 chalk: 5.6.2 - vue: 3.5.32(typescript@5.9.3) + vue: 3.5.33(typescript@5.9.3) transitivePeerDependencies: - typescript - '@scalar/json-magic@0.12.4': - dependencies: - '@scalar/helpers': 0.4.2 - pathe: 2.0.3 - yaml: 2.8.3 - '@scalar/json-magic@0.12.7': dependencies: '@scalar/helpers': 0.5.1 pathe: 2.0.3 yaml: 2.8.3 - '@scalar/oas-utils@0.10.14(typescript@5.9.3)': - dependencies: - '@scalar/helpers': 0.4.2 - '@scalar/json-magic': 0.12.4 - '@scalar/object-utils': 1.3.3 - '@scalar/openapi-parser': 0.25.7 - '@scalar/openapi-types': 0.6.1 - '@scalar/themes': 0.15.1 - '@scalar/types': 0.7.5 - '@scalar/workspace-store': 0.42.0(typescript@5.9.3) - flatted: 3.4.2 - github-slugger: 2.0.0 - type-fest: 5.5.0 - vue: 3.5.32(typescript@5.9.3) - yaml: 2.8.3 - zod: 4.3.6 - transitivePeerDependencies: - - supports-color - - typescript - - '@scalar/oas-utils@0.13.0(typescript@5.9.3)': + '@scalar/oas-utils@0.13.1(typescript@5.9.3)': dependencies: '@scalar/helpers': 0.5.1 '@scalar/themes': 0.15.3 '@scalar/types': 0.9.1 - '@scalar/workspace-store': 0.46.1(typescript@5.9.3) + '@scalar/workspace-store': 0.46.2(typescript@5.9.3) flatted: 3.4.2 github-slugger: 2.0.0 - vue: 3.5.32(typescript@5.9.3) + vue: 3.5.33(typescript@5.9.3) yaml: 2.8.3 transitivePeerDependencies: - typescript - '@scalar/object-utils@1.3.3': - dependencies: - '@scalar/helpers': 0.4.2 - flatted: 3.4.2 - just-clone: 6.2.0 - ts-deepmerge: 7.0.3 - - '@scalar/openapi-parser@0.25.7': + '@scalar/openapi-to-markdown@0.5.6(typescript@5.9.3)': dependencies: - '@scalar/helpers': 0.4.2 - '@scalar/json-magic': 0.12.4 - '@scalar/openapi-types': 0.6.1 - '@scalar/openapi-upgrader': 0.2.3 - ajv: 8.18.0 - ajv-draft-04: 1.0.0(ajv@8.18.0) - ajv-formats: 3.0.1(ajv@8.18.0) - jsonpointer: 5.0.1 - leven: 4.1.0 - yaml: 2.8.3 - - '@scalar/openapi-to-markdown@0.4.16(typescript@5.9.3)': - dependencies: - '@scalar/components': 0.21.2(typescript@5.9.3) - '@scalar/helpers': 0.4.2 - '@scalar/oas-utils': 0.10.14(typescript@5.9.3) - '@scalar/openapi-parser': 0.25.7 - '@scalar/openapi-types': 0.6.1 - '@scalar/openapi-upgrader': 0.2.3 - '@scalar/types': 0.7.5 + '@scalar/components': 0.22.2(typescript@5.9.3) + '@scalar/helpers': 0.5.1 + '@scalar/json-magic': 0.12.7 + '@scalar/workspace-store': 0.46.2(typescript@5.9.3) html-minifier-terser: 7.2.0 rehype-parse: 9.0.1 rehype-remark: 10.0.1 @@ -10799,81 +10586,49 @@ snapshots: remark-gfm: 4.0.1 remark-stringify: 11.0.0 unified: 11.0.5 - vue: 3.5.32(typescript@5.9.3) + vue: 3.5.33(typescript@5.9.3) transitivePeerDependencies: - '@vue/composition-api' - supports-color - typescript - '@scalar/openapi-types@0.6.1': - dependencies: - zod: 4.3.6 - - '@scalar/openapi-types@0.7.0': {} - - '@scalar/openapi-upgrader@0.2.3': - dependencies: - '@scalar/openapi-types': 0.6.1 + '@scalar/openapi-types@0.8.0': {} - '@scalar/openapi-upgrader@0.2.5': + '@scalar/openapi-upgrader@0.2.6': dependencies: - '@scalar/openapi-types': 0.7.0 + '@scalar/openapi-types': 0.8.0 - '@scalar/postman-to-openapi@0.6.3': + '@scalar/postman-to-openapi@0.7.0': dependencies: '@scalar/helpers': 0.5.1 - '@scalar/openapi-types': 0.7.0 + '@scalar/openapi-types': 0.8.0 - '@scalar/sidebar@0.9.2(typescript@5.9.3)': + '@scalar/sidebar@0.9.3(typescript@5.9.3)': dependencies: - '@scalar/components': 0.22.1(typescript@5.9.3) + '@scalar/components': 0.22.2(typescript@5.9.3) '@scalar/helpers': 0.5.1 '@scalar/icons': 0.7.2(typescript@5.9.3) '@scalar/themes': 0.15.3 - '@scalar/use-hooks': 0.4.2(typescript@5.9.3) - '@scalar/workspace-store': 0.46.1(typescript@5.9.3) - vue: 3.5.32(typescript@5.9.3) + '@scalar/use-hooks': 0.4.3(typescript@5.9.3) + '@scalar/workspace-store': 0.46.2(typescript@5.9.3) + vue: 3.5.33(typescript@5.9.3) transitivePeerDependencies: - '@vue/composition-api' - supports-color - typescript - '@scalar/snippetz@0.7.7': - dependencies: - '@scalar/types': 0.7.5 - js-base64: 3.7.8 - stringify-object: 6.0.0 - '@scalar/snippetz@0.9.1': dependencies: '@scalar/types': 0.9.1 js-base64: 3.7.8 stringify-object: 6.0.0 - '@scalar/themes@0.15.1': - dependencies: - nanoid: 5.1.9 - '@scalar/themes@0.15.3': dependencies: nanoid: 5.1.9 '@scalar/typebox@0.1.3': {} - '@scalar/types@0.7.5': - dependencies: - '@scalar/helpers': 0.4.2 - nanoid: 5.1.9 - type-fest: 5.5.0 - zod: 4.3.6 - - '@scalar/types@0.9.0': - dependencies: - '@scalar/helpers': 0.5.0 - nanoid: 5.1.9 - type-fest: 5.5.0 - zod: 4.3.6 - '@scalar/types@0.9.1': dependencies: '@scalar/helpers': 0.5.1 @@ -10897,66 +10652,35 @@ snapshots: '@lezer/common': 1.5.2 '@lezer/highlight': 1.2.3 '@replit/codemirror-css-color-picker': 6.3.0(@codemirror/language@6.12.3)(@codemirror/state@6.6.0)(@codemirror/view@6.41.0) - vue: 3.5.32(typescript@5.9.3) + vue: 3.5.33(typescript@5.9.3) transitivePeerDependencies: - typescript - '@scalar/use-hooks@0.4.1(typescript@5.9.3)': + '@scalar/use-hooks@0.4.3(typescript@5.9.3)': dependencies: - '@scalar/use-toasts': 0.10.1(typescript@5.9.3) - '@vueuse/core': 13.9.0(vue@3.5.32(typescript@5.9.3)) - cva: 1.0.0-beta.2(typescript@5.9.3) - tailwind-merge: 3.4.0 - vue: 3.5.32(typescript@5.9.3) - zod: 4.3.6 - transitivePeerDependencies: - - typescript - - '@scalar/use-hooks@0.4.2(typescript@5.9.3)': - dependencies: - '@scalar/use-toasts': 0.10.1(typescript@5.9.3) - '@vueuse/core': 13.9.0(vue@3.5.32(typescript@5.9.3)) - cva: 1.0.0-beta.2(typescript@5.9.3) - tailwind-merge: 3.4.0 - vue: 3.5.32(typescript@5.9.3) + '@scalar/use-toasts': 0.10.2(typescript@5.9.3) + '@vueuse/core': 13.9.0(vue@3.5.33(typescript@5.9.3)) + cva: 1.0.0-beta.4(typescript@5.9.3) + tailwind-merge: 3.5.0 + vue: 3.5.33(typescript@5.9.3) zod: 4.3.6 transitivePeerDependencies: - typescript - '@scalar/use-toasts@0.10.1(typescript@5.9.3)': + '@scalar/use-toasts@0.10.2(typescript@5.9.3)': dependencies: - vue: 3.5.32(typescript@5.9.3) + vue: 3.5.33(typescript@5.9.3) vue-sonner: 1.3.2 transitivePeerDependencies: - typescript - '@scalar/validation@0.2.0': {} - '@scalar/validation@0.3.0': {} - '@scalar/workspace-store@0.42.0(typescript@5.9.3)': - dependencies: - '@scalar/code-highlight': 0.3.1 - '@scalar/helpers': 0.4.2 - '@scalar/json-magic': 0.12.4 - '@scalar/openapi-upgrader': 0.2.3 - '@scalar/snippetz': 0.7.7 - '@scalar/typebox': 0.1.3 - '@scalar/types': 0.7.5 - '@scalar/validation': 0.2.0 - github-slugger: 2.0.0 - type-fest: 5.5.0 - vue: 3.5.32(typescript@5.9.3) - yaml: 2.8.3 - transitivePeerDependencies: - - supports-color - - typescript - - '@scalar/workspace-store@0.46.1(typescript@5.9.3)': + '@scalar/workspace-store@0.46.2(typescript@5.9.3)': dependencies: '@scalar/helpers': 0.5.1 '@scalar/json-magic': 0.12.7 - '@scalar/openapi-upgrader': 0.2.5 + '@scalar/openapi-upgrader': 0.2.6 '@scalar/snippetz': 0.9.1 '@scalar/typebox': 0.1.3 '@scalar/types': 0.9.1 @@ -10964,7 +10688,7 @@ snapshots: github-slugger: 2.0.0 js-base64: 3.7.8 type-fest: 5.5.0 - vue: 3.5.32(typescript@5.9.3) + vue: 3.5.33(typescript@5.9.3) yaml: 2.8.3 transitivePeerDependencies: - typescript @@ -11065,7 +10789,7 @@ snapshots: dependencies: tslib: 2.8.1 - '@tailwindcss/node@4.2.2': + '@tailwindcss/node@4.2.4': dependencies: '@jridgewell/remapping': 2.3.5 enhanced-resolve: 5.20.1 @@ -11073,72 +10797,72 @@ snapshots: lightningcss: 1.32.0 magic-string: 0.30.21 source-map-js: 1.2.1 - tailwindcss: 4.2.2 + tailwindcss: 4.2.4 - '@tailwindcss/oxide-android-arm64@4.2.2': + '@tailwindcss/oxide-android-arm64@4.2.4': optional: true - '@tailwindcss/oxide-darwin-arm64@4.2.2': + '@tailwindcss/oxide-darwin-arm64@4.2.4': optional: true - '@tailwindcss/oxide-darwin-x64@4.2.2': + '@tailwindcss/oxide-darwin-x64@4.2.4': optional: true - '@tailwindcss/oxide-freebsd-x64@4.2.2': + '@tailwindcss/oxide-freebsd-x64@4.2.4': optional: true - '@tailwindcss/oxide-linux-arm-gnueabihf@4.2.2': + '@tailwindcss/oxide-linux-arm-gnueabihf@4.2.4': optional: true - '@tailwindcss/oxide-linux-arm64-gnu@4.2.2': + '@tailwindcss/oxide-linux-arm64-gnu@4.2.4': optional: true - '@tailwindcss/oxide-linux-arm64-musl@4.2.2': + '@tailwindcss/oxide-linux-arm64-musl@4.2.4': optional: true - '@tailwindcss/oxide-linux-x64-gnu@4.2.2': + '@tailwindcss/oxide-linux-x64-gnu@4.2.4': optional: true - '@tailwindcss/oxide-linux-x64-musl@4.2.2': + '@tailwindcss/oxide-linux-x64-musl@4.2.4': optional: true - '@tailwindcss/oxide-wasm32-wasi@4.2.2': + '@tailwindcss/oxide-wasm32-wasi@4.2.4': optional: true - '@tailwindcss/oxide-win32-arm64-msvc@4.2.2': + '@tailwindcss/oxide-win32-arm64-msvc@4.2.4': optional: true - '@tailwindcss/oxide-win32-x64-msvc@4.2.2': + '@tailwindcss/oxide-win32-x64-msvc@4.2.4': optional: true - '@tailwindcss/oxide@4.2.2': + '@tailwindcss/oxide@4.2.4': optionalDependencies: - '@tailwindcss/oxide-android-arm64': 4.2.2 - '@tailwindcss/oxide-darwin-arm64': 4.2.2 - '@tailwindcss/oxide-darwin-x64': 4.2.2 - '@tailwindcss/oxide-freebsd-x64': 4.2.2 - '@tailwindcss/oxide-linux-arm-gnueabihf': 4.2.2 - '@tailwindcss/oxide-linux-arm64-gnu': 4.2.2 - '@tailwindcss/oxide-linux-arm64-musl': 4.2.2 - '@tailwindcss/oxide-linux-x64-gnu': 4.2.2 - '@tailwindcss/oxide-linux-x64-musl': 4.2.2 - '@tailwindcss/oxide-wasm32-wasi': 4.2.2 - '@tailwindcss/oxide-win32-arm64-msvc': 4.2.2 - '@tailwindcss/oxide-win32-x64-msvc': 4.2.2 - - '@tailwindcss/vite@4.2.2(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3))': - dependencies: - '@tailwindcss/node': 4.2.2 - '@tailwindcss/oxide': 4.2.2 - tailwindcss: 4.2.2 + '@tailwindcss/oxide-android-arm64': 4.2.4 + '@tailwindcss/oxide-darwin-arm64': 4.2.4 + '@tailwindcss/oxide-darwin-x64': 4.2.4 + '@tailwindcss/oxide-freebsd-x64': 4.2.4 + '@tailwindcss/oxide-linux-arm-gnueabihf': 4.2.4 + '@tailwindcss/oxide-linux-arm64-gnu': 4.2.4 + '@tailwindcss/oxide-linux-arm64-musl': 4.2.4 + '@tailwindcss/oxide-linux-x64-gnu': 4.2.4 + '@tailwindcss/oxide-linux-x64-musl': 4.2.4 + '@tailwindcss/oxide-wasm32-wasi': 4.2.4 + '@tailwindcss/oxide-win32-arm64-msvc': 4.2.4 + '@tailwindcss/oxide-win32-x64-msvc': 4.2.4 + + '@tailwindcss/vite@4.2.4(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3))': + dependencies: + '@tailwindcss/node': 4.2.4 + '@tailwindcss/oxide': 4.2.4 + tailwindcss: 4.2.4 vite: 7.3.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3) '@tanstack/virtual-core@3.13.23': {} - '@tanstack/vue-virtual@3.13.23(vue@3.5.32(typescript@5.9.3))': + '@tanstack/vue-virtual@3.13.23(vue@3.5.33(typescript@5.9.3))': dependencies: '@tanstack/virtual-core': 3.13.23 - vue: 3.5.32(typescript@5.9.3) + vue: 3.5.33(typescript@5.9.3) '@terrastruct/d2@0.1.33': {} @@ -11237,7 +10961,7 @@ snapshots: '@types/sax@1.2.7': dependencies: - '@types/node': 24.12.2 + '@types/node': 25.6.0 '@types/triple-beam@1.3.5': {} @@ -11301,11 +11025,11 @@ snapshots: '@ungap/structured-clone@1.3.0': {} - '@unhead/vue@2.1.13(vue@3.5.32(typescript@5.9.3))': + '@unhead/vue@2.1.13(vue@3.5.33(typescript@5.9.3))': dependencies: hookable: 6.1.1 unhead: 2.1.13 - vue: 3.5.32(typescript@5.9.3) + vue: 3.5.33(typescript@5.9.3) '@unocss/astro@66.4.2(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3))': dependencies: @@ -11509,29 +11233,29 @@ snapshots: transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue-jsx@4.2.0(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3))(vue@3.5.32(typescript@5.9.3))': + '@vitejs/plugin-vue-jsx@4.2.0(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3))(vue@3.5.33(typescript@5.9.3))': dependencies: '@babel/core': 7.29.0 '@babel/plugin-transform-typescript': 7.28.6(@babel/core@7.29.0) '@rolldown/pluginutils': 1.0.0-rc.16 '@vue/babel-plugin-jsx': 1.5.0(@babel/core@7.29.0) vite: 6.4.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3) - vue: 3.5.32(typescript@5.9.3) + vue: 3.5.33(typescript@5.9.3) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue@5.2.4(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3))(vue@3.5.32(typescript@5.9.3))': + '@vitejs/plugin-vue@5.2.4(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3))(vue@3.5.33(typescript@5.9.3))': dependencies: vite: 6.4.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3) - vue: 3.5.32(typescript@5.9.3) + vue: 3.5.33(typescript@5.9.3) - '@vitejs/plugin-vue@6.0.6(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3))(vue@3.5.32(typescript@5.9.3))': + '@vitejs/plugin-vue@6.0.6(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3))(vue@3.5.33(typescript@5.9.3))': dependencies: '@rolldown/pluginutils': 1.0.0-rc.13 vite: 7.3.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3) - vue: 3.5.32(typescript@5.9.3) + vue: 3.5.33(typescript@5.9.3) - '@vue-macros/common@3.1.2(vue@3.5.32(typescript@5.9.3))': + '@vue-macros/common@3.1.2(vue@3.5.33(typescript@5.9.3))': dependencies: '@vue/compiler-sfc': 3.5.32 ast-kit: 2.2.0 @@ -11539,7 +11263,7 @@ snapshots: magic-string-ast: 1.0.3 unplugin-utils: 0.3.1 optionalDependencies: - vue: 3.5.32(typescript@5.9.3) + vue: 3.5.33(typescript@5.9.3) '@vue/babel-helper-vue-transform-on@1.5.0': {} @@ -11578,11 +11302,24 @@ snapshots: estree-walker: 2.0.2 source-map-js: 1.2.1 + '@vue/compiler-core@3.5.33': + dependencies: + '@babel/parser': 7.29.2 + '@vue/shared': 3.5.33 + entities: 7.0.1 + estree-walker: 2.0.2 + source-map-js: 1.2.1 + '@vue/compiler-dom@3.5.32': dependencies: '@vue/compiler-core': 3.5.32 '@vue/shared': 3.5.32 + '@vue/compiler-dom@3.5.33': + dependencies: + '@vue/compiler-core': 3.5.33 + '@vue/shared': 3.5.33 + '@vue/compiler-sfc@3.5.32': dependencies: '@babel/parser': 7.29.2 @@ -11595,16 +11332,33 @@ snapshots: postcss: 8.5.10 source-map-js: 1.2.1 + '@vue/compiler-sfc@3.5.33': + dependencies: + '@babel/parser': 7.29.2 + '@vue/compiler-core': 3.5.33 + '@vue/compiler-dom': 3.5.33 + '@vue/compiler-ssr': 3.5.33 + '@vue/shared': 3.5.33 + estree-walker: 2.0.2 + magic-string: 0.30.21 + postcss: 8.5.10 + source-map-js: 1.2.1 + '@vue/compiler-ssr@3.5.32': dependencies: '@vue/compiler-dom': 3.5.32 '@vue/shared': 3.5.32 + '@vue/compiler-ssr@3.5.33': + dependencies: + '@vue/compiler-dom': 3.5.33 + '@vue/shared': 3.5.33 + '@vue/devtools-api@8.1.1': dependencies: '@vue/devtools-kit': 8.1.1 - '@vue/devtools-core@7.7.9(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3))(vue@3.5.32(typescript@5.9.3))': + '@vue/devtools-core@7.7.9(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3))(vue@3.5.33(typescript@5.9.3))': dependencies: '@vue/devtools-kit': 7.7.9 '@vue/devtools-shared': 7.7.9 @@ -11612,7 +11366,7 @@ snapshots: nanoid: 5.1.9 pathe: 2.0.3 vite-hot-client: 2.1.0(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3)) - vue: 3.5.32(typescript@5.9.3) + vue: 3.5.33(typescript@5.9.3) transitivePeerDependencies: - vite @@ -11639,52 +11393,54 @@ snapshots: '@vue/devtools-shared@8.1.1': {} - '@vue/reactivity@3.5.32': + '@vue/reactivity@3.5.33': dependencies: - '@vue/shared': 3.5.32 + '@vue/shared': 3.5.33 - '@vue/runtime-core@3.5.32': + '@vue/runtime-core@3.5.33': dependencies: - '@vue/reactivity': 3.5.32 - '@vue/shared': 3.5.32 + '@vue/reactivity': 3.5.33 + '@vue/shared': 3.5.33 - '@vue/runtime-dom@3.5.32': + '@vue/runtime-dom@3.5.33': dependencies: - '@vue/reactivity': 3.5.32 - '@vue/runtime-core': 3.5.32 - '@vue/shared': 3.5.32 + '@vue/reactivity': 3.5.33 + '@vue/runtime-core': 3.5.33 + '@vue/shared': 3.5.33 csstype: 3.2.3 - '@vue/server-renderer@3.5.32(vue@3.5.32(typescript@5.9.3))': + '@vue/server-renderer@3.5.33(vue@3.5.33(typescript@5.9.3))': dependencies: - '@vue/compiler-ssr': 3.5.32 - '@vue/shared': 3.5.32 - vue: 3.5.32(typescript@5.9.3) + '@vue/compiler-ssr': 3.5.33 + '@vue/shared': 3.5.33 + vue: 3.5.33(typescript@5.9.3) '@vue/shared@3.5.32': {} - '@vueuse/core@10.11.1(vue@3.5.32(typescript@5.9.3))': + '@vue/shared@3.5.33': {} + + '@vueuse/core@10.11.1(vue@3.5.33(typescript@5.9.3))': dependencies: '@types/web-bluetooth': 0.0.20 '@vueuse/metadata': 10.11.1 - '@vueuse/shared': 10.11.1(vue@3.5.32(typescript@5.9.3)) - vue-demi: 0.14.10(vue@3.5.32(typescript@5.9.3)) + '@vueuse/shared': 10.11.1(vue@3.5.33(typescript@5.9.3)) + vue-demi: 0.14.10(vue@3.5.33(typescript@5.9.3)) transitivePeerDependencies: - '@vue/composition-api' - vue - '@vueuse/core@13.9.0(vue@3.5.32(typescript@5.9.3))': + '@vueuse/core@13.9.0(vue@3.5.33(typescript@5.9.3))': dependencies: '@types/web-bluetooth': 0.0.21 '@vueuse/metadata': 13.9.0 - '@vueuse/shared': 13.9.0(vue@3.5.32(typescript@5.9.3)) - vue: 3.5.32(typescript@5.9.3) + '@vueuse/shared': 13.9.0(vue@3.5.33(typescript@5.9.3)) + vue: 3.5.33(typescript@5.9.3) - '@vueuse/integrations@13.9.0(focus-trap@7.8.0)(fuse.js@7.3.0)(jwt-decode@4.0.0)(vue@3.5.32(typescript@5.9.3))': + '@vueuse/integrations@13.9.0(focus-trap@7.8.0)(fuse.js@7.3.0)(jwt-decode@4.0.0)(vue@3.5.33(typescript@5.9.3))': dependencies: - '@vueuse/core': 13.9.0(vue@3.5.32(typescript@5.9.3)) - '@vueuse/shared': 13.9.0(vue@3.5.32(typescript@5.9.3)) - vue: 3.5.32(typescript@5.9.3) + '@vueuse/core': 13.9.0(vue@3.5.33(typescript@5.9.3)) + '@vueuse/shared': 13.9.0(vue@3.5.33(typescript@5.9.3)) + vue: 3.5.33(typescript@5.9.3) optionalDependencies: focus-trap: 7.8.0 fuse.js: 7.3.0 @@ -11694,16 +11450,16 @@ snapshots: '@vueuse/metadata@13.9.0': {} - '@vueuse/shared@10.11.1(vue@3.5.32(typescript@5.9.3))': + '@vueuse/shared@10.11.1(vue@3.5.33(typescript@5.9.3))': dependencies: - vue-demi: 0.14.10(vue@3.5.32(typescript@5.9.3)) + vue-demi: 0.14.10(vue@3.5.33(typescript@5.9.3)) transitivePeerDependencies: - '@vue/composition-api' - vue - '@vueuse/shared@13.9.0(vue@3.5.32(typescript@5.9.3))': + '@vueuse/shared@13.9.0(vue@3.5.33(typescript@5.9.3))': dependencies: - vue: 3.5.32(typescript@5.9.3) + vue: 3.5.33(typescript@5.9.3) '@webgpu/types@0.1.21': {} @@ -11798,10 +11554,6 @@ snapshots: '@opentelemetry/api': 1.9.0 zod: 4.3.6 - ajv-draft-04@1.0.0(ajv@8.18.0): - optionalDependencies: - ajv: 8.18.0 - ajv-errors@3.0.0(ajv@8.18.0): dependencies: ajv: 8.18.0 @@ -12181,7 +11933,7 @@ snapshots: bytes: 3.1.2 content-type: 1.0.5 debug: 4.4.3(supports-color@10.2.2) - http-errors: 2.0.0 + http-errors: 2.0.1 iconv-lite: 0.7.2 on-finished: 2.4.1 qs: 6.15.1 @@ -12546,12 +12298,6 @@ snapshots: csstype@3.2.3: {} - cva@1.0.0-beta.2(typescript@5.9.3): - dependencies: - clsx: 2.1.1 - optionalDependencies: - typescript: 5.9.3 - cva@1.0.0-beta.4(typescript@5.9.3): dependencies: clsx: 2.1.1 @@ -13142,7 +12888,7 @@ snapshots: etag: 1.8.1 finalhandler: 2.1.1 fresh: 2.0.0 - http-errors: 2.0.0 + http-errors: 2.0.1 merge-descriptors: 2.0.0 mime-types: 3.0.2 on-finished: 2.4.1 @@ -13154,7 +12900,7 @@ snapshots: router: 2.2.0 send: 1.2.1 serve-static: 2.2.1 - statuses: 2.0.1 + statuses: 2.0.2 type-is: 2.0.1 vary: 1.1.2 transitivePeerDependencies: @@ -13293,7 +13039,7 @@ snapshots: escape-html: 1.0.3 on-finished: 2.4.1 parseurl: 1.3.3 - statuses: 2.0.1 + statuses: 2.0.2 transitivePeerDependencies: - supports-color @@ -13755,8 +13501,6 @@ snapshots: highlight.js@11.11.1: {} - highlightjs-curl@1.3.0: {} - hookable@5.5.3: {} hookable@6.1.1: {} @@ -13860,8 +13604,6 @@ snapshots: human-signals@8.0.1: {} - husky@9.1.7: {} - i18next@23.16.8: dependencies: '@babel/runtime': 7.29.2 @@ -14304,8 +14046,6 @@ snapshots: junk@4.0.1: {} - just-clone@6.2.0: {} - jwa@2.0.1: dependencies: buffer-equal-constant-time: 1.0.1 @@ -14351,8 +14091,6 @@ snapshots: leven@3.1.0: {} - leven@4.1.0: {} - light-my-request@6.6.0: dependencies: cookie: 1.1.1 @@ -15184,7 +14922,7 @@ snapshots: neotraverse@0.6.18: {} - netlify-cli@25.0.1(@types/node@25.6.0)(picomatch@4.0.4)(rollup@4.60.1): + netlify-cli@25.3.0(@types/node@25.6.0)(picomatch@4.0.4)(rollup@4.60.1): dependencies: '@fastify/static': 9.0.0 '@netlify/ai': 0.4.1 @@ -15782,7 +15520,7 @@ snapshots: exsolve: 1.0.8 pathe: 2.0.3 - pnpm@10.33.0: {} + pnpm@10.33.1: {} possible-typed-array-names@1.1.0: {} @@ -15857,8 +15595,6 @@ snapshots: prettier@3.8.3: {} - pretty-bytes@7.1.0: {} - pretty-ms@9.3.0: dependencies: parse-ms: 4.0.0 @@ -15933,20 +15669,20 @@ snapshots: quote-unquote@1.0.0: {} - radix-vue@1.9.17(vue@3.5.32(typescript@5.9.3)): + radix-vue@1.9.17(vue@3.5.33(typescript@5.9.3)): dependencies: '@floating-ui/dom': 1.7.6 - '@floating-ui/vue': 1.1.9(vue@3.5.32(typescript@5.9.3)) + '@floating-ui/vue': 1.1.9(vue@3.5.33(typescript@5.9.3)) '@internationalized/date': 3.12.1 '@internationalized/number': 3.6.6 - '@tanstack/vue-virtual': 3.13.23(vue@3.5.32(typescript@5.9.3)) - '@vueuse/core': 10.11.1(vue@3.5.32(typescript@5.9.3)) - '@vueuse/shared': 10.11.1(vue@3.5.32(typescript@5.9.3)) + '@tanstack/vue-virtual': 3.13.23(vue@3.5.33(typescript@5.9.3)) + '@vueuse/core': 10.11.1(vue@3.5.33(typescript@5.9.3)) + '@vueuse/shared': 10.11.1(vue@3.5.33(typescript@5.9.3)) aria-hidden: 1.2.6 defu: 6.1.7 fast-deep-equal: 3.1.3 nanoid: 5.1.9 - vue: 3.5.32(typescript@5.9.3) + vue: 3.5.33(typescript@5.9.3) transitivePeerDependencies: - '@vue/composition-api' @@ -16974,17 +16710,17 @@ snapshots: picocolors: 1.1.1 sax: 1.6.0 - swrv@1.2.0(vue@3.5.32(typescript@5.9.3)): + swrv@1.2.0(vue@3.5.33(typescript@5.9.3)): dependencies: - vue: 3.5.32(typescript@5.9.3) + vue: 3.5.33(typescript@5.9.3) tabbable@6.4.0: {} tagged-tag@1.0.0: {} - tailwind-merge@3.4.0: {} + tailwind-merge@3.5.0: {} - tailwindcss@4.2.2: {} + tailwindcss@4.2.4: {} tapable@2.3.2: {} @@ -17107,8 +16843,6 @@ snapshots: dependencies: typescript: 5.9.3 - ts-deepmerge@7.0.3: {} - ts-node@10.9.2(@types/node@25.6.0)(typescript@5.9.3): dependencies: '@cspotcode/source-map-support': 0.8.1 @@ -17355,7 +17089,7 @@ snapshots: unpipe@1.0.0: {} - unplugin-icons@23.0.1(@vue/compiler-sfc@3.5.32): + unplugin-icons@23.0.1(@vue/compiler-sfc@3.5.33): dependencies: '@antfu/install-pkg': 1.1.0 '@iconify/utils': 3.1.0 @@ -17363,7 +17097,7 @@ snapshots: obug: 2.1.1 unplugin: 2.3.11 optionalDependencies: - '@vue/compiler-sfc': 3.5.32 + '@vue/compiler-sfc': 3.5.33 unplugin-utils@0.2.5: dependencies: @@ -17515,9 +17249,9 @@ snapshots: dependencies: vite: 7.3.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3) - vite-plugin-vue-devtools@7.7.9(rollup@4.60.1)(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3))(vue@3.5.32(typescript@5.9.3)): + vite-plugin-vue-devtools@7.7.9(rollup@4.60.1)(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3))(vue@3.5.33(typescript@5.9.3)): dependencies: - '@vue/devtools-core': 7.7.9(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3))(vue@3.5.32(typescript@5.9.3)) + '@vue/devtools-core': 7.7.9(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3))(vue@3.5.33(typescript@5.9.3)) '@vue/devtools-kit': 7.7.9 '@vue/devtools-shared': 7.7.9 execa: 9.6.1 @@ -17597,16 +17331,16 @@ snapshots: vue-component-type-helpers@3.2.6: {} - vue-demi@0.14.10(vue@3.5.32(typescript@5.9.3)): + vue-demi@0.14.10(vue@3.5.33(typescript@5.9.3)): dependencies: - vue: 3.5.32(typescript@5.9.3) + vue: 3.5.33(typescript@5.9.3) vue-flow-layout@0.2.0: {} - vue-router@5.0.4(@vue/compiler-sfc@3.5.32)(vue@3.5.32(typescript@5.9.3)): + vue-router@5.0.4(@vue/compiler-sfc@3.5.33)(vue@3.5.33(typescript@5.9.3)): dependencies: '@babel/generator': 7.29.1 - '@vue-macros/common': 3.1.2(vue@3.5.32(typescript@5.9.3)) + '@vue-macros/common': 3.1.2(vue@3.5.33(typescript@5.9.3)) '@vue/devtools-api': 8.1.1 ast-walker-scope: 0.8.3 chokidar: 5.0.0 @@ -17621,20 +17355,20 @@ snapshots: tinyglobby: 0.2.16 unplugin: 3.0.0 unplugin-utils: 0.3.1 - vue: 3.5.32(typescript@5.9.3) + vue: 3.5.33(typescript@5.9.3) yaml: 2.8.3 optionalDependencies: - '@vue/compiler-sfc': 3.5.32 + '@vue/compiler-sfc': 3.5.33 vue-sonner@1.3.2: {} - vue@3.5.32(typescript@5.9.3): + vue@3.5.33(typescript@5.9.3): dependencies: - '@vue/compiler-dom': 3.5.32 - '@vue/compiler-sfc': 3.5.32 - '@vue/runtime-dom': 3.5.32 - '@vue/server-renderer': 3.5.32(vue@3.5.32(typescript@5.9.3)) - '@vue/shared': 3.5.32 + '@vue/compiler-dom': 3.5.33 + '@vue/compiler-sfc': 3.5.33 + '@vue/runtime-dom': 3.5.33 + '@vue/server-renderer': 3.5.33(vue@3.5.33(typescript@5.9.3)) + '@vue/shared': 3.5.33 optionalDependencies: typescript: 5.9.3 From e62bca258b46de6de438f9b8e42f2ee3522dcdf2 Mon Sep 17 00:00:00 2001 From: Ravi Madabhushi Date: Thu, 23 Apr 2026 15:06:00 +0530 Subject: [PATCH 03/36] upgrade to astro 6 and latest starlight plugins MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - astro 5.18.1 → 6.1.9 - @astrojs/starlight 0.37.7 → 0.38.3 - @astrojs/mdx 4 → 5, @astrojs/netlify 6 → 7, @astrojs/vue 5 → 6, @astrojs/starlight-tailwind 4 → 5 - unlock all starlight plugins to latest astro-6-compatible versions - recreate vite-plugin-static-copy patch for 4.1.0 (upstream PR still open) - update PATCHES.md with new patch version --- package.json | 32 +- ...ch => vite-plugin-static-copy@4.1.0.patch} | 8 +- pnpm-lock.yaml | 1306 ++++++----------- project-docs/PATCHES.md | 6 +- 4 files changed, 483 insertions(+), 869 deletions(-) rename patches/{vite-plugin-static-copy@3.4.0.patch => vite-plugin-static-copy@4.1.0.patch} (65%) diff --git a/package.json b/package.json index a24eb56a3..a51901986 100644 --- a/package.json +++ b/package.json @@ -20,13 +20,13 @@ "sync-agent-connectors": "node scripts/sync-agent-connectors.js" }, "dependencies": { - "@astrojs/mdx": "^4.3.14", - "@astrojs/netlify": "^6.6.5", + "@astrojs/mdx": "^5.0.4", + "@astrojs/netlify": "^7.0.8", "@astrojs/react": "^5.0.4", - "@astrojs/starlight": "^0.37.7", + "@astrojs/starlight": "^0.38.3", "@astrojs/starlight-docsearch": "file:vendor/docsearch", - "@astrojs/starlight-tailwind": "^4.0.2", - "@astrojs/vue": "^5.1.4", + "@astrojs/starlight-tailwind": "^5.0.0", + "@astrojs/vue": "^6.0.1", "@expressive-code/plugin-collapsible-sections": "^0.41.7", "@expressive-code/plugin-line-numbers": "^0.41.7", "@fontsource-variable/atkinson-hyperlegible-next": "^5.2.6", @@ -40,8 +40,8 @@ "@tailwindcss/vite": "^4.2.4", "@usesapient/agent-tracker": "^0.1.1", "accessible-astro-components": "^5.2.0", - "astro": "^5.18.1", - "astro-d2": "^0.9.0", + "astro": "^6.1.9", + "astro-d2": "^0.10.0", "astro-loader-github-releases": "^2.1.1", "astro-og-canvas": "^0.10.1", "canvaskit-wasm": "0.40.0", @@ -49,18 +49,18 @@ "react": "^19.2.5", "react-dom": "^19.2.5", "sharp": "^0.34.5", - "starlight-blog": "^0.25.3", - "starlight-image-zoom": "^0.13.2", - "starlight-links-validator": "^0.19.2", - "starlight-llms-txt": "^0.7.0", + "starlight-blog": "^0.26.1", + "starlight-image-zoom": "^0.14.1", + "starlight-links-validator": "^0.23.0", + "starlight-llms-txt": "^0.8.1", "starlight-package-managers": "^0.12.0", - "starlight-page-actions": "^0.5.0", + "starlight-page-actions": "^0.6.0", "starlight-plugin-icons": "^1.1.6", "starlight-showcases": "^0.3.2", - "starlight-sidebar-topics": "^0.6.2", - "starlight-sidebar-topics-dropdown": "^0.5.4", + "starlight-sidebar-topics": "^0.7.1", + "starlight-sidebar-topics-dropdown": "^0.6.0", "starlight-theme-nova": "^0.11.9", - "starlight-videos": "^0.3.1", + "starlight-videos": "^0.4.0", "tailwindcss": "^4.2.4", "unplugin-icons": "^23.0.1", "vue": "^3.5.33" @@ -97,7 +97,7 @@ "mdast-util-to-hast": "^13.2.1" }, "patchedDependencies": { - "vite-plugin-static-copy@3.4.0": "patches/vite-plugin-static-copy@3.4.0.patch" + "vite-plugin-static-copy@4.1.0": "patches/vite-plugin-static-copy@4.1.0.patch" } } } diff --git a/patches/vite-plugin-static-copy@3.4.0.patch b/patches/vite-plugin-static-copy@4.1.0.patch similarity index 65% rename from patches/vite-plugin-static-copy@3.4.0.patch rename to patches/vite-plugin-static-copy@4.1.0.patch index 06e2c9724..cdff3783a 100644 --- a/patches/vite-plugin-static-copy@3.4.0.patch +++ b/patches/vite-plugin-static-copy@4.1.0.patch @@ -1,14 +1,14 @@ diff --git a/dist/index.js b/dist/index.js -index 6c8e47110353c07233497ee250a10bc626d8efc5..48a6304df17dc316239fee040536540d3f6cbdd6 100644 +index 8703f1bd5f6438c61a80b9fc842722820bd9a49f..835dfa2cf82fae6eee47fb478108055d858856a3 100644 --- a/dist/index.js +++ b/dist/index.js -@@ -1080,7 +1080,8 @@ const buildPlugin = ({ targets, structured, silent, hook, environment }) => { +@@ -1069,7 +1069,8 @@ const buildPlugin = ({ targets, silent, hook, environment }) => { if (this.environment && this.environment.name !== environment) return; if (output) return; output = true; -- const result = await copyAll(config.root, config.build.outDir, targets, structured, silent); +- const result = await copyAll(config.root, config.build.outDir, targets, silent); + const outDir = this.environment?.config?.build?.outDir ?? config.build.outDir; -+ const result = await copyAll(config.root, outDir, targets, structured, silent); ++ const result = await copyAll(config.root, outDir, targets, silent); if (!silent) outputCopyLog(config.logger, result); } }; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 083dda0ee..6955e835f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,36 +9,31 @@ overrides: glob: ^11.0.0 mdast-util-to-hast: ^13.2.1 -patchedDependencies: - vite-plugin-static-copy@3.4.0: - hash: af70d2811d381cdea319ad374155ad8bf276cf04bf80834dd64bc0800a7cd4a3 - path: patches/vite-plugin-static-copy@3.4.0.patch - importers: .: dependencies: '@astrojs/mdx': - specifier: ^4.3.14 - version: 4.3.14(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)) + specifier: ^5.0.4 + version: 5.0.4(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)) '@astrojs/netlify': - specifier: ^6.6.5 - version: 6.6.5(@types/node@25.6.0)(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3))(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(yaml@2.8.3) + specifier: ^7.0.8 + version: 7.0.8(@types/node@25.6.0)(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3))(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(yaml@2.8.3) '@astrojs/react': specifier: ^5.0.4 version: 5.0.4(@types/node@25.6.0)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(jiti@2.6.1)(lightningcss@1.32.0)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(terser@5.46.1)(yaml@2.8.3) '@astrojs/starlight': - specifier: ^0.37.7 - version: 0.37.7(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)) + specifier: ^0.38.3 + version: 0.38.3(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)) '@astrojs/starlight-docsearch': specifier: file:vendor/docsearch - version: file:vendor/docsearch(@astrojs/starlight@0.37.7(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3))) + version: file:vendor/docsearch(@astrojs/starlight@0.38.3(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3))) '@astrojs/starlight-tailwind': - specifier: ^4.0.2 - version: 4.0.2(@astrojs/starlight@0.37.7(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)))(tailwindcss@4.2.4) + specifier: ^5.0.0 + version: 5.0.0(@astrojs/starlight@0.38.3(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)))(tailwindcss@4.2.4) '@astrojs/vue': - specifier: ^5.1.4 - version: 5.1.4(@types/node@25.6.0)(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3))(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(vue@3.5.33(typescript@5.9.3))(yaml@2.8.3) + specifier: ^6.0.1 + version: 6.0.1(@types/node@25.6.0)(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3))(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(vue@3.5.33(typescript@5.9.3))(yaml@2.8.3) '@expressive-code/plugin-collapsible-sections': specifier: ^0.41.7 version: 0.41.7 @@ -59,7 +54,7 @@ importers: version: 5.2.8 '@hideoo/starlight-plugins-docs-components': specifier: ^0.4.2 - version: 0.4.2(@astrojs/starlight@0.37.7(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3))) + version: 0.4.2(@astrojs/starlight@0.38.3(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3))) '@iconify/json': specifier: ^2.2.465 version: 2.2.465 @@ -68,7 +63,7 @@ importers: version: 1.52.5(@vue/compiler-sfc@3.5.33)(jwt-decode@4.0.0)(tailwindcss@4.2.4)(typescript@5.9.3) '@scalar/astro': specifier: ^0.2.9 - version: 0.2.9(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)) + version: 0.2.9(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)) '@tailwindcss/vite': specifier: ^4.2.4 version: 4.2.4(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3)) @@ -79,17 +74,17 @@ importers: specifier: ^5.2.0 version: 5.2.0 astro: - specifier: ^5.18.1 - version: 5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3) + specifier: ^6.1.9 + version: 6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3) astro-d2: - specifier: ^0.9.0 - version: 0.9.0(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)) + specifier: ^0.10.0 + version: 0.10.0(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)) astro-loader-github-releases: specifier: ^2.1.1 - version: 2.1.1(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)) + version: 2.1.1(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)) astro-og-canvas: specifier: ^0.10.1 - version: 0.10.1(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)) + version: 0.10.1(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)) canvaskit-wasm: specifier: 0.40.0 version: 0.40.0 @@ -106,41 +101,41 @@ importers: specifier: ^0.34.5 version: 0.34.5 starlight-blog: - specifier: ^0.25.3 - version: 0.25.3(@astrojs/starlight@0.37.7(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)))(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)) + specifier: ^0.26.1 + version: 0.26.1(@astrojs/starlight@0.38.3(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)))(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)) starlight-image-zoom: - specifier: ^0.13.2 - version: 0.13.2(@astrojs/starlight@0.37.7(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3))) + specifier: ^0.14.1 + version: 0.14.1(@astrojs/starlight@0.38.3(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3))) starlight-links-validator: - specifier: ^0.19.2 - version: 0.19.2(@astrojs/starlight@0.37.7(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)))(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)) + specifier: ^0.23.0 + version: 0.23.0(@astrojs/starlight@0.38.3(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)))(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)) starlight-llms-txt: - specifier: ^0.7.0 - version: 0.7.0(@astrojs/starlight@0.37.7(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)))(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)) + specifier: ^0.8.1 + version: 0.8.1(@astrojs/starlight@0.38.3(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)))(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)) starlight-package-managers: specifier: ^0.12.0 - version: 0.12.0(@astrojs/starlight@0.37.7(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3))) + version: 0.12.0(@astrojs/starlight@0.38.3(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3))) starlight-page-actions: - specifier: ^0.5.0 - version: 0.5.0(@astrojs/starlight@0.37.7(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)))(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3))(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3)) + specifier: ^0.6.0 + version: 0.6.0(@astrojs/starlight@0.38.3(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)))(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3))(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3)) starlight-plugin-icons: specifier: ^1.1.6 - version: 1.1.6(@astrojs/starlight@0.37.7(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)))(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(unocss@66.4.2(postcss@8.5.10)(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3)))(zod@4.3.6) + version: 1.1.6(@astrojs/starlight@0.38.3(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)))(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(unocss@66.4.2(postcss@8.5.10)(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3)))(zod@4.3.6) starlight-showcases: specifier: ^0.3.2 - version: 0.3.2(@astrojs/starlight@0.37.7(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3))) + version: 0.3.2(@astrojs/starlight@0.38.3(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3))) starlight-sidebar-topics: - specifier: ^0.6.2 - version: 0.6.2(@astrojs/starlight@0.37.7(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3))) + specifier: ^0.7.1 + version: 0.7.1(@astrojs/starlight@0.38.3(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3))) starlight-sidebar-topics-dropdown: - specifier: ^0.5.4 - version: 0.5.4(@astrojs/starlight@0.37.7(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)))(starlight-sidebar-topics@0.6.2(@astrojs/starlight@0.37.7(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)))) + specifier: ^0.6.0 + version: 0.6.0(@astrojs/starlight@0.38.3(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)))(starlight-sidebar-topics@0.7.1(@astrojs/starlight@0.38.3(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)))) starlight-theme-nova: specifier: ^0.11.9 - version: 0.11.9(@astrojs/starlight@0.37.7(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)))(typescript@5.9.3) + version: 0.11.9(@astrojs/starlight@0.38.3(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)))(typescript@5.9.3) starlight-videos: - specifier: ^0.3.1 - version: 0.3.1(@astrojs/starlight@0.37.7(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3))) + specifier: ^0.4.0 + version: 0.4.0(@astrojs/starlight@0.38.3(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3))) tailwindcss: specifier: ^4.2.4 version: 4.2.4 @@ -231,9 +226,6 @@ packages: '@antfu/install-pkg@1.1.0': resolution: {integrity: sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==} - '@antfu/utils@0.7.10': - resolution: {integrity: sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww==} - '@aria-ui/core@0.2.0': resolution: {integrity: sha512-TjgmdWBk1PCV3a0xco0ivcrKnyblCq49pxl9LwJRUsy+8UMBIBHQNmvAlLdaaJw19ulUKgeLzbzBhfcYhnxLeQ==} @@ -255,29 +247,29 @@ packages: '@astrojs/compiler@2.13.1': resolution: {integrity: sha512-f3FN83d2G/v32ipNClRKgYv30onQlMZX1vCeZMjPsMMPl1mDpmbl0+N5BYo4S/ofzqJyS5hvwacEo0CCVDn/Qg==} - '@astrojs/internal-helpers@0.7.6': - resolution: {integrity: sha512-GOle7smBWKfMSP8osUIGOlB5kaHdQLV3foCsf+5Q9Wsuu+C6Fs3Ez/ttXmhjZ1HkSgsogcM1RXSjjOVieHq16Q==} + '@astrojs/compiler@3.0.1': + resolution: {integrity: sha512-z97oYbdebO5aoWzuJ/8q5hLK232+17KcLZ7cJ8BCWk6+qNzVxn/gftC0KzMBUTD8WAaBkPpNSQK6PXLnNrZ0CA==} '@astrojs/internal-helpers@0.9.0': resolution: {integrity: sha512-GdYkzR26re8izmyYlBqf4z2s7zNngmWLFuxw0UKiPNqHraZGS6GKWIwSHgS22RDlu2ePFJ8bzmpBcUszut/SDg==} - '@astrojs/markdown-remark@6.3.11': - resolution: {integrity: sha512-hcaxX/5aC6lQgHeGh1i+aauvSwIT6cfyFjKWvExYSxUhZZBBdvCliOtu06gbQyhbe0pGJNoNmqNlQZ5zYUuIyQ==} + '@astrojs/markdown-remark@7.1.1': + resolution: {integrity: sha512-C6e9BnLGlbdv6bV8MYGeHpHxsUHrCrB4OuRLqi5LI7oiBVcBcqfUN06zpwFQdHgV48QCCrMmLpyqBr7VqC+swA==} - '@astrojs/mdx@4.3.14': - resolution: {integrity: sha512-FBrqJQORVm+rkRa2TS5CjU9PBA6hkhrwLVBSS9A77gN2+iehvjq1w6yya/d0YKC7osiVorKkr3Qd9wNbl0ZkGA==} - engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0} + '@astrojs/mdx@5.0.4': + resolution: {integrity: sha512-tSbuuYueNODiFAFaME7pjHY5lOLoxBYJi1cKd6scw9+a4ZO7C7UGdafEoVAQvOV2eO8a6RaHSAJYGVPL1w8BPA==} + engines: {node: '>=22.12.0'} peerDependencies: - astro: ^5.0.0 + astro: ^6.0.0 - '@astrojs/netlify@6.6.5': - resolution: {integrity: sha512-TE3GABF144NxJ/A8jUSzKlSRzaraPKaBba+3bY93XA8ejhTXoraqHdYSWnp/PvfMWYZnbHtEaW/GgKlE20h+EA==} + '@astrojs/netlify@7.0.8': + resolution: {integrity: sha512-wOkOMoiUePWrGGOEvaXAC8PzUUYIWB16oChOzH/Ziy9teMkgc56TifNW9SiIussylMJQNjhC+AJYoWUHkKiiuQ==} peerDependencies: - astro: ^5.7.0 + astro: ^6.0.0 - '@astrojs/prism@3.3.0': - resolution: {integrity: sha512-q8VwfU/fDZNoDOf+r7jUnMC2//H2l0TuQ6FkGJL8vD8nw/q5KiL3DS1KKBI3QhI9UQhpJ5dc7AtqfbXWuOgLCQ==} - engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0} + '@astrojs/prism@4.0.1': + resolution: {integrity: sha512-nksZQVjlferuWzhPsBpQ1JE5XuKAf1id1/9Hj4a9KG4+ofrlzxUUwX4YGQF/SuDiuiGKEnzopGOt38F3AnVWsQ==} + engines: {node: '>=22.12.0'} '@astrojs/react@5.0.4': resolution: {integrity: sha512-yDNE4VnKOzCjH9dCBi7pT4F6kpI3M9TkS+uxnCB0sGIS6t5vKonOY+Hs/UUnSajJGT5jeBRfpI9IQp+r/n1fBA==} @@ -299,30 +291,30 @@ packages: peerDependencies: '@astrojs/starlight': '>=0.32.0' - '@astrojs/starlight-tailwind@4.0.2': - resolution: {integrity: sha512-SYN/6zq6hJO5tWqbQ2tWT9/jd8ubUkzkBCcF94vByC/ZJ20Mi5GPjFvAh89Yky/aIM+jXxT6W5q4p6l58GKHiQ==} + '@astrojs/starlight-tailwind@5.0.0': + resolution: {integrity: sha512-VivF+bWg++4ma/ffr5sgHsd/ONtGdVJIKAaRZ6jmL4yqxy7bviu59MGNi5aW3nd8psP9i/aivBTrpwGxRM1XyA==} peerDependencies: - '@astrojs/starlight': '>=0.34.0' + '@astrojs/starlight': '>=0.38.0' tailwindcss: ^4.0.0 - '@astrojs/starlight@0.37.7': - resolution: {integrity: sha512-KyBnou8aKIlPJUSNx6a1SN7XyH22oj/VAvTGC+Edld4Bnei1A//pmCRTBvSrSeoGrdUjK0ErFUfaEhhO1bPfDg==} + '@astrojs/starlight@0.38.3': + resolution: {integrity: sha512-kDlJPlUDdQFWYmyFM2yUPo66yws7v067AEK+/rQjjoVyqehL3DabuOJuy6UJFFTFyGbHxYcBms/ITEgdW7tphw==} peerDependencies: - astro: ^5.5.0 + astro: ^6.0.0 - '@astrojs/telemetry@3.3.0': - resolution: {integrity: sha512-UFBgfeldP06qu6khs/yY+q1cDAaArM2/7AEIqQ9Cuvf7B1hNLq0xDrZkct+QoIGyjq56y8IaE2I3CTvG99mlhQ==} + '@astrojs/telemetry@3.3.1': + resolution: {integrity: sha512-7fcIxXS9J4ls5tr8b3ww9rbAIz2+HrhNJYZdkAhhB4za/I5IZ/60g+Bs8q7zwG0tOIZfNB4JWhVJ1Qkl/OrNCw==} engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0} - '@astrojs/underscore-redirects@1.0.0': - resolution: {integrity: sha512-qZxHwVnmb5FXuvRsaIGaqWgnftjCuMY+GSbaVZdBmE4j8AfgPqKPxYp8SUERyJcjpKCEmO4wD6ybuGH8A2kVRQ==} + '@astrojs/underscore-redirects@1.0.3': + resolution: {integrity: sha512-cxnGSw+sJigBLdX4TMSZKkzV6C3gMLJMucDk2W+n281Xhie68T2/9f1+1NMNDCZsc5i0FED7Qt5I10g2O9wtZg==} - '@astrojs/vue@5.1.4': - resolution: {integrity: sha512-srE+3tgSnGG4FVr7Bs9JAgLcUAg1mtGrbBFdwlj++Y05Awwlc967WCcmOK6rnxQ6q5PcK5+WL2x2tKoWh5SN7A==} + '@astrojs/vue@6.0.1': + resolution: {integrity: sha512-YeVDmcGkzjhc/LToHXPwxsrH5OaHqOaMDColLvKbGvzn/Y/vsQnNh8pyZZGe76SCKrbMDH6cq8kaVn8upITg7A==} engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0} peerDependencies: - astro: ^5.0.0 - vue: ^3.2.30 + astro: ^6.0.0 + vue: ^3.5.24 '@babel/code-frame@7.29.0': resolution: {integrity: sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==} @@ -502,6 +494,12 @@ packages: resolution: {integrity: sha512-VERIM64vtTP1C4mxQ5thVT9fK0apjPFobqybMtA1UdUujWka24ERHbRHFGmpbbhp73MhV+KSsHQH9C6uOTdEQA==} engines: {node: '>=18'} + '@clack/core@1.2.0': + resolution: {integrity: sha512-qfxof/3T3t9DPU/Rj3OmcFyZInceqj/NVtO9rwIuJqCUgh32gwPjpFQQp/ben07qKlhpwq7GzfWpST4qdJ5Drg==} + + '@clack/prompts@1.2.0': + resolution: {integrity: sha512-4jmztR9fMqPMjz6H/UZXj0zEmE43ha1euENwkckKKel4XpSfokExPo5AiVStdHSAlHekz4d0CA/r45Ok1E4D3w==} + '@codemirror/autocomplete@6.20.1': resolution: {integrity: sha512-1cvg3Vz1dSSToCNlJfRA2WSI4ht3K+WplO0UMOgmUYPivCyy2oueZY6Lx7M9wThm7SDUBViRmuT+OG/i8+ON9A==} @@ -576,12 +574,6 @@ packages: '@epic-web/invariant@1.0.0': resolution: {integrity: sha512-lrTPqgvfFQtR/eY/qkIzp98OGdNJu0m5ji3q/nJI8v3SXkRKEnWiOxMmbvcSoAIzv/cGiuvRy57k4suKQSAdwA==} - '@esbuild/aix-ppc64@0.25.12': - resolution: {integrity: sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [aix] - '@esbuild/aix-ppc64@0.27.3': resolution: {integrity: sha512-9fJMTNFTWZMh5qwrBItuziu834eOCUcEqymSH7pY+zoMVEZg3gcPuBNxH1EvfVYe9h0x/Ptw8KBzv7qxb7l8dg==} engines: {node: '>=18'} @@ -594,12 +586,6 @@ packages: cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.25.12': - resolution: {integrity: sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [android] - '@esbuild/android-arm64@0.27.3': resolution: {integrity: sha512-YdghPYUmj/FX2SYKJ0OZxf+iaKgMsKHVPF1MAq/P8WirnSpCStzKJFjOjzsW0QQ7oIAiccHdcqjbHmJxRb/dmg==} engines: {node: '>=18'} @@ -612,12 +598,6 @@ packages: cpu: [arm64] os: [android] - '@esbuild/android-arm@0.25.12': - resolution: {integrity: sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==} - engines: {node: '>=18'} - cpu: [arm] - os: [android] - '@esbuild/android-arm@0.27.3': resolution: {integrity: sha512-i5D1hPY7GIQmXlXhs2w8AWHhenb00+GxjxRncS2ZM7YNVGNfaMxgzSGuO8o8SJzRc/oZwU2bcScvVERk03QhzA==} engines: {node: '>=18'} @@ -630,12 +610,6 @@ packages: cpu: [arm] os: [android] - '@esbuild/android-x64@0.25.12': - resolution: {integrity: sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==} - engines: {node: '>=18'} - cpu: [x64] - os: [android] - '@esbuild/android-x64@0.27.3': resolution: {integrity: sha512-IN/0BNTkHtk8lkOM8JWAYFg4ORxBkZQf9zXiEOfERX/CzxW3Vg1ewAhU7QSWQpVIzTW+b8Xy+lGzdYXV6UZObQ==} engines: {node: '>=18'} @@ -648,12 +622,6 @@ packages: cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.25.12': - resolution: {integrity: sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [darwin] - '@esbuild/darwin-arm64@0.27.3': resolution: {integrity: sha512-Re491k7ByTVRy0t3EKWajdLIr0gz2kKKfzafkth4Q8A5n1xTHrkqZgLLjFEHVD+AXdUGgQMq+Godfq45mGpCKg==} engines: {node: '>=18'} @@ -666,12 +634,6 @@ packages: cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.25.12': - resolution: {integrity: sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==} - engines: {node: '>=18'} - cpu: [x64] - os: [darwin] - '@esbuild/darwin-x64@0.27.3': resolution: {integrity: sha512-vHk/hA7/1AckjGzRqi6wbo+jaShzRowYip6rt6q7VYEDX4LEy1pZfDpdxCBnGtl+A5zq8iXDcyuxwtv3hNtHFg==} engines: {node: '>=18'} @@ -684,12 +646,6 @@ packages: cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.25.12': - resolution: {integrity: sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [freebsd] - '@esbuild/freebsd-arm64@0.27.3': resolution: {integrity: sha512-ipTYM2fjt3kQAYOvo6vcxJx3nBYAzPjgTCk7QEgZG8AUO3ydUhvelmhrbOheMnGOlaSFUoHXB6un+A7q4ygY9w==} engines: {node: '>=18'} @@ -702,12 +658,6 @@ packages: cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.25.12': - resolution: {integrity: sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==} - engines: {node: '>=18'} - cpu: [x64] - os: [freebsd] - '@esbuild/freebsd-x64@0.27.3': resolution: {integrity: sha512-dDk0X87T7mI6U3K9VjWtHOXqwAMJBNN2r7bejDsc+j03SEjtD9HrOl8gVFByeM0aJksoUuUVU9TBaZa2rgj0oA==} engines: {node: '>=18'} @@ -720,12 +670,6 @@ packages: cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.25.12': - resolution: {integrity: sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==} - engines: {node: '>=18'} - cpu: [arm64] - os: [linux] - '@esbuild/linux-arm64@0.27.3': resolution: {integrity: sha512-sZOuFz/xWnZ4KH3YfFrKCf1WyPZHakVzTiqji3WDc0BCl2kBwiJLCXpzLzUBLgmp4veFZdvN5ChW4Eq/8Fc2Fg==} engines: {node: '>=18'} @@ -738,12 +682,6 @@ packages: cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.25.12': - resolution: {integrity: sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==} - engines: {node: '>=18'} - cpu: [arm] - os: [linux] - '@esbuild/linux-arm@0.27.3': resolution: {integrity: sha512-s6nPv2QkSupJwLYyfS+gwdirm0ukyTFNl3KTgZEAiJDd+iHZcbTPPcWCcRYH+WlNbwChgH2QkE9NSlNrMT8Gfw==} engines: {node: '>=18'} @@ -756,12 +694,6 @@ packages: cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.25.12': - resolution: {integrity: sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==} - engines: {node: '>=18'} - cpu: [ia32] - os: [linux] - '@esbuild/linux-ia32@0.27.3': resolution: {integrity: sha512-yGlQYjdxtLdh0a3jHjuwOrxQjOZYD/C9PfdbgJJF3TIZWnm/tMd/RcNiLngiu4iwcBAOezdnSLAwQDPqTmtTYg==} engines: {node: '>=18'} @@ -774,12 +706,6 @@ packages: cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.25.12': - resolution: {integrity: sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==} - engines: {node: '>=18'} - cpu: [loong64] - os: [linux] - '@esbuild/linux-loong64@0.27.3': resolution: {integrity: sha512-WO60Sn8ly3gtzhyjATDgieJNet/KqsDlX5nRC5Y3oTFcS1l0KWba+SEa9Ja1GfDqSF1z6hif/SkpQJbL63cgOA==} engines: {node: '>=18'} @@ -792,12 +718,6 @@ packages: cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.25.12': - resolution: {integrity: sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==} - engines: {node: '>=18'} - cpu: [mips64el] - os: [linux] - '@esbuild/linux-mips64el@0.27.3': resolution: {integrity: sha512-APsymYA6sGcZ4pD6k+UxbDjOFSvPWyZhjaiPyl/f79xKxwTnrn5QUnXR5prvetuaSMsb4jgeHewIDCIWljrSxw==} engines: {node: '>=18'} @@ -810,12 +730,6 @@ packages: cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.25.12': - resolution: {integrity: sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [linux] - '@esbuild/linux-ppc64@0.27.3': resolution: {integrity: sha512-eizBnTeBefojtDb9nSh4vvVQ3V9Qf9Df01PfawPcRzJH4gFSgrObw+LveUyDoKU3kxi5+9RJTCWlj4FjYXVPEA==} engines: {node: '>=18'} @@ -828,12 +742,6 @@ packages: cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.25.12': - resolution: {integrity: sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==} - engines: {node: '>=18'} - cpu: [riscv64] - os: [linux] - '@esbuild/linux-riscv64@0.27.3': resolution: {integrity: sha512-3Emwh0r5wmfm3ssTWRQSyVhbOHvqegUDRd0WhmXKX2mkHJe1SFCMJhagUleMq+Uci34wLSipf8Lagt4LlpRFWQ==} engines: {node: '>=18'} @@ -846,12 +754,6 @@ packages: cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.25.12': - resolution: {integrity: sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==} - engines: {node: '>=18'} - cpu: [s390x] - os: [linux] - '@esbuild/linux-s390x@0.27.3': resolution: {integrity: sha512-pBHUx9LzXWBc7MFIEEL0yD/ZVtNgLytvx60gES28GcWMqil8ElCYR4kvbV2BDqsHOvVDRrOxGySBM9Fcv744hw==} engines: {node: '>=18'} @@ -864,12 +766,6 @@ packages: cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.25.12': - resolution: {integrity: sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==} - engines: {node: '>=18'} - cpu: [x64] - os: [linux] - '@esbuild/linux-x64@0.27.3': resolution: {integrity: sha512-Czi8yzXUWIQYAtL/2y6vogER8pvcsOsk5cpwL4Gk5nJqH5UZiVByIY8Eorm5R13gq+DQKYg0+JyQoytLQas4dA==} engines: {node: '>=18'} @@ -882,12 +778,6 @@ packages: cpu: [x64] os: [linux] - '@esbuild/netbsd-arm64@0.25.12': - resolution: {integrity: sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [netbsd] - '@esbuild/netbsd-arm64@0.27.3': resolution: {integrity: sha512-sDpk0RgmTCR/5HguIZa9n9u+HVKf40fbEUt+iTzSnCaGvY9kFP0YKBWZtJaraonFnqef5SlJ8/TiPAxzyS+UoA==} engines: {node: '>=18'} @@ -900,12 +790,6 @@ packages: cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-x64@0.25.12': - resolution: {integrity: sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==} - engines: {node: '>=18'} - cpu: [x64] - os: [netbsd] - '@esbuild/netbsd-x64@0.27.3': resolution: {integrity: sha512-P14lFKJl/DdaE00LItAukUdZO5iqNH7+PjoBm+fLQjtxfcfFE20Xf5CrLsmZdq5LFFZzb5JMZ9grUwvtVYzjiA==} engines: {node: '>=18'} @@ -918,12 +802,6 @@ packages: cpu: [x64] os: [netbsd] - '@esbuild/openbsd-arm64@0.25.12': - resolution: {integrity: sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==} - engines: {node: '>=18'} - cpu: [arm64] - os: [openbsd] - '@esbuild/openbsd-arm64@0.27.3': resolution: {integrity: sha512-AIcMP77AvirGbRl/UZFTq5hjXK+2wC7qFRGoHSDrZ5v5b8DK/GYpXW3CPRL53NkvDqb9D+alBiC/dV0Fb7eJcw==} engines: {node: '>=18'} @@ -936,12 +814,6 @@ packages: cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-x64@0.25.12': - resolution: {integrity: sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==} - engines: {node: '>=18'} - cpu: [x64] - os: [openbsd] - '@esbuild/openbsd-x64@0.27.3': resolution: {integrity: sha512-DnW2sRrBzA+YnE70LKqnM3P+z8vehfJWHXECbwBmH/CU51z6FiqTQTHFenPlHmo3a8UgpLyH3PT+87OViOh1AQ==} engines: {node: '>=18'} @@ -954,12 +826,6 @@ packages: cpu: [x64] os: [openbsd] - '@esbuild/openharmony-arm64@0.25.12': - resolution: {integrity: sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [openharmony] - '@esbuild/openharmony-arm64@0.27.3': resolution: {integrity: sha512-NinAEgr/etERPTsZJ7aEZQvvg/A6IsZG/LgZy+81wON2huV7SrK3e63dU0XhyZP4RKGyTm7aOgmQk0bGp0fy2g==} engines: {node: '>=18'} @@ -972,12 +838,6 @@ packages: cpu: [arm64] os: [openharmony] - '@esbuild/sunos-x64@0.25.12': - resolution: {integrity: sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==} - engines: {node: '>=18'} - cpu: [x64] - os: [sunos] - '@esbuild/sunos-x64@0.27.3': resolution: {integrity: sha512-PanZ+nEz+eWoBJ8/f8HKxTTD172SKwdXebZ0ndd953gt1HRBbhMsaNqjTyYLGLPdoWHy4zLU7bDVJztF5f3BHA==} engines: {node: '>=18'} @@ -990,12 +850,6 @@ packages: cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.25.12': - resolution: {integrity: sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [win32] - '@esbuild/win32-arm64@0.27.3': resolution: {integrity: sha512-B2t59lWWYrbRDw/tjiWOuzSsFh1Y/E95ofKz7rIVYSQkUYBjfSgf6oeYPNWHToFRr2zx52JKApIcAS/D5TUBnA==} engines: {node: '>=18'} @@ -1008,12 +862,6 @@ packages: cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.25.12': - resolution: {integrity: sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==} - engines: {node: '>=18'} - cpu: [ia32] - os: [win32] - '@esbuild/win32-ia32@0.27.3': resolution: {integrity: sha512-QLKSFeXNS8+tHW7tZpMtjlNb7HKau0QDpwm49u0vUp9y1WOF+PEzkU84y9GqYaAVW8aH8f3GcBck26jh54cX4Q==} engines: {node: '>=18'} @@ -1026,12 +874,6 @@ packages: cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.25.12': - resolution: {integrity: sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==} - engines: {node: '>=18'} - cpu: [x64] - os: [win32] - '@esbuild/win32-x64@0.27.3': resolution: {integrity: sha512-4uJGhsxuptu3OcpVAzli+/gWusVGwZZHTlS63hh++ehExkVT8SgiEf7/uC/PclrPPkLhZqGgCTjd0VWLo6xMqA==} engines: {node: '>=18'} @@ -2320,12 +2162,24 @@ packages: '@shikijs/engine-javascript@3.23.0': resolution: {integrity: sha512-aHt9eiGFobmWR5uqJUViySI1bHMqrAgamWE1TYSUoftkAeCCAiGawPMwM+VCadylQtF4V3VNOZ5LmfItH5f3yA==} + '@shikijs/engine-javascript@4.0.2': + resolution: {integrity: sha512-7PW0Nm49DcoUIQEXlJhNNBHyoGMjalRETTCcjMqEaMoJRLljy1Bi/EGV3/qLBgLKQejdspiiYuHGQW6dX94Nag==} + engines: {node: '>=20'} + '@shikijs/engine-oniguruma@3.23.0': resolution: {integrity: sha512-1nWINwKXxKKLqPibT5f4pAFLej9oZzQTsby8942OTlsJzOBZ0MWKiwzMsd+jhzu8YPCHAswGnnN1YtQfirL35g==} + '@shikijs/engine-oniguruma@4.0.2': + resolution: {integrity: sha512-UpCB9Y2sUKlS9z8juFSKz7ZtysmeXCgnRF0dlhXBkmQnek7lAToPte8DkxmEYGNTMii72zU/lyXiCB6StuZeJg==} + engines: {node: '>=20'} + '@shikijs/langs@3.23.0': resolution: {integrity: sha512-2Ep4W3Re5aB1/62RSYQInK9mM3HsLeB91cHqznAJMuylqjzNVAVCMnNWRHFtcNHXsoNRayP9z1qj4Sq3nMqYXg==} + '@shikijs/langs@4.0.2': + resolution: {integrity: sha512-KaXby5dvoeuZzN0rYQiPMjFoUrz4hgwIE+D6Du9owcHcl6/g16/yT5BQxSW5cGt2MZBz6Hl0YuRqf12omRfUUg==} + engines: {node: '>=20'} + '@shikijs/primitive@4.0.2': resolution: {integrity: sha512-M6UMPrSa3fN5ayeJwFVl9qWofl273wtK1VG8ySDZ1mQBfhCpdd8nEx7nPZ/tk7k+TYcpqBZzj/AnwxT9lO+HJw==} engines: {node: '>=20'} @@ -2333,6 +2187,10 @@ packages: '@shikijs/themes@3.23.0': resolution: {integrity: sha512-5qySYa1ZgAT18HR/ypENL9cUSGOeI2x+4IvYJu4JgVJdizn6kG4ia5Q1jDEOi7gTbN4RbuYtmHh0W3eccOrjMA==} + '@shikijs/themes@4.0.2': + resolution: {integrity: sha512-mjCafwt8lJJaVSsQvNVrJumbnnj1RI8jbUKrPKgE6E3OvQKxnuRoBaYC51H4IGHePsGN/QtALglWBU7DoKDFnA==} + engines: {node: '>=20'} + '@shikijs/transformers@4.0.2': resolution: {integrity: sha512-1+L0gf9v+SdDXs08vjaLb3mBFa8U7u37cwcBQIv/HCocLwX69Tt6LpUCjtB+UUTvQxI7BnjZKhN/wMjhHBcJGg==} engines: {node: '>=20'} @@ -2357,10 +2215,6 @@ packages: resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==} engines: {node: '>=18'} - '@sindresorhus/merge-streams@4.0.0': - resolution: {integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==} - engines: {node: '>=18'} - '@sindresorhus/slugify@2.2.1': resolution: {integrity: sha512-MkngSCRZ8JdSOCHRaYd+D01XhvU3Hjy6MGl06zhOk614hp9EOAp5gIkBeQg7wtmxpitU6eAL4kdiRMcJa2dlrw==} engines: {node: '>=12'} @@ -2563,8 +2417,8 @@ packages: '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} - '@types/picomatch@3.0.2': - resolution: {integrity: sha512-n0i8TD3UDB7paoMMxA3Y65vUncFJXjcUf7lQY7YyKGl6031FNjfsLs6pdLFCy2GNFxItPJG8GvvpbZc2skH7WA==} + '@types/picomatch@4.0.3': + resolution: {integrity: sha512-iG0T6+nYJ9FAPmx9SsUlnwcq1ZVRuCXcVEvWnntoPlrOpwtSTKNDC9uVAxTsC3PUvJ+99n4RpAcNgBbHX3JSnQ==} '@types/react-dom@19.2.3': resolution: {integrity: sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==} @@ -2734,9 +2588,9 @@ packages: engines: {node: '>=18'} hasBin: true - '@vercel/nft@0.30.4': - resolution: {integrity: sha512-wE6eAGSXScra60N2l6jWvNtVK0m+sh873CpfZW4KI2v8EHuUQp+mSEi4T+IcdPCSEDgCdAS/7bizbhQlkjzrSA==} - engines: {node: '>=18'} + '@vercel/nft@1.5.0': + resolution: {integrity: sha512-IWTDeIoWhQ7ZtRO/JRKH+jhmeQvZYhtGPmzw/QGDY+wDCQqfm25P9yIdoAFagu4fWsK4IwZXDFIjrmp5rRm/sA==} + engines: {node: '>=20'} hasBin: true '@vercel/oidc@3.1.0': @@ -2749,20 +2603,13 @@ packages: peerDependencies: vite: ^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 - '@vitejs/plugin-vue-jsx@4.2.0': - resolution: {integrity: sha512-DSTrmrdLp+0LDNF77fqrKfx7X0ErRbOcUAgJL/HbSesqQwoUvUQ4uYQqaex+rovqgGcoPqVk+AwUh3v9CuiYIw==} - engines: {node: ^18.0.0 || >=20.0.0} + '@vitejs/plugin-vue-jsx@5.1.5': + resolution: {integrity: sha512-jIAsvHOEtWpslLOI2MeElGFxH7M8pM83BU/Tor4RLyiwH0FM4nUW3xdvbw20EeU9wc5IspQwMq225K3CMnJEpA==} + engines: {node: ^20.19.0 || >=22.12.0} peerDependencies: - vite: ^5.0.0 || ^6.0.0 + vite: ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 vue: ^3.0.0 - '@vitejs/plugin-vue@5.2.4': - resolution: {integrity: sha512-7Yx/SXSOcQq5HiiV3orevHUFn+pmMB4cgbEkDYgnkUWb0WfeQ/wa2yFv6D5ICiCQOVpjA7vYDXrC7AGO8yjDHA==} - engines: {node: ^18.0.0 || >=20.0.0} - peerDependencies: - vite: ^5.0.0 || ^6.0.0 - vue: ^3.2.25 - '@vitejs/plugin-vue@6.0.6': resolution: {integrity: sha512-u9HHgfrq3AjXlysn0eINFnWQOJQLO9WN6VprZ8FXl7A2bYisv3Hui9Ij+7QZ41F/WYWarHjwBbXtD7dKg3uxbg==} engines: {node: ^20.19.0 || >=22.12.0} @@ -2782,6 +2629,9 @@ packages: '@vue/babel-helper-vue-transform-on@1.5.0': resolution: {integrity: sha512-0dAYkerNhhHutHZ34JtTl2czVQHUNWv6xEbkdF5W+Yrv5pCWsqjeORdOgbtW2I9gWlt+wBmVn+ttqN9ZxR5tzA==} + '@vue/babel-helper-vue-transform-on@2.0.1': + resolution: {integrity: sha512-uZ66EaFbnnZSYqYEyplWvn46GhZ1KuYSThdT68p+am7MgBNbQ3hphTL9L+xSIsWkdktwhPYLwPgVWqo96jDdRA==} + '@vue/babel-plugin-jsx@1.5.0': resolution: {integrity: sha512-mneBhw1oOqCd2247O0Yw/mRwC9jIGACAJUlawkmMBiNmL4dGA2eMzuNZVNqOUfYTa6vqmND4CtOPzmEEEqLKFw==} peerDependencies: @@ -2790,11 +2640,24 @@ packages: '@babel/core': optional: true + '@vue/babel-plugin-jsx@2.0.1': + resolution: {integrity: sha512-a8CaLQjD/s4PVdhrLD/zT574ZNPnZBOY+IhdtKWRB4HRZ0I2tXBi5ne7d9eCfaYwp5gU5+4KIyFTV1W1YL9xZA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + '@vue/babel-plugin-resolve-type@1.5.0': resolution: {integrity: sha512-Wm/60o+53JwJODm4Knz47dxJnLDJ9FnKnGZJbUUf8nQRAtt6P+undLUAVU3Ha33LxOJe6IPoifRQ6F/0RrU31w==} peerDependencies: '@babel/core': ^7.0.0-0 + '@vue/babel-plugin-resolve-type@2.0.1': + resolution: {integrity: sha512-ybwgIuRGRRBhOU37GImDoWQoz+TlSqap65qVI6iwg/J7FfLTLmMf97TS7xQH9I7Qtr/gp161kYVdhr1ZMraSYQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@vue/compiler-core@3.5.32': resolution: {integrity: sha512-4x74Tbtqnda8s/NSD6e1Dr5p1c8HdMU5RWSjMSUzb8RTcUQqevDCxVAitcLBKT+ie3o0Dl9crc/S/opJM7qBGQ==} @@ -2822,20 +2685,14 @@ packages: '@vue/devtools-api@8.1.1': resolution: {integrity: sha512-bsDMJ07b3GN1puVwJb/fyFnj/U2imyswK5UQVLZwVl7O05jDrt6BHxeG5XffmOOdasOj/bOmIjxJvGPxU7pcqw==} - '@vue/devtools-core@7.7.9': - resolution: {integrity: sha512-48jrBSwG4GVQRvVeeXn9p9+dlx+ISgasM7SxZZKczseohB0cBz+ITKr4YbLWjmJdy45UHL7UMPlR4Y0CWTRcSQ==} + '@vue/devtools-core@8.1.1': + resolution: {integrity: sha512-bCCsSABp1/ot4j8xJEycM6Mtt2wbuucfByr6hMgjbYhrtlscOJypZKvy8f1FyWLYrLTchB5Qz216Lm92wfbq0A==} peerDependencies: vue: ^3.0.0 - '@vue/devtools-kit@7.7.9': - resolution: {integrity: sha512-PyQ6odHSgiDVd4hnTP+aDk2X4gl2HmLDfiyEnn3/oV+ckFDuswRs4IbBT7vacMuGdwY/XemxBoh302ctbsptuA==} - '@vue/devtools-kit@8.1.1': resolution: {integrity: sha512-gVBaBv++i+adg4JpH71k9ppl4soyR7Y2McEqO5YNgv0BI1kMZ7BDX5gnwkZ5COYgiCyhejZG+yGNrBAjj6Coqg==} - '@vue/devtools-shared@7.7.9': - resolution: {integrity: sha512-iWAb0v2WYf0QWmxCGy0seZNDPdO3Sp5+u78ORnyeonS6MT4PC7VPrryX2BpMJrwlDeaZ6BD4vP4XKjK0SZqaeA==} - '@vue/devtools-shared@8.1.1': resolution: {integrity: sha512-+h4ttmJYl/txpxHKaoZcaKpC+pvckgLzIDiSQlaQ7kKthKh8KuwoLW2D8hPJEnqKzXOvu15UHEoGyngAXCz0EQ==} @@ -3137,11 +2994,11 @@ packages: resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==} hasBin: true - astro-d2@0.9.0: - resolution: {integrity: sha512-an5vkji/rPL5rgULj1u85cgWvW9Za5htrvYcx3My1jAQLFgBxgUmsw7p9Il9yFnpjj/KemZDlV6WdSzhJAlvbQ==} - engines: {node: '>=18'} + astro-d2@0.10.0: + resolution: {integrity: sha512-KL2N3BcPvuk7orPJsXVeMVMYd70eimLdxslbwR6M80hXIDj6EWd0SAJlx961qepIvXMwh3FxKkb6S6sWYuRjBA==} + engines: {node: '>=22.12.0'} peerDependencies: - astro: '>=5.0.0' + astro: '>=6.0.0' astro-expressive-code@0.41.7: resolution: {integrity: sha512-hUpogGc6DdAd+I7pPXsctyYPRBJDK7Q7d06s4cyP0Vz3OcbziP3FNzN0jZci1BpCvLn9675DvS7B9ctKKX64JQ==} @@ -3165,9 +3022,9 @@ packages: astro-theme-toggle@0.8.0: resolution: {integrity: sha512-7ngEKDfCLKoVbxX4yxrggtBr8i6W8eT0un0TpNKHUeOG/Pq2g7BrjH+etP/l/XQYYSWQmeOIAI02LvLXDMvOWw==} - astro@5.18.1: - resolution: {integrity: sha512-m4VWilWZ+Xt6NPoYzC4CgGZim/zQUO7WFL0RHCH0AiEavF1153iC3+me2atDvXpf/yX4PyGUeD8wZLq1cirT3g==} - engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0'} + astro@6.1.9: + resolution: {integrity: sha512-NsAHzMzpznB281g2aM5qnBt2QjfH6ttKiZ3hSZw52If8JJ+62kbnBKbyKhR2glQcJLl7Jfe4GSl0DihFZ36rRQ==} + engines: {node: '>=22.12.0', npm: '>=9.6.5', pnpm: '>=7.1.0'} hasBin: true async-function@1.0.0: @@ -3547,8 +3404,9 @@ packages: resolution: {integrity: sha512-R2rze/hDX30uul4NZoIZ76ImSJLFxn/1/ZxtKC1L77y2X1k+yYu1joKbAtMA2Fg3hZrTOiw0I5mwVMo0cf250w==} engines: {node: '>= 6'} - common-ancestor-path@1.0.1: - resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==} + common-ancestor-path@2.0.0: + resolution: {integrity: sha512-dnN3ibLeoRf2HNC+OlCiNc5d2zxbLJXOtiZUudNFSXZrNSydxcCsSpRzXwfu7BBWCIfHPw+xTayeBvJCP/D8Ng==} + engines: {node: '>= 18'} common-path-prefix@3.0.0: resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==} @@ -3604,10 +3462,6 @@ packages: resolution: {integrity: sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==} engines: {node: '>=18'} - copy-anything@4.0.5: - resolution: {integrity: sha512-7Vv6asjS4gMOuILabD3l739tsaxFQmC+a7pLZm02zyvs8p977bL3zEgq3yDk5rn9B0PbYgIv++jmHcuUab4RhA==} - engines: {node: '>=18'} - copy-file@11.1.0: resolution: {integrity: sha512-X8XDzyvYaA6msMyAM575CUoygY5b44QzLcGRKsK3MFmXcOvQa518dNPLsKYwkYsn72g3EiW+LE0ytd/FlqWmyw==} engines: {node: '>=18'} @@ -3984,8 +3838,8 @@ packages: resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==} engines: {node: '>=18'} - error-stack-parser-es@0.1.5: - resolution: {integrity: sha512-xHku1X40RO+fO8yJ8Wh2f2rZWVjqyhb1zgq1yZ8aZRQkv6OOKhKWRUaht3eSCUbAOBaKIgM+ykwFLE+QUxgGeg==} + error-stack-parser-es@1.0.5: + resolution: {integrity: sha512-5qucVt2XcuGMcEGgWI7i+yZpmpByQ8J1lHhcL7PwqCwu9FPP3VUXzT4ltHe5i2z9dePwEHcDVOAfSnHsOlCXRA==} error-stack-parser@2.1.4: resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==} @@ -4005,6 +3859,9 @@ packages: es-module-lexer@1.7.0: resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} + es-module-lexer@2.0.0: + resolution: {integrity: sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw==} + es-object-atoms@1.1.1: resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} engines: {node: '>= 0.4'} @@ -4027,11 +3884,6 @@ packages: esast-util-from-js@2.0.1: resolution: {integrity: sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==} - esbuild@0.25.12: - resolution: {integrity: sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==} - engines: {node: '>=18'} - hasBin: true - esbuild@0.27.3: resolution: {integrity: sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg==} engines: {node: '>=18'} @@ -4140,10 +3992,6 @@ packages: resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} engines: {node: '>=16.17'} - execa@9.6.1: - resolution: {integrity: sha512-9Be3ZoN4LmYR90tUoVu2te2BsbzHfhJyfEiAVfz7N5/zv+jduIfLrV2xdQXOHbaD6KgpGdO9PRPM1Y4Q9QkPkA==} - engines: {node: ^18.19.0 || >=20.5.0} - express-logging@1.1.1: resolution: {integrity: sha512-1KboYwxxCG5kwkJHR5LjFDTD1Mgl8n4PIMcCuhhd/1OqaxlC68P3QKbvvAbZVUtVgtlxEdTgSUwf6yxwzRCuuA==} engines: {node: '>= 0.10.26'} @@ -4195,12 +4043,21 @@ packages: fast-safe-stringify@2.1.1: resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} + fast-string-truncated-width@1.2.1: + resolution: {integrity: sha512-Q9acT/+Uu3GwGj+5w/zsGuQjh9O1TyywhIwAxHudtWrgF09nHOPrvTLhQevPbttcxjr/SNN7mJmfOw/B1bXgow==} + + fast-string-width@1.1.0: + resolution: {integrity: sha512-O3fwIVIH5gKB38QNbdg+3760ZmGz0SZMgvwJbA1b2TGXceKE6A2cOlfogh1iw8lr049zPyd7YADHy+B7U4W9bQ==} + fast-stringify@4.0.0: resolution: {integrity: sha512-lE2DIivBaLysf6hK5WH/VfMgqRbvBVHcpGVVTmA5Zi8oWIjq9YxIt6lYGdUgP1HNSXxTIat7HEIDnrSvXSeKQw==} fast-uri@3.1.0: resolution: {integrity: sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==} + fast-wrap-ansi@0.1.6: + resolution: {integrity: sha512-HlUwET7a5gqjURj70D5jl7aC3Zmy4weA1SHUfM0JFI0Ptq987NH2TwbBFLoERhfwk+E+eaq4EK3jXoT+R3yp3w==} + fast-xml-builder@1.1.4: resolution: {integrity: sha512-f2jhpN4Eccy0/Uz9csxh3Nu6q4ErKxf0XIsasomfOihuSUa3/xw6w8dnOtCDgEItQFJG8KyXPzQXzcODDrrbOg==} @@ -4334,10 +4191,6 @@ packages: from2@2.3.0: resolution: {integrity: sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==} - fs-extra@11.3.4: - resolution: {integrity: sha512-CTXd6rk/M3/ULNQj8FBqBWHYBVYybQ3VPBw0xGKFe3tuH7ytT6ACnvzpIQ3UZtB8yvUKC2cXn1a+x+5EVQLovA==} - engines: {node: '>=14.14'} - fsevents@2.3.3: resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} @@ -4666,10 +4519,6 @@ packages: resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} engines: {node: '>=16.17.0'} - human-signals@8.0.1: - resolution: {integrity: sha512-eKCa6bwnJhvxj14kZk5NCPc6Hb6BdsU9DZcOnmQKSnO1VKrfV0zCvtttPZUsBvjmNDn8rpcJfpwSYnHBjc95MQ==} - engines: {node: '>=18.18.0'} - i18next@23.16.8: resolution: {integrity: sha512-06r/TitrM88Mg5FdUXAKL96dJMzgqLE5dv3ryBAra4KCwD9mJ4ndOTS95ZuymIGoE+2hzfdaMak2X11/es7ZWg==} @@ -4703,9 +4552,6 @@ packages: import-in-the-middle@1.15.0: resolution: {integrity: sha512-bpQy+CrsRmYmoPMAE/0G33iwRqwW4ouqdRg8jgbH3aKuCtOc8lxgmYXg2dMM92CRiGP660EtBcymH/eVUpCSaA==} - import-meta-resolve@4.2.0: - resolution: {integrity: sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==} - imurmurhash@0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} @@ -4764,6 +4610,10 @@ packages: resolution: {integrity: sha512-/51/TKE88Lmm7Gc4/8btclNXWS+g50wXhYJq8HWIBAGUBnoAdRu1aXeh364t/O7wXDAcTJDP8PNuNKWUDWie+A==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + is-absolute-url@5.0.0: + resolution: {integrity: sha512-sdJyNpBnQHuVnBunfzjAecOhZr2+A30ywfFvu3EnxtKLUWfwGgyWUmqHbGZiU6vTfHpCPm5GvLe4BAvlU9n8VQ==} + engines: {node: '>=20'} + is-alphabetical@2.0.1: resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} @@ -4994,10 +4844,6 @@ packages: resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==} engines: {node: '>= 0.4'} - is-what@5.5.0: - resolution: {integrity: sha512-oG7cgbmg5kLYae2N5IVd3jm2s+vldjxJzK1pcu9LfpGuQ93MQSzo0okvRna+7y5ifrD+20FE8FvjusyGaz14fw==} - engines: {node: '>=18'} - is-wsl@3.1.0: resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} engines: {node: '>=16'} @@ -5077,9 +4923,6 @@ packages: jsonc-parser@3.3.1: resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==} - jsonfile@6.2.0: - resolution: {integrity: sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==} - jsonpointer@5.0.1: resolution: {integrity: sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==} engines: {node: '>=0.10.0'} @@ -5106,14 +4949,6 @@ packages: resolution: {integrity: sha512-XDYA44ccm6W2MXZeQcDZykS5srkTpPf6Z59AEuOFbfuqdQ5TVxhAjxgzAEFBpr8XpsCEgr/XeCBFAmc9x6wRmQ==} engines: {node: '>=16.17.0'} - kleur@3.0.3: - resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} - engines: {node: '>=6'} - - kleur@4.1.5: - resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} - engines: {node: '>=6'} - klona@2.0.6: resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==} engines: {node: '>= 8'} @@ -5367,9 +5202,9 @@ packages: engines: {node: '>= 18'} hasBin: true - marked@15.0.12: - resolution: {integrity: sha512-8dD6FusOQSrpv9Z1rdNMdlSgQOIP880DHqnohobOmYLElGEqAL/JvxvuxZO16r4HtjTlfPRDC1hbvxC9dPN2nA==} - engines: {node: '>= 18'} + marked@17.0.6: + resolution: {integrity: sha512-gB0gkNafnonOw0obSTEGZTT86IuhILt2Wfx0mWH/1Au83kybTayroZ/V6nS25mN7u8ASy+5fMhgB3XPNrOZdmA==} + engines: {node: '>= 20'} hasBin: true math-intrinsics@1.1.0: @@ -5626,9 +5461,6 @@ packages: resolution: {integrity: sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==} engines: {node: '>= 18'} - mitt@3.0.1: - resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} - mlly@1.8.2: resolution: {integrity: sha512-d+ObxMQFmbt10sretNDytwt85VrbkhhUA/JBGm1MPaWJ65Cl4wOgLaB1NYvJSZ0Ef03MMEU/0xpPMXUIQ29UfA==} @@ -5821,10 +5653,6 @@ packages: resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - npm-run-path@6.0.0: - resolution: {integrity: sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==} - engines: {node: '>=18'} - nth-check@2.1.1: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} @@ -5928,9 +5756,9 @@ packages: resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - p-limit@6.2.0: - resolution: {integrity: sha512-kuUqqHNUqoIWp/c467RI4X6mmyuojY5jGutNU0wVTmEOOfcuwLqyMVoAi9MKi2Ak+5i9+nhmrK4ufZE8069kHA==} - engines: {node: '>=18'} + p-limit@7.3.0: + resolution: {integrity: sha512-7cIXg/Z0M5WZRblrsOla88S4wAK+zOQQWeBYfV3qJuJXMr+LnbYjaadrFaS0JILfEDPVqHyKnZ1Z/1d6J9VVUw==} + engines: {node: '>=20'} p-locate@6.0.0: resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} @@ -5944,9 +5772,9 @@ packages: resolution: {integrity: sha512-tkAQEw8ysMzmkhgw8k+1U/iPhWNhykKnSk4Rd5zLoPJCuJaGRPo6YposrZgaxHKzDHdDWWZvE/Sk7hsL2X/CpQ==} engines: {node: '>=18'} - p-queue@8.1.1: - resolution: {integrity: sha512-aNZ+VfjobsWryoiPnEApGGmf5WmNsCo9xu8dfaYamG5qaLP7ClhLN6NgsFe6SwJ2UbLEBK5dv9x8Mn5+RVhMWQ==} - engines: {node: '>=18'} + p-queue@9.1.2: + resolution: {integrity: sha512-ktsDOALzTYTWWF1PbkNVg2rOt+HaOaMWJMUnt7T3qf5tvZ1L8dBW3tObzprBcXNMKkwj+yFSLqHso0x+UFcJXw==} + engines: {node: '>=20'} p-reduce@3.0.0: resolution: {integrity: sha512-xsrIUgI0Kn6iyDYm9StOpOeK29XM1aboGji26+QEortiFST1hGZaUQOLhtEbqHErPpGW/aSz6allwK2qcptp0Q==} @@ -5960,6 +5788,10 @@ packages: resolution: {integrity: sha512-MyIV3ZA/PmyBN/ud8vV9XzwTrNtR4jFrObymZYnZqMmW0zA8Z17vnT0rBgFE/TlohB+YCHqXMgZzb3Csp49vqg==} engines: {node: '>=14.16'} + p-timeout@7.0.1: + resolution: {integrity: sha512-AxTM2wDGORHGEkPCt8yqxOTMgpfbEHqF51f/5fJCmwFC3C/zNcGT63SymH2ttOAaiIws2zVg4+izQCjrakcwHg==} + engines: {node: '>=20'} + p-wait-for@5.0.2: resolution: {integrity: sha512-lwx6u1CotQYPVju77R+D0vFomni/AqRfqLmqQ8hekklqZ6gAY9rONh7lBQ0uxWMkC2AuX9b2DVAl8To0NyP1JA==} engines: {node: '>=12'} @@ -6304,10 +6136,6 @@ packages: resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} engines: {node: '>= 0.6.0'} - prompts@2.4.2: - resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} - engines: {node: '>= 6'} - property-information@7.1.0: resolution: {integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==} @@ -6760,6 +6588,10 @@ packages: shiki@3.23.0: resolution: {integrity: sha512-55Dj73uq9ZXL5zyeRPzHQsK7Nbyt6Y10k5s7OjuFZGMhpp4r/rsLBH0o/0fstIzX1Lep9VxefWljK/SKCzygIA==} + shiki@4.0.2: + resolution: {integrity: sha512-eAVKTMedR5ckPo4xne/PjYQYrU3qx78gtJZ+sHlXEg5IHhhoQhMfZVzetTYuaJS0L2Ef3AcCRzCHV8T0WI6nIQ==} + engines: {node: '>=20'} + side-channel-list@1.0.1: resolution: {integrity: sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==} engines: {node: '>= 0.4'} @@ -6851,10 +6683,6 @@ packages: spdx-license-ids@3.0.23: resolution: {integrity: sha512-CWLcCCH7VLu13TgOH+r8p1O/Znwhqv/dbb6lqWy67G+pT1kHmeD/+V36AVb/vq8QMIQwVShJ6Ssl5FPh0fuSdw==} - speakingurl@14.0.1: - resolution: {integrity: sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==} - engines: {node: '>=0.10.0'} - split2@1.1.1: resolution: {integrity: sha512-cfurE2q8LamExY+lJ9Ex3ZfBwqAPduzOKVscPDXNCLLMvyaeD3DTz1yk7fVIs6Chco+12XeD0BB6HEoYzPYbXA==} @@ -6875,31 +6703,30 @@ packages: stackframe@1.3.4: resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==} - starlight-blog@0.25.3: - resolution: {integrity: sha512-U0+CYgeJhbXz/6Rcr2vXCUiMq5HyQUq9gP0Nj3Ii2A8GKaDoZTdgHD2HnWJBK4NbXRCJqM7N1BcyeLHS0+O7Aw==} - engines: {node: '>=18.20.8'} + starlight-blog@0.26.1: + resolution: {integrity: sha512-c2aLtkVTNFKHDJrh1DwlxBj+VyOrLqJeHmGkKKHwL6oowUoaqUiC/vyOZLXNmZL1kcYI0hgHDw1t4G/lkg8mZg==} + engines: {node: '>=22.12.0'} peerDependencies: - '@astrojs/starlight': '>=0.33.0' + '@astrojs/starlight': '>=0.38.0' - starlight-image-zoom@0.13.2: - resolution: {integrity: sha512-fDJrx+UZXhkbhEeXKoRogTKAYtrYVJPw6wmSUI3nHUTA0vuRM6EI//2Z8bzv3Ecvz0pHKD1vAxtS01mLyessBA==} - engines: {node: '>=18'} + starlight-image-zoom@0.14.1: + resolution: {integrity: sha512-HFY+/779bq65tiEgiQVk8XIH6HPP34PTxWDmdlIo9pwidLyJUUrSH030/1Iu/r+KjAD7W/jpPWjC8Nkn7+uPhw==} + engines: {node: '>=22.12.0'} peerDependencies: - '@astrojs/starlight': '>=0.32.0' + '@astrojs/starlight': '>=0.38.0' - starlight-links-validator@0.19.2: - resolution: {integrity: sha512-IHeK3R78fsmv53VfRkGbXkwK1CQEUBHM9QPzBEyoAxjZ/ssi5gjV+F4oNNUppTR48iPp+lEY0MTAmvkX7yNnkw==} - engines: {node: '>=18.17.1'} + starlight-links-validator@0.23.0: + resolution: {integrity: sha512-dpKJdNv170+jyw8HDgPKGIW/MnXUxa3v8RqJrER47jx4fbxvLsITIw0/Y76xzTTrDv8LhQ7t/ExFutUDQqm3FQ==} + engines: {node: '>=22.12.0'} peerDependencies: - '@astrojs/starlight': '>=0.32.0' - astro: '>=5.1.5' + '@astrojs/starlight': '>=0.38.0' + astro: '>=6.0.0' - starlight-llms-txt@0.7.0: - resolution: {integrity: sha512-KAay6JLXqB0GiNQ481z3Z/h/y4xeAU55TUGLz+npjxcRvN3h/7rDxjmyLiphZF8xfoqqSTduQPanl5Ct4Je6kA==} - engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0} + starlight-llms-txt@0.8.1: + resolution: {integrity: sha512-bRMck9OGNiKXyeJzA6Qy2N/gqC40aERpucOOagl+dPz5s/XeY+9p5dx4wBk3Qiicy3dF/F62Zt9iPPff/POpvA==} peerDependencies: - '@astrojs/starlight': '>=0.31' - astro: ^5.15.9 + '@astrojs/starlight': '>=0.38.0' + astro: ^6.0.0 starlight-package-managers@0.12.0: resolution: {integrity: sha512-hAIVzOT0/Git+T2Uwckh2rs51fYiDM6/X+Z2f3LtKMSwOwm+nSUAX2Ilp7k+07LDtxYjmvfTCxhfIBt0PgOF5g==} @@ -6907,9 +6734,9 @@ packages: peerDependencies: '@astrojs/starlight': '>=0.22.0' - starlight-page-actions@0.5.0: - resolution: {integrity: sha512-zE4qBt+iSpIbJV9sm7SY1Lz8zKMMkZION+mFduJyIWn50ghcD5otpYT3u5OCdc+dd9wP4OI4XfC0mTkUcJrZeA==} - engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0} + starlight-page-actions@0.6.0: + resolution: {integrity: sha512-CBVFLaG2Dc9Q2CgF5tO8oobYgddGuY87ytLFu7rpdWeJNpx50eGMGPruIPQIeRLd28ZV9VDt0pPRKpP4ssYVZg==} + engines: {node: ^22.0.0 || >=24.0.0} peerDependencies: '@astrojs/starlight': '>=0.36.0' astro: '>=5.6.0' @@ -6929,18 +6756,18 @@ packages: peerDependencies: '@astrojs/starlight': '>=0.30.0' - starlight-sidebar-topics-dropdown@0.5.4: - resolution: {integrity: sha512-6a9rTqvugvHGgMuGq8IpAoxQn6EQbZpJC/pSXICsuKqHVIUgJQRsvRmRAiUw4ULiNKA74FQ0mOQg3ubQGqJkVQ==} - engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0} + starlight-sidebar-topics-dropdown@0.6.0: + resolution: {integrity: sha512-V9a31xML6B28Eo/EZU84AqE8sjhPLjmRpo0buYtRyugRAp2vH7ZKJQDzQwpjSZen7MVb3hgYTNqBus0pdDr+XQ==} + engines: {node: '>=22.12.0'} peerDependencies: - '@astrojs/starlight': '>=0.32' - starlight-sidebar-topics: '>=0.6' + '@astrojs/starlight': '>=0.38' + starlight-sidebar-topics: '>=0.7' - starlight-sidebar-topics@0.6.2: - resolution: {integrity: sha512-SNCTUZS/hcVor0ZcaXbaSVU37+V+qtvzNirkvnOg3Mqu/awuGpthkH5+uKpiZqWxLffp6TrOlsv5E5QsxrndNg==} - engines: {node: '>=18'} + starlight-sidebar-topics@0.7.1: + resolution: {integrity: sha512-2PBR05ZUvnKNoJtbL2u6GoE1qmQD0tFcd5+inYEJHJkx3LE2P+vlNslofTGHLtzch2XzyNbHUBQQu35bouA6NQ==} + engines: {node: '>=22.12.0'} peerDependencies: - '@astrojs/starlight': '>=0.32.0' + '@astrojs/starlight': '>=0.38.0' starlight-theme-nova@0.11.9: resolution: {integrity: sha512-ClQbGaqU97vhog89dXQoLDVGx9eWCSOGUkFNjLw68rlQDZ7/2AutM9jFXqzD7NSRbxjO5GYox18Ld/6mzMFlrw==} @@ -6950,11 +6777,11 @@ packages: '@astrojs/starlight': optional: true - starlight-videos@0.3.1: - resolution: {integrity: sha512-CY9reWTXB/wfgMX3Td7EX37oV8NmceO6OpvCm7dyAqdXVKyapPf6YmpNfOYMJpu9I3EByqPm3dYxJC1wpAszpA==} - engines: {node: '>=18'} + starlight-videos@0.4.0: + resolution: {integrity: sha512-Vml9091WTIv8yu3jJaS4c6UXgv5Oc4kOd7ipEmuxqFR7ymOMxq5JSbMiCkQtkSJKsrUQEtfobLE9j9fivfDdVw==} + engines: {node: '>=22.12.0'} peerDependencies: - '@astrojs/starlight': '>=0.34.0' + '@astrojs/starlight': '>=0.38.0' statuses@1.5.0: resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} @@ -7042,10 +6869,6 @@ packages: resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} engines: {node: '>=12'} - strip-final-newline@4.0.0: - resolution: {integrity: sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==} - engines: {node: '>=18'} - strip-json-comments@2.0.1: resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} engines: {node: '>=0.10.0'} @@ -7075,10 +6898,6 @@ packages: resolution: {integrity: sha512-WHkws2ZflZe41zj6AolvvmaTrWds/VuyeYr9iPVv/oQeaIoVxMKaushfFWpOGDT+GuBrM/sVqF8KUCYQlSSTdQ==} engines: {node: '>=18'} - superjson@2.2.6: - resolution: {integrity: sha512-H+ue8Zo4vJmV2nRjpx86P35lzwDT3nItnIsocgumgr0hHMQ+ZGq5vrERg9kJBo5AWGmxZDhzDo+WVIJqkB0cGA==} - engines: {node: '>=16'} - supports-color@10.2.2: resolution: {integrity: sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g==} engines: {node: '>=18'} @@ -7413,10 +7232,6 @@ packages: universal-user-agent@7.0.3: resolution: {integrity: sha512-TmnEAEAsBJVZM/AADELsK76llnwcf9vMKuPz8JflO1frO8Lchitr0fNaN9d+Ap0BjKtqWqd/J17qeDnXh8CL2A==} - universalify@2.0.1: - resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} - engines: {node: '>= 10.0.0'} - unix-dgram@2.0.7: resolution: {integrity: sha512-pWaQorcdxEUBFIKjCqqIlQaOoNVmchyoaNAJ/1LwyyfK2XSxcBhgJNiSE8ZRhR0xkNGyk4xInt1G03QPoKXY5A==} engines: {node: '>=0.10.48'} @@ -7597,17 +7412,22 @@ packages: vfile@6.0.3: resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} + vite-dev-rpc@1.1.0: + resolution: {integrity: sha512-pKXZlgoXGoE8sEKiKJSng4hI1sQ4wi5YT24FCrwrLt6opmkjlqPPVmiPWWJn8M8byMxRGzp1CrFuqQs4M/Z39A==} + peerDependencies: + vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0 || ^6.0.1 || ^7.0.0-0 + vite-hot-client@2.1.0: resolution: {integrity: sha512-7SpgZmU7R+dDnSmvXE1mfDtnHLHQSisdySVR7lO8ceAXvM0otZeuQQ6C8LrS5d/aYyP/QZ0hI0L+dIPrm4YlFQ==} peerDependencies: vite: ^2.6.0 || ^3.0.0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0 - vite-plugin-inspect@0.8.9: - resolution: {integrity: sha512-22/8qn+LYonzibb1VeFZmISdVao5kC22jmEKm24vfFE8siEn47EpVcCLYMv6iKOYMJfjSvSJfueOwcFCkUnV3A==} + vite-plugin-inspect@11.3.3: + resolution: {integrity: sha512-u2eV5La99oHoYPHE6UvbwgEqKKOQGz86wMg40CCosP6q8BkB6e5xPneZfYagK4ojPJSj5anHCrnvC20DpwVdRA==} engines: {node: '>=14'} peerDependencies: '@nuxt/kit': '*' - vite: ^3.1.0 || ^4.0.0 || ^5.0.0-0 || ^6.0.1 + vite: ^6.0.0 || ^7.0.0-0 peerDependenciesMeta: '@nuxt/kit': optional: true @@ -7617,68 +7437,28 @@ packages: peerDependencies: monaco-editor: '>=0.33.0' - vite-plugin-static-copy@3.4.0: - resolution: {integrity: sha512-ekryzCw0ouAOE8tw4RvVL/dfqguXzumsV3FBKoKso4MQ1MUUrUXtl5RI4KpJQUNGqFEsg9kxl4EvDl02YtA9VQ==} - engines: {node: ^18.0.0 || >=20.0.0} + vite-plugin-static-copy@4.1.0: + resolution: {integrity: sha512-9XOarNV7LgP0KBB7AApxdgFikLXx3daZdqjC3AevYsL6MrUH62zphonLUs2a6LZc1HN1GY+vQdheZ8VVJb6dQQ==} + engines: {node: ^22.0.0 || >=24.0.0} peerDependencies: - vite: ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 + vite: ^6.0.0 || ^7.0.0 || ^8.0.0 vite-plugin-virtual@0.5.0: resolution: {integrity: sha512-vKqZRK1k67VvMeUyvXNAboVwBHcdNuULR/+s7x+WVohM/i2kz2ZiCuHlp4JdQe2DjQ0Cnb9wZJH95BgpZ3lJvw==} peerDependencies: vite: ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 - vite-plugin-vue-devtools@7.7.9: - resolution: {integrity: sha512-08DvePf663SxqLFJeMVNW537zzVyakp9KIrI2K7lwgaTqA5R/ydN/N2K8dgZO34tg/Qmw0ch84fOKoBtCEdcGg==} + vite-plugin-vue-devtools@8.1.1: + resolution: {integrity: sha512-9qTpOmZ2vHpvlI9hdVXAQ1Ry4I8GcBArU7aPi0qfIaV7fQIXy0L1nb6X4mFY2Gw0dYshHuLbIl0Ulb572SCjsQ==} engines: {node: '>=v14.21.3'} peerDependencies: - vite: ^3.1.0 || ^4.0.0-0 || ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0 + vite: ^6.0.0 || ^7.0.0 || ^8.0.0 vite-plugin-vue-inspector@5.4.0: resolution: {integrity: sha512-Iq/024CydcE46FZqWPU4t4lw4uYOdLnFSO1RNxJVt2qY9zxIjmnkBqhHnYaReWM82kmNnaXs7OkfgRrV2GEjyw==} peerDependencies: vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 - vite@6.4.2: - resolution: {integrity: sha512-2N/55r4JDJ4gdrCvGgINMy+HH3iRpNIz8K6SFwVsA+JbQScLiC+clmAxBgwiSPgcG9U15QmvqCGWzMbqda5zGQ==} - engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} - hasBin: true - peerDependencies: - '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 - jiti: '>=1.21.0' - less: '*' - lightningcss: ^1.21.0 - sass: '*' - sass-embedded: '*' - stylus: '*' - sugarss: '*' - terser: ^5.16.0 - tsx: ^4.8.1 - yaml: ^2.4.2 - peerDependenciesMeta: - '@types/node': - optional: true - jiti: - optional: true - less: - optional: true - lightningcss: - 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@7.3.2: resolution: {integrity: sha512-Bby3NOsna2jsjfLVOHKes8sGwgl4TT0E6vvpYgnAYDIF/tie7MRaFthmKuHx1NSXjiTueXH3do80FMQgvEktRg==} engines: {node: ^20.19.0 || >=22.12.0} @@ -7934,6 +7714,10 @@ packages: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} + yargs-parser@22.0.0: + resolution: {integrity: sha512-rwu/ClNdSMpkSrUb+d6BRsSkLUq1fmfsY6TOpYzTwvwkg1/NRG85KBy3kq++A8LKQwX6lsu+aWad+2khvuXrqw==} + engines: {node: ^20.19.0 || ^22.12.0 || >=23} + yargs@17.7.2: resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} engines: {node: '>=12'} @@ -7949,29 +7733,10 @@ packages: resolution: {integrity: sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==} engines: {node: '>=12.20'} - yocto-spinner@0.2.3: - resolution: {integrity: sha512-sqBChb33loEnkoXte1bLg45bEBsOP9N1kzQh5JZNKj/0rik4zAPTNSAVPj3uQAdc6slYJ0Ksc403G2XgxsJQFQ==} - engines: {node: '>=18.19'} - - yoctocolors@2.1.2: - resolution: {integrity: sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug==} - engines: {node: '>=18'} - zip-stream@6.0.1: resolution: {integrity: sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==} engines: {node: '>= 14'} - zod-to-json-schema@3.25.2: - resolution: {integrity: sha512-O/PgfnpT1xKSDeQYSCfRI5Gy3hPf91mKVDuYLUHZJMiDFptvP41MSnWofm8dnCm0256ZNfZIM7DSzuSMAFnjHA==} - peerDependencies: - zod: ^3.25.28 || ^4 - - zod-to-ts@1.2.0: - resolution: {integrity: sha512-x30XE43V+InwGpvTySRNz9kB7qFU8DlyEy7BsSTCHPH1R0QasMmHWZDCzYm6bVXtj/9NNJAZF3jW8rzFvH5OFA==} - peerDependencies: - typescript: ^4.9.4 || ^5.0.2 - zod: ^3 - zod@3.25.76: resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} @@ -8020,8 +7785,6 @@ snapshots: package-manager-detector: 1.6.0 tinyexec: 1.1.1 - '@antfu/utils@0.7.10': {} - '@aria-ui/core@0.2.0': dependencies: '@ocavue/utils': 1.6.0 @@ -8054,20 +7817,19 @@ snapshots: '@astrojs/compiler@2.13.1': {} - '@astrojs/internal-helpers@0.7.6': {} + '@astrojs/compiler@3.0.1': {} '@astrojs/internal-helpers@0.9.0': dependencies: picomatch: 4.0.4 - '@astrojs/markdown-remark@6.3.11': + '@astrojs/markdown-remark@7.1.1': dependencies: - '@astrojs/internal-helpers': 0.7.6 - '@astrojs/prism': 3.3.0 + '@astrojs/internal-helpers': 0.9.0 + '@astrojs/prism': 4.0.1 github-slugger: 2.0.0 hast-util-from-html: 2.0.3 hast-util-to-text: 4.0.2 - import-meta-resolve: 4.2.0 js-yaml: 4.1.1 mdast-util-definitions: 6.0.0 rehype-raw: 7.0.0 @@ -8076,7 +7838,8 @@ snapshots: remark-parse: 11.0.0 remark-rehype: 11.1.2 remark-smartypants: 3.0.2 - shiki: 3.23.0 + retext-smartypants: 6.2.0 + shiki: 4.0.2 smol-toml: 1.6.1 unified: 11.0.5 unist-util-remove-position: 5.0.0 @@ -8086,13 +7849,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@astrojs/mdx@4.3.14(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3))': + '@astrojs/mdx@5.0.4(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3))': dependencies: - '@astrojs/markdown-remark': 6.3.11 + '@astrojs/markdown-remark': 7.1.1 '@mdx-js/mdx': 3.1.1 acorn: 8.16.0 - astro: 5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3) - es-module-lexer: 1.7.0 + astro: 6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3) + es-module-lexer: 2.0.0 estree-util-visit: 2.0.0 hast-util-to-html: 9.0.5 piccolore: 0.1.3 @@ -8105,18 +7868,18 @@ snapshots: transitivePeerDependencies: - supports-color - '@astrojs/netlify@6.6.5(@types/node@25.6.0)(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3))(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(yaml@2.8.3)': + '@astrojs/netlify@7.0.8(@types/node@25.6.0)(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3))(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(yaml@2.8.3)': dependencies: - '@astrojs/internal-helpers': 0.7.6 - '@astrojs/underscore-redirects': 1.0.0 + '@astrojs/internal-helpers': 0.9.0 + '@astrojs/underscore-redirects': 1.0.3 '@netlify/blobs': 10.7.4(supports-color@10.2.2) '@netlify/functions': 5.2.0 - '@netlify/vite-plugin': 2.11.5(rollup@4.60.1)(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3)) - '@vercel/nft': 0.30.4(rollup@4.60.1) - astro: 5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3) - esbuild: 0.25.12 + '@netlify/vite-plugin': 2.11.5(rollup@4.60.1)(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3)) + '@vercel/nft': 1.5.0(rollup@4.60.1) + astro: 6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3) + esbuild: 0.27.7 tinyglobby: 0.2.16 - vite: 6.4.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3) + vite: 7.3.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -8156,7 +7919,7 @@ snapshots: - uploadthing - yaml - '@astrojs/prism@3.3.0': + '@astrojs/prism@4.0.1': dependencies: prismjs: 1.30.0 @@ -8197,28 +7960,28 @@ snapshots: stream-replace-string: 2.0.0 zod: 4.3.6 - '@astrojs/starlight-docsearch@file:vendor/docsearch(@astrojs/starlight@0.37.7(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)))': + '@astrojs/starlight-docsearch@file:vendor/docsearch(@astrojs/starlight@0.38.3(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)))': dependencies: - '@astrojs/starlight': 0.37.7(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)) + '@astrojs/starlight': 0.38.3(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)) '@docsearch/css': 4.6.2 '@docsearch/js': 4.6.2 - '@astrojs/starlight-tailwind@4.0.2(@astrojs/starlight@0.37.7(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)))(tailwindcss@4.2.4)': + '@astrojs/starlight-tailwind@5.0.0(@astrojs/starlight@0.38.3(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)))(tailwindcss@4.2.4)': dependencies: - '@astrojs/starlight': 0.37.7(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)) + '@astrojs/starlight': 0.38.3(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)) tailwindcss: 4.2.4 - '@astrojs/starlight@0.37.7(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3))': + '@astrojs/starlight@0.38.3(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3))': dependencies: - '@astrojs/markdown-remark': 6.3.11 - '@astrojs/mdx': 4.3.14(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)) + '@astrojs/markdown-remark': 7.1.1 + '@astrojs/mdx': 5.0.4(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)) '@astrojs/sitemap': 3.7.2 '@pagefind/default-ui': 1.5.2 '@types/hast': 3.0.4 '@types/js-yaml': 4.0.9 '@types/mdast': 4.0.4 - astro: 5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3) - astro-expressive-code: 0.41.7(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)) + astro: 6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3) + astro-expressive-code: 0.41.7(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)) bcp-47: 2.1.0 hast-util-from-html: 2.0.3 hast-util-select: 6.0.4 @@ -8242,28 +8005,25 @@ snapshots: transitivePeerDependencies: - supports-color - '@astrojs/telemetry@3.3.0': + '@astrojs/telemetry@3.3.1': dependencies: ci-info: 4.4.0 - debug: 4.4.3(supports-color@10.2.2) dlv: 1.1.3 dset: 3.1.4 - is-docker: 3.0.0 + is-docker: 4.0.0 is-wsl: 3.1.1 which-pm-runs: 1.1.0 - transitivePeerDependencies: - - supports-color - '@astrojs/underscore-redirects@1.0.0': {} + '@astrojs/underscore-redirects@1.0.3': {} - '@astrojs/vue@5.1.4(@types/node@25.6.0)(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3))(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(vue@3.5.33(typescript@5.9.3))(yaml@2.8.3)': + '@astrojs/vue@6.0.1(@types/node@25.6.0)(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3))(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(vue@3.5.33(typescript@5.9.3))(yaml@2.8.3)': dependencies: - '@vitejs/plugin-vue': 5.2.4(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3))(vue@3.5.33(typescript@5.9.3)) - '@vitejs/plugin-vue-jsx': 4.2.0(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3))(vue@3.5.33(typescript@5.9.3)) - '@vue/compiler-sfc': 3.5.32 - astro: 5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3) - vite: 6.4.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3) - vite-plugin-vue-devtools: 7.7.9(rollup@4.60.1)(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3))(vue@3.5.33(typescript@5.9.3)) + '@vitejs/plugin-vue': 6.0.6(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3))(vue@3.5.33(typescript@5.9.3)) + '@vitejs/plugin-vue-jsx': 5.1.5(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3))(vue@3.5.33(typescript@5.9.3)) + '@vue/compiler-sfc': 3.5.33 + astro: 6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3) + vite: 7.3.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3) + vite-plugin-vue-devtools: 8.1.1(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3))(vue@3.5.33(typescript@5.9.3)) vue: 3.5.33(typescript@5.9.3) transitivePeerDependencies: - '@nuxt/kit' @@ -8271,7 +8031,6 @@ snapshots: - jiti - less - lightningcss - - rollup - sass - sass-embedded - stylus @@ -8518,6 +8277,18 @@ snapshots: dependencies: fontkitten: 1.0.3 + '@clack/core@1.2.0': + dependencies: + fast-wrap-ansi: 0.1.6 + sisteransi: 1.0.5 + + '@clack/prompts@1.2.0': + dependencies: + '@clack/core': 1.2.0 + fast-string-width: 1.1.0 + fast-wrap-ansi: 0.1.6 + sisteransi: 1.0.5 + '@codemirror/autocomplete@6.20.1': dependencies: '@codemirror/language': 6.12.3 @@ -8649,234 +8420,156 @@ snapshots: '@epic-web/invariant@1.0.0': {} - '@esbuild/aix-ppc64@0.25.12': - optional: true - '@esbuild/aix-ppc64@0.27.3': optional: true '@esbuild/aix-ppc64@0.27.7': optional: true - '@esbuild/android-arm64@0.25.12': - optional: true - '@esbuild/android-arm64@0.27.3': optional: true '@esbuild/android-arm64@0.27.7': optional: true - '@esbuild/android-arm@0.25.12': - optional: true - '@esbuild/android-arm@0.27.3': optional: true '@esbuild/android-arm@0.27.7': optional: true - '@esbuild/android-x64@0.25.12': - optional: true - '@esbuild/android-x64@0.27.3': optional: true '@esbuild/android-x64@0.27.7': optional: true - '@esbuild/darwin-arm64@0.25.12': - optional: true - '@esbuild/darwin-arm64@0.27.3': optional: true '@esbuild/darwin-arm64@0.27.7': optional: true - '@esbuild/darwin-x64@0.25.12': - optional: true - '@esbuild/darwin-x64@0.27.3': optional: true '@esbuild/darwin-x64@0.27.7': optional: true - '@esbuild/freebsd-arm64@0.25.12': - optional: true - '@esbuild/freebsd-arm64@0.27.3': optional: true '@esbuild/freebsd-arm64@0.27.7': optional: true - '@esbuild/freebsd-x64@0.25.12': - optional: true - '@esbuild/freebsd-x64@0.27.3': optional: true '@esbuild/freebsd-x64@0.27.7': optional: true - '@esbuild/linux-arm64@0.25.12': - optional: true - '@esbuild/linux-arm64@0.27.3': optional: true '@esbuild/linux-arm64@0.27.7': optional: true - '@esbuild/linux-arm@0.25.12': - optional: true - '@esbuild/linux-arm@0.27.3': optional: true '@esbuild/linux-arm@0.27.7': optional: true - '@esbuild/linux-ia32@0.25.12': - optional: true - '@esbuild/linux-ia32@0.27.3': optional: true '@esbuild/linux-ia32@0.27.7': optional: true - '@esbuild/linux-loong64@0.25.12': - optional: true - '@esbuild/linux-loong64@0.27.3': optional: true '@esbuild/linux-loong64@0.27.7': optional: true - '@esbuild/linux-mips64el@0.25.12': - optional: true - '@esbuild/linux-mips64el@0.27.3': optional: true '@esbuild/linux-mips64el@0.27.7': optional: true - '@esbuild/linux-ppc64@0.25.12': - optional: true - '@esbuild/linux-ppc64@0.27.3': optional: true '@esbuild/linux-ppc64@0.27.7': optional: true - '@esbuild/linux-riscv64@0.25.12': - optional: true - '@esbuild/linux-riscv64@0.27.3': optional: true '@esbuild/linux-riscv64@0.27.7': optional: true - '@esbuild/linux-s390x@0.25.12': - optional: true - '@esbuild/linux-s390x@0.27.3': optional: true '@esbuild/linux-s390x@0.27.7': optional: true - '@esbuild/linux-x64@0.25.12': - optional: true - '@esbuild/linux-x64@0.27.3': optional: true '@esbuild/linux-x64@0.27.7': optional: true - '@esbuild/netbsd-arm64@0.25.12': - optional: true - '@esbuild/netbsd-arm64@0.27.3': optional: true '@esbuild/netbsd-arm64@0.27.7': optional: true - '@esbuild/netbsd-x64@0.25.12': - optional: true - '@esbuild/netbsd-x64@0.27.3': optional: true '@esbuild/netbsd-x64@0.27.7': optional: true - '@esbuild/openbsd-arm64@0.25.12': - optional: true - '@esbuild/openbsd-arm64@0.27.3': optional: true '@esbuild/openbsd-arm64@0.27.7': optional: true - '@esbuild/openbsd-x64@0.25.12': - optional: true - '@esbuild/openbsd-x64@0.27.3': optional: true '@esbuild/openbsd-x64@0.27.7': optional: true - '@esbuild/openharmony-arm64@0.25.12': - optional: true - '@esbuild/openharmony-arm64@0.27.3': optional: true '@esbuild/openharmony-arm64@0.27.7': optional: true - '@esbuild/sunos-x64@0.25.12': - optional: true - '@esbuild/sunos-x64@0.27.3': optional: true '@esbuild/sunos-x64@0.27.7': optional: true - '@esbuild/win32-arm64@0.25.12': - optional: true - '@esbuild/win32-arm64@0.27.3': optional: true '@esbuild/win32-arm64@0.27.7': optional: true - '@esbuild/win32-ia32@0.25.12': - optional: true - '@esbuild/win32-ia32@0.27.3': optional: true '@esbuild/win32-ia32@0.27.7': optional: true - '@esbuild/win32-x64@0.25.12': - optional: true - '@esbuild/win32-x64@0.27.3': optional: true @@ -8999,11 +8692,11 @@ snapshots: '@tanstack/vue-virtual': 3.13.23(vue@3.5.33(typescript@5.9.3)) vue: 3.5.33(typescript@5.9.3) - '@hideoo/starlight-plugins-docs-components@0.4.2(@astrojs/starlight@0.37.7(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)))': + '@hideoo/starlight-plugins-docs-components@0.4.2(@astrojs/starlight@0.38.3(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)))': dependencies: - '@astrojs/starlight': 0.37.7(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)) - starlight-package-managers: 0.12.0(@astrojs/starlight@0.37.7(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3))) - starlight-showcases: 0.3.2(@astrojs/starlight@0.37.7(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3))) + '@astrojs/starlight': 0.38.3(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)) + starlight-package-managers: 0.12.0(@astrojs/starlight@0.38.3(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3))) + starlight-showcases: 0.3.2(@astrojs/starlight@0.38.3(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3))) '@humanwhocodes/momoa@2.0.4': {} @@ -9762,12 +9455,12 @@ snapshots: '@netlify/types@2.6.0': {} - '@netlify/vite-plugin@2.11.5(rollup@4.60.1)(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3))': + '@netlify/vite-plugin@2.11.5(rollup@4.60.1)(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3))': dependencies: '@netlify/dev': 4.17.1(rollup@4.60.1) '@netlify/dev-utils': 4.4.3 dedent: 1.7.2 - vite: 6.4.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3) + vite: 7.3.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -10493,10 +10186,10 @@ snapshots: - typescript - universal-cookie - '@scalar/astro@0.2.9(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3))': + '@scalar/astro@0.2.9(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3))': dependencies: '@scalar/client-side-rendering': 0.1.2 - astro: 5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3) + astro: 6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3) '@scalar/client-side-rendering@0.1.2': dependencies: @@ -10716,15 +10409,30 @@ snapshots: '@shikijs/vscode-textmate': 10.0.2 oniguruma-to-es: 4.3.5 + '@shikijs/engine-javascript@4.0.2': + dependencies: + '@shikijs/types': 4.0.2 + '@shikijs/vscode-textmate': 10.0.2 + oniguruma-to-es: 4.3.5 + '@shikijs/engine-oniguruma@3.23.0': dependencies: '@shikijs/types': 3.23.0 '@shikijs/vscode-textmate': 10.0.2 + '@shikijs/engine-oniguruma@4.0.2': + dependencies: + '@shikijs/types': 4.0.2 + '@shikijs/vscode-textmate': 10.0.2 + '@shikijs/langs@3.23.0': dependencies: '@shikijs/types': 3.23.0 + '@shikijs/langs@4.0.2': + dependencies: + '@shikijs/types': 4.0.2 + '@shikijs/primitive@4.0.2': dependencies: '@shikijs/types': 4.0.2 @@ -10735,6 +10443,10 @@ snapshots: dependencies: '@shikijs/types': 3.23.0 + '@shikijs/themes@4.0.2': + dependencies: + '@shikijs/types': 4.0.2 + '@shikijs/transformers@4.0.2': dependencies: '@shikijs/core': 4.0.2 @@ -10763,8 +10475,6 @@ snapshots: '@sindresorhus/merge-streams@2.3.0': {} - '@sindresorhus/merge-streams@4.0.0': {} - '@sindresorhus/slugify@2.2.1': dependencies: '@sindresorhus/transliterate': 1.6.0 @@ -10947,7 +10657,7 @@ snapshots: '@types/normalize-package-data@2.4.4': {} - '@types/picomatch@3.0.2': {} + '@types/picomatch@4.0.3': {} '@types/react-dom@19.2.3(@types/react@19.2.14)': dependencies: @@ -11200,7 +10910,7 @@ snapshots: - rollup - supports-color - '@vercel/nft@0.30.4(rollup@4.60.1)': + '@vercel/nft@1.5.0(rollup@4.60.1)': dependencies: '@mapbox/node-pre-gyp': 2.0.3(supports-color@10.2.2) '@rollup/pluginutils': 5.3.0(rollup@4.60.1) @@ -11233,22 +10943,18 @@ snapshots: transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue-jsx@4.2.0(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3))(vue@3.5.33(typescript@5.9.3))': + '@vitejs/plugin-vue-jsx@5.1.5(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3))(vue@3.5.33(typescript@5.9.3))': dependencies: '@babel/core': 7.29.0 + '@babel/plugin-syntax-typescript': 7.28.6(@babel/core@7.29.0) '@babel/plugin-transform-typescript': 7.28.6(@babel/core@7.29.0) '@rolldown/pluginutils': 1.0.0-rc.16 - '@vue/babel-plugin-jsx': 1.5.0(@babel/core@7.29.0) - vite: 6.4.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3) + '@vue/babel-plugin-jsx': 2.0.1(@babel/core@7.29.0) + vite: 7.3.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3) vue: 3.5.33(typescript@5.9.3) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue@5.2.4(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3))(vue@3.5.33(typescript@5.9.3))': - dependencies: - vite: 6.4.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3) - vue: 3.5.33(typescript@5.9.3) - '@vitejs/plugin-vue@6.0.6(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3))(vue@3.5.33(typescript@5.9.3))': dependencies: '@rolldown/pluginutils': 1.0.0-rc.13 @@ -11267,6 +10973,8 @@ snapshots: '@vue/babel-helper-vue-transform-on@1.5.0': {} + '@vue/babel-helper-vue-transform-on@2.0.1': {} + '@vue/babel-plugin-jsx@1.5.0(@babel/core@7.29.0)': dependencies: '@babel/helper-module-imports': 7.28.6 @@ -11277,7 +10985,23 @@ snapshots: '@babel/types': 7.29.0 '@vue/babel-helper-vue-transform-on': 1.5.0 '@vue/babel-plugin-resolve-type': 1.5.0(@babel/core@7.29.0) - '@vue/shared': 3.5.32 + '@vue/shared': 3.5.33 + optionalDependencies: + '@babel/core': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@vue/babel-plugin-jsx@2.0.1(@babel/core@7.29.0)': + dependencies: + '@babel/helper-module-imports': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.29.0) + '@babel/template': 7.28.6 + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 + '@vue/babel-helper-vue-transform-on': 2.0.1 + '@vue/babel-plugin-resolve-type': 2.0.1(@babel/core@7.29.0) + '@vue/shared': 3.5.33 optionalDependencies: '@babel/core': 7.29.0 transitivePeerDependencies: @@ -11290,7 +11014,18 @@ snapshots: '@babel/helper-module-imports': 7.28.6 '@babel/helper-plugin-utils': 7.28.6 '@babel/parser': 7.29.2 - '@vue/compiler-sfc': 3.5.32 + '@vue/compiler-sfc': 3.5.33 + transitivePeerDependencies: + - supports-color + + '@vue/babel-plugin-resolve-type@2.0.1(@babel/core@7.29.0)': + dependencies: + '@babel/code-frame': 7.29.0 + '@babel/core': 7.29.0 + '@babel/helper-module-imports': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/parser': 7.29.2 + '@vue/compiler-sfc': 3.5.33 transitivePeerDependencies: - supports-color @@ -11358,27 +11093,11 @@ snapshots: dependencies: '@vue/devtools-kit': 8.1.1 - '@vue/devtools-core@7.7.9(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3))(vue@3.5.33(typescript@5.9.3))': + '@vue/devtools-core@8.1.1(vue@3.5.33(typescript@5.9.3))': dependencies: - '@vue/devtools-kit': 7.7.9 - '@vue/devtools-shared': 7.7.9 - mitt: 3.0.1 - nanoid: 5.1.9 - pathe: 2.0.3 - vite-hot-client: 2.1.0(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3)) + '@vue/devtools-kit': 8.1.1 + '@vue/devtools-shared': 8.1.1 vue: 3.5.33(typescript@5.9.3) - transitivePeerDependencies: - - vite - - '@vue/devtools-kit@7.7.9': - dependencies: - '@vue/devtools-shared': 7.7.9 - birpc: 2.9.0 - hookable: 5.5.3 - mitt: 3.0.1 - perfect-debounce: 1.0.0 - speakingurl: 14.0.1 - superjson: 2.2.6 '@vue/devtools-kit@8.1.1': dependencies: @@ -11387,10 +11106,6 @@ snapshots: hookable: 5.5.3 perfect-debounce: 2.1.0 - '@vue/devtools-shared@7.7.9': - dependencies: - rfdc: 1.4.1 - '@vue/devtools-shared@8.1.1': {} '@vue/reactivity@3.5.33': @@ -11684,27 +11399,27 @@ snapshots: astring@1.9.0: {} - astro-d2@0.9.0(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)): + astro-d2@0.10.0(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)): dependencies: '@terrastruct/d2': 0.1.33 - astro: 5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3) + astro: 6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3) hast-util-from-html: 2.0.3 hast-util-to-html: 9.0.5 unist-util-visit: 5.1.0 - astro-expressive-code@0.41.7(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)): + astro-expressive-code@0.41.7(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)): dependencies: - astro: 5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3) + astro: 6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3) rehype-expressive-code: 0.41.7 - astro-loader-github-releases@2.1.1(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)): + astro-loader-github-releases@2.1.1(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)): dependencies: - astro: 5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3) + astro: 6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3) octokit: 5.0.5 - astro-og-canvas@0.10.1(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)): + astro-og-canvas@0.10.1(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)): dependencies: - astro: 5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3) + astro: 6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3) canvaskit-wasm: 0.40.0 deterministic-object-hash: 2.0.2 entities: 7.0.1 @@ -11719,55 +11434,49 @@ snapshots: astro-theme-toggle@0.8.0: {} - astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3): + astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3): dependencies: - '@astrojs/compiler': 2.13.1 - '@astrojs/internal-helpers': 0.7.6 - '@astrojs/markdown-remark': 6.3.11 - '@astrojs/telemetry': 3.3.0 + '@astrojs/compiler': 3.0.1 + '@astrojs/internal-helpers': 0.9.0 + '@astrojs/markdown-remark': 7.1.1 + '@astrojs/telemetry': 3.3.1 '@capsizecss/unpack': 4.0.0 + '@clack/prompts': 1.2.0 '@oslojs/encoding': 1.1.0 '@rollup/pluginutils': 5.3.0(rollup@4.60.1) - acorn: 8.16.0 aria-query: 5.3.2 axobject-query: 4.1.0 - boxen: 8.0.1 ci-info: 4.4.0 clsx: 2.1.1 - common-ancestor-path: 1.0.1 + common-ancestor-path: 2.0.0 cookie: 1.1.1 - cssesc: 3.0.0 - debug: 4.4.3(supports-color@10.2.2) - deterministic-object-hash: 2.0.2 devalue: 5.7.1 diff: 8.0.4 - dlv: 1.1.3 dset: 3.1.4 - es-module-lexer: 1.7.0 + es-module-lexer: 2.0.0 esbuild: 0.27.7 - estree-walker: 3.0.3 flattie: 1.1.1 fontace: 0.4.1 github-slugger: 2.0.0 html-escaper: 3.0.3 http-cache-semantics: 4.2.0 - import-meta-resolve: 4.2.0 js-yaml: 4.1.1 magic-string: 0.30.21 magicast: 0.5.2 mrmime: 2.0.1 neotraverse: 0.6.18 - p-limit: 6.2.0 - p-queue: 8.1.1 + obug: 2.1.1 + p-limit: 7.3.0 + p-queue: 9.1.2 package-manager-detector: 1.6.0 piccolore: 0.1.3 picomatch: 4.0.4 - prompts: 2.4.2 rehype: 13.0.2 semver: 7.7.4 - shiki: 3.23.0 + shiki: 4.0.2 smol-toml: 1.6.1 svgo: 4.0.1 + tinyclip: 0.1.12 tinyexec: 1.1.1 tinyglobby: 0.2.16 tsconfck: 3.1.6(typescript@5.9.3) @@ -11776,14 +11485,11 @@ snapshots: unist-util-visit: 5.1.0 unstorage: 1.17.5(@netlify/blobs@10.7.0) vfile: 6.0.3 - vite: 6.4.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3) - vitefu: 1.1.3(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3)) + vite: 7.3.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3) + vitefu: 1.1.3(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3)) xxhash-wasm: 1.1.0 - yargs-parser: 21.1.1 - yocto-spinner: 0.2.3 - zod: 3.25.76 - zod-to-json-schema: 3.25.2(zod@3.25.76) - zod-to-ts: 1.2.0(typescript@5.9.3)(zod@3.25.76) + yargs-parser: 22.0.0 + zod: 4.3.6 optionalDependencies: sharp: 0.34.5 transitivePeerDependencies: @@ -12168,7 +11874,7 @@ snapshots: array-timsort: 1.0.3 esprima: 4.0.1 - common-ancestor-path@1.0.1: {} + common-ancestor-path@2.0.0: {} common-path-prefix@3.0.0: {} @@ -12214,10 +11920,6 @@ snapshots: cookie@1.1.1: {} - copy-anything@4.0.5: - dependencies: - is-what: 5.5.0 - copy-file@11.1.0: dependencies: graceful-fs: 4.2.11 @@ -12560,7 +12262,7 @@ snapshots: environment@1.1.0: {} - error-stack-parser-es@0.1.5: {} + error-stack-parser-es@1.0.5: {} error-stack-parser@2.1.4: dependencies: @@ -12629,6 +12331,8 @@ snapshots: es-module-lexer@1.7.0: {} + es-module-lexer@2.0.0: {} + es-object-atoms@1.1.1: dependencies: es-errors: 1.3.0 @@ -12664,35 +12368,6 @@ snapshots: esast-util-from-estree: 2.0.0 vfile-message: 4.0.3 - esbuild@0.25.12: - optionalDependencies: - '@esbuild/aix-ppc64': 0.25.12 - '@esbuild/android-arm': 0.25.12 - '@esbuild/android-arm64': 0.25.12 - '@esbuild/android-x64': 0.25.12 - '@esbuild/darwin-arm64': 0.25.12 - '@esbuild/darwin-x64': 0.25.12 - '@esbuild/freebsd-arm64': 0.25.12 - '@esbuild/freebsd-x64': 0.25.12 - '@esbuild/linux-arm': 0.25.12 - '@esbuild/linux-arm64': 0.25.12 - '@esbuild/linux-ia32': 0.25.12 - '@esbuild/linux-loong64': 0.25.12 - '@esbuild/linux-mips64el': 0.25.12 - '@esbuild/linux-ppc64': 0.25.12 - '@esbuild/linux-riscv64': 0.25.12 - '@esbuild/linux-s390x': 0.25.12 - '@esbuild/linux-x64': 0.25.12 - '@esbuild/netbsd-arm64': 0.25.12 - '@esbuild/netbsd-x64': 0.25.12 - '@esbuild/openbsd-arm64': 0.25.12 - '@esbuild/openbsd-x64': 0.25.12 - '@esbuild/openharmony-arm64': 0.25.12 - '@esbuild/sunos-x64': 0.25.12 - '@esbuild/win32-arm64': 0.25.12 - '@esbuild/win32-ia32': 0.25.12 - '@esbuild/win32-x64': 0.25.12 - esbuild@0.27.3: optionalDependencies: '@esbuild/aix-ppc64': 0.27.3 @@ -12854,21 +12529,6 @@ snapshots: signal-exit: 4.1.0 strip-final-newline: 3.0.0 - execa@9.6.1: - dependencies: - '@sindresorhus/merge-streams': 4.0.0 - cross-spawn: 7.0.6 - figures: 6.1.0 - get-stream: 9.0.1 - human-signals: 8.0.1 - is-plain-obj: 4.1.0 - is-stream: 4.0.1 - npm-run-path: 6.0.0 - pretty-ms: 9.3.0 - signal-exit: 4.1.0 - strip-final-newline: 4.0.0 - yoctocolors: 2.1.2 - express-logging@1.1.1: dependencies: on-headers: 1.1.0 @@ -12960,10 +12620,20 @@ snapshots: fast-safe-stringify@2.1.1: {} + fast-string-truncated-width@1.2.1: {} + + fast-string-width@1.1.0: + dependencies: + fast-string-truncated-width: 1.2.1 + fast-stringify@4.0.0: {} fast-uri@3.1.0: {} + fast-wrap-ansi@0.1.6: + dependencies: + fast-string-width: 1.1.0 + fast-xml-builder@1.1.4: dependencies: path-expression-matcher: 1.5.0 @@ -13110,12 +12780,6 @@ snapshots: inherits: 2.0.4 readable-stream: 2.3.8 - fs-extra@11.3.4: - dependencies: - graceful-fs: 4.2.11 - jsonfile: 6.2.0 - universalify: 2.0.1 - fsevents@2.3.3: optional: true @@ -13602,8 +13266,6 @@ snapshots: human-signals@5.0.0: {} - human-signals@8.0.1: {} - i18next@23.16.8: dependencies: '@babel/runtime': 7.29.2 @@ -13635,8 +13297,6 @@ snapshots: cjs-module-lexer: 1.4.3 module-details-from-path: 1.0.4 - import-meta-resolve@4.2.0: {} - imurmurhash@0.1.4: {} indent-string@5.0.0: {} @@ -13774,6 +13434,8 @@ snapshots: is-absolute-url@4.0.1: {} + is-absolute-url@5.0.0: {} + is-alphabetical@2.0.1: {} is-alphanumerical@2.0.1: @@ -13963,8 +13625,6 @@ snapshots: call-bound: 1.0.4 get-intrinsic: 1.3.0 - is-what@5.5.0: {} - is-wsl@3.1.0: dependencies: is-inside-container: 1.0.0 @@ -14023,12 +13683,6 @@ snapshots: jsonc-parser@3.3.1: {} - jsonfile@6.2.0: - dependencies: - universalify: 2.0.1 - optionalDependencies: - graceful-fs: 4.2.11 - jsonpointer@5.0.1: {} jsonwebtoken@9.0.3: @@ -14063,10 +13717,6 @@ snapshots: dependencies: mimic-fn: 4.0.0 - kleur@3.0.3: {} - - kleur@4.1.5: {} - klona@2.0.6: {} kolorist@1.8.0: {} @@ -14290,9 +13940,9 @@ snapshots: dependencies: marked: 12.0.2 - marked-plaintify@1.1.1(marked@15.0.12): + marked-plaintify@1.1.1(marked@17.0.6): dependencies: - marked: 15.0.12 + marked: 17.0.6 marked-smartypants@1.1.12(marked@12.0.2): dependencies: @@ -14303,7 +13953,7 @@ snapshots: marked@14.0.0: {} - marked@15.0.12: {} + marked@17.0.6: {} math-intrinsics@1.1.0: {} @@ -14833,8 +14483,6 @@ snapshots: dependencies: minipass: 7.1.3 - mitt@3.0.1: {} - mlly@1.8.2: dependencies: acorn: 8.16.0 @@ -15150,11 +14798,6 @@ snapshots: dependencies: path-key: 4.0.0 - npm-run-path@6.0.0: - dependencies: - path-key: 4.0.0 - unicorn-magic: 0.3.0 - nth-check@2.1.1: dependencies: boolbase: 1.0.0 @@ -15292,7 +14935,7 @@ snapshots: dependencies: yocto-queue: 1.2.2 - p-limit@6.2.0: + p-limit@7.3.0: dependencies: yocto-queue: 1.2.2 @@ -15304,10 +14947,10 @@ snapshots: p-map@7.0.4: {} - p-queue@8.1.1: + p-queue@9.1.2: dependencies: eventemitter3: 5.0.4 - p-timeout: 6.1.4 + p-timeout: 7.0.1 p-reduce@3.0.0: {} @@ -15319,6 +14962,8 @@ snapshots: p-timeout@6.1.4: {} + p-timeout@7.0.1: {} + p-wait-for@5.0.2: dependencies: p-timeout: 6.1.4 @@ -15625,11 +15270,6 @@ snapshots: process@0.11.10: {} - prompts@2.4.2: - dependencies: - kleur: 3.0.3 - sisteransi: 1.0.5 - property-information@7.1.0: {} proto-list@1.2.4: {} @@ -16295,6 +15935,17 @@ snapshots: '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 + shiki@4.0.2: + dependencies: + '@shikijs/core': 4.0.2 + '@shikijs/engine-javascript': 4.0.2 + '@shikijs/engine-oniguruma': 4.0.2 + '@shikijs/langs': 4.0.2 + '@shikijs/themes': 4.0.2 + '@shikijs/types': 4.0.2 + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + side-channel-list@1.0.1: dependencies: es-errors: 1.3.0 @@ -16388,8 +16039,6 @@ snapshots: spdx-license-ids@3.0.23: {} - speakingurl@14.0.1: {} - split2@1.1.1: dependencies: through2: 2.0.5 @@ -16406,19 +16055,19 @@ snapshots: stackframe@1.3.4: {} - starlight-blog@0.25.3(@astrojs/starlight@0.37.7(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)))(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)): + starlight-blog@0.26.1(@astrojs/starlight@0.38.3(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)))(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)): dependencies: - '@astrojs/markdown-remark': 6.3.11 - '@astrojs/mdx': 4.3.14(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)) + '@astrojs/markdown-remark': 7.1.1 + '@astrojs/mdx': 5.0.4(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)) '@astrojs/rss': 4.0.18 - '@astrojs/starlight': 0.37.7(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)) + '@astrojs/starlight': 0.38.3(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)) astro-remote: 0.3.4 github-slugger: 2.0.0 hast-util-from-html: 2.0.3 hast-util-to-html: 9.0.5 hast-util-to-string: 3.0.1 - marked: 15.0.12 - marked-plaintify: 1.1.1(marked@15.0.12) + marked: 17.0.6 + marked-plaintify: 1.1.1(marked@17.0.6) mdast-util-mdx-expression: 2.0.1 unist-util-is: 6.0.1 unist-util-remove: 4.0.0 @@ -16427,9 +16076,9 @@ snapshots: - astro - supports-color - starlight-image-zoom@0.13.2(@astrojs/starlight@0.37.7(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3))): + starlight-image-zoom@0.14.1(@astrojs/starlight@0.38.3(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3))): dependencies: - '@astrojs/starlight': 0.37.7(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)) + '@astrojs/starlight': 0.38.3(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)) mdast-util-mdx-jsx: 3.2.0 rehype-raw: 7.0.0 unist-util-visit: 5.1.0 @@ -16437,31 +16086,30 @@ snapshots: transitivePeerDependencies: - supports-color - starlight-links-validator@0.19.2(@astrojs/starlight@0.37.7(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)))(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)): + starlight-links-validator@0.23.0(@astrojs/starlight@0.38.3(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)))(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)): dependencies: - '@astrojs/starlight': 0.37.7(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)) - '@types/picomatch': 3.0.2 - astro: 5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3) + '@astrojs/starlight': 0.38.3(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)) + '@types/picomatch': 4.0.3 + astro: 6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3) github-slugger: 2.0.0 hast-util-from-html: 2.0.3 - hast-util-has-property: 3.0.0 - is-absolute-url: 4.0.1 - kleur: 4.1.5 + is-absolute-url: 5.0.0 mdast-util-mdx-jsx: 3.2.0 - mdast-util-to-string: 4.0.0 + mdast-util-to-hast: 13.2.1 picomatch: 4.0.4 terminal-link: 5.0.0 unist-util-visit: 5.1.0 + yaml: 2.8.3 transitivePeerDependencies: - supports-color - starlight-llms-txt@0.7.0(@astrojs/starlight@0.37.7(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)))(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)): + starlight-llms-txt@0.8.1(@astrojs/starlight@0.38.3(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)))(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)): dependencies: - '@astrojs/mdx': 4.3.14(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)) - '@astrojs/starlight': 0.37.7(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)) + '@astrojs/mdx': 5.0.4(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)) + '@astrojs/starlight': 0.38.3(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)) '@types/hast': 3.0.4 '@types/micromatch': 4.0.10 - astro: 5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3) + astro: 6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3) github-slugger: 2.0.0 hast-util-select: 6.0.4 micromatch: 4.0.8 @@ -16474,23 +16122,23 @@ snapshots: transitivePeerDependencies: - supports-color - starlight-package-managers@0.12.0(@astrojs/starlight@0.37.7(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3))): + starlight-package-managers@0.12.0(@astrojs/starlight@0.38.3(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3))): dependencies: - '@astrojs/starlight': 0.37.7(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)) + '@astrojs/starlight': 0.38.3(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)) - starlight-page-actions@0.5.0(@astrojs/starlight@0.37.7(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)))(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3))(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3)): + starlight-page-actions@0.6.0(@astrojs/starlight@0.38.3(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)))(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3))(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3)): dependencies: - '@astrojs/starlight': 0.37.7(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)) - astro: 5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3) - vite-plugin-static-copy: 3.4.0(patch_hash=af70d2811d381cdea319ad374155ad8bf276cf04bf80834dd64bc0800a7cd4a3)(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3)) + '@astrojs/starlight': 0.38.3(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)) + astro: 6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3) + vite-plugin-static-copy: 4.1.0(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3)) vite-plugin-virtual: 0.5.0(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3)) transitivePeerDependencies: - vite - starlight-plugin-icons@1.1.6(@astrojs/starlight@0.37.7(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)))(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(unocss@66.4.2(postcss@8.5.10)(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3)))(zod@4.3.6): + starlight-plugin-icons@1.1.6(@astrojs/starlight@0.38.3(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)))(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(unocss@66.4.2(postcss@8.5.10)(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3)))(zod@4.3.6): dependencies: - '@astrojs/starlight': 0.37.7(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)) - astro: 5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3) + '@astrojs/starlight': 0.38.3(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)) + astro: 6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3) glob: 11.1.0 hast-util-select: 6.0.4 hast-util-to-string: 3.0.1 @@ -16501,23 +16149,23 @@ snapshots: unocss: 66.4.2(postcss@8.5.10)(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3)) zod: 4.3.6 - starlight-showcases@0.3.2(@astrojs/starlight@0.37.7(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3))): + starlight-showcases@0.3.2(@astrojs/starlight@0.38.3(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3))): dependencies: '@astro-community/astro-embed-twitter': 0.5.11 '@astro-community/astro-embed-youtube': 0.5.10 - '@astrojs/starlight': 0.37.7(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)) + '@astrojs/starlight': 0.38.3(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)) - starlight-sidebar-topics-dropdown@0.5.4(@astrojs/starlight@0.37.7(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)))(starlight-sidebar-topics@0.6.2(@astrojs/starlight@0.37.7(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)))): + starlight-sidebar-topics-dropdown@0.6.0(@astrojs/starlight@0.38.3(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)))(starlight-sidebar-topics@0.7.1(@astrojs/starlight@0.38.3(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)))): dependencies: - '@astrojs/starlight': 0.37.7(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)) - starlight-sidebar-topics: 0.6.2(@astrojs/starlight@0.37.7(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3))) + '@astrojs/starlight': 0.38.3(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)) + starlight-sidebar-topics: 0.7.1(@astrojs/starlight@0.38.3(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3))) - starlight-sidebar-topics@0.6.2(@astrojs/starlight@0.37.7(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3))): + starlight-sidebar-topics@0.7.1(@astrojs/starlight@0.38.3(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3))): dependencies: - '@astrojs/starlight': 0.37.7(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)) + '@astrojs/starlight': 0.38.3(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)) picomatch: 4.0.4 - starlight-theme-nova@0.11.9(@astrojs/starlight@0.37.7(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)))(typescript@5.9.3): + starlight-theme-nova@0.11.9(@astrojs/starlight@0.38.3(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)))(typescript@5.9.3): dependencies: '@aria-ui/core': 0.2.0 '@aria-ui/utils': 0.1.5 @@ -16532,15 +16180,15 @@ snapshots: remark-custom-header-id: 1.0.0 shiki-twoslash-renderer: 0.3.3(typescript@5.9.3) optionalDependencies: - '@astrojs/starlight': 0.37.7(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)) + '@astrojs/starlight': 0.38.3(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)) transitivePeerDependencies: - supports-color - typescript - starlight-videos@0.3.1(@astrojs/starlight@0.37.7(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3))): + starlight-videos@0.4.0(@astrojs/starlight@0.38.3(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3))): dependencies: '@astro-community/astro-embed-youtube': 0.5.10 - '@astrojs/starlight': 0.37.7(astro@5.18.1(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)) + '@astrojs/starlight': 0.38.3(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)) hastscript: 9.0.1 iso8601-duration: 2.1.3 srt-parser-2: 1.2.3 @@ -16646,8 +16294,6 @@ snapshots: strip-final-newline@3.0.0: {} - strip-final-newline@4.0.0: {} - strip-json-comments@2.0.1: {} strnum@2.2.3: {} @@ -16678,10 +16324,6 @@ snapshots: make-asynchronous: 1.1.0 time-span: 5.1.0 - superjson@2.2.6: - dependencies: - copy-anything: 4.0.5 - supports-color@10.2.2: {} supports-color@7.2.0: @@ -17048,8 +16690,6 @@ snapshots: universal-user-agent@7.0.3: {} - universalify@2.0.1: {} - unix-dgram@2.0.7: dependencies: bindings: 1.5.0 @@ -17213,31 +16853,36 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.3 - vite-hot-client@2.1.0(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3)): + vite-dev-rpc@1.1.0(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3)): dependencies: - vite: 6.4.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3) + birpc: 2.9.0 + vite: 7.3.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3) + vite-hot-client: 2.1.0(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3)) - vite-plugin-inspect@0.8.9(rollup@4.60.1)(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3)): + vite-hot-client@2.1.0(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3)): dependencies: - '@antfu/utils': 0.7.10 - '@rollup/pluginutils': 5.3.0(rollup@4.60.1) + vite: 7.3.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3) + + vite-plugin-inspect@11.3.3(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3)): + dependencies: + ansis: 4.2.0 debug: 4.4.3(supports-color@10.2.2) - error-stack-parser-es: 0.1.5 - fs-extra: 11.3.4 + error-stack-parser-es: 1.0.5 + ohash: 2.0.11 open: 10.2.0 - perfect-debounce: 1.0.0 - picocolors: 1.1.1 + perfect-debounce: 2.1.0 sirv: 3.0.2 - vite: 6.4.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3) + unplugin-utils: 0.3.1 + vite: 7.3.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3) + vite-dev-rpc: 1.1.0(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3)) transitivePeerDependencies: - - rollup - supports-color vite-plugin-monaco-editor@1.1.0(monaco-editor@0.55.1): dependencies: monaco-editor: 0.55.1 - vite-plugin-static-copy@3.4.0(patch_hash=af70d2811d381cdea319ad374155ad8bf276cf04bf80834dd64bc0800a7cd4a3)(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3)): + vite-plugin-static-copy@4.1.0(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3)): dependencies: chokidar: 3.6.0 p-map: 7.0.4 @@ -17249,23 +16894,21 @@ snapshots: dependencies: vite: 7.3.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3) - vite-plugin-vue-devtools@7.7.9(rollup@4.60.1)(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3))(vue@3.5.33(typescript@5.9.3)): + vite-plugin-vue-devtools@8.1.1(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3))(vue@3.5.33(typescript@5.9.3)): dependencies: - '@vue/devtools-core': 7.7.9(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3))(vue@3.5.33(typescript@5.9.3)) - '@vue/devtools-kit': 7.7.9 - '@vue/devtools-shared': 7.7.9 - execa: 9.6.1 + '@vue/devtools-core': 8.1.1(vue@3.5.33(typescript@5.9.3)) + '@vue/devtools-kit': 8.1.1 + '@vue/devtools-shared': 8.1.1 sirv: 3.0.2 - vite: 6.4.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3) - vite-plugin-inspect: 0.8.9(rollup@4.60.1)(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3)) - vite-plugin-vue-inspector: 5.4.0(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3)) + vite: 7.3.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3) + vite-plugin-inspect: 11.3.3(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3)) + vite-plugin-vue-inspector: 5.4.0(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3)) transitivePeerDependencies: - '@nuxt/kit' - - rollup - supports-color - vue - vite-plugin-vue-inspector@5.4.0(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3)): + vite-plugin-vue-inspector@5.4.0(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3)): dependencies: '@babel/core': 7.29.0 '@babel/plugin-proposal-decorators': 7.29.0(@babel/core@7.29.0) @@ -17273,29 +16916,13 @@ snapshots: '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.29.0) '@babel/plugin-transform-typescript': 7.28.6(@babel/core@7.29.0) '@vue/babel-plugin-jsx': 1.5.0(@babel/core@7.29.0) - '@vue/compiler-dom': 3.5.32 + '@vue/compiler-dom': 3.5.33 kolorist: 1.8.0 magic-string: 0.30.21 - vite: 6.4.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3) + vite: 7.3.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3) transitivePeerDependencies: - supports-color - vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3): - dependencies: - esbuild: 0.25.12 - fdir: 6.5.0(picomatch@4.0.4) - picomatch: 4.0.4 - postcss: 8.5.10 - rollup: 4.60.1 - tinyglobby: 0.2.16 - optionalDependencies: - '@types/node': 25.6.0 - fsevents: 2.3.3 - jiti: 2.6.1 - lightningcss: 1.32.0 - terser: 5.46.1 - yaml: 2.8.3 - vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3): dependencies: esbuild: 0.27.7 @@ -17312,9 +16939,9 @@ snapshots: terser: 5.46.1 yaml: 2.8.3 - vitefu@1.1.3(vite@6.4.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3)): + vitefu@1.1.3(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3)): optionalDependencies: - vite: 6.4.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3) + vite: 7.3.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3) vscode-jsonrpc@8.2.0: {} @@ -17533,6 +17160,8 @@ snapshots: yargs-parser@21.1.1: {} + yargs-parser@22.0.0: {} + yargs@17.7.2: dependencies: cliui: 8.0.1 @@ -17552,27 +17181,12 @@ snapshots: yocto-queue@1.2.2: {} - yocto-spinner@0.2.3: - dependencies: - yoctocolors: 2.1.2 - - yoctocolors@2.1.2: {} - zip-stream@6.0.1: dependencies: archiver-utils: 5.0.2 compress-commons: 6.0.2 readable-stream: 4.7.0 - zod-to-json-schema@3.25.2(zod@3.25.76): - dependencies: - zod: 3.25.76 - - zod-to-ts@1.2.0(typescript@5.9.3)(zod@3.25.76): - dependencies: - typescript: 5.9.3 - zod: 3.25.76 - zod@3.25.76: {} zod@4.3.6: {} diff --git a/project-docs/PATCHES.md b/project-docs/PATCHES.md index 723f21acd..b674793f4 100644 --- a/project-docs/PATCHES.md +++ b/project-docs/PATCHES.md @@ -4,9 +4,9 @@ This project uses [pnpm patches](https://pnpm.io/cli/patch) to fix upstream bugs --- -## vite-plugin-static-copy@3.4.0 +## vite-plugin-static-copy@4.1.0 -**File:** `patches/vite-plugin-static-copy@3.4.0.patch` +**File:** `patches/vite-plugin-static-copy@4.1.0.patch` **Bug:** In Vite 6's Environment API, `configResolved` is called once per environment. The plugin stores the config from each call, so the last environment's config overwrites earlier ones. When `writeBundle` runs for the `client` environment, `config.build.outDir` points to the SSR environment's output directory (`.netlify/build/`) instead of `dist/`. This causes all `.md` files generated by `starlight-page-actions` to land in the wrong directory. @@ -25,7 +25,7 @@ const result = await copyAll(config.root, outDir, targets, silent) **When to remove:** Once the upstream PR is merged and released, and `starlight-page-actions` picks up the fixed version: -1. Delete `patches/vite-plugin-static-copy@3.4.0.patch` +1. Delete `patches/vite-plugin-static-copy@4.1.0.patch` 2. Remove the `patchedDependencies` entry from `package.json` 3. Run `pnpm install` 4. Run `pnpm build` and verify `.md` files exist in `dist/` (e.g. `dist/authenticate/mcp/quickstart.md`) From 354141b6b7474bb7ab4361d559ea62b79f635518 Mon Sep 17 00:00:00 2001 From: Ravi Madabhushi Date: Thu, 23 Apr 2026 15:42:31 +0530 Subject: [PATCH 04/36] Fix Astro 6 build errors: image imports and anchor link slugs - _mcp-auth-claude-code.mdx: Import skill-activation.png and use imported variable for src (Astro 6 requires imported images) - add-modular-sso.mdx, quickstart.mdx, group-based-role-assignment.mdx: Update anchor links to account for Badge component context in heading IDs (#embed-the-admin-portal- and #generate-shareable-portal-link-) --- .../templates/coding-agents/_mcp-auth-claude-code.mdx | 3 ++- src/content/docs/authenticate/sso/add-modular-sso.mdx | 2 +- .../docs/directory/guides/group-based-role-assignment.mdx | 2 +- src/content/docs/sso/quickstart.mdx | 2 +- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/components/templates/coding-agents/_mcp-auth-claude-code.mdx b/src/components/templates/coding-agents/_mcp-auth-claude-code.mdx index d759a6d85..edd619fbf 100644 --- a/src/components/templates/coding-agents/_mcp-auth-claude-code.mdx +++ b/src/components/templates/coding-agents/_mcp-auth-claude-code.mdx @@ -1,6 +1,7 @@ import { Steps, Aside, Tabs, TabItem } from '@astrojs/starlight/components' import { Image } from 'astro:assets' import enableClaudePluginGif from '@/assets/docs/ai-assisted-mcp-quickstart/2.gif' +import skillActivation from '@/assets/docs/ai-assisted-mcp-quickstart/skill-activation.png' @@ -79,7 +80,7 @@ import enableClaudePluginGif from '@/assets/docs/ai-assisted-mcp-quickstart/2.gi When you submit this prompt, Claude Code loads the MCP authentication skill from the marketplace -> analyzes your existing MCP server structure -> generates authentication middleware with token validation -> creates the OAuth discovery endpoint -> configures environment variable handling. Claude Code activating MCP authentication skill diff --git a/src/content/docs/authenticate/sso/add-modular-sso.mdx b/src/content/docs/authenticate/sso/add-modular-sso.mdx index ce566ff72..ac181f942 100644 --- a/src/content/docs/authenticate/sso/add-modular-sso.mdx +++ b/src/content/docs/authenticate/sso/add-modular-sso.mdx @@ -824,7 +824,7 @@ Choose Modular SSO when you: Customers configure SSO without leaving your application, maintaining a consistent user experience. Listen for UI events from the embedded portal to respond to configuration changes, such as when SSO is enabled or the session expires. See the [Admin portal UI events reference](/reference/admin-portal/ui-events/) for details on handling these events. - Learn more: [Embedded Admin Portal guide](/guides/admin-portal/#embed-the-admin-portal) + Learn more: [Embedded Admin Portal guide](/guides/admin-portal/#embed-the-admin-portal-) diff --git a/src/content/docs/directory/guides/group-based-role-assignment.mdx b/src/content/docs/directory/guides/group-based-role-assignment.mdx index 192f64f55..023736d0d 100644 --- a/src/content/docs/directory/guides/group-based-role-assignment.mdx +++ b/src/content/docs/directory/guides/group-based-role-assignment.mdx @@ -84,7 +84,7 @@ After you create roles, they represent the roles in your app that you want direc You can set up this mapping in two ways: 1. Configure mappings in the Scalekit dashboard on behalf of organization administrators. Select the organization and go to the **SCIM provisioning** tab. -2. Share the [admin portal link](/guides/admin-portal#generate-shareable-portal-link) with organization administrators so they can configure the mappings themselves. +2. Share the [admin portal link](/guides/admin-portal/#generate-shareable-portal-link-) with organization administrators so they can configure the mappings themselves. Scalekit automatically displays mapping options in both the Scalekit dashboard and the admin portal. This allows administrators to connect organization groups to app roles without custom logic in your application. diff --git a/src/content/docs/sso/quickstart.mdx b/src/content/docs/sso/quickstart.mdx index 0451c9582..1ead54e69 100644 --- a/src/content/docs/sso/quickstart.mdx +++ b/src/content/docs/sso/quickstart.mdx @@ -859,7 +859,7 @@ Choose Modular SSO when you: Customers configure SSO without leaving your application, maintaining a consistent user experience. - Learn more: [Embedded Admin Portal guide](/guides/admin-portal/#embed-the-admin-portal) + Learn more: [Embedded Admin Portal guide](/guides/admin-portal/#embed-the-admin-portal-) From e19b4c7742510352c93ca1e125e778ccf8a29541 Mon Sep 17 00:00:00 2001 From: Saif Ali Shaik Date: Fri, 24 Apr 2026 16:23:06 +0530 Subject: [PATCH 05/36] new lock --- pnpm-lock.yaml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6955e835f..2742ba09a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,6 +9,11 @@ overrides: glob: ^11.0.0 mdast-util-to-hast: ^13.2.1 +patchedDependencies: + vite-plugin-static-copy@4.1.0: + hash: bf52b6885198a8230a976a3236eacff30f47bd67993abb30a328a6a176397dcc + path: patches/vite-plugin-static-copy@4.1.0.patch + importers: .: @@ -16130,7 +16135,7 @@ snapshots: dependencies: '@astrojs/starlight': 0.38.3(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)) astro: 6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3) - vite-plugin-static-copy: 4.1.0(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3)) + vite-plugin-static-copy: 4.1.0(patch_hash=bf52b6885198a8230a976a3236eacff30f47bd67993abb30a328a6a176397dcc)(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3)) vite-plugin-virtual: 0.5.0(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3)) transitivePeerDependencies: - vite @@ -16882,7 +16887,7 @@ snapshots: dependencies: monaco-editor: 0.55.1 - vite-plugin-static-copy@4.1.0(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3)): + vite-plugin-static-copy@4.1.0(patch_hash=bf52b6885198a8230a976a3236eacff30f47bd67993abb30a328a6a176397dcc)(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3)): dependencies: chokidar: 3.6.0 p-map: 7.0.4 From ba4000e8e9a962f050e6015e84bb9834ae919bad Mon Sep 17 00:00:00 2001 From: Ravi Madabhushi Date: Fri, 24 Apr 2026 18:00:57 +0530 Subject: [PATCH 06/36] build: reduce build time and improve CI quality - Remove agent-markdown-audit from default build (no-op in prod) - Replace pre-push full build with astro check (saves ~3 min per push) - Add GitHub Actions CI: type check, format check, audit on every push/PR - Enable starlightLinksValidator on deploy previews (skip production only) - Raise maxParallelFileOps from 2 to 8 to reduce Rollup serialization - Parallelize generate-llms-index.js file reads with async fs/promises - Add /_astro/* immutable cache headers for content-hashed assets - Fix incorrect node_bundler comment and remove redundant included_files - Fix stale output: server comment in astro.config.mjs - Add build audit report to project-docs/ --- .github/workflows/ci.yml | 32 ++ .simple-git-hooks.json | 2 +- astro.config.mjs | 19 +- netlify.toml | 14 +- package.json | 3 +- project-docs/BUILD_AUDIT.md | 662 +++++++++++++++++++++++++++++++++ scripts/generate-llms-index.js | 28 +- 7 files changed, 732 insertions(+), 28 deletions(-) create mode 100644 .github/workflows/ci.yml create mode 100644 project-docs/BUILD_AUDIT.md diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 000000000..6c84b498b --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,32 @@ +name: CI + +on: + push: + branches: ['**'] + pull_request: + +jobs: + check: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - uses: pnpm/action-setup@v4 + # Reads packageManager field from package.json automatically + + - uses: actions/setup-node@v4 + with: + node-version: 20 + cache: 'pnpm' + + - name: Install dependencies + run: pnpm install --frozen-lockfile + + - name: Type check + run: pnpm astro check + + - name: Format check + run: pnpm run format:check + + - name: Agent markdown audit + run: node scripts/agent-markdown-audit.js --strict diff --git a/.simple-git-hooks.json b/.simple-git-hooks.json index 188070908..124c34dbf 100644 --- a/.simple-git-hooks.json +++ b/.simple-git-hooks.json @@ -1,4 +1,4 @@ { "pre-commit": "pnpm pretty-quick --staged", - "pre-push": "if [ -n \"$(git status --porcelain)\" ]; then echo \"❌ Error: You have uncommitted changes. Please commit or stash them before pushing.\"; git status --short; exit 1; fi && echo \"Running build before push...\" && pnpm run generate-search-index && pnpm run build && node scripts/log-preview-url.js" + "pre-push": "if [ -n \"$(git status --porcelain)\" ]; then echo \"❌ Error: You have uncommitted changes. Please commit or stash them before pushing.\"; git status --short; exit 1; fi && pnpm astro check && node scripts/log-preview-url.js" } diff --git a/astro.config.mjs b/astro.config.mjs index 1e7b35ced..713c2deba 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -31,10 +31,9 @@ import { injectAgentHeader } from './src/integrations/inject-agent-header.ts' // https://astro.build/config export default defineConfig({ - // Switched from 'server' to default (static) to drastically reduce build memory. - // Astro 6's Vite Environments API creates separate build contexts per output mode; - // 'server' mode processes all 300+ pages through a heavy SSR pipeline. - // The few SSR pages (auth, health, admin) already have `prerender = false`. + // SSR mode: the Netlify adapter prerendering per-page via `prerender` exports. + // Pages without `prerender = false` are statically generated at build time. + // Memory-intensive builds: see vite.build settings below. output: 'server', site: 'https://docs.scalekit.com', server: { @@ -106,9 +105,10 @@ export default defineConfig({ askAi: '8jKZkVuXS0hG', }), starlightVideos(), - // Links validator disabled in CI to reduce build memory usage. - // Run locally with: pnpm astro build (without NETLIFY env var) - ...(!process.env.NETLIFY + // Links validator: enabled locally and on deploy previews; skipped on production + // Netlify builds to reduce peak memory usage. + // CONTEXT is set by Netlify: 'production' | 'deploy-preview' | 'branch-deploy' + ...(!process.env.NETLIFY || process.env.CONTEXT !== 'production' ? [ starlightLinksValidator({ exclude: ['/apis/**'], @@ -411,8 +411,9 @@ export default defineConfig({ // Disable gzip size reporting to save memory on large builds reportCompressedSize: false, rollupOptions: { - // Limit parallel file I/O to reduce memory spikes during bundling - maxParallelFileOps: 2, + // Limit parallel file I/O to reduce memory spikes during bundling. + // 8 caps concurrency well below unlimited while reducing serialization vs. the prior value of 2. + maxParallelFileOps: 8, output: { manualChunks(id) { if (id.includes('@scalar')) return 'scalar' diff --git a/netlify.toml b/netlify.toml index 1d0b26df5..7a9852de3 100644 --- a/netlify.toml +++ b/netlify.toml @@ -7,9 +7,9 @@ [functions] directory = "netlify/functions" + # Bundles Functions 1.x with esbuild. The SSR function (Functions 2.0) is + # bundled separately by the Netlify adapter and is not affected by this setting. node_bundler = "esbuild" - # Ensure Functions 2.0 format is used - included_files = ["netlify/functions/**"] # Local dev: same as `pnpm run start` — `NETLIFY_DEV=1 astro dev` on port 4321. # Declare `command` + `targetPort` so Netlify Dev matches astro.config server settings. @@ -21,7 +21,15 @@ path = "/*" function = "track-agents" -# LLM-friendly files: fresh but cacheable (1 hour) +# Astro emits content-hashed filenames for all JS/CSS bundles — safe to cache permanently. +# The hash changes whenever content changes, so immutable is correct here. +[[headers]] + for = "/_astro/*" + [headers.values] + Cache-Control = "public, max-age=31536000, immutable" + +# LLM index files — 1h fresh, 24h stale. All four rules below are intentionally identical; +# Netlify TOML requires a separate [[headers]] block per path pattern. [[headers]] for = "/llms.txt" [headers.values] diff --git a/package.json b/package.json index a51901986..cf55ae158 100644 --- a/package.json +++ b/package.json @@ -6,8 +6,9 @@ "scripts": { "dev": "netlify dev:exec pnpm run start", "start": "cross-env NETLIFY_DEV=1 astro dev", - "build": "astro build && node scripts/generate-llms-index.js && node scripts/agent-markdown-audit.js", + "build": "astro build && node scripts/generate-llms-index.js", "agent-markdown:audit": "node scripts/agent-markdown-audit.js", + "agent-markdown:audit:strict": "node scripts/agent-markdown-audit.js --strict", "preview": "astro preview", "astro": "astro", "upgrade": "pnpm dlx @astrojs/upgrade", diff --git a/project-docs/BUILD_AUDIT.md b/project-docs/BUILD_AUDIT.md new file mode 100644 index 000000000..b62a60ddc --- /dev/null +++ b/project-docs/BUILD_AUDIT.md @@ -0,0 +1,662 @@ +# Build audit: issues, fixes, and prioritization + +**Scope:** `package.json` scripts, `astro.config.mjs` (Vite/build config), `netlify.toml`, `.simple-git-hooks.json`, shift-left opportunities +**Date:** 2026-04-24 + +--- + +## Summary + +### Part 1 — Existing build issues + +| # | Issue | File | Priority | Risk | Impact | +| --- | ------------------------------------------------ | ------------------ | -------- | ------ | ----------------- | +| 1 | Audit script runs on every build, writes nothing | `package.json` | High | Low | Build duration ↓ | +| 2 | Post-build scripts run sequentially | `package.json` | High | Low | Build duration ↓ | +| 3 | `generate-llms-index.js` uses sync FS APIs | `scripts/` | Medium | Low | Build duration ↓ | +| 4 | Stale comment contradicts `output: 'server'` | `astro.config.mjs` | Medium | None | Build quality ↑ | +| 5 | `maxParallelFileOps: 2` too conservative | `astro.config.mjs` | Medium | Medium | Build duration ↓ | +| 6 | `chunkSizeWarningLimit: 2000` suppresses signal | `astro.config.mjs` | Low | Low | Build quality ↑ | +| 7 | `node_bundler` comment is factually wrong | `netlify.toml` | High | None | Build quality ↑ | +| 8 | `included_files` is redundant/misleading | `netlify.toml` | High | Low | Build quality ↑ | +| 9 | No cache headers for hashed static assets | `netlify.toml` | High | Low | Runtime perf ↑ | +| 10 | Links validator disabled in all Netlify builds | `astro.config.mjs` | Medium | Low | Build quality ↑ | +| 11 | LLM cache rules are four identical blocks | `netlify.toml` | Low | None | Maintainability ↑ | + +### Part 2 — Shift-left and structural opportunities + +| # | Opportunity | Priority | Risk | Impact | +| --- | ---------------------------------------------------------------------------------------- | ------------ | ------ | ----------------- | +| 12 | Pre-push hook runs full build — duplicates Netlify | **Critical** | Medium | Build duration ↓↓ | +| 13 | No GitHub Actions CI — pre-push is only check | High | Low | Build quality ↑↑ | +| 14 | D2 generation: already skipped on Netlify, but no enforcement when `.d2` files are added | Medium | Low | Build quality ↑ | +| 15 | `reorder-swagger` not in any automated pipeline | Medium | Low | Build quality ↑ | +| 16 | `astro check` (TypeScript) not in any pipeline | High | Low | Build quality ↑ | +| 17 | OG image pre-generation to avoid WASM at build time | Low | Medium | Build duration ↓ | + +--- + +## Detailed findings + +### 1. Audit script runs on every production build + +**File:** `package.json`, line 9 + +```json +"build": "astro build && node scripts/generate-llms-index.js && node scripts/agent-markdown-audit.js" +``` + +`agent-markdown-audit.js` scans all MDX files and logs component coverage to stdout. It **writes no build artifacts**. It only fails the build when run with `--strict`, which the build script never passes. Running it on every CI/Netlify build burns time scanning 300+ docs pages for zero effect on the output. + +**Fix:** + +```json +"build": "astro build && node scripts/generate-llms-index.js", +"build:audit": "node scripts/agent-markdown-audit.js", +"build:audit:strict": "node scripts/agent-markdown-audit.js --strict" +``` + +**Priority:** High +**Risk:** Low — removes a no-op step; output unchanged +**Impact:** Build duration reduction proportional to docs page count (grows over time) + +--- + +### 2. Post-build scripts run sequentially + +**File:** `package.json`, line 9 + +`generate-llms-index.js` and `agent-markdown-audit.js` are fully independent — neither reads output from the other. Chaining with `&&` serializes them unnecessarily. + +**Fix (cross-platform via `concurrently`, already a transitive dep via Netlify CLI):** + +```json +"build": "astro build && concurrently \"node scripts/generate-llms-index.js\" \"node scripts/agent-markdown-audit.js\"" +``` + +Or, since `agent-markdown-audit.js` is removed from the default build in fix #1, this applies only if both are intentionally kept: + +```bash +# Unix only +"build": "astro build && node scripts/generate-llms-index.js & node scripts/agent-markdown-audit.js & wait" +``` + +**Priority:** High (but dependent on fix #1; if #1 is applied, this becomes moot for the default build) +**Risk:** Low — scripts are side-effect-free relative to each other +**Impact:** Build duration — saves the full wall-clock time of the shorter script + +--- + +### 3. `generate-llms-index.js` uses synchronous FS in a loop + +**File:** `scripts/generate-llms-index.js`, lines 83–96 + +```js +function walk(dir) { + for (const entry of readdirSync(dir)) { + const stat = statSync(full) // blocks per file + const content = readFileSync(file) // blocks per file + } +} +``` + +`agent-markdown-audit.js` already does this correctly with async generators and `readdir` from `fs/promises`. The sync approach serializes every stat and read, blocking the event loop for the full doc tree. + +**Fix:** Rewrite `walk()` and the main loop using `fs/promises`: + +```js +import { readFile, readdir, stat } from 'node:fs/promises' + +async function* walk(dir) { + for (const entry of await readdir(dir)) { + const full = join(dir, entry) + if ((await stat(full)).isDirectory()) yield* walk(full) + else if (full.endsWith('.md') || full.endsWith('.mdx')) yield full + } +} + +const reads = [] +for await (const file of walk(DOCS_DIR)) { + reads.push(readFile(file, 'utf8').then((content) => ({ file, content }))) +} +const files = await Promise.all(reads) +``` + +**Priority:** Medium +**Risk:** Low — pure I/O refactor, same logical output +**Impact:** Build duration — meaningful on large doc trees; parallelizes all file reads + +--- + +### 4. Stale comment contradicts `output: 'server'` + +**File:** `astro.config.mjs`, lines 34–38 + +```js +// Switched from 'server' to default (static) to drastically reduce build memory. +// Astro 6's Vite Environments API creates separate build contexts per output mode; +// 'server' mode processes all 300+ pages through a heavy SSR pipeline. +// The few SSR pages (auth, health, admin) already have `prerender = false`. +output: 'server', +``` + +The comment describes switching _away_ from `server` mode, but the code is `output: 'server'`. Either the switch was reverted and the comment not updated, or the comment was written anticipating a change that never happened. This actively misleads anyone reading the config. + +**Fix:** Update the comment to reflect actual state: + +```js +// SSR mode: the Netlify adapter handles static prerendering per-page. +// Pages with `prerender = false` (auth, health, admin) are served as SSR. +// Memory-intensive builds: see vite.build settings below. +output: 'server', +``` + +**Priority:** Medium +**Risk:** None — comment-only change +**Impact:** Build quality (maintainability, onboarding) + +--- + +### 5. `maxParallelFileOps: 2` is excessively conservative + +**File:** `astro.config.mjs`, line 415 + +```js +maxParallelFileOps: 2, +``` + +Rollup's default is no limit. This was tuned down for CI memory, but `2` serializes almost all file I/O during bundling. On a build with 300+ pages and thousands of assets, this directly extends the Rollup emit phase. The memory benefit is real but the value should be calibrated — `8` still caps concurrency well below default while meaningfully reducing serialization. + +**Fix:** + +```js +// Caps Rollup file I/O concurrency to reduce memory spikes; 8 is a reasonable +// middle ground between unlimited (default) and fully serial (2). +maxParallelFileOps: 8, +``` + +**Priority:** Medium +**Risk:** Medium — increasing this raises peak memory usage. Should be tested against CI memory limits before merging. Rollback is trivial. +**Impact:** Build duration — Rollup emit phase is a significant share of total build time + +--- + +### 6. `chunkSizeWarningLimit: 2000` suppresses a useful signal + +**File:** `astro.config.mjs`, line 409 + +```js +chunkSizeWarningLimit: 2000, +``` + +Default is 500KB. Raising to 2000KB (2MB) silences Vite's chunk size warnings. This means large chunks that could be split for better page load performance go unnoticed. The `@scalar` manual chunk (line 418) already handles the known large dependency — the limit raise should not be needed if chunks are managed properly. + +**Fix:** Audit current chunk sizes first: + +```bash +pnpm astro build 2>&1 | grep "kB" +``` + +If no chunks exceed 500KB after the `@scalar` split, revert to default: + +```js +// chunkSizeWarningLimit: 2000, // remove or reduce back to default 500 +``` + +If large chunks remain, split them explicitly rather than hiding the warning. + +**Priority:** Low +**Risk:** Low — restoring the default only adds console warnings, not failures. Actual chunk behavior unchanged. +**Impact:** Build quality — surface hidden bundle size issues + +--- + +### 7. `node_bundler` comment is factually wrong + +**File:** `netlify.toml`, lines 10–11 + +```toml +node_bundler = "esbuild" +# Ensure Functions 2.0 format is used +``` + +`node_bundler = "esbuild"` is the **Functions 1.x** bundler setting. Functions 2.0 uses native ESM with `eszip` format and is declared via `export default` syntax in the function file — not controlled by `node_bundler`. The comment is the opposite of what the setting does and will mislead any debugging of function packaging issues. + +**Fix:** + +```toml +node_bundler = "esbuild" +# Bundles legacy Functions 1.x with esbuild. Functions 2.0 (used by the SSR adapter) +# are bundled separately via the Netlify adapter and are not affected by this setting. +``` + +**Priority:** High +**Risk:** None — comment-only change +**Impact:** Build quality (correctness of ops knowledge, reduces debugging time) + +--- + +### 8. `included_files` is redundant and misleading + +**File:** `netlify.toml`, lines 9–12 + +```toml +[functions] + directory = "netlify/functions" + node_bundler = "esbuild" + included_files = ["netlify/functions/**"] +``` + +`included_files` tells esbuild which additional files to bundle into the function — for example, templates, JSON data, or WASM binaries that aren't imported but needed at runtime. Pointing it at the functions source directory itself achieves nothing useful because those files are already the entry points being bundled. This creates a false impression that some important bundling is happening. + +**Fix:** Remove the line entirely, or replace with a real runtime dependency if one exists: + +```toml +[functions] + directory = "netlify/functions" + node_bundler = "esbuild" +``` + +**Priority:** High +**Risk:** Low — removing a no-op line. If by accident this was bundling something legitimate, the function would break and the real dependency would become visible. Verify by running `netlify functions:build` locally first. +**Impact:** Build quality (removes false signal in config) + +--- + +### 9. No cache headers for hashed static assets + +**File:** `netlify.toml` + +Astro generates content-hashed filenames for all JS/CSS bundles (e.g., `/_astro/index.BxK3f8aP.js`). These can be cached permanently because the hash changes on every content update. No `Cache-Control` rule exists for `/_astro/*`, so Netlify serves these with its default short-lived cache, forcing browsers and CDN nodes to re-fetch unchanged assets on every deploy. + +**Fix:** Add to `netlify.toml`: + +```toml +# Astro emits content-hashed filenames — safe to cache permanently +[[headers]] + for = "/_astro/*" + [headers.values] + Cache-Control = "public, max-age=31536000, immutable" +``` + +**Priority:** High +**Risk:** Low — immutable cache is safe precisely because the URL changes with content. If assets somehow stopped being hashed (e.g., Astro config change), this would need revisiting. +**Impact:** Runtime performance — eliminates redundant asset fetches across deploys; reduces CDN egress cost + +--- + +### 10. Links validator disabled in all Netlify builds, including previews + +**File:** `astro.config.mjs`, lines 111–117 + +```js +...(!process.env.NETLIFY + ? [starlightLinksValidator({ exclude: ['/apis/**'] })] + : []), +``` + +`NETLIFY=1` is set in all Netlify environments — production, deploy previews, and branch deploys. This means broken internal links are **never caught in CI**. They can only be caught locally, which requires developer discipline. + +**Fix option A:** Check `CONTEXT` env var (set by Netlify) to distinguish production from previews: + +```js +const isProduction = process.env.CONTEXT === 'production' +const isNetlify = !!process.env.NETLIFY + +...(!isNetlify || !isProduction + ? [starlightLinksValidator({ exclude: ['/apis/**'] })] + : []), +``` + +This enables link validation on deploy previews while skipping it on production (where memory is tightest). + +**Fix option B:** Keep it disabled on all Netlify builds (current behavior) but add a CI step via `netlify.toml`: + +```toml +[context.deploy-preview] + command = "pnpm run build && pnpm astro check" +``` + +**Priority:** Medium +**Risk:** Low for option A — previews have the same memory budget as production on Netlify. Monitor first build to confirm no OOM. +**Impact:** Build quality — broken links caught before merge rather than after deploy + +--- + +### 11. Four identical LLM cache rules with no grouping comment + +**File:** `netlify.toml`, lines 24–43 + +The four rules for `/llms.txt`, `/llms-full.txt`, `/llms-small.txt`, and `/_llms-txt/*` are identical in their `Cache-Control` values. Netlify TOML does not support multi-path headers in a single block, so the repetition is unavoidable structurally. However, there is no comment indicating this is intentional, making it look like copy-paste noise. + +**Fix:** Add a single comment block above all four: + +```toml +# LLM index files — 1h fresh, 24h stale. All four rules are intentionally identical; +# Netlify TOML requires a separate [[headers]] block per path pattern. +``` + +**Priority:** Low +**Risk:** None — comment-only +**Impact:** Maintainability + +--- + +--- + +## Part 2 — Shift-left and structural opportunities + +### Background: the double-build problem + +`.simple-git-hooks.json` reveals the `pre-push` hook: + +```json +{ + "pre-commit": "pnpm pretty-quick --staged", + "pre-push": "if [ -n \"$(git status --porcelain)\" ]; then ... exit 1; fi && pnpm run generate-search-index && pnpm run build && node scripts/log-preview-url.js" +} +``` + +The `pre-push` hook runs a **complete `astro build`** before every push. Netlify then runs another complete `astro build` when the push arrives. Every push triggers two full builds — one on the developer's machine (2–5 minutes per the log message in `log-preview-url.js`), then one on Netlify (another 2–5 minutes). The developer is paying the full build cost twice, gaining only local validation that could be done faster with targeted checks. + +--- + +### 12. Pre-push hook runs a full build — duplicates Netlify entirely + +**File:** `.simple-git-hooks.json` + +**Current flow:** + +``` +git push + → pre-push: astro build (~3 min local) + → push succeeds + → Netlify: astro build (~3 min CI) +Total developer-visible cost: ~6 min per push +``` + +The local build adds ~3 minutes of mandatory waiting to every push with essentially no benefit beyond what Netlify already provides. The `generate-search-index` script only logs test output to stdout — it produces no committed artifacts. The `log-preview-url.js` script only prints a URL; it doesn't need a build to complete first. + +**What the local build actually validates:** + +- TypeScript compilation (Astro surfaces TS errors during build) +- Broken internal links (via `starlightLinksValidator`) +- MDX rendering errors + +All three can be checked faster with targeted commands that don't build the entire site. + +**Fix:** Replace the full build with targeted validation: + +```json +{ + "pre-commit": "pnpm pretty-quick --staged", + "pre-push": "pnpm astro check && node scripts/agent-markdown-audit.js --strict && node scripts/log-preview-url.js" +} +``` + +- `pnpm astro check` — TypeScript + Astro validation, no full build, runs in seconds +- `node scripts/agent-markdown-audit.js --strict` — scans docs for component coverage issues, exits 1 on problems +- `node scripts/log-preview-url.js` — unchanged + +Links validation (`starlightLinksValidator`) is removed from the local pre-push check here, but addressed separately in issue #13. + +**Priority:** Critical +**Risk:** Medium — removing the full local build means some build errors surface in Netlify instead of locally. Mitigation: add `astro check` (which catches most real errors) and a GitHub Actions workflow for the rest (see issue #13). +**Impact:** Build duration — saves 2–5 minutes per push on the developer's machine; no change to Netlify build time + +--- + +### 13. No GitHub Actions CI — the pre-push hook is the only automated check + +**Files:** `.github/` (contains only `CODEOWNERS`, no workflows) + +There are zero GitHub Actions workflows. All automated quality checks rely on the pre-push hook, which: + +- Can be skipped with `git push --no-verify` +- Does not run in web-based workflows (GitHub UI edits, Dependabot, etc.) +- Produces no visible CI status on pull requests + +This means Netlify deploy previews are the only feedback mechanism visible in GitHub PRs. A broken build shows up as a failed Netlify deploy, not a failed CI check — and only after the full 3-minute Netlify build. + +**Fix:** Add `.github/workflows/ci.yml`: + +```yaml +name: CI + +on: + push: + branches: ['**'] + pull_request: + +jobs: + check: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: pnpm/action-setup@v4 + - uses: actions/setup-node@v4 + with: + node-version: 20 + cache: pnpm + - run: pnpm install --frozen-lockfile + - run: pnpm astro check + - run: pnpm run format:check + - run: node scripts/agent-markdown-audit.js --strict +``` + +This replaces the pre-push hook's role with a proper CI check that: + +- Runs on every push and PR +- Cannot be bypassed +- Shows a visible status check on the PR +- Keeps the pre-push hook lightweight (just formatting) + +**Priority:** High +**Risk:** Low — additive change; no existing behavior removed +**Impact:** Build quality — errors surface as PR checks rather than Netlify deploy failures; `--no-verify` bypasses no longer silently succeed + +--- + +### 14. D2 generation: already skipped on Netlify, no enforcement when `.d2` files are added + +**File:** `astro.config.mjs`, line 298 + +```js +d2({ + skipGeneration: !!process.env['NETLIFY'], + ... +}) +``` + +**Premise correction:** The assumption that D2 images are generated during Netlify builds is incorrect. `skipGeneration: true` in all Netlify environments means D2 SVGs must be pre-generated locally and committed. There are also currently zero `.d2` files in the repository. + +**The real risk:** When `.d2` files are eventually added, there is no enforcement that SVGs are regenerated before commit. A developer could modify a `.d2` file, forget to regenerate, and commit stale SVGs. Netlify would silently serve the old images. + +**Fix:** Add a pre-commit hook step that regenerates D2 SVGs when `.d2` files are staged: + +```json +{ + "pre-commit": "pnpm pretty-quick --staged && node scripts/check-d2-fresh.js" +} +``` + +Where `check-d2-fresh.js` checks whether any staged `.d2` files have SVG counterparts that are older than the source. Alternatively, add a GitHub Actions step: + +```yaml +- name: Check D2 diagrams are up to date + run: | + if git diff --name-only HEAD | grep -q '\.d2$'; then + pnpm astro build --d2-only && git diff --exit-code + fi +``` + +**Priority:** Medium (low urgency while no `.d2` files exist; should be set up before the first `.d2` file is committed) +**Risk:** Low — purely additive +**Impact:** Build quality — prevents stale diagrams from silently shipping + +--- + +### 15. `reorder-swagger` not in any automated pipeline + +**File:** `package.json` script `reorder-swagger` + +```json +"reorder-swagger": "node scripts/reorder-swagger.js public/api/scalekit.scalar.json" +``` + +The OpenAPI spec in `public/api/` is the source for the API reference page. `reorder-swagger.js` normalizes the spec's ordering. Per `CLAUDE.md`, the canonical spec comes from the `scalekit-inc/scalekit` repo, so spec updates arrive via manual file copy. There is no automated step to run `reorder-swagger` after a spec update. + +If someone updates `public/api/scalekit.scalar.json` without running the reorder script: + +- The API reference may render with incorrect section ordering +- `search-index-apis.js` (which runs in pre-push) may produce different URL fragments + +**Fix:** Add `reorder-swagger` to a pre-commit hook that fires when `public/api/*.json` is staged: + +```json +{ + "pre-commit": "pnpm pretty-quick --staged && node scripts/check-api-spec.js" +} +``` + +Where `check-api-spec.js` runs reorder and checks if the file changed (`git diff --exit-code public/api/`), failing the commit if the spec was not pre-ordered. + +Alternatively, make the script idempotent and auto-stage the result: + +```json +{ + "pre-commit": "pnpm pretty-quick --staged && node scripts/reorder-swagger.js public/api/scalekit.scalar.json && git add public/api/scalekit.scalar.json" +} +``` + +**Priority:** Medium +**Risk:** Low — additive to commit flow; auto-staging is the safest approach since it never blocks a commit +**Impact:** Build quality — prevents spec ordering drift between local state and what Netlify builds + +--- + +### 16. `astro check` not in any pipeline + +**File:** none — this step is entirely absent + +`astro check` validates TypeScript types and Astro component props across the entire project. It is faster than a full build and catches a class of errors (wrong prop types, missing imports, broken frontmatter types) that `astro build` may or may not surface depending on severity. + +Currently, TypeScript errors are caught only if they happen to break the full build. Silent type errors that don't prevent compilation go undetected until a developer happens to run `astro check` manually. + +**Fix:** Add to the GitHub Actions workflow (from issue #13) and to the pre-push hook replacement (from issue #12). No separate action needed — this is already included in both of those fixes. + +**Priority:** High — but resolved as a side effect of implementing fixes #12 and #13 +**Risk:** Low — read-only check; cannot change build output +**Impact:** Build quality — catches type errors before they reach Netlify + +--- + +### 17. OG image generation runs WASM at build time; could be pre-generated + +**File:** `astro.config.mjs` (canvaskit-wasm integration), `package.json` (canvaskit-wasm dependency) + +`astro-og-canvas` uses `canvaskit-wasm` to generate Open Graph images at build time. The `copy-canvaskit-wasm` integration in `astro.config.mjs` exists specifically to work around a packaging issue with the WASM binary in the Netlify SSR bundle. The WASM execution is memory-intensive, which is part of why `NODE_OPTIONS=--max_old_space_size=6144` is set in `netlify.toml`. + +**Possible shift-left:** Pre-generate OG images for pages whose frontmatter (`title`, `description`) has not changed, commit them as static assets, and skip WASM execution for those pages. Only regenerate images for pages with changed frontmatter. + +**Why this is complex:** + +- `astro-og-canvas` does not currently support partial regeneration +- Committed OG images would be binary assets tracked in git (~50–200KB each × number of pages) +- Any design change to the OG template would require regenerating all images +- The canvaskit-wasm packaging fix would still be needed for the SSR function at runtime + +**Verdict:** The ROI is low given the complexity. The packaging workaround already handles the main correctness risk. Only revisit if the WASM execution becomes a dominant build-time cost or if build memory OOM issues increase. + +**Priority:** Low +**Risk:** Medium — binary files in git, template change invalidates all cached images +**Impact:** Build duration — moderate reduction if OG image count is high; memory pressure reduction during Rollup phase + +--- + +## Prioritization matrix + +### Do first — safe, immediate, no testing required + +| # | Action | Effort | +| --- | ----------------------------------------------------- | ------- | +| 1 | Remove `agent-markdown-audit.js` from default `build` | 1 line | +| 7 | Fix wrong `node_bundler` comment | 2 lines | +| 8 | Remove redundant `included_files` | 1 line | +| 9 | Add `/_astro/*` immutable cache header | 4 lines | +| 4 | Fix stale `output: 'server'` comment | 2 lines | + +### Do next — high value, verify before merging + +| # | Action | Effort | Verification needed | +| --- | ---------------------------------------------- | --------------------- | -------------------------------------------------------------------- | +| 12 | Replace pre-push full build with `astro check` | 10 min | Confirm `astro check` catches the errors the full build was catching | +| 13 | Add GitHub Actions CI workflow | 30 min | Monitor first CI run; confirm checks pass on clean branch | +| 2 | Parallelize post-build scripts | 5 min | None — scripts are independent | +| 3 | Async FS in `generate-llms-index.js` | 30 min | Diff `dist/llms.txt` before/after to confirm identical output | +| 5 | Raise `maxParallelFileOps` to 8 | 1 line | Watch one Netlify build for OOM; revert if needed | +| 10 | Re-enable links validator on deploy previews | 5 lines | Monitor first preview build for OOM | +| 16 | Add `astro check` to pipeline | Resolved by #12 + #13 | — | + +### Do before next `.d2` or spec update + +| # | Action | Effort | +| --- | ----------------------------------------------- | ------ | +| 14 | D2 staleness check in pre-commit | 1 hour | +| 15 | Auto-run `reorder-swagger` on spec file changes | 30 min | + +### Do later + +| # | Action | Effort | Blocker | +| --- | ---------------------------------------- | ----------- | ------------------------------------- | +| 6 | Audit and reduce `chunkSizeWarningLimit` | Audit first | Needs chunk size data from a build | +| 11 | Add grouping comment for LLM cache rules | 1 line | — | +| 17 | OG image pre-generation | 1–2 days | Only if build memory becomes critical | + +--- + +## Risk register + +| # | Change | Risk level | Risk description | Mitigation | +| --- | --------------------------- | ---------- | ---------------------------------------------------------------- | --------------------------------------------------------------------- | +| 1 | Remove audit from build | Low | Audit no longer runs automatically | Move to CI workflow (#13) | +| 2 | Parallelize scripts | Low | Race condition if scripts share output in future | Scripts are read-only relative to each other | +| 3 | Async FS rewrite | Low | Logic regression in frontmatter parsing | Diff `dist/llms.txt` before/after; output must be identical | +| 4 | Comment fix | None | — | — | +| 5 | Raise `maxParallelFileOps` | Medium | Higher peak memory could OOM on Netlify | Test on one branch deploy; rollback is 1 line | +| 6 | Reduce chunk size limit | Low | Adds build warnings (not errors) | Fix warnings by splitting chunks explicitly before removing the limit | +| 7 | Comment fix | None | — | — | +| 8 | Remove `included_files` | Low | May expose a missing runtime file dependency | Run `netlify functions:build` locally to verify nothing breaks | +| 9 | Add immutable cache | Low | Stale assets if filenames stop being content-hashed | Astro content-hashes by default; verify if Astro config changes | +| 10 | Links validator in previews | Low | Preview builds may run longer or OOM | Monitor one deploy-preview; revert if OOM | +| 11 | Add comment | None | — | — | +| 12 | Replace pre-push full build | Medium | Build errors now surface in Netlify instead of locally | Mitigated by `astro check` (fast) + GitHub Actions CI (#13) | +| 13 | Add GitHub Actions CI | Low | CI may fail on clean branches if check is too strict | Start permissive; tighten checks after baseline passes | +| 14 | D2 staleness check | Low | Hook could block commits if D2 tool not installed | Make hook conditional on D2 tool presence | +| 15 | Auto-run reorder-swagger | Low | Auto-staging a file in pre-commit can confuse `git add -p` users | Document the behavior; make it opt-out | +| 16 | `astro check` in pipeline | Low | Read-only; no output impact | None | +| 17 | OG image pre-generation | Medium | Binary files in git; template changes invalidate all | Only implement if memory/build cost justifies it | + +--- + +## Build impact summary + +| Change | Developer push time | Netlify build duration | Build quality | Runtime perf | +| ----------------------------------- | ----------------------------- | -------------------------------- | -------------------------------- | ---------------------------------- | +| #1 Remove audit from build | — | ↓ saves ~5–15s | — | — | +| #2 Parallelize post-build scripts | — | ↓ saves shorter script's time | — | — | +| #3 Async FS | — | ↓ saves ~2–8s on large doc trees | — | — | +| #4 Comment fix | — | — | ↑ reduces config confusion | — | +| #5 maxParallelFileOps 8 | — | ↓ saves Rollup emit time | — | — | +| #6 Chunk size audit | — | — | ↑ surfaces hidden bundle issues | ↑ may prompt chunk splits | +| #7 Comment fix | — | — | ↑ correct ops knowledge | — | +| #8 Remove included_files | — | — | ↑ removes false config signal | — | +| #9 Immutable cache headers | — | — | — | ↑ eliminates redundant CDN fetches | +| #10 Links validator in previews | — | ↑ slight increase on previews | ↑ catches broken links pre-merge | — | +| #11 Comment | — | — | ↑ maintainability | — | +| **#12 Replace pre-push full build** | **↓↓ saves 2–5 min per push** | — | ↑ errors surface via CI | — | +| **#13 Add GitHub Actions CI** | — | — | **↑↑ real CI coverage** | — | +| #14 D2 staleness check | ↑ small increase | — | ↑ prevents stale diagrams | — | +| #15 Auto-run reorder-swagger | ↑ small increase | — | ↑ spec always consistent | — | +| #16 `astro check` in pipeline | — | — | ↑ (resolved by #12 + #13) | — | +| #17 OG image pre-generation | ↑ increases | ↓ reduces WASM execution | — | — | diff --git a/scripts/generate-llms-index.js b/scripts/generate-llms-index.js index 6acd4f1c1..f41105b93 100644 --- a/scripts/generate-llms-index.js +++ b/scripts/generate-llms-index.js @@ -8,7 +8,7 @@ * Usage: node scripts/generate-llms-index.js */ -import { readFileSync, writeFileSync, readdirSync, statSync } from 'node:fs' +import { readFile, writeFile, readdir, stat } from 'node:fs/promises' import { join, relative, extname, basename } from 'node:path' import { fileURLToPath } from 'node:url' @@ -78,21 +78,18 @@ function parseFrontmatter(content) { } /** - * Walk a directory recursively and return all .md/.mdx file paths. + * Walk a directory recursively and yield all .md/.mdx file paths. */ -function walk(dir) { - const results = [] - for (const entry of readdirSync(dir)) { +async function* walk(dir) { + for (const entry of await readdir(dir)) { const full = join(dir, entry) - const stat = statSync(full) - if (stat.isDirectory()) { - results.push(...walk(full)) + if ((await stat(full)).isDirectory()) { + yield* walk(full) } else { const ext = extname(entry) - if (ext === '.md' || ext === '.mdx') results.push(full) + if (ext === '.md' || ext === '.mdx') yield full } } - return results } /** @@ -113,11 +110,14 @@ function fileToUrlPath(filePath) { } // --- Collect all docs --- -const allFiles = walk(DOCS_DIR) +const reads = [] +for await (const file of walk(DOCS_DIR)) { + reads.push(readFile(file, 'utf8').then((content) => ({ file, content }))) +} +const allFiles = await Promise.all(reads) const pages = [] -for (const file of allFiles) { - const content = readFileSync(file, 'utf8') +for (const { file, content } of allFiles) { const { title, description, draft } = parseFrontmatter(content) if (draft) continue const urlPath = fileToUrlPath(file) @@ -165,7 +165,7 @@ for (const { urlPath, title, description } of pages) { } const output = lines.join('\n') + '\n' -writeFileSync(OUT_FILE, output, 'utf8') +await writeFile(OUT_FILE, output, 'utf8') console.log( `[generate-llms-index] Wrote ${pages.length} pages to dist/llms.txt (${output.length} bytes)`, From 73dca98b0a38236901ccfaea68fc9aadd6aee710 Mon Sep 17 00:00:00 2001 From: Ravi Madabhushi Date: Fri, 24 Apr 2026 19:40:10 +0530 Subject: [PATCH 07/36] fix: vite-plugin-static-copy patch and build configuration - Extended vite-plugin-static-copy patch with two fixes: - Environment guard now defaults to 'client' when no environment option is passed - Corrected outDir resolution per environment (SSR vs client) - Re-applied astro.config.mjs maxParallelFileOps: 8 for stable builds - Reverted links validator condition to !process.env.NETLIFY for local validation - Updated pnpm-lock.yaml from patch changes - Added BUILD_AUDIT.md and BUILD_COMPARISON.md to .gitignore - Documented patch changes in project-docs/PATCHES.md --- .gitignore | 2 + astro.config.mjs | 9 +- patches/vite-plugin-static-copy@4.1.0.patch | 12 +- pnpm-lock.yaml | 6 +- project-docs/BUILD_AUDIT.md | 662 -------------------- project-docs/PATCHES.md | 14 +- 6 files changed, 31 insertions(+), 674 deletions(-) delete mode 100644 project-docs/BUILD_AUDIT.md diff --git a/.gitignore b/.gitignore index 8fe6ab5f8..44d1a937d 100644 --- a/.gitignore +++ b/.gitignore @@ -54,3 +54,5 @@ docs/superpowers/ venv/ .venv/ examples/* +project-docs/BUILD_AUDIT.md +project-docs/BUILD_COMPARISON.md diff --git a/astro.config.mjs b/astro.config.mjs index 713c2deba..bcef9fd3c 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -105,10 +105,9 @@ export default defineConfig({ askAi: '8jKZkVuXS0hG', }), starlightVideos(), - // Links validator: enabled locally and on deploy previews; skipped on production - // Netlify builds to reduce peak memory usage. - // CONTEXT is set by Netlify: 'production' | 'deploy-preview' | 'branch-deploy' - ...(!process.env.NETLIFY || process.env.CONTEXT !== 'production' + // Links validator disabled in CI to reduce build memory usage. + // Run locally with: pnpm astro build (without NETLIFY env var) + ...(!process.env.NETLIFY ? [ starlightLinksValidator({ exclude: ['/apis/**'], @@ -411,8 +410,6 @@ export default defineConfig({ // Disable gzip size reporting to save memory on large builds reportCompressedSize: false, rollupOptions: { - // Limit parallel file I/O to reduce memory spikes during bundling. - // 8 caps concurrency well below unlimited while reducing serialization vs. the prior value of 2. maxParallelFileOps: 8, output: { manualChunks(id) { diff --git a/patches/vite-plugin-static-copy@4.1.0.patch b/patches/vite-plugin-static-copy@4.1.0.patch index cdff3783a..052412cd8 100644 --- a/patches/vite-plugin-static-copy@4.1.0.patch +++ b/patches/vite-plugin-static-copy@4.1.0.patch @@ -2,8 +2,16 @@ diff --git a/dist/index.js b/dist/index.js index 8703f1bd5f6438c61a80b9fc842722820bd9a49f..835dfa2cf82fae6eee47fb478108055d858856a3 100644 --- a/dist/index.js +++ b/dist/index.js -@@ -1069,7 +1069,8 @@ const buildPlugin = ({ targets, silent, hook, environment }) => { - if (this.environment && this.environment.name !== environment) return; +@@ -1063,13 +1063,14 @@ const buildPlugin = ({ targets, silent, hook, environment }) => { + }, + buildEnd() { +- if (this.environment && this.environment.name !== environment) return; ++ if (this.environment && this.environment.name !== (environment ?? 'client')) return; + output = false; + }, + async [hook]() { +- if (this.environment && this.environment.name !== environment) return; ++ if (this.environment && this.environment.name !== (environment ?? 'client')) return; if (output) return; output = true; - const result = await copyAll(config.root, config.build.outDir, targets, silent); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2742ba09a..8dbd51200 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -11,7 +11,7 @@ overrides: patchedDependencies: vite-plugin-static-copy@4.1.0: - hash: bf52b6885198a8230a976a3236eacff30f47bd67993abb30a328a6a176397dcc + hash: 221acef96b9df9f238818fbed95b07004f2285f6980f5c7099874014cab1051c path: patches/vite-plugin-static-copy@4.1.0.patch importers: @@ -16135,7 +16135,7 @@ snapshots: dependencies: '@astrojs/starlight': 0.38.3(astro@6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3)) astro: 6.1.9(@netlify/blobs@10.7.0)(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.60.1)(terser@5.46.1)(typescript@5.9.3)(yaml@2.8.3) - vite-plugin-static-copy: 4.1.0(patch_hash=bf52b6885198a8230a976a3236eacff30f47bd67993abb30a328a6a176397dcc)(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3)) + vite-plugin-static-copy: 4.1.0(patch_hash=221acef96b9df9f238818fbed95b07004f2285f6980f5c7099874014cab1051c)(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3)) vite-plugin-virtual: 0.5.0(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3)) transitivePeerDependencies: - vite @@ -16887,7 +16887,7 @@ snapshots: dependencies: monaco-editor: 0.55.1 - vite-plugin-static-copy@4.1.0(patch_hash=bf52b6885198a8230a976a3236eacff30f47bd67993abb30a328a6a176397dcc)(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3)): + vite-plugin-static-copy@4.1.0(patch_hash=221acef96b9df9f238818fbed95b07004f2285f6980f5c7099874014cab1051c)(vite@7.3.2(@types/node@25.6.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.1)(yaml@2.8.3)): dependencies: chokidar: 3.6.0 p-map: 7.0.4 diff --git a/project-docs/BUILD_AUDIT.md b/project-docs/BUILD_AUDIT.md deleted file mode 100644 index b62a60ddc..000000000 --- a/project-docs/BUILD_AUDIT.md +++ /dev/null @@ -1,662 +0,0 @@ -# Build audit: issues, fixes, and prioritization - -**Scope:** `package.json` scripts, `astro.config.mjs` (Vite/build config), `netlify.toml`, `.simple-git-hooks.json`, shift-left opportunities -**Date:** 2026-04-24 - ---- - -## Summary - -### Part 1 — Existing build issues - -| # | Issue | File | Priority | Risk | Impact | -| --- | ------------------------------------------------ | ------------------ | -------- | ------ | ----------------- | -| 1 | Audit script runs on every build, writes nothing | `package.json` | High | Low | Build duration ↓ | -| 2 | Post-build scripts run sequentially | `package.json` | High | Low | Build duration ↓ | -| 3 | `generate-llms-index.js` uses sync FS APIs | `scripts/` | Medium | Low | Build duration ↓ | -| 4 | Stale comment contradicts `output: 'server'` | `astro.config.mjs` | Medium | None | Build quality ↑ | -| 5 | `maxParallelFileOps: 2` too conservative | `astro.config.mjs` | Medium | Medium | Build duration ↓ | -| 6 | `chunkSizeWarningLimit: 2000` suppresses signal | `astro.config.mjs` | Low | Low | Build quality ↑ | -| 7 | `node_bundler` comment is factually wrong | `netlify.toml` | High | None | Build quality ↑ | -| 8 | `included_files` is redundant/misleading | `netlify.toml` | High | Low | Build quality ↑ | -| 9 | No cache headers for hashed static assets | `netlify.toml` | High | Low | Runtime perf ↑ | -| 10 | Links validator disabled in all Netlify builds | `astro.config.mjs` | Medium | Low | Build quality ↑ | -| 11 | LLM cache rules are four identical blocks | `netlify.toml` | Low | None | Maintainability ↑ | - -### Part 2 — Shift-left and structural opportunities - -| # | Opportunity | Priority | Risk | Impact | -| --- | ---------------------------------------------------------------------------------------- | ------------ | ------ | ----------------- | -| 12 | Pre-push hook runs full build — duplicates Netlify | **Critical** | Medium | Build duration ↓↓ | -| 13 | No GitHub Actions CI — pre-push is only check | High | Low | Build quality ↑↑ | -| 14 | D2 generation: already skipped on Netlify, but no enforcement when `.d2` files are added | Medium | Low | Build quality ↑ | -| 15 | `reorder-swagger` not in any automated pipeline | Medium | Low | Build quality ↑ | -| 16 | `astro check` (TypeScript) not in any pipeline | High | Low | Build quality ↑ | -| 17 | OG image pre-generation to avoid WASM at build time | Low | Medium | Build duration ↓ | - ---- - -## Detailed findings - -### 1. Audit script runs on every production build - -**File:** `package.json`, line 9 - -```json -"build": "astro build && node scripts/generate-llms-index.js && node scripts/agent-markdown-audit.js" -``` - -`agent-markdown-audit.js` scans all MDX files and logs component coverage to stdout. It **writes no build artifacts**. It only fails the build when run with `--strict`, which the build script never passes. Running it on every CI/Netlify build burns time scanning 300+ docs pages for zero effect on the output. - -**Fix:** - -```json -"build": "astro build && node scripts/generate-llms-index.js", -"build:audit": "node scripts/agent-markdown-audit.js", -"build:audit:strict": "node scripts/agent-markdown-audit.js --strict" -``` - -**Priority:** High -**Risk:** Low — removes a no-op step; output unchanged -**Impact:** Build duration reduction proportional to docs page count (grows over time) - ---- - -### 2. Post-build scripts run sequentially - -**File:** `package.json`, line 9 - -`generate-llms-index.js` and `agent-markdown-audit.js` are fully independent — neither reads output from the other. Chaining with `&&` serializes them unnecessarily. - -**Fix (cross-platform via `concurrently`, already a transitive dep via Netlify CLI):** - -```json -"build": "astro build && concurrently \"node scripts/generate-llms-index.js\" \"node scripts/agent-markdown-audit.js\"" -``` - -Or, since `agent-markdown-audit.js` is removed from the default build in fix #1, this applies only if both are intentionally kept: - -```bash -# Unix only -"build": "astro build && node scripts/generate-llms-index.js & node scripts/agent-markdown-audit.js & wait" -``` - -**Priority:** High (but dependent on fix #1; if #1 is applied, this becomes moot for the default build) -**Risk:** Low — scripts are side-effect-free relative to each other -**Impact:** Build duration — saves the full wall-clock time of the shorter script - ---- - -### 3. `generate-llms-index.js` uses synchronous FS in a loop - -**File:** `scripts/generate-llms-index.js`, lines 83–96 - -```js -function walk(dir) { - for (const entry of readdirSync(dir)) { - const stat = statSync(full) // blocks per file - const content = readFileSync(file) // blocks per file - } -} -``` - -`agent-markdown-audit.js` already does this correctly with async generators and `readdir` from `fs/promises`. The sync approach serializes every stat and read, blocking the event loop for the full doc tree. - -**Fix:** Rewrite `walk()` and the main loop using `fs/promises`: - -```js -import { readFile, readdir, stat } from 'node:fs/promises' - -async function* walk(dir) { - for (const entry of await readdir(dir)) { - const full = join(dir, entry) - if ((await stat(full)).isDirectory()) yield* walk(full) - else if (full.endsWith('.md') || full.endsWith('.mdx')) yield full - } -} - -const reads = [] -for await (const file of walk(DOCS_DIR)) { - reads.push(readFile(file, 'utf8').then((content) => ({ file, content }))) -} -const files = await Promise.all(reads) -``` - -**Priority:** Medium -**Risk:** Low — pure I/O refactor, same logical output -**Impact:** Build duration — meaningful on large doc trees; parallelizes all file reads - ---- - -### 4. Stale comment contradicts `output: 'server'` - -**File:** `astro.config.mjs`, lines 34–38 - -```js -// Switched from 'server' to default (static) to drastically reduce build memory. -// Astro 6's Vite Environments API creates separate build contexts per output mode; -// 'server' mode processes all 300+ pages through a heavy SSR pipeline. -// The few SSR pages (auth, health, admin) already have `prerender = false`. -output: 'server', -``` - -The comment describes switching _away_ from `server` mode, but the code is `output: 'server'`. Either the switch was reverted and the comment not updated, or the comment was written anticipating a change that never happened. This actively misleads anyone reading the config. - -**Fix:** Update the comment to reflect actual state: - -```js -// SSR mode: the Netlify adapter handles static prerendering per-page. -// Pages with `prerender = false` (auth, health, admin) are served as SSR. -// Memory-intensive builds: see vite.build settings below. -output: 'server', -``` - -**Priority:** Medium -**Risk:** None — comment-only change -**Impact:** Build quality (maintainability, onboarding) - ---- - -### 5. `maxParallelFileOps: 2` is excessively conservative - -**File:** `astro.config.mjs`, line 415 - -```js -maxParallelFileOps: 2, -``` - -Rollup's default is no limit. This was tuned down for CI memory, but `2` serializes almost all file I/O during bundling. On a build with 300+ pages and thousands of assets, this directly extends the Rollup emit phase. The memory benefit is real but the value should be calibrated — `8` still caps concurrency well below default while meaningfully reducing serialization. - -**Fix:** - -```js -// Caps Rollup file I/O concurrency to reduce memory spikes; 8 is a reasonable -// middle ground between unlimited (default) and fully serial (2). -maxParallelFileOps: 8, -``` - -**Priority:** Medium -**Risk:** Medium — increasing this raises peak memory usage. Should be tested against CI memory limits before merging. Rollback is trivial. -**Impact:** Build duration — Rollup emit phase is a significant share of total build time - ---- - -### 6. `chunkSizeWarningLimit: 2000` suppresses a useful signal - -**File:** `astro.config.mjs`, line 409 - -```js -chunkSizeWarningLimit: 2000, -``` - -Default is 500KB. Raising to 2000KB (2MB) silences Vite's chunk size warnings. This means large chunks that could be split for better page load performance go unnoticed. The `@scalar` manual chunk (line 418) already handles the known large dependency — the limit raise should not be needed if chunks are managed properly. - -**Fix:** Audit current chunk sizes first: - -```bash -pnpm astro build 2>&1 | grep "kB" -``` - -If no chunks exceed 500KB after the `@scalar` split, revert to default: - -```js -// chunkSizeWarningLimit: 2000, // remove or reduce back to default 500 -``` - -If large chunks remain, split them explicitly rather than hiding the warning. - -**Priority:** Low -**Risk:** Low — restoring the default only adds console warnings, not failures. Actual chunk behavior unchanged. -**Impact:** Build quality — surface hidden bundle size issues - ---- - -### 7. `node_bundler` comment is factually wrong - -**File:** `netlify.toml`, lines 10–11 - -```toml -node_bundler = "esbuild" -# Ensure Functions 2.0 format is used -``` - -`node_bundler = "esbuild"` is the **Functions 1.x** bundler setting. Functions 2.0 uses native ESM with `eszip` format and is declared via `export default` syntax in the function file — not controlled by `node_bundler`. The comment is the opposite of what the setting does and will mislead any debugging of function packaging issues. - -**Fix:** - -```toml -node_bundler = "esbuild" -# Bundles legacy Functions 1.x with esbuild. Functions 2.0 (used by the SSR adapter) -# are bundled separately via the Netlify adapter and are not affected by this setting. -``` - -**Priority:** High -**Risk:** None — comment-only change -**Impact:** Build quality (correctness of ops knowledge, reduces debugging time) - ---- - -### 8. `included_files` is redundant and misleading - -**File:** `netlify.toml`, lines 9–12 - -```toml -[functions] - directory = "netlify/functions" - node_bundler = "esbuild" - included_files = ["netlify/functions/**"] -``` - -`included_files` tells esbuild which additional files to bundle into the function — for example, templates, JSON data, or WASM binaries that aren't imported but needed at runtime. Pointing it at the functions source directory itself achieves nothing useful because those files are already the entry points being bundled. This creates a false impression that some important bundling is happening. - -**Fix:** Remove the line entirely, or replace with a real runtime dependency if one exists: - -```toml -[functions] - directory = "netlify/functions" - node_bundler = "esbuild" -``` - -**Priority:** High -**Risk:** Low — removing a no-op line. If by accident this was bundling something legitimate, the function would break and the real dependency would become visible. Verify by running `netlify functions:build` locally first. -**Impact:** Build quality (removes false signal in config) - ---- - -### 9. No cache headers for hashed static assets - -**File:** `netlify.toml` - -Astro generates content-hashed filenames for all JS/CSS bundles (e.g., `/_astro/index.BxK3f8aP.js`). These can be cached permanently because the hash changes on every content update. No `Cache-Control` rule exists for `/_astro/*`, so Netlify serves these with its default short-lived cache, forcing browsers and CDN nodes to re-fetch unchanged assets on every deploy. - -**Fix:** Add to `netlify.toml`: - -```toml -# Astro emits content-hashed filenames — safe to cache permanently -[[headers]] - for = "/_astro/*" - [headers.values] - Cache-Control = "public, max-age=31536000, immutable" -``` - -**Priority:** High -**Risk:** Low — immutable cache is safe precisely because the URL changes with content. If assets somehow stopped being hashed (e.g., Astro config change), this would need revisiting. -**Impact:** Runtime performance — eliminates redundant asset fetches across deploys; reduces CDN egress cost - ---- - -### 10. Links validator disabled in all Netlify builds, including previews - -**File:** `astro.config.mjs`, lines 111–117 - -```js -...(!process.env.NETLIFY - ? [starlightLinksValidator({ exclude: ['/apis/**'] })] - : []), -``` - -`NETLIFY=1` is set in all Netlify environments — production, deploy previews, and branch deploys. This means broken internal links are **never caught in CI**. They can only be caught locally, which requires developer discipline. - -**Fix option A:** Check `CONTEXT` env var (set by Netlify) to distinguish production from previews: - -```js -const isProduction = process.env.CONTEXT === 'production' -const isNetlify = !!process.env.NETLIFY - -...(!isNetlify || !isProduction - ? [starlightLinksValidator({ exclude: ['/apis/**'] })] - : []), -``` - -This enables link validation on deploy previews while skipping it on production (where memory is tightest). - -**Fix option B:** Keep it disabled on all Netlify builds (current behavior) but add a CI step via `netlify.toml`: - -```toml -[context.deploy-preview] - command = "pnpm run build && pnpm astro check" -``` - -**Priority:** Medium -**Risk:** Low for option A — previews have the same memory budget as production on Netlify. Monitor first build to confirm no OOM. -**Impact:** Build quality — broken links caught before merge rather than after deploy - ---- - -### 11. Four identical LLM cache rules with no grouping comment - -**File:** `netlify.toml`, lines 24–43 - -The four rules for `/llms.txt`, `/llms-full.txt`, `/llms-small.txt`, and `/_llms-txt/*` are identical in their `Cache-Control` values. Netlify TOML does not support multi-path headers in a single block, so the repetition is unavoidable structurally. However, there is no comment indicating this is intentional, making it look like copy-paste noise. - -**Fix:** Add a single comment block above all four: - -```toml -# LLM index files — 1h fresh, 24h stale. All four rules are intentionally identical; -# Netlify TOML requires a separate [[headers]] block per path pattern. -``` - -**Priority:** Low -**Risk:** None — comment-only -**Impact:** Maintainability - ---- - ---- - -## Part 2 — Shift-left and structural opportunities - -### Background: the double-build problem - -`.simple-git-hooks.json` reveals the `pre-push` hook: - -```json -{ - "pre-commit": "pnpm pretty-quick --staged", - "pre-push": "if [ -n \"$(git status --porcelain)\" ]; then ... exit 1; fi && pnpm run generate-search-index && pnpm run build && node scripts/log-preview-url.js" -} -``` - -The `pre-push` hook runs a **complete `astro build`** before every push. Netlify then runs another complete `astro build` when the push arrives. Every push triggers two full builds — one on the developer's machine (2–5 minutes per the log message in `log-preview-url.js`), then one on Netlify (another 2–5 minutes). The developer is paying the full build cost twice, gaining only local validation that could be done faster with targeted checks. - ---- - -### 12. Pre-push hook runs a full build — duplicates Netlify entirely - -**File:** `.simple-git-hooks.json` - -**Current flow:** - -``` -git push - → pre-push: astro build (~3 min local) - → push succeeds - → Netlify: astro build (~3 min CI) -Total developer-visible cost: ~6 min per push -``` - -The local build adds ~3 minutes of mandatory waiting to every push with essentially no benefit beyond what Netlify already provides. The `generate-search-index` script only logs test output to stdout — it produces no committed artifacts. The `log-preview-url.js` script only prints a URL; it doesn't need a build to complete first. - -**What the local build actually validates:** - -- TypeScript compilation (Astro surfaces TS errors during build) -- Broken internal links (via `starlightLinksValidator`) -- MDX rendering errors - -All three can be checked faster with targeted commands that don't build the entire site. - -**Fix:** Replace the full build with targeted validation: - -```json -{ - "pre-commit": "pnpm pretty-quick --staged", - "pre-push": "pnpm astro check && node scripts/agent-markdown-audit.js --strict && node scripts/log-preview-url.js" -} -``` - -- `pnpm astro check` — TypeScript + Astro validation, no full build, runs in seconds -- `node scripts/agent-markdown-audit.js --strict` — scans docs for component coverage issues, exits 1 on problems -- `node scripts/log-preview-url.js` — unchanged - -Links validation (`starlightLinksValidator`) is removed from the local pre-push check here, but addressed separately in issue #13. - -**Priority:** Critical -**Risk:** Medium — removing the full local build means some build errors surface in Netlify instead of locally. Mitigation: add `astro check` (which catches most real errors) and a GitHub Actions workflow for the rest (see issue #13). -**Impact:** Build duration — saves 2–5 minutes per push on the developer's machine; no change to Netlify build time - ---- - -### 13. No GitHub Actions CI — the pre-push hook is the only automated check - -**Files:** `.github/` (contains only `CODEOWNERS`, no workflows) - -There are zero GitHub Actions workflows. All automated quality checks rely on the pre-push hook, which: - -- Can be skipped with `git push --no-verify` -- Does not run in web-based workflows (GitHub UI edits, Dependabot, etc.) -- Produces no visible CI status on pull requests - -This means Netlify deploy previews are the only feedback mechanism visible in GitHub PRs. A broken build shows up as a failed Netlify deploy, not a failed CI check — and only after the full 3-minute Netlify build. - -**Fix:** Add `.github/workflows/ci.yml`: - -```yaml -name: CI - -on: - push: - branches: ['**'] - pull_request: - -jobs: - check: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - - uses: actions/setup-node@v4 - with: - node-version: 20 - cache: pnpm - - run: pnpm install --frozen-lockfile - - run: pnpm astro check - - run: pnpm run format:check - - run: node scripts/agent-markdown-audit.js --strict -``` - -This replaces the pre-push hook's role with a proper CI check that: - -- Runs on every push and PR -- Cannot be bypassed -- Shows a visible status check on the PR -- Keeps the pre-push hook lightweight (just formatting) - -**Priority:** High -**Risk:** Low — additive change; no existing behavior removed -**Impact:** Build quality — errors surface as PR checks rather than Netlify deploy failures; `--no-verify` bypasses no longer silently succeed - ---- - -### 14. D2 generation: already skipped on Netlify, no enforcement when `.d2` files are added - -**File:** `astro.config.mjs`, line 298 - -```js -d2({ - skipGeneration: !!process.env['NETLIFY'], - ... -}) -``` - -**Premise correction:** The assumption that D2 images are generated during Netlify builds is incorrect. `skipGeneration: true` in all Netlify environments means D2 SVGs must be pre-generated locally and committed. There are also currently zero `.d2` files in the repository. - -**The real risk:** When `.d2` files are eventually added, there is no enforcement that SVGs are regenerated before commit. A developer could modify a `.d2` file, forget to regenerate, and commit stale SVGs. Netlify would silently serve the old images. - -**Fix:** Add a pre-commit hook step that regenerates D2 SVGs when `.d2` files are staged: - -```json -{ - "pre-commit": "pnpm pretty-quick --staged && node scripts/check-d2-fresh.js" -} -``` - -Where `check-d2-fresh.js` checks whether any staged `.d2` files have SVG counterparts that are older than the source. Alternatively, add a GitHub Actions step: - -```yaml -- name: Check D2 diagrams are up to date - run: | - if git diff --name-only HEAD | grep -q '\.d2$'; then - pnpm astro build --d2-only && git diff --exit-code - fi -``` - -**Priority:** Medium (low urgency while no `.d2` files exist; should be set up before the first `.d2` file is committed) -**Risk:** Low — purely additive -**Impact:** Build quality — prevents stale diagrams from silently shipping - ---- - -### 15. `reorder-swagger` not in any automated pipeline - -**File:** `package.json` script `reorder-swagger` - -```json -"reorder-swagger": "node scripts/reorder-swagger.js public/api/scalekit.scalar.json" -``` - -The OpenAPI spec in `public/api/` is the source for the API reference page. `reorder-swagger.js` normalizes the spec's ordering. Per `CLAUDE.md`, the canonical spec comes from the `scalekit-inc/scalekit` repo, so spec updates arrive via manual file copy. There is no automated step to run `reorder-swagger` after a spec update. - -If someone updates `public/api/scalekit.scalar.json` without running the reorder script: - -- The API reference may render with incorrect section ordering -- `search-index-apis.js` (which runs in pre-push) may produce different URL fragments - -**Fix:** Add `reorder-swagger` to a pre-commit hook that fires when `public/api/*.json` is staged: - -```json -{ - "pre-commit": "pnpm pretty-quick --staged && node scripts/check-api-spec.js" -} -``` - -Where `check-api-spec.js` runs reorder and checks if the file changed (`git diff --exit-code public/api/`), failing the commit if the spec was not pre-ordered. - -Alternatively, make the script idempotent and auto-stage the result: - -```json -{ - "pre-commit": "pnpm pretty-quick --staged && node scripts/reorder-swagger.js public/api/scalekit.scalar.json && git add public/api/scalekit.scalar.json" -} -``` - -**Priority:** Medium -**Risk:** Low — additive to commit flow; auto-staging is the safest approach since it never blocks a commit -**Impact:** Build quality — prevents spec ordering drift between local state and what Netlify builds - ---- - -### 16. `astro check` not in any pipeline - -**File:** none — this step is entirely absent - -`astro check` validates TypeScript types and Astro component props across the entire project. It is faster than a full build and catches a class of errors (wrong prop types, missing imports, broken frontmatter types) that `astro build` may or may not surface depending on severity. - -Currently, TypeScript errors are caught only if they happen to break the full build. Silent type errors that don't prevent compilation go undetected until a developer happens to run `astro check` manually. - -**Fix:** Add to the GitHub Actions workflow (from issue #13) and to the pre-push hook replacement (from issue #12). No separate action needed — this is already included in both of those fixes. - -**Priority:** High — but resolved as a side effect of implementing fixes #12 and #13 -**Risk:** Low — read-only check; cannot change build output -**Impact:** Build quality — catches type errors before they reach Netlify - ---- - -### 17. OG image generation runs WASM at build time; could be pre-generated - -**File:** `astro.config.mjs` (canvaskit-wasm integration), `package.json` (canvaskit-wasm dependency) - -`astro-og-canvas` uses `canvaskit-wasm` to generate Open Graph images at build time. The `copy-canvaskit-wasm` integration in `astro.config.mjs` exists specifically to work around a packaging issue with the WASM binary in the Netlify SSR bundle. The WASM execution is memory-intensive, which is part of why `NODE_OPTIONS=--max_old_space_size=6144` is set in `netlify.toml`. - -**Possible shift-left:** Pre-generate OG images for pages whose frontmatter (`title`, `description`) has not changed, commit them as static assets, and skip WASM execution for those pages. Only regenerate images for pages with changed frontmatter. - -**Why this is complex:** - -- `astro-og-canvas` does not currently support partial regeneration -- Committed OG images would be binary assets tracked in git (~50–200KB each × number of pages) -- Any design change to the OG template would require regenerating all images -- The canvaskit-wasm packaging fix would still be needed for the SSR function at runtime - -**Verdict:** The ROI is low given the complexity. The packaging workaround already handles the main correctness risk. Only revisit if the WASM execution becomes a dominant build-time cost or if build memory OOM issues increase. - -**Priority:** Low -**Risk:** Medium — binary files in git, template change invalidates all cached images -**Impact:** Build duration — moderate reduction if OG image count is high; memory pressure reduction during Rollup phase - ---- - -## Prioritization matrix - -### Do first — safe, immediate, no testing required - -| # | Action | Effort | -| --- | ----------------------------------------------------- | ------- | -| 1 | Remove `agent-markdown-audit.js` from default `build` | 1 line | -| 7 | Fix wrong `node_bundler` comment | 2 lines | -| 8 | Remove redundant `included_files` | 1 line | -| 9 | Add `/_astro/*` immutable cache header | 4 lines | -| 4 | Fix stale `output: 'server'` comment | 2 lines | - -### Do next — high value, verify before merging - -| # | Action | Effort | Verification needed | -| --- | ---------------------------------------------- | --------------------- | -------------------------------------------------------------------- | -| 12 | Replace pre-push full build with `astro check` | 10 min | Confirm `astro check` catches the errors the full build was catching | -| 13 | Add GitHub Actions CI workflow | 30 min | Monitor first CI run; confirm checks pass on clean branch | -| 2 | Parallelize post-build scripts | 5 min | None — scripts are independent | -| 3 | Async FS in `generate-llms-index.js` | 30 min | Diff `dist/llms.txt` before/after to confirm identical output | -| 5 | Raise `maxParallelFileOps` to 8 | 1 line | Watch one Netlify build for OOM; revert if needed | -| 10 | Re-enable links validator on deploy previews | 5 lines | Monitor first preview build for OOM | -| 16 | Add `astro check` to pipeline | Resolved by #12 + #13 | — | - -### Do before next `.d2` or spec update - -| # | Action | Effort | -| --- | ----------------------------------------------- | ------ | -| 14 | D2 staleness check in pre-commit | 1 hour | -| 15 | Auto-run `reorder-swagger` on spec file changes | 30 min | - -### Do later - -| # | Action | Effort | Blocker | -| --- | ---------------------------------------- | ----------- | ------------------------------------- | -| 6 | Audit and reduce `chunkSizeWarningLimit` | Audit first | Needs chunk size data from a build | -| 11 | Add grouping comment for LLM cache rules | 1 line | — | -| 17 | OG image pre-generation | 1–2 days | Only if build memory becomes critical | - ---- - -## Risk register - -| # | Change | Risk level | Risk description | Mitigation | -| --- | --------------------------- | ---------- | ---------------------------------------------------------------- | --------------------------------------------------------------------- | -| 1 | Remove audit from build | Low | Audit no longer runs automatically | Move to CI workflow (#13) | -| 2 | Parallelize scripts | Low | Race condition if scripts share output in future | Scripts are read-only relative to each other | -| 3 | Async FS rewrite | Low | Logic regression in frontmatter parsing | Diff `dist/llms.txt` before/after; output must be identical | -| 4 | Comment fix | None | — | — | -| 5 | Raise `maxParallelFileOps` | Medium | Higher peak memory could OOM on Netlify | Test on one branch deploy; rollback is 1 line | -| 6 | Reduce chunk size limit | Low | Adds build warnings (not errors) | Fix warnings by splitting chunks explicitly before removing the limit | -| 7 | Comment fix | None | — | — | -| 8 | Remove `included_files` | Low | May expose a missing runtime file dependency | Run `netlify functions:build` locally to verify nothing breaks | -| 9 | Add immutable cache | Low | Stale assets if filenames stop being content-hashed | Astro content-hashes by default; verify if Astro config changes | -| 10 | Links validator in previews | Low | Preview builds may run longer or OOM | Monitor one deploy-preview; revert if OOM | -| 11 | Add comment | None | — | — | -| 12 | Replace pre-push full build | Medium | Build errors now surface in Netlify instead of locally | Mitigated by `astro check` (fast) + GitHub Actions CI (#13) | -| 13 | Add GitHub Actions CI | Low | CI may fail on clean branches if check is too strict | Start permissive; tighten checks after baseline passes | -| 14 | D2 staleness check | Low | Hook could block commits if D2 tool not installed | Make hook conditional on D2 tool presence | -| 15 | Auto-run reorder-swagger | Low | Auto-staging a file in pre-commit can confuse `git add -p` users | Document the behavior; make it opt-out | -| 16 | `astro check` in pipeline | Low | Read-only; no output impact | None | -| 17 | OG image pre-generation | Medium | Binary files in git; template changes invalidate all | Only implement if memory/build cost justifies it | - ---- - -## Build impact summary - -| Change | Developer push time | Netlify build duration | Build quality | Runtime perf | -| ----------------------------------- | ----------------------------- | -------------------------------- | -------------------------------- | ---------------------------------- | -| #1 Remove audit from build | — | ↓ saves ~5–15s | — | — | -| #2 Parallelize post-build scripts | — | ↓ saves shorter script's time | — | — | -| #3 Async FS | — | ↓ saves ~2–8s on large doc trees | — | — | -| #4 Comment fix | — | — | ↑ reduces config confusion | — | -| #5 maxParallelFileOps 8 | — | ↓ saves Rollup emit time | — | — | -| #6 Chunk size audit | — | — | ↑ surfaces hidden bundle issues | ↑ may prompt chunk splits | -| #7 Comment fix | — | — | ↑ correct ops knowledge | — | -| #8 Remove included_files | — | — | ↑ removes false config signal | — | -| #9 Immutable cache headers | — | — | — | ↑ eliminates redundant CDN fetches | -| #10 Links validator in previews | — | ↑ slight increase on previews | ↑ catches broken links pre-merge | — | -| #11 Comment | — | — | ↑ maintainability | — | -| **#12 Replace pre-push full build** | **↓↓ saves 2–5 min per push** | — | ↑ errors surface via CI | — | -| **#13 Add GitHub Actions CI** | — | — | **↑↑ real CI coverage** | — | -| #14 D2 staleness check | ↑ small increase | — | ↑ prevents stale diagrams | — | -| #15 Auto-run reorder-swagger | ↑ small increase | — | ↑ spec always consistent | — | -| #16 `astro check` in pipeline | — | — | ↑ (resolved by #12 + #13) | — | -| #17 OG image pre-generation | ↑ increases | ↓ reduces WASM execution | — | — | diff --git a/project-docs/PATCHES.md b/project-docs/PATCHES.md index b674793f4..82d81c39f 100644 --- a/project-docs/PATCHES.md +++ b/project-docs/PATCHES.md @@ -10,7 +10,19 @@ This project uses [pnpm patches](https://pnpm.io/cli/patch) to fix upstream bugs **Bug:** In Vite 6's Environment API, `configResolved` is called once per environment. The plugin stores the config from each call, so the last environment's config overwrites earlier ones. When `writeBundle` runs for the `client` environment, `config.build.outDir` points to the SSR environment's output directory (`.netlify/build/`) instead of `dist/`. This causes all `.md` files generated by `starlight-page-actions` to land in the wrong directory. -**Fix:** One-line change in `src/build.ts` — use the environment-specific `outDir` when available: +**Fix:** Two changes in `dist/index.js`: + +1. **Environment guard** — when no `environment` option is passed (as `starlight-page-actions` does), `this.environment.name !== undefined` is always `true` in Vite 6, so the copy never runs. Default to `'client'` so the copy fires exactly once during the client pass: + +```js +// Before (broken when environment option is undefined) +if (this.environment && this.environment.name !== environment) return + +// After +if (this.environment && this.environment.name !== (environment ?? 'client')) return +``` + +2. **Wrong `outDir`** — in multi-environment builds, `configResolved` fires once per environment and the last one (SSR) overwrites the global `config`. Use the environment-specific outDir instead: ```js // Before From 5b18a3082a824c66438f5bf9cde7733b7e3fbc5f Mon Sep 17 00:00:00 2001 From: Ravi Madabhushi Date: Fri, 24 Apr 2026 19:44:11 +0530 Subject: [PATCH 08/36] ci: fix format-check crash on Tabs.astro and bump Node to 24 --- .github/workflows/ci.yml | 2 +- .prettierignore | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6c84b498b..2ef3ad9dd 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -16,7 +16,7 @@ jobs: - uses: actions/setup-node@v4 with: - node-version: 20 + node-version: 24 cache: 'pnpm' - name: Install dependencies diff --git a/.prettierignore b/.prettierignore index bdf373421..0b37de11c 100644 --- a/.prettierignore +++ b/.prettierignore @@ -37,4 +37,7 @@ archives/ *.mdx # Component overrides with custom formatting -src/components/overrides/Banner.astro \ No newline at end of file +src/components/overrides/Banner.astro + +# Conditional inline