diff --git a/.changeset/honest-bats-walk.md b/.changeset/honest-bats-walk.md new file mode 100644 index 000000000000..0f8ab087d804 --- /dev/null +++ b/.changeset/honest-bats-walk.md @@ -0,0 +1,5 @@ +--- +'astro': patch +--- + +Fixes a link in font providers JSDoc annotations diff --git a/packages/astro/package.json b/packages/astro/package.json index 5a98f038c258..ed29b277235b 100644 --- a/packages/astro/package.json +++ b/packages/astro/package.json @@ -170,7 +170,7 @@ "tinyexec": "^1.0.4", "tinyglobby": "^0.2.15", "ultrahtml": "^1.6.0", - "unifont": "~0.7.4", + "unifont": "~0.7.5", "unstorage": "^1.17.5", "vite": "^8.0.13", "vitefu": "^1.1.2", diff --git a/packages/astro/src/assets/fonts/providers/index.ts b/packages/astro/src/assets/fonts/providers/index.ts index 3c228d41b575..944531a532d9 100644 --- a/packages/astro/src/assets/fonts/providers/index.ts +++ b/packages/astro/src/assets/fonts/providers/index.ts @@ -113,25 +113,8 @@ function googleicons(): FontProvider { async init(context) { initializedProvider = await provider(context); }, - async resolveFont({ familyName, options, ...rest }) { - // Workaround for https://github.com/unjs/unifont/issues/336 - // unifont joins glyphs with .join("") instead of .join(","), producing - // an invalid `icon_names` query param that causes Google to return the - // full font. Pre-joining into a single element sidesteps the bug. - const patchedOptions = - options?.experimental?.glyphs && options.experimental.glyphs.length > 1 - ? { - ...options, - experimental: { - ...options.experimental, - glyphs: [options.experimental.glyphs.join(',')], - }, - } - : options; - return await initializedProvider?.resolveFont(familyName, { - options: patchedOptions, - ...rest, - }); + async resolveFont({ familyName, ...rest }) { + return await initializedProvider?.resolveFont(familyName, rest); }, async listFonts() { return await initializedProvider?.listFonts?.(); @@ -178,7 +161,7 @@ function npm( * - [Google](https://docs.astro.build/en/reference/font-provider-reference/#google) * - [Google Icons](https://docs.astro.build/en/reference/font-provider-reference/#google-icons) * - [Local](https://docs.astro.build/en/reference/font-provider-reference/#local) - * - [NPM](TODO:) + * - [NPM](https://docs.astro.build/en/reference/font-provider-reference/#npm) */ export const fontProviders = { adobe, diff --git a/packages/astro/test/units/assets/fonts/googleicons-glyphs.test.ts b/packages/astro/test/units/assets/fonts/googleicons-glyphs.test.ts deleted file mode 100644 index a544f6de1cb8..000000000000 --- a/packages/astro/test/units/assets/fonts/googleicons-glyphs.test.ts +++ /dev/null @@ -1,80 +0,0 @@ -import assert from 'node:assert/strict'; -import { describe, it } from 'node:test'; -import { fontProviders } from '../../../../dist/config/entrypoint.js'; - -describe('googleicons glyphs workaround (unifont#336)', () => { - // The googleicons provider wraps unifont and pre-joins multiple glyphs - // into a single comma-separated string before passing to unifont. This - // works around unifont's .join("") bug which concatenates icon names - // without a separator. - // - // We can't fully test the transformation without hitting the network - // (init() fetches Google's metadata), so we verify that resolveFont - // handles all option shapes without errors when the provider is - // uninitialized (returns undefined). - - it('handles multiple glyphs without error', async () => { - const provider = fontProviders.googleicons(); - const result = await provider.resolveFont({ - familyName: 'Material Symbols Outlined', - weights: ['400'], - styles: ['normal'], - subsets: ['latin'], - formats: ['woff2'], - options: { - experimental: { - glyphs: ['add_shopping_cart', 'remove_shopping_cart', 'home'], - }, - }, - }); - // Without init(), returns undefined — no crash means the patching logic is safe - assert.equal(result, undefined); - }); - - it('handles single glyph without error', async () => { - const provider = fontProviders.googleicons(); - const result = await provider.resolveFont({ - familyName: 'Material Symbols Outlined', - weights: ['400'], - styles: ['normal'], - subsets: ['latin'], - formats: ['woff2'], - options: { - experimental: { - glyphs: ['add_shopping_cart'], - }, - }, - }); - assert.equal(result, undefined); - }); - - it('handles undefined options without error', async () => { - const provider = fontProviders.googleicons(); - const result = await provider.resolveFont({ - familyName: 'Material Symbols Outlined', - weights: ['400'], - styles: ['normal'], - subsets: ['latin'], - formats: ['woff2'], - options: undefined, - }); - assert.equal(result, undefined); - }); - - it('handles empty glyphs array without error', async () => { - const provider = fontProviders.googleicons(); - const result = await provider.resolveFont({ - familyName: 'Material Symbols Outlined', - weights: ['400'], - styles: ['normal'], - subsets: ['latin'], - formats: ['woff2'], - options: { - experimental: { - glyphs: [], - }, - }, - }); - assert.equal(result, undefined); - }); -}); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ff19820a3c84..bf53bbe22cd8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -230,7 +230,7 @@ importers: version: 2.29.8(@types/node@22.19.19) '@earendil-works/pi-ai': specifier: ^0.83.0 - version: 0.83.0(supports-color@8.1.1)(ws@8.20.1)(zod@4.3.6) + version: 0.83.0(ws@8.20.1)(zod@4.3.6) '@flue/runtime': specifier: ^2.0.3 version: 2.0.3(typescript@6.0.3)(ws@8.20.1)(zod@4.3.6) @@ -242,13 +242,13 @@ importers: version: 0.2.0 eslint: specifier: ^10.4.0 - version: 10.4.0(jiti@2.6.1)(supports-color@8.1.1) + version: 10.4.0(jiti@2.6.1) eslint-plugin-regexp: specifier: ^3.1.0 version: 3.1.0(eslint@10.4.0) knip: specifier: 5.82.1 - version: 5.82.1(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@22.19.19)(typescript@6.0.3) + version: 5.82.1(@types/node@22.19.19)(typescript@6.0.3) pkg-pr-new: specifier: ^0.0.71 version: 0.0.71 @@ -272,7 +272,7 @@ importers: version: 6.0.3 typescript-eslint: specifier: ^8.59.1 - version: 8.59.2(eslint@10.4.0)(supports-color@8.1.1)(typescript@6.0.3) + version: 8.59.2(eslint@10.4.0)(typescript@6.0.3) valibot: specifier: ^1.2.0 version: 1.4.2(typescript@6.0.3) @@ -726,7 +726,7 @@ importers: dependencies: '@astrojs/compiler-rs': specifier: ^0.3.2 - version: 0.3.2(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1) + version: 0.3.2 '@astrojs/internal-helpers': specifier: workspace:* version: link:../internal-helpers @@ -771,7 +771,7 @@ importers: version: 5.8.1 diff: specifier: ^8.0.3 - version: 8.0.3 + version: 8.0.4 dset: specifier: ^3.1.4 version: 3.1.4 @@ -863,8 +863,8 @@ importers: specifier: ^1.6.0 version: 1.6.0 unifont: - specifier: ~0.7.4 - version: 0.7.4 + specifier: ~0.7.5 + version: 0.7.5 unstorage: specifier: ^1.17.5 version: 1.17.5(@azure/identity@4.13.0)(@netlify/blobs@10.7.5)(@vercel/functions@3.4.3) @@ -5394,7 +5394,7 @@ importers: version: 4.0.2 '@shikijs/twoslash': specifier: ^4.0.2 - version: 4.0.2(supports-color@8.1.1)(typescript@6.0.3) + version: 4.0.2(typescript@6.0.3) '@types/estree': specifier: ^1.0.8 version: 1.0.8 @@ -5649,7 +5649,7 @@ importers: version: 5.2.0 '@netlify/vite-plugin': specifier: ^2.12.3 - version: 2.12.3(@azure/identity@4.13.0)(@vercel/functions@3.4.3)(supports-color@8.1.1)(vite@8.1.0) + version: 2.12.3(@azure/identity@4.13.0)(@vercel/functions@3.4.3)(vite@8.1.0) '@vercel/nft': specifier: ^1.3.2 version: 1.3.2 @@ -5817,7 +5817,7 @@ importers: version: 5.8.1 express: specifier: ^5.2.1 - version: 5.2.1(supports-color@8.1.1) + version: 5.2.1 fastify: specifier: ^5.7.4 version: 5.8.5 @@ -6022,7 +6022,7 @@ importers: version: link:../../internal-helpers '@preact/preset-vite': specifier: ^2.10.5 - version: 2.10.5(@babel/core@7.29.0)(preact@10.29.0)(supports-color@8.1.1)(vite@8.1.0) + version: 2.10.5(@babel/core@7.29.0)(preact@10.29.0)(vite@8.1.0) '@preact/signals': specifier: ^2.8.2 version: 2.8.2(preact@10.29.0) @@ -6550,7 +6550,7 @@ importers: version: 8.1.0(@types/node@22.19.19)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.98.0)(tsx@4.22.3)(yaml@2.9.0) vite-plugin-vue-devtools: specifier: ^8.1.0 - version: 8.1.0(supports-color@8.1.1)(vite@8.1.0)(vue@3.5.30) + version: 8.1.0(vite@8.1.0)(vue@3.5.30) devDependencies: astro: specifier: workspace:* @@ -6578,7 +6578,7 @@ importers: version: link:../../../../../astro vite-svg-loader: specifier: 5.1.1 - version: 5.1.1(supports-color@8.1.1)(vue@3.5.30) + version: 5.1.1(vue@3.5.30) vue: specifier: ^3.5.30 version: 3.5.30(typescript@6.0.3) @@ -6593,7 +6593,7 @@ importers: version: link:../../../../../astro vite-svg-loader: specifier: 5.1.1 - version: 5.1.1(supports-color@8.1.1)(vue@3.5.30) + version: 5.1.1(vue@3.5.30) vue: specifier: ^3.5.30 version: 3.5.30(typescript@6.0.3) @@ -6617,7 +6617,7 @@ importers: version: link:../../../../../astro vite-svg-loader: specifier: 5.1.1 - version: 5.1.1(supports-color@8.1.1)(vue@3.5.30) + version: 5.1.1(vue@3.5.30) vue: specifier: ^3.5.30 version: 3.5.30(typescript@6.0.3) @@ -6953,7 +6953,7 @@ importers: version: 11.7.5 ovsx: specifier: ^0.10.10 - version: 0.10.10(supports-color@8.1.1) + version: 0.10.10 tsx: specifier: ^4.22.0 version: 4.22.3 @@ -9208,12 +9208,6 @@ packages: '@napi-rs/wasm-runtime@0.2.12': resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==} - '@napi-rs/wasm-runtime@1.1.6': - resolution: {integrity: sha512-ZLv/JdUfkvOy9eCnnBaGfiO+XimbjebAeO+MRQqD/B+FR1tnRN0tpKSJHRbE8sFfS6aqsXZ67TQjfwfsxULVbg==} - peerDependencies: - '@emnapi/core': ^1.7.1 - '@emnapi/runtime': ^1.7.1 - '@napi-rs/wasm-runtime@1.2.0': resolution: {integrity: sha512-kDoONqMa+VnZ4vvvu/ZUurpJ4gkZU57e7g69qpNgWhYcZFPUHZM2CEMKm+cG6ufDVALbjMvfmMjFVqaK7uEMnA==} engines: {node: ^20.19.0 || ^22.13.0 || >=23.5.0} @@ -11790,10 +11784,6 @@ packages: resolution: {integrity: sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw==} engines: {node: '>=0.3.1'} - diff@8.0.3: - resolution: {integrity: sha512-qejHi7bcSD4hQAZE0tNAawRK1ZtafHDmMTMkrrIGgSLl7hTnQHmKCeB45xAcbfTqK2zowkM3j3bHt/4b/ARbYQ==} - engines: {node: '>=0.3.1'} - diff@8.0.4: resolution: {integrity: sha512-DPi0FmjiSU5EvQV0++GFDOJ9ASQUVFh5kD+OzOnYdi7n3Wpm9hWWGfB/O2blfHcMVTL5WkQXSnRiK9makhrcnw==} engines: {node: '>=0.3.1'} @@ -15427,6 +15417,10 @@ packages: resolution: {integrity: sha512-6KQ/+QxK49Z/p3HO6E5ZCZWNnCasyZLa5ExaVYyvPxUwKtbCPMKELJOqh7EqOle0t9cH/7d2TaaTRRa6Nhs4YQ==} engines: {node: '>=20.18.1'} + undici@8.10.0: + resolution: {integrity: sha512-HvltHd7avK13QIw/oLe4qoOLyoVSoafqJ2jYOrtMRBkbYT31eiBQ8O0ehRKZiEZCMEyLFQNIADpgCWC5fALvYQ==} + engines: {node: '>=22.19.0'} + unenv@2.0.0-rc.24: resolution: {integrity: sha512-i7qRCmY42zmCwnYlh9H2SvLEypEFGye5iRmEMKjcGi7zk9UquigRjFtTLz0TYqr0ZGLZhaMHl/foy1bZR+Cwlw==} @@ -15444,8 +15438,8 @@ packages: unified@11.0.5: resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} - unifont@0.7.4: - resolution: {integrity: sha512-oHeis4/xl42HUIeHuNZRGEvxj5AaIKR+bHPNegRq5LV1gdc3jundpONbjglKpihmJf+dswygdMJn3eftGIMemg==} + unifont@0.7.5: + resolution: {integrity: sha512-ULe/Cs+ZIsq+dcFofNkhqielCrUJnb5mr+Yc4EBM2VlL+6OZR6+cjtI2mT1bJvRBrVncqHAbLURxmPLcCXzWMg==} unist-util-find-after@5.0.0: resolution: {integrity: sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==} @@ -16273,9 +16267,9 @@ snapshots: '@astrojs/compiler-binding-linux-x64-musl@0.3.2': optional: true - '@astrojs/compiler-binding-wasm32-wasi@0.3.2(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)': + '@astrojs/compiler-binding-wasm32-wasi@0.3.2': dependencies: - '@napi-rs/wasm-runtime': 1.2.0(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1) + '@napi-rs/wasm-runtime': 1.2.0(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1) transitivePeerDependencies: - '@emnapi/core' - '@emnapi/runtime' @@ -16287,7 +16281,7 @@ snapshots: '@astrojs/compiler-binding-win32-x64-msvc@0.3.2': optional: true - '@astrojs/compiler-binding@0.3.2(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)': + '@astrojs/compiler-binding@0.3.2': optionalDependencies: '@astrojs/compiler-binding-darwin-arm64': 0.3.2 '@astrojs/compiler-binding-darwin-x64': 0.3.2 @@ -16295,16 +16289,16 @@ snapshots: '@astrojs/compiler-binding-linux-arm64-musl': 0.3.2 '@astrojs/compiler-binding-linux-x64-gnu': 0.3.2 '@astrojs/compiler-binding-linux-x64-musl': 0.3.2 - '@astrojs/compiler-binding-wasm32-wasi': 0.3.2(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1) + '@astrojs/compiler-binding-wasm32-wasi': 0.3.2 '@astrojs/compiler-binding-win32-arm64-msvc': 0.3.2 '@astrojs/compiler-binding-win32-x64-msvc': 0.3.2 transitivePeerDependencies: - '@emnapi/core' - '@emnapi/runtime' - '@astrojs/compiler-rs@0.3.2(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)': + '@astrojs/compiler-rs@0.3.2': dependencies: - '@astrojs/compiler-binding': 0.3.2(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1) + '@astrojs/compiler-binding': 0.3.2 transitivePeerDependencies: - '@emnapi/core' - '@emnapi/runtime' @@ -16940,7 +16934,7 @@ snapshots: dependencies: '@emnapi/core': 1.9.1 '@emnapi/runtime': 1.9.1 - '@napi-rs/wasm-runtime': 1.1.6(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1) + '@napi-rs/wasm-runtime': 1.2.0(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1) optional: true '@bruits/satteri-win32-x64-msvc@0.9.1': @@ -17516,7 +17510,7 @@ snapshots: '@earendil-works/pi-agent-core@0.83.0(ws@8.20.1)(zod@4.3.6)': dependencies: - '@earendil-works/pi-ai': 0.83.0(supports-color@8.1.1)(ws@8.20.1)(zod@4.3.6) + '@earendil-works/pi-ai': 0.83.0(ws@8.20.1)(zod@4.3.6) diff: 8.0.4 ignore: 7.0.5 typebox: 1.3.7 @@ -17529,7 +17523,7 @@ snapshots: - ws - zod - '@earendil-works/pi-ai@0.83.0(supports-color@8.1.1)(ws@8.20.1)(zod@4.3.6)': + '@earendil-works/pi-ai@0.83.0(ws@8.20.1)(zod@4.3.6)': dependencies: '@anthropic-ai/sdk': 0.91.1(zod@4.3.6) '@aws-sdk/client-bedrock-runtime': 3.1048.0 @@ -17537,7 +17531,7 @@ snapshots: '@mistralai/mistralai': 2.2.6(@opentelemetry/api@1.9.0) '@opentelemetry/api': 1.9.0 '@smithy/node-http-handler': 4.7.3 - http-proxy-agent: 7.0.2(supports-color@8.1.1) + http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 openai: 6.26.0(ws@8.20.1)(zod@4.3.6) partial-json: 0.1.7 @@ -17836,12 +17830,12 @@ snapshots: '@eslint-community/eslint-utils@4.9.1(eslint@10.4.0)': dependencies: - eslint: 10.4.0(jiti@2.6.1)(supports-color@8.1.1) + eslint: 10.4.0(jiti@2.6.1) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.2': {} - '@eslint/config-array@0.23.5(supports-color@8.1.1)': + '@eslint/config-array@0.23.5': dependencies: '@eslint/object-schema': 3.0.5 debug: 4.4.3(supports-color@8.1.1) @@ -17919,7 +17913,7 @@ snapshots: '@flue/runtime@2.0.3(typescript@6.0.3)(ws@8.20.1)(zod@4.3.6)': dependencies: '@earendil-works/pi-agent-core': 0.83.0(ws@8.20.1)(zod@4.3.6) - '@earendil-works/pi-ai': 0.83.0(supports-color@8.1.1)(ws@8.20.1)(zod@4.3.6) + '@earendil-works/pi-ai': 0.83.0(ws@8.20.1)(zod@4.3.6) '@hono/node-server': 2.0.4(hono@4.12.18) '@modelcontextprotocol/client': 2.0.0 '@valibot/to-json-schema': 1.5.0(valibot@1.4.2) @@ -18332,27 +18326,20 @@ snapshots: '@tybys/wasm-util': 0.10.3 optional: true - '@napi-rs/wasm-runtime@1.1.6(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)': + '@napi-rs/wasm-runtime@1.2.0(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)': dependencies: '@emnapi/core': 1.11.1 '@emnapi/runtime': 1.11.1 '@tybys/wasm-util': 0.10.3 optional: true - '@napi-rs/wasm-runtime@1.1.6(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)': + '@napi-rs/wasm-runtime@1.2.0(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)': dependencies: '@emnapi/core': 1.9.1 '@emnapi/runtime': 1.9.1 '@tybys/wasm-util': 0.10.3 optional: true - '@napi-rs/wasm-runtime@1.2.0(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)': - dependencies: - '@emnapi/core': 1.11.1 - '@emnapi/runtime': 1.11.1 - '@tybys/wasm-util': 0.10.3 - optional: true - '@netlify/ai@0.4.1': dependencies: '@netlify/api': 14.0.18 @@ -18429,7 +18416,7 @@ snapshots: uuid: 13.0.0 write-file-atomic: 5.0.1 - '@netlify/dev@4.18.3(@azure/identity@4.13.0)(@vercel/functions@3.4.3)(supports-color@8.1.1)': + '@netlify/dev@4.18.3(@azure/identity@4.13.0)(@vercel/functions@3.4.3)': dependencies: '@netlify/ai': 0.4.1 '@netlify/blobs': 10.7.5 @@ -18437,7 +18424,7 @@ snapshots: '@netlify/database-dev': 0.10.1 '@netlify/dev-utils': 4.4.3 '@netlify/edge-functions-dev': 1.0.17 - '@netlify/functions-dev': 1.2.8(supports-color@8.1.1) + '@netlify/functions-dev': 1.2.8 '@netlify/headers': 2.1.8 '@netlify/images': 1.3.7(@azure/identity@4.13.0)(@netlify/blobs@10.7.5)(@vercel/functions@3.4.3) '@netlify/redirects': 3.1.10 @@ -18509,7 +18496,7 @@ snapshots: dependencies: '@netlify/types': 2.6.0 - '@netlify/functions-dev@1.2.8(supports-color@8.1.1)': + '@netlify/functions-dev@1.2.8': dependencies: '@netlify/blobs': 10.7.5 '@netlify/dev-utils': 4.4.3 @@ -18517,7 +18504,7 @@ snapshots: '@netlify/zip-it-and-ship-it': 14.5.6 cron-parser: 4.9.0 decache: 4.6.2 - extract-zip: 2.0.1(supports-color@8.1.1) + extract-zip: 2.0.1 is-stream: 4.0.1 jwt-decode: 4.0.0 lambda-local: 2.2.0 @@ -18620,9 +18607,9 @@ snapshots: '@netlify/types@2.6.0': {} - '@netlify/vite-plugin@2.12.3(@azure/identity@4.13.0)(@vercel/functions@3.4.3)(supports-color@8.1.1)(vite@8.1.0)': + '@netlify/vite-plugin@2.12.3(@azure/identity@4.13.0)(@vercel/functions@3.4.3)(vite@8.1.0)': dependencies: - '@netlify/dev': 4.18.3(@azure/identity@4.13.0)(@vercel/functions@3.4.3)(supports-color@8.1.1) + '@netlify/dev': 4.18.3(@azure/identity@4.13.0)(@vercel/functions@3.4.3) '@netlify/dev-utils': 4.4.3 dedent: 1.7.1 vite: 8.1.0(@types/node@22.19.19)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.98.0)(tsx@4.22.3)(yaml@2.9.0) @@ -18866,9 +18853,9 @@ snapshots: '@oxc-resolver/binding-openharmony-arm64@11.17.1': optional: true - '@oxc-resolver/binding-wasm32-wasi@11.17.1(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)': + '@oxc-resolver/binding-wasm32-wasi@11.17.1': dependencies: - '@napi-rs/wasm-runtime': 1.1.6(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1) + '@napi-rs/wasm-runtime': 1.2.0(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1) transitivePeerDependencies: - '@emnapi/core' - '@emnapi/runtime' @@ -18975,7 +18962,7 @@ snapshots: '@poppinss/exception@1.2.3': {} - '@preact/preset-vite@2.10.5(@babel/core@7.29.0)(preact@10.29.0)(supports-color@8.1.1)(vite@8.1.0)': + '@preact/preset-vite@2.10.5(@babel/core@7.29.0)(preact@10.29.0)(vite@8.1.0)': dependencies: '@babel/core': 7.29.0 '@babel/plugin-transform-react-jsx': 7.28.6(@babel/core@7.29.0) @@ -19232,11 +19219,11 @@ snapshots: dependencies: '@shikijs/types': 4.0.2 - '@shikijs/twoslash@4.0.2(supports-color@8.1.1)(typescript@6.0.3)': + '@shikijs/twoslash@4.0.2(typescript@6.0.3)': dependencies: '@shikijs/core': 4.0.2 '@shikijs/types': 4.0.2 - twoslash: 0.3.8(supports-color@8.1.1)(typescript@6.0.3) + twoslash: 0.3.8(typescript@6.0.3) typescript: 6.0.3 transitivePeerDependencies: - supports-color @@ -19685,15 +19672,15 @@ snapshots: '@types/node': 22.19.19 optional: true - '@typescript-eslint/eslint-plugin@8.59.2(@typescript-eslint/parser@8.59.2)(eslint@10.4.0)(supports-color@8.1.1)(typescript@6.0.3)': + '@typescript-eslint/eslint-plugin@8.59.2(@typescript-eslint/parser@8.59.2)(eslint@10.4.0)(typescript@6.0.3)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.59.2(eslint@10.4.0)(supports-color@8.1.1)(typescript@6.0.3) + '@typescript-eslint/parser': 8.59.2(eslint@10.4.0)(typescript@6.0.3) '@typescript-eslint/scope-manager': 8.59.2 - '@typescript-eslint/type-utils': 8.59.2(eslint@10.4.0)(supports-color@8.1.1)(typescript@6.0.3) + '@typescript-eslint/type-utils': 8.59.2(eslint@10.4.0)(typescript@6.0.3) '@typescript-eslint/utils': 8.59.2(eslint@10.4.0)(typescript@6.0.3) '@typescript-eslint/visitor-keys': 8.59.2 - eslint: 10.4.0(jiti@2.6.1)(supports-color@8.1.1) + eslint: 10.4.0(jiti@2.6.1) ignore: 7.0.5 natural-compare: 1.4.0 ts-api-utils: 2.5.0(typescript@6.0.3) @@ -19701,14 +19688,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.59.2(eslint@10.4.0)(supports-color@8.1.1)(typescript@6.0.3)': + '@typescript-eslint/parser@8.59.2(eslint@10.4.0)(typescript@6.0.3)': dependencies: '@typescript-eslint/scope-manager': 8.59.2 '@typescript-eslint/types': 8.59.2 '@typescript-eslint/typescript-estree': 8.59.2(typescript@6.0.3) '@typescript-eslint/visitor-keys': 8.59.2 debug: 4.4.3(supports-color@8.1.1) - eslint: 10.4.0(jiti@2.6.1)(supports-color@8.1.1) + eslint: 10.4.0(jiti@2.6.1) typescript: 6.0.3 transitivePeerDependencies: - supports-color @@ -19744,13 +19731,13 @@ snapshots: dependencies: typescript: 6.0.3 - '@typescript-eslint/type-utils@8.59.2(eslint@10.4.0)(supports-color@8.1.1)(typescript@6.0.3)': + '@typescript-eslint/type-utils@8.59.2(eslint@10.4.0)(typescript@6.0.3)': dependencies: '@typescript-eslint/types': 8.59.2 '@typescript-eslint/typescript-estree': 8.59.2(typescript@6.0.3) '@typescript-eslint/utils': 8.59.2(eslint@10.4.0)(typescript@6.0.3) debug: 4.4.3(supports-color@8.1.1) - eslint: 10.4.0(jiti@2.6.1)(supports-color@8.1.1) + eslint: 10.4.0(jiti@2.6.1) ts-api-utils: 2.5.0(typescript@6.0.3) typescript: 6.0.3 transitivePeerDependencies: @@ -19794,7 +19781,7 @@ snapshots: '@typescript-eslint/scope-manager': 8.59.2 '@typescript-eslint/types': 8.59.2 '@typescript-eslint/typescript-estree': 8.59.2(typescript@6.0.3) - eslint: 10.4.0(jiti@2.6.1)(supports-color@8.1.1) + eslint: 10.4.0(jiti@2.6.1) typescript: 6.0.3 transitivePeerDependencies: - supports-color @@ -19804,7 +19791,7 @@ snapshots: '@typescript-eslint/types': 8.59.2 eslint-visitor-keys: 5.0.1 - '@typescript/vfs@1.6.4(supports-color@8.1.1)(typescript@6.0.3)': + '@typescript/vfs@1.6.4(typescript@6.0.3)': dependencies: debug: 4.4.3(supports-color@8.1.1) typescript: 6.0.3 @@ -19813,7 +19800,7 @@ snapshots: '@typespec/ts-http-runtime@0.3.3': dependencies: - http-proxy-agent: 7.0.2(supports-color@8.1.1) + http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 tslib: 2.8.1 transitivePeerDependencies: @@ -20059,7 +20046,7 @@ snapshots: '@vscode/test-electron@2.5.2': dependencies: - http-proxy-agent: 7.0.2(supports-color@8.1.1) + http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 jszip: 3.10.1 ora: 8.2.0 @@ -20069,7 +20056,7 @@ snapshots: '@vscode/test-electron@3.1.0': dependencies: - http-proxy-agent: 7.0.2(supports-color@8.1.1) + http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 jszip: 3.10.1 ora: 8.2.0 @@ -20147,7 +20134,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@vscode/vsce@3.7.1(supports-color@8.1.1)': + '@vscode/vsce@3.7.1': dependencies: '@azure/identity': 4.13.0 '@secretlint/node': 10.2.2 @@ -20170,7 +20157,7 @@ snapshots: minimatch: 3.1.2 parse-semver: 1.1.1 read: 1.0.7 - secretlint: 10.2.2(supports-color@8.1.1) + secretlint: 10.2.2 semver: 7.8.5 tmp: 0.2.5 typed-rest-client: 1.8.11 @@ -20670,7 +20657,7 @@ snapshots: blake3-wasm@2.1.5: {} - body-parser@2.2.2(supports-color@8.1.1): + body-parser@2.2.2: dependencies: bytes: 3.1.2 content-type: 1.0.5 @@ -21244,8 +21231,6 @@ snapshots: diff@7.0.0: {} - diff@8.0.3: {} - diff@8.0.4: {} dir-glob@3.0.1: @@ -21523,7 +21508,7 @@ snapshots: '@eslint-community/eslint-utils': 4.9.1(eslint@10.4.0) '@eslint-community/regexpp': 4.12.2 comment-parser: 1.4.5 - eslint: 10.4.0(jiti@2.6.1)(supports-color@8.1.1) + eslint: 10.4.0(jiti@2.6.1) jsdoc-type-pratt-parser: 7.1.1 refa: 0.12.1 regexp-ast-analysis: 0.7.1 @@ -21540,11 +21525,11 @@ snapshots: eslint-visitor-keys@5.0.1: {} - eslint@10.4.0(jiti@2.6.1)(supports-color@8.1.1): + eslint@10.4.0(jiti@2.6.1): dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@10.4.0) '@eslint-community/regexpp': 4.12.2 - '@eslint/config-array': 0.23.5(supports-color@8.1.1) + '@eslint/config-array': 0.23.5 '@eslint/config-helpers': 0.6.0 '@eslint/core': 1.2.1 '@eslint/plugin-kit': 0.7.1 @@ -21678,10 +21663,10 @@ snapshots: expect-type@1.3.0: {} - express@5.2.1(supports-color@8.1.1): + express@5.2.1: dependencies: accepts: 2.0.0 - body-parser: 2.2.2(supports-color@8.1.1) + body-parser: 2.2.2 content-disposition: 1.0.1 content-type: 1.0.5 cookie: 0.7.2 @@ -21691,7 +21676,7 @@ snapshots: encodeurl: 2.0.0 escape-html: 1.0.3 etag: 1.8.1 - finalhandler: 2.1.1(supports-color@8.1.1) + finalhandler: 2.1.1 fresh: 2.0.0 http-errors: 2.0.1 merge-descriptors: 2.0.0 @@ -21702,7 +21687,7 @@ snapshots: proxy-addr: 2.0.7 qs: 6.14.2 range-parser: 1.2.1 - router: 2.2.0(supports-color@8.1.1) + router: 2.2.0 send: 1.2.1 serve-static: 2.2.1 statuses: 2.0.2 @@ -21715,7 +21700,7 @@ snapshots: extendable-error@0.1.7: {} - extract-zip@2.0.1(supports-color@8.1.1): + extract-zip@2.0.1: dependencies: debug: 4.4.3(supports-color@8.1.1) get-stream: 5.2.0 @@ -21845,7 +21830,7 @@ snapshots: filter-obj@6.1.0: {} - finalhandler@2.1.1(supports-color@8.1.1): + finalhandler@2.1.1: dependencies: debug: 4.4.3(supports-color@8.1.1) encodeurl: 2.0.0 @@ -22381,7 +22366,7 @@ snapshots: http-parser-js@0.5.10: {} - http-proxy-agent@7.0.2(supports-color@8.1.1): + http-proxy-agent@7.0.2: dependencies: agent-base: 7.1.4 debug: 4.4.3(supports-color@8.1.1) @@ -22750,7 +22735,7 @@ snapshots: kleur@4.1.5: {} - knip@5.82.1(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@22.19.19)(typescript@6.0.3): + knip@5.82.1(@types/node@22.19.19)(typescript@6.0.3): dependencies: '@nodelib/fs.walk': 1.2.8 '@types/node': 22.19.19 @@ -22759,7 +22744,7 @@ snapshots: jiti: 2.6.1 js-yaml: 4.3.0 minimist: 1.2.8 - oxc-resolver: 11.17.1(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1) + oxc-resolver: 11.17.1 picocolors: 1.1.1 picomatch: 4.0.4 smol-toml: 1.6.1 @@ -23863,9 +23848,9 @@ snapshots: outdent@0.5.0: {} - ovsx@0.10.10(supports-color@8.1.1): + ovsx@0.10.10: dependencies: - '@vscode/vsce': 3.7.1(supports-color@8.1.1) + '@vscode/vsce': 3.7.1 commander: 6.2.1 follow-redirects: 1.15.11 is-ci: 2.0.0 @@ -23877,7 +23862,7 @@ snapshots: - debug - supports-color - oxc-resolver@11.17.1(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1): + oxc-resolver@11.17.1: optionalDependencies: '@oxc-resolver/binding-android-arm-eabi': 11.17.1 '@oxc-resolver/binding-android-arm64': 11.17.1 @@ -23895,7 +23880,7 @@ snapshots: '@oxc-resolver/binding-linux-x64-gnu': 11.17.1 '@oxc-resolver/binding-linux-x64-musl': 11.17.1 '@oxc-resolver/binding-openharmony-arm64': 11.17.1 - '@oxc-resolver/binding-wasm32-wasi': 11.17.1(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1) + '@oxc-resolver/binding-wasm32-wasi': 11.17.1 '@oxc-resolver/binding-win32-arm64-msvc': 11.17.1 '@oxc-resolver/binding-win32-ia32-msvc': 11.17.1 '@oxc-resolver/binding-win32-x64-msvc': 11.17.1 @@ -24928,7 +24913,7 @@ snapshots: rosie-skills-freebsd-x64: 0.6.4 rosie-skills-linux-x64: 0.6.4 - router@2.2.0(supports-color@8.1.1): + router@2.2.0: dependencies: debug: 4.4.3(supports-color@8.1.1) depd: 2.0.0 @@ -25003,7 +24988,7 @@ snapshots: scule@1.3.0: {} - secretlint@10.2.2(supports-color@8.1.1): + secretlint@10.2.2: dependencies: '@secretlint/config-creator': 10.2.2 '@secretlint/formatter': 10.2.2 @@ -25636,9 +25621,9 @@ snapshots: twoslash-protocol@0.3.8: {} - twoslash@0.3.8(supports-color@8.1.1)(typescript@6.0.3): + twoslash@0.3.8(typescript@6.0.3): dependencies: - '@typescript/vfs': 1.6.4(supports-color@8.1.1)(typescript@6.0.3) + '@typescript/vfs': 1.6.4(typescript@6.0.3) twoslash-protocol: 0.3.8 typescript: 6.0.3 transitivePeerDependencies: @@ -25685,13 +25670,13 @@ snapshots: dependencies: semver: 7.8.5 - typescript-eslint@8.59.2(eslint@10.4.0)(supports-color@8.1.1)(typescript@6.0.3): + typescript-eslint@8.59.2(eslint@10.4.0)(typescript@6.0.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.59.2(@typescript-eslint/parser@8.59.2)(eslint@10.4.0)(supports-color@8.1.1)(typescript@6.0.3) - '@typescript-eslint/parser': 8.59.2(eslint@10.4.0)(supports-color@8.1.1)(typescript@6.0.3) + '@typescript-eslint/eslint-plugin': 8.59.2(@typescript-eslint/parser@8.59.2)(eslint@10.4.0)(typescript@6.0.3) + '@typescript-eslint/parser': 8.59.2(eslint@10.4.0)(typescript@6.0.3) '@typescript-eslint/typescript-estree': 8.59.2(typescript@6.0.3) '@typescript-eslint/utils': 8.59.2(eslint@10.4.0)(typescript@6.0.3) - eslint: 10.4.0(jiti@2.6.1)(supports-color@8.1.1) + eslint: 10.4.0(jiti@2.6.1) typescript: 6.0.3 transitivePeerDependencies: - supports-color @@ -25726,6 +25711,8 @@ snapshots: undici@7.24.8: {} + undici@8.10.0: {} + unenv@2.0.0-rc.24: dependencies: pathe: 2.0.3 @@ -25746,11 +25733,11 @@ snapshots: trough: 2.2.0 vfile: 6.0.3 - unifont@0.7.4: + unifont@0.7.5: dependencies: css-tree: 3.1.0 - ofetch: 1.5.1 ohash: 2.0.11 + undici: 8.10.0 unist-util-find-after@5.0.0: dependencies: @@ -25926,7 +25913,7 @@ snapshots: dependencies: vite: 8.1.0(@types/node@22.19.19)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.98.0)(tsx@4.22.3)(yaml@2.9.0) - vite-plugin-inspect@11.3.3(supports-color@8.1.1)(vite@8.1.0): + vite-plugin-inspect@11.3.3(vite@8.1.0): dependencies: ansis: 4.2.0 debug: 4.4.3(supports-color@8.1.1) @@ -25954,14 +25941,14 @@ snapshots: transitivePeerDependencies: - supports-color - vite-plugin-vue-devtools@8.1.0(supports-color@8.1.1)(vite@8.1.0)(vue@3.5.30): + vite-plugin-vue-devtools@8.1.0(vite@8.1.0)(vue@3.5.30): dependencies: '@vue/devtools-core': 8.1.0(vue@3.5.30) '@vue/devtools-kit': 8.1.0 '@vue/devtools-shared': 8.1.0 sirv: 3.0.2 vite: 8.1.0(@types/node@22.19.19)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.98.0)(tsx@4.22.3)(yaml@2.9.0) - vite-plugin-inspect: 11.3.3(supports-color@8.1.1)(vite@8.1.0) + vite-plugin-inspect: 11.3.3(vite@8.1.0) vite-plugin-vue-inspector: 5.3.2(vite@8.1.0) transitivePeerDependencies: - '@nuxt/kit' @@ -25993,7 +25980,7 @@ snapshots: stack-trace: 1.0.0-pre2 vite: 8.1.0(@types/node@22.19.19)(esbuild@0.28.0)(jiti@2.6.1)(sass@1.98.0)(tsx@4.22.3)(yaml@2.9.0) - vite-svg-loader@5.1.1(supports-color@8.1.1)(vue@3.5.30): + vite-svg-loader@5.1.1(vue@3.5.30): dependencies: debug: 4.4.3(supports-color@8.1.1) svgo: 3.3.3