From cfbc6ef0792e09c3acfe18ab3ccb3a5da6a7ed0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ji=C5=99=C3=AD=20Michel?= Date: Thu, 9 Apr 2026 04:01:27 +0200 Subject: [PATCH 01/20] fix(i18n): update Czech translations (#2425) --- app/components/CollapsibleSection.vue | 9 +- i18n/locales/cs-CZ.json | 147 +++++++++++++++++++++++++- i18n/locales/en.json | 4 +- i18n/schema.json | 6 ++ 4 files changed, 161 insertions(+), 5 deletions(-) diff --git a/app/components/CollapsibleSection.vue b/app/components/CollapsibleSection.vue index 961e3502e5..5ea534620c 100644 --- a/app/components/CollapsibleSection.vue +++ b/app/components/CollapsibleSection.vue @@ -62,8 +62,13 @@ function toggle() { } const ariaLabel = computed(() => { - const action = isOpen.value ? 'Collapse' : 'Expand' - return props.title ? `${action} ${props.title}` : action + if (!props.title) { + return isOpen.value ? $t('common.collapse') : $t('common.expand') + } + + return isOpen.value + ? $t('common.collapse_with_name', { name: props.title }) + : $t('common.expand_with_name', { name: props.title }) }) useHead({ style: [ diff --git a/i18n/locales/cs-CZ.json b/i18n/locales/cs-CZ.json index 5aececf416..2ca6c6e2fc 100644 --- a/i18n/locales/cs-CZ.json +++ b/i18n/locales/cs-CZ.json @@ -28,6 +28,9 @@ "search": "Hledání", "package": "Balíček" }, + "ctrl_key": "Ctrl", + "command_palette": "Otevřít panel příkazů", + "command_palette_description": "Použijte panel příkazů k přechodu mezi stránkami, zobrazeními balíčků, nastaveními a externími odkazy, aniž byste opustili klávesnici. Na macOS stiskněte ⌘K. Na Windows a Linux stiskněte {ctrlKey}+K.", "focus_search": "Zaměřit hledání", "show_kbd_hints": "Zvýraznit klávesové zkratky", "settings": "Otevřít nastavení", @@ -76,6 +79,113 @@ "instant_search_turn_off": "vypnout", "instant_search_advisory": "{label} {state} — {action}" }, + "command_palette": { + "title": "panel příkazů", + "quick_actions": "skočit na...", + "subtitle": "rychle přepínejte npmx stránky a nastavení", + "subtitle_languages": "vyberte jazyk nebo pomozte zlepšit překlady", + "instructions": "Zadejte text pro filtrování příkazů. Použijte šipky pro pohyb mezi výsledky a Enter pro spuštění příkazu.", + "input_label": "Hledání v panelu příkazů", + "results_label": "Výsledky hledání", + "placeholder": "zadejte příkaz...", + "back": "Zpět", + "empty": "Žádné odpovídající příkazy", + "empty_search_hint": "Stiskněte Enter pro hledání \"{query}\".", + "current": "aktuální", + "here": "tady jste", + "connected": "připojeno", + "state": { + "on": "zapnuto", + "off": "vypnuto" + }, + "groups": { + "actions": "Akce", + "help": "Nápověda", + "language": "Jazyk", + "connections": "Připojení", + "navigation": "Navigace", + "links": "Odkazy", + "npmx": "npmx", + "package": "Balíček", + "package_with_name": "Balíček ({name})", + "versions": "Verze", + "versions_with_name": "Verze {name}" + }, + "actions": { + "search": "Hledat", + "search_for": "Hledání \"{query}\"", + "keyboard_shortcuts": "Klávesové zkratky", + "help_translate": "Pomozte s překladem" + }, + "connections": { + "npm_connect": "Připojit k npm CLI", + "npm_connected": "npm CLI (~{username})", + "npm_disconnect": "Odpojit npm CLI", + "atmosphere_connect": "Připojit k Atmosphere", + "atmosphere_connected": "atmosphere ({'@'}{handle})", + "atmosphere_disconnect": "Odpojit Atmosphere" + }, + "navigation": { + "home": "domů", + "packages": "balíčky (~{username})", + "orgs": "organizace (~{username})", + "profile": "profil ({'@'}{handle})" + }, + "links": { + "external": "Externí odkaz" + }, + "package_links": { + "stars": "Hvězdičky repozitáře", + "forks": "Forky repozitáře" + }, + "theme": { + "system": "Použít systémové téma", + "light": "Použít světlé téma", + "dark": "Použít tmavé téma" + }, + "package": { + "main": "Stránka balíčku", + "docs": "Dokumentace", + "code": "Kód", + "diff": "Rozdíl", + "compare": "Porovnat tento balíček", + "download": "Stáhnout tarball" + }, + "package_actions": { + "copy_run": "Kopírovat příkaz spuštění" + }, + "code": { + "copy_file": "Kopírovat obsah souboru" + }, + "diff": { + "merge_modified_lines": "Sloučit upravené řádky", + "word_wrap": "Zalomit slova" + }, + "version": { + "label": "{version}" + }, + "status": { + "available_in_context": "{context}. {count} dostupný příkaz | {context}. {count} dostupné příkazy | {context}. {count} dostupných příkazů", + "matching_in_context": "{context}. {count} odpovídající příkaz | {context}. {count} odpovídající příkazy | {context}. {count} odpovídajících příkazů", + "no_matches_search_in_context": "{context}. Žádné odpovídající příkazy. Stiskněte Enter pro hledání \"{query}\"." + }, + "announcements": { + "language_changed": "Jazyk nastaven na {language}.", + "relative_dates_on": "Relativní data zapnuta.", + "relative_dates_off": "Relativní data vypnuta.", + "theme_changed": "Téma nastaveno na {theme}.", + "accent_color_changed": "Akcentová barva nastavena na {color}.", + "background_theme_changed": "Odstín pozadí nastaven na {theme}.", + "download_started": "Stahování tarballu {package} zahájeno.", + "copied_to_clipboard": "Zkopírováno do schránky.", + "npm_disconnected": "Odpojeno od npm CLI.", + "atmosphere_disconnected": "Odpojeno od Atmosphere.", + "facets_all_selected": "Všechny vlastnosti vybrány.", + "facets_all_deselected": "Výběr vlastností zrušen.", + "view_switched": "Přepnuto na zobrazení {view}.", + "setting_toggled": "{setting} {state}." + } + }, "nav": { "main_navigation": "Hlavní", "popular_packages": "Populární balíčky", @@ -150,7 +260,8 @@ "help_translate": "Pomozte přeložit npmx", "translation_status": "Zkontrolovat globální stav překladu", "accent_colors": { - "label": "Barvy akcentu", + "label": "Akcentová barva", + "neutral": "Neutrální", "sky": "Obloha", "coral": "Korál", "amber": "Jantar", @@ -201,6 +312,8 @@ "warnings": "Varování:", "go_back_home": "Zpět na začátek", "per_week": "/ týden", + "yes": "Ano", + "no": "Ne", "vanity_downloads_hint": "Pro zobrazený balíček | Součet pro {count} zobrazené balíčky | Součet pro {count} zobrazených balíčků", "sort": { "name": "jméno", @@ -223,11 +336,14 @@ "gitea": "Zobrazit na Gitea", "gitee": "Zobrazit na Gitee", "radicle": "Zobrazit na Radicle", + "socket_dev": "Zobrazit na socket.dev", "sourcehut": "Zobrazit na SourceHutu", "tangled": "Zobrazit na Tangled" }, "collapse": "Sbalit", - "expand": "Rozbalit" + "collapse_with_name": "Sbalit sekci {name}", + "expand": "Rozbalit", + "expand_with_name": "Rozbalit sekci {name}" }, "profile": { "display_name": "Zobrazované jméno", @@ -1122,6 +1238,33 @@ "packages_selected": "Vybrané balíčky: {count}/{max}.", "add_hint": "Přidejte alespoň 2 balíčky ke srovnání." }, + "quadrant_chart": { + "label_x_axis": "Trakce", + "label_y_axis": "Ergonomie", + "label_top_right": "Solidní volby", + "label_bottom_right": "populární s kompromisy", + "label_bottom_left": "vyhněte se", + "label_top_left": "skryté poklady", + "title": "Trakce vs ergonomie balíčku", + "filename": "trakce-vs-ergonomie-balicku-kvadrant", + "label_freshness_score": "Skóre čerstvosti", + "copy_alt": { + "description": "Graf kvadrantu zobrazující trakci versus ergonomii pro balíčky {packages}. {analysis}. {watermark}.", + "side_analysis_top_right": "Následující balíčky jsou umístěny v pravém horním kvadrantu (solidní volby): {packages}", + "side_analysis_top_left": "Následující balíčky jsou umístěny v levém horním kvadrantu (skryté poklady): {packages}", + "side_analysis_bottom_right": "Následující balíčky jsou umístěny v pravém dolním kvadrantu (populární s kompromisy): {packages}", + "side_analysis_bottom_left": "Následující balíčky jsou umístěny v levém dolním kvadrantu (vyhněte se): {packages}" + }, + "explanation": { + "tooltip_help": "Zobrazit vysvětlení skóre", + "tooltip_help_adoption": "Zobrazit vysvětlení skóre trakce", + "tooltip_help_efficiency": "Zobrazit vysvětlení skóre ergonomie", + "introduction": "Skóre je vypočítáno kombinací několika signálů do dvou os:", + "adoption": "Trakce: odráží použití a aktivitu (stahování, čerstvost, lajky)", + "efficiency": "Ergonomie: odráží stopu a kvalitu (velikost instalace, závislosti, zranitelnosti, otypování)", + "impact_details": "Každá metrika přispívá s různou váhou. Silné signály, jako jsou stahování a velikost instalace, mají největší dopad, zatímco jiné výsledky upřesňují výsledné skóre. Některé signály (např. zranitelnosti nebo zastarání) aplikují penalizace." + } + }, "no_dependency": { "label": "(Žádná závislost)", "typeahead_title": "Co by udělal James?", diff --git a/i18n/locales/en.json b/i18n/locales/en.json index 9f54a101f0..a142d1ab54 100644 --- a/i18n/locales/en.json +++ b/i18n/locales/en.json @@ -341,7 +341,9 @@ "tangled": "View on Tangled" }, "collapse": "Collapse", - "expand": "Expand" + "collapse_with_name": "Collapse {name}", + "expand": "Expand", + "expand_with_name": "Expand {name}" }, "profile": { "display_name": "Display Name", diff --git a/i18n/schema.json b/i18n/schema.json index fd8654207d..b3ccd57f64 100644 --- a/i18n/schema.json +++ b/i18n/schema.json @@ -1027,8 +1027,14 @@ "collapse": { "type": "string" }, + "collapse_with_name": { + "type": "string" + }, "expand": { "type": "string" + }, + "expand_with_name": { + "type": "string" } }, "additionalProperties": false From ac1fdb3db79bf0190425f5b6560270f5f9069711 Mon Sep 17 00:00:00 2001 From: btea <2356281422@qq.com> Date: Thu, 9 Apr 2026 10:26:12 +0800 Subject: [PATCH 02/20] chore: use new `dedupePeers` pnpm option (#2420) Co-authored-by: Willow (GHOST) --- package.json | 2 +- pnpm-lock.yaml | 817 ++++++++++++++++++++++---------------------- pnpm-workspace.yaml | 2 + 3 files changed, 412 insertions(+), 409 deletions(-) diff --git a/package.json b/package.json index 35e440cb74..38835219b0 100644 --- a/package.json +++ b/package.json @@ -147,7 +147,7 @@ "engines": { "node": "24" }, - "packageManager": "pnpm@10.32.1", + "packageManager": "pnpm@10.33.0", "storybook": { "url": "https://storybook.npmx.dev" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6aae2c3a85..25df17e30b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2,6 +2,7 @@ lockfileVersion: '9.0' settings: autoInstallPeers: true + dedupePeers: true excludeLinksFromLockfile: false catalogs: @@ -62,7 +63,7 @@ importers: version: '@jsr/deno__doc@0.189.1(patch_hash=24f326e123c822a07976329a5afe91a8713e82d53134b5586625b72431c87832)' '@floating-ui/vue': specifier: 1.1.11 - version: 1.1.11(vue@3.5.30(typescript@6.0.2)) + version: 1.1.11(vue@3.5.30) '@iconify-json/lucide': specifier: 1.2.98 version: 1.2.98 @@ -86,25 +87,25 @@ importers: version: 0.1.97 '@nuxt/a11y': specifier: 1.0.0-alpha.1 - version: 1.0.0-alpha.1(magicast@0.5.2)(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3)) + version: 1.0.0-alpha.1(magicast@0.5.2)(vite@8.0.0-beta.18) '@nuxt/fonts': specifier: 0.14.0 - version: 0.14.0(@upstash/redis@1.37.0)(db0@0.3.4(better-sqlite3@12.8.0))(ioredis@5.10.1)(magicast@0.5.2)(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3)) + version: 0.14.0(@upstash/redis@1.37.0)(db0@0.3.4)(ioredis@5.10.1)(magicast@0.5.2)(vite@8.0.0-beta.18) '@nuxt/scripts': specifier: 0.13.2 - version: 0.13.2(@unhead/vue@2.1.13(vue@3.5.30(typescript@6.0.2)))(@upstash/redis@1.37.0)(db0@0.3.4(better-sqlite3@12.8.0))(ioredis@5.10.1)(magicast@0.5.2)(typescript@6.0.2)(vue@3.5.30(typescript@6.0.2)) + version: 0.13.2(@unhead/vue@2.1.13)(@upstash/redis@1.37.0)(db0@0.3.4)(ioredis@5.10.1)(magicast@0.5.2)(typescript@6.0.2)(vue@3.5.30) '@nuxt/test-utils': specifier: 4.0.0 - version: 4.0.0(@playwright/test@1.58.2)(@voidzero-dev/vite-plus-test@0.1.12(@opentelemetry/api@1.9.0)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3))(yaml@2.8.3))(@vue/test-utils@2.4.6)(crossws@0.4.4(srvx@0.11.15))(magicast@0.5.2)(playwright-core@1.59.1)(typescript@6.0.2)(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3)) + version: 4.0.0(@playwright/test@1.58.2)(@voidzero-dev/vite-plus-test@0.1.12)(@vue/test-utils@2.4.6)(crossws@0.4.4)(magicast@0.5.2)(playwright-core@1.59.1)(typescript@6.0.2)(vite@8.0.0-beta.18) '@nuxtjs/color-mode': specifier: 4.0.0 version: 4.0.0(magicast@0.5.2) '@nuxtjs/html-validator': specifier: 2.1.0 - version: 2.1.0(@voidzero-dev/vite-plus-test@0.1.12(@opentelemetry/api@1.9.0)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3))(yaml@2.8.3))(magicast@0.5.2) + version: 2.1.0(@voidzero-dev/vite-plus-test@0.1.12)(magicast@0.5.2) '@nuxtjs/i18n': specifier: 10.2.3 - version: 10.2.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@upstash/redis@1.37.0)(@vue/compiler-dom@3.5.32)(db0@0.3.4(better-sqlite3@12.8.0))(eslint@10.2.0(jiti@2.6.1))(ioredis@5.10.1)(magicast@0.5.2)(rollup@4.60.1)(vue@3.5.30(typescript@6.0.2)) + version: 10.2.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@upstash/redis@1.37.0)(@vue/compiler-dom@3.5.32)(db0@0.3.4)(eslint@10.2.0)(ioredis@5.10.1)(magicast@0.5.2)(rollup@4.60.1)(vue@3.5.30) '@shikijs/langs': specifier: 4.0.2 version: 4.0.2 @@ -116,7 +117,7 @@ importers: version: 4.0.2 '@unocss/nuxt': specifier: 66.6.7 - version: 66.6.7(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(magicast@0.5.2)(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3))(webpack@5.105.4(esbuild@0.27.7)) + version: 66.6.7(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(magicast@0.5.2)(vite@8.0.0-beta.18)(webpack@5.105.4) '@unocss/preset-wind4': specifier: 66.6.7 version: 66.6.7 @@ -128,22 +129,22 @@ importers: version: 1.0.2 '@vite-pwa/nuxt': specifier: 1.1.1 - version: 1.1.1(@vite-pwa/assets-generator@1.0.2)(magicast@0.5.2)(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3))(workbox-build@7.4.0)(workbox-window@7.4.0) + version: 1.1.1(@vite-pwa/assets-generator@1.0.2)(magicast@0.5.2)(vite@8.0.0-beta.18)(workbox-build@7.4.0)(workbox-window@7.4.0) '@vueuse/core': specifier: 14.2.1 - version: 14.2.1(vue@3.5.30(typescript@6.0.2)) + version: 14.2.1(vue@3.5.30) '@vueuse/integrations': specifier: 14.2.1 - version: 14.2.1(focus-trap@8.0.1)(fuse.js@7.3.0)(vue@3.5.30(typescript@6.0.2)) + version: 14.2.1(focus-trap@8.0.1)(fuse.js@7.3.0)(vue@3.5.30) '@vueuse/nuxt': specifier: 14.2.1 - version: 14.2.1(magicast@0.5.2)(nuxt@4.3.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@parcel/watcher@2.5.6)(@types/node@24.12.0)(@upstash/redis@1.37.0)(@vue/compiler-sfc@3.5.32)(better-sqlite3@12.8.0)(cac@6.7.14)(db0@0.3.4(better-sqlite3@12.8.0))(eslint@10.2.0(jiti@2.6.1))(ioredis@5.10.1)(magicast@0.5.2)(optionator@0.9.4)(oxlint@1.55.0(oxlint-tsgolint@0.17.0))(rolldown@1.0.0-rc.12(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2))(rollup@4.60.1)(srvx@0.11.15)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3))(vue-tsc@3.2.6(typescript@6.0.2))(yaml@2.8.3))(vue@3.5.30(typescript@6.0.2)) + version: 14.2.1(magicast@0.5.2)(nuxt@4.3.1)(vue@3.5.30) '@vueuse/router': specifier: ^14.2.1 - version: 14.2.1(vue-router@4.6.4(vue@3.5.30(typescript@6.0.2)))(vue@3.5.30(typescript@6.0.2)) + version: 14.2.1(vue-router@4.6.4)(vue@3.5.30) '@vueuse/shared': specifier: 14.2.1 - version: 14.2.1(vue@3.5.30(typescript@6.0.2)) + version: 14.2.1(vue@3.5.30) algoliasearch: specifier: 5.49.2 version: 5.49.2 @@ -173,10 +174,10 @@ importers: version: 2.11.0 nuxt: specifier: 4.3.1 - version: 4.3.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@parcel/watcher@2.5.6)(@types/node@24.12.0)(@upstash/redis@1.37.0)(@vue/compiler-sfc@3.5.32)(better-sqlite3@12.8.0)(cac@6.7.14)(db0@0.3.4(better-sqlite3@12.8.0))(eslint@10.2.0(jiti@2.6.1))(ioredis@5.10.1)(magicast@0.5.2)(optionator@0.9.4)(oxlint@1.55.0(oxlint-tsgolint@0.17.0))(rolldown@1.0.0-rc.12(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2))(rollup@4.60.1)(srvx@0.11.15)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3))(vue-tsc@3.2.6(typescript@6.0.2))(yaml@2.8.3) + version: 4.3.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@parcel/watcher@2.5.6)(@types/node@24.12.0)(@upstash/redis@1.37.0)(@vue/compiler-sfc@3.5.32)(better-sqlite3@12.8.0)(cac@6.7.14)(db0@0.3.4)(eslint@10.2.0)(ioredis@5.10.1)(magicast@0.5.2)(optionator@0.9.4)(oxlint@1.55.0)(rolldown@1.0.0-rc.12)(rollup@4.60.1)(srvx@0.11.15)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18)(vue-tsc@3.2.6)(yaml@2.8.3) nuxt-og-image: specifier: 5.1.13 - version: 5.1.13(@unhead/vue@2.1.13(vue@3.5.30(typescript@6.0.2)))(magicast@0.5.2)(unstorage@1.17.5(@upstash/redis@1.37.0)(db0@0.3.4(better-sqlite3@12.8.0))(ioredis@5.10.1))(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3))(vue@3.5.30(typescript@6.0.2)) + version: 5.1.13(@unhead/vue@2.1.13)(magicast@0.5.2)(unstorage@1.17.5)(vite@8.0.0-beta.18)(vue@3.5.30) ofetch: specifier: 1.5.1 version: 1.5.1 @@ -209,10 +210,10 @@ importers: version: 1.6.3 unocss: specifier: 66.6.7 - version: 66.6.7(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@unocss/webpack@66.6.7(webpack@5.105.4(esbuild@0.27.7)))(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3)) + version: 66.6.7(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@unocss/webpack@66.6.7)(vite@8.0.0-beta.18) unplugin-vue-router: specifier: 0.19.2 - version: 0.19.2(@vue/compiler-sfc@3.5.32)(vue-router@4.6.4(vue@3.5.30(typescript@6.0.2)))(vue@3.5.30(typescript@6.0.2)) + version: 0.19.2(@vue/compiler-sfc@3.5.32)(vue-router@4.6.4)(vue@3.5.30) valibot: specifier: 1.3.0 version: 1.3.0(typescript@6.0.2) @@ -221,23 +222,23 @@ importers: version: 7.0.2 virtua: specifier: 0.48.8 - version: 0.48.8(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(vue@3.5.30(typescript@6.0.2)) + version: 0.48.8(react-dom@19.2.4)(react@19.2.4)(vue@3.5.30) vite-plugin-pwa: specifier: 1.2.0 - version: 1.2.0(@vite-pwa/assets-generator@1.0.2)(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3))(workbox-build@7.4.0)(workbox-window@7.4.0) + version: 1.2.0(@vite-pwa/assets-generator@1.0.2)(vite@8.0.0-beta.18)(workbox-build@7.4.0)(workbox-window@7.4.0) vite-plus: specifier: 0.1.12 - version: 0.1.12(@opentelemetry/api@1.9.0)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3))(yaml@2.8.3) + version: 0.1.12(@opentelemetry/api@1.9.0)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18)(yaml@2.8.3) vue: specifier: 3.5.30 version: 3.5.30(typescript@6.0.2) vue-data-ui: specifier: 3.17.11 - version: 3.17.11(vue@3.5.30(typescript@6.0.2)) + version: 3.17.11(vue@3.5.30) devDependencies: '@e18e/eslint-plugin': specifier: 0.3.0 - version: 0.3.0(eslint@10.2.0(jiti@2.6.1))(oxlint@1.55.0(oxlint-tsgolint@0.17.0)) + version: 0.3.0(eslint@10.2.0)(oxlint@1.55.0) '@intlify/core-base': specifier: 11.3.0 version: 11.3.0 @@ -249,16 +250,16 @@ importers: version: 1.58.2 '@storybook-vue/nuxt': specifier: catalog:storybook - version: 9.0.1(b87c59ddc2e1d42ad367999e1522bdb7) + version: 9.0.1(@types/node@24.12.0)(esbuild@0.27.7)(eslint@10.2.0)(magicast@0.5.2)(nuxt@4.3.1)(optionator@0.9.4)(oxlint@1.55.0)(rolldown@1.0.0-rc.12)(rollup-plugin-visualizer@7.0.1)(rollup@4.60.1)(storybook@10.3.4)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18)(vue-tsc@3.2.6)(vue@3.5.30)(yaml@2.8.3) '@storybook/addon-a11y': specifier: catalog:storybook - version: 10.3.4(storybook@10.3.4(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)) + version: 10.3.4(storybook@10.3.4) '@storybook/addon-docs': specifier: catalog:storybook - version: 10.3.4(@types/react@19.2.14)(esbuild@0.27.7)(rollup@4.60.1)(storybook@10.3.4(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3))(webpack@5.105.4(esbuild@0.27.7)) + version: 10.3.4(@types/react@19.2.14)(esbuild@0.27.7)(rollup@4.60.1)(storybook@10.3.4)(vite@8.0.0-beta.18)(webpack@5.105.4) '@storybook/addon-themes': specifier: catalog:storybook - version: 10.3.4(storybook@10.3.4(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)) + version: 10.3.4(storybook@10.3.4) '@types/node': specifier: 24.12.0 version: 24.12.0 @@ -273,7 +274,7 @@ importers: version: 4.0.2 '@vitest/coverage-v8': specifier: 4.1.2 - version: 4.1.2(@voidzero-dev/vite-plus-test@0.1.12(@opentelemetry/api@1.9.0)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3))(yaml@2.8.3)) + version: 4.1.2(@voidzero-dev/vite-plus-test@0.1.12) '@vue/test-utils': specifier: 2.4.6 version: 2.4.6 @@ -291,7 +292,7 @@ importers: version: 5.6.4 eslint-plugin-regexp: specifier: 3.1.0 - version: 3.1.0(eslint@10.2.0(jiti@2.6.1)) + version: 3.1.0(eslint@10.2.0) fast-check: specifier: 4.6.0 version: 4.6.0 @@ -300,7 +301,7 @@ importers: version: 1.15.8 h3-next: specifier: npm:h3@2.0.1-rc.16 - version: h3@2.0.1-rc.16(crossws@0.4.4(srvx@0.11.15)) + version: h3@2.0.1-rc.16(crossws@0.4.4) knip: specifier: 6.0.5 version: 6.0.5(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) @@ -312,19 +313,19 @@ importers: version: 2.0.0(typescript@6.0.2) storybook: specifier: ^10.3.1 - version: 10.3.4(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + version: 10.3.4(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4)(react@19.2.4) storybook-i18n: specifier: catalog:storybook - version: 10.1.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(storybook@10.3.4(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)) + version: 10.1.1(react-dom@19.2.4)(react@19.2.4)(storybook@10.3.4) typescript: specifier: 6.0.2 version: 6.0.2 unplugin-vue-markdown: specifier: 30.0.0 - version: 30.0.0(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3)) + version: 30.0.0(vite@8.0.0-beta.18) vitest: specifier: npm:@voidzero-dev/vite-plus-test@0.1.12 - version: '@voidzero-dev/vite-plus-test@0.1.12(@opentelemetry/api@1.9.0)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3))(yaml@2.8.3)' + version: '@voidzero-dev/vite-plus-test@0.1.12(@opentelemetry/api@1.9.0)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18)(yaml@2.8.3)' vue-i18n-extract: specifier: 2.0.7 version: 2.0.7 @@ -345,7 +346,7 @@ importers: version: 0.2.2 h3-next: specifier: npm:h3@^2.0.1-rc.14 - version: h3@2.0.1-rc.20(crossws@0.4.4(srvx@0.11.15)) + version: h3@2.0.1-rc.20(crossws@0.4.4) obug: specifier: ^2.1.1 version: 2.1.1 @@ -367,7 +368,7 @@ importers: version: 4.0.2 tsdown: specifier: 0.21.4 - version: 0.21.4(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(oxc-resolver@11.19.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2))(typescript@6.0.2)(vue-tsc@3.2.6(typescript@6.0.2)) + version: 0.21.4(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(oxc-resolver@11.19.1)(typescript@6.0.2)(vue-tsc@3.2.6) typescript: specifier: 6.0.2 version: 6.0.2 @@ -376,7 +377,7 @@ importers: dependencies: '@nuxt/ui': specifier: 4.5.1 - version: 4.5.1(@nuxt/content@3.12.0(better-sqlite3@12.8.0)(magicast@0.5.2)(valibot@1.3.0(typescript@6.0.2)))(@tiptap/extensions@3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))(@tiptap/pm@3.22.2))(@tiptap/y-tiptap@3.0.2(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.8)(y-protocols@1.0.7(yjs@13.6.30))(yjs@13.6.30))(@upstash/redis@1.37.0)(db0@0.3.4(better-sqlite3@12.8.0))(embla-carousel@8.6.0)(focus-trap@8.0.1)(ioredis@5.10.1)(magicast@0.5.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(tailwindcss@4.2.2)(typescript@6.0.2)(valibot@1.3.0(typescript@6.0.2))(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3))(vue-router@4.6.4(vue@3.5.30(typescript@6.0.2)))(vue@3.5.30(typescript@6.0.2))(yjs@13.6.30)(zod@4.3.6) + version: 4.5.1(@nuxt/content@3.12.0)(@tiptap/extensions@3.22.2)(@tiptap/y-tiptap@3.0.2)(@upstash/redis@1.37.0)(db0@0.3.4)(embla-carousel@8.6.0)(focus-trap@8.0.1)(ioredis@5.10.1)(magicast@0.5.2)(react-dom@19.2.4)(react@19.2.4)(tailwindcss@4.2.2)(typescript@6.0.2)(valibot@1.3.0)(vite@8.0.0-beta.18)(vue-router@4.6.4)(vue@3.5.30)(yjs@13.6.30)(zod@4.3.6) '@nuxtjs/mdc': specifier: 0.20.2 version: 0.20.2(magicast@0.5.2) @@ -385,10 +386,10 @@ importers: version: 12.8.0 docus: specifier: 5.8.1 - version: 5.8.1(4d997acb641abe9fe48cff6c88badf5c) + version: 5.8.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@tiptap/extensions@3.22.2)(@tiptap/y-tiptap@3.0.2)(@unhead/vue@2.1.13)(@upstash/redis@1.37.0)(@vue/compiler-dom@3.5.32)(better-sqlite3@12.8.0)(db0@0.3.4)(embla-carousel@8.6.0)(eslint@10.2.0)(focus-trap@8.0.1)(ioredis@5.10.1)(magicast@0.5.2)(nuxt@4.3.1)(react-dom@19.2.4)(react@19.2.4)(rollup@4.60.1)(srvx@0.11.15)(typescript@6.0.2)(unstorage@1.17.5)(valibot@1.3.0)(vite@8.0.0-beta.18)(vue-router@4.6.4)(vue@3.5.30)(yjs@13.6.30) nuxt: specifier: 4.3.1 - version: 4.3.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@parcel/watcher@2.5.6)(@types/node@24.12.0)(@upstash/redis@1.37.0)(@vue/compiler-sfc@3.5.32)(better-sqlite3@12.8.0)(cac@6.7.14)(db0@0.3.4(better-sqlite3@12.8.0))(eslint@10.2.0(jiti@2.6.1))(ioredis@5.10.1)(magicast@0.5.2)(optionator@0.9.4)(oxlint@1.55.0(oxlint-tsgolint@0.17.0))(rolldown@1.0.0-rc.12(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2))(rollup@4.60.1)(srvx@0.11.15)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3))(vue-tsc@3.2.6(typescript@6.0.2))(yaml@2.8.3) + version: 4.3.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@parcel/watcher@2.5.6)(@types/node@24.12.0)(@upstash/redis@1.37.0)(@vue/compiler-sfc@3.5.32)(better-sqlite3@12.8.0)(cac@6.7.14)(db0@0.3.4)(eslint@10.2.0)(ioredis@5.10.1)(magicast@0.5.2)(optionator@0.9.4)(oxlint@1.55.0)(rolldown@1.0.0-rc.12)(rollup@4.60.1)(srvx@0.11.15)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18)(vue-tsc@3.2.6)(yaml@2.8.3) tailwindcss: specifier: 4.2.2 version: 4.2.2 @@ -11022,11 +11023,11 @@ snapshots: dependencies: json-schema: 0.4.0 - '@ai-sdk/vue@3.0.116(vue@3.5.30(typescript@6.0.2))(zod@4.3.6)': + '@ai-sdk/vue@3.0.116(vue@3.5.30)(zod@4.3.6)': dependencies: '@ai-sdk/provider-utils': 4.0.19(zod@4.3.6) ai: 6.0.116(zod@4.3.6) - swrv: 1.2.0(vue@3.5.30(typescript@6.0.2)) + swrv: 1.2.0(vue@3.5.30) vue: 3.5.30(typescript@6.0.2) transitivePeerDependencies: - zod @@ -12154,9 +12155,9 @@ snapshots: '@dxup/unimport@0.1.2': {} - '@e18e/eslint-plugin@0.3.0(eslint@10.2.0(jiti@2.6.1))(oxlint@1.55.0(oxlint-tsgolint@0.17.0))': + '@e18e/eslint-plugin@0.3.0(eslint@10.2.0)(oxlint@1.55.0)': dependencies: - eslint-plugin-depend: 1.5.0(eslint@10.2.0(jiti@2.6.1)) + eslint-plugin-depend: 1.5.0(eslint@10.2.0) optionalDependencies: eslint: 10.2.0(jiti@2.6.1) oxlint: 1.55.0(oxlint-tsgolint@0.17.0) @@ -12333,7 +12334,7 @@ snapshots: '@esbuild/win32-x64@0.27.7': optional: true - '@eslint-community/eslint-utils@4.9.1(eslint@10.2.0(jiti@2.6.1))': + '@eslint-community/eslint-utils@4.9.1(eslint@10.2.0)': dependencies: eslint: 10.2.0(jiti@2.6.1) eslint-visitor-keys: 3.4.3 @@ -12379,11 +12380,11 @@ snapshots: '@floating-ui/utils@0.2.11': {} - '@floating-ui/vue@1.1.11(vue@3.5.30(typescript@6.0.2))': + '@floating-ui/vue@1.1.11(vue@3.5.30)': dependencies: '@floating-ui/dom': 1.7.6 '@floating-ui/utils': 0.2.11 - vue-demi: 0.14.10(vue@3.5.30(typescript@6.0.2)) + vue-demi: 0.14.10(vue@3.5.30) transitivePeerDependencies: - '@vue/composition-api' - vue @@ -12435,7 +12436,7 @@ snapshots: '@iconify/types': 2.0.0 mlly: 1.8.2 - '@iconify/vue@5.0.0(vue@3.5.30(typescript@6.0.2))': + '@iconify/vue@5.0.0(vue@3.5.30)': dependencies: '@iconify/types': 2.0.0 vue: 3.5.30(typescript@6.0.2) @@ -12544,7 +12545,7 @@ snapshots: dependencies: '@swc/helpers': 0.5.21 - '@intlify/bundle-utils@11.0.7(vue-i18n@11.3.1(vue@3.5.30(typescript@6.0.2)))': + '@intlify/bundle-utils@11.0.7(vue-i18n@11.3.1)': dependencies: '@intlify/message-compiler': 11.3.1 '@intlify/shared': 11.3.0 @@ -12556,7 +12557,7 @@ snapshots: source-map-js: 1.2.1 yaml-eslint-parser: 1.3.2 optionalDependencies: - vue-i18n: 11.3.1(vue@3.5.30(typescript@6.0.2)) + vue-i18n: 11.3.1(vue@3.5.30) '@intlify/core-base@11.3.0': dependencies: @@ -12604,12 +12605,12 @@ snapshots: '@intlify/shared@11.3.1': {} - '@intlify/unplugin-vue-i18n@11.0.7(@vue/compiler-dom@3.5.32)(eslint@10.2.0(jiti@2.6.1))(rollup@4.60.1)(typescript@5.9.3)(vue-i18n@11.3.1(vue@3.5.30(typescript@6.0.2)))(vue@3.5.30(typescript@6.0.2))': + '@intlify/unplugin-vue-i18n@11.0.7(@vue/compiler-dom@3.5.32)(eslint@10.2.0)(rollup@4.60.1)(typescript@5.9.3)(vue-i18n@11.3.1)(vue@3.5.30)': dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.0(jiti@2.6.1)) - '@intlify/bundle-utils': 11.0.7(vue-i18n@11.3.1(vue@3.5.30(typescript@6.0.2))) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.0) + '@intlify/bundle-utils': 11.0.7(vue-i18n@11.3.1) '@intlify/shared': 11.3.0 - '@intlify/vue-i18n-extensions': 8.0.0(@intlify/shared@11.3.0)(@vue/compiler-dom@3.5.32)(vue-i18n@11.3.1(vue@3.5.30(typescript@6.0.2)))(vue@3.5.30(typescript@6.0.2)) + '@intlify/vue-i18n-extensions': 8.0.0(@intlify/shared@11.3.0)(@vue/compiler-dom@3.5.32)(vue-i18n@11.3.1)(vue@3.5.30) '@rollup/pluginutils': 5.3.0(rollup@4.60.1) '@typescript-eslint/scope-manager': 8.58.0 '@typescript-eslint/typescript-estree': 8.58.0(typescript@5.9.3) @@ -12620,7 +12621,7 @@ snapshots: unplugin: 2.3.11 vue: 3.5.30(typescript@6.0.2) optionalDependencies: - vue-i18n: 11.3.1(vue@3.5.30(typescript@6.0.2)) + vue-i18n: 11.3.1(vue@3.5.30) transitivePeerDependencies: - '@vue/compiler-dom' - eslint @@ -12630,14 +12631,14 @@ snapshots: '@intlify/utils@0.13.0': {} - '@intlify/vue-i18n-extensions@8.0.0(@intlify/shared@11.3.0)(@vue/compiler-dom@3.5.32)(vue-i18n@11.3.1(vue@3.5.30(typescript@6.0.2)))(vue@3.5.30(typescript@6.0.2))': + '@intlify/vue-i18n-extensions@8.0.0(@intlify/shared@11.3.0)(@vue/compiler-dom@3.5.32)(vue-i18n@11.3.1)(vue@3.5.30)': dependencies: '@babel/parser': 7.29.2 optionalDependencies: '@intlify/shared': 11.3.0 '@vue/compiler-dom': 3.5.32 vue: 3.5.30(typescript@6.0.2) - vue-i18n: 11.3.1(vue@3.5.30(typescript@6.0.2)) + vue-i18n: 11.3.1(vue@3.5.30) '@ioredis/commands@1.5.1': {} @@ -12909,9 +12910,9 @@ snapshots: '@npm/types@2.1.0': {} - '@nuxt/a11y@1.0.0-alpha.1(magicast@0.5.2)(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3))': + '@nuxt/a11y@1.0.0-alpha.1(magicast@0.5.2)(vite@8.0.0-beta.18)': dependencies: - '@nuxt/devtools-kit': 3.2.4(magicast@0.5.2)(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3)) + '@nuxt/devtools-kit': 3.2.4(magicast@0.5.2)(vite@8.0.0-beta.18) '@nuxt/kit': 4.4.2(magicast@0.5.2) axe-core: 4.11.1 sirv: 3.0.2 @@ -12957,7 +12958,7 @@ snapshots: - magicast - supports-color - '@nuxt/content@3.12.0(better-sqlite3@12.8.0)(magicast@0.5.2)(valibot@1.3.0(typescript@6.0.2))': + '@nuxt/content@3.12.0(better-sqlite3@12.8.0)(magicast@0.5.2)(valibot@1.3.0)': dependencies: '@nuxt/kit': 4.4.2(magicast@0.5.2) '@nuxtjs/mdc': 0.20.2(magicast@0.5.2) @@ -13019,7 +13020,7 @@ snapshots: '@nuxt/devalue@2.0.2': {} - '@nuxt/devtools-kit@2.7.0(magicast@0.5.2)(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3))': + '@nuxt/devtools-kit@2.7.0(magicast@0.5.2)(vite@8.0.0-beta.18)': dependencies: '@nuxt/kit': 3.21.2(magicast@0.5.2) execa: 8.0.1 @@ -13027,7 +13028,7 @@ snapshots: transitivePeerDependencies: - magicast - '@nuxt/devtools-kit@3.2.4(magicast@0.5.2)(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3))': + '@nuxt/devtools-kit@3.2.4(magicast@0.5.2)(vite@8.0.0-beta.18)': dependencies: '@nuxt/kit': 4.4.2(magicast@0.5.2) execa: 8.0.1 @@ -13046,12 +13047,12 @@ snapshots: pkg-types: 2.3.0 semver: 7.7.4 - '@nuxt/devtools@3.2.4(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3))(vue@3.5.30(typescript@6.0.2))': + '@nuxt/devtools@3.2.4(vite@8.0.0-beta.18)(vue@3.5.30)': dependencies: - '@nuxt/devtools-kit': 3.2.4(magicast@0.5.2)(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3)) + '@nuxt/devtools-kit': 3.2.4(magicast@0.5.2)(vite@8.0.0-beta.18) '@nuxt/devtools-wizard': 3.2.4 '@nuxt/kit': 4.4.2(magicast@0.5.2) - '@vue/devtools-core': 8.1.1(vue@3.5.30(typescript@6.0.2)) + '@vue/devtools-core': 8.1.1(vue@3.5.30) '@vue/devtools-kit': 8.1.1 birpc: 4.0.0 consola: 3.4.2 @@ -13077,8 +13078,8 @@ snapshots: structured-clone-es: 2.0.0 tinyglobby: 0.2.15 vite: 8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3) - vite-plugin-inspect: 11.3.3(@nuxt/kit@4.4.2(magicast@0.5.2))(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3)) - vite-plugin-vue-tracer: 1.3.0(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3))(vue@3.5.30(typescript@6.0.2)) + vite-plugin-inspect: 11.3.3(@nuxt/kit@4.4.2)(vite@8.0.0-beta.18) + vite-plugin-vue-tracer: 1.3.0(vite@8.0.0-beta.18)(vue@3.5.30) which: 6.0.1 ws: 8.20.0 transitivePeerDependencies: @@ -13087,13 +13088,13 @@ snapshots: - utf-8-validate - vue - '@nuxt/fonts@0.14.0(@upstash/redis@1.37.0)(db0@0.3.4(better-sqlite3@12.8.0))(ioredis@5.10.1)(magicast@0.5.2)(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3))': + '@nuxt/fonts@0.14.0(@upstash/redis@1.37.0)(db0@0.3.4)(ioredis@5.10.1)(magicast@0.5.2)(vite@8.0.0-beta.18)': dependencies: - '@nuxt/devtools-kit': 3.2.4(magicast@0.5.2)(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3)) + '@nuxt/devtools-kit': 3.2.4(magicast@0.5.2)(vite@8.0.0-beta.18) '@nuxt/kit': 4.4.2(magicast@0.5.2) consola: 3.4.2 defu: 6.1.4 - fontless: 0.2.1(@upstash/redis@1.37.0)(db0@0.3.4(better-sqlite3@12.8.0))(ioredis@5.10.1)(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3)) + fontless: 0.2.1(@upstash/redis@1.37.0)(db0@0.3.4)(ioredis@5.10.1)(vite@8.0.0-beta.18) h3: 1.15.8 magic-regexp: 0.10.0 ofetch: 1.5.1 @@ -13103,7 +13104,7 @@ snapshots: ufo: 1.6.3 unifont: 0.7.4 unplugin: 3.0.0 - unstorage: 1.17.5(@upstash/redis@1.37.0)(db0@0.3.4(better-sqlite3@12.8.0))(ioredis@5.10.1) + unstorage: 1.17.5(@upstash/redis@1.37.0)(db0@0.3.4)(ioredis@5.10.1) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -13127,13 +13128,13 @@ snapshots: - uploadthing - vite - '@nuxt/icon@2.2.1(magicast@0.5.2)(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3))(vue@3.5.30(typescript@6.0.2))': + '@nuxt/icon@2.2.1(magicast@0.5.2)(vite@8.0.0-beta.18)(vue@3.5.30)': dependencies: '@iconify/collections': 1.0.669 '@iconify/types': 2.0.0 '@iconify/utils': 3.1.0 - '@iconify/vue': 5.0.0(vue@3.5.30(typescript@6.0.2)) - '@nuxt/devtools-kit': 3.2.4(magicast@0.5.2)(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3)) + '@iconify/vue': 5.0.0(vue@3.5.30) + '@nuxt/devtools-kit': 3.2.4(magicast@0.5.2)(vite@8.0.0-beta.18) '@nuxt/kit': 4.4.2(magicast@0.5.2) consola: 3.4.2 local-pkg: 1.1.2 @@ -13148,7 +13149,7 @@ snapshots: - vite - vue - '@nuxt/image@2.0.0(@upstash/redis@1.37.0)(db0@0.3.4(better-sqlite3@12.8.0))(ioredis@5.10.1)(magicast@0.5.2)(srvx@0.11.15)': + '@nuxt/image@2.0.0(@upstash/redis@1.37.0)(db0@0.3.4)(ioredis@5.10.1)(magicast@0.5.2)(srvx@0.11.15)': dependencies: '@nuxt/kit': 4.4.2(magicast@0.5.2) consola: 3.4.2 @@ -13161,7 +13162,7 @@ snapshots: std-env: 3.10.0 ufo: 1.6.3 optionalDependencies: - ipx: 3.1.1(@upstash/redis@1.37.0)(db0@0.3.4(better-sqlite3@12.8.0))(ioredis@5.10.1)(srvx@0.11.15) + ipx: 3.1.1(@upstash/redis@1.37.0)(db0@0.3.4)(ioredis@5.10.1)(srvx@0.11.15) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -13261,11 +13262,11 @@ snapshots: transitivePeerDependencies: - magicast - '@nuxt/nitro-server@4.3.1(@upstash/redis@1.37.0)(better-sqlite3@12.8.0)(db0@0.3.4(better-sqlite3@12.8.0))(ioredis@5.10.1)(magicast@0.5.2)(nuxt@4.3.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@parcel/watcher@2.5.6)(@types/node@24.12.0)(@upstash/redis@1.37.0)(@vue/compiler-sfc@3.5.32)(better-sqlite3@12.8.0)(cac@6.7.14)(db0@0.3.4(better-sqlite3@12.8.0))(eslint@10.2.0(jiti@2.6.1))(ioredis@5.10.1)(magicast@0.5.2)(optionator@0.9.4)(oxlint@1.55.0(oxlint-tsgolint@0.17.0))(rolldown@1.0.0-rc.12(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2))(rollup@4.60.1)(srvx@0.11.15)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3))(vue-tsc@3.2.6(typescript@6.0.2))(yaml@2.8.3))(rolldown@1.0.0-rc.12(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2))(srvx@0.11.15)(typescript@6.0.2)': + '@nuxt/nitro-server@4.3.1(@upstash/redis@1.37.0)(better-sqlite3@12.8.0)(db0@0.3.4)(ioredis@5.10.1)(magicast@0.5.2)(nuxt@4.3.1)(rolldown@1.0.0-rc.12)(srvx@0.11.15)(typescript@6.0.2)': dependencies: '@nuxt/devalue': 2.0.2 '@nuxt/kit': 4.3.1(magicast@0.5.2) - '@unhead/vue': 2.1.13(vue@3.5.30(typescript@6.0.2)) + '@unhead/vue': 2.1.13(vue@3.5.30) '@vue/shared': 3.5.32 consola: 3.4.2 defu: 6.1.4 @@ -13278,8 +13279,8 @@ snapshots: impound: 1.1.5 klona: 2.0.6 mocked-exports: 0.1.1 - nitropack: 2.13.3(@upstash/redis@1.37.0)(better-sqlite3@12.8.0)(rolldown@1.0.0-rc.12(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2))(srvx@0.11.15) - nuxt: 4.3.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@parcel/watcher@2.5.6)(@types/node@24.12.0)(@upstash/redis@1.37.0)(@vue/compiler-sfc@3.5.32)(better-sqlite3@12.8.0)(cac@6.7.14)(db0@0.3.4(better-sqlite3@12.8.0))(eslint@10.2.0(jiti@2.6.1))(ioredis@5.10.1)(magicast@0.5.2)(optionator@0.9.4)(oxlint@1.55.0(oxlint-tsgolint@0.17.0))(rolldown@1.0.0-rc.12(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2))(rollup@4.60.1)(srvx@0.11.15)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3))(vue-tsc@3.2.6(typescript@6.0.2))(yaml@2.8.3) + nitropack: 2.13.3(@upstash/redis@1.37.0)(better-sqlite3@12.8.0)(rolldown@1.0.0-rc.12)(srvx@0.11.15) + nuxt: 4.3.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@parcel/watcher@2.5.6)(@types/node@24.12.0)(@upstash/redis@1.37.0)(@vue/compiler-sfc@3.5.32)(better-sqlite3@12.8.0)(cac@6.7.14)(db0@0.3.4)(eslint@10.2.0)(ioredis@5.10.1)(magicast@0.5.2)(optionator@0.9.4)(oxlint@1.55.0)(rolldown@1.0.0-rc.12)(rollup@4.60.1)(srvx@0.11.15)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18)(vue-tsc@3.2.6)(yaml@2.8.3) ohash: 2.0.11 pathe: 2.0.3 pkg-types: 2.3.0 @@ -13287,7 +13288,7 @@ snapshots: std-env: 3.10.0 ufo: 1.6.3 unctx: 2.5.0 - unstorage: 1.17.5(@upstash/redis@1.37.0)(db0@0.3.4(better-sqlite3@12.8.0))(ioredis@5.10.1) + unstorage: 1.17.5(@upstash/redis@1.37.0)(db0@0.3.4)(ioredis@5.10.1) vue: 3.5.30(typescript@6.0.2) vue-bundle-renderer: 2.2.0 vue-devtools-stub: 0.1.0 @@ -13352,11 +13353,11 @@ snapshots: pkg-types: 2.3.0 std-env: 4.0.0 - '@nuxt/scripts@0.13.2(@unhead/vue@2.1.13(vue@3.5.30(typescript@6.0.2)))(@upstash/redis@1.37.0)(db0@0.3.4(better-sqlite3@12.8.0))(ioredis@5.10.1)(magicast@0.5.2)(typescript@6.0.2)(vue@3.5.30(typescript@6.0.2))': + '@nuxt/scripts@0.13.2(@unhead/vue@2.1.13)(@upstash/redis@1.37.0)(db0@0.3.4)(ioredis@5.10.1)(magicast@0.5.2)(typescript@6.0.2)(vue@3.5.30)': dependencies: '@nuxt/kit': 4.4.2(magicast@0.5.2) - '@unhead/vue': 2.1.13(vue@3.5.30(typescript@6.0.2)) - '@vueuse/core': 14.2.1(vue@3.5.30(typescript@6.0.2)) + '@unhead/vue': 2.1.13(vue@3.5.30) + '@vueuse/core': 14.2.1(vue@3.5.30) consola: 3.4.2 defu: 6.1.4 estree-walker: 3.0.3 @@ -13370,7 +13371,7 @@ snapshots: std-env: 3.10.0 ufo: 1.6.3 unplugin: 2.3.11 - unstorage: 1.17.5(@upstash/redis@1.37.0)(db0@0.3.4(better-sqlite3@12.8.0))(ioredis@5.10.1) + unstorage: 1.17.5(@upstash/redis@1.37.0)(db0@0.3.4)(ioredis@5.10.1) valibot: 1.3.0(typescript@6.0.2) transitivePeerDependencies: - '@azure/app-configuration' @@ -13396,7 +13397,7 @@ snapshots: - uploadthing - vue - '@nuxt/telemetry@2.8.0(@nuxt/kit@4.3.1(magicast@0.5.2))': + '@nuxt/telemetry@2.8.0(@nuxt/kit@4.3.1)': dependencies: '@nuxt/kit': 4.3.1(magicast@0.5.2) citty: 0.2.2 @@ -13405,10 +13406,10 @@ snapshots: rc9: 3.0.1 std-env: 4.0.0 - '@nuxt/test-utils@4.0.0(@playwright/test@1.58.2)(@voidzero-dev/vite-plus-test@0.1.12(@opentelemetry/api@1.9.0)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3))(yaml@2.8.3))(@vue/test-utils@2.4.6)(crossws@0.4.4(srvx@0.11.15))(magicast@0.5.2)(playwright-core@1.59.1)(typescript@6.0.2)(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3))': + '@nuxt/test-utils@4.0.0(@playwright/test@1.58.2)(@voidzero-dev/vite-plus-test@0.1.12)(@vue/test-utils@2.4.6)(crossws@0.4.4)(magicast@0.5.2)(playwright-core@1.59.1)(typescript@6.0.2)(vite@8.0.0-beta.18)': dependencies: '@clack/prompts': 1.0.0 - '@nuxt/devtools-kit': 2.7.0(magicast@0.5.2)(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3)) + '@nuxt/devtools-kit': 2.7.0(magicast@0.5.2)(vite@8.0.0-beta.18) '@nuxt/kit': 3.21.2(magicast@0.5.2) c12: 3.3.4(magicast@0.5.2) consola: 3.4.2 @@ -13419,7 +13420,7 @@ snapshots: fake-indexeddb: 6.2.5 get-port-please: 3.2.0 h3: 1.15.8 - h3-next: h3@2.0.1-rc.11(crossws@0.4.4(srvx@0.11.15)) + h3-next: h3@2.0.1-rc.11(crossws@0.4.4) local-pkg: 1.1.2 magic-string: 0.30.21 node-fetch-native: 1.6.7 @@ -13434,56 +13435,56 @@ snapshots: tinyexec: 1.0.4 ufo: 1.6.3 unplugin: 3.0.0 - vitest-environment-nuxt: 1.0.1(@playwright/test@1.58.2)(@voidzero-dev/vite-plus-test@0.1.12(@opentelemetry/api@1.9.0)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3))(yaml@2.8.3))(@vue/test-utils@2.4.6)(crossws@0.4.4(srvx@0.11.15))(magicast@0.5.2)(playwright-core@1.59.1)(typescript@6.0.2)(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3)) + vitest-environment-nuxt: 1.0.1(@playwright/test@1.58.2)(@voidzero-dev/vite-plus-test@0.1.12)(@vue/test-utils@2.4.6)(crossws@0.4.4)(magicast@0.5.2)(playwright-core@1.59.1)(typescript@6.0.2)(vite@8.0.0-beta.18) vue: 3.5.30(typescript@6.0.2) optionalDependencies: '@playwright/test': 1.58.2 '@vue/test-utils': 2.4.6 playwright-core: 1.59.1 - vitest: '@voidzero-dev/vite-plus-test@0.1.12(@opentelemetry/api@1.9.0)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3))(yaml@2.8.3)' + vitest: '@voidzero-dev/vite-plus-test@0.1.12(@opentelemetry/api@1.9.0)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18)(yaml@2.8.3)' transitivePeerDependencies: - crossws - magicast - typescript - vite - '@nuxt/ui@4.5.1(@nuxt/content@3.12.0(better-sqlite3@12.8.0)(magicast@0.5.2)(valibot@1.3.0(typescript@6.0.2)))(@tiptap/extensions@3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))(@tiptap/pm@3.22.2))(@tiptap/y-tiptap@3.0.2(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.8)(y-protocols@1.0.7(yjs@13.6.30))(yjs@13.6.30))(@upstash/redis@1.37.0)(db0@0.3.4(better-sqlite3@12.8.0))(embla-carousel@8.6.0)(focus-trap@8.0.1)(ioredis@5.10.1)(magicast@0.5.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(tailwindcss@4.2.2)(typescript@6.0.2)(valibot@1.3.0(typescript@6.0.2))(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3))(vue-router@4.6.4(vue@3.5.30(typescript@6.0.2)))(vue@3.5.30(typescript@6.0.2))(yjs@13.6.30)(zod@4.3.6)': + '@nuxt/ui@4.5.1(@nuxt/content@3.12.0)(@tiptap/extensions@3.22.2)(@tiptap/y-tiptap@3.0.2)(@upstash/redis@1.37.0)(db0@0.3.4)(embla-carousel@8.6.0)(focus-trap@8.0.1)(ioredis@5.10.1)(magicast@0.5.2)(react-dom@19.2.4)(react@19.2.4)(tailwindcss@4.2.2)(typescript@6.0.2)(valibot@1.3.0)(vite@8.0.0-beta.18)(vue-router@4.6.4)(vue@3.5.30)(yjs@13.6.30)(zod@4.3.6)': dependencies: '@floating-ui/dom': 1.7.6 - '@iconify/vue': 5.0.0(vue@3.5.30(typescript@6.0.2)) + '@iconify/vue': 5.0.0(vue@3.5.30) '@internationalized/date': 3.12.0 '@internationalized/number': 3.6.5 - '@nuxt/fonts': 0.14.0(@upstash/redis@1.37.0)(db0@0.3.4(better-sqlite3@12.8.0))(ioredis@5.10.1)(magicast@0.5.2)(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3)) - '@nuxt/icon': 2.2.1(magicast@0.5.2)(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3))(vue@3.5.30(typescript@6.0.2)) + '@nuxt/fonts': 0.14.0(@upstash/redis@1.37.0)(db0@0.3.4)(ioredis@5.10.1)(magicast@0.5.2)(vite@8.0.0-beta.18) + '@nuxt/icon': 2.2.1(magicast@0.5.2)(vite@8.0.0-beta.18)(vue@3.5.30) '@nuxt/kit': 4.4.2(magicast@0.5.2) '@nuxt/schema': 4.4.2 '@nuxtjs/color-mode': 3.5.2(magicast@0.5.2) '@standard-schema/spec': 1.1.0 '@tailwindcss/postcss': 4.2.2 - '@tailwindcss/vite': 4.2.2(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3)) - '@tanstack/vue-table': 8.21.3(vue@3.5.30(typescript@6.0.2)) - '@tanstack/vue-virtual': 3.13.23(vue@3.5.30(typescript@6.0.2)) + '@tailwindcss/vite': 4.2.2(vite@8.0.0-beta.18) + '@tanstack/vue-table': 8.21.3(vue@3.5.30) + '@tanstack/vue-virtual': 3.13.23(vue@3.5.30) '@tiptap/core': 3.22.2(@tiptap/pm@3.22.2) - '@tiptap/extension-bubble-menu': 3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))(@tiptap/pm@3.22.2) - '@tiptap/extension-code': 3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2)) - '@tiptap/extension-collaboration': 3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))(@tiptap/pm@3.22.2)(@tiptap/y-tiptap@3.0.2(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.8)(y-protocols@1.0.7(yjs@13.6.30))(yjs@13.6.30))(yjs@13.6.30) - '@tiptap/extension-drag-handle': 3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))(@tiptap/extension-collaboration@3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))(@tiptap/pm@3.22.2)(@tiptap/y-tiptap@3.0.2(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.8)(y-protocols@1.0.7(yjs@13.6.30))(yjs@13.6.30))(yjs@13.6.30))(@tiptap/extension-node-range@3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))(@tiptap/pm@3.22.2))(@tiptap/pm@3.22.2)(@tiptap/y-tiptap@3.0.2(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.8)(y-protocols@1.0.7(yjs@13.6.30))(yjs@13.6.30)) - '@tiptap/extension-drag-handle-vue-3': 3.22.2(@tiptap/extension-drag-handle@3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))(@tiptap/extension-collaboration@3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))(@tiptap/pm@3.22.2)(@tiptap/y-tiptap@3.0.2(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.8)(y-protocols@1.0.7(yjs@13.6.30))(yjs@13.6.30))(yjs@13.6.30))(@tiptap/extension-node-range@3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))(@tiptap/pm@3.22.2))(@tiptap/pm@3.22.2)(@tiptap/y-tiptap@3.0.2(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.8)(y-protocols@1.0.7(yjs@13.6.30))(yjs@13.6.30)))(@tiptap/pm@3.22.2)(@tiptap/vue-3@3.22.2(@floating-ui/dom@1.7.6)(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))(@tiptap/pm@3.22.2)(vue@3.5.30(typescript@6.0.2)))(vue@3.5.30(typescript@6.0.2)) - '@tiptap/extension-floating-menu': 3.22.2(@floating-ui/dom@1.7.6)(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))(@tiptap/pm@3.22.2) - '@tiptap/extension-horizontal-rule': 3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))(@tiptap/pm@3.22.2) - '@tiptap/extension-image': 3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2)) - '@tiptap/extension-mention': 3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))(@tiptap/pm@3.22.2)(@tiptap/suggestion@3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))(@tiptap/pm@3.22.2)) - '@tiptap/extension-node-range': 3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))(@tiptap/pm@3.22.2) - '@tiptap/extension-placeholder': 3.22.2(@tiptap/extensions@3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))(@tiptap/pm@3.22.2)) - '@tiptap/markdown': 3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))(@tiptap/pm@3.22.2) + '@tiptap/extension-bubble-menu': 3.22.2(@tiptap/core@3.22.2)(@tiptap/pm@3.22.2) + '@tiptap/extension-code': 3.22.2(@tiptap/core@3.22.2) + '@tiptap/extension-collaboration': 3.22.2(@tiptap/core@3.22.2)(@tiptap/pm@3.22.2)(@tiptap/y-tiptap@3.0.2)(yjs@13.6.30) + '@tiptap/extension-drag-handle': 3.22.2(@tiptap/core@3.22.2)(@tiptap/extension-collaboration@3.22.2)(@tiptap/extension-node-range@3.22.2)(@tiptap/pm@3.22.2)(@tiptap/y-tiptap@3.0.2) + '@tiptap/extension-drag-handle-vue-3': 3.22.2(@tiptap/extension-drag-handle@3.22.2)(@tiptap/pm@3.22.2)(@tiptap/vue-3@3.22.2)(vue@3.5.30) + '@tiptap/extension-floating-menu': 3.22.2(@floating-ui/dom@1.7.6)(@tiptap/core@3.22.2)(@tiptap/pm@3.22.2) + '@tiptap/extension-horizontal-rule': 3.22.2(@tiptap/core@3.22.2)(@tiptap/pm@3.22.2) + '@tiptap/extension-image': 3.22.2(@tiptap/core@3.22.2) + '@tiptap/extension-mention': 3.22.2(@tiptap/core@3.22.2)(@tiptap/pm@3.22.2)(@tiptap/suggestion@3.22.2) + '@tiptap/extension-node-range': 3.22.2(@tiptap/core@3.22.2)(@tiptap/pm@3.22.2) + '@tiptap/extension-placeholder': 3.22.2(@tiptap/extensions@3.22.2) + '@tiptap/markdown': 3.22.2(@tiptap/core@3.22.2)(@tiptap/pm@3.22.2) '@tiptap/pm': 3.22.2 '@tiptap/starter-kit': 3.22.2 - '@tiptap/suggestion': 3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))(@tiptap/pm@3.22.2) - '@tiptap/vue-3': 3.22.2(@floating-ui/dom@1.7.6)(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))(@tiptap/pm@3.22.2)(vue@3.5.30(typescript@6.0.2)) - '@unhead/vue': 2.1.13(vue@3.5.30(typescript@6.0.2)) - '@vueuse/core': 14.2.1(vue@3.5.30(typescript@6.0.2)) - '@vueuse/integrations': 14.2.1(focus-trap@8.0.1)(fuse.js@7.3.0)(vue@3.5.30(typescript@6.0.2)) - '@vueuse/shared': 14.2.1(vue@3.5.30(typescript@6.0.2)) + '@tiptap/suggestion': 3.22.2(@tiptap/core@3.22.2)(@tiptap/pm@3.22.2) + '@tiptap/vue-3': 3.22.2(@floating-ui/dom@1.7.6)(@tiptap/core@3.22.2)(@tiptap/pm@3.22.2)(vue@3.5.30) + '@unhead/vue': 2.1.13(vue@3.5.30) + '@vueuse/core': 14.2.1(vue@3.5.30) + '@vueuse/integrations': 14.2.1(focus-trap@8.0.1)(fuse.js@7.3.0)(vue@3.5.30) + '@vueuse/shared': 14.2.1(vue@3.5.30) colortranslator: 5.0.0 consola: 3.4.2 defu: 6.1.4 @@ -13492,17 +13493,17 @@ snapshots: embla-carousel-autoplay: 8.6.0(embla-carousel@8.6.0) embla-carousel-class-names: 8.6.0(embla-carousel@8.6.0) embla-carousel-fade: 8.6.0(embla-carousel@8.6.0) - embla-carousel-vue: 8.6.0(vue@3.5.30(typescript@6.0.2)) + embla-carousel-vue: 8.6.0(vue@3.5.30) embla-carousel-wheel-gestures: 8.1.0(embla-carousel@8.6.0) fuse.js: 7.3.0 hookable: 5.5.3 knitwork: 1.3.0 magic-string: 0.30.21 mlly: 1.8.2 - motion-v: 1.10.3(@vueuse/core@14.2.1(vue@3.5.30(typescript@6.0.2)))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(vue@3.5.30(typescript@6.0.2)) + motion-v: 1.10.3(@vueuse/core@14.2.1)(react-dom@19.2.4)(react@19.2.4)(vue@3.5.30) ohash: 2.0.11 pathe: 2.0.3 - reka-ui: 2.8.2(vue@3.5.30(typescript@6.0.2)) + reka-ui: 2.8.2(vue@3.5.30) scule: 1.3.0 tailwind-merge: 3.5.0 tailwind-variants: 3.2.2(tailwind-merge@3.5.0)(tailwindcss@4.2.2) @@ -13511,14 +13512,14 @@ snapshots: typescript: 6.0.2 ufo: 1.6.3 unplugin: 3.0.0 - unplugin-auto-import: 21.0.0(@nuxt/kit@4.4.2(magicast@0.5.2))(@vueuse/core@14.2.1(vue@3.5.30(typescript@6.0.2))) - unplugin-vue-components: 31.1.0(@nuxt/kit@4.4.2(magicast@0.5.2))(vue@3.5.30(typescript@6.0.2)) - vaul-vue: 0.4.1(reka-ui@2.8.2(vue@3.5.30(typescript@6.0.2)))(vue@3.5.30(typescript@6.0.2)) + unplugin-auto-import: 21.0.0(@nuxt/kit@4.4.2)(@vueuse/core@14.2.1) + unplugin-vue-components: 31.1.0(@nuxt/kit@4.4.2)(vue@3.5.30) + vaul-vue: 0.4.1(reka-ui@2.8.2)(vue@3.5.30) vue-component-type-helpers: 3.2.6 optionalDependencies: - '@nuxt/content': 3.12.0(better-sqlite3@12.8.0)(magicast@0.5.2)(valibot@1.3.0(typescript@6.0.2)) + '@nuxt/content': 3.12.0(better-sqlite3@12.8.0)(magicast@0.5.2)(valibot@1.3.0) valibot: 1.3.0(typescript@6.0.2) - vue-router: 4.6.4(vue@3.5.30(typescript@6.0.2)) + vue-router: 4.6.4(vue@3.5.30) zod: 4.3.6 transitivePeerDependencies: - '@azure/app-configuration' @@ -13562,12 +13563,12 @@ snapshots: - vue - yjs - '@nuxt/vite-builder@3.21.2(58e1d784e8656df37e307b65d1c9cec7)': + '@nuxt/vite-builder@3.21.2(@types/node@24.12.0)(esbuild@0.27.7)(eslint@10.2.0)(magicast@0.5.2)(nuxt@4.3.1)(optionator@0.9.4)(oxlint@1.55.0)(rolldown@1.0.0-rc.12)(rollup-plugin-visualizer@7.0.1)(rollup@4.60.1)(terser@5.46.1)(typescript@6.0.2)(vue-tsc@3.2.6)(vue@3.5.30)(yaml@2.8.3)': dependencies: '@nuxt/kit': 3.21.2(magicast@0.5.2) '@rollup/plugin-replace': 6.0.3(rollup@4.60.1) - '@vitejs/plugin-vue': 6.0.5(@voidzero-dev/vite-plus-core@0.1.12(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(yaml@2.8.3))(vue@3.5.30(typescript@6.0.2)) - '@vitejs/plugin-vue-jsx': 5.1.5(@voidzero-dev/vite-plus-core@0.1.12(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(yaml@2.8.3))(vue@3.5.30(typescript@6.0.2)) + '@vitejs/plugin-vue': 6.0.5(@voidzero-dev/vite-plus-core@0.1.12)(vue@3.5.30) + '@vitejs/plugin-vue-jsx': 5.1.5(@voidzero-dev/vite-plus-core@0.1.12)(vue@3.5.30) autoprefixer: 10.4.27(postcss@8.5.8) consola: 3.4.2 cssnano: 7.1.4(postcss@8.5.8) @@ -13581,7 +13582,7 @@ snapshots: magic-string: 0.30.21 mlly: 1.8.2 mocked-exports: 0.1.1 - nuxt: 4.3.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@parcel/watcher@2.5.6)(@types/node@24.12.0)(@upstash/redis@1.37.0)(@vue/compiler-sfc@3.5.32)(better-sqlite3@12.8.0)(cac@6.7.14)(db0@0.3.4(better-sqlite3@12.8.0))(eslint@10.2.0(jiti@2.6.1))(ioredis@5.10.1)(magicast@0.5.2)(optionator@0.9.4)(oxlint@1.55.0(oxlint-tsgolint@0.17.0))(rolldown@1.0.0-rc.12(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2))(rollup@4.60.1)(srvx@0.11.15)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3))(vue-tsc@3.2.6(typescript@6.0.2))(yaml@2.8.3) + nuxt: 4.3.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@parcel/watcher@2.5.6)(@types/node@24.12.0)(@upstash/redis@1.37.0)(@vue/compiler-sfc@3.5.32)(better-sqlite3@12.8.0)(cac@6.7.14)(db0@0.3.4)(eslint@10.2.0)(ioredis@5.10.1)(magicast@0.5.2)(optionator@0.9.4)(oxlint@1.55.0)(rolldown@1.0.0-rc.12)(rollup@4.60.1)(srvx@0.11.15)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18)(vue-tsc@3.2.6)(yaml@2.8.3) nypm: 0.6.5 ohash: 2.0.11 pathe: 2.0.3 @@ -13594,12 +13595,12 @@ snapshots: unenv: 2.0.0-rc.24 vite: '@voidzero-dev/vite-plus-core@0.1.12(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(yaml@2.8.3)' vite-node: 5.3.0(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(yaml@2.8.3) - vite-plugin-checker: 0.12.0(@voidzero-dev/vite-plus-core@0.1.12(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(yaml@2.8.3))(eslint@10.2.0(jiti@2.6.1))(optionator@0.9.4)(oxlint@1.55.0(oxlint-tsgolint@0.17.0))(typescript@6.0.2)(vue-tsc@3.2.6(typescript@6.0.2)) + vite-plugin-checker: 0.12.0(@voidzero-dev/vite-plus-core@0.1.12)(eslint@10.2.0)(optionator@0.9.4)(oxlint@1.55.0)(typescript@6.0.2)(vue-tsc@3.2.6) vue: 3.5.30(typescript@6.0.2) vue-bundle-renderer: 2.2.0 optionalDependencies: rolldown: 1.0.0-rc.12(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) - rollup-plugin-visualizer: 7.0.1(rolldown@1.0.0-rc.12(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2))(rollup@4.60.1) + rollup-plugin-visualizer: 7.0.1(rolldown@1.0.0-rc.12)(rollup@4.60.1) transitivePeerDependencies: - '@arethetypeswrong/core' - '@biomejs/biome' @@ -13631,12 +13632,12 @@ snapshots: - vue-tsc - yaml - '@nuxt/vite-builder@4.3.1(@types/node@24.12.0)(eslint@10.2.0(jiti@2.6.1))(magicast@0.5.2)(nuxt@4.3.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@parcel/watcher@2.5.6)(@types/node@24.12.0)(@upstash/redis@1.37.0)(@vue/compiler-sfc@3.5.32)(better-sqlite3@12.8.0)(cac@6.7.14)(db0@0.3.4(better-sqlite3@12.8.0))(eslint@10.2.0(jiti@2.6.1))(ioredis@5.10.1)(magicast@0.5.2)(optionator@0.9.4)(oxlint@1.55.0(oxlint-tsgolint@0.17.0))(rolldown@1.0.0-rc.12(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2))(rollup@4.60.1)(srvx@0.11.15)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3))(vue-tsc@3.2.6(typescript@6.0.2))(yaml@2.8.3))(optionator@0.9.4)(oxlint@1.55.0(oxlint-tsgolint@0.17.0))(rolldown@1.0.0-rc.12(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2))(rollup@4.60.1)(terser@5.46.1)(typescript@6.0.2)(vue-tsc@3.2.6(typescript@6.0.2))(vue@3.5.30(typescript@6.0.2))(yaml@2.8.3)': + '@nuxt/vite-builder@4.3.1(@types/node@24.12.0)(eslint@10.2.0)(magicast@0.5.2)(nuxt@4.3.1)(optionator@0.9.4)(oxlint@1.55.0)(rolldown@1.0.0-rc.12)(rollup@4.60.1)(terser@5.46.1)(typescript@6.0.2)(vue-tsc@3.2.6)(vue@3.5.30)(yaml@2.8.3)': dependencies: '@nuxt/kit': 4.3.1(magicast@0.5.2) '@rollup/plugin-replace': 6.0.3(rollup@4.60.1) - '@vitejs/plugin-vue': 6.0.5(@voidzero-dev/vite-plus-core@0.1.12(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(yaml@2.8.3))(vue@3.5.30(typescript@6.0.2)) - '@vitejs/plugin-vue-jsx': 5.1.5(@voidzero-dev/vite-plus-core@0.1.12(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(yaml@2.8.3))(vue@3.5.30(typescript@6.0.2)) + '@vitejs/plugin-vue': 6.0.5(@voidzero-dev/vite-plus-core@0.1.12)(vue@3.5.30) + '@vitejs/plugin-vue-jsx': 5.1.5(@voidzero-dev/vite-plus-core@0.1.12)(vue@3.5.30) autoprefixer: 10.4.27(postcss@8.5.8) consola: 3.4.2 cssnano: 7.1.4(postcss@8.5.8) @@ -13650,18 +13651,18 @@ snapshots: magic-string: 0.30.21 mlly: 1.8.2 mocked-exports: 0.1.1 - nuxt: 4.3.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@parcel/watcher@2.5.6)(@types/node@24.12.0)(@upstash/redis@1.37.0)(@vue/compiler-sfc@3.5.32)(better-sqlite3@12.8.0)(cac@6.7.14)(db0@0.3.4(better-sqlite3@12.8.0))(eslint@10.2.0(jiti@2.6.1))(ioredis@5.10.1)(magicast@0.5.2)(optionator@0.9.4)(oxlint@1.55.0(oxlint-tsgolint@0.17.0))(rolldown@1.0.0-rc.12(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2))(rollup@4.60.1)(srvx@0.11.15)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3))(vue-tsc@3.2.6(typescript@6.0.2))(yaml@2.8.3) + nuxt: 4.3.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@parcel/watcher@2.5.6)(@types/node@24.12.0)(@upstash/redis@1.37.0)(@vue/compiler-sfc@3.5.32)(better-sqlite3@12.8.0)(cac@6.7.14)(db0@0.3.4)(eslint@10.2.0)(ioredis@5.10.1)(magicast@0.5.2)(optionator@0.9.4)(oxlint@1.55.0)(rolldown@1.0.0-rc.12)(rollup@4.60.1)(srvx@0.11.15)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18)(vue-tsc@3.2.6)(yaml@2.8.3) pathe: 2.0.3 pkg-types: 2.3.0 postcss: 8.5.8 - rollup-plugin-visualizer: 6.0.11(rolldown@1.0.0-rc.12(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2))(rollup@4.60.1) + rollup-plugin-visualizer: 6.0.11(rolldown@1.0.0-rc.12)(rollup@4.60.1) seroval: 1.5.2 std-env: 3.10.0 ufo: 1.6.3 unenv: 2.0.0-rc.24 vite: '@voidzero-dev/vite-plus-core@0.1.12(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(yaml@2.8.3)' vite-node: 5.3.0(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(yaml@2.8.3) - vite-plugin-checker: 0.12.0(@voidzero-dev/vite-plus-core@0.1.12(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(yaml@2.8.3))(eslint@10.2.0(jiti@2.6.1))(optionator@0.9.4)(oxlint@1.55.0(oxlint-tsgolint@0.17.0))(typescript@6.0.2)(vue-tsc@3.2.6(typescript@6.0.2)) + vite-plugin-checker: 0.12.0(@voidzero-dev/vite-plus-core@0.1.12)(eslint@10.2.0)(optionator@0.9.4)(oxlint@1.55.0)(typescript@6.0.2)(vue-tsc@3.2.6) vue: 3.5.30(typescript@6.0.2) vue-bundle-renderer: 2.2.0 optionalDependencies: @@ -13715,11 +13716,11 @@ snapshots: transitivePeerDependencies: - magicast - '@nuxtjs/html-validator@2.1.0(@voidzero-dev/vite-plus-test@0.1.12(@opentelemetry/api@1.9.0)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3))(yaml@2.8.3))(magicast@0.5.2)': + '@nuxtjs/html-validator@2.1.0(@voidzero-dev/vite-plus-test@0.1.12)(magicast@0.5.2)': dependencies: '@nuxt/kit': 3.21.2(magicast@0.5.2) consola: 3.4.2 - html-validate: 9.4.2(@voidzero-dev/vite-plus-test@0.1.12(@opentelemetry/api@1.9.0)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3))(yaml@2.8.3)) + html-validate: 9.4.2(@voidzero-dev/vite-plus-test@0.1.12) knitwork: 1.3.0 pathe: 2.0.3 prettier: 3.8.1 @@ -13731,12 +13732,12 @@ snapshots: - magicast - vitest - '@nuxtjs/i18n@10.2.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@upstash/redis@1.37.0)(@vue/compiler-dom@3.5.32)(db0@0.3.4(better-sqlite3@12.8.0))(eslint@10.2.0(jiti@2.6.1))(ioredis@5.10.1)(magicast@0.5.2)(rollup@4.60.1)(vue@3.5.30(typescript@6.0.2))': + '@nuxtjs/i18n@10.2.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@upstash/redis@1.37.0)(@vue/compiler-dom@3.5.32)(db0@0.3.4)(eslint@10.2.0)(ioredis@5.10.1)(magicast@0.5.2)(rollup@4.60.1)(vue@3.5.30)': dependencies: '@intlify/core': 11.3.1 '@intlify/h3': 0.7.4 '@intlify/shared': 11.3.0 - '@intlify/unplugin-vue-i18n': 11.0.7(@vue/compiler-dom@3.5.32)(eslint@10.2.0(jiti@2.6.1))(rollup@4.60.1)(typescript@5.9.3)(vue-i18n@11.3.1(vue@3.5.30(typescript@6.0.2)))(vue@3.5.30(typescript@6.0.2)) + '@intlify/unplugin-vue-i18n': 11.0.7(@vue/compiler-dom@3.5.32)(eslint@10.2.0)(rollup@4.60.1)(typescript@5.9.3)(vue-i18n@11.3.1)(vue@3.5.30) '@intlify/utils': 0.13.0 '@miyaneee/rollup-plugin-json5': 1.2.0(rollup@4.60.1) '@nuxt/kit': 4.4.2(magicast@0.5.2) @@ -13752,15 +13753,15 @@ snapshots: ohash: 2.0.11 oxc-parser: 0.95.0(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) oxc-transform: 0.95.0(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) - oxc-walker: 0.5.2(oxc-parser@0.95.0(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)) + oxc-walker: 0.5.2(oxc-parser@0.95.0) pathe: 2.0.3 typescript: 5.9.3 ufo: 1.6.3 unplugin: 2.3.11 - unplugin-vue-router: 0.16.2(@vue/compiler-sfc@3.5.32)(vue-router@4.6.4(vue@3.5.30(typescript@6.0.2)))(vue@3.5.30(typescript@6.0.2)) - unstorage: 1.17.5(@upstash/redis@1.37.0)(db0@0.3.4(better-sqlite3@12.8.0))(ioredis@5.10.1) - vue-i18n: 11.3.1(vue@3.5.30(typescript@6.0.2)) - vue-router: 4.6.4(vue@3.5.30(typescript@6.0.2)) + unplugin-vue-router: 0.16.2(@vue/compiler-sfc@3.5.32)(vue-router@4.6.4)(vue@3.5.30) + unstorage: 1.17.5(@upstash/redis@1.37.0)(db0@0.3.4)(ioredis@5.10.1) + vue-i18n: 11.3.1(vue@3.5.30) + vue-router: 4.6.4(vue@3.5.30) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -13856,15 +13857,15 @@ snapshots: - magicast - supports-color - '@nuxtjs/robots@5.7.1(magicast@0.5.2)(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3))(vue@3.5.30(typescript@6.0.2))(zod@4.3.6)': + '@nuxtjs/robots@5.7.1(magicast@0.5.2)(vite@8.0.0-beta.18)(vue@3.5.30)(zod@4.3.6)': dependencies: '@fingerprintjs/botd': 2.0.0 - '@nuxt/devtools-kit': 3.2.4(magicast@0.5.2)(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3)) + '@nuxt/devtools-kit': 3.2.4(magicast@0.5.2)(vite@8.0.0-beta.18) '@nuxt/kit': 4.4.2(magicast@0.5.2) consola: 3.4.2 defu: 6.1.4 h3: 1.15.8 - nuxt-site-config: 3.2.21(magicast@0.5.2)(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3))(vue@3.5.30(typescript@6.0.2)) + nuxt-site-config: 3.2.21(magicast@0.5.2)(vite@8.0.0-beta.18)(vue@3.5.30) pathe: 2.0.3 pkg-types: 2.3.0 sirv: 3.0.2 @@ -15121,25 +15122,25 @@ snapshots: '@standard-schema/spec@1.1.0': {} - '@storybook-vue/nuxt@9.0.1(b87c59ddc2e1d42ad367999e1522bdb7)': + '@storybook-vue/nuxt@9.0.1(@types/node@24.12.0)(esbuild@0.27.7)(eslint@10.2.0)(magicast@0.5.2)(nuxt@4.3.1)(optionator@0.9.4)(oxlint@1.55.0)(rolldown@1.0.0-rc.12)(rollup-plugin-visualizer@7.0.1)(rollup@4.60.1)(storybook@10.3.4)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18)(vue-tsc@3.2.6)(vue@3.5.30)(yaml@2.8.3)': dependencies: '@nuxt/kit': 3.21.2(magicast@0.5.2) '@nuxt/schema': 3.21.2 - '@nuxt/vite-builder': 3.21.2(58e1d784e8656df37e307b65d1c9cec7) + '@nuxt/vite-builder': 3.21.2(@types/node@24.12.0)(esbuild@0.27.7)(eslint@10.2.0)(magicast@0.5.2)(nuxt@4.3.1)(optionator@0.9.4)(oxlint@1.55.0)(rolldown@1.0.0-rc.12)(rollup-plugin-visualizer@7.0.1)(rollup@4.60.1)(terser@5.46.1)(typescript@6.0.2)(vue-tsc@3.2.6)(vue@3.5.30)(yaml@2.8.3) '@rollup/plugin-replace': 6.0.3(rollup@4.60.1) - '@storybook/builder-vite': 9.1.2(storybook@10.3.4(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3)) - '@storybook/vue3': 9.1.2(storybook@10.3.4(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(vue@3.5.30(typescript@6.0.2)) - '@storybook/vue3-vite': 9.1.2(storybook@10.3.4(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3))(vue@3.5.30(typescript@6.0.2)) + '@storybook/builder-vite': 9.1.2(storybook@10.3.4)(vite@8.0.0-beta.18) + '@storybook/vue3': 9.1.2(storybook@10.3.4)(vue@3.5.30) + '@storybook/vue3-vite': 9.1.2(storybook@10.3.4)(vite@8.0.0-beta.18)(vue@3.5.30) json-stable-stringify: 1.3.0 mlly: 1.8.2 - nuxt: 4.3.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@parcel/watcher@2.5.6)(@types/node@24.12.0)(@upstash/redis@1.37.0)(@vue/compiler-sfc@3.5.32)(better-sqlite3@12.8.0)(cac@6.7.14)(db0@0.3.4(better-sqlite3@12.8.0))(eslint@10.2.0(jiti@2.6.1))(ioredis@5.10.1)(magicast@0.5.2)(optionator@0.9.4)(oxlint@1.55.0(oxlint-tsgolint@0.17.0))(rolldown@1.0.0-rc.12(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2))(rollup@4.60.1)(srvx@0.11.15)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3))(vue-tsc@3.2.6(typescript@6.0.2))(yaml@2.8.3) + nuxt: 4.3.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@parcel/watcher@2.5.6)(@types/node@24.12.0)(@upstash/redis@1.37.0)(@vue/compiler-sfc@3.5.32)(better-sqlite3@12.8.0)(cac@6.7.14)(db0@0.3.4)(eslint@10.2.0)(ioredis@5.10.1)(magicast@0.5.2)(optionator@0.9.4)(oxlint@1.55.0)(rolldown@1.0.0-rc.12)(rollup@4.60.1)(srvx@0.11.15)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18)(vue-tsc@3.2.6)(yaml@2.8.3) ofetch: 1.5.1 pathe: 2.0.3 - storybook: 10.3.4(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + storybook: 10.3.4(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4)(react@19.2.4) unctx: 2.5.0 vite: 8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3) vue: 3.5.30(typescript@6.0.2) - vue-router: 4.6.4(vue@3.5.30(typescript@6.0.2)) + vue-router: 4.6.4(vue@3.5.30) transitivePeerDependencies: - '@arethetypeswrong/core' - '@biomejs/biome' @@ -15173,21 +15174,21 @@ snapshots: - vue-tsc - yaml - '@storybook/addon-a11y@10.3.4(storybook@10.3.4(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))': + '@storybook/addon-a11y@10.3.4(storybook@10.3.4)': dependencies: '@storybook/global': 5.0.0 axe-core: 4.11.1 - storybook: 10.3.4(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + storybook: 10.3.4(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4)(react@19.2.4) - '@storybook/addon-docs@10.3.4(@types/react@19.2.14)(esbuild@0.27.7)(rollup@4.60.1)(storybook@10.3.4(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3))(webpack@5.105.4(esbuild@0.27.7))': + '@storybook/addon-docs@10.3.4(@types/react@19.2.14)(esbuild@0.27.7)(rollup@4.60.1)(storybook@10.3.4)(vite@8.0.0-beta.18)(webpack@5.105.4)': dependencies: '@mdx-js/react': 3.1.1(@types/react@19.2.14)(react@19.2.4) - '@storybook/csf-plugin': 10.3.4(esbuild@0.27.7)(rollup@4.60.1)(storybook@10.3.4(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3))(webpack@5.105.4(esbuild@0.27.7)) - '@storybook/icons': 2.0.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@storybook/react-dom-shim': 10.3.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(storybook@10.3.4(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)) + '@storybook/csf-plugin': 10.3.4(esbuild@0.27.7)(rollup@4.60.1)(storybook@10.3.4)(vite@8.0.0-beta.18)(webpack@5.105.4) + '@storybook/icons': 2.0.1(react-dom@19.2.4)(react@19.2.4) + '@storybook/react-dom-shim': 10.3.4(react-dom@19.2.4)(react@19.2.4)(storybook@10.3.4) react: 19.2.4 react-dom: 19.2.4(react@19.2.4) - storybook: 10.3.4(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + storybook: 10.3.4(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4)(react@19.2.4) ts-dedent: 2.2.0 transitivePeerDependencies: - '@types/react' @@ -15196,21 +15197,21 @@ snapshots: - vite - webpack - '@storybook/addon-themes@10.3.4(storybook@10.3.4(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))': + '@storybook/addon-themes@10.3.4(storybook@10.3.4)': dependencies: - storybook: 10.3.4(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + storybook: 10.3.4(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4)(react@19.2.4) ts-dedent: 2.2.0 - '@storybook/builder-vite@9.1.2(storybook@10.3.4(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3))': + '@storybook/builder-vite@9.1.2(storybook@10.3.4)(vite@8.0.0-beta.18)': dependencies: - '@storybook/csf-plugin': 9.1.2(storybook@10.3.4(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)) - storybook: 10.3.4(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@storybook/csf-plugin': 9.1.2(storybook@10.3.4) + storybook: 10.3.4(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4)(react@19.2.4) ts-dedent: 2.2.0 vite: 8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3) - '@storybook/csf-plugin@10.3.4(esbuild@0.27.7)(rollup@4.60.1)(storybook@10.3.4(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3))(webpack@5.105.4(esbuild@0.27.7))': + '@storybook/csf-plugin@10.3.4(esbuild@0.27.7)(rollup@4.60.1)(storybook@10.3.4)(vite@8.0.0-beta.18)(webpack@5.105.4)': dependencies: - storybook: 10.3.4(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + storybook: 10.3.4(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4)(react@19.2.4) unplugin: 2.3.11 optionalDependencies: esbuild: 0.27.7 @@ -15218,42 +15219,42 @@ snapshots: vite: 8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3) webpack: 5.105.4(esbuild@0.27.7) - '@storybook/csf-plugin@9.1.2(storybook@10.3.4(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))': + '@storybook/csf-plugin@9.1.2(storybook@10.3.4)': dependencies: - storybook: 10.3.4(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + storybook: 10.3.4(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4)(react@19.2.4) unplugin: 1.16.1 '@storybook/global@5.0.0': {} - '@storybook/icons@2.0.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@storybook/icons@2.0.1(react-dom@19.2.4)(react@19.2.4)': dependencies: react: 19.2.4 react-dom: 19.2.4(react@19.2.4) - '@storybook/react-dom-shim@10.3.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(storybook@10.3.4(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))': + '@storybook/react-dom-shim@10.3.4(react-dom@19.2.4)(react@19.2.4)(storybook@10.3.4)': dependencies: react: 19.2.4 react-dom: 19.2.4(react@19.2.4) - storybook: 10.3.4(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + storybook: 10.3.4(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4)(react@19.2.4) - '@storybook/vue3-vite@9.1.2(storybook@10.3.4(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3))(vue@3.5.30(typescript@6.0.2))': + '@storybook/vue3-vite@9.1.2(storybook@10.3.4)(vite@8.0.0-beta.18)(vue@3.5.30)': dependencies: - '@storybook/builder-vite': 9.1.2(storybook@10.3.4(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3)) - '@storybook/vue3': 9.1.2(storybook@10.3.4(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(vue@3.5.30(typescript@6.0.2)) + '@storybook/builder-vite': 9.1.2(storybook@10.3.4)(vite@8.0.0-beta.18) + '@storybook/vue3': 9.1.2(storybook@10.3.4)(vue@3.5.30) find-package-json: 1.2.0 magic-string: 0.30.21 - storybook: 10.3.4(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + storybook: 10.3.4(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4)(react@19.2.4) typescript: 5.9.3 vite: 8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3) vue-component-meta: 2.2.12(typescript@5.9.3) - vue-docgen-api: 4.79.2(vue@3.5.30(typescript@6.0.2)) + vue-docgen-api: 4.79.2(vue@3.5.30) transitivePeerDependencies: - vue - '@storybook/vue3@9.1.2(storybook@10.3.4(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(vue@3.5.30(typescript@6.0.2))': + '@storybook/vue3@9.1.2(storybook@10.3.4)(vue@3.5.30)': dependencies: '@storybook/global': 5.0.0 - storybook: 10.3.4(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + storybook: 10.3.4(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4)(react@19.2.4) type-fest: 2.19.0 vue: 3.5.30(typescript@6.0.2) vue-component-type-helpers: 3.2.6 @@ -15338,7 +15339,7 @@ snapshots: postcss: 8.5.8 tailwindcss: 4.2.2 - '@tailwindcss/vite@4.2.2(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3))': + '@tailwindcss/vite@4.2.2(vite@8.0.0-beta.18)': dependencies: '@tailwindcss/node': 4.2.2 '@tailwindcss/oxide': 4.2.2 @@ -15349,12 +15350,12 @@ snapshots: '@tanstack/virtual-core@3.13.23': {} - '@tanstack/vue-table@8.21.3(vue@3.5.30(typescript@6.0.2))': + '@tanstack/vue-table@8.21.3(vue@3.5.30)': dependencies: '@tanstack/table-core': 8.21.3 vue: 3.5.30(typescript@6.0.2) - '@tanstack/vue-virtual@3.13.23(vue@3.5.30(typescript@6.0.2))': + '@tanstack/vue-virtual@3.13.23(vue@3.5.30)': dependencies: '@tanstack/virtual-core': 3.13.23 vue: 3.5.30(typescript@6.0.2) @@ -15387,155 +15388,155 @@ snapshots: dependencies: '@tiptap/pm': 3.22.2 - '@tiptap/extension-blockquote@3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))': + '@tiptap/extension-blockquote@3.22.2(@tiptap/core@3.22.2)': dependencies: '@tiptap/core': 3.22.2(@tiptap/pm@3.22.2) - '@tiptap/extension-bold@3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))': + '@tiptap/extension-bold@3.22.2(@tiptap/core@3.22.2)': dependencies: '@tiptap/core': 3.22.2(@tiptap/pm@3.22.2) - '@tiptap/extension-bubble-menu@3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))(@tiptap/pm@3.22.2)': + '@tiptap/extension-bubble-menu@3.22.2(@tiptap/core@3.22.2)(@tiptap/pm@3.22.2)': dependencies: '@floating-ui/dom': 1.7.6 '@tiptap/core': 3.22.2(@tiptap/pm@3.22.2) '@tiptap/pm': 3.22.2 - '@tiptap/extension-bullet-list@3.22.2(@tiptap/extension-list@3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))(@tiptap/pm@3.22.2))': + '@tiptap/extension-bullet-list@3.22.2(@tiptap/extension-list@3.22.2)': dependencies: - '@tiptap/extension-list': 3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))(@tiptap/pm@3.22.2) + '@tiptap/extension-list': 3.22.2(@tiptap/core@3.22.2)(@tiptap/pm@3.22.2) - '@tiptap/extension-code-block@3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))(@tiptap/pm@3.22.2)': + '@tiptap/extension-code-block@3.22.2(@tiptap/core@3.22.2)(@tiptap/pm@3.22.2)': dependencies: '@tiptap/core': 3.22.2(@tiptap/pm@3.22.2) '@tiptap/pm': 3.22.2 - '@tiptap/extension-code@3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))': + '@tiptap/extension-code@3.22.2(@tiptap/core@3.22.2)': dependencies: '@tiptap/core': 3.22.2(@tiptap/pm@3.22.2) - '@tiptap/extension-collaboration@3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))(@tiptap/pm@3.22.2)(@tiptap/y-tiptap@3.0.2(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.8)(y-protocols@1.0.7(yjs@13.6.30))(yjs@13.6.30))(yjs@13.6.30)': + '@tiptap/extension-collaboration@3.22.2(@tiptap/core@3.22.2)(@tiptap/pm@3.22.2)(@tiptap/y-tiptap@3.0.2)(yjs@13.6.30)': dependencies: '@tiptap/core': 3.22.2(@tiptap/pm@3.22.2) '@tiptap/pm': 3.22.2 - '@tiptap/y-tiptap': 3.0.2(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.8)(y-protocols@1.0.7(yjs@13.6.30))(yjs@13.6.30) + '@tiptap/y-tiptap': 3.0.2(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.8)(y-protocols@1.0.7)(yjs@13.6.30) yjs: 13.6.30 - '@tiptap/extension-document@3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))': + '@tiptap/extension-document@3.22.2(@tiptap/core@3.22.2)': dependencies: '@tiptap/core': 3.22.2(@tiptap/pm@3.22.2) - '@tiptap/extension-drag-handle-vue-3@3.22.2(@tiptap/extension-drag-handle@3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))(@tiptap/extension-collaboration@3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))(@tiptap/pm@3.22.2)(@tiptap/y-tiptap@3.0.2(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.8)(y-protocols@1.0.7(yjs@13.6.30))(yjs@13.6.30))(yjs@13.6.30))(@tiptap/extension-node-range@3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))(@tiptap/pm@3.22.2))(@tiptap/pm@3.22.2)(@tiptap/y-tiptap@3.0.2(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.8)(y-protocols@1.0.7(yjs@13.6.30))(yjs@13.6.30)))(@tiptap/pm@3.22.2)(@tiptap/vue-3@3.22.2(@floating-ui/dom@1.7.6)(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))(@tiptap/pm@3.22.2)(vue@3.5.30(typescript@6.0.2)))(vue@3.5.30(typescript@6.0.2))': + '@tiptap/extension-drag-handle-vue-3@3.22.2(@tiptap/extension-drag-handle@3.22.2)(@tiptap/pm@3.22.2)(@tiptap/vue-3@3.22.2)(vue@3.5.30)': dependencies: - '@tiptap/extension-drag-handle': 3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))(@tiptap/extension-collaboration@3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))(@tiptap/pm@3.22.2)(@tiptap/y-tiptap@3.0.2(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.8)(y-protocols@1.0.7(yjs@13.6.30))(yjs@13.6.30))(yjs@13.6.30))(@tiptap/extension-node-range@3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))(@tiptap/pm@3.22.2))(@tiptap/pm@3.22.2)(@tiptap/y-tiptap@3.0.2(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.8)(y-protocols@1.0.7(yjs@13.6.30))(yjs@13.6.30)) + '@tiptap/extension-drag-handle': 3.22.2(@tiptap/core@3.22.2)(@tiptap/extension-collaboration@3.22.2)(@tiptap/extension-node-range@3.22.2)(@tiptap/pm@3.22.2)(@tiptap/y-tiptap@3.0.2) '@tiptap/pm': 3.22.2 - '@tiptap/vue-3': 3.22.2(@floating-ui/dom@1.7.6)(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))(@tiptap/pm@3.22.2)(vue@3.5.30(typescript@6.0.2)) + '@tiptap/vue-3': 3.22.2(@floating-ui/dom@1.7.6)(@tiptap/core@3.22.2)(@tiptap/pm@3.22.2)(vue@3.5.30) vue: 3.5.30(typescript@6.0.2) - '@tiptap/extension-drag-handle@3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))(@tiptap/extension-collaboration@3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))(@tiptap/pm@3.22.2)(@tiptap/y-tiptap@3.0.2(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.8)(y-protocols@1.0.7(yjs@13.6.30))(yjs@13.6.30))(yjs@13.6.30))(@tiptap/extension-node-range@3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))(@tiptap/pm@3.22.2))(@tiptap/pm@3.22.2)(@tiptap/y-tiptap@3.0.2(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.8)(y-protocols@1.0.7(yjs@13.6.30))(yjs@13.6.30))': + '@tiptap/extension-drag-handle@3.22.2(@tiptap/core@3.22.2)(@tiptap/extension-collaboration@3.22.2)(@tiptap/extension-node-range@3.22.2)(@tiptap/pm@3.22.2)(@tiptap/y-tiptap@3.0.2)': dependencies: '@floating-ui/dom': 1.7.6 '@tiptap/core': 3.22.2(@tiptap/pm@3.22.2) - '@tiptap/extension-collaboration': 3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))(@tiptap/pm@3.22.2)(@tiptap/y-tiptap@3.0.2(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.8)(y-protocols@1.0.7(yjs@13.6.30))(yjs@13.6.30))(yjs@13.6.30) - '@tiptap/extension-node-range': 3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))(@tiptap/pm@3.22.2) + '@tiptap/extension-collaboration': 3.22.2(@tiptap/core@3.22.2)(@tiptap/pm@3.22.2)(@tiptap/y-tiptap@3.0.2)(yjs@13.6.30) + '@tiptap/extension-node-range': 3.22.2(@tiptap/core@3.22.2)(@tiptap/pm@3.22.2) '@tiptap/pm': 3.22.2 - '@tiptap/y-tiptap': 3.0.2(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.8)(y-protocols@1.0.7(yjs@13.6.30))(yjs@13.6.30) + '@tiptap/y-tiptap': 3.0.2(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.8)(y-protocols@1.0.7)(yjs@13.6.30) - '@tiptap/extension-dropcursor@3.22.2(@tiptap/extensions@3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))(@tiptap/pm@3.22.2))': + '@tiptap/extension-dropcursor@3.22.2(@tiptap/extensions@3.22.2)': dependencies: - '@tiptap/extensions': 3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))(@tiptap/pm@3.22.2) + '@tiptap/extensions': 3.22.2(@tiptap/core@3.22.2)(@tiptap/pm@3.22.2) - '@tiptap/extension-floating-menu@3.22.2(@floating-ui/dom@1.7.6)(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))(@tiptap/pm@3.22.2)': + '@tiptap/extension-floating-menu@3.22.2(@floating-ui/dom@1.7.6)(@tiptap/core@3.22.2)(@tiptap/pm@3.22.2)': dependencies: '@floating-ui/dom': 1.7.6 '@tiptap/core': 3.22.2(@tiptap/pm@3.22.2) '@tiptap/pm': 3.22.2 - '@tiptap/extension-gapcursor@3.22.2(@tiptap/extensions@3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))(@tiptap/pm@3.22.2))': + '@tiptap/extension-gapcursor@3.22.2(@tiptap/extensions@3.22.2)': dependencies: - '@tiptap/extensions': 3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))(@tiptap/pm@3.22.2) + '@tiptap/extensions': 3.22.2(@tiptap/core@3.22.2)(@tiptap/pm@3.22.2) - '@tiptap/extension-hard-break@3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))': + '@tiptap/extension-hard-break@3.22.2(@tiptap/core@3.22.2)': dependencies: '@tiptap/core': 3.22.2(@tiptap/pm@3.22.2) - '@tiptap/extension-heading@3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))': + '@tiptap/extension-heading@3.22.2(@tiptap/core@3.22.2)': dependencies: '@tiptap/core': 3.22.2(@tiptap/pm@3.22.2) - '@tiptap/extension-horizontal-rule@3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))(@tiptap/pm@3.22.2)': + '@tiptap/extension-horizontal-rule@3.22.2(@tiptap/core@3.22.2)(@tiptap/pm@3.22.2)': dependencies: '@tiptap/core': 3.22.2(@tiptap/pm@3.22.2) '@tiptap/pm': 3.22.2 - '@tiptap/extension-image@3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))': + '@tiptap/extension-image@3.22.2(@tiptap/core@3.22.2)': dependencies: '@tiptap/core': 3.22.2(@tiptap/pm@3.22.2) - '@tiptap/extension-italic@3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))': + '@tiptap/extension-italic@3.22.2(@tiptap/core@3.22.2)': dependencies: '@tiptap/core': 3.22.2(@tiptap/pm@3.22.2) - '@tiptap/extension-link@3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))(@tiptap/pm@3.22.2)': + '@tiptap/extension-link@3.22.2(@tiptap/core@3.22.2)(@tiptap/pm@3.22.2)': dependencies: '@tiptap/core': 3.22.2(@tiptap/pm@3.22.2) '@tiptap/pm': 3.22.2 linkifyjs: 4.3.2 - '@tiptap/extension-list-item@3.22.2(@tiptap/extension-list@3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))(@tiptap/pm@3.22.2))': + '@tiptap/extension-list-item@3.22.2(@tiptap/extension-list@3.22.2)': dependencies: - '@tiptap/extension-list': 3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))(@tiptap/pm@3.22.2) + '@tiptap/extension-list': 3.22.2(@tiptap/core@3.22.2)(@tiptap/pm@3.22.2) - '@tiptap/extension-list-keymap@3.22.2(@tiptap/extension-list@3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))(@tiptap/pm@3.22.2))': + '@tiptap/extension-list-keymap@3.22.2(@tiptap/extension-list@3.22.2)': dependencies: - '@tiptap/extension-list': 3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))(@tiptap/pm@3.22.2) + '@tiptap/extension-list': 3.22.2(@tiptap/core@3.22.2)(@tiptap/pm@3.22.2) - '@tiptap/extension-list@3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))(@tiptap/pm@3.22.2)': + '@tiptap/extension-list@3.22.2(@tiptap/core@3.22.2)(@tiptap/pm@3.22.2)': dependencies: '@tiptap/core': 3.22.2(@tiptap/pm@3.22.2) '@tiptap/pm': 3.22.2 - '@tiptap/extension-mention@3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))(@tiptap/pm@3.22.2)(@tiptap/suggestion@3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))(@tiptap/pm@3.22.2))': + '@tiptap/extension-mention@3.22.2(@tiptap/core@3.22.2)(@tiptap/pm@3.22.2)(@tiptap/suggestion@3.22.2)': dependencies: '@tiptap/core': 3.22.2(@tiptap/pm@3.22.2) '@tiptap/pm': 3.22.2 - '@tiptap/suggestion': 3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))(@tiptap/pm@3.22.2) + '@tiptap/suggestion': 3.22.2(@tiptap/core@3.22.2)(@tiptap/pm@3.22.2) - '@tiptap/extension-node-range@3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))(@tiptap/pm@3.22.2)': + '@tiptap/extension-node-range@3.22.2(@tiptap/core@3.22.2)(@tiptap/pm@3.22.2)': dependencies: '@tiptap/core': 3.22.2(@tiptap/pm@3.22.2) '@tiptap/pm': 3.22.2 - '@tiptap/extension-ordered-list@3.22.2(@tiptap/extension-list@3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))(@tiptap/pm@3.22.2))': + '@tiptap/extension-ordered-list@3.22.2(@tiptap/extension-list@3.22.2)': dependencies: - '@tiptap/extension-list': 3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))(@tiptap/pm@3.22.2) + '@tiptap/extension-list': 3.22.2(@tiptap/core@3.22.2)(@tiptap/pm@3.22.2) - '@tiptap/extension-paragraph@3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))': + '@tiptap/extension-paragraph@3.22.2(@tiptap/core@3.22.2)': dependencies: '@tiptap/core': 3.22.2(@tiptap/pm@3.22.2) - '@tiptap/extension-placeholder@3.22.2(@tiptap/extensions@3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))(@tiptap/pm@3.22.2))': + '@tiptap/extension-placeholder@3.22.2(@tiptap/extensions@3.22.2)': dependencies: - '@tiptap/extensions': 3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))(@tiptap/pm@3.22.2) + '@tiptap/extensions': 3.22.2(@tiptap/core@3.22.2)(@tiptap/pm@3.22.2) - '@tiptap/extension-strike@3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))': + '@tiptap/extension-strike@3.22.2(@tiptap/core@3.22.2)': dependencies: '@tiptap/core': 3.22.2(@tiptap/pm@3.22.2) - '@tiptap/extension-text@3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))': + '@tiptap/extension-text@3.22.2(@tiptap/core@3.22.2)': dependencies: '@tiptap/core': 3.22.2(@tiptap/pm@3.22.2) - '@tiptap/extension-underline@3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))': + '@tiptap/extension-underline@3.22.2(@tiptap/core@3.22.2)': dependencies: '@tiptap/core': 3.22.2(@tiptap/pm@3.22.2) - '@tiptap/extensions@3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))(@tiptap/pm@3.22.2)': + '@tiptap/extensions@3.22.2(@tiptap/core@3.22.2)(@tiptap/pm@3.22.2)': dependencies: '@tiptap/core': 3.22.2(@tiptap/pm@3.22.2) '@tiptap/pm': 3.22.2 - '@tiptap/markdown@3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))(@tiptap/pm@3.22.2)': + '@tiptap/markdown@3.22.2(@tiptap/core@3.22.2)(@tiptap/pm@3.22.2)': dependencies: '@tiptap/core': 3.22.2(@tiptap/pm@3.22.2) '@tiptap/pm': 3.22.2 @@ -15565,46 +15566,46 @@ snapshots: '@tiptap/starter-kit@3.22.2': dependencies: '@tiptap/core': 3.22.2(@tiptap/pm@3.22.2) - '@tiptap/extension-blockquote': 3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2)) - '@tiptap/extension-bold': 3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2)) - '@tiptap/extension-bullet-list': 3.22.2(@tiptap/extension-list@3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))(@tiptap/pm@3.22.2)) - '@tiptap/extension-code': 3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2)) - '@tiptap/extension-code-block': 3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))(@tiptap/pm@3.22.2) - '@tiptap/extension-document': 3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2)) - '@tiptap/extension-dropcursor': 3.22.2(@tiptap/extensions@3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))(@tiptap/pm@3.22.2)) - '@tiptap/extension-gapcursor': 3.22.2(@tiptap/extensions@3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))(@tiptap/pm@3.22.2)) - '@tiptap/extension-hard-break': 3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2)) - '@tiptap/extension-heading': 3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2)) - '@tiptap/extension-horizontal-rule': 3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))(@tiptap/pm@3.22.2) - '@tiptap/extension-italic': 3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2)) - '@tiptap/extension-link': 3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))(@tiptap/pm@3.22.2) - '@tiptap/extension-list': 3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))(@tiptap/pm@3.22.2) - '@tiptap/extension-list-item': 3.22.2(@tiptap/extension-list@3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))(@tiptap/pm@3.22.2)) - '@tiptap/extension-list-keymap': 3.22.2(@tiptap/extension-list@3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))(@tiptap/pm@3.22.2)) - '@tiptap/extension-ordered-list': 3.22.2(@tiptap/extension-list@3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))(@tiptap/pm@3.22.2)) - '@tiptap/extension-paragraph': 3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2)) - '@tiptap/extension-strike': 3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2)) - '@tiptap/extension-text': 3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2)) - '@tiptap/extension-underline': 3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2)) - '@tiptap/extensions': 3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))(@tiptap/pm@3.22.2) + '@tiptap/extension-blockquote': 3.22.2(@tiptap/core@3.22.2) + '@tiptap/extension-bold': 3.22.2(@tiptap/core@3.22.2) + '@tiptap/extension-bullet-list': 3.22.2(@tiptap/extension-list@3.22.2) + '@tiptap/extension-code': 3.22.2(@tiptap/core@3.22.2) + '@tiptap/extension-code-block': 3.22.2(@tiptap/core@3.22.2)(@tiptap/pm@3.22.2) + '@tiptap/extension-document': 3.22.2(@tiptap/core@3.22.2) + '@tiptap/extension-dropcursor': 3.22.2(@tiptap/extensions@3.22.2) + '@tiptap/extension-gapcursor': 3.22.2(@tiptap/extensions@3.22.2) + '@tiptap/extension-hard-break': 3.22.2(@tiptap/core@3.22.2) + '@tiptap/extension-heading': 3.22.2(@tiptap/core@3.22.2) + '@tiptap/extension-horizontal-rule': 3.22.2(@tiptap/core@3.22.2)(@tiptap/pm@3.22.2) + '@tiptap/extension-italic': 3.22.2(@tiptap/core@3.22.2) + '@tiptap/extension-link': 3.22.2(@tiptap/core@3.22.2)(@tiptap/pm@3.22.2) + '@tiptap/extension-list': 3.22.2(@tiptap/core@3.22.2)(@tiptap/pm@3.22.2) + '@tiptap/extension-list-item': 3.22.2(@tiptap/extension-list@3.22.2) + '@tiptap/extension-list-keymap': 3.22.2(@tiptap/extension-list@3.22.2) + '@tiptap/extension-ordered-list': 3.22.2(@tiptap/extension-list@3.22.2) + '@tiptap/extension-paragraph': 3.22.2(@tiptap/core@3.22.2) + '@tiptap/extension-strike': 3.22.2(@tiptap/core@3.22.2) + '@tiptap/extension-text': 3.22.2(@tiptap/core@3.22.2) + '@tiptap/extension-underline': 3.22.2(@tiptap/core@3.22.2) + '@tiptap/extensions': 3.22.2(@tiptap/core@3.22.2)(@tiptap/pm@3.22.2) '@tiptap/pm': 3.22.2 - '@tiptap/suggestion@3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))(@tiptap/pm@3.22.2)': + '@tiptap/suggestion@3.22.2(@tiptap/core@3.22.2)(@tiptap/pm@3.22.2)': dependencies: '@tiptap/core': 3.22.2(@tiptap/pm@3.22.2) '@tiptap/pm': 3.22.2 - '@tiptap/vue-3@3.22.2(@floating-ui/dom@1.7.6)(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))(@tiptap/pm@3.22.2)(vue@3.5.30(typescript@6.0.2))': + '@tiptap/vue-3@3.22.2(@floating-ui/dom@1.7.6)(@tiptap/core@3.22.2)(@tiptap/pm@3.22.2)(vue@3.5.30)': dependencies: '@floating-ui/dom': 1.7.6 '@tiptap/core': 3.22.2(@tiptap/pm@3.22.2) '@tiptap/pm': 3.22.2 vue: 3.5.30(typescript@6.0.2) optionalDependencies: - '@tiptap/extension-bubble-menu': 3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))(@tiptap/pm@3.22.2) - '@tiptap/extension-floating-menu': 3.22.2(@floating-ui/dom@1.7.6)(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))(@tiptap/pm@3.22.2) + '@tiptap/extension-bubble-menu': 3.22.2(@tiptap/core@3.22.2)(@tiptap/pm@3.22.2) + '@tiptap/extension-floating-menu': 3.22.2(@floating-ui/dom@1.7.6)(@tiptap/core@3.22.2)(@tiptap/pm@3.22.2) - '@tiptap/y-tiptap@3.0.2(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.8)(y-protocols@1.0.7(yjs@13.6.30))(yjs@13.6.30)': + '@tiptap/y-tiptap@3.0.2(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.8)(y-protocols@1.0.7)(yjs@13.6.30)': dependencies: lib0: 0.2.117 prosemirror-model: 1.25.4 @@ -15754,7 +15755,7 @@ snapshots: '@ungap/structured-clone@1.3.0': {} - '@unhead/vue@2.1.13(vue@3.5.30(typescript@6.0.2))': + '@unhead/vue@2.1.13(vue@3.5.30)': dependencies: hookable: 6.1.0 unhead: 2.1.13 @@ -15799,7 +15800,7 @@ snapshots: gzip-size: 6.0.0 sirv: 3.0.2 - '@unocss/nuxt@66.6.7(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(magicast@0.5.2)(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3))(webpack@5.105.4(esbuild@0.27.7))': + '@unocss/nuxt@66.6.7(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(magicast@0.5.2)(vite@8.0.0-beta.18)(webpack@5.105.4)': dependencies: '@nuxt/kit': 4.4.2(magicast@0.5.2) '@unocss/config': 66.6.7 @@ -15812,9 +15813,9 @@ snapshots: '@unocss/preset-wind3': 66.6.7 '@unocss/preset-wind4': 66.6.7 '@unocss/reset': 66.6.7 - '@unocss/vite': 66.6.7(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3)) - '@unocss/webpack': 66.6.7(webpack@5.105.4(esbuild@0.27.7)) - unocss: 66.6.7(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@unocss/webpack@66.6.7(webpack@5.105.4(esbuild@0.27.7)))(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3)) + '@unocss/vite': 66.6.7(vite@8.0.0-beta.18) + '@unocss/webpack': 66.6.7(webpack@5.105.4) + unocss: 66.6.7(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@unocss/webpack@66.6.7)(vite@8.0.0-beta.18) transitivePeerDependencies: - '@emnapi/core' - '@emnapi/runtime' @@ -15887,7 +15888,7 @@ snapshots: dependencies: '@unocss/core': 66.6.7 oxc-parser: 0.115.0(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) - oxc-walker: 0.7.0(oxc-parser@0.115.0(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)) + oxc-walker: 0.7.0(oxc-parser@0.115.0) transitivePeerDependencies: - '@emnapi/core' - '@emnapi/runtime' @@ -15906,7 +15907,7 @@ snapshots: dependencies: '@unocss/core': 66.6.7 - '@unocss/vite@66.6.7(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3))': + '@unocss/vite@66.6.7(vite@8.0.0-beta.18)': dependencies: '@jridgewell/remapping': 2.3.5 '@unocss/config': 66.6.7 @@ -15919,7 +15920,7 @@ snapshots: unplugin-utils: 0.3.1 vite: 8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3) - '@unocss/webpack@66.6.7(webpack@5.105.4(esbuild@0.27.7))': + '@unocss/webpack@66.6.7(webpack@5.105.4)': dependencies: '@jridgewell/remapping': 2.3.5 '@unocss/config': 66.6.7 @@ -15967,12 +15968,12 @@ snapshots: sharp-ico: 0.1.5 unconfig: 7.5.0 - '@vite-pwa/nuxt@1.1.1(@vite-pwa/assets-generator@1.0.2)(magicast@0.5.2)(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3))(workbox-build@7.4.0)(workbox-window@7.4.0)': + '@vite-pwa/nuxt@1.1.1(@vite-pwa/assets-generator@1.0.2)(magicast@0.5.2)(vite@8.0.0-beta.18)(workbox-build@7.4.0)(workbox-window@7.4.0)': dependencies: '@nuxt/kit': 3.21.2(magicast@0.5.2) pathe: 1.1.2 ufo: 1.6.3 - vite-plugin-pwa: 1.2.0(@vite-pwa/assets-generator@1.0.2)(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3))(workbox-build@7.4.0)(workbox-window@7.4.0) + vite-plugin-pwa: 1.2.0(@vite-pwa/assets-generator@1.0.2)(vite@8.0.0-beta.18)(workbox-build@7.4.0)(workbox-window@7.4.0) optionalDependencies: '@vite-pwa/assets-generator': 1.0.2 transitivePeerDependencies: @@ -15982,7 +15983,7 @@ snapshots: - workbox-build - workbox-window - '@vitejs/plugin-vue-jsx@5.1.5(@voidzero-dev/vite-plus-core@0.1.12(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(yaml@2.8.3))(vue@3.5.30(typescript@6.0.2))': + '@vitejs/plugin-vue-jsx@5.1.5(@voidzero-dev/vite-plus-core@0.1.12)(vue@3.5.30)': dependencies: '@babel/core': 7.29.0 '@babel/plugin-syntax-typescript': 7.28.6(@babel/core@7.29.0) @@ -15994,13 +15995,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue@6.0.5(@voidzero-dev/vite-plus-core@0.1.12(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(yaml@2.8.3))(vue@3.5.30(typescript@6.0.2))': + '@vitejs/plugin-vue@6.0.5(@voidzero-dev/vite-plus-core@0.1.12)(vue@3.5.30)': dependencies: '@rolldown/pluginutils': 1.0.0-rc.2 vite: '@voidzero-dev/vite-plus-core@0.1.12(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(yaml@2.8.3)' vue: 3.5.30(typescript@6.0.2) - '@vitest/coverage-v8@4.1.2(@voidzero-dev/vite-plus-test@0.1.12(@opentelemetry/api@1.9.0)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3))(yaml@2.8.3))': + '@vitest/coverage-v8@4.1.2(@voidzero-dev/vite-plus-test@0.1.12)': dependencies: '@bcoe/v8-coverage': 1.0.2 '@vitest/utils': 4.1.2 @@ -16012,7 +16013,7 @@ snapshots: obug: 2.1.1 std-env: 4.0.0 tinyrainbow: 3.1.0 - vitest: '@voidzero-dev/vite-plus-test@0.1.12(@opentelemetry/api@1.9.0)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3))(yaml@2.8.3)' + vitest: '@voidzero-dev/vite-plus-test@0.1.12(@opentelemetry/api@1.9.0)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18)(yaml@2.8.3)' '@vitest/expect@3.2.4': dependencies: @@ -16073,7 +16074,7 @@ snapshots: '@voidzero-dev/vite-plus-linux-x64-gnu@0.1.12': optional: true - '@voidzero-dev/vite-plus-test@0.1.12(@opentelemetry/api@1.9.0)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3))(yaml@2.8.3)': + '@voidzero-dev/vite-plus-test@0.1.12(@opentelemetry/api@1.9.0)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18)(yaml@2.8.3)': dependencies: '@standard-schema/spec': 1.1.0 '@types/chai': 5.2.3 @@ -16143,7 +16144,7 @@ snapshots: path-browserify: 1.0.1 vscode-uri: 3.1.0 - '@vue-macros/common@3.1.2(vue@3.5.30(typescript@6.0.2))': + '@vue-macros/common@3.1.2(vue@3.5.30)': dependencies: '@vue/compiler-sfc': 3.5.32 ast-kit: 2.2.0 @@ -16249,7 +16250,7 @@ snapshots: '@vue/devtools-api@6.6.4': {} - '@vue/devtools-core@8.1.1(vue@3.5.30(typescript@6.0.2))': + '@vue/devtools-core@8.1.1(vue@3.5.30)': dependencies: '@vue/devtools-kit': 8.1.1 '@vue/devtools-shared': 8.1.1 @@ -16303,7 +16304,7 @@ snapshots: '@vue/shared': 3.5.30 csstype: 3.2.3 - '@vue/server-renderer@3.5.30(vue@3.5.30(typescript@6.0.2))': + '@vue/server-renderer@3.5.30(vue@3.5.30)': dependencies: '@vue/compiler-ssr': 3.5.30 '@vue/shared': 3.5.30 @@ -16318,27 +16319,27 @@ snapshots: js-beautify: 1.15.4 vue-component-type-helpers: 2.2.12 - '@vueuse/core@10.11.1(vue@3.5.30(typescript@6.0.2))': + '@vueuse/core@10.11.1(vue@3.5.30)': dependencies: '@types/web-bluetooth': 0.0.20 '@vueuse/metadata': 10.11.1 - '@vueuse/shared': 10.11.1(vue@3.5.30(typescript@6.0.2)) - vue-demi: 0.14.10(vue@3.5.30(typescript@6.0.2)) + '@vueuse/shared': 10.11.1(vue@3.5.30) + vue-demi: 0.14.10(vue@3.5.30) transitivePeerDependencies: - '@vue/composition-api' - vue - '@vueuse/core@14.2.1(vue@3.5.30(typescript@6.0.2))': + '@vueuse/core@14.2.1(vue@3.5.30)': dependencies: '@types/web-bluetooth': 0.0.21 '@vueuse/metadata': 14.2.1 - '@vueuse/shared': 14.2.1(vue@3.5.30(typescript@6.0.2)) + '@vueuse/shared': 14.2.1(vue@3.5.30) vue: 3.5.30(typescript@6.0.2) - '@vueuse/integrations@14.2.1(focus-trap@8.0.1)(fuse.js@7.3.0)(vue@3.5.30(typescript@6.0.2))': + '@vueuse/integrations@14.2.1(focus-trap@8.0.1)(fuse.js@7.3.0)(vue@3.5.30)': dependencies: - '@vueuse/core': 14.2.1(vue@3.5.30(typescript@6.0.2)) - '@vueuse/shared': 14.2.1(vue@3.5.30(typescript@6.0.2)) + '@vueuse/core': 14.2.1(vue@3.5.30) + '@vueuse/shared': 14.2.1(vue@3.5.30) vue: 3.5.30(typescript@6.0.2) optionalDependencies: focus-trap: 8.0.1 @@ -16348,31 +16349,31 @@ snapshots: '@vueuse/metadata@14.2.1': {} - '@vueuse/nuxt@14.2.1(magicast@0.5.2)(nuxt@4.3.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@parcel/watcher@2.5.6)(@types/node@24.12.0)(@upstash/redis@1.37.0)(@vue/compiler-sfc@3.5.32)(better-sqlite3@12.8.0)(cac@6.7.14)(db0@0.3.4(better-sqlite3@12.8.0))(eslint@10.2.0(jiti@2.6.1))(ioredis@5.10.1)(magicast@0.5.2)(optionator@0.9.4)(oxlint@1.55.0(oxlint-tsgolint@0.17.0))(rolldown@1.0.0-rc.12(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2))(rollup@4.60.1)(srvx@0.11.15)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3))(vue-tsc@3.2.6(typescript@6.0.2))(yaml@2.8.3))(vue@3.5.30(typescript@6.0.2))': + '@vueuse/nuxt@14.2.1(magicast@0.5.2)(nuxt@4.3.1)(vue@3.5.30)': dependencies: '@nuxt/kit': 4.4.2(magicast@0.5.2) - '@vueuse/core': 14.2.1(vue@3.5.30(typescript@6.0.2)) + '@vueuse/core': 14.2.1(vue@3.5.30) '@vueuse/metadata': 14.2.1 local-pkg: 1.1.2 - nuxt: 4.3.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@parcel/watcher@2.5.6)(@types/node@24.12.0)(@upstash/redis@1.37.0)(@vue/compiler-sfc@3.5.32)(better-sqlite3@12.8.0)(cac@6.7.14)(db0@0.3.4(better-sqlite3@12.8.0))(eslint@10.2.0(jiti@2.6.1))(ioredis@5.10.1)(magicast@0.5.2)(optionator@0.9.4)(oxlint@1.55.0(oxlint-tsgolint@0.17.0))(rolldown@1.0.0-rc.12(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2))(rollup@4.60.1)(srvx@0.11.15)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3))(vue-tsc@3.2.6(typescript@6.0.2))(yaml@2.8.3) + nuxt: 4.3.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@parcel/watcher@2.5.6)(@types/node@24.12.0)(@upstash/redis@1.37.0)(@vue/compiler-sfc@3.5.32)(better-sqlite3@12.8.0)(cac@6.7.14)(db0@0.3.4)(eslint@10.2.0)(ioredis@5.10.1)(magicast@0.5.2)(optionator@0.9.4)(oxlint@1.55.0)(rolldown@1.0.0-rc.12)(rollup@4.60.1)(srvx@0.11.15)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18)(vue-tsc@3.2.6)(yaml@2.8.3) vue: 3.5.30(typescript@6.0.2) transitivePeerDependencies: - magicast - '@vueuse/router@14.2.1(vue-router@4.6.4(vue@3.5.30(typescript@6.0.2)))(vue@3.5.30(typescript@6.0.2))': + '@vueuse/router@14.2.1(vue-router@4.6.4)(vue@3.5.30)': dependencies: - '@vueuse/shared': 14.2.1(vue@3.5.30(typescript@6.0.2)) + '@vueuse/shared': 14.2.1(vue@3.5.30) vue: 3.5.30(typescript@6.0.2) - vue-router: 4.6.4(vue@3.5.30(typescript@6.0.2)) + vue-router: 4.6.4(vue@3.5.30) - '@vueuse/shared@10.11.1(vue@3.5.30(typescript@6.0.2))': + '@vueuse/shared@10.11.1(vue@3.5.30)': dependencies: - vue-demi: 0.14.10(vue@3.5.30(typescript@6.0.2)) + vue-demi: 0.14.10(vue@3.5.30) transitivePeerDependencies: - '@vue/composition-api' - vue - '@vueuse/shared@14.2.1(vue@3.5.30(typescript@6.0.2))': + '@vueuse/shared@14.2.1(vue@3.5.30)': dependencies: vue: 3.5.30(typescript@6.0.2) @@ -17291,39 +17292,39 @@ snapshots: doctypes@1.1.0: {} - docus@5.8.1(4d997acb641abe9fe48cff6c88badf5c): + docus@5.8.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@tiptap/extensions@3.22.2)(@tiptap/y-tiptap@3.0.2)(@unhead/vue@2.1.13)(@upstash/redis@1.37.0)(@vue/compiler-dom@3.5.32)(better-sqlite3@12.8.0)(db0@0.3.4)(embla-carousel@8.6.0)(eslint@10.2.0)(focus-trap@8.0.1)(ioredis@5.10.1)(magicast@0.5.2)(nuxt@4.3.1)(react-dom@19.2.4)(react@19.2.4)(rollup@4.60.1)(srvx@0.11.15)(typescript@6.0.2)(unstorage@1.17.5)(valibot@1.3.0)(vite@8.0.0-beta.18)(vue-router@4.6.4)(vue@3.5.30)(yjs@13.6.30): dependencies: '@ai-sdk/gateway': 3.0.88(zod@4.3.6) '@ai-sdk/mcp': 1.0.32(zod@4.3.6) - '@ai-sdk/vue': 3.0.116(vue@3.5.30(typescript@6.0.2))(zod@4.3.6) + '@ai-sdk/vue': 3.0.116(vue@3.5.30)(zod@4.3.6) '@iconify-json/lucide': 1.2.98 '@iconify-json/simple-icons': 1.2.74 '@iconify-json/vscode-icons': 1.2.45 - '@nuxt/content': 3.12.0(better-sqlite3@12.8.0)(magicast@0.5.2)(valibot@1.3.0(typescript@6.0.2)) - '@nuxt/image': 2.0.0(@upstash/redis@1.37.0)(db0@0.3.4(better-sqlite3@12.8.0))(ioredis@5.10.1)(magicast@0.5.2)(srvx@0.11.15) + '@nuxt/content': 3.12.0(better-sqlite3@12.8.0)(magicast@0.5.2)(valibot@1.3.0) + '@nuxt/image': 2.0.0(@upstash/redis@1.37.0)(db0@0.3.4)(ioredis@5.10.1)(magicast@0.5.2)(srvx@0.11.15) '@nuxt/kit': 4.4.2(magicast@0.5.2) - '@nuxt/ui': 4.5.1(@nuxt/content@3.12.0(better-sqlite3@12.8.0)(magicast@0.5.2)(valibot@1.3.0(typescript@6.0.2)))(@tiptap/extensions@3.22.2(@tiptap/core@3.22.2(@tiptap/pm@3.22.2))(@tiptap/pm@3.22.2))(@tiptap/y-tiptap@3.0.2(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.8)(y-protocols@1.0.7(yjs@13.6.30))(yjs@13.6.30))(@upstash/redis@1.37.0)(db0@0.3.4(better-sqlite3@12.8.0))(embla-carousel@8.6.0)(focus-trap@8.0.1)(ioredis@5.10.1)(magicast@0.5.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(tailwindcss@4.2.2)(typescript@6.0.2)(valibot@1.3.0(typescript@6.0.2))(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3))(vue-router@4.6.4(vue@3.5.30(typescript@6.0.2)))(vue@3.5.30(typescript@6.0.2))(yjs@13.6.30)(zod@4.3.6) - '@nuxtjs/i18n': 10.2.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@upstash/redis@1.37.0)(@vue/compiler-dom@3.5.32)(db0@0.3.4(better-sqlite3@12.8.0))(eslint@10.2.0(jiti@2.6.1))(ioredis@5.10.1)(magicast@0.5.2)(rollup@4.60.1)(vue@3.5.30(typescript@6.0.2)) + '@nuxt/ui': 4.5.1(@nuxt/content@3.12.0)(@tiptap/extensions@3.22.2)(@tiptap/y-tiptap@3.0.2)(@upstash/redis@1.37.0)(db0@0.3.4)(embla-carousel@8.6.0)(focus-trap@8.0.1)(ioredis@5.10.1)(magicast@0.5.2)(react-dom@19.2.4)(react@19.2.4)(tailwindcss@4.2.2)(typescript@6.0.2)(valibot@1.3.0)(vite@8.0.0-beta.18)(vue-router@4.6.4)(vue@3.5.30)(yjs@13.6.30)(zod@4.3.6) + '@nuxtjs/i18n': 10.2.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@upstash/redis@1.37.0)(@vue/compiler-dom@3.5.32)(db0@0.3.4)(eslint@10.2.0)(ioredis@5.10.1)(magicast@0.5.2)(rollup@4.60.1)(vue@3.5.30) '@nuxtjs/mcp-toolkit': 0.7.0(magicast@0.5.2)(zod@4.3.6) '@nuxtjs/mdc': 0.20.2(magicast@0.5.2) - '@nuxtjs/robots': 5.7.1(magicast@0.5.2)(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3))(vue@3.5.30(typescript@6.0.2))(zod@4.3.6) + '@nuxtjs/robots': 5.7.1(magicast@0.5.2)(vite@8.0.0-beta.18)(vue@3.5.30)(zod@4.3.6) '@shikijs/core': 3.23.0 '@shikijs/engine-javascript': 3.23.0 '@shikijs/langs': 3.23.0 '@shikijs/themes': 3.23.0 - '@vueuse/core': 14.2.1(vue@3.5.30(typescript@6.0.2)) + '@vueuse/core': 14.2.1(vue@3.5.30) ai: 6.0.116(zod@4.3.6) better-sqlite3: 12.8.0 defu: 6.1.4 exsolve: 1.0.8 git-url-parse: 16.1.0 - motion-v: 1.10.3(@vueuse/core@14.2.1(vue@3.5.30(typescript@6.0.2)))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(vue@3.5.30(typescript@6.0.2)) - nuxt: 4.3.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@parcel/watcher@2.5.6)(@types/node@24.12.0)(@upstash/redis@1.37.0)(@vue/compiler-sfc@3.5.32)(better-sqlite3@12.8.0)(cac@6.7.14)(db0@0.3.4(better-sqlite3@12.8.0))(eslint@10.2.0(jiti@2.6.1))(ioredis@5.10.1)(magicast@0.5.2)(optionator@0.9.4)(oxlint@1.55.0(oxlint-tsgolint@0.17.0))(rolldown@1.0.0-rc.12(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2))(rollup@4.60.1)(srvx@0.11.15)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3))(vue-tsc@3.2.6(typescript@6.0.2))(yaml@2.8.3) + motion-v: 1.10.3(@vueuse/core@14.2.1)(react-dom@19.2.4)(react@19.2.4)(vue@3.5.30) + nuxt: 4.3.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@parcel/watcher@2.5.6)(@types/node@24.12.0)(@upstash/redis@1.37.0)(@vue/compiler-sfc@3.5.32)(better-sqlite3@12.8.0)(cac@6.7.14)(db0@0.3.4)(eslint@10.2.0)(ioredis@5.10.1)(magicast@0.5.2)(optionator@0.9.4)(oxlint@1.55.0)(rolldown@1.0.0-rc.12)(rollup@4.60.1)(srvx@0.11.15)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18)(vue-tsc@3.2.6)(yaml@2.8.3) nuxt-llms: 0.2.0(magicast@0.5.2) - nuxt-og-image: 5.1.13(@unhead/vue@2.1.13(vue@3.5.30(typescript@6.0.2)))(magicast@0.5.2)(unstorage@1.17.5(@upstash/redis@1.37.0)(db0@0.3.4(better-sqlite3@12.8.0))(ioredis@5.10.1))(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3))(vue@3.5.30(typescript@6.0.2)) + nuxt-og-image: 5.1.13(@unhead/vue@2.1.13)(magicast@0.5.2)(unstorage@1.17.5)(vite@8.0.0-beta.18)(vue@3.5.30) pkg-types: 2.3.0 scule: 1.3.0 - shiki-stream: 0.1.4(react@19.2.4)(vue@3.5.30(typescript@6.0.2)) + shiki-stream: 0.1.4(react@19.2.4)(vue@3.5.30) tailwindcss: 4.2.2 ufo: 1.6.3 zod: 4.3.6 @@ -17431,7 +17432,7 @@ snapshots: dotenv@17.4.1: {} - dts-resolver@2.1.3(oxc-resolver@11.19.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)): + dts-resolver@2.1.3(oxc-resolver@11.19.1): optionalDependencies: oxc-resolver: 11.19.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) @@ -17484,7 +17485,7 @@ snapshots: dependencies: embla-carousel: 8.6.0 - embla-carousel-vue@8.6.0(vue@3.5.30(typescript@6.0.2)): + embla-carousel-vue@8.6.0(vue@3.5.30): dependencies: embla-carousel: 8.6.0 embla-carousel-reactive-utils: 8.6.0(embla-carousel@8.6.0) @@ -17702,16 +17703,16 @@ snapshots: optionalDependencies: source-map: 0.6.1 - eslint-plugin-depend@1.5.0(eslint@10.2.0(jiti@2.6.1)): + eslint-plugin-depend@1.5.0(eslint@10.2.0): dependencies: empathic: 2.0.0 eslint: 10.2.0(jiti@2.6.1) module-replacements: 2.11.0 semver: 7.7.4 - eslint-plugin-regexp@3.1.0(eslint@10.2.0(jiti@2.6.1)): + eslint-plugin-regexp@3.1.0(eslint@10.2.0): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.0(jiti@2.6.1)) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.0) '@eslint-community/regexpp': 4.12.2 comment-parser: 1.4.6 eslint: 10.2.0(jiti@2.6.1) @@ -17738,7 +17739,7 @@ snapshots: eslint@10.2.0(jiti@2.6.1): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.0(jiti@2.6.1)) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.0) '@eslint-community/regexpp': 4.12.2 '@eslint/config-array': 0.23.4 '@eslint/config-helpers': 0.5.4 @@ -18026,7 +18027,7 @@ snapshots: dependencies: tiny-inflate: 1.0.3 - fontless@0.2.1(@upstash/redis@1.37.0)(db0@0.3.4(better-sqlite3@12.8.0))(ioredis@5.10.1)(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3)): + fontless@0.2.1(@upstash/redis@1.37.0)(db0@0.3.4)(ioredis@5.10.1)(vite@8.0.0-beta.18): dependencies: consola: 3.4.2 css-tree: 3.2.1 @@ -18040,7 +18041,7 @@ snapshots: pathe: 2.0.3 ufo: 1.6.3 unifont: 0.7.4 - unstorage: 1.17.5(@upstash/redis@1.37.0)(db0@0.3.4(better-sqlite3@12.8.0))(ioredis@5.10.1) + unstorage: 1.17.5(@upstash/redis@1.37.0)(db0@0.3.4)(ioredis@5.10.1) optionalDependencies: vite: 8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3) transitivePeerDependencies: @@ -18081,7 +18082,7 @@ snapshots: fraction.js@5.3.4: {} - framer-motion@12.38.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4): + framer-motion@12.38.0(react-dom@19.2.4)(react@19.2.4): dependencies: motion-dom: 12.38.0 motion-utils: 12.36.0 @@ -18300,21 +18301,21 @@ snapshots: ufo: 1.6.3 uncrypto: 0.1.3 - h3@2.0.1-rc.11(crossws@0.4.4(srvx@0.11.15)): + h3@2.0.1-rc.11(crossws@0.4.4): dependencies: rou3: 0.7.12 srvx: 0.10.1 optionalDependencies: crossws: 0.4.4(srvx@0.11.15) - h3@2.0.1-rc.16(crossws@0.4.4(srvx@0.11.15)): + h3@2.0.1-rc.16(crossws@0.4.4): dependencies: rou3: 0.8.1 srvx: 0.11.15 optionalDependencies: crossws: 0.4.4(srvx@0.11.15) - h3@2.0.1-rc.20(crossws@0.4.4(srvx@0.11.15)): + h3@2.0.1-rc.20(crossws@0.4.4): dependencies: rou3: 0.8.1 srvx: 0.11.15 @@ -18501,7 +18502,7 @@ snapshots: html-escaper@2.0.2: {} - html-validate@9.4.2(@voidzero-dev/vite-plus-test@0.1.12(@opentelemetry/api@1.9.0)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3))(yaml@2.8.3)): + html-validate@9.4.2(@voidzero-dev/vite-plus-test@0.1.12): dependencies: '@html-validate/stylish': 4.3.0 '@sidvind/better-ajv-errors': 3.0.1(ajv@8.18.0) @@ -18512,7 +18513,7 @@ snapshots: prompts: 2.4.2 semver: 7.7.4 optionalDependencies: - vitest: '@voidzero-dev/vite-plus-test@0.1.12(@opentelemetry/api@1.9.0)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3))(yaml@2.8.3)' + vitest: '@voidzero-dev/vite-plus-test@0.1.12(@opentelemetry/api@1.9.0)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18)(yaml@2.8.3)' html-void-elements@3.0.0: {} @@ -18624,7 +18625,7 @@ snapshots: ipaddr.js@2.3.0: {} - ipx@3.1.1(@upstash/redis@1.37.0)(db0@0.3.4(better-sqlite3@12.8.0))(ioredis@5.10.1)(srvx@0.11.15): + ipx@3.1.1(@upstash/redis@1.37.0)(db0@0.3.4)(ioredis@5.10.1)(srvx@0.11.15): dependencies: '@fastify/accept-negotiator': 2.0.1 citty: 0.1.6 @@ -18640,7 +18641,7 @@ snapshots: sharp: 0.34.5 svgo: 4.0.1 ufo: 1.6.3 - unstorage: 1.17.5(@upstash/redis@1.37.0)(db0@0.3.4(better-sqlite3@12.8.0))(ioredis@5.10.1) + unstorage: 1.17.5(@upstash/redis@1.37.0)(db0@0.3.4)(ioredis@5.10.1) xss: 1.0.15 transitivePeerDependencies: - '@azure/app-configuration' @@ -19658,10 +19659,10 @@ snapshots: motion-utils@12.36.0: {} - motion-v@1.10.3(@vueuse/core@14.2.1(vue@3.5.30(typescript@6.0.2)))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(vue@3.5.30(typescript@6.0.2)): + motion-v@1.10.3(@vueuse/core@14.2.1)(react-dom@19.2.4)(react@19.2.4)(vue@3.5.30): dependencies: - '@vueuse/core': 14.2.1(vue@3.5.30(typescript@6.0.2)) - framer-motion: 12.38.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@vueuse/core': 14.2.1(vue@3.5.30) + framer-motion: 12.38.0(react-dom@19.2.4)(react@19.2.4) hey-listen: 1.0.8 motion-dom: 12.38.0 vue: 3.5.30(typescript@6.0.2) @@ -19694,7 +19695,7 @@ snapshots: neotraverse@0.6.18: {} - nitropack@2.13.3(@upstash/redis@1.37.0)(better-sqlite3@12.8.0)(rolldown@1.0.0-rc.12(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2))(srvx@0.11.15): + nitropack@2.13.3(@upstash/redis@1.37.0)(better-sqlite3@12.8.0)(rolldown@1.0.0-rc.12)(srvx@0.11.15): dependencies: '@cloudflare/kv-asset-handler': 0.4.2 '@rollup/plugin-alias': 6.0.0(rollup@4.60.1) @@ -19747,7 +19748,7 @@ snapshots: pretty-bytes: 7.1.0 radix3: 1.1.2 rollup: 4.60.1 - rollup-plugin-visualizer: 7.0.1(rolldown@1.0.0-rc.12(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2))(rollup@4.60.1) + rollup-plugin-visualizer: 7.0.1(rolldown@1.0.0-rc.12)(rollup@4.60.1) scule: 1.3.0 semver: 7.7.4 serve-placeholder: 2.0.2 @@ -19761,7 +19762,7 @@ snapshots: unenv: 2.0.0-rc.24 unimport: 6.0.2 unplugin-utils: 0.3.1 - unstorage: 1.17.5(@upstash/redis@1.37.0)(db0@0.3.4(better-sqlite3@12.8.0))(ioredis@5.10.1) + unstorage: 1.17.5(@upstash/redis@1.37.0)(db0@0.3.4)(ioredis@5.10.1) untyped: 2.0.0 unwasm: 0.5.3 youch: 4.1.1 @@ -19869,13 +19870,13 @@ snapshots: transitivePeerDependencies: - magicast - nuxt-og-image@5.1.13(@unhead/vue@2.1.13(vue@3.5.30(typescript@6.0.2)))(magicast@0.5.2)(unstorage@1.17.5(@upstash/redis@1.37.0)(db0@0.3.4(better-sqlite3@12.8.0))(ioredis@5.10.1))(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3))(vue@3.5.30(typescript@6.0.2)): + nuxt-og-image@5.1.13(@unhead/vue@2.1.13)(magicast@0.5.2)(unstorage@1.17.5)(vite@8.0.0-beta.18)(vue@3.5.30): dependencies: - '@nuxt/devtools-kit': 3.2.4(magicast@0.5.2)(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3)) + '@nuxt/devtools-kit': 3.2.4(magicast@0.5.2)(vite@8.0.0-beta.18) '@nuxt/kit': 4.4.2(magicast@0.5.2) '@resvg/resvg-js': 2.6.2 '@resvg/resvg-wasm': 2.6.2 - '@unhead/vue': 2.1.13(vue@3.5.30(typescript@6.0.2)) + '@unhead/vue': 2.1.13(vue@3.5.30) '@unocss/core': 66.6.7 '@unocss/preset-wind3': 66.6.7 chrome-launcher: 1.2.1 @@ -19885,7 +19886,7 @@ snapshots: image-size: 2.0.2 magic-string: 0.30.21 mocked-exports: 0.1.1 - nuxt-site-config: 3.2.21(magicast@0.5.2)(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3))(vue@3.5.30(typescript@6.0.2)) + nuxt-site-config: 3.2.21(magicast@0.5.2)(vite@8.0.0-beta.18)(vue@3.5.30) nypm: 0.6.5 ofetch: 1.5.1 ohash: 2.0.11 @@ -19900,7 +19901,7 @@ snapshots: strip-literal: 3.1.0 ufo: 1.6.3 unplugin: 2.3.11 - unstorage: 1.17.5(@upstash/redis@1.37.0)(db0@0.3.4(better-sqlite3@12.8.0))(ioredis@5.10.1) + unstorage: 1.17.5(@upstash/redis@1.37.0)(db0@0.3.4)(ioredis@5.10.1) unwasm: 0.5.3 yoga-wasm-web: 0.3.3 transitivePeerDependencies: @@ -19909,44 +19910,44 @@ snapshots: - vite - vue - nuxt-site-config-kit@3.2.21(magicast@0.5.2)(vue@3.5.30(typescript@6.0.2)): + nuxt-site-config-kit@3.2.21(magicast@0.5.2)(vue@3.5.30): dependencies: '@nuxt/kit': 4.4.2(magicast@0.5.2) pkg-types: 2.3.0 - site-config-stack: 3.2.21(vue@3.5.30(typescript@6.0.2)) + site-config-stack: 3.2.21(vue@3.5.30) std-env: 3.10.0 ufo: 1.6.3 transitivePeerDependencies: - magicast - vue - nuxt-site-config@3.2.21(magicast@0.5.2)(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3))(vue@3.5.30(typescript@6.0.2)): + nuxt-site-config@3.2.21(magicast@0.5.2)(vite@8.0.0-beta.18)(vue@3.5.30): dependencies: - '@nuxt/devtools-kit': 3.2.4(magicast@0.5.2)(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3)) + '@nuxt/devtools-kit': 3.2.4(magicast@0.5.2)(vite@8.0.0-beta.18) '@nuxt/kit': 4.4.2(magicast@0.5.2) h3: 1.15.8 - nuxt-site-config-kit: 3.2.21(magicast@0.5.2)(vue@3.5.30(typescript@6.0.2)) + nuxt-site-config-kit: 3.2.21(magicast@0.5.2)(vue@3.5.30) pathe: 2.0.3 pkg-types: 2.3.0 sirv: 3.0.2 - site-config-stack: 3.2.21(vue@3.5.30(typescript@6.0.2)) + site-config-stack: 3.2.21(vue@3.5.30) ufo: 1.6.3 transitivePeerDependencies: - magicast - vite - vue - nuxt@4.3.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@parcel/watcher@2.5.6)(@types/node@24.12.0)(@upstash/redis@1.37.0)(@vue/compiler-sfc@3.5.32)(better-sqlite3@12.8.0)(cac@6.7.14)(db0@0.3.4(better-sqlite3@12.8.0))(eslint@10.2.0(jiti@2.6.1))(ioredis@5.10.1)(magicast@0.5.2)(optionator@0.9.4)(oxlint@1.55.0(oxlint-tsgolint@0.17.0))(rolldown@1.0.0-rc.12(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2))(rollup@4.60.1)(srvx@0.11.15)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3))(vue-tsc@3.2.6(typescript@6.0.2))(yaml@2.8.3): + nuxt@4.3.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@parcel/watcher@2.5.6)(@types/node@24.12.0)(@upstash/redis@1.37.0)(@vue/compiler-sfc@3.5.32)(better-sqlite3@12.8.0)(cac@6.7.14)(db0@0.3.4)(eslint@10.2.0)(ioredis@5.10.1)(magicast@0.5.2)(optionator@0.9.4)(oxlint@1.55.0)(rolldown@1.0.0-rc.12)(rollup@4.60.1)(srvx@0.11.15)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18)(vue-tsc@3.2.6)(yaml@2.8.3): dependencies: '@dxup/nuxt': 0.3.2(magicast@0.5.2) '@nuxt/cli': 3.34.0(@nuxt/schema@4.3.1)(cac@6.7.14)(magicast@0.5.2) - '@nuxt/devtools': 3.2.4(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3))(vue@3.5.30(typescript@6.0.2)) + '@nuxt/devtools': 3.2.4(vite@8.0.0-beta.18)(vue@3.5.30) '@nuxt/kit': 4.3.1(magicast@0.5.2) - '@nuxt/nitro-server': 4.3.1(@upstash/redis@1.37.0)(better-sqlite3@12.8.0)(db0@0.3.4(better-sqlite3@12.8.0))(ioredis@5.10.1)(magicast@0.5.2)(nuxt@4.3.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@parcel/watcher@2.5.6)(@types/node@24.12.0)(@upstash/redis@1.37.0)(@vue/compiler-sfc@3.5.32)(better-sqlite3@12.8.0)(cac@6.7.14)(db0@0.3.4(better-sqlite3@12.8.0))(eslint@10.2.0(jiti@2.6.1))(ioredis@5.10.1)(magicast@0.5.2)(optionator@0.9.4)(oxlint@1.55.0(oxlint-tsgolint@0.17.0))(rolldown@1.0.0-rc.12(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2))(rollup@4.60.1)(srvx@0.11.15)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3))(vue-tsc@3.2.6(typescript@6.0.2))(yaml@2.8.3))(rolldown@1.0.0-rc.12(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2))(srvx@0.11.15)(typescript@6.0.2) + '@nuxt/nitro-server': 4.3.1(@upstash/redis@1.37.0)(better-sqlite3@12.8.0)(db0@0.3.4)(ioredis@5.10.1)(magicast@0.5.2)(nuxt@4.3.1)(rolldown@1.0.0-rc.12)(srvx@0.11.15)(typescript@6.0.2) '@nuxt/schema': 4.3.1 - '@nuxt/telemetry': 2.8.0(@nuxt/kit@4.3.1(magicast@0.5.2)) - '@nuxt/vite-builder': 4.3.1(@types/node@24.12.0)(eslint@10.2.0(jiti@2.6.1))(magicast@0.5.2)(nuxt@4.3.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@parcel/watcher@2.5.6)(@types/node@24.12.0)(@upstash/redis@1.37.0)(@vue/compiler-sfc@3.5.32)(better-sqlite3@12.8.0)(cac@6.7.14)(db0@0.3.4(better-sqlite3@12.8.0))(eslint@10.2.0(jiti@2.6.1))(ioredis@5.10.1)(magicast@0.5.2)(optionator@0.9.4)(oxlint@1.55.0(oxlint-tsgolint@0.17.0))(rolldown@1.0.0-rc.12(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2))(rollup@4.60.1)(srvx@0.11.15)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3))(vue-tsc@3.2.6(typescript@6.0.2))(yaml@2.8.3))(optionator@0.9.4)(oxlint@1.55.0(oxlint-tsgolint@0.17.0))(rolldown@1.0.0-rc.12(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2))(rollup@4.60.1)(terser@5.46.1)(typescript@6.0.2)(vue-tsc@3.2.6(typescript@6.0.2))(vue@3.5.30(typescript@6.0.2))(yaml@2.8.3) - '@unhead/vue': 2.1.13(vue@3.5.30(typescript@6.0.2)) + '@nuxt/telemetry': 2.8.0(@nuxt/kit@4.3.1) + '@nuxt/vite-builder': 4.3.1(@types/node@24.12.0)(eslint@10.2.0)(magicast@0.5.2)(nuxt@4.3.1)(optionator@0.9.4)(oxlint@1.55.0)(rolldown@1.0.0-rc.12)(rollup@4.60.1)(terser@5.46.1)(typescript@6.0.2)(vue-tsc@3.2.6)(vue@3.5.30)(yaml@2.8.3) + '@unhead/vue': 2.1.13(vue@3.5.30) '@vue/shared': 3.5.32 c12: 3.3.4(magicast@0.5.2) chokidar: 5.0.0 @@ -19976,7 +19977,7 @@ snapshots: oxc-minify: 0.112.0(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) oxc-parser: 0.112.0(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) oxc-transform: 0.112.0(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) - oxc-walker: 0.7.0(oxc-parser@0.112.0(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)) + oxc-walker: 0.7.0(oxc-parser@0.112.0) pathe: 2.0.3 perfect-debounce: 2.1.0 pkg-types: 2.3.0 @@ -19991,10 +19992,10 @@ snapshots: unctx: 2.5.0 unimport: 5.7.0 unplugin: 3.0.0 - unplugin-vue-router: 0.19.2(@vue/compiler-sfc@3.5.32)(vue-router@4.6.4(vue@3.5.30(typescript@6.0.2)))(vue@3.5.30(typescript@6.0.2)) + unplugin-vue-router: 0.19.2(@vue/compiler-sfc@3.5.32)(vue-router@4.6.4)(vue@3.5.30) untyped: 2.0.0 vue: 3.5.30(typescript@6.0.2) - vue-router: 4.6.4(vue@3.5.30(typescript@6.0.2)) + vue-router: 4.6.4(vue@3.5.30) optionalDependencies: '@parcel/watcher': 2.5.6 '@types/node': 24.12.0 @@ -20369,17 +20370,17 @@ snapshots: - '@emnapi/core' - '@emnapi/runtime' - oxc-walker@0.5.2(oxc-parser@0.95.0(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)): + oxc-walker@0.5.2(oxc-parser@0.95.0): dependencies: magic-regexp: 0.10.0 oxc-parser: 0.95.0(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) - oxc-walker@0.7.0(oxc-parser@0.112.0(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)): + oxc-walker@0.7.0(oxc-parser@0.112.0): dependencies: magic-regexp: 0.10.0 oxc-parser: 0.112.0(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) - oxc-walker@0.7.0(oxc-parser@0.115.0(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)): + oxc-walker@0.7.0(oxc-parser@0.115.0): dependencies: magic-regexp: 0.10.0 oxc-parser: 0.115.0(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) @@ -21211,15 +21212,15 @@ snapshots: '@types/hast': 3.0.4 unist-util-visit: 5.1.0 - reka-ui@2.8.2(vue@3.5.30(typescript@6.0.2)): + reka-ui@2.8.2(vue@3.5.30): dependencies: '@floating-ui/dom': 1.7.6 - '@floating-ui/vue': 1.1.11(vue@3.5.30(typescript@6.0.2)) + '@floating-ui/vue': 1.1.11(vue@3.5.30) '@internationalized/date': 3.12.0 '@internationalized/number': 3.6.5 - '@tanstack/vue-virtual': 3.13.23(vue@3.5.30(typescript@6.0.2)) - '@vueuse/core': 14.2.1(vue@3.5.30(typescript@6.0.2)) - '@vueuse/shared': 14.2.1(vue@3.5.30(typescript@6.0.2)) + '@tanstack/vue-virtual': 3.13.23(vue@3.5.30) + '@vueuse/core': 14.2.1(vue@3.5.30) + '@vueuse/shared': 14.2.1(vue@3.5.30) aria-hidden: 1.2.6 defu: 6.1.4 ohash: 2.0.11 @@ -21308,7 +21309,7 @@ snapshots: reusify@1.1.0: {} - rolldown-plugin-dts@0.22.5(oxc-resolver@11.19.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2))(rolldown@1.0.0-rc.9(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2))(typescript@6.0.2)(vue-tsc@3.2.6(typescript@6.0.2)): + rolldown-plugin-dts@0.22.5(oxc-resolver@11.19.1)(rolldown@1.0.0-rc.9)(typescript@6.0.2)(vue-tsc@3.2.6): dependencies: '@babel/generator': 8.0.0-rc.2 '@babel/helper-validator-identifier': 8.0.0-rc.2 @@ -21316,7 +21317,7 @@ snapshots: '@babel/types': 8.0.0-rc.2 ast-kit: 3.0.0-beta.1 birpc: 4.0.0 - dts-resolver: 2.1.3(oxc-resolver@11.19.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)) + dts-resolver: 2.1.3(oxc-resolver@11.19.1) get-tsconfig: 4.13.7 obug: 2.1.1 rolldown: 1.0.0-rc.9(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) @@ -21398,7 +21399,7 @@ snapshots: - '@emnapi/core' - '@emnapi/runtime' - rollup-plugin-visualizer@6.0.11(rolldown@1.0.0-rc.12(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2))(rollup@4.60.1): + rollup-plugin-visualizer@6.0.11(rolldown@1.0.0-rc.12)(rollup@4.60.1): dependencies: open: 8.4.2 picomatch: 4.0.4 @@ -21408,7 +21409,7 @@ snapshots: rolldown: 1.0.0-rc.12(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) rollup: 4.60.1 - rollup-plugin-visualizer@7.0.1(rolldown@1.0.0-rc.12(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2))(rollup@4.60.1): + rollup-plugin-visualizer@7.0.1(rolldown@1.0.0-rc.12)(rollup@4.60.1): dependencies: open: 11.0.0 picomatch: 4.0.4 @@ -21693,7 +21694,7 @@ snapshots: shell-quote@1.8.3: {} - shiki-stream@0.1.4(react@19.2.4)(vue@3.5.30(typescript@6.0.2)): + shiki-stream@0.1.4(react@19.2.4)(vue@3.5.30): dependencies: '@shikijs/core': 3.23.0 optionalDependencies: @@ -21776,7 +21777,7 @@ snapshots: sisteransi@1.0.5: {} - site-config-stack@3.2.21(vue@3.5.30(typescript@6.0.2)): + site-config-stack@3.2.21(vue@3.5.30): dependencies: ufo: 1.6.3 vue: 3.5.30(typescript@6.0.2) @@ -21857,18 +21858,18 @@ snapshots: es-errors: 1.3.0 internal-slot: 1.1.0 - storybook-i18n@10.1.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(storybook@10.3.4(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)): + storybook-i18n@10.1.1(react-dom@19.2.4)(react@19.2.4)(storybook@10.3.4): dependencies: - '@storybook/icons': 2.0.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - storybook: 10.3.4(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@storybook/icons': 2.0.1(react-dom@19.2.4)(react@19.2.4) + storybook: 10.3.4(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4)(react@19.2.4) transitivePeerDependencies: - react - react-dom - storybook@10.3.4(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4): + storybook@10.3.4(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4)(react@19.2.4): dependencies: '@storybook/global': 5.0.0 - '@storybook/icons': 2.0.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@storybook/icons': 2.0.1(react-dom@19.2.4)(react@19.2.4) '@testing-library/jest-dom': 6.9.1 '@testing-library/user-event': 14.6.1(@testing-library/dom@10.4.1) '@vitest/expect': 3.2.4 @@ -22034,7 +22035,7 @@ snapshots: picocolors: 1.1.1 sax: 1.6.0 - swrv@1.2.0(vue@3.5.30(typescript@6.0.2)): + swrv@1.2.0(vue@3.5.30): dependencies: vue: 3.5.30(typescript@6.0.2) @@ -22104,7 +22105,7 @@ snapshots: type-fest: 0.16.0 unique-string: 2.0.0 - terser-webpack-plugin@5.4.0(esbuild@0.27.7)(webpack@5.105.4(esbuild@0.27.7)): + terser-webpack-plugin@5.4.0(esbuild@0.27.7)(webpack@5.105.4): dependencies: '@jridgewell/trace-mapping': 0.3.31 jest-worker: 27.5.1 @@ -22203,7 +22204,7 @@ snapshots: '@ts-morph/common': 0.28.1 code-block-writer: 13.0.3 - tsdown@0.21.4(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(oxc-resolver@11.19.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2))(typescript@6.0.2)(vue-tsc@3.2.6(typescript@6.0.2)): + tsdown@0.21.4(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(oxc-resolver@11.19.1)(typescript@6.0.2)(vue-tsc@3.2.6): dependencies: ansis: 4.2.0 cac: 7.0.0 @@ -22214,7 +22215,7 @@ snapshots: obug: 2.1.1 picomatch: 4.0.4 rolldown: 1.0.0-rc.9(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) - rolldown-plugin-dts: 0.22.5(oxc-resolver@11.19.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2))(rolldown@1.0.0-rc.9(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2))(typescript@6.0.2)(vue-tsc@3.2.6(typescript@6.0.2)) + rolldown-plugin-dts: 0.22.5(oxc-resolver@11.19.1)(rolldown@1.0.0-rc.9)(typescript@6.0.2)(vue-tsc@3.2.6) semver: 7.7.4 tinyexec: 1.0.4 tinyglobby: 0.2.15 @@ -22462,7 +22463,7 @@ snapshots: universalify@2.0.1: {} - unocss@66.6.7(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@unocss/webpack@66.6.7(webpack@5.105.4(esbuild@0.27.7)))(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3)): + unocss@66.6.7(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@unocss/webpack@66.6.7)(vite@8.0.0-beta.18): dependencies: '@unocss/cli': 66.6.7 '@unocss/core': 66.6.7 @@ -22480,9 +22481,9 @@ snapshots: '@unocss/transformer-compile-class': 66.6.7 '@unocss/transformer-directives': 66.6.7 '@unocss/transformer-variant-group': 66.6.7 - '@unocss/vite': 66.6.7(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3)) + '@unocss/vite': 66.6.7(vite@8.0.0-beta.18) optionalDependencies: - '@unocss/webpack': 66.6.7(webpack@5.105.4(esbuild@0.27.7)) + '@unocss/webpack': 66.6.7(webpack@5.105.4) transitivePeerDependencies: - '@emnapi/core' - '@emnapi/runtime' @@ -22490,7 +22491,7 @@ snapshots: unpipe@1.0.0: {} - unplugin-auto-import@21.0.0(@nuxt/kit@4.4.2(magicast@0.5.2))(@vueuse/core@14.2.1(vue@3.5.30(typescript@6.0.2))): + unplugin-auto-import@21.0.0(@nuxt/kit@4.4.2)(@vueuse/core@14.2.1): dependencies: local-pkg: 1.1.2 magic-string: 0.30.21 @@ -22500,14 +22501,14 @@ snapshots: unplugin-utils: 0.3.1 optionalDependencies: '@nuxt/kit': 4.4.2(magicast@0.5.2) - '@vueuse/core': 14.2.1(vue@3.5.30(typescript@6.0.2)) + '@vueuse/core': 14.2.1(vue@3.5.30) unplugin-utils@0.3.1: dependencies: pathe: 2.0.3 picomatch: 4.0.4 - unplugin-vue-components@31.1.0(@nuxt/kit@4.4.2(magicast@0.5.2))(vue@3.5.30(typescript@6.0.2)): + unplugin-vue-components@31.1.0(@nuxt/kit@4.4.2)(vue@3.5.30): dependencies: chokidar: 5.0.0 local-pkg: 1.1.2 @@ -22522,7 +22523,7 @@ snapshots: optionalDependencies: '@nuxt/kit': 4.4.2(magicast@0.5.2) - unplugin-vue-markdown@30.0.0(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3)): + unplugin-vue-markdown@30.0.0(vite@8.0.0-beta.18): dependencies: '@mdit-vue/plugin-component': 3.0.2 '@mdit-vue/plugin-frontmatter': 3.0.2 @@ -22532,10 +22533,10 @@ snapshots: unplugin-utils: 0.3.1 vite: 8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3) - unplugin-vue-router@0.16.2(@vue/compiler-sfc@3.5.32)(vue-router@4.6.4(vue@3.5.30(typescript@6.0.2)))(vue@3.5.30(typescript@6.0.2)): + unplugin-vue-router@0.16.2(@vue/compiler-sfc@3.5.32)(vue-router@4.6.4)(vue@3.5.30): dependencies: '@babel/generator': 7.29.1 - '@vue-macros/common': 3.1.2(vue@3.5.30(typescript@6.0.2)) + '@vue-macros/common': 3.1.2(vue@3.5.30) '@vue/compiler-sfc': 3.5.32 '@vue/language-core': 3.2.6 ast-walker-scope: 0.8.3 @@ -22553,14 +22554,14 @@ snapshots: unplugin-utils: 0.3.1 yaml: 2.8.3 optionalDependencies: - vue-router: 4.6.4(vue@3.5.30(typescript@6.0.2)) + vue-router: 4.6.4(vue@3.5.30) transitivePeerDependencies: - vue - unplugin-vue-router@0.19.2(@vue/compiler-sfc@3.5.32)(vue-router@4.6.4(vue@3.5.30(typescript@6.0.2)))(vue@3.5.30(typescript@6.0.2)): + unplugin-vue-router@0.19.2(@vue/compiler-sfc@3.5.32)(vue-router@4.6.4)(vue@3.5.30): dependencies: '@babel/generator': 7.29.1 - '@vue-macros/common': 3.1.2(vue@3.5.30(typescript@6.0.2)) + '@vue-macros/common': 3.1.2(vue@3.5.30) '@vue/compiler-sfc': 3.5.32 '@vue/language-core': 3.2.6 ast-walker-scope: 0.8.3 @@ -22578,7 +22579,7 @@ snapshots: unplugin-utils: 0.3.1 yaml: 2.8.3 optionalDependencies: - vue-router: 4.6.4(vue@3.5.30(typescript@6.0.2)) + vue-router: 4.6.4(vue@3.5.30) transitivePeerDependencies: - vue @@ -22607,7 +22608,7 @@ snapshots: - '@emnapi/core' - '@emnapi/runtime' - unstorage@1.17.5(@upstash/redis@1.37.0)(db0@0.3.4(better-sqlite3@12.8.0))(ioredis@5.10.1): + unstorage@1.17.5(@upstash/redis@1.37.0)(db0@0.3.4)(ioredis@5.10.1): dependencies: anymatch: 3.1.3 chokidar: 5.0.0 @@ -22675,10 +22676,10 @@ snapshots: vary@1.1.2: {} - vaul-vue@0.4.1(reka-ui@2.8.2(vue@3.5.30(typescript@6.0.2)))(vue@3.5.30(typescript@6.0.2)): + vaul-vue@0.4.1(reka-ui@2.8.2)(vue@3.5.30): dependencies: - '@vueuse/core': 10.11.1(vue@3.5.30(typescript@6.0.2)) - reka-ui: 2.8.2(vue@3.5.30(typescript@6.0.2)) + '@vueuse/core': 10.11.1(vue@3.5.30) + reka-ui: 2.8.2(vue@3.5.30) vue: 3.5.30(typescript@6.0.2) transitivePeerDependencies: - '@vue/composition-api' @@ -22698,19 +22699,19 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.3 - virtua@0.48.8(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(vue@3.5.30(typescript@6.0.2)): + virtua@0.48.8(react-dom@19.2.4)(react@19.2.4)(vue@3.5.30): optionalDependencies: react: 19.2.4 react-dom: 19.2.4(react@19.2.4) vue: 3.5.30(typescript@6.0.2) - vite-dev-rpc@1.1.0(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3)): + vite-dev-rpc@1.1.0(vite@8.0.0-beta.18): dependencies: birpc: 2.9.0 vite: 8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3) - vite-hot-client: 2.1.0(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3)) + vite-hot-client: 2.1.0(vite@8.0.0-beta.18) - vite-hot-client@2.1.0(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3)): + vite-hot-client@2.1.0(vite@8.0.0-beta.18): dependencies: vite: 8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3) @@ -22741,7 +22742,7 @@ snapshots: - unplugin-unused - yaml - vite-plugin-checker@0.12.0(@voidzero-dev/vite-plus-core@0.1.12(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(yaml@2.8.3))(eslint@10.2.0(jiti@2.6.1))(optionator@0.9.4)(oxlint@1.55.0(oxlint-tsgolint@0.17.0))(typescript@6.0.2)(vue-tsc@3.2.6(typescript@6.0.2)): + vite-plugin-checker@0.12.0(@voidzero-dev/vite-plus-core@0.1.12)(eslint@10.2.0)(optionator@0.9.4)(oxlint@1.55.0)(typescript@6.0.2)(vue-tsc@3.2.6): dependencies: '@babel/code-frame': 7.29.0 chokidar: 4.0.3 @@ -22759,7 +22760,7 @@ snapshots: typescript: 6.0.2 vue-tsc: 3.2.6(typescript@6.0.2) - vite-plugin-inspect@11.3.3(@nuxt/kit@4.4.2(magicast@0.5.2))(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3)): + vite-plugin-inspect@11.3.3(@nuxt/kit@4.4.2)(vite@8.0.0-beta.18): dependencies: ansis: 4.2.0 debug: 4.4.3 @@ -22770,13 +22771,13 @@ snapshots: sirv: 3.0.2 unplugin-utils: 0.3.1 vite: 8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3) - vite-dev-rpc: 1.1.0(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3)) + vite-dev-rpc: 1.1.0(vite@8.0.0-beta.18) optionalDependencies: '@nuxt/kit': 4.4.2(magicast@0.5.2) transitivePeerDependencies: - supports-color - vite-plugin-pwa@1.2.0(@vite-pwa/assets-generator@1.0.2)(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3))(workbox-build@7.4.0)(workbox-window@7.4.0): + vite-plugin-pwa@1.2.0(@vite-pwa/assets-generator@1.0.2)(vite@8.0.0-beta.18)(workbox-build@7.4.0)(workbox-window@7.4.0): dependencies: debug: 4.4.3 pretty-bytes: 6.1.1 @@ -22789,7 +22790,7 @@ snapshots: transitivePeerDependencies: - supports-color - vite-plugin-vue-tracer@1.3.0(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3))(vue@3.5.30(typescript@6.0.2)): + vite-plugin-vue-tracer@1.3.0(vite@8.0.0-beta.18)(vue@3.5.30): dependencies: estree-walker: 3.0.3 exsolve: 1.0.8 @@ -22799,11 +22800,11 @@ snapshots: vite: 8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3) vue: 3.5.30(typescript@6.0.2) - vite-plus@0.1.12(@opentelemetry/api@1.9.0)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3))(yaml@2.8.3): + vite-plus@0.1.12(@opentelemetry/api@1.9.0)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18)(yaml@2.8.3): dependencies: '@oxc-project/types': 0.115.0 '@voidzero-dev/vite-plus-core': 0.1.12(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(yaml@2.8.3) - '@voidzero-dev/vite-plus-test': 0.1.12(@opentelemetry/api@1.9.0)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3))(yaml@2.8.3) + '@voidzero-dev/vite-plus-test': 0.1.12(@opentelemetry/api@1.9.0)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18)(yaml@2.8.3) cac: 6.7.14 cross-spawn: 7.0.6 oxfmt: 0.40.0 @@ -22864,9 +22865,9 @@ snapshots: - '@emnapi/core' - '@emnapi/runtime' - vitest-environment-nuxt@1.0.1(@playwright/test@1.58.2)(@voidzero-dev/vite-plus-test@0.1.12(@opentelemetry/api@1.9.0)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3))(yaml@2.8.3))(@vue/test-utils@2.4.6)(crossws@0.4.4(srvx@0.11.15))(magicast@0.5.2)(playwright-core@1.59.1)(typescript@6.0.2)(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3)): + vitest-environment-nuxt@1.0.1(@playwright/test@1.58.2)(@voidzero-dev/vite-plus-test@0.1.12)(@vue/test-utils@2.4.6)(crossws@0.4.4)(magicast@0.5.2)(playwright-core@1.59.1)(typescript@6.0.2)(vite@8.0.0-beta.18): dependencies: - '@nuxt/test-utils': 4.0.0(@playwright/test@1.58.2)(@voidzero-dev/vite-plus-test@0.1.12(@opentelemetry/api@1.9.0)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3))(yaml@2.8.3))(@vue/test-utils@2.4.6)(crossws@0.4.4(srvx@0.11.15))(magicast@0.5.2)(playwright-core@1.59.1)(typescript@6.0.2)(vite@8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3)) + '@nuxt/test-utils': 4.0.0(@playwright/test@1.58.2)(@voidzero-dev/vite-plus-test@0.1.12)(@vue/test-utils@2.4.6)(crossws@0.4.4)(magicast@0.5.2)(playwright-core@1.59.1)(typescript@6.0.2)(vite@8.0.0-beta.18) transitivePeerDependencies: - '@cucumber/cucumber' - '@jest/globals' @@ -22912,17 +22913,17 @@ snapshots: vue-component-type-helpers@3.2.6: {} - vue-data-ui@3.17.11(vue@3.5.30(typescript@6.0.2)): + vue-data-ui@3.17.11(vue@3.5.30): dependencies: vue: 3.5.30(typescript@6.0.2) - vue-demi@0.14.10(vue@3.5.30(typescript@6.0.2)): + vue-demi@0.14.10(vue@3.5.30): dependencies: vue: 3.5.30(typescript@6.0.2) vue-devtools-stub@0.1.0: {} - vue-docgen-api@4.79.2(vue@3.5.30(typescript@6.0.2)): + vue-docgen-api@4.79.2(vue@3.5.30): dependencies: '@babel/parser': 7.29.2 '@babel/types': 7.29.0 @@ -22936,7 +22937,7 @@ snapshots: recast: 0.23.11 ts-map: 1.0.3 vue: 3.5.30(typescript@6.0.2) - vue-inbrowser-compiler-independent-utils: 4.71.1(vue@3.5.30(typescript@6.0.2)) + vue-inbrowser-compiler-independent-utils: 4.71.1(vue@3.5.30) vue-i18n-extract@2.0.7: dependencies: @@ -22946,7 +22947,7 @@ snapshots: is-valid-glob: 1.0.0 js-yaml: 4.1.1 - vue-i18n@11.3.1(vue@3.5.30(typescript@6.0.2)): + vue-i18n@11.3.1(vue@3.5.30): dependencies: '@intlify/core-base': 11.3.1 '@intlify/devtools-types': 11.3.1 @@ -22954,11 +22955,11 @@ snapshots: '@vue/devtools-api': 6.6.4 vue: 3.5.30(typescript@6.0.2) - vue-inbrowser-compiler-independent-utils@4.71.1(vue@3.5.30(typescript@6.0.2)): + vue-inbrowser-compiler-independent-utils@4.71.1(vue@3.5.30): dependencies: vue: 3.5.30(typescript@6.0.2) - vue-router@4.6.4(vue@3.5.30(typescript@6.0.2)): + vue-router@4.6.4(vue@3.5.30): dependencies: '@vue/devtools-api': 6.6.4 vue: 3.5.30(typescript@6.0.2) @@ -22974,7 +22975,7 @@ snapshots: '@vue/compiler-dom': 3.5.30 '@vue/compiler-sfc': 3.5.30 '@vue/runtime-dom': 3.5.30 - '@vue/server-renderer': 3.5.30(vue@3.5.30(typescript@6.0.2)) + '@vue/server-renderer': 3.5.30(vue@3.5.30) '@vue/shared': 3.5.30 optionalDependencies: typescript: 6.0.2 @@ -23022,7 +23023,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 4.3.3 tapable: 2.3.2 - terser-webpack-plugin: 5.4.0(esbuild@0.27.7)(webpack@5.105.4(esbuild@0.27.7)) + terser-webpack-plugin: 5.4.0(esbuild@0.27.7)(webpack@5.105.4) watchpack: 2.5.1 webpack-sources: 3.3.4 transitivePeerDependencies: diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 13cb67690f..4ff882a1b1 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -17,6 +17,8 @@ allowBuilds: 'unrs-resolver': false 'vue-demi': false +dedupePeers: true + overrides: sharp: 0.34.5 vite: npm:@voidzero-dev/vite-plus-core@0.1.12 From 57687cc8dd5886f91fa9b7aba29f0674289ac023 Mon Sep 17 00:00:00 2001 From: Bugo <229402+dragomano@users.noreply.github.com> Date: Thu, 9 Apr 2026 08:06:00 +0500 Subject: [PATCH 03/20] fix(i18n): update Russian translations (#2429) Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --- i18n/locales/ru-RU.json | 154 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 151 insertions(+), 3 deletions(-) diff --git a/i18n/locales/ru-RU.json b/i18n/locales/ru-RU.json index 2693510b8b..55f96fa0cc 100644 --- a/i18n/locales/ru-RU.json +++ b/i18n/locales/ru-RU.json @@ -28,6 +28,9 @@ "search": "Поиск", "package": "Пакет" }, + "ctrl_key": "Ctrl", + "command_palette": "Открыть палитру команд", + "command_palette_description": "Используйте палитру команд для перехода между страницами, представлениями пакетов, настройками и внешними ссылками, не отрывая рук от клавиатуры. На macOS нажмите ⌘K. На Windows и Linux нажмите {ctrlKey}+K.", "focus_search": "Фокус на поиске", "show_kbd_hints": "Подсветить подсказки клавиш", "settings": "Открыть настройки", @@ -76,6 +79,113 @@ "instant_search_turn_off": "выключить", "instant_search_advisory": "{label} {state} — {action}" }, + "command_palette": { + "title": "палитра команд", + "quick_actions": "перейти к...", + "subtitle": "быстрая навигация по npmx и переключение настроек", + "subtitle_languages": "выберите язык или помогите улучшить переводы", + "instructions": "Введите текст для фильтрации команд. Используйте стрелки для перемещения по результатам и Enter для выполнения команды.", + "input_label": "Поиск в палитре команд", + "results_label": "Результаты команд", + "placeholder": "введите команду...", + "back": "Назад", + "empty": "Нет подходящих команд", + "empty_search_hint": "Нажмите Enter для поиска «{query}».", + "current": "текущий", + "here": "вы здесь", + "connected": "подключено", + "state": { + "on": "вкл", + "off": "выкл" + }, + "groups": { + "actions": "Действия", + "help": "Помощь", + "language": "Язык", + "connections": "Подключения", + "navigation": "Навигация", + "links": "Ссылки", + "npmx": "npmx", + "package": "Пакет", + "package_with_name": "Пакет ({name})", + "versions": "Версии", + "versions_with_name": "Версии {name}" + }, + "actions": { + "search": "Поиск", + "search_for": "Искать «{query}»", + "keyboard_shortcuts": "Горячие клавиши", + "help_translate": "Помочь с переводом" + }, + "connections": { + "npm_connect": "Подключить npm CLI", + "npm_connected": "npm CLI (~{username})", + "npm_disconnect": "Отключить npm CLI", + "atmosphere_connect": "Подключить Atmosphere", + "atmosphere_connected": "atmosphere ({'@'}{handle})", + "atmosphere_disconnect": "Отключить Atmosphere" + }, + "navigation": { + "home": "главная", + "packages": "пакеты (~{username})", + "orgs": "организации (~{username})", + "profile": "профиль ({'@'}{handle})" + }, + "links": { + "external": "Внешняя ссылка" + }, + "package_links": { + "stars": "Звёзды репозитория", + "forks": "Форки репозитория" + }, + "theme": { + "system": "Использовать системную тему", + "light": "Использовать светлую тему", + "dark": "Использовать тёмную тему" + }, + "package": { + "main": "Страница пакета", + "docs": "Документация", + "code": "Код", + "diff": "Различия", + "compare": "Сравнить этот пакет", + "download": "Скачать архив" + }, + "package_actions": { + "copy_run": "Скопировать команду запуска" + }, + "code": { + "copy_file": "Скопировать содержимое файла" + }, + "diff": { + "merge_modified_lines": "Объединить изменённые строки", + "word_wrap": "Перенос строк" + }, + "version": { + "label": "{version}" + }, + "status": { + "available_in_context": "{context}. Команд нет | {context}. Доступна 1 команда | {context}. Доступно {count} команды | {context}. Доступно {count} команд", + "matching_in_context": "{context}. Нет подходящих команд | {context}. Найдена 1 команда | {context}. Найдено {count} команды | {context}. Найдено {count} команд", + "no_matches_search_in_context": "{context}. Нет подходящих команд. Нажмите Enter для поиска «{query}»." + }, + "announcements": { + "language_changed": "Язык изменён на {language}.", + "relative_dates_on": "Относительные даты включены.", + "relative_dates_off": "Относительные даты выключены.", + "theme_changed": "Тема изменена на {theme}.", + "accent_color_changed": "Акцентный цвет изменён на {color}.", + "background_theme_changed": "Оттенок фона изменён на {theme}.", + "download_started": "Скачивание архива {package}.", + "copied_to_clipboard": "Скопировано в буфер обмена.", + "npm_disconnected": "npm CLI отключён.", + "atmosphere_disconnected": "Atmosphere отключён.", + "facets_all_selected": "Выбраны все фасеты.", + "facets_all_deselected": "Выбор всех фасетов снят.", + "view_switched": "Переключено на вид «{view}».", + "setting_toggled": "{setting} {state}." + } + }, "nav": { "main_navigation": "Главное", "popular_packages": "Популярные пакеты", @@ -151,6 +261,7 @@ "translation_status": "Статус переводов по всему проекту", "accent_colors": { "label": "Акцентные цвета", + "neutral": "Нейтральный", "sky": "Небесный", "coral": "Коралловый", "amber": "Янтарный", @@ -201,6 +312,8 @@ "warnings": "Предупреждения:", "go_back_home": "Вернуться на главную", "per_week": "/ неделю", + "yes": "Да", + "no": "Нет", "vanity_downloads_hint": "Метрика тщеславия: пакеты не отображаются | Метрика тщеславия: для отображаемого пакета | Метрика тщеславия: сумма {count} отображаемых пакетов", "sort": { "name": "имя", @@ -223,11 +336,14 @@ "gitea": "Открыть на Gitea", "gitee": "Открыть на Gitee", "radicle": "Открыть на Radicle", + "socket_dev": "Посмотреть на socket.dev", "sourcehut": "Открыть на SourceHut", "tangled": "Открыть на Tangled" }, "collapse": "Свернуть", - "expand": "Развернуть" + "collapse_with_name": "Свернуть {name}", + "expand": "Развернуть", + "expand_with_name": "Развернуть {name}" }, "profile": { "display_name": "Отображаемое имя", @@ -826,8 +942,12 @@ "lines": "{count} строк", "toggle_tree": "Переключить дерево файлов", "close_tree": "Закрыть дерево файлов", + "copy_content": "Скопировать содержимое файла", "copy_link": "Скопировать ссылку", "view_raw": "Посмотреть исходный файл", + "toggle_container": "Переключить ширину контейнера кода", + "open_raw_file": "Открыть исходный файл", + "open_path_dropdown": "Открыть список сегментов пути", "file_too_large": "Файл слишком большой для предпросмотра", "file_size_warning": "{size} превышает лимит в 500 КБ для подсветки синтаксиса", "failed_to_load": "Не удалось загрузить файл", @@ -1118,6 +1238,33 @@ "packages_selected": "Выбрано пакетов: {count}/{max}.", "add_hint": "Добавьте как минимум 2 пакета для сравнения." }, + "quadrant_chart": { + "label_x_axis": "Востребованность", + "label_y_axis": "Эргономичность", + "label_top_right": "Надёжный выбор", + "label_bottom_right": "Популярно с компромиссами", + "label_bottom_left": "Избегать", + "label_top_left": "Скрытые жемчужины", + "title": "Востребованность против эргономичности пакетов", + "filename": "quadrant-ergonomics-traction-packages", + "label_freshness_score": "Оценка актуальности", + "copy_alt": { + "description": "Диаграмма-квадрант, сопоставляющая востребованность и эргономичность для {packages} пакетов. {analysis}. {watermark}.", + "side_analysis_top_right": "Следующие пакеты расположены в правом верхнем квадранте (надёжный выбор): {packages}", + "side_analysis_top_left": "Следующие пакеты расположены в левом верхнем квадранте (скрытые жемчужины): {packages}", + "side_analysis_bottom_right": "Следующие пакеты расположены в правом нижнем квадранте (популярно с компромиссами): {packages}", + "side_analysis_bottom_left": "Следующие пакеты расположены в левом нижнем квадранте (избегать): {packages}" + }, + "explanation": { + "tooltip_help": "Показать объяснение оценок", + "tooltip_help_adoption": "Показать объяснение оценки востребованности", + "tooltip_help_efficiency": "Показать объяснение оценки эргономичности", + "introduction": "Оценка вычисляется путём комбинирования нескольких сигналов по двум осям:", + "adoption": "Востребованность: отражает использование и активность (загрузки, актуальность, лайки)", + "efficiency": "Эргономичность: отражает footprint и качество (размер установки, зависимости, уязвимости, поддержка типов)", + "impact_details": "Каждая метрика вносит вклад с разным весом. Сильные сигналы, такие как загрузки и размер установки, оказывают наибольшее влияние, а остальные уточняют результат. Некоторые сигналы (например, уязвимости или устаревание) накладывают штрафы." + } + }, "no_dependency": { "label": "(Без зависимости)", "typeahead_title": "Что бы сделал Джеймс?", @@ -1401,7 +1548,7 @@ }, "contact": { "title": "Обратная связь", - "p1": "Если вы столкнулись с какими-либо препятствиями при использовании {app}, пожалуйста, сообщите нам об этом, создав тикет (issue) в нашем {link}. Мы серьезно относимся к таким сообщениям и сделаем все возможное, чтобы исправить ситуацию.", + "p1": "Если вы столкнулись с какими-либо препятствиями при использовании {app}, пожалуйста, сообщите нам об этом, создав тикет (issue) в нашем {link}. Мы серьезно относимся к таким сообщениям и сделаем всё возможное, чтобы исправить ситуацию.", "link": "репозитории GitHub" } }, @@ -1517,5 +1664,6 @@ "message": "Для нас важна доступность, и мы будем рады, если вы разделите этот подход. При использовании материалов обеспечьте достаточный контраст с фоном и не уменьшайте размер меньше 24px. Если нужны другие ресурсы или информация о проекте, напишите нам: {link}.", "discord_link_text": "chat.npmx.dev" } - } + }, + "alt_logo_kawaii": "Милая, округлая и красочная версия логотипа npmx." } From 69cdfd41fa75cf8e29844df5c8238faa6cf1dcab Mon Sep 17 00:00:00 2001 From: Alex Savelyev <91429106+alexdln@users.noreply.github.com> Date: Thu, 9 Apr 2026 16:24:03 +0100 Subject: [PATCH 04/20] chore: manually add vite plus pre-commit hook (#2434) Co-authored-by: Willow (GHOST) --- .vite-hooks/pre-commit | 1 + 1 file changed, 1 insertion(+) create mode 100644 .vite-hooks/pre-commit diff --git a/.vite-hooks/pre-commit b/.vite-hooks/pre-commit new file mode 100644 index 0000000000..85fb65b4fc --- /dev/null +++ b/.vite-hooks/pre-commit @@ -0,0 +1 @@ +vp staged From ac83c568deff2bbba2df0a04229f1e7c934e8034 Mon Sep 17 00:00:00 2001 From: Trivikram Kamat <16024985+trivikr@users.noreply.github.com> Date: Thu, 9 Apr 2026 08:46:00 -0700 Subject: [PATCH 05/20] perf: parallelize jsDelivr README fallback probes (#2384) Co-authored-by: Willow (GHOST) --- server/utils/readme-loaders.ts | 69 ++++++-- test/unit/server/utils/readme-loaders.spec.ts | 163 ++++++++++++++++++ 2 files changed, 218 insertions(+), 14 deletions(-) diff --git a/server/utils/readme-loaders.ts b/server/utils/readme-loaders.ts index 116e4a1a1f..41d8d0df65 100644 --- a/server/utils/readme-loaders.ts +++ b/server/utils/readme-loaders.ts @@ -19,14 +19,28 @@ const standardReadmeFilenames = [ /** Matches standard README filenames (case-insensitive, for checking registry metadata) */ const standardReadmePattern = /^readme(?:\.md|\.markdown)?$/i +const JSDELIVR_README_FETCH_BATCH_SIZE = 3 export function isStandardReadme(filename: string | undefined): boolean { return !!filename && standardReadmePattern.test(filename) } +async function cancelUnreadBatchResponses( + responses: Array, + startIndex: number, +): Promise { + await Promise.allSettled(responses.slice(startIndex).map(response => response?.body?.cancel())) +} + +function buildReadmeFetchCandidates(readmeFilename: string | undefined): string[] { + return readmeFilename + ? standardReadmeFilenames.filter(name => name !== readmeFilename) + : standardReadmeFilenames +} + /** * Fetch README from jsdelivr CDN for a specific package version. - * Falls back through common README filenames. + * Falls back through candidate README filenames in small parallel batches. */ export async function fetchReadmeFromJsdelivr( packageName: string, @@ -35,15 +49,30 @@ export async function fetchReadmeFromJsdelivr( ): Promise { const versionSuffix = version ? `@${version}` : '' - for (const filename of readmeFilenames) { - try { - const url = `https://cdn.jsdelivr.net/npm/${packageName}${versionSuffix}/${filename}` - const response = await fetch(url) - if (response.ok) { - return await response.text() + for (let index = 0; index < readmeFilenames.length; index += JSDELIVR_README_FETCH_BATCH_SIZE) { + const batch = readmeFilenames.slice(index, index + JSDELIVR_README_FETCH_BATCH_SIZE) + const responses = await Promise.all( + batch.map(async filename => { + try { + const url = `https://cdn.jsdelivr.net/npm/${packageName}${versionSuffix}/${filename}` + const response = await fetch(url) + if (!response.ok) { + return null + } + + return response + } catch { + return null + } + }), + ) + + for (const [responseIndex, response] of responses.entries()) { + const text = await response?.text() + if (text?.trim()) { + await cancelUnreadBatchResponses(responses, responseIndex + 1) + return text } - } catch { - // Try next filename } } @@ -85,11 +114,23 @@ export const resolvePackageReadmeSource = defineCachedFunction( readmeContent!.length >= NPM_README_TRUNCATION_THRESHOLD ) { const resolvedVersion = version ?? packageData['dist-tags']?.latest - const jsdelivrReadme = await fetchReadmeFromJsdelivr( - packageName, - standardReadmeFilenames, - resolvedVersion, - ) + + // try fetching the given readme file first + let jsdelivrReadme = + readmeFilename && + (await fetchReadmeFromJsdelivr(packageName, [readmeFilename], resolvedVersion)) + + // if it's unsuccessful, fetch all known readme filenames + if (!jsdelivrReadme) { + const readmeCandidates = buildReadmeFetchCandidates(readmeFilename) + jsdelivrReadme = await fetchReadmeFromJsdelivr( + packageName, + readmeCandidates, + resolvedVersion, + ) + } + + // if we found something, use it if (jsdelivrReadme) { readmeContent = jsdelivrReadme } diff --git a/test/unit/server/utils/readme-loaders.spec.ts b/test/unit/server/utils/readme-loaders.spec.ts index 2440663088..f3b9d0ca43 100644 --- a/test/unit/server/utils/readme-loaders.spec.ts +++ b/test/unit/server/utils/readme-loaders.spec.ts @@ -38,6 +38,15 @@ describe('isStandardReadme', () => { }) describe('fetchReadmeFromJsdelivr', () => { + beforeEach(() => { + vi.unstubAllGlobals() + vi.stubGlobal('defineCachedFunction', (fn: Function) => fn) + vi.stubGlobal('$fetch', $fetchMock) + vi.stubGlobal('parsePackageParams', parsePackageParams) + vi.stubGlobal('fetchNpmPackage', fetchNpmPackageMock) + vi.stubGlobal('parseRepositoryInfo', parseRepositoryInfoMock) + }) + it('returns content when first filename succeeds', async () => { const content = '# Package' const fetchMock = vi.fn().mockResolvedValue({ @@ -73,6 +82,86 @@ describe('fetchReadmeFromJsdelivr', () => { expect(result).toBeNull() expect(fetchMock).toHaveBeenCalledTimes(2) }) + + it('starts a small batch of candidate fetches in parallel', async () => { + let resolveReadmeMd!: (value: { ok: false }) => void + let resolveLowercase!: (value: { ok: false }) => void + let resolveReadme!: (value: { ok: true; text: () => Promise }) => void + + const fetchMock = vi.fn((url: string) => { + if (url.endsWith('/README.md')) { + return new Promise(resolve => { + resolveReadmeMd = resolve + }) + } + + if (url.endsWith('/readme.md')) { + return new Promise(resolve => { + resolveLowercase = resolve + }) + } + + if (url.endsWith('/README')) { + return new Promise(resolve => { + resolveReadme = resolve + }) + } + + return Promise.resolve({ ok: false }) + }) + vi.stubGlobal('fetch', fetchMock) + + const resultPromise = fetchReadmeFromJsdelivr('pkg', [ + 'README.md', + 'readme.md', + 'README', + 'readme', + ]) + + expect(fetchMock).toHaveBeenCalledTimes(3) + expect(fetchMock.mock.calls.map(([url]) => url)).toEqual([ + 'https://cdn.jsdelivr.net/npm/pkg/README.md', + 'https://cdn.jsdelivr.net/npm/pkg/readme.md', + 'https://cdn.jsdelivr.net/npm/pkg/README', + ]) + + resolveReadmeMd({ ok: false }) + resolveLowercase({ ok: false }) + resolveReadme({ + ok: true, + text: async () => '# Package', + }) + + await expect(resultPromise).resolves.toBe('# Package') + expect(fetchMock).toHaveBeenCalledTimes(3) + }) + + it('reads only the matched successful response body', async () => { + const firstTextMock = vi.fn().mockResolvedValue('# First') + const secondTextMock = vi.fn().mockResolvedValue('# Second') + const secondCancelMock = vi.fn().mockResolvedValue(undefined) + const fetchMock = vi + .fn() + .mockResolvedValueOnce({ + ok: true, + text: firstTextMock, + }) + .mockResolvedValueOnce({ + ok: true, + text: secondTextMock, + body: { + cancel: secondCancelMock, + }, + }) + vi.stubGlobal('fetch', fetchMock) + + const result = await fetchReadmeFromJsdelivr('pkg', ['README.md', 'readme.md']) + + expect(result).toBe('# First') + expect(firstTextMock).toHaveBeenCalledTimes(1) + expect(secondTextMock).not.toHaveBeenCalled() + expect(secondCancelMock).toHaveBeenCalledTimes(1) + }) }) describe('resolvePackageReadmeSource', () => { @@ -172,6 +261,80 @@ describe('resolvePackageReadmeSource', () => { const result = await resolvePackageReadmeSource('pkg') expect(result).toMatchObject({ markdown: jsdelivrContent }) + expect(fetchMock).toHaveBeenNthCalledWith(1, 'https://cdn.jsdelivr.net/npm/pkg/DOCS.md') + }) + + it('tries a provided readmeFilename before starting the fallback batch', async () => { + let resolveDocs!: (value: { ok: false }) => void + let resolveReadmeMd!: (value: { ok: false }) => void + let resolveLowercase!: (value: { ok: false }) => void + let resolveReadmeCase!: (value: { ok: true; text: () => Promise }) => void + + fetchNpmPackageMock.mockResolvedValue({ + readme: undefined, + readmeFilename: 'DOCS.md', + repository: undefined, + versions: {}, + }) + parseRepositoryInfoMock.mockReturnValue(undefined) + + const fetchMock = vi.fn((url: string) => { + if (url.endsWith('/DOCS.md')) { + return new Promise(resolve => { + resolveDocs = resolve + }) + } + + if (url.endsWith('/README.md')) { + return new Promise(resolve => { + resolveReadmeMd = resolve + }) + } + + if (url.endsWith('/readme.md')) { + return new Promise(resolve => { + resolveLowercase = resolve + }) + } + + if (url.endsWith('/Readme.md')) { + return new Promise(resolve => { + resolveReadmeCase = resolve + }) + } + + return Promise.resolve({ ok: false }) + }) + vi.stubGlobal('fetch', fetchMock) + + const resultPromise = resolvePackageReadmeSource('pkg') + + await new Promise(resolve => setTimeout(resolve, 0)) + expect(fetchMock).toHaveBeenCalledTimes(1) + expect(fetchMock).toHaveBeenNthCalledWith(1, 'https://cdn.jsdelivr.net/npm/pkg/DOCS.md') + + resolveDocs({ ok: false }) + + await new Promise(resolve => setTimeout(resolve, 0)) + expect(fetchMock).toHaveBeenCalledTimes(4) + expect(fetchMock.mock.calls.slice(1).map(([url]) => url)).toEqual([ + 'https://cdn.jsdelivr.net/npm/pkg/README.md', + 'https://cdn.jsdelivr.net/npm/pkg/readme.md', + 'https://cdn.jsdelivr.net/npm/pkg/Readme.md', + ]) + + resolveReadmeMd({ ok: false }) + resolveLowercase({ ok: false }) + resolveReadmeCase({ + ok: true, + text: async () => '# From fallback batch', + }) + + await expect(resultPromise).resolves.toMatchObject({ + packageName: 'pkg', + markdown: '# From fallback batch', + repoInfo: undefined, + }) }) it('returns undefined markdown when no content and jsdelivr fails', async () => { From 922262099387fd6856ba36ca3b2f9ac79a33e053 Mon Sep 17 00:00:00 2001 From: "MK (fengmk2)" Date: Fri, 10 Apr 2026 00:31:49 +0800 Subject: [PATCH 06/20] chore: upgrade vite-plus to 0.1.16 (#2436) --- lunaria/components.ts | 246 ++++++++-------- lunaria/styles.ts | 4 +- package.json | 4 +- pnpm-lock.yaml | 643 ++++++++++++++++++++++-------------------- pnpm-workspace.yaml | 4 +- vite.config.ts | 1 + 6 files changed, 465 insertions(+), 437 deletions(-) diff --git a/lunaria/components.ts b/lunaria/components.ts index 930b2b422c..5caac7358a 100644 --- a/lunaria/components.ts +++ b/lunaria/components.ts @@ -38,61 +38,64 @@ export const Page = ( _lunaria: LunariaInstance, // currenly not in use ): string => { return html` - - - - ${Meta} ${BaseStyles} ${CustomStyles} - - - ${Body(config, status)} - - - ` + + + + ${Meta} ${BaseStyles} ${CustomStyles} + + + ${Body(config, status)} + + + ` } const Meta = html` - - - npmx - Translation Status - - - - - - - - - - - - + + + npmx - Translation Status + + + + + + + + + + + + ` const Body = (config: LunariaConfig, status: I18nStatus): string => { return html` -
-
-

npmx Translation Status

- ${TitleParagraph} ${StatusByLocale(config, status)} -
-
- ` +
+
+

npmx Translation Status

+ ${TitleParagraph} ${StatusByLocale(config, status)} +
+
+ ` } const StatusByLocale = (config: LunariaConfig, status: I18nStatus): string => { const { locales } = config return html` -

- Translation progress by locale -

- ${locales.map(locale => LocaleDetails(status, locale))} - ` +

+ Translation progress by locale +

+ ${locales.map(locale => LocaleDetails(status, locale))} + ` } const LocaleDetails = (status: I18nStatus, locale: Locale): string => { @@ -113,40 +116,39 @@ const LocaleDetails = (status: I18nStatus, locale: Locale): string => { } = localeStatus return html` -
- - ${label} ${lang} -
-
- - ${missingKeys.length ? `${missingKeys.length.toString()} missing keys` : '✔'} - +
+ + ${label} ${lang} +
+
+ + ${missingKeys.length ? `${missingKeys.length.toString()} missing keys` : '✔'} + ${completedKeys} / ${totalKeys} -
- ${ProgressBar(percentComplete)} -
-
- ${ContentDetailsLinks({ text: `i18n/locales/${lang}.json`, url: githubEditUrl }, githubHistoryUrl)} -
-
- ${ - missingKeys.length > 0 - ? html`${MissingKeysList(missingKeys)}` - : html` -

This translation is complete, amazing job! 🎉

- ` - } -
- ` +
+ ${ProgressBar(percentComplete)} +
+
+ ${ContentDetailsLinks( + { text: `i18n/locales/${lang}.json`, url: githubEditUrl }, + githubHistoryUrl, + )} +
+
+ ${missingKeys.length > 0 + ? html`${MissingKeysList(missingKeys)}` + : html`

This translation is complete, amazing job! 🎉

`} +
+ ` } const MissingKeysList = (missingKeys: string[]): string => { return html`
- Show missing keys -
    - ${missingKeys.map(key => html`
  • ${key}
  • `)} -
-
` + Show missing keys +
    + ${missingKeys.map(key => html`
  • ${key}
  • `)} +
+ ` } const ContentDetailsLinks = ( @@ -154,9 +156,9 @@ const ContentDetailsLinks = ( githubHistoryUrl: string, ): string => { return html` - ${Link(githubEditLink.url, githubEditLink.text)} | - ${Link(githubHistoryUrl, 'source change history')} - ` + ${Link(githubEditLink.url, githubEditLink.text)} | + ${Link(githubHistoryUrl, 'source change history')} + ` } const ProgressBar = (percentComplete: number): string => { @@ -175,10 +177,10 @@ const ProgressBar = (percentComplete: number): string => { } return html` - - ` + + ` } const Link = (href: string, text: string): string => { @@ -210,29 +212,29 @@ const _StatusByFile = ( ): string => { const { locales } = config return html` -

- Translation status by file -

-
- - - - ${['File', ...locales.map(({ lang }) => lang)].map(col => html``)} - - - ${TableBody(status, locales, lunaria)} -
${col}
-
- ❌ missing   🔄 outdated   ✔ done - ` +

+ Translation status by file +

+
+ + + + ${['File', ...locales.map(({ lang }) => lang)].map(col => html``)} + + + ${TableBody(status, locales, lunaria)} +
${col}
+
+ ❌ missing   🔄 outdated   ✔ done + ` } const TableBody = (status: LunariaStatus, locales: Locale[], lunaria: LunariaInstance): string => { const links = lunaria.gitHostingLinks() return html` - - ${status.map( + + ${status.map( file => html` @@ -243,8 +245,8 @@ const TableBody = (status: LunariaStatus, locales: Locale[], lunaria: LunariaIns `, )} - - ` + + ` } const TableContentStatus = ( @@ -293,11 +295,11 @@ const EmojiFileLink = ( return href ? html` - - ` + + ` : html` - - ` + + ` } const _CreateFileLink = (href: string, text: string): string => { @@ -311,20 +313,20 @@ const _SvgSummary = (config: LunariaConfig, status: LunariaStatus): string => { const localeHeight = 56 // Each locale’s summary is 56px high. const svgHeight = localeHeight * Math.ceil(config.locales.length / 2) return html` - ${config.locales + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 400 ${svgHeight}" + font-family="ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'" + > + ${config.locales .map(locale => SvgLocaleSummary(status, locale)) .sort((a, b) => b.progress - a.progress) .map( ({ svg }, index) => html`${svg}`, + >${svg}`, )} - ` + ` } function SvgLocaleSummary( @@ -359,18 +361,16 @@ function SvgLocaleSummary( return { progress: doneFraction, svg: html`${label} (${lang}) - - ${ - missingFiles.length == 0 && outdatedFiles.length == 0 - ? '100% complete, amazing job! 🎉' - : html`${doneLength} done, ${outdatedFiles.length} outdated, ${missingFiles.length} - missing` - } - - - - `, + >${label} (${lang}) + + ${missingFiles.length == 0 && outdatedFiles.length == 0 + ? '100% complete, amazing job! 🎉' + : html`${doneLength} done, ${outdatedFiles.length} outdated, ${missingFiles.length} + missing`} + + + + `, } } diff --git a/lunaria/styles.ts b/lunaria/styles.ts index 1dadd4a38b..b48936592d 100644 --- a/lunaria/styles.ts +++ b/lunaria/styles.ts @@ -5,8 +5,8 @@ export const BaseStyles = html` :root { /** Fonts */ --ln-font-fallback: - -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial, sans-serif, Apple Color Emoji, - Segoe UI Emoji; + -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial, sans-serif, + Apple Color Emoji, Segoe UI Emoji; --ln-font-body: 'Geist', 'IBM Plex Sans Arabic', var(--ln-font-fallback); --ln-font-mono: 'Geist Mono', 'IBM Plex Sans Arabic', monospace; diff --git a/package.json b/package.json index 38835219b0..700a80465a 100644 --- a/package.json +++ b/package.json @@ -106,7 +106,7 @@ "validate-npm-package-name": "7.0.2", "virtua": "0.48.8", "vite-plugin-pwa": "1.2.0", - "vite-plus": "0.1.12", + "vite-plus": "0.1.16", "vue": "3.5.30", "vue-data-ui": "3.17.11" }, @@ -140,7 +140,7 @@ "storybook-i18n": "catalog:storybook", "typescript": "6.0.2", "unplugin-vue-markdown": "30.0.0", - "vitest": "npm:@voidzero-dev/vite-plus-test@0.1.12", + "vitest": "npm:@voidzero-dev/vite-plus-test@0.1.16", "vue-i18n-extract": "2.0.7", "vue-tsc": "3.2.6" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 25df17e30b..80104d60ca 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -25,8 +25,8 @@ catalogs: overrides: sharp: 0.34.5 - vite: npm:@voidzero-dev/vite-plus-core@0.1.12 - vitest: npm:@voidzero-dev/vite-plus-test@0.1.12 + vite: npm:@voidzero-dev/vite-plus-core@0.1.16 + vitest: npm:@voidzero-dev/vite-plus-test@0.1.16 storybook: ^10.3.1 packageExtensionsChecksum: sha256-YBtmV2wlHHTKm5hOqoxwkw6LifLft12a+kUIp1CTUjY= @@ -96,13 +96,13 @@ importers: version: 0.13.2(@unhead/vue@2.1.13)(@upstash/redis@1.37.0)(db0@0.3.4)(ioredis@5.10.1)(magicast@0.5.2)(typescript@6.0.2)(vue@3.5.30) '@nuxt/test-utils': specifier: 4.0.0 - version: 4.0.0(@playwright/test@1.58.2)(@voidzero-dev/vite-plus-test@0.1.12)(@vue/test-utils@2.4.6)(crossws@0.4.4)(magicast@0.5.2)(playwright-core@1.59.1)(typescript@6.0.2)(vite@8.0.0-beta.18) + version: 4.0.0(@playwright/test@1.58.2)(@voidzero-dev/vite-plus-test@0.1.16)(@vue/test-utils@2.4.6)(crossws@0.4.4)(magicast@0.5.2)(playwright-core@1.59.1)(typescript@6.0.2)(vite@8.0.0-beta.18) '@nuxtjs/color-mode': specifier: 4.0.0 version: 4.0.0(magicast@0.5.2) '@nuxtjs/html-validator': specifier: 2.1.0 - version: 2.1.0(@voidzero-dev/vite-plus-test@0.1.12)(magicast@0.5.2) + version: 2.1.0(@voidzero-dev/vite-plus-test@0.1.16)(magicast@0.5.2) '@nuxtjs/i18n': specifier: 10.2.3 version: 10.2.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@upstash/redis@1.37.0)(@vue/compiler-dom@3.5.32)(db0@0.3.4)(eslint@10.2.0)(ioredis@5.10.1)(magicast@0.5.2)(rollup@4.60.1)(vue@3.5.30) @@ -174,7 +174,7 @@ importers: version: 2.11.0 nuxt: specifier: 4.3.1 - version: 4.3.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@parcel/watcher@2.5.6)(@types/node@24.12.0)(@upstash/redis@1.37.0)(@vue/compiler-sfc@3.5.32)(better-sqlite3@12.8.0)(cac@6.7.14)(db0@0.3.4)(eslint@10.2.0)(ioredis@5.10.1)(magicast@0.5.2)(optionator@0.9.4)(oxlint@1.55.0)(rolldown@1.0.0-rc.12)(rollup@4.60.1)(srvx@0.11.15)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18)(vue-tsc@3.2.6)(yaml@2.8.3) + version: 4.3.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@parcel/watcher@2.5.6)(@types/node@24.12.0)(@upstash/redis@1.37.0)(@vue/compiler-sfc@3.5.32)(better-sqlite3@12.8.0)(cac@6.7.14)(db0@0.3.4)(eslint@10.2.0)(ioredis@5.10.1)(magicast@0.5.2)(optionator@0.9.4)(oxlint@1.58.0)(rolldown@1.0.0-rc.12)(rollup@4.60.1)(srvx@0.11.15)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18)(vue-tsc@3.2.6)(yaml@2.8.3) nuxt-og-image: specifier: 5.1.13 version: 5.1.13(@unhead/vue@2.1.13)(magicast@0.5.2)(unstorage@1.17.5)(vite@8.0.0-beta.18)(vue@3.5.30) @@ -227,8 +227,8 @@ importers: specifier: 1.2.0 version: 1.2.0(@vite-pwa/assets-generator@1.0.2)(vite@8.0.0-beta.18)(workbox-build@7.4.0)(workbox-window@7.4.0) vite-plus: - specifier: 0.1.12 - version: 0.1.12(@opentelemetry/api@1.9.0)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18)(yaml@2.8.3) + specifier: 0.1.16 + version: 0.1.16(@opentelemetry/api@1.9.0)(@types/node@24.12.0)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18)(yaml@2.8.3) vue: specifier: 3.5.30 version: 3.5.30(typescript@6.0.2) @@ -238,7 +238,7 @@ importers: devDependencies: '@e18e/eslint-plugin': specifier: 0.3.0 - version: 0.3.0(eslint@10.2.0)(oxlint@1.55.0) + version: 0.3.0(eslint@10.2.0)(oxlint@1.58.0) '@intlify/core-base': specifier: 11.3.0 version: 11.3.0 @@ -250,13 +250,13 @@ importers: version: 1.58.2 '@storybook-vue/nuxt': specifier: catalog:storybook - version: 9.0.1(@types/node@24.12.0)(esbuild@0.27.7)(eslint@10.2.0)(magicast@0.5.2)(nuxt@4.3.1)(optionator@0.9.4)(oxlint@1.55.0)(rolldown@1.0.0-rc.12)(rollup-plugin-visualizer@7.0.1)(rollup@4.60.1)(storybook@10.3.4)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18)(vue-tsc@3.2.6)(vue@3.5.30)(yaml@2.8.3) + version: 9.0.1(@types/node@24.12.0)(eslint@10.2.0)(magicast@0.5.2)(nuxt@4.3.1)(optionator@0.9.4)(oxlint@1.58.0)(rolldown@1.0.0-rc.12)(rollup-plugin-visualizer@7.0.1)(rollup@4.60.1)(storybook@10.3.4)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18)(vue-tsc@3.2.6)(vue@3.5.30)(yaml@2.8.3) '@storybook/addon-a11y': specifier: catalog:storybook version: 10.3.4(storybook@10.3.4) '@storybook/addon-docs': specifier: catalog:storybook - version: 10.3.4(@types/react@19.2.14)(esbuild@0.27.7)(rollup@4.60.1)(storybook@10.3.4)(vite@8.0.0-beta.18)(webpack@5.105.4) + version: 10.3.4(@types/react@19.2.14)(rollup@4.60.1)(storybook@10.3.4)(vite@8.0.0-beta.18)(webpack@5.105.4) '@storybook/addon-themes': specifier: catalog:storybook version: 10.3.4(storybook@10.3.4) @@ -274,7 +274,7 @@ importers: version: 4.0.2 '@vitest/coverage-v8': specifier: 4.1.2 - version: 4.1.2(@voidzero-dev/vite-plus-test@0.1.12) + version: 4.1.2(@voidzero-dev/vite-plus-test@0.1.16) '@vue/test-utils': specifier: 2.4.6 version: 2.4.6 @@ -324,8 +324,8 @@ importers: specifier: 30.0.0 version: 30.0.0(vite@8.0.0-beta.18) vitest: - specifier: npm:@voidzero-dev/vite-plus-test@0.1.12 - version: '@voidzero-dev/vite-plus-test@0.1.12(@opentelemetry/api@1.9.0)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18)(yaml@2.8.3)' + specifier: npm:@voidzero-dev/vite-plus-test@0.1.16 + version: '@voidzero-dev/vite-plus-test@0.1.16(@opentelemetry/api@1.9.0)(@types/node@24.12.0)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18)(yaml@2.8.3)' vue-i18n-extract: specifier: 2.0.7 version: 2.0.7 @@ -389,7 +389,7 @@ importers: version: 5.8.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@tiptap/extensions@3.22.2)(@tiptap/y-tiptap@3.0.2)(@unhead/vue@2.1.13)(@upstash/redis@1.37.0)(@vue/compiler-dom@3.5.32)(better-sqlite3@12.8.0)(db0@0.3.4)(embla-carousel@8.6.0)(eslint@10.2.0)(focus-trap@8.0.1)(ioredis@5.10.1)(magicast@0.5.2)(nuxt@4.3.1)(react-dom@19.2.4)(react@19.2.4)(rollup@4.60.1)(srvx@0.11.15)(typescript@6.0.2)(unstorage@1.17.5)(valibot@1.3.0)(vite@8.0.0-beta.18)(vue-router@4.6.4)(vue@3.5.30)(yjs@13.6.30) nuxt: specifier: 4.3.1 - version: 4.3.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@parcel/watcher@2.5.6)(@types/node@24.12.0)(@upstash/redis@1.37.0)(@vue/compiler-sfc@3.5.32)(better-sqlite3@12.8.0)(cac@6.7.14)(db0@0.3.4)(eslint@10.2.0)(ioredis@5.10.1)(magicast@0.5.2)(optionator@0.9.4)(oxlint@1.55.0)(rolldown@1.0.0-rc.12)(rollup@4.60.1)(srvx@0.11.15)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18)(vue-tsc@3.2.6)(yaml@2.8.3) + version: 4.3.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@parcel/watcher@2.5.6)(@types/node@24.12.0)(@upstash/redis@1.37.0)(@vue/compiler-sfc@3.5.32)(better-sqlite3@12.8.0)(cac@6.7.14)(db0@0.3.4)(eslint@10.2.0)(ioredis@5.10.1)(magicast@0.5.2)(optionator@0.9.4)(oxlint@1.58.0)(rolldown@1.0.0-rc.12)(rollup@4.60.1)(srvx@0.11.15)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18)(vue-tsc@3.2.6)(yaml@2.8.3) tailwindcss: specifier: 4.2.2 version: 4.2.2 @@ -3038,6 +3038,10 @@ packages: resolution: {integrity: sha512-Rg8Wlt5dCbXhQnsXPrkOjL1DTSvXLgb2R/KYfnf1/K+R0k6UMLEmbQXPM+kwrWqSmWA2t0B1EtHy2/3zikQpvQ==} engines: {node: ^20.19.0 || >=22.12.0} + '@oxc-project/runtime@0.123.0': + resolution: {integrity: sha512-wRf0z8saz9tHLcK3YeTeBmwISrpy4bBimvKxUmryiIhbt+ZJb0nwwJNL3D8xpeWbNfZlGSlzRBZbfcbApIGZJw==} + engines: {node: ^20.19.0 || >=22.12.0} + '@oxc-project/types@0.112.0': resolution: {integrity: sha512-m6RebKHIRsax2iCwVpYW2ErQwa4ywHJrE4sCK3/8JK8ZZAWOKXaRJFl/uP51gaVyyXlaS4+chU1nSCdzYf6QqQ==} @@ -3050,6 +3054,9 @@ packages: '@oxc-project/types@0.122.0': resolution: {integrity: sha512-oLAl5kBpV4w69UtFZ9xqcmTi+GENWOcPF7FCrczTiBbmC0ibXxCwyvZGbO39rCVEuLGAZM84DH0pUIyyv/YJzA==} + '@oxc-project/types@0.123.0': + resolution: {integrity: sha512-YtECP/y8Mj1lSHiUWGSRzy/C6teUKlS87dEfuVKT09LgQbUsBW1rNg+MiJ4buGu3yuADV60gbIvo9/HplA56Ew==} + '@oxc-project/types@0.95.0': resolution: {integrity: sha512-vACy7vhpMPhjEJhULNxrdR0D943TkA/MigMpJCHmBHvMXxRStRi/dPtTlfQ3uDwWSzRpT8z+7ImjZVf8JWBocQ==} @@ -3383,276 +3390,276 @@ packages: cpu: [x64] os: [win32] - '@oxfmt/binding-android-arm-eabi@0.40.0': - resolution: {integrity: sha512-S6zd5r1w/HmqR8t0CTnGjFTBLDq2QKORPwriCHxo4xFNuhmOTABGjPaNvCJJVnrKBLsohOeiDX3YqQfJPF+FXw==} + '@oxfmt/binding-android-arm-eabi@0.43.0': + resolution: {integrity: sha512-CgU2s+/9hHZgo0IxVxrbMPrMj+tJ6VM3mD7Mr/4oiz4FNTISLoCvRmB5nk4wAAle045RtRjd86m673jwPyb1OQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [android] - '@oxfmt/binding-android-arm64@0.40.0': - resolution: {integrity: sha512-/mbS9UUP/5Vbl2D6osIdcYiP0oie63LKMoTyGj5hyMCK/SFkl3EhtyRAfdjPvuvHC0SXdW6ePaTKkBSq1SNcIw==} + '@oxfmt/binding-android-arm64@0.43.0': + resolution: {integrity: sha512-T9OfRwjA/EdYxAqbvR7TtqLv5nIrwPXuCtTwOHtS7aR9uXyn74ZYgzgTo6/ZwvTq9DY4W+DsV09hB2EXgn9EbA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@oxfmt/binding-darwin-arm64@0.40.0': - resolution: {integrity: sha512-wRt8fRdfLiEhnRMBonlIbKrJWixoEmn6KCjKE9PElnrSDSXETGZfPb8ee+nQNTobXkCVvVLytp2o0obAsxl78Q==} + '@oxfmt/binding-darwin-arm64@0.43.0': + resolution: {integrity: sha512-o3i49ZUSJWANzXMAAVY1wnqb65hn4JVzwlRQ5qfcwhRzIA8lGVaud31Q3by5ALHPrksp5QEaKCQF9aAS3TXpZA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@oxfmt/binding-darwin-x64@0.40.0': - resolution: {integrity: sha512-fzowhqbOE/NRy+AE5ob0+Y4X243WbWzDb00W+pKwD7d9tOqsAFbtWUwIyqqCoCLxj791m2xXIEeLH/3uz7zCCg==} + '@oxfmt/binding-darwin-x64@0.43.0': + resolution: {integrity: sha512-vWECzzCFkb0kK6jaHjbtC5sC3adiNWtqawFCxhpvsWlzVeKmv5bNvkB4nux+o4JKWTpHCM57NDK/MeXt44txmA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@oxfmt/binding-freebsd-x64@0.40.0': - resolution: {integrity: sha512-agZ9ITaqdBjcerRRFEHB8s0OyVcQW8F9ZxsszjxzeSthQ4fcN2MuOtQFWec1ed8/lDa50jSLHVE2/xPmTgtCfQ==} + '@oxfmt/binding-freebsd-x64@0.43.0': + resolution: {integrity: sha512-rgz8JpkKiI/umOf7fl9gwKyQasC8bs5SYHy6g7e4SunfLBY3+8ATcD5caIg8KLGEtKFm5ujKaH8EfjcmnhzTLg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@oxfmt/binding-linux-arm-gnueabihf@0.40.0': - resolution: {integrity: sha512-ZM2oQ47p28TP1DVIp7HL1QoMUgqlBFHey0ksHct7tMXoU5BqjNvPWw7888azzMt25lnyPODVuye1wvNbvVUFOA==} + '@oxfmt/binding-linux-arm-gnueabihf@0.43.0': + resolution: {integrity: sha512-nWYnF3vIFzT4OM1qL/HSf1Yuj96aBuKWSaObXHSWliwAk2rcj7AWd6Lf7jowEBQMo4wCZVnueIGw/7C4u0KTBQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxfmt/binding-linux-arm-musleabihf@0.40.0': - resolution: {integrity: sha512-RBFPAxRAIsMisKM47Oe6Lwdv6agZYLz02CUhVCD1sOv5ajAcRMrnwCFBPWwGXpazToW2mjnZxFos8TuFjTU15A==} + '@oxfmt/binding-linux-arm-musleabihf@0.43.0': + resolution: {integrity: sha512-sFg+NWJbLfupYTF4WELHAPSnLPOn1jiDZ33Z1jfDnTaA+cC3iB35x0FMMZTFdFOz3icRIArncwCcemJFGXu6TQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxfmt/binding-linux-arm64-gnu@0.40.0': - resolution: {integrity: sha512-Nb2XbQ+wV3W2jSIihXdPj7k83eOxeSgYP3N/SRXvQ6ZYPIk6Q86qEh5Gl/7OitX3bQoQrESqm1yMLvZV8/J7dA==} + '@oxfmt/binding-linux-arm64-gnu@0.43.0': + resolution: {integrity: sha512-MelWqv68tX6wZEILDrTc9yewiGXe7im62+5x0bNXlCYFOZdA+VnYiJfAihbROsZ5fm90p9C3haFrqjj43XnlAA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [glibc] - '@oxfmt/binding-linux-arm64-musl@0.40.0': - resolution: {integrity: sha512-tGmWhLD/0YMotCdfezlT6tC/MJG/wKpo4vnQ3Cq+4eBk/BwNv7EmkD0VkD5F/dYkT3b8FNU01X2e8vvJuWoM1w==} + '@oxfmt/binding-linux-arm64-musl@0.43.0': + resolution: {integrity: sha512-ROaWfYh+6BSJ1Arwy5ujijTlwnZetxDxzBpDc1oBR4d7rfrPBqzeyjd5WOudowzQUgyavl2wEpzn1hw3jWcqLA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [musl] - '@oxfmt/binding-linux-ppc64-gnu@0.40.0': - resolution: {integrity: sha512-rVbFyM3e7YhkVnp0IVYjaSHfrBWcTRWb60LEcdNAJcE2mbhTpbqKufx0FrhWfoxOrW/+7UJonAOShoFFLigDqQ==} + '@oxfmt/binding-linux-ppc64-gnu@0.43.0': + resolution: {integrity: sha512-PJRs/uNxmFipJJ8+SyKHh7Y7VZIKQicqrrBzvfyM5CtKi8D7yZKTwUOZV3ffxmiC2e7l1SDJpkBEOyue5NAFsg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] libc: [glibc] - '@oxfmt/binding-linux-riscv64-gnu@0.40.0': - resolution: {integrity: sha512-3ZqBw14JtWeEoLiioJcXSJz8RQyPE+3jLARnYM1HdPzZG4vk+Ua8CUupt2+d+vSAvMyaQBTN2dZK+kbBS/j5mA==} + '@oxfmt/binding-linux-riscv64-gnu@0.43.0': + resolution: {integrity: sha512-j6biGAgzIhj+EtHXlbNumvwG7XqOIdiU4KgIWRXAEj/iUbHKukKW8eXa4MIwpQwW1YkxovduKtzEAPnjlnAhVQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] libc: [glibc] - '@oxfmt/binding-linux-riscv64-musl@0.40.0': - resolution: {integrity: sha512-JJ4PPSdcbGBjPvb+O7xYm2FmAsKCyuEMYhqatBAHMp/6TA6rVlf9Z/sYPa4/3Bommb+8nndm15SPFRHEPU5qFA==} + '@oxfmt/binding-linux-riscv64-musl@0.43.0': + resolution: {integrity: sha512-RYWxAcslKxvy7yri24Xm9cmD0RiANaiEPs007EFG6l9h1ChM69Q5SOzACaCoz4Z9dEplnhhneeBaTWMEdpgIbA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] libc: [musl] - '@oxfmt/binding-linux-s390x-gnu@0.40.0': - resolution: {integrity: sha512-Kp0zNJoX9Ik77wUya2tpBY3W9f40VUoMQLWVaob5SgCrblH/t2xr/9B2bWHfs0WCefuGmqXcB+t0Lq77sbBmZw==} + '@oxfmt/binding-linux-s390x-gnu@0.43.0': + resolution: {integrity: sha512-DT6Q8zfQQy3jxpezAsBACEHNUUixKSYTwdXeXojNHe4DQOoxjPdjr3Szu6BRNjxLykZM/xMNmp9ElOIyDppwtw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] libc: [glibc] - '@oxfmt/binding-linux-x64-gnu@0.40.0': - resolution: {integrity: sha512-7YTCNzleWTaQTqNGUNQ66qVjpoV6DjbCOea+RnpMBly2bpzrI/uu7Rr+2zcgRfNxyjXaFTVQKaRKjqVdeUfeVA==} + '@oxfmt/binding-linux-x64-gnu@0.43.0': + resolution: {integrity: sha512-R8Yk7iYcuZORXmCfFZClqbDxRZgZ9/HEidUuBNdoX8Ptx07cMePnMVJ/woB84lFIDjh2ROHVaOP40Ds3rBXFqg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [glibc] - '@oxfmt/binding-linux-x64-musl@0.40.0': - resolution: {integrity: sha512-hWnSzJ0oegeOwfOEeejYXfBqmnRGHusgtHfCPzmvJvHTwy1s3Neo59UKc1CmpE3zxvrCzJoVHos0rr97GHMNPw==} + '@oxfmt/binding-linux-x64-musl@0.43.0': + resolution: {integrity: sha512-F2YYqyvnQNvi320RWZNAvsaWEHwmW3k4OwNJ1hZxRKXupY63expbBaNp6jAgvYs7y/g546vuQnGHQuCBhslhLQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [musl] - '@oxfmt/binding-openharmony-arm64@0.40.0': - resolution: {integrity: sha512-28sJC1lR4qtBJGzSRRbPnSW3GxU2+4YyQFE6rCmsUYqZ5XYH8jg0/w+CvEzQ8TuAQz5zLkcA25nFQGwoU0PT3Q==} + '@oxfmt/binding-openharmony-arm64@0.43.0': + resolution: {integrity: sha512-OE6TdietLXV3F6c7pNIhx/9YC1/2YFwjU9DPc/fbjxIX19hNIaP1rS0cFjCGJlGX+cVJwIKWe8Mos+LdQ1yAJw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] - '@oxfmt/binding-win32-arm64-msvc@0.40.0': - resolution: {integrity: sha512-cDkRnyT0dqwF5oIX1Cv59HKCeZQFbWWdUpXa3uvnHFT2iwYSSZspkhgjXjU6iDp5pFPaAEAe9FIbMoTgkTmKPg==} + '@oxfmt/binding-win32-arm64-msvc@0.43.0': + resolution: {integrity: sha512-0nWK6a7pGkbdoypfVicmV9k/N1FwjPZENoqhlTU+5HhZnAhpIO3za30nEE33u6l6tuy9OVfpdXUqxUgZ+4lbZw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@oxfmt/binding-win32-ia32-msvc@0.40.0': - resolution: {integrity: sha512-7rPemBJjqm5Gkv6ZRCPvK8lE6AqQ/2z31DRdWazyx2ZvaSgL7QGofHXHNouRpPvNsT9yxRNQJgigsWkc+0qg4w==} + '@oxfmt/binding-win32-ia32-msvc@0.43.0': + resolution: {integrity: sha512-9aokTR4Ft+tRdvgN/pKzSkVy2ksc4/dCpDm9L/xFrbIw0yhLtASLbvoG/5WOTUh/BRPPnfGTsWznEqv0dlOmhA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ia32] os: [win32] - '@oxfmt/binding-win32-x64-msvc@0.40.0': - resolution: {integrity: sha512-/Zmj0yTYSvmha6TG1QnoLqVT7ZMRDqXvFXXBQpIjteEwx9qvUYMBH2xbiOFhDeMUJkGwC3D6fdKsFtaqUvkwNA==} + '@oxfmt/binding-win32-x64-msvc@0.43.0': + resolution: {integrity: sha512-4bPgdQux2ZLWn3bf2TTXXMHcJB4lenmuxrLqygPmvCJ104Yqzj1UctxSRzR31TiJ4MLaG22RK8dUsVpJtrCz5g==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] - '@oxlint-tsgolint/darwin-arm64@0.17.0': - resolution: {integrity: sha512-z3XwCDuOAKgk7bO4y5tyH8Zogwr51G56R0XGKC3tlAbrAq8DecoxAd3qhRZqWBMG2Gzl5bWU3Ghu7lrxuLPzYw==} + '@oxlint-tsgolint/darwin-arm64@0.20.0': + resolution: {integrity: sha512-KKQcIHZHMxqpHUA1VXIbOG6chNCFkUWbQy6M+AFVtPKkA/3xAeJkJ3njoV66bfzwPHRcWQO+kcj5XqtbkjakoA==} cpu: [arm64] os: [darwin] - '@oxlint-tsgolint/darwin-x64@0.17.0': - resolution: {integrity: sha512-TZgVXy0MtI8nt0MYiceuZhHPwHcwlIZ/YwzFTAKrgdHiTvVzFbqHVdXi5wbZfT/o1nHGw9fbGWPlb6qKZ4uZ9Q==} + '@oxlint-tsgolint/darwin-x64@0.20.0': + resolution: {integrity: sha512-7HeVMuclGfG+NLZi2ybY0T4fMI7/XxO/208rJk+zEIloKkVnlh11Wd241JMGwgNFXn+MLJbOqOfojDb2Dt4L1g==} cpu: [x64] os: [darwin] - '@oxlint-tsgolint/linux-arm64@0.17.0': - resolution: {integrity: sha512-IDfhFl/Y8bjidCvAP6QAxVyBsl78TmfCHlfjtEv2XtJXgYmIwzv6muO18XMp74SZ2qAyD4y2n2dUedrmghGHeA==} + '@oxlint-tsgolint/linux-arm64@0.20.0': + resolution: {integrity: sha512-zxhUwz+WSxE6oWlZLK2z2ps9yC6ebmgoYmjAl0Oa48+GqkZ56NVgo+wb8DURNv6xrggzHStQxqQxe3mK51HZag==} cpu: [arm64] os: [linux] - '@oxlint-tsgolint/linux-x64@0.17.0': - resolution: {integrity: sha512-Bgdgqx/m8EnfjmmlRLEeYy9Yhdt1GdFrMr5mTu/NyLRGkB1C9VLAikdxB7U9QambAGTAmjMbHNFDFk8Vx69Huw==} + '@oxlint-tsgolint/linux-x64@0.20.0': + resolution: {integrity: sha512-/1l6FnahC9im8PK+Ekkx/V3yetO/PzZnJegE2FXcv/iXEhbeVxP/ouiTYcUQu9shT1FWJCSNti1VJHH+21Y1dg==} cpu: [x64] os: [linux] - '@oxlint-tsgolint/win32-arm64@0.17.0': - resolution: {integrity: sha512-dO6wyKMDqFWh1vwr+zNZS7/ovlfGgl4S3P1LDy4CKjP6V6NGtdmEwWkWax8j/I8RzGZdfXKnoUfb/qhVg5bx0w==} + '@oxlint-tsgolint/win32-arm64@0.20.0': + resolution: {integrity: sha512-oPZ5Yz8sVdo7P/5q+i3IKeix31eFZ55JAPa1+RGPoe9PoaYVsdMvR6Jvib6YtrqoJnFPlg3fjEjlEPL8VBKYJA==} cpu: [arm64] os: [win32] - '@oxlint-tsgolint/win32-x64@0.17.0': - resolution: {integrity: sha512-lPGYFp3yX2nh6hLTpIuMnJbZnt3Df42VkoA/fSkMYi2a/LXdDytQGpgZOrb5j47TICARd34RauKm0P3OA4Oxbw==} + '@oxlint-tsgolint/win32-x64@0.20.0': + resolution: {integrity: sha512-4stx8RHj3SP9vQyRF/yZbz5igtPvYMEUR8CUoha4BVNZihi39DpCR8qkU7lpjB5Ga1DRMo2pHaA4bdTOMaY4mw==} cpu: [x64] os: [win32] - '@oxlint/binding-android-arm-eabi@1.55.0': - resolution: {integrity: sha512-NhvgAhncTSOhRahQSCnkK/4YIGPjTmhPurQQ2dwt2IvwCMTvZRW5vF2K10UBOxFve4GZDMw6LtXZdC2qeuYIVQ==} + '@oxlint/binding-android-arm-eabi@1.58.0': + resolution: {integrity: sha512-1T7UN3SsWWxpWyWGn1cT3ASNJOo+pI3eUkmEl7HgtowapcV8kslYpFQcYn431VuxghXakPNlbjRwhqmR37PFOg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [android] - '@oxlint/binding-android-arm64@1.55.0': - resolution: {integrity: sha512-P9iWRh+Ugqhg+D7rkc7boHX8o3H2h7YPcZHQIgvVBgnua5tk4LR2L+IBlreZs58/95cd2x3/004p5VsQM9z4SA==} + '@oxlint/binding-android-arm64@1.58.0': + resolution: {integrity: sha512-GryzujxuiRv2YFF7bRy8mKcxlbuAN+euVUtGJt9KKbLT8JBUIosamVhcthLh+VEr6KE6cjeVMAQxKAzJcoN7dg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@oxlint/binding-darwin-arm64@1.55.0': - resolution: {integrity: sha512-esakkJIt7WFAhT30P/Qzn96ehFpzdZ1mNuzpOb8SCW7lI4oB8VsyQnkSHREM671jfpuBb/o2ppzBCx5l0jpgMA==} + '@oxlint/binding-darwin-arm64@1.58.0': + resolution: {integrity: sha512-7/bRSJIwl4GxeZL9rPZ11anNTyUO9epZrfEJH/ZMla3+/gbQ6xZixh9nOhsZ0QwsTW7/5J2A/fHbD1udC5DQQA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@oxlint/binding-darwin-x64@1.55.0': - resolution: {integrity: sha512-xDMFRCCAEK9fOH6As2z8ELsC+VDGSFRHwIKVSilw+xhgLwTDFu37rtmRbmUlx8rRGS6cWKQPTc47AVxAZEVVPQ==} + '@oxlint/binding-darwin-x64@1.58.0': + resolution: {integrity: sha512-EqdtJSiHweS2vfILNrpyJ6HUwpEq2g7+4Zx1FPi4hu3Hu7tC3znF6ufbXO8Ub2LD4mGgznjI7kSdku9NDD1Mkg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@oxlint/binding-freebsd-x64@1.55.0': - resolution: {integrity: sha512-mYZqnwUD7ALCRxGenyLd1uuG+rHCL+OTT6S8FcAbVm/ZT2AZMGjvibp3F6k1SKOb2aeqFATmwRykrE41Q0GWVw==} + '@oxlint/binding-freebsd-x64@1.58.0': + resolution: {integrity: sha512-VQt5TH4M42mY20F545G637RKxV/yjwVtKk2vfXuazfReSIiuvWBnv+FVSvIV5fKVTJNjt3GSJibh6JecbhGdBw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@oxlint/binding-linux-arm-gnueabihf@1.55.0': - resolution: {integrity: sha512-LcX6RYcF9vL9ESGwJW3yyIZ/d/ouzdOKXxCdey1q0XJOW1asrHsIg5MmyKdEBR4plQx+shvYeQne7AzW5f3T1w==} + '@oxlint/binding-linux-arm-gnueabihf@1.58.0': + resolution: {integrity: sha512-fBYcj4ucwpAtjJT3oeBdFBYKvNyjRSK+cyuvBOTQjh0jvKp4yeA4S/D0IsCHus/VPaNG5L48qQkh+Vjy3HL2/Q==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxlint/binding-linux-arm-musleabihf@1.55.0': - resolution: {integrity: sha512-C+8GS1rPtK+dI7mJFkqoRBkDuqbrNihnyYQsJPS9ez+8zF9JzfvU19lawqt4l/Y23o5uQswE/DORa8aiXUih3w==} + '@oxlint/binding-linux-arm-musleabihf@1.58.0': + resolution: {integrity: sha512-0BeuFfwlUHlJ1xpEdSD1YO3vByEFGPg36uLjK1JgFaxFb4W6w17F8ET8sz5cheZ4+x5f2xzdnRrrWv83E3Yd8g==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxlint/binding-linux-arm64-gnu@1.55.0': - resolution: {integrity: sha512-ErLE4XbmcCopA4/CIDiH6J1IAaDOMnf/KSx/aFObs4/OjAAM3sFKWGZ57pNOMxhhyBdcmcXwYymph9GwcpcqgQ==} + '@oxlint/binding-linux-arm64-gnu@1.58.0': + resolution: {integrity: sha512-TXlZgnPTlxrQzxG9ZXU7BNwx1Ilrr17P3GwZY0If2EzrinqRH3zXPc3HrRcBJgcsoZNMuNL5YivtkJYgp467UQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [glibc] - '@oxlint/binding-linux-arm64-musl@1.55.0': - resolution: {integrity: sha512-/kp65avi6zZfqEng56TTuhiy3P/3pgklKIdf38yvYeJ9/PgEeRA2A2AqKAKbZBNAqUzrzHhz9jF6j/PZvhJzTQ==} + '@oxlint/binding-linux-arm64-musl@1.58.0': + resolution: {integrity: sha512-zSoYRo5dxHLcUx93Stl2hW3hSNjPt99O70eRVWt5A1zwJ+FPjeCCANCD2a9R4JbHsdcl11TIQOjyigcRVOH2mw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [musl] - '@oxlint/binding-linux-ppc64-gnu@1.55.0': - resolution: {integrity: sha512-A6pTdXwcEEwL/nmz0eUJ6WxmxcoIS+97GbH96gikAyre3s5deC7sts38ZVVowjS2QQFuSWkpA4ZmQC0jZSNvJQ==} + '@oxlint/binding-linux-ppc64-gnu@1.58.0': + resolution: {integrity: sha512-NQ0U/lqxH2/VxBYeAIvMNUK1y0a1bJ3ZicqkF2c6wfakbEciP9jvIE4yNzCFpZaqeIeRYaV7AVGqEO1yrfVPjA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] libc: [glibc] - '@oxlint/binding-linux-riscv64-gnu@1.55.0': - resolution: {integrity: sha512-clj0lnIN+V52G9tdtZl0LbdTSurnZ1NZj92Je5X4lC7gP5jiCSW+Y/oiDiSauBAD4wrHt2S7nN3pA0zfKYK/6Q==} + '@oxlint/binding-linux-riscv64-gnu@1.58.0': + resolution: {integrity: sha512-X9J+kr3gIC9FT8GuZt0ekzpNUtkBVzMVU4KiKDSlocyQuEgi3gBbXYN8UkQiV77FTusLDPsovjo95YedHr+3yg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] libc: [glibc] - '@oxlint/binding-linux-riscv64-musl@1.55.0': - resolution: {integrity: sha512-NNu08pllN5x/O94/sgR3DA8lbrGBnTHsINZZR0hcav1sj79ksTiKKm1mRzvZvacwQ0hUnGinFo+JO75ok2PxYg==} + '@oxlint/binding-linux-riscv64-musl@1.58.0': + resolution: {integrity: sha512-CDze3pi1OO3Wvb/QsXjmLEY4XPKGM6kIo82ssNOgmcl1IdndF9VSGAE38YLhADWmOac7fjqhBw82LozuUVxD0Q==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] libc: [musl] - '@oxlint/binding-linux-s390x-gnu@1.55.0': - resolution: {integrity: sha512-BvfQz3PRlWZRoEZ17dZCqgQsMRdpzGZomJkVATwCIGhHVVeHJMQdmdXPSjcT1DCNUrOjXnVyj1RGDj5+/Je2+Q==} + '@oxlint/binding-linux-s390x-gnu@1.58.0': + resolution: {integrity: sha512-b/89glbxFaEAcA6Uf1FvCNecBJEgcUTsV1quzrqXM/o4R1M4u+2KCVuyGCayN2UpsRWtGGLb+Ver0tBBpxaPog==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] libc: [glibc] - '@oxlint/binding-linux-x64-gnu@1.55.0': - resolution: {integrity: sha512-ngSOoFCSBMKVQd24H8zkbcBNc7EHhjnF1sv3mC9NNXQ/4rRjI/4Dj9+9XoDZeFEkF1SX1COSBXF1b2Pr9rqdEw==} + '@oxlint/binding-linux-x64-gnu@1.58.0': + resolution: {integrity: sha512-0/yYpkq9VJFCEcuRlrViGj8pJUFFvNS4EkEREaN7CB1EcLXJIaVSSa5eCihwBGXtOZxhnblWgxks9juRdNQI7w==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [glibc] - '@oxlint/binding-linux-x64-musl@1.55.0': - resolution: {integrity: sha512-BDpP7W8GlaG7BR6QjGZAleYzxoyKc/D24spZIF2mB3XsfALQJJT/OBmP8YpeTb1rveFSBHzl8T7l0aqwkWNdGA==} + '@oxlint/binding-linux-x64-musl@1.58.0': + resolution: {integrity: sha512-hr6FNvmcAXiH+JxSvaJ4SJ1HofkdqEElXICW9sm3/Rd5eC3t7kzvmLyRAB3NngKO2wzXRCAm4Z/mGWfrsS4X8w==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [musl] - '@oxlint/binding-openharmony-arm64@1.55.0': - resolution: {integrity: sha512-PS6GFvmde/pc3fCA2Srt51glr8Lcxhpf6WIBFfLphndjRrD34NEcses4TSxQrEcxYo6qVywGfylM0ZhSCF2gGA==} + '@oxlint/binding-openharmony-arm64@1.58.0': + resolution: {integrity: sha512-R+O368VXgRql1K6Xar+FEo7NEwfo13EibPMoTv3sesYQedRXd6m30Dh/7lZMxnrQVFfeo4EOfYIP4FpcgWQNHg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] - '@oxlint/binding-win32-arm64-msvc@1.55.0': - resolution: {integrity: sha512-P6JcLJGs/q1UOvDLzN8otd9JsH4tsuuPDv+p7aHqHM3PrKmYdmUvkNj4K327PTd35AYcznOCN+l4ZOaq76QzSw==} + '@oxlint/binding-win32-arm64-msvc@1.58.0': + resolution: {integrity: sha512-Q0FZiAY/3c4YRj4z3h9K1PgaByrifrfbBoODSeX7gy97UtB7pySPUQfC2B/GbxWU6k7CzQrRy5gME10PltLAFQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@oxlint/binding-win32-ia32-msvc@1.55.0': - resolution: {integrity: sha512-gzkk4zE2zsE+WmRxFOiAZHpCpUNDFytEakqNXoNHW+PnYEOTPKDdW6nrzgSeTbGKVPXNAKQnRnMgrh7+n3Xueg==} + '@oxlint/binding-win32-ia32-msvc@1.58.0': + resolution: {integrity: sha512-Y8FKBABrSPp9H0QkRLHDHOSUgM/309a3IvOVgPcVxYcX70wxJrk608CuTg7w+C6vEd724X5wJoNkBcGYfH7nNQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ia32] os: [win32] - '@oxlint/binding-win32-x64-msvc@1.55.0': - resolution: {integrity: sha512-ZFALNow2/og75gvYzNP7qe+rREQ5xunktwA+lgykoozHZ6hw9bqg4fn5j2UvG4gIn1FXqrZHkOAXuPf5+GOYTQ==} + '@oxlint/binding-win32-x64-msvc@1.58.0': + resolution: {integrity: sha512-bCn5rbiz5My+Bj7M09sDcnqW0QJyINRVxdZ65x1/Y2tGrMwherwK/lpk+HRQCKvXa8pcaQdF5KY5j54VGZLwNg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] @@ -5235,16 +5242,16 @@ packages: '@vitest/utils@4.1.2': resolution: {integrity: sha512-xw2/TiX82lQHA06cgbqRKFb5lCAy3axQ4H4SoUFhUsg+wztiet+co86IAMDtF6Vm1hc7J6j09oh/rgDn+JdKIQ==} - '@voidzero-dev/vite-plus-core@0.1.12': - resolution: {integrity: sha512-j8YNe7A+8JcSoddztf5whvom/yJ7OKUO3Y5a3UoLIUmOL8YEKVv5nPANrxJ7eaFfHJoMnBEwzBpq1YVZ+H3uPA==} + '@voidzero-dev/vite-plus-core@0.1.16': + resolution: {integrity: sha512-fOyf14CXjcXqANFs2fCXEX+0Tn9ZjmqfFV+qTnARwIF1Kzl8WquO4XtvlDgs/fTQ91H4AyoNUgkvWdKS+C4xYA==} engines: {node: ^20.19.0 || >=22.12.0} peerDependencies: '@arethetypeswrong/core': ^0.18.1 - '@tsdown/css': 0.21.3 - '@tsdown/exe': 0.21.3 + '@tsdown/css': 0.21.7 + '@tsdown/exe': 0.21.7 '@types/node': ^20.19.0 || >=22.12.0 - '@vitejs/devtools': ^0.0.0-alpha.31 - esbuild: ^0.27.0 + '@vitejs/devtools': ^0.1.0 + esbuild: ^0.28.0 jiti: '>=1.21.0' less: ^4.0.0 publint: ^0.3.0 @@ -5254,7 +5261,7 @@ packages: sugarss: ^5.0.0 terser: ^5.16.0 tsx: ^4.8.1 - typescript: ^5.0.0 + typescript: ^5.0.0 || ^6.0.0 unplugin-unused: ^0.5.0 yaml: ^2.4.2 peerDependenciesMeta: @@ -5295,43 +5302,57 @@ packages: yaml: optional: true - '@voidzero-dev/vite-plus-darwin-arm64@0.1.12': - resolution: {integrity: sha512-tYQrfmcLxIqqr/de00oN7ayu+rYobEOjyR9AxoeJoNUqRyNQCdT0A5vg78kJNPaQCyL6ctgRRvpEKr0WHVmduQ==} + '@voidzero-dev/vite-plus-darwin-arm64@0.1.16': + resolution: {integrity: sha512-InG0ZmuGh7DTrn7zWQ0UvKapElphKI6G1oYfys+jraedG70EhIIee9gtO+mTE1T0bF67SgAcLXwNyaiNda0XwA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@voidzero-dev/vite-plus-darwin-x64@0.1.12': - resolution: {integrity: sha512-852hO/Onx9Z5u0tOYOVEUVzYJUmWdlHeqYnNT6pj0IClgVp0+KSabxr7A2paTWEFWp6XbKWvqw5Y5cVwUV3A6Q==} + '@voidzero-dev/vite-plus-darwin-x64@0.1.16': + resolution: {integrity: sha512-LGNrECstuhkCRKRj/dE98Xcprw8HU3VMIMJnZsnDR2C5RB2HADNIu21at/a/G3giA9eWm7uhtPp9FvUtTCK9TA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@voidzero-dev/vite-plus-linux-arm64-gnu@0.1.12': - resolution: {integrity: sha512-/gTh4tGyJKCNBn9SZUs3sq9QVRUmyuyseZefBgS223QRxdwFaxc7tIKaw91X59WXXYOzUYZOD5zsTcaIF4hc9A==} + '@voidzero-dev/vite-plus-linux-arm64-gnu@0.1.16': + resolution: {integrity: sha512-AoFKu6dIOtlkp/mwmtU8ES2uzoaxCHhIym1Tk7qMxyvke4IXnye6VDc4kPMRQwD8mwR3T3bO0HuaEEHxrIWDxw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [glibc] - '@voidzero-dev/vite-plus-linux-x64-gnu@0.1.12': - resolution: {integrity: sha512-9oN9ITjK/Xq9Werx+6G6jnI3+F1S3g9lB36J1VAHyRlAEtuiCDV0E3YMoW2O7KzM/PlodZIZ8LStVkH7aA5ZCw==} + '@voidzero-dev/vite-plus-linux-arm64-musl@0.1.16': + resolution: {integrity: sha512-PloCsGTRIhcXIpUOJ6PqVG8gYNpq+ooJNyqy5sQ82BRnJuo8oV7uBLFvg0X9B3Bzh+vO1F8/+92+o5TiL35JMg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@voidzero-dev/vite-plus-linux-x64-gnu@0.1.16': + resolution: {integrity: sha512-nY9/2g+qjhwsW5U3MrFLlx+bOBsdOJiO2HzbxQy7jo/S3jPTnXhFlrRegQuAmqrHAXrSdNwgblgRpICKhx1xZg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [glibc] - '@voidzero-dev/vite-plus-test@0.1.12': - resolution: {integrity: sha512-EE8Y2vQvqS4c/1qSa7qlhUY9koAG6wYev0NFAtDZsijQCHUqE7nYXGJYnyUInAE6GX4zlQDGg7tf2DAl+CISYw==} + '@voidzero-dev/vite-plus-linux-x64-musl@0.1.16': + resolution: {integrity: sha512-JGKEAMoXqzdr9lHT/13uRNV9uzrSYXAFhjAfIC8WEQMG2VUFksvq5/TOc26hzmzbqu+bxRmfN8h1aVTDL8KwFg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [musl] + + '@voidzero-dev/vite-plus-test@0.1.16': + resolution: {integrity: sha512-d/rJPX/heMzoAFdnpZsp04MAa6nw1yH1tA4mVCV4m8goVcE9nAvt69mjLMzE8N/rYIQOSgenf3hDXuQRuD6OKQ==} engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0} peerDependencies: '@edge-runtime/vm': '*' '@opentelemetry/api': ^1.9.0 '@types/node': ^20.0.0 || ^22.0.0 || >=24.0.0 - '@vitest/ui': 4.1.0 + '@vitest/ui': 4.1.2 happy-dom: '*' jsdom: '*' - vite: ^6.0.0 || ^7.0.0 || ^8.0.0-0 + vite: ^6.0.0 || ^7.0.0 || ^8.0.0 peerDependenciesMeta: '@edge-runtime/vm': optional: true @@ -5346,14 +5367,14 @@ packages: jsdom: optional: true - '@voidzero-dev/vite-plus-win32-arm64-msvc@0.1.12': - resolution: {integrity: sha512-JanAb6Y+6BmPhKNLvpZB/syeyY99bt7EPJCaLlbaCt3V0Y2Iw7c7dWBM4Sg4GZ7szGYdGw385fRz0n2M32f1rg==} + '@voidzero-dev/vite-plus-win32-arm64-msvc@0.1.16': + resolution: {integrity: sha512-IugPUCLY7HmiPcCeuHKUqO1+G2vxHnYzAGhS02AixD0sJLTAIKCUANDOiVUFf/HMw+jh/UkugW7MWek8lf/JrQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@voidzero-dev/vite-plus-win32-x64-msvc@0.1.12': - resolution: {integrity: sha512-Ei/UtTTp7UgeEGyV83jhDpSMXhwaZZzfS7Xiaj+zj80GGOwsBre0i+oHGZ7+TuVsZ7Im0sD8IZ9enCpKpV//AQ==} + '@voidzero-dev/vite-plus-win32-x64-msvc@0.1.16': + resolution: {integrity: sha512-tq93CIeMs92HF7rdylJknRiyzMOWMKCmpw+g8nl5Q5nmUDNLUsrL3CGfbyqjgbruuPnIr761r9MfydPqZU/cYg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] @@ -8584,21 +8605,21 @@ packages: peerDependencies: oxc-parser: '>=0.98.0' - oxfmt@0.40.0: - resolution: {integrity: sha512-g0C3I7xUj4b4DcagevM9kgH6+pUHytikxUcn3/VUkvzTNaaXBeyZqb7IBsHwojeXm4mTBEC/aBjBTMVUkZwWUQ==} + oxfmt@0.43.0: + resolution: {integrity: sha512-KTYNG5ISfHSdmeZ25Xzb3qgz9EmQvkaGAxgBY/p38+ZiAet3uZeu7FnMwcSQJg152Qwl0wnYAxDc+Z/H6cvrwA==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true - oxlint-tsgolint@0.17.0: - resolution: {integrity: sha512-TdrKhDZCgEYqONFo/j+KvGan7/k3tP5Ouz88wCqpOvJtI2QmcLfGsm1fcMvDnTik48Jj6z83IJBqlkmK9DnY1A==} + oxlint-tsgolint@0.20.0: + resolution: {integrity: sha512-/Uc9TQyN1l8w9QNvXtVHYtz+SzDJHKpb5X0UnHodl0BVzijUPk0LPlDOHAvogd1UI+iy9ZSF6gQxEqfzUxCULQ==} hasBin: true - oxlint@1.55.0: - resolution: {integrity: sha512-T+FjepiyWpaZMhekqRpH8Z3I4vNM610p6w+Vjfqgj5TZUxHXl7N8N5IPvmOU8U4XdTRxqtNNTh9Y4hLtr7yvFg==} + oxlint@1.58.0: + resolution: {integrity: sha512-t4s9leczDMqlvOSjnbCQe7gtoLkWgBGZ7sBdCJ9EOj5IXFSG/X7OAzK4yuH4iW+4cAYe8kLFbC8tuYMwWZm+Cg==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: - oxlint-tsgolint: '>=0.15.0' + oxlint-tsgolint: '>=0.18.0' peerDependenciesMeta: oxlint-tsgolint: optional: true @@ -10565,8 +10586,8 @@ packages: vite: ^6.0.0 || ^7.0.0 vue: ^3.5.0 - vite-plus@0.1.12: - resolution: {integrity: sha512-8s1RzomZkgrJRiwiYWGq3R0txFPYfBBJGp73XNHQnme0KTTVH5dNm/E2GNyBSMFJbeeF7eh1OSgqWVc2FpR6eA==} + vite-plus@0.1.16: + resolution: {integrity: sha512-sgYHc5zWLSDInaHb/abvEA7UOwh7sUWuyNt+Slphj55jPvzodT8Dqw115xyKwDARTuRFSpm1eo/t58qZ8/NylQ==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true @@ -12155,12 +12176,12 @@ snapshots: '@dxup/unimport@0.1.2': {} - '@e18e/eslint-plugin@0.3.0(eslint@10.2.0)(oxlint@1.55.0)': + '@e18e/eslint-plugin@0.3.0(eslint@10.2.0)(oxlint@1.58.0)': dependencies: eslint-plugin-depend: 1.5.0(eslint@10.2.0) optionalDependencies: eslint: 10.2.0(jiti@2.6.1) - oxlint: 1.55.0(oxlint-tsgolint@0.17.0) + oxlint: 1.58.0(oxlint-tsgolint@0.20.0) '@emnapi/core@1.9.2': dependencies: @@ -13280,7 +13301,7 @@ snapshots: klona: 2.0.6 mocked-exports: 0.1.1 nitropack: 2.13.3(@upstash/redis@1.37.0)(better-sqlite3@12.8.0)(rolldown@1.0.0-rc.12)(srvx@0.11.15) - nuxt: 4.3.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@parcel/watcher@2.5.6)(@types/node@24.12.0)(@upstash/redis@1.37.0)(@vue/compiler-sfc@3.5.32)(better-sqlite3@12.8.0)(cac@6.7.14)(db0@0.3.4)(eslint@10.2.0)(ioredis@5.10.1)(magicast@0.5.2)(optionator@0.9.4)(oxlint@1.55.0)(rolldown@1.0.0-rc.12)(rollup@4.60.1)(srvx@0.11.15)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18)(vue-tsc@3.2.6)(yaml@2.8.3) + nuxt: 4.3.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@parcel/watcher@2.5.6)(@types/node@24.12.0)(@upstash/redis@1.37.0)(@vue/compiler-sfc@3.5.32)(better-sqlite3@12.8.0)(cac@6.7.14)(db0@0.3.4)(eslint@10.2.0)(ioredis@5.10.1)(magicast@0.5.2)(optionator@0.9.4)(oxlint@1.58.0)(rolldown@1.0.0-rc.12)(rollup@4.60.1)(srvx@0.11.15)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18)(vue-tsc@3.2.6)(yaml@2.8.3) ohash: 2.0.11 pathe: 2.0.3 pkg-types: 2.3.0 @@ -13406,7 +13427,7 @@ snapshots: rc9: 3.0.1 std-env: 4.0.0 - '@nuxt/test-utils@4.0.0(@playwright/test@1.58.2)(@voidzero-dev/vite-plus-test@0.1.12)(@vue/test-utils@2.4.6)(crossws@0.4.4)(magicast@0.5.2)(playwright-core@1.59.1)(typescript@6.0.2)(vite@8.0.0-beta.18)': + '@nuxt/test-utils@4.0.0(@playwright/test@1.58.2)(@voidzero-dev/vite-plus-test@0.1.16)(@vue/test-utils@2.4.6)(crossws@0.4.4)(magicast@0.5.2)(playwright-core@1.59.1)(typescript@6.0.2)(vite@8.0.0-beta.18)': dependencies: '@clack/prompts': 1.0.0 '@nuxt/devtools-kit': 2.7.0(magicast@0.5.2)(vite@8.0.0-beta.18) @@ -13435,13 +13456,13 @@ snapshots: tinyexec: 1.0.4 ufo: 1.6.3 unplugin: 3.0.0 - vitest-environment-nuxt: 1.0.1(@playwright/test@1.58.2)(@voidzero-dev/vite-plus-test@0.1.12)(@vue/test-utils@2.4.6)(crossws@0.4.4)(magicast@0.5.2)(playwright-core@1.59.1)(typescript@6.0.2)(vite@8.0.0-beta.18) + vitest-environment-nuxt: 1.0.1(@playwright/test@1.58.2)(@voidzero-dev/vite-plus-test@0.1.16)(@vue/test-utils@2.4.6)(crossws@0.4.4)(magicast@0.5.2)(playwright-core@1.59.1)(typescript@6.0.2)(vite@8.0.0-beta.18) vue: 3.5.30(typescript@6.0.2) optionalDependencies: '@playwright/test': 1.58.2 '@vue/test-utils': 2.4.6 playwright-core: 1.59.1 - vitest: '@voidzero-dev/vite-plus-test@0.1.12(@opentelemetry/api@1.9.0)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18)(yaml@2.8.3)' + vitest: '@voidzero-dev/vite-plus-test@0.1.16(@opentelemetry/api@1.9.0)(@types/node@24.12.0)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18)(yaml@2.8.3)' transitivePeerDependencies: - crossws - magicast @@ -13563,12 +13584,12 @@ snapshots: - vue - yjs - '@nuxt/vite-builder@3.21.2(@types/node@24.12.0)(esbuild@0.27.7)(eslint@10.2.0)(magicast@0.5.2)(nuxt@4.3.1)(optionator@0.9.4)(oxlint@1.55.0)(rolldown@1.0.0-rc.12)(rollup-plugin-visualizer@7.0.1)(rollup@4.60.1)(terser@5.46.1)(typescript@6.0.2)(vue-tsc@3.2.6)(vue@3.5.30)(yaml@2.8.3)': + '@nuxt/vite-builder@3.21.2(@types/node@24.12.0)(eslint@10.2.0)(magicast@0.5.2)(nuxt@4.3.1)(optionator@0.9.4)(oxlint@1.58.0)(rolldown@1.0.0-rc.12)(rollup-plugin-visualizer@7.0.1)(rollup@4.60.1)(terser@5.46.1)(typescript@6.0.2)(vue-tsc@3.2.6)(vue@3.5.30)(yaml@2.8.3)': dependencies: '@nuxt/kit': 3.21.2(magicast@0.5.2) '@rollup/plugin-replace': 6.0.3(rollup@4.60.1) - '@vitejs/plugin-vue': 6.0.5(@voidzero-dev/vite-plus-core@0.1.12)(vue@3.5.30) - '@vitejs/plugin-vue-jsx': 5.1.5(@voidzero-dev/vite-plus-core@0.1.12)(vue@3.5.30) + '@vitejs/plugin-vue': 6.0.5(@voidzero-dev/vite-plus-core@0.1.16)(vue@3.5.30) + '@vitejs/plugin-vue-jsx': 5.1.5(@voidzero-dev/vite-plus-core@0.1.16)(vue@3.5.30) autoprefixer: 10.4.27(postcss@8.5.8) consola: 3.4.2 cssnano: 7.1.4(postcss@8.5.8) @@ -13582,7 +13603,7 @@ snapshots: magic-string: 0.30.21 mlly: 1.8.2 mocked-exports: 0.1.1 - nuxt: 4.3.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@parcel/watcher@2.5.6)(@types/node@24.12.0)(@upstash/redis@1.37.0)(@vue/compiler-sfc@3.5.32)(better-sqlite3@12.8.0)(cac@6.7.14)(db0@0.3.4)(eslint@10.2.0)(ioredis@5.10.1)(magicast@0.5.2)(optionator@0.9.4)(oxlint@1.55.0)(rolldown@1.0.0-rc.12)(rollup@4.60.1)(srvx@0.11.15)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18)(vue-tsc@3.2.6)(yaml@2.8.3) + nuxt: 4.3.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@parcel/watcher@2.5.6)(@types/node@24.12.0)(@upstash/redis@1.37.0)(@vue/compiler-sfc@3.5.32)(better-sqlite3@12.8.0)(cac@6.7.14)(db0@0.3.4)(eslint@10.2.0)(ioredis@5.10.1)(magicast@0.5.2)(optionator@0.9.4)(oxlint@1.58.0)(rolldown@1.0.0-rc.12)(rollup@4.60.1)(srvx@0.11.15)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18)(vue-tsc@3.2.6)(yaml@2.8.3) nypm: 0.6.5 ohash: 2.0.11 pathe: 2.0.3 @@ -13593,9 +13614,9 @@ snapshots: std-env: 4.0.0 ufo: 1.6.3 unenv: 2.0.0-rc.24 - vite: '@voidzero-dev/vite-plus-core@0.1.12(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(yaml@2.8.3)' + vite: '@voidzero-dev/vite-plus-core@0.1.16(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(yaml@2.8.3)' vite-node: 5.3.0(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(yaml@2.8.3) - vite-plugin-checker: 0.12.0(@voidzero-dev/vite-plus-core@0.1.12)(eslint@10.2.0)(optionator@0.9.4)(oxlint@1.55.0)(typescript@6.0.2)(vue-tsc@3.2.6) + vite-plugin-checker: 0.12.0(@voidzero-dev/vite-plus-core@0.1.16)(eslint@10.2.0)(optionator@0.9.4)(oxlint@1.58.0)(typescript@6.0.2)(vue-tsc@3.2.6) vue: 3.5.30(typescript@6.0.2) vue-bundle-renderer: 2.2.0 optionalDependencies: @@ -13632,12 +13653,12 @@ snapshots: - vue-tsc - yaml - '@nuxt/vite-builder@4.3.1(@types/node@24.12.0)(eslint@10.2.0)(magicast@0.5.2)(nuxt@4.3.1)(optionator@0.9.4)(oxlint@1.55.0)(rolldown@1.0.0-rc.12)(rollup@4.60.1)(terser@5.46.1)(typescript@6.0.2)(vue-tsc@3.2.6)(vue@3.5.30)(yaml@2.8.3)': + '@nuxt/vite-builder@4.3.1(@types/node@24.12.0)(eslint@10.2.0)(magicast@0.5.2)(nuxt@4.3.1)(optionator@0.9.4)(oxlint@1.58.0)(rolldown@1.0.0-rc.12)(rollup@4.60.1)(terser@5.46.1)(typescript@6.0.2)(vue-tsc@3.2.6)(vue@3.5.30)(yaml@2.8.3)': dependencies: '@nuxt/kit': 4.3.1(magicast@0.5.2) '@rollup/plugin-replace': 6.0.3(rollup@4.60.1) - '@vitejs/plugin-vue': 6.0.5(@voidzero-dev/vite-plus-core@0.1.12)(vue@3.5.30) - '@vitejs/plugin-vue-jsx': 5.1.5(@voidzero-dev/vite-plus-core@0.1.12)(vue@3.5.30) + '@vitejs/plugin-vue': 6.0.5(@voidzero-dev/vite-plus-core@0.1.16)(vue@3.5.30) + '@vitejs/plugin-vue-jsx': 5.1.5(@voidzero-dev/vite-plus-core@0.1.16)(vue@3.5.30) autoprefixer: 10.4.27(postcss@8.5.8) consola: 3.4.2 cssnano: 7.1.4(postcss@8.5.8) @@ -13651,7 +13672,7 @@ snapshots: magic-string: 0.30.21 mlly: 1.8.2 mocked-exports: 0.1.1 - nuxt: 4.3.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@parcel/watcher@2.5.6)(@types/node@24.12.0)(@upstash/redis@1.37.0)(@vue/compiler-sfc@3.5.32)(better-sqlite3@12.8.0)(cac@6.7.14)(db0@0.3.4)(eslint@10.2.0)(ioredis@5.10.1)(magicast@0.5.2)(optionator@0.9.4)(oxlint@1.55.0)(rolldown@1.0.0-rc.12)(rollup@4.60.1)(srvx@0.11.15)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18)(vue-tsc@3.2.6)(yaml@2.8.3) + nuxt: 4.3.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@parcel/watcher@2.5.6)(@types/node@24.12.0)(@upstash/redis@1.37.0)(@vue/compiler-sfc@3.5.32)(better-sqlite3@12.8.0)(cac@6.7.14)(db0@0.3.4)(eslint@10.2.0)(ioredis@5.10.1)(magicast@0.5.2)(optionator@0.9.4)(oxlint@1.58.0)(rolldown@1.0.0-rc.12)(rollup@4.60.1)(srvx@0.11.15)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18)(vue-tsc@3.2.6)(yaml@2.8.3) pathe: 2.0.3 pkg-types: 2.3.0 postcss: 8.5.8 @@ -13660,9 +13681,9 @@ snapshots: std-env: 3.10.0 ufo: 1.6.3 unenv: 2.0.0-rc.24 - vite: '@voidzero-dev/vite-plus-core@0.1.12(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(yaml@2.8.3)' + vite: '@voidzero-dev/vite-plus-core@0.1.16(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(yaml@2.8.3)' vite-node: 5.3.0(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(yaml@2.8.3) - vite-plugin-checker: 0.12.0(@voidzero-dev/vite-plus-core@0.1.12)(eslint@10.2.0)(optionator@0.9.4)(oxlint@1.55.0)(typescript@6.0.2)(vue-tsc@3.2.6) + vite-plugin-checker: 0.12.0(@voidzero-dev/vite-plus-core@0.1.16)(eslint@10.2.0)(optionator@0.9.4)(oxlint@1.58.0)(typescript@6.0.2)(vue-tsc@3.2.6) vue: 3.5.30(typescript@6.0.2) vue-bundle-renderer: 2.2.0 optionalDependencies: @@ -13716,11 +13737,11 @@ snapshots: transitivePeerDependencies: - magicast - '@nuxtjs/html-validator@2.1.0(@voidzero-dev/vite-plus-test@0.1.12)(magicast@0.5.2)': + '@nuxtjs/html-validator@2.1.0(@voidzero-dev/vite-plus-test@0.1.16)(magicast@0.5.2)': dependencies: '@nuxt/kit': 3.21.2(magicast@0.5.2) consola: 3.4.2 - html-validate: 9.4.2(@voidzero-dev/vite-plus-test@0.1.12) + html-validate: 9.4.2(@voidzero-dev/vite-plus-test@0.1.16) knitwork: 1.3.0 pathe: 2.0.3 prettier: 3.8.1 @@ -14194,6 +14215,8 @@ snapshots: '@oxc-project/runtime@0.115.0': {} + '@oxc-project/runtime@0.123.0': {} + '@oxc-project/types@0.112.0': {} '@oxc-project/types@0.115.0': {} @@ -14202,6 +14225,8 @@ snapshots: '@oxc-project/types@0.122.0': {} + '@oxc-project/types@0.123.0': {} + '@oxc-project/types@0.95.0': {} '@oxc-resolver/binding-android-arm-eabi@11.19.1': @@ -14384,136 +14409,136 @@ snapshots: '@oxc-transform/binding-win32-x64-msvc@0.95.0': optional: true - '@oxfmt/binding-android-arm-eabi@0.40.0': + '@oxfmt/binding-android-arm-eabi@0.43.0': optional: true - '@oxfmt/binding-android-arm64@0.40.0': + '@oxfmt/binding-android-arm64@0.43.0': optional: true - '@oxfmt/binding-darwin-arm64@0.40.0': + '@oxfmt/binding-darwin-arm64@0.43.0': optional: true - '@oxfmt/binding-darwin-x64@0.40.0': + '@oxfmt/binding-darwin-x64@0.43.0': optional: true - '@oxfmt/binding-freebsd-x64@0.40.0': + '@oxfmt/binding-freebsd-x64@0.43.0': optional: true - '@oxfmt/binding-linux-arm-gnueabihf@0.40.0': + '@oxfmt/binding-linux-arm-gnueabihf@0.43.0': optional: true - '@oxfmt/binding-linux-arm-musleabihf@0.40.0': + '@oxfmt/binding-linux-arm-musleabihf@0.43.0': optional: true - '@oxfmt/binding-linux-arm64-gnu@0.40.0': + '@oxfmt/binding-linux-arm64-gnu@0.43.0': optional: true - '@oxfmt/binding-linux-arm64-musl@0.40.0': + '@oxfmt/binding-linux-arm64-musl@0.43.0': optional: true - '@oxfmt/binding-linux-ppc64-gnu@0.40.0': + '@oxfmt/binding-linux-ppc64-gnu@0.43.0': optional: true - '@oxfmt/binding-linux-riscv64-gnu@0.40.0': + '@oxfmt/binding-linux-riscv64-gnu@0.43.0': optional: true - '@oxfmt/binding-linux-riscv64-musl@0.40.0': + '@oxfmt/binding-linux-riscv64-musl@0.43.0': optional: true - '@oxfmt/binding-linux-s390x-gnu@0.40.0': + '@oxfmt/binding-linux-s390x-gnu@0.43.0': optional: true - '@oxfmt/binding-linux-x64-gnu@0.40.0': + '@oxfmt/binding-linux-x64-gnu@0.43.0': optional: true - '@oxfmt/binding-linux-x64-musl@0.40.0': + '@oxfmt/binding-linux-x64-musl@0.43.0': optional: true - '@oxfmt/binding-openharmony-arm64@0.40.0': + '@oxfmt/binding-openharmony-arm64@0.43.0': optional: true - '@oxfmt/binding-win32-arm64-msvc@0.40.0': + '@oxfmt/binding-win32-arm64-msvc@0.43.0': optional: true - '@oxfmt/binding-win32-ia32-msvc@0.40.0': + '@oxfmt/binding-win32-ia32-msvc@0.43.0': optional: true - '@oxfmt/binding-win32-x64-msvc@0.40.0': + '@oxfmt/binding-win32-x64-msvc@0.43.0': optional: true - '@oxlint-tsgolint/darwin-arm64@0.17.0': + '@oxlint-tsgolint/darwin-arm64@0.20.0': optional: true - '@oxlint-tsgolint/darwin-x64@0.17.0': + '@oxlint-tsgolint/darwin-x64@0.20.0': optional: true - '@oxlint-tsgolint/linux-arm64@0.17.0': + '@oxlint-tsgolint/linux-arm64@0.20.0': optional: true - '@oxlint-tsgolint/linux-x64@0.17.0': + '@oxlint-tsgolint/linux-x64@0.20.0': optional: true - '@oxlint-tsgolint/win32-arm64@0.17.0': + '@oxlint-tsgolint/win32-arm64@0.20.0': optional: true - '@oxlint-tsgolint/win32-x64@0.17.0': + '@oxlint-tsgolint/win32-x64@0.20.0': optional: true - '@oxlint/binding-android-arm-eabi@1.55.0': + '@oxlint/binding-android-arm-eabi@1.58.0': optional: true - '@oxlint/binding-android-arm64@1.55.0': + '@oxlint/binding-android-arm64@1.58.0': optional: true - '@oxlint/binding-darwin-arm64@1.55.0': + '@oxlint/binding-darwin-arm64@1.58.0': optional: true - '@oxlint/binding-darwin-x64@1.55.0': + '@oxlint/binding-darwin-x64@1.58.0': optional: true - '@oxlint/binding-freebsd-x64@1.55.0': + '@oxlint/binding-freebsd-x64@1.58.0': optional: true - '@oxlint/binding-linux-arm-gnueabihf@1.55.0': + '@oxlint/binding-linux-arm-gnueabihf@1.58.0': optional: true - '@oxlint/binding-linux-arm-musleabihf@1.55.0': + '@oxlint/binding-linux-arm-musleabihf@1.58.0': optional: true - '@oxlint/binding-linux-arm64-gnu@1.55.0': + '@oxlint/binding-linux-arm64-gnu@1.58.0': optional: true - '@oxlint/binding-linux-arm64-musl@1.55.0': + '@oxlint/binding-linux-arm64-musl@1.58.0': optional: true - '@oxlint/binding-linux-ppc64-gnu@1.55.0': + '@oxlint/binding-linux-ppc64-gnu@1.58.0': optional: true - '@oxlint/binding-linux-riscv64-gnu@1.55.0': + '@oxlint/binding-linux-riscv64-gnu@1.58.0': optional: true - '@oxlint/binding-linux-riscv64-musl@1.55.0': + '@oxlint/binding-linux-riscv64-musl@1.58.0': optional: true - '@oxlint/binding-linux-s390x-gnu@1.55.0': + '@oxlint/binding-linux-s390x-gnu@1.58.0': optional: true - '@oxlint/binding-linux-x64-gnu@1.55.0': + '@oxlint/binding-linux-x64-gnu@1.58.0': optional: true - '@oxlint/binding-linux-x64-musl@1.55.0': + '@oxlint/binding-linux-x64-musl@1.58.0': optional: true - '@oxlint/binding-openharmony-arm64@1.55.0': + '@oxlint/binding-openharmony-arm64@1.58.0': optional: true - '@oxlint/binding-win32-arm64-msvc@1.55.0': + '@oxlint/binding-win32-arm64-msvc@1.58.0': optional: true - '@oxlint/binding-win32-ia32-msvc@1.55.0': + '@oxlint/binding-win32-ia32-msvc@1.58.0': optional: true - '@oxlint/binding-win32-x64-msvc@1.55.0': + '@oxlint/binding-win32-x64-msvc@1.58.0': optional: true '@parcel/watcher-android-arm64@2.5.6': @@ -15122,18 +15147,18 @@ snapshots: '@standard-schema/spec@1.1.0': {} - '@storybook-vue/nuxt@9.0.1(@types/node@24.12.0)(esbuild@0.27.7)(eslint@10.2.0)(magicast@0.5.2)(nuxt@4.3.1)(optionator@0.9.4)(oxlint@1.55.0)(rolldown@1.0.0-rc.12)(rollup-plugin-visualizer@7.0.1)(rollup@4.60.1)(storybook@10.3.4)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18)(vue-tsc@3.2.6)(vue@3.5.30)(yaml@2.8.3)': + '@storybook-vue/nuxt@9.0.1(@types/node@24.12.0)(eslint@10.2.0)(magicast@0.5.2)(nuxt@4.3.1)(optionator@0.9.4)(oxlint@1.58.0)(rolldown@1.0.0-rc.12)(rollup-plugin-visualizer@7.0.1)(rollup@4.60.1)(storybook@10.3.4)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18)(vue-tsc@3.2.6)(vue@3.5.30)(yaml@2.8.3)': dependencies: '@nuxt/kit': 3.21.2(magicast@0.5.2) '@nuxt/schema': 3.21.2 - '@nuxt/vite-builder': 3.21.2(@types/node@24.12.0)(esbuild@0.27.7)(eslint@10.2.0)(magicast@0.5.2)(nuxt@4.3.1)(optionator@0.9.4)(oxlint@1.55.0)(rolldown@1.0.0-rc.12)(rollup-plugin-visualizer@7.0.1)(rollup@4.60.1)(terser@5.46.1)(typescript@6.0.2)(vue-tsc@3.2.6)(vue@3.5.30)(yaml@2.8.3) + '@nuxt/vite-builder': 3.21.2(@types/node@24.12.0)(eslint@10.2.0)(magicast@0.5.2)(nuxt@4.3.1)(optionator@0.9.4)(oxlint@1.58.0)(rolldown@1.0.0-rc.12)(rollup-plugin-visualizer@7.0.1)(rollup@4.60.1)(terser@5.46.1)(typescript@6.0.2)(vue-tsc@3.2.6)(vue@3.5.30)(yaml@2.8.3) '@rollup/plugin-replace': 6.0.3(rollup@4.60.1) '@storybook/builder-vite': 9.1.2(storybook@10.3.4)(vite@8.0.0-beta.18) '@storybook/vue3': 9.1.2(storybook@10.3.4)(vue@3.5.30) '@storybook/vue3-vite': 9.1.2(storybook@10.3.4)(vite@8.0.0-beta.18)(vue@3.5.30) json-stable-stringify: 1.3.0 mlly: 1.8.2 - nuxt: 4.3.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@parcel/watcher@2.5.6)(@types/node@24.12.0)(@upstash/redis@1.37.0)(@vue/compiler-sfc@3.5.32)(better-sqlite3@12.8.0)(cac@6.7.14)(db0@0.3.4)(eslint@10.2.0)(ioredis@5.10.1)(magicast@0.5.2)(optionator@0.9.4)(oxlint@1.55.0)(rolldown@1.0.0-rc.12)(rollup@4.60.1)(srvx@0.11.15)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18)(vue-tsc@3.2.6)(yaml@2.8.3) + nuxt: 4.3.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@parcel/watcher@2.5.6)(@types/node@24.12.0)(@upstash/redis@1.37.0)(@vue/compiler-sfc@3.5.32)(better-sqlite3@12.8.0)(cac@6.7.14)(db0@0.3.4)(eslint@10.2.0)(ioredis@5.10.1)(magicast@0.5.2)(optionator@0.9.4)(oxlint@1.58.0)(rolldown@1.0.0-rc.12)(rollup@4.60.1)(srvx@0.11.15)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18)(vue-tsc@3.2.6)(yaml@2.8.3) ofetch: 1.5.1 pathe: 2.0.3 storybook: 10.3.4(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4)(react@19.2.4) @@ -15180,10 +15205,10 @@ snapshots: axe-core: 4.11.1 storybook: 10.3.4(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4)(react@19.2.4) - '@storybook/addon-docs@10.3.4(@types/react@19.2.14)(esbuild@0.27.7)(rollup@4.60.1)(storybook@10.3.4)(vite@8.0.0-beta.18)(webpack@5.105.4)': + '@storybook/addon-docs@10.3.4(@types/react@19.2.14)(rollup@4.60.1)(storybook@10.3.4)(vite@8.0.0-beta.18)(webpack@5.105.4)': dependencies: '@mdx-js/react': 3.1.1(@types/react@19.2.14)(react@19.2.4) - '@storybook/csf-plugin': 10.3.4(esbuild@0.27.7)(rollup@4.60.1)(storybook@10.3.4)(vite@8.0.0-beta.18)(webpack@5.105.4) + '@storybook/csf-plugin': 10.3.4(rollup@4.60.1)(storybook@10.3.4)(vite@8.0.0-beta.18)(webpack@5.105.4) '@storybook/icons': 2.0.1(react-dom@19.2.4)(react@19.2.4) '@storybook/react-dom-shim': 10.3.4(react-dom@19.2.4)(react@19.2.4)(storybook@10.3.4) react: 19.2.4 @@ -15209,15 +15234,14 @@ snapshots: ts-dedent: 2.2.0 vite: 8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3) - '@storybook/csf-plugin@10.3.4(esbuild@0.27.7)(rollup@4.60.1)(storybook@10.3.4)(vite@8.0.0-beta.18)(webpack@5.105.4)': + '@storybook/csf-plugin@10.3.4(rollup@4.60.1)(storybook@10.3.4)(vite@8.0.0-beta.18)(webpack@5.105.4)': dependencies: storybook: 10.3.4(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@19.2.4)(react@19.2.4) unplugin: 2.3.11 optionalDependencies: - esbuild: 0.27.7 rollup: 4.60.1 vite: 8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3) - webpack: 5.105.4(esbuild@0.27.7) + webpack: 5.105.4 '@storybook/csf-plugin@9.1.2(storybook@10.3.4)': dependencies: @@ -15931,7 +15955,7 @@ snapshots: tinyglobby: 0.2.15 unplugin: 2.3.11 unplugin-utils: 0.3.1 - webpack: 5.105.4(esbuild@0.27.7) + webpack: 5.105.4 webpack-sources: 3.3.4 '@upstash/redis@1.37.0': @@ -15983,25 +16007,25 @@ snapshots: - workbox-build - workbox-window - '@vitejs/plugin-vue-jsx@5.1.5(@voidzero-dev/vite-plus-core@0.1.12)(vue@3.5.30)': + '@vitejs/plugin-vue-jsx@5.1.5(@voidzero-dev/vite-plus-core@0.1.16)(vue@3.5.30)': 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.13 '@vue/babel-plugin-jsx': 2.0.1(@babel/core@7.29.0) - vite: '@voidzero-dev/vite-plus-core@0.1.12(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(yaml@2.8.3)' + vite: '@voidzero-dev/vite-plus-core@0.1.16(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(yaml@2.8.3)' vue: 3.5.30(typescript@6.0.2) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue@6.0.5(@voidzero-dev/vite-plus-core@0.1.12)(vue@3.5.30)': + '@vitejs/plugin-vue@6.0.5(@voidzero-dev/vite-plus-core@0.1.16)(vue@3.5.30)': dependencies: '@rolldown/pluginutils': 1.0.0-rc.2 - vite: '@voidzero-dev/vite-plus-core@0.1.12(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(yaml@2.8.3)' + vite: '@voidzero-dev/vite-plus-core@0.1.16(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(yaml@2.8.3)' vue: 3.5.30(typescript@6.0.2) - '@vitest/coverage-v8@4.1.2(@voidzero-dev/vite-plus-test@0.1.12)': + '@vitest/coverage-v8@4.1.2(@voidzero-dev/vite-plus-test@0.1.16)': dependencies: '@bcoe/v8-coverage': 1.0.2 '@vitest/utils': 4.1.2 @@ -16013,7 +16037,7 @@ snapshots: obug: 2.1.1 std-env: 4.0.0 tinyrainbow: 3.1.0 - vitest: '@voidzero-dev/vite-plus-test@0.1.12(@opentelemetry/api@1.9.0)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18)(yaml@2.8.3)' + vitest: '@voidzero-dev/vite-plus-test@0.1.16(@opentelemetry/api@1.9.0)(@types/node@24.12.0)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18)(yaml@2.8.3)' '@vitest/expect@3.2.4': dependencies: @@ -16047,10 +16071,10 @@ snapshots: convert-source-map: 2.0.0 tinyrainbow: 3.1.0 - '@voidzero-dev/vite-plus-core@0.1.12(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(yaml@2.8.3)': + '@voidzero-dev/vite-plus-core@0.1.16(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(yaml@2.8.3)': dependencies: - '@oxc-project/runtime': 0.115.0 - '@oxc-project/types': 0.115.0 + '@oxc-project/runtime': 0.123.0 + '@oxc-project/types': 0.123.0 lightningcss: 1.32.0 postcss: 8.5.8 optionalDependencies: @@ -16062,23 +16086,29 @@ snapshots: typescript: 6.0.2 yaml: 2.8.3 - '@voidzero-dev/vite-plus-darwin-arm64@0.1.12': + '@voidzero-dev/vite-plus-darwin-arm64@0.1.16': + optional: true + + '@voidzero-dev/vite-plus-darwin-x64@0.1.16': + optional: true + + '@voidzero-dev/vite-plus-linux-arm64-gnu@0.1.16': optional: true - '@voidzero-dev/vite-plus-darwin-x64@0.1.12': + '@voidzero-dev/vite-plus-linux-arm64-musl@0.1.16': optional: true - '@voidzero-dev/vite-plus-linux-arm64-gnu@0.1.12': + '@voidzero-dev/vite-plus-linux-x64-gnu@0.1.16': optional: true - '@voidzero-dev/vite-plus-linux-x64-gnu@0.1.12': + '@voidzero-dev/vite-plus-linux-x64-musl@0.1.16': optional: true - '@voidzero-dev/vite-plus-test@0.1.12(@opentelemetry/api@1.9.0)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18)(yaml@2.8.3)': + '@voidzero-dev/vite-plus-test@0.1.16(@opentelemetry/api@1.9.0)(@types/node@24.12.0)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18)(yaml@2.8.3)': dependencies: '@standard-schema/spec': 1.1.0 '@types/chai': 5.2.3 - '@voidzero-dev/vite-plus-core': 0.1.12(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(yaml@2.8.3) + '@voidzero-dev/vite-plus-core': 0.1.16(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(yaml@2.8.3) es-module-lexer: 1.7.0 obug: 2.1.1 pixelmatch: 7.1.0 @@ -16114,10 +16144,10 @@ snapshots: - utf-8-validate - yaml - '@voidzero-dev/vite-plus-win32-arm64-msvc@0.1.12': + '@voidzero-dev/vite-plus-win32-arm64-msvc@0.1.16': optional: true - '@voidzero-dev/vite-plus-win32-x64-msvc@0.1.12': + '@voidzero-dev/vite-plus-win32-x64-msvc@0.1.16': optional: true '@volar/language-core@2.4.15': @@ -16355,7 +16385,7 @@ snapshots: '@vueuse/core': 14.2.1(vue@3.5.30) '@vueuse/metadata': 14.2.1 local-pkg: 1.1.2 - nuxt: 4.3.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@parcel/watcher@2.5.6)(@types/node@24.12.0)(@upstash/redis@1.37.0)(@vue/compiler-sfc@3.5.32)(better-sqlite3@12.8.0)(cac@6.7.14)(db0@0.3.4)(eslint@10.2.0)(ioredis@5.10.1)(magicast@0.5.2)(optionator@0.9.4)(oxlint@1.55.0)(rolldown@1.0.0-rc.12)(rollup@4.60.1)(srvx@0.11.15)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18)(vue-tsc@3.2.6)(yaml@2.8.3) + nuxt: 4.3.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@parcel/watcher@2.5.6)(@types/node@24.12.0)(@upstash/redis@1.37.0)(@vue/compiler-sfc@3.5.32)(better-sqlite3@12.8.0)(cac@6.7.14)(db0@0.3.4)(eslint@10.2.0)(ioredis@5.10.1)(magicast@0.5.2)(optionator@0.9.4)(oxlint@1.58.0)(rolldown@1.0.0-rc.12)(rollup@4.60.1)(srvx@0.11.15)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18)(vue-tsc@3.2.6)(yaml@2.8.3) vue: 3.5.30(typescript@6.0.2) transitivePeerDependencies: - magicast @@ -17319,7 +17349,7 @@ snapshots: exsolve: 1.0.8 git-url-parse: 16.1.0 motion-v: 1.10.3(@vueuse/core@14.2.1)(react-dom@19.2.4)(react@19.2.4)(vue@3.5.30) - nuxt: 4.3.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@parcel/watcher@2.5.6)(@types/node@24.12.0)(@upstash/redis@1.37.0)(@vue/compiler-sfc@3.5.32)(better-sqlite3@12.8.0)(cac@6.7.14)(db0@0.3.4)(eslint@10.2.0)(ioredis@5.10.1)(magicast@0.5.2)(optionator@0.9.4)(oxlint@1.55.0)(rolldown@1.0.0-rc.12)(rollup@4.60.1)(srvx@0.11.15)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18)(vue-tsc@3.2.6)(yaml@2.8.3) + nuxt: 4.3.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@parcel/watcher@2.5.6)(@types/node@24.12.0)(@upstash/redis@1.37.0)(@vue/compiler-sfc@3.5.32)(better-sqlite3@12.8.0)(cac@6.7.14)(db0@0.3.4)(eslint@10.2.0)(ioredis@5.10.1)(magicast@0.5.2)(optionator@0.9.4)(oxlint@1.58.0)(rolldown@1.0.0-rc.12)(rollup@4.60.1)(srvx@0.11.15)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18)(vue-tsc@3.2.6)(yaml@2.8.3) nuxt-llms: 0.2.0(magicast@0.5.2) nuxt-og-image: 5.1.13(@unhead/vue@2.1.13)(magicast@0.5.2)(unstorage@1.17.5)(vite@8.0.0-beta.18)(vue@3.5.30) pkg-types: 2.3.0 @@ -18502,7 +18532,7 @@ snapshots: html-escaper@2.0.2: {} - html-validate@9.4.2(@voidzero-dev/vite-plus-test@0.1.12): + html-validate@9.4.2(@voidzero-dev/vite-plus-test@0.1.16): dependencies: '@html-validate/stylish': 4.3.0 '@sidvind/better-ajv-errors': 3.0.1(ajv@8.18.0) @@ -18513,7 +18543,7 @@ snapshots: prompts: 2.4.2 semver: 7.7.4 optionalDependencies: - vitest: '@voidzero-dev/vite-plus-test@0.1.12(@opentelemetry/api@1.9.0)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18)(yaml@2.8.3)' + vitest: '@voidzero-dev/vite-plus-test@0.1.16(@opentelemetry/api@1.9.0)(@types/node@24.12.0)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18)(yaml@2.8.3)' html-void-elements@3.0.0: {} @@ -19937,7 +19967,7 @@ snapshots: - vite - vue - nuxt@4.3.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@parcel/watcher@2.5.6)(@types/node@24.12.0)(@upstash/redis@1.37.0)(@vue/compiler-sfc@3.5.32)(better-sqlite3@12.8.0)(cac@6.7.14)(db0@0.3.4)(eslint@10.2.0)(ioredis@5.10.1)(magicast@0.5.2)(optionator@0.9.4)(oxlint@1.55.0)(rolldown@1.0.0-rc.12)(rollup@4.60.1)(srvx@0.11.15)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18)(vue-tsc@3.2.6)(yaml@2.8.3): + nuxt@4.3.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@parcel/watcher@2.5.6)(@types/node@24.12.0)(@upstash/redis@1.37.0)(@vue/compiler-sfc@3.5.32)(better-sqlite3@12.8.0)(cac@6.7.14)(db0@0.3.4)(eslint@10.2.0)(ioredis@5.10.1)(magicast@0.5.2)(optionator@0.9.4)(oxlint@1.58.0)(rolldown@1.0.0-rc.12)(rollup@4.60.1)(srvx@0.11.15)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18)(vue-tsc@3.2.6)(yaml@2.8.3): dependencies: '@dxup/nuxt': 0.3.2(magicast@0.5.2) '@nuxt/cli': 3.34.0(@nuxt/schema@4.3.1)(cac@6.7.14)(magicast@0.5.2) @@ -19946,7 +19976,7 @@ snapshots: '@nuxt/nitro-server': 4.3.1(@upstash/redis@1.37.0)(better-sqlite3@12.8.0)(db0@0.3.4)(ioredis@5.10.1)(magicast@0.5.2)(nuxt@4.3.1)(rolldown@1.0.0-rc.12)(srvx@0.11.15)(typescript@6.0.2) '@nuxt/schema': 4.3.1 '@nuxt/telemetry': 2.8.0(@nuxt/kit@4.3.1) - '@nuxt/vite-builder': 4.3.1(@types/node@24.12.0)(eslint@10.2.0)(magicast@0.5.2)(nuxt@4.3.1)(optionator@0.9.4)(oxlint@1.55.0)(rolldown@1.0.0-rc.12)(rollup@4.60.1)(terser@5.46.1)(typescript@6.0.2)(vue-tsc@3.2.6)(vue@3.5.30)(yaml@2.8.3) + '@nuxt/vite-builder': 4.3.1(@types/node@24.12.0)(eslint@10.2.0)(magicast@0.5.2)(nuxt@4.3.1)(optionator@0.9.4)(oxlint@1.58.0)(rolldown@1.0.0-rc.12)(rollup@4.60.1)(terser@5.46.1)(typescript@6.0.2)(vue-tsc@3.2.6)(vue@3.5.30)(yaml@2.8.3) '@unhead/vue': 2.1.13(vue@3.5.30) '@vue/shared': 3.5.32 c12: 3.3.4(magicast@0.5.2) @@ -20385,61 +20415,61 @@ snapshots: magic-regexp: 0.10.0 oxc-parser: 0.115.0(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) - oxfmt@0.40.0: + oxfmt@0.43.0: dependencies: tinypool: 2.1.0 optionalDependencies: - '@oxfmt/binding-android-arm-eabi': 0.40.0 - '@oxfmt/binding-android-arm64': 0.40.0 - '@oxfmt/binding-darwin-arm64': 0.40.0 - '@oxfmt/binding-darwin-x64': 0.40.0 - '@oxfmt/binding-freebsd-x64': 0.40.0 - '@oxfmt/binding-linux-arm-gnueabihf': 0.40.0 - '@oxfmt/binding-linux-arm-musleabihf': 0.40.0 - '@oxfmt/binding-linux-arm64-gnu': 0.40.0 - '@oxfmt/binding-linux-arm64-musl': 0.40.0 - '@oxfmt/binding-linux-ppc64-gnu': 0.40.0 - '@oxfmt/binding-linux-riscv64-gnu': 0.40.0 - '@oxfmt/binding-linux-riscv64-musl': 0.40.0 - '@oxfmt/binding-linux-s390x-gnu': 0.40.0 - '@oxfmt/binding-linux-x64-gnu': 0.40.0 - '@oxfmt/binding-linux-x64-musl': 0.40.0 - '@oxfmt/binding-openharmony-arm64': 0.40.0 - '@oxfmt/binding-win32-arm64-msvc': 0.40.0 - '@oxfmt/binding-win32-ia32-msvc': 0.40.0 - '@oxfmt/binding-win32-x64-msvc': 0.40.0 - - oxlint-tsgolint@0.17.0: + '@oxfmt/binding-android-arm-eabi': 0.43.0 + '@oxfmt/binding-android-arm64': 0.43.0 + '@oxfmt/binding-darwin-arm64': 0.43.0 + '@oxfmt/binding-darwin-x64': 0.43.0 + '@oxfmt/binding-freebsd-x64': 0.43.0 + '@oxfmt/binding-linux-arm-gnueabihf': 0.43.0 + '@oxfmt/binding-linux-arm-musleabihf': 0.43.0 + '@oxfmt/binding-linux-arm64-gnu': 0.43.0 + '@oxfmt/binding-linux-arm64-musl': 0.43.0 + '@oxfmt/binding-linux-ppc64-gnu': 0.43.0 + '@oxfmt/binding-linux-riscv64-gnu': 0.43.0 + '@oxfmt/binding-linux-riscv64-musl': 0.43.0 + '@oxfmt/binding-linux-s390x-gnu': 0.43.0 + '@oxfmt/binding-linux-x64-gnu': 0.43.0 + '@oxfmt/binding-linux-x64-musl': 0.43.0 + '@oxfmt/binding-openharmony-arm64': 0.43.0 + '@oxfmt/binding-win32-arm64-msvc': 0.43.0 + '@oxfmt/binding-win32-ia32-msvc': 0.43.0 + '@oxfmt/binding-win32-x64-msvc': 0.43.0 + + oxlint-tsgolint@0.20.0: optionalDependencies: - '@oxlint-tsgolint/darwin-arm64': 0.17.0 - '@oxlint-tsgolint/darwin-x64': 0.17.0 - '@oxlint-tsgolint/linux-arm64': 0.17.0 - '@oxlint-tsgolint/linux-x64': 0.17.0 - '@oxlint-tsgolint/win32-arm64': 0.17.0 - '@oxlint-tsgolint/win32-x64': 0.17.0 - - oxlint@1.55.0(oxlint-tsgolint@0.17.0): + '@oxlint-tsgolint/darwin-arm64': 0.20.0 + '@oxlint-tsgolint/darwin-x64': 0.20.0 + '@oxlint-tsgolint/linux-arm64': 0.20.0 + '@oxlint-tsgolint/linux-x64': 0.20.0 + '@oxlint-tsgolint/win32-arm64': 0.20.0 + '@oxlint-tsgolint/win32-x64': 0.20.0 + + oxlint@1.58.0(oxlint-tsgolint@0.20.0): optionalDependencies: - '@oxlint/binding-android-arm-eabi': 1.55.0 - '@oxlint/binding-android-arm64': 1.55.0 - '@oxlint/binding-darwin-arm64': 1.55.0 - '@oxlint/binding-darwin-x64': 1.55.0 - '@oxlint/binding-freebsd-x64': 1.55.0 - '@oxlint/binding-linux-arm-gnueabihf': 1.55.0 - '@oxlint/binding-linux-arm-musleabihf': 1.55.0 - '@oxlint/binding-linux-arm64-gnu': 1.55.0 - '@oxlint/binding-linux-arm64-musl': 1.55.0 - '@oxlint/binding-linux-ppc64-gnu': 1.55.0 - '@oxlint/binding-linux-riscv64-gnu': 1.55.0 - '@oxlint/binding-linux-riscv64-musl': 1.55.0 - '@oxlint/binding-linux-s390x-gnu': 1.55.0 - '@oxlint/binding-linux-x64-gnu': 1.55.0 - '@oxlint/binding-linux-x64-musl': 1.55.0 - '@oxlint/binding-openharmony-arm64': 1.55.0 - '@oxlint/binding-win32-arm64-msvc': 1.55.0 - '@oxlint/binding-win32-ia32-msvc': 1.55.0 - '@oxlint/binding-win32-x64-msvc': 1.55.0 - oxlint-tsgolint: 0.17.0 + '@oxlint/binding-android-arm-eabi': 1.58.0 + '@oxlint/binding-android-arm64': 1.58.0 + '@oxlint/binding-darwin-arm64': 1.58.0 + '@oxlint/binding-darwin-x64': 1.58.0 + '@oxlint/binding-freebsd-x64': 1.58.0 + '@oxlint/binding-linux-arm-gnueabihf': 1.58.0 + '@oxlint/binding-linux-arm-musleabihf': 1.58.0 + '@oxlint/binding-linux-arm64-gnu': 1.58.0 + '@oxlint/binding-linux-arm64-musl': 1.58.0 + '@oxlint/binding-linux-ppc64-gnu': 1.58.0 + '@oxlint/binding-linux-riscv64-gnu': 1.58.0 + '@oxlint/binding-linux-riscv64-musl': 1.58.0 + '@oxlint/binding-linux-s390x-gnu': 1.58.0 + '@oxlint/binding-linux-x64-gnu': 1.58.0 + '@oxlint/binding-linux-x64-musl': 1.58.0 + '@oxlint/binding-openharmony-arm64': 1.58.0 + '@oxlint/binding-win32-arm64-msvc': 1.58.0 + '@oxlint/binding-win32-ia32-msvc': 1.58.0 + '@oxlint/binding-win32-x64-msvc': 1.58.0 + oxlint-tsgolint: 0.20.0 p-all@5.0.1: dependencies: @@ -22105,15 +22135,13 @@ snapshots: type-fest: 0.16.0 unique-string: 2.0.0 - terser-webpack-plugin@5.4.0(esbuild@0.27.7)(webpack@5.105.4): + terser-webpack-plugin@5.4.0(webpack@5.105.4): dependencies: '@jridgewell/trace-mapping': 0.3.31 jest-worker: 27.5.1 schema-utils: 4.3.3 terser: 5.46.1 - webpack: 5.105.4(esbuild@0.27.7) - optionalDependencies: - esbuild: 0.27.7 + webpack: 5.105.4 terser@5.46.1: dependencies: @@ -22721,7 +22749,7 @@ snapshots: es-module-lexer: 2.0.0 obug: 2.1.1 pathe: 2.0.3 - vite: '@voidzero-dev/vite-plus-core@0.1.12(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(yaml@2.8.3)' + vite: '@voidzero-dev/vite-plus-core@0.1.16(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(yaml@2.8.3)' transitivePeerDependencies: - '@arethetypeswrong/core' - '@tsdown/css' @@ -22742,7 +22770,7 @@ snapshots: - unplugin-unused - yaml - vite-plugin-checker@0.12.0(@voidzero-dev/vite-plus-core@0.1.12)(eslint@10.2.0)(optionator@0.9.4)(oxlint@1.55.0)(typescript@6.0.2)(vue-tsc@3.2.6): + vite-plugin-checker@0.12.0(@voidzero-dev/vite-plus-core@0.1.16)(eslint@10.2.0)(optionator@0.9.4)(oxlint@1.58.0)(typescript@6.0.2)(vue-tsc@3.2.6): dependencies: '@babel/code-frame': 7.29.0 chokidar: 4.0.3 @@ -22751,12 +22779,12 @@ snapshots: picomatch: 4.0.4 tiny-invariant: 1.3.3 tinyglobby: 0.2.15 - vite: '@voidzero-dev/vite-plus-core@0.1.12(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(yaml@2.8.3)' + vite: '@voidzero-dev/vite-plus-core@0.1.16(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(yaml@2.8.3)' vscode-uri: 3.1.0 optionalDependencies: eslint: 10.2.0(jiti@2.6.1) optionator: 0.9.4 - oxlint: 1.55.0(oxlint-tsgolint@0.17.0) + oxlint: 1.58.0(oxlint-tsgolint@0.20.0) typescript: 6.0.2 vue-tsc: 3.2.6(typescript@6.0.2) @@ -22800,24 +22828,23 @@ snapshots: vite: 8.0.0-beta.18(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(yaml@2.8.3) vue: 3.5.30(typescript@6.0.2) - vite-plus@0.1.12(@opentelemetry/api@1.9.0)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18)(yaml@2.8.3): + vite-plus@0.1.16(@opentelemetry/api@1.9.0)(@types/node@24.12.0)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18)(yaml@2.8.3): dependencies: - '@oxc-project/types': 0.115.0 - '@voidzero-dev/vite-plus-core': 0.1.12(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(yaml@2.8.3) - '@voidzero-dev/vite-plus-test': 0.1.12(@opentelemetry/api@1.9.0)(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18)(yaml@2.8.3) - cac: 6.7.14 - cross-spawn: 7.0.6 - oxfmt: 0.40.0 - oxlint: 1.55.0(oxlint-tsgolint@0.17.0) - oxlint-tsgolint: 0.17.0 - picocolors: 1.1.1 + '@oxc-project/types': 0.123.0 + '@voidzero-dev/vite-plus-core': 0.1.16(@types/node@24.12.0)(esbuild@0.27.7)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(yaml@2.8.3) + '@voidzero-dev/vite-plus-test': 0.1.16(@opentelemetry/api@1.9.0)(@types/node@24.12.0)(jiti@2.6.1)(terser@5.46.1)(typescript@6.0.2)(vite@8.0.0-beta.18)(yaml@2.8.3) + oxfmt: 0.43.0 + oxlint: 1.58.0(oxlint-tsgolint@0.20.0) + oxlint-tsgolint: 0.20.0 optionalDependencies: - '@voidzero-dev/vite-plus-darwin-arm64': 0.1.12 - '@voidzero-dev/vite-plus-darwin-x64': 0.1.12 - '@voidzero-dev/vite-plus-linux-arm64-gnu': 0.1.12 - '@voidzero-dev/vite-plus-linux-x64-gnu': 0.1.12 - '@voidzero-dev/vite-plus-win32-arm64-msvc': 0.1.12 - '@voidzero-dev/vite-plus-win32-x64-msvc': 0.1.12 + '@voidzero-dev/vite-plus-darwin-arm64': 0.1.16 + '@voidzero-dev/vite-plus-darwin-x64': 0.1.16 + '@voidzero-dev/vite-plus-linux-arm64-gnu': 0.1.16 + '@voidzero-dev/vite-plus-linux-arm64-musl': 0.1.16 + '@voidzero-dev/vite-plus-linux-x64-gnu': 0.1.16 + '@voidzero-dev/vite-plus-linux-x64-musl': 0.1.16 + '@voidzero-dev/vite-plus-win32-arm64-msvc': 0.1.16 + '@voidzero-dev/vite-plus-win32-x64-msvc': 0.1.16 transitivePeerDependencies: - '@arethetypeswrong/core' - '@edge-runtime/vm' @@ -22865,9 +22892,9 @@ snapshots: - '@emnapi/core' - '@emnapi/runtime' - vitest-environment-nuxt@1.0.1(@playwright/test@1.58.2)(@voidzero-dev/vite-plus-test@0.1.12)(@vue/test-utils@2.4.6)(crossws@0.4.4)(magicast@0.5.2)(playwright-core@1.59.1)(typescript@6.0.2)(vite@8.0.0-beta.18): + vitest-environment-nuxt@1.0.1(@playwright/test@1.58.2)(@voidzero-dev/vite-plus-test@0.1.16)(@vue/test-utils@2.4.6)(crossws@0.4.4)(magicast@0.5.2)(playwright-core@1.59.1)(typescript@6.0.2)(vite@8.0.0-beta.18): dependencies: - '@nuxt/test-utils': 4.0.0(@playwright/test@1.58.2)(@voidzero-dev/vite-plus-test@0.1.12)(@vue/test-utils@2.4.6)(crossws@0.4.4)(magicast@0.5.2)(playwright-core@1.59.1)(typescript@6.0.2)(vite@8.0.0-beta.18) + '@nuxt/test-utils': 4.0.0(@playwright/test@1.58.2)(@voidzero-dev/vite-plus-test@0.1.16)(@vue/test-utils@2.4.6)(crossws@0.4.4)(magicast@0.5.2)(playwright-core@1.59.1)(typescript@6.0.2)(vite@8.0.0-beta.18) transitivePeerDependencies: - '@cucumber/cucumber' - '@jest/globals' @@ -22999,7 +23026,7 @@ snapshots: webpack-virtual-modules@0.6.2: {} - webpack@5.105.4(esbuild@0.27.7): + webpack@5.105.4: dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.8 @@ -23023,7 +23050,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 4.3.3 tapable: 2.3.2 - terser-webpack-plugin: 5.4.0(esbuild@0.27.7)(webpack@5.105.4) + terser-webpack-plugin: 5.4.0(webpack@5.105.4) watchpack: 2.5.1 webpack-sources: 3.3.4 transitivePeerDependencies: diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 4ff882a1b1..18b761e851 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -21,8 +21,8 @@ dedupePeers: true overrides: sharp: 0.34.5 - vite: npm:@voidzero-dev/vite-plus-core@0.1.12 - vitest: npm:@voidzero-dev/vite-plus-test@0.1.12 + vite: npm:@voidzero-dev/vite-plus-core@0.1.16 + vitest: npm:@voidzero-dev/vite-plus-test@0.1.16 storybook: ^10.3.1 packageExtensions: diff --git a/vite.config.ts b/vite.config.ts index e34f71b121..46f5c6964f 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -45,6 +45,7 @@ export default defineConfig({ perf: 'warn', }, rules: { + 'vitest/require-mock-type-parameters': 'off', 'no-console': 'warn', 'no-await-in-loop': 'off', 'unicorn/no-array-sort': 'off', From c93d9b039476e607ef51afee0b0f60e4b4ab31f1 Mon Sep 17 00:00:00 2001 From: Trivikram Kamat <16024985+trivikr@users.noreply.github.com> Date: Thu, 9 Apr 2026 09:44:59 -0700 Subject: [PATCH 07/20] refactor: parallelize docs rendering and shiki setup (#2382) Co-authored-by: Willow (GHOST) --- server/utils/docs/render.ts | 84 +++++++++------ server/utils/docs/text.ts | 12 ++- server/utils/shiki.ts | 120 +++++++++++---------- test/unit/server/utils/docs/render.spec.ts | 61 +++++++++++ 4 files changed, 183 insertions(+), 94 deletions(-) diff --git a/server/utils/docs/render.ts b/server/utils/docs/render.ts index c4b259dbf6..eb3393b173 100644 --- a/server/utils/docs/render.ts +++ b/server/utils/docs/render.ts @@ -57,16 +57,14 @@ export async function renderDocNodes( symbolLookup: SymbolLookup, ): Promise { const grouped = groupMergedByKind(symbols) - const sections: string[] = [] - - for (const kind of KIND_DISPLAY_ORDER) { + const sectionPromises = KIND_DISPLAY_ORDER.map(async kind => { const kindSymbols = grouped[kind] - if (!kindSymbols || kindSymbols.length === 0) continue + if (!kindSymbols || kindSymbols.length === 0) return '' + return renderKindSection(kind, kindSymbols, symbolLookup) + }) - sections.push(await renderKindSection(kind, kindSymbols, symbolLookup)) - } - - return sections.join('\n') + const sections = await Promise.all(sectionPromises) + return sections.filter(Boolean).join('\n') } /** @@ -79,13 +77,13 @@ async function renderKindSection( ): Promise { const title = KIND_TITLES[kind] || kind const lines: string[] = [] + const renderedSymbols = await Promise.all( + symbols.map(symbol => renderMergedSymbol(symbol, symbolLookup)), + ) lines.push(`
`) lines.push(`

${title}

`) - - for (const symbol of symbols) { - lines.push(await renderMergedSymbol(symbol, symbolLookup)) - } + lines.push(...renderedSymbols) lines.push(`
`) @@ -129,9 +127,21 @@ async function renderMergedSymbol( .map(n => getNodeSignature(n)) .filter(Boolean) as string[] - if (signatures.length > 0) { - const signatureCode = signatures.join('\n') - const highlightedSignature = await highlightCodeBlock(signatureCode, 'typescript') + const description = symbol.jsDoc?.doc?.trim() + const signaturePromise = + signatures.length > 0 ? highlightCodeBlock(signatures.join('\n'), 'typescript') : null + const descriptionPromise = description ? renderMarkdown(description, symbolLookup) : null + const jsDocTagsPromise = + symbol.jsDoc?.tags && symbol.jsDoc.tags.length > 0 + ? renderJsDocTags(symbol.jsDoc.tags, symbolLookup) + : null + const [highlightedSignature, renderedDescription, renderedJsDocTags] = await Promise.all([ + signaturePromise, + descriptionPromise, + jsDocTagsPromise, + ]) + + if (highlightedSignature) { lines.push(`
${highlightedSignature}
`) if (symbol.nodes.length > MAX_OVERLOAD_SIGNATURES) { @@ -141,16 +151,13 @@ async function renderMergedSymbol( } // Description - if (symbol.jsDoc?.doc) { - const description = symbol.jsDoc.doc.trim() - lines.push( - `
${await renderMarkdown(description, symbolLookup)}
`, - ) + if (renderedDescription) { + lines.push(`
${renderedDescription}
`) } // JSDoc tags - if (symbol.jsDoc?.tags && symbol.jsDoc.tags.length > 0) { - lines.push(await renderJsDocTags(symbol.jsDoc.tags, symbolLookup)) + if (renderedJsDocTags) { + lines.push(renderedJsDocTags) } // Type-specific members @@ -179,15 +186,30 @@ async function renderJsDocTags(tags: JsDocTag[], symbolLookup: SymbolLookup): Pr const deprecated = tags.find(t => t.kind === 'deprecated') const see = tags.filter(t => t.kind === 'see') + const deprecatedMessagePromise = deprecated?.doc + ? renderMarkdown(deprecated.doc.replace(/\n/g, ' '), symbolLookup) + : null + const examplePromises = examples.map(async example => { + if (!example.doc) return '' + const langMatch = example.doc.match(/```(\w+)?/) + const lang = langMatch?.[1] || 'typescript' + const code = example.doc.replace(/```\w*\n?/g, '').trim() + return highlightCodeBlock(code, lang) + }) + + const [renderedDeprecatedMessage, ...renderedExamples] = await Promise.all([ + deprecatedMessagePromise, + ...examplePromises, + ]) + // Deprecated warning if (deprecated) { lines.push(`
`) lines.push(`Deprecated`) - if (deprecated.doc) { + if (renderedDeprecatedMessage) { // We remove new lines because they look weird when rendered into the deprecated block // I think markdown is actually supposed to collapse single new lines automatically but this function doesn't do that so if that changes remove this - const renderedMessage = await renderMarkdown(deprecated.doc.replace(/\n/g, ' '), symbolLookup) - lines.push(`
${renderedMessage}
`) + lines.push(`
${renderedDeprecatedMessage}
`) } lines.push(`
`) } @@ -218,18 +240,10 @@ async function renderJsDocTags(tags: JsDocTag[], symbolLookup: SymbolLookup): Pr } // Examples (with syntax highlighting) - if (examples.length > 0) { + if (examples.length > 0 && renderedExamples.some(Boolean)) { lines.push(`
`) lines.push(`

Example${examples.length > 1 ? 's' : ''}

`) - for (const example of examples) { - if (example.doc) { - const langMatch = example.doc.match(/```(\w+)?/) - const lang = langMatch?.[1] || 'typescript' - const code = example.doc.replace(/```\w*\n?/g, '').trim() - const highlighted = await highlightCodeBlock(code, lang) - lines.push(highlighted) - } - } + lines.push(...renderedExamples.filter(Boolean)) lines.push(`
`) } diff --git a/server/utils/docs/text.ts b/server/utils/docs/text.ts index 7cb5749039..706fbede38 100644 --- a/server/utils/docs/text.ts +++ b/server/utils/docs/text.ts @@ -131,11 +131,13 @@ export async function renderMarkdown(text: string, symbolLookup: SymbolLookup): .replace(/\n/g, '
') // Highlight and restore code blocks - for (let i = 0; i < codeBlockData.length; i++) { - const { lang, code } = codeBlockData[i]! - const highlighted = await highlightCodeBlock(code, lang) - result = result.replace(`__CODE_BLOCK_${i}__`, highlighted) - } + const highlightedCodeBlocks = await Promise.all( + codeBlockData.map(({ lang, code }) => highlightCodeBlock(code, lang)), + ) + + highlightedCodeBlocks.forEach((highlighted, i) => { + result = result.replace(`__CODE_BLOCK_${i}__`, () => highlighted) + }) return result } diff --git a/server/utils/shiki.ts b/server/utils/shiki.ts index 00eaf6a71c..d070a5e95b 100644 --- a/server/utils/shiki.ts +++ b/server/utils/shiki.ts @@ -3,6 +3,7 @@ import { createHighlighterCore, type HighlighterCore } from 'shiki/core' import { createJavaScriptRegexEngine } from 'shiki/engine/javascript' let highlighter: HighlighterCore | null = null +let highlighterPromise: Promise | null = null function replaceThemeColors( theme: ThemeRegistration, @@ -18,65 +19,76 @@ function replaceThemeColors( } export async function getShikiHighlighter(): Promise { - if (!highlighter) { - highlighter = await createHighlighterCore({ - themes: [ - import('@shikijs/themes/github-dark'), - import('@shikijs/themes/github-light').then(t => - replaceThemeColors(t.default ?? t, { - '#22863A': '#227436', // green - '#E36209': '#BA4D02', // orange - '#D73A49': '#CD3443', // red - '#B31D28': '#AC222F', // red - }), - ), - ], - langs: [ - // Core web languages - import('@shikijs/langs/javascript'), - import('@shikijs/langs/typescript'), - import('@shikijs/langs/json'), - import('@shikijs/langs/jsonc'), - import('@shikijs/langs/html'), - import('@shikijs/langs/css'), - import('@shikijs/langs/scss'), - import('@shikijs/langs/less'), + if (highlighter) { + return highlighter + } + + highlighterPromise ??= createHighlighterCore({ + themes: [ + import('@shikijs/themes/github-dark'), + import('@shikijs/themes/github-light').then(t => + replaceThemeColors(t.default ?? t, { + '#22863A': '#227436', // green + '#E36209': '#BA4D02', // orange + '#D73A49': '#CD3443', // red + '#B31D28': '#AC222F', // red + }), + ), + ], + langs: [ + // Core web languages + import('@shikijs/langs/javascript'), + import('@shikijs/langs/typescript'), + import('@shikijs/langs/json'), + import('@shikijs/langs/jsonc'), + import('@shikijs/langs/html'), + import('@shikijs/langs/css'), + import('@shikijs/langs/scss'), + import('@shikijs/langs/less'), - // Frameworks - import('@shikijs/langs/vue'), - import('@shikijs/langs/jsx'), - import('@shikijs/langs/tsx'), - import('@shikijs/langs/svelte'), - import('@shikijs/langs/astro'), - import('@shikijs/langs/glimmer-js'), - import('@shikijs/langs/glimmer-ts'), + // Frameworks + import('@shikijs/langs/vue'), + import('@shikijs/langs/jsx'), + import('@shikijs/langs/tsx'), + import('@shikijs/langs/svelte'), + import('@shikijs/langs/astro'), + import('@shikijs/langs/glimmer-js'), + import('@shikijs/langs/glimmer-ts'), - // Shell/CLI - import('@shikijs/langs/bash'), - import('@shikijs/langs/shell'), + // Shell/CLI + import('@shikijs/langs/bash'), + import('@shikijs/langs/shell'), - // Config/Data formats - import('@shikijs/langs/yaml'), - import('@shikijs/langs/toml'), - import('@shikijs/langs/xml'), - import('@shikijs/langs/markdown'), + // Config/Data formats + import('@shikijs/langs/yaml'), + import('@shikijs/langs/toml'), + import('@shikijs/langs/xml'), + import('@shikijs/langs/markdown'), - // Other languages - import('@shikijs/langs/diff'), - import('@shikijs/langs/sql'), - import('@shikijs/langs/graphql'), - import('@shikijs/langs/python'), - import('@shikijs/langs/rust'), - import('@shikijs/langs/go'), - ], - langAlias: { - gjs: 'glimmer-js', - gts: 'glimmer-ts', - }, - engine: createJavaScriptRegexEngine(), + // Other languages + import('@shikijs/langs/diff'), + import('@shikijs/langs/sql'), + import('@shikijs/langs/graphql'), + import('@shikijs/langs/python'), + import('@shikijs/langs/rust'), + import('@shikijs/langs/go'), + ], + langAlias: { + gjs: 'glimmer-js', + gts: 'glimmer-ts', + }, + engine: createJavaScriptRegexEngine(), + }) + .then(createdHighlighter => { + highlighter = createdHighlighter + return createdHighlighter }) - } - return highlighter + .catch(error => { + highlighterPromise = null + throw error + }) + + return highlighterPromise } /** diff --git a/test/unit/server/utils/docs/render.spec.ts b/test/unit/server/utils/docs/render.spec.ts index 739dc29c80..1d7d5286ef 100644 --- a/test/unit/server/utils/docs/render.spec.ts +++ b/test/unit/server/utils/docs/render.spec.ts @@ -21,6 +21,37 @@ function createClassSymbol(classDef: DenoDocNode['classDef']): MergedSymbol { } } +function createFunctionSymbol(name: string): MergedSymbol { + const node: DenoDocNode = { + name, + kind: 'function', + functionDef: { + params: [], + returnType: { repr: 'void', kind: 'keyword', keyword: 'void' }, + }, + } + + return { + name, + kind: 'function', + nodes: [node], + } +} + +function createInterfaceSymbol(name: string): MergedSymbol { + const node: DenoDocNode = { + name, + kind: 'interface', + interfaceDef: {}, + } + + return { + name, + kind: 'interface', + nodes: [node], + } +} + describe('issue #1943 - class getters separated from methods', () => { it('renders getters under a "Getters" heading, not "Methods"', async () => { const symbol = createClassSymbol({ @@ -131,3 +162,33 @@ describe('issue #1943 - class getters separated from methods', () => { expect(html).toContain('static get instance') }) }) + +describe('renderDocNodes ordering', () => { + it('preserves kind display order while rendering sections in parallel', async () => { + const html = await renderDocNodes( + [createInterfaceSymbol('Config'), createFunctionSymbol('run')], + new Map(), + ) + + const functionsIndex = html.indexOf('id="section-function"') + const interfacesIndex = html.indexOf('id="section-interface"') + + expect(functionsIndex).toBeGreaterThanOrEqual(0) + expect(interfacesIndex).toBeGreaterThanOrEqual(0) + expect(functionsIndex).toBeLessThan(interfacesIndex) + }) + + it('preserves symbol order within a section while rendering symbols in parallel', async () => { + const html = await renderDocNodes( + [createFunctionSymbol('alpha'), createFunctionSymbol('beta')], + new Map(), + ) + + const alphaIndex = html.indexOf('id="function-alpha"') + const betaIndex = html.indexOf('id="function-beta"') + + expect(alphaIndex).toBeGreaterThanOrEqual(0) + expect(betaIndex).toBeGreaterThanOrEqual(0) + expect(alphaIndex).toBeLessThan(betaIndex) + }) +}) From 5a2b1a62f818b94ed4080ac33bb56dfb6b8bc5b9 Mon Sep 17 00:00:00 2001 From: Philippe Serhal Date: Thu, 9 Apr 2026 13:15:21 -0400 Subject: [PATCH 08/20] ci: revert "ci: auto-remove `needs review` label when PR is reviewed" (#2440) --- .../remove-needs-review-on-review.yml | 69 ------------------- 1 file changed, 69 deletions(-) delete mode 100644 .github/workflows/remove-needs-review-on-review.yml diff --git a/.github/workflows/remove-needs-review-on-review.yml b/.github/workflows/remove-needs-review-on-review.yml deleted file mode 100644 index 4c8d2d29ab..0000000000 --- a/.github/workflows/remove-needs-review-on-review.yml +++ /dev/null @@ -1,69 +0,0 @@ -name: remove-needs-review-on-review - -on: - pull_request_review: - types: - - submitted - -jobs: - remove-needs-review: - name: 🏷️ Remove needs review label - if: github.repository == 'npmx-dev/npmx.dev' - runs-on: ubuntu-slim - permissions: - contents: read - issues: write - pull-requests: write - steps: - - name: 🏷️ Remove needs review label - uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0 - with: - script: | - const pr = context.payload.pull_request; - const review = context.payload.review; - const LABEL = 'needs review'; - const reviewer = review?.user?.login; - const author = pr.user?.login; - const reviewerType = review?.user?.type; - - if (!reviewer) { - console.log('No reviewer login found in payload, skipping.'); - return; - } - - if (reviewerType === 'Bot') { - console.log(`Skipping bot review from @${reviewer} on PR #${pr.number}.`); - return; - } - - if (reviewer === author) { - console.log(`Skipping self-review from @${reviewer} on PR #${pr.number}.`); - return; - } - - if (!pr.labels.some(({ name }) => name === LABEL)) { - console.log(`PR #${pr.number} does not have the "${LABEL}" label.`); - return; - } - - const { data: permission } = await github.rest.repos.getCollaboratorPermissionLevel({ - owner: context.repo.owner, - repo: context.repo.repo, - username: reviewer, - }); - - console.log(`Reviewer @${reviewer} permission is "${permission.permission}".`); - - if (!['admin', 'maintain', 'write'].includes(permission.permission)) { - console.log(`Reviewer @${reviewer} is not a maintainer, skipping.`); - return; - } - - await github.rest.issues.removeLabel({ - owner: context.repo.owner, - repo: context.repo.repo, - issue_number: pr.number, - name: LABEL, - }); - - console.log(`Removed "${LABEL}" from PR #${pr.number}.`); From f58c7656006a59d6282f3fb757636bcf972123d0 Mon Sep 17 00:00:00 2001 From: Julien Dargelos Date: Thu, 9 Apr 2026 20:09:37 +0200 Subject: [PATCH 09/20] fix(i18n): add missing French translations (#2441) --- i18n/locales/fr-FR.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/i18n/locales/fr-FR.json b/i18n/locales/fr-FR.json index 8acf692c94..b37ecd2bc5 100644 --- a/i18n/locales/fr-FR.json +++ b/i18n/locales/fr-FR.json @@ -312,6 +312,8 @@ "warnings": "Avertissements :", "go_back_home": "Retour à l'accueil", "per_week": "/ semaine", + "yes": "Oui", + "no": "Non", "vanity_downloads_hint": "Métrique de vanité : aucun paquet affiché | Métrique de vanité : pour le paquet affiché | Métrique de vanité : somme des {count} paquets affichés", "sort": { "name": "nom", @@ -334,6 +336,7 @@ "gitea": "Voir sur Gitea", "gitee": "Voir sur Gitee", "radicle": "Voir sur Radicle", + "socket_dev": "Voir sur socket.dev", "sourcehut": "Voir sur SourceHut", "tangled": "Voir sur Tangled" }, @@ -937,8 +940,11 @@ "lines": "{count} lignes", "toggle_tree": "Basculer l'arborescence", "close_tree": "Fermer l'arborescence", + "copy_content": "Copier le contenu du fichier", "copy_link": "Copier le lien", "view_raw": "Voir le fichier brut", + "toggle_container": "Changer la largeur du conteneur", + "open_raw_file": "Ouvrir le fichier brut", "file_too_large": "Fichier trop volumineux pour l'aperçu", "file_size_warning": "{size} dépasse la limite de 500 Ko pour la coloration syntaxique", "failed_to_load": "Échec du chargement du fichier", From fd7703c070b8eebf14210e557bcebc2770d4226b Mon Sep 17 00:00:00 2001 From: "Adebesin Tolulope (Lope)" Date: Thu, 9 Apr 2026 21:01:16 +0100 Subject: [PATCH 10/20] fix: pass query params to OG image ISR function on Vercel (#2432) Co-authored-by: Claude Opus 4.6 (1M context) --- app/pages/compare.vue | 2 +- nuxt.config.ts | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/app/pages/compare.vue b/app/pages/compare.vue index 46819fb471..9c4a4d2fee 100644 --- a/app/pages/compare.vue +++ b/app/pages/compare.vue @@ -140,7 +140,7 @@ async function exportComparisonDataAsMarkdown() { } defineOgImageComponent('Compare', { - packages: () => packages.value, + packages: () => packages.value.toSorted((a, b) => a.localeCompare(b)), emptyDescription: () => $t('compare.packages.meta_description_empty'), }) diff --git a/nuxt.config.ts b/nuxt.config.ts index d206d0824f..b80700e7f5 100644 --- a/nuxt.config.ts +++ b/nuxt.config.ts @@ -129,6 +129,13 @@ export default defineNuxtConfig({ '/:pkg/.well-known/skills/**': { isr: 3600 }, '/:scope/:pkg/.well-known/skills/**': { isr: 3600 }, '/__og-image__/**': getISRConfig(3600), + '/__og-image__/image/compare/**': { + isr: { + expiration: 3600, + passQuery: true, + allowQuery: ['packages', '_query'], + }, + }, '/_avatar/**': { isr: 3600, proxy: 'https://www.gravatar.com/avatar/**' }, '/opensearch.xml': { isr: true }, '/oauth-client-metadata.json': { prerender: true }, From 44373b5196a37910cb8026032bb13436b4972a40 Mon Sep 17 00:00:00 2001 From: Philippe Serhal Date: Fri, 10 Apr 2026 08:11:54 -0400 Subject: [PATCH 11/20] ci: add e18e dependency diff workflow (#2435) Co-authored-by: James Garbutt <43081j@users.noreply.github.com> --- .github/workflows/dependency-diff-comment.yml | 31 ++++++++++++ .github/workflows/dependency-diff.yml | 47 +++++++++++++++++++ 2 files changed, 78 insertions(+) create mode 100644 .github/workflows/dependency-diff-comment.yml create mode 100644 .github/workflows/dependency-diff.yml diff --git a/.github/workflows/dependency-diff-comment.yml b/.github/workflows/dependency-diff-comment.yml new file mode 100644 index 0000000000..484292967b --- /dev/null +++ b/.github/workflows/dependency-diff-comment.yml @@ -0,0 +1,31 @@ +name: dependency-diff-comment + +on: + workflow_run: + workflows: ['dependency-diff'] + types: + - completed + +permissions: + pull-requests: write + actions: read + +jobs: + dependency-diff-comment: + name: 💬 Dependency diff comment + runs-on: ubuntu-slim + if: github.event.workflow_run.conclusion == 'success' + + steps: + - name: 📥 Download artifact + uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 + with: + name: e18e-diff-result + run-id: ${{ github.event.workflow_run.id }} + github-token: ${{ secrets.GITHUB_TOKEN }} + + - name: 💬 Post comment + uses: e18e/action-dependency-diff@d995338f3b229fe7b2cd82048df5da930f70c7c3 # v1.4.4 + with: + mode: comment-from-artifact + artifact-path: e18e-diff-result.json diff --git a/.github/workflows/dependency-diff.yml b/.github/workflows/dependency-diff.yml new file mode 100644 index 0000000000..e098a813dd --- /dev/null +++ b/.github/workflows/dependency-diff.yml @@ -0,0 +1,47 @@ +name: dependency-diff + +on: + pull_request: + branches: + - main + - release + paths: + - package.json + - pnpm-lock.yaml + - pnpm-workspace.yaml + - docs/package.json + - cli/package.json + +concurrency: + group: ${{ github.workflow }}-${{ github.event.number || github.sha }} + cancel-in-progress: true + +permissions: + contents: read + +jobs: + dependency-diff: + name: 🔎 Dependency diff + runs-on: ubuntu-slim + + steps: + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + fetch-depth: 0 + + - name: 🔎 Compare dependencies + id: analyze + uses: e18e/action-dependency-diff@d995338f3b229fe7b2cd82048df5da930f70c7c3 # v1.4.4 + with: + mode: artifact + detect-replacements: 'true' + duplicate-threshold: '4' + dependency-threshold: '15' + size-threshold: '200000' + + - name: 📤 Upload artifact + if: steps.analyze.outputs.artifact-path + uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 + with: + name: e18e-diff-result + path: ${{ steps.analyze.outputs.artifact-path }} From 21420c04b2c15a55f07c5e4ce42af5d77fa57f51 Mon Sep 17 00:00:00 2001 From: Philippe Serhal Date: Fri, 10 Apr 2026 08:36:11 -0400 Subject: [PATCH 12/20] ci: actually bump `e18e/action-dependency-diff` to v1.5.0 (#2454) --- .github/workflows/dependency-diff-comment.yml | 2 +- .github/workflows/dependency-diff.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/dependency-diff-comment.yml b/.github/workflows/dependency-diff-comment.yml index 484292967b..bc25964635 100644 --- a/.github/workflows/dependency-diff-comment.yml +++ b/.github/workflows/dependency-diff-comment.yml @@ -25,7 +25,7 @@ jobs: github-token: ${{ secrets.GITHUB_TOKEN }} - name: 💬 Post comment - uses: e18e/action-dependency-diff@d995338f3b229fe7b2cd82048df5da930f70c7c3 # v1.4.4 + uses: e18e/action-dependency-diff@f825d5b5c5ce0a42dc46c47ec20de24460affcd8 # v1.5.0 with: mode: comment-from-artifact artifact-path: e18e-diff-result.json diff --git a/.github/workflows/dependency-diff.yml b/.github/workflows/dependency-diff.yml index e098a813dd..e445a7b981 100644 --- a/.github/workflows/dependency-diff.yml +++ b/.github/workflows/dependency-diff.yml @@ -31,7 +31,7 @@ jobs: - name: 🔎 Compare dependencies id: analyze - uses: e18e/action-dependency-diff@d995338f3b229fe7b2cd82048df5da930f70c7c3 # v1.4.4 + uses: e18e/action-dependency-diff@f825d5b5c5ce0a42dc46c47ec20de24460affcd8 # v1.5.0 with: mode: artifact detect-replacements: 'true' From eb2e6bb709d51d21123c6407515c018823e966be Mon Sep 17 00:00:00 2001 From: Bonsak Schiledrop <1322824+bonsak@users.noreply.github.com> Date: Fri, 10 Apr 2026 14:53:46 +0200 Subject: [PATCH 13/20] fix(i18n): add missing norwegian nb-NO translations (#2450) Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --- i18n/locales/nb-NO.json | 156 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 154 insertions(+), 2 deletions(-) diff --git a/i18n/locales/nb-NO.json b/i18n/locales/nb-NO.json index eaebd471e5..3e90970e59 100644 --- a/i18n/locales/nb-NO.json +++ b/i18n/locales/nb-NO.json @@ -28,6 +28,9 @@ "search": "Søk", "package": "Pakke" }, + "ctrl_key": "Ctrl", + "command_palette": "Åpne kommandopaletten", + "command_palette_description": "Bruk kommandopaletten til å hoppe mellom sider, pakkevisninger, innstillinger og eksterne lenker uten å forlate tastaturet. På macOS trykker du ⌘K. På Windows og Linux trykker du {ctrlKey}+K.", "focus_search": "Fokuser søk", "show_kbd_hints": "Vis tastaturtips", "settings": "Åpne innstillinger", @@ -76,6 +79,113 @@ "instant_search_turn_off": "slå av", "instant_search_advisory": "{label} {state} — {action}" }, + "command_palette": { + "title": "kommandopalett", + "quick_actions": "hopp til …", + "subtitle": "naviger i npmx og bytt innstillinger raskt", + "subtitle_languages": "velg språk eller hjelp til med å forbedre oversettelser", + "instructions": "Skriv for å filtrere kommandoer. Bruk piltastene for å flytte gjennom resultatene og Enter for å kjøre en kommando.", + "input_label": "Søk i kommandopaletten", + "results_label": "Kommandoresultater", + "placeholder": "skriv en kommando …", + "back": "Tilbake", + "empty": "Ingen treff på kommandoer", + "empty_search_hint": "Trykk Enter for å søke etter «{query}».", + "current": "gjeldende", + "here": "du er her", + "connected": "tilkoblet", + "state": { + "on": "på", + "off": "av" + }, + "groups": { + "actions": "Handlinger", + "help": "Hjelp", + "language": "Språk", + "connections": "Tilkoblinger", + "navigation": "Navigasjon", + "links": "Lenker", + "npmx": "npmx", + "package": "Pakke", + "package_with_name": "Pakke ({name})", + "versions": "Versjoner", + "versions_with_name": "Versjoner av {name}" + }, + "actions": { + "search": "Søk", + "search_for": "Søk etter «{query}»", + "keyboard_shortcuts": "Tastatursnarveier", + "help_translate": "Hjelp med å oversette" + }, + "connections": { + "npm_connect": "Koble til npm CLI", + "npm_connected": "npm CLI (~{username})", + "npm_disconnect": "Koble fra npm CLI", + "atmosphere_connect": "Koble til Atmosphere", + "atmosphere_connected": "atmosphere ({'@'}{handle})", + "atmosphere_disconnect": "Koble fra Atmosphere" + }, + "navigation": { + "home": "hjem", + "packages": "pakker (~{username})", + "orgs": "organisasjoner (~{username})", + "profile": "profil ({'@'}{handle})" + }, + "links": { + "external": "Ekstern lenke" + }, + "package_links": { + "stars": "Stjerner på repositoriet", + "forks": "Forks på repositoriet" + }, + "theme": { + "system": "Bruk systemtema", + "light": "Bruk lyst tema", + "dark": "Bruk mørkt tema" + }, + "package": { + "main": "Pakkeside", + "docs": "Dokumentasjon", + "code": "Kode", + "diff": "Diff", + "compare": "Sammenlign denne pakken", + "download": "Last ned tarball" + }, + "package_actions": { + "copy_run": "Kopier kjørekommando" + }, + "code": { + "copy_file": "Kopier filinnhold" + }, + "diff": { + "merge_modified_lines": "Slå sammen endrede linjer", + "word_wrap": "Tekstbryting" + }, + "version": { + "label": "{version}" + }, + "status": { + "available_in_context": "{context}. Ingen kommandoer tilgjengelig | {context}. 1 kommando tilgjengelig | {context}. {count} kommandoer tilgjengelig", + "matching_in_context": "{context}. Ingen treff på kommandoer | {context}. 1 treff på kommando | {context}. {count} treff på kommandoer", + "no_matches_search_in_context": "{context}. Ingen treff på kommandoer. Trykk Enter for å søke etter «{query}»." + }, + "announcements": { + "language_changed": "Språk satt til {language}.", + "relative_dates_on": "Relative datoer på.", + "relative_dates_off": "Relative datoer av.", + "theme_changed": "Tema satt til {theme}.", + "accent_color_changed": "Aksentfarge satt til {color}.", + "background_theme_changed": "Bakgrunnsnyanse satt til {theme}.", + "download_started": "Laster ned tarball for {package}.", + "copied_to_clipboard": "Kopiert til utklippstavlen.", + "npm_disconnected": "npm CLI frakoblet.", + "atmosphere_disconnected": "Atmosphere frakoblet.", + "facets_all_selected": "Alle fasetter valgt.", + "facets_all_deselected": "Alle fasetter fravalgt.", + "view_switched": "Byttet til {view}-visning.", + "setting_toggled": "{setting} {state}." + } + }, "nav": { "main_navigation": "Hovedmeny", "popular_packages": "Populære pakker", @@ -151,6 +261,7 @@ "translation_status": "Sjekk global oversettelsesstatus", "accent_colors": { "label": "Aksentfarger", + "neutral": "Nøytral", "sky": "Himmel", "coral": "Korall", "amber": "Rav", @@ -201,6 +312,8 @@ "warnings": "Advarsler:", "go_back_home": "Gå tilbake til start", "per_week": "/ uke", + "yes": "Ja", + "no": "Nei", "vanity_downloads_hint": "Visningstall: ingen pakker vist | Visningstall: for den viste pakken | Visningstall: Sum av {count} viste pakker", "sort": { "name": "navn", @@ -223,11 +336,14 @@ "gitea": "Vis på Gitea", "gitee": "Vis på Gitee", "radicle": "Vis på Radicle", + "socket_dev": "vis på socket.dev", "sourcehut": "Vis på SourceHut", "tangled": "Vis på Tangled" }, "collapse": "Skjul", - "expand": "Utvid" + "collapse_with_name": "Skjul {name}", + "expand": "Utvid", + "expand_with_name": "Utvid {name}" }, "profile": { "display_name": "Visningsnavn", @@ -487,6 +603,9 @@ "table_available": "En datatabell for dette diagrammet er tilgjengelig nedenfor.", "table_caption": "Diagramdatatabell" }, + "chart_view_toggle": "Veksle visning", + "chart_view_combined": "Kombinert visning", + "chart_view_split": "Delt visning", "granularity": "Oppløsning", "granularity_daily": "Daglig", "granularity_weekly": "Ukentlig", @@ -823,8 +942,12 @@ "lines": "{count} linje | {count} linjer", "toggle_tree": "Veksle filtre", "close_tree": "Lukk filtre", + "copy_content": "Kopier filinnhold", "copy_link": "Kopier lenke", "view_raw": "Vis råfil", + "toggle_container": "Veksle bredde på kodebeholder", + "open_raw_file": "Åpne råfil", + "open_path_dropdown": "Åpne rullegardin for mappestier", "file_too_large": "Filen er for stor til å forhåndsvises", "file_size_warning": "{size} overstiger grensen på 500KB for syntaksmarkering", "failed_to_load": "Kunne ikke laste fil", @@ -1102,6 +1225,7 @@ "empty_description": "Søk og legg til minst 2 pakker ovenfor for å se en side-om-side sammenligning av deres metrikker.", "table_view": "Tabell", "charts_view": "Diagrammer", + "no_chartable_data": "Ingen diagramdata tilgjengelig for de valgte fasettene.", "bar_chart_nav_hint": "Bruk ↑ ↓", "line_chart_nav_hint": "Bruk ← →" }, @@ -1114,6 +1238,33 @@ "packages_selected": "{count}/{max} pakker valgt.", "add_hint": "Legg til minst 2 pakker for å sammenligne." }, + "quadrant_chart": { + "label_x_axis": "Gjennomslag", + "label_y_axis": "Ergonomi", + "label_top_right": "Solide valg", + "label_bottom_right": "populære med kompromisser", + "label_bottom_left": "unngå", + "label_top_left": "skjulte perler", + "title": "Pakkegjennomslag mot ergonomi", + "filename": "pakke-gjennomslag-vs-ergonomi-kvadrant", + "label_freshness_score": "Oppdateringspoeng", + "copy_alt": { + "description": "Kvadrantdiagram som viser gjennomslag mot ergonomi for pakkene {packages}. {analysis}. {watermark}.", + "side_analysis_top_right": "Følgende pakker ligger i øvre høyre kvadrant (solide valg): {packages}", + "side_analysis_top_left": "Følgende pakker ligger i øvre venstre kvadrant (skjulte perler): {packages}", + "side_analysis_bottom_right": "Følgende pakker ligger i nedre høyre kvadrant (populære med kompromisser): {packages}", + "side_analysis_bottom_left": "Følgende pakker ligger i nedre venstre kvadrant (unngå): {packages}" + }, + "explanation": { + "tooltip_help": "Vis forklaring av poengberegning", + "tooltip_help_adoption": "Vis forklaring av gjennomslagspoeng", + "tooltip_help_efficiency": "Vis forklaring av ergonomipoeng", + "introduction": "Poenget beregnes ved å kombinere flere signaler i to akser:", + "adoption": "Gjennomslag: gjenspeiler bruk og aktivitet (nedlastinger, oppdaterthet, likes)", + "efficiency": "Ergonomi: gjenspeiler fotavtrykk og kvalitet (installasjonsstørrelse, avhengigheter, sårbarheter, typestøtte)", + "impact_details": "Hver metrikk bidrar med ulik vekt. Sterke signaler som nedlastinger og installasjonsstørrelse har størst effekt, mens andre finjusterer resultatet. Noen signaler (som sårbarheter eller utfasing) gir trekk." + } + }, "no_dependency": { "label": "(Ingen avhengighet)", "typeahead_title": "Hva ville James gjort?", @@ -1513,5 +1664,6 @@ "message": "Tilgjengelighet er viktig for oss, og vi vil gjerne at du følger oss i denne visjonen. Når du bruker nevnte media, sørg for at det er nok kontrast mot bakgrunnen, og ikke gå mindre enn 24px. Hvis du trenger andre ressurser eller tilleggsinformasjon om prosjektet, ta gjerne kontakt med oss på {link}.", "discord_link_text": "chat.npmx.dev" } - } + }, + "alt_logo_kawaii": "En søt, avrundet og fargerik versjon av npmx-logoen." } From 017f023ce550f2e750702d8f6cdf1636d7dc3ea9 Mon Sep 17 00:00:00 2001 From: Espen Steen Date: Fri, 10 Apr 2026 16:54:24 +0200 Subject: [PATCH 14/20] fix(cli): enable web auth for package:init (#2415) --- cli/src/npm-client.ts | 64 +++++++++++++------------------------------ cli/src/server.ts | 4 +-- 2 files changed, 20 insertions(+), 48 deletions(-) diff --git a/cli/src/npm-client.ts b/cli/src/npm-client.ts index e5a28edc89..efa53fe8e6 100644 --- a/cli/src/npm-client.ts +++ b/cli/src/npm-client.ts @@ -157,6 +157,8 @@ const AUTH_URL_TIMEOUT_MS = 90_000 export interface ExecNpmOptions { otp?: string silent?: boolean + /** Working directory for the npm command. */ + cwd?: string /** When true, use PTY-based interactive execution instead of execFile. */ interactive?: boolean /** When true, npm opens auth URLs in the user's browser. @@ -214,6 +216,7 @@ async function execNpmInteractive( name: 'xterm-256color', cols: 120, rows: 30, + cwd: options.cwd, env, }) @@ -337,6 +340,7 @@ async function execNpm(args: string[], options: ExecNpmOptions = {}): Promise { * Creates a minimal package.json in a temp directory and publishes it. * @param name Package name to claim * @param author npm username of the publisher (for author field) - * @param otp Optional OTP for 2FA + * @param options Execution options (otp, interactive, etc.) */ export async function packageInit( name: string, author?: string, - otp?: string, + options?: ExecNpmOptions, ): Promise { validatePackageName(name) @@ -600,52 +604,22 @@ export async function packageInit( args.push('--access', access) } - // Run npm publish from the temp directory - const npmArgs = otp ? [...args, '--otp', otp] : args - - // Log the command being run (hide OTP value for security) - const displayCmd = otp ? `npm ${args.join(' ')} --otp ******` : `npm ${args.join(' ')}` + const displayCmd = options?.otp + ? ['npm', ...args, '--otp', '******'].join(' ') + : ['npm', ...args].join(' ') logCommand(`${displayCmd} (in temp dir for ${name})`) - try { - const { command, args: processArgs } = resolveNpmProcessCommand(npmArgs) - const { stdout, stderr } = await execFileAsync(command, processArgs, { - timeout: 60000, - cwd: tempDir.path, - env: createNpmEnv(), - }) + const result = await execNpm(args, { ...options, cwd: tempDir.path, silent: true }) + if (result.exitCode === 0) { logSuccess(`Published ${name}@0.0.0`) - - return { - stdout: stdout.trim(), - stderr: filterNpmWarnings(stderr), - exitCode: 0, - } - } catch (error) { - const err = error as { stdout?: string; stderr?: string; code?: number } - const stderr = err.stderr?.trim() ?? String(error) - const requiresOtp = detectOtpRequired(stderr) - const authFailure = detectAuthFailure(stderr) - - if (requiresOtp) { - logError('OTP required') - } else if (authFailure) { - logError('Authentication required - please run "npm login" and restart the connector') - } else { - logError(filterNpmWarnings(stderr).split('\n')[0] || 'Command failed') - } - - return { - stdout: err.stdout?.trim() ?? '', - stderr: requiresOtp - ? 'This operation requires a one-time password (OTP).' - : authFailure - ? 'Authentication failed. Please run "npm login" and restart the connector.' - : filterNpmWarnings(stderr), - exitCode: err.code ?? 1, - requiresOtp, - authFailure, - } + } else if (result.requiresOtp) { + logError('OTP required') + } else if (result.authFailure) { + logError('Authentication required - please run "npm login" and restart the connector') + } else { + logError(result.stderr.split('\n')[0] || 'Command failed') } + + return result } diff --git a/cli/src/server.ts b/cli/src/server.ts index 0c3d8ddfab..ca4b6be934 100644 --- a/cli/src/server.ts +++ b/cli/src/server.ts @@ -809,9 +809,7 @@ async function executeOperation( result = await ownerRemove(params.user, params.pkg, execOptions) break case 'package:init': - // package:init has its own special execution path (temp dir + publish) - // and does not support interactive mode - result = await packageInit(params.name, params.author, options.otp) + result = await packageInit(params.name, params.author, execOptions) break default: return { From 6c6e274984e3e72008d4d6d45a0a379def7695b8 Mon Sep 17 00:00:00 2001 From: Mundo Date: Sat, 11 Apr 2026 04:24:59 +1000 Subject: [PATCH 15/20] fix(i18n): add missing zh-CN translations (#2452) Co-authored-by: Claude Opus 4.6 --- i18n/locales/zh-CN.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/i18n/locales/zh-CN.json b/i18n/locales/zh-CN.json index a4bf5638c6..4d3f405c1a 100644 --- a/i18n/locales/zh-CN.json +++ b/i18n/locales/zh-CN.json @@ -336,6 +336,7 @@ "gitea": "在 Gitea 上查看", "gitee": "在 Gitee 上查看", "radicle": "在 Radicle 上查看", + "socket_dev": "在 socket.dev 上查看", "sourcehut": "在 SourceHut 上查看", "tangled": "在 Tangled 上查看" }, @@ -1254,6 +1255,8 @@ }, "explanation": { "tooltip_help": "查看评分说明", + "tooltip_help_adoption": "查看采用度评分说明", + "tooltip_help_efficiency": "查看效率评分说明", "introduction": "分数由多种信号组合成两个维度计算得出:", "adoption": "采用度:反映使用和活跃情况(下载量、更新频率、点赞数)", "efficiency": "效率:反映体积和质量(安装大小、依赖项数量、漏洞情况、类型支持)", From 4f45d5b133d4684f123e2e8dcc782451a5083867 Mon Sep 17 00:00:00 2001 From: Jon Church Date: Fri, 10 Apr 2026 15:29:19 -0400 Subject: [PATCH 16/20] ci: update Discord link to builders server (#2461) --- .github/workflows/welcome-close.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/welcome-close.yml b/.github/workflows/welcome-close.yml index 606f691bc6..0de27332b6 100644 --- a/.github/workflows/welcome-close.yml +++ b/.github/workflows/welcome-close.yml @@ -39,7 +39,7 @@ jobs: const body = [ `Thanks for your first contribution, @${author}! ${emoji}`, '', - `We'd love to welcome you to the npmx community. Come and say hi on [Discord](https://chat.npmx.dev)! And once you've joined, visit [npmx.wamellow.com](https://npmx.wamellow.com/) to claim the **contributor** role.`, + `We'd love to welcome you to the npmx community. Come and say hi on [Discord](https://build.npmx.dev)! And once you've joined, visit [npmx.wamellow.com](https://npmx.wamellow.com/) to claim the **contributor** role.`, ].join('\n'); await github.rest.issues.createComment({ From 4123e8d80acec91fa6459fbf6eff3bb3a26bfe1c Mon Sep 17 00:00:00 2001 From: duo Date: Sat, 11 Apr 2026 04:09:03 +0800 Subject: [PATCH 17/20] feat(ui): support Vite+ `vp` package manager commands (#2451) Co-authored-by: duowenbo --- app/components/Package/ManagerSelect.vue | 3 ++- app/components/Terminal/Execute.vue | 3 ++- app/components/Terminal/Install.vue | 3 ++- app/utils/install-command.ts | 9 +++++++++ app/utils/prehydrate.ts | 2 +- test/unit/app/utils/install-command.spec.ts | 12 ++++++++++++ 6 files changed, 28 insertions(+), 4 deletions(-) diff --git a/app/components/Package/ManagerSelect.vue b/app/components/Package/ManagerSelect.vue index a6b33c619e..b1f90449d6 100644 --- a/app/components/Package/ManagerSelect.vue +++ b/app/components/Package/ManagerSelect.vue @@ -191,7 +191,8 @@ function handleKeydown(event: KeyboardEvent) { :root[data-pm='yarn'] [data-pm-select='yarn'], :root[data-pm='bun'] [data-pm-select='bun'], :root[data-pm='deno'] [data-pm-select='deno'], -:root[data-pm='vlt'] [data-pm-select='vlt'] { +:root[data-pm='vlt'] [data-pm-select='vlt'], +:root[data-pm='vp'] [data-pm-select='vp'] { display: inline-block; } diff --git a/app/components/Terminal/Execute.vue b/app/components/Terminal/Execute.vue index 0484ef6466..3984ea9cfa 100644 --- a/app/components/Terminal/Execute.vue +++ b/app/components/Terminal/Execute.vue @@ -94,7 +94,8 @@ const copyExecuteCommand = () => copyExecute(getFullExecuteCommand()) :root[data-pm='yarn'] [data-pm-cmd='yarn'], :root[data-pm='bun'] [data-pm-cmd='bun'], :root[data-pm='deno'] [data-pm-cmd='deno'], -:root[data-pm='vlt'] [data-pm-cmd='vlt'] { +:root[data-pm='vlt'] [data-pm-cmd='vlt'], +:root[data-pm='vp'] [data-pm-cmd='vp'] { display: flex; } diff --git a/app/components/Terminal/Install.vue b/app/components/Terminal/Install.vue index 7acb35eb80..0a91f8f7d3 100644 --- a/app/components/Terminal/Install.vue +++ b/app/components/Terminal/Install.vue @@ -412,7 +412,8 @@ useCommandPaletteContextCommands( :root[data-pm='yarn'] [data-pm-cmd='yarn'], :root[data-pm='bun'] [data-pm-cmd='bun'], :root[data-pm='deno'] [data-pm-cmd='deno'], -:root[data-pm='vlt'] [data-pm-cmd='vlt'] { +:root[data-pm='vlt'] [data-pm-cmd='vlt'], +:root[data-pm='vp'] [data-pm-cmd='vp'] { display: flex; } diff --git a/app/utils/install-command.ts b/app/utils/install-command.ts index 3b656a74ce..eab3c8f726 100644 --- a/app/utils/install-command.ts +++ b/app/utils/install-command.ts @@ -59,6 +59,15 @@ export const packageManagers = [ create: 'vlx', icon: 'i-custom-vlt', }, + { + id: 'vp', + label: 'vp', + action: 'add', + executeLocal: 'vp exec', + executeRemote: 'vp dlx', + create: 'vp create', + icon: 'i-simple-icons:vite', + }, ] as const export type PackageManagerId = (typeof packageManagers)[number]['id'] diff --git a/app/utils/prehydrate.ts b/app/utils/prehydrate.ts index 075941a674..46a579e232 100644 --- a/app/utils/prehydrate.ts +++ b/app/utils/prehydrate.ts @@ -21,7 +21,7 @@ export function initPreferencesOnPrehydrate() { ] satisfies typeof ACCENT_COLOR_IDS) // Valid package manager IDs - const validPMs = new Set(['npm', 'pnpm', 'yarn', 'bun', 'deno', 'vlt']) + const validPMs = new Set(['npm', 'pnpm', 'yarn', 'bun', 'deno', 'vlt', 'vp']) // Read settings from localStorage const settings = JSON.parse( diff --git a/test/unit/app/utils/install-command.spec.ts b/test/unit/app/utils/install-command.spec.ts index 9d69be4071..0c8f42674a 100644 --- a/test/unit/app/utils/install-command.spec.ts +++ b/test/unit/app/utils/install-command.spec.ts @@ -35,6 +35,7 @@ describe('install command generation', () => { ['bun', 'lodash'], ['deno', 'npm:lodash'], ['vlt', 'lodash'], + ['vp', 'lodash'], ] as const)('%s → %s', (pm, expected) => { expect( getPackageSpecifier({ @@ -54,6 +55,7 @@ describe('install command generation', () => { ['bun', '@trpc/server'], ['deno', 'jsr:@trpc/server'], // Native JSR specifier preferred ['vlt', '@trpc/server'], + ['vp', '@trpc/server'], ] as const)('%s → %s', (pm, expected) => { expect( getPackageSpecifier({ @@ -73,6 +75,7 @@ describe('install command generation', () => { ['bun', '@vue/shared'], ['deno', 'npm:@vue/shared'], // Falls back to npm: compat ['vlt', '@vue/shared'], + ['vp', '@vue/shared'], ] as const)('%s → %s', (pm, expected) => { expect( getPackageSpecifier({ @@ -94,6 +97,7 @@ describe('install command generation', () => { ['bun', 'bun add lodash'], ['deno', 'deno add npm:lodash'], ['vlt', 'vlt install lodash'], + ['vp', 'vp add lodash'], ] as const)('%s → %s', (pm, expected) => { expect( getInstallCommand({ @@ -113,6 +117,7 @@ describe('install command generation', () => { ['bun', 'bun add lodash@4.17.21'], ['deno', 'deno add npm:lodash@4.17.21'], ['vlt', 'vlt install lodash@4.17.21'], + ['vp', 'vp add lodash@4.17.21'], ] as const)('%s → %s', (pm, expected) => { expect( getInstallCommand({ @@ -133,6 +138,7 @@ describe('install command generation', () => { ['bun', 'bun add -d eslint'], ['deno', 'deno add -D npm:eslint'], ['vlt', 'vlt install -D eslint'], + ['vp', 'vp add -D eslint'], ] as const)('%s → %s', (pm, expected) => { expect( getInstallCommand({ @@ -153,6 +159,7 @@ describe('install command generation', () => { ['bun', 'bun add @trpc/server'], ['deno', 'deno add jsr:@trpc/server'], // Native JSR preferred ['vlt', 'vlt install @trpc/server'], + ['vp', 'vp add @trpc/server'], ] as const)('%s → %s', (pm, expected) => { expect( getInstallCommand({ @@ -172,6 +179,7 @@ describe('install command generation', () => { ['bun', 'bun add @trpc/server@10.0.0'], ['deno', 'deno add jsr:@trpc/server@10.0.0'], // Native JSR with version ['vlt', 'vlt install @trpc/server@10.0.0'], + ['vp', 'vp add @trpc/server@10.0.0'], ] as const)('%s → %s', (pm, expected) => { expect( getInstallCommand({ @@ -192,6 +200,7 @@ describe('install command generation', () => { ['bun', 'bun add @vue/shared'], ['deno', 'deno add npm:@vue/shared'], // Falls back to npm: compat ['vlt', 'vlt install @vue/shared'], + ['vp', 'vp add @vue/shared'], ] as const)('%s → %s', (pm, expected) => { expect( getInstallCommand({ @@ -345,6 +354,7 @@ describe('install command generation', () => { ['bun', ['bunx', 'eslint']], ['deno', ['deno', 'run', 'npm:eslint']], ['vlt', ['vlx', 'eslint']], + ['vp', ['vp', 'exec', 'eslint']], ] as const)('%s → %s', (pm, expected) => { expect( getExecuteCommandParts({ @@ -364,6 +374,7 @@ describe('install command generation', () => { ['bun', ['bunx', 'degit']], ['deno', ['deno', 'run', 'npm:degit']], ['vlt', ['vlx', 'degit']], + ['vp', ['vp', 'dlx', 'degit']], ] as const)('%s → %s', (pm, expected) => { expect( getExecuteCommandParts({ @@ -383,6 +394,7 @@ describe('install command generation', () => { ['bun', ['bun', 'create', 'vite']], ['deno', ['deno', 'create', 'npm:vite']], ['vlt', ['vlx', 'vite']], + ['vp', ['vp', 'create', 'vite']], ] as const)('%s → %s', (pm, expected) => { expect( getExecuteCommandParts({ From efe01a02c9fdc503545ca75a60aaff4b6b1f1eb0 Mon Sep 17 00:00:00 2001 From: Philippe Serhal Date: Fri, 10 Apr 2026 16:42:50 -0400 Subject: [PATCH 18/20] chore: shave ~1-2s off `pnpm test:types` (#2458) --- modules/blog.ts | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/modules/blog.ts b/modules/blog.ts index 812deeb758..6c28c6de1e 100644 --- a/modules/blog.ts +++ b/modules/blog.ts @@ -87,7 +87,14 @@ function resolveAuthors(authors: Author[], avatarMap: Map): Reso * Returns all posts (including drafts) sorted by date descending. * Resolves Bluesky avatars at build time. */ -async function loadBlogPosts(blogDir: string, imagesDir: string): Promise { +async function loadBlogPosts( + blogDir: string, + options: { + imagesDir: string + resolveAvatars: boolean + }, +): Promise { + const { imagesDir, resolveAvatars } = options const files = await Array.fromAsync(glob(join(blogDir, '**/*.md').replace(/\\/g, '/'))) // First pass: extract raw frontmatter and collect all Bluesky handles @@ -120,8 +127,10 @@ async function loadBlogPosts(blogDir: string, imagesDir: string): Promise() // Second pass: validate with raw schema, then enrich authors with avatars const posts: BlogPostFrontmatter[] = [] @@ -150,13 +159,14 @@ export default defineNuxtModule({ const resolver = createResolver(import.meta.url) const blogDir = resolver.resolve('../app/pages/blog') const blogImagesDir = resolver.resolve('../public/blog/avatar') + const resolveAvatars = !nuxt.options._prepare nuxt.options.extensions.push('.md') nuxt.options.vite.vue = defu(nuxt.options.vite.vue, { include: [/\.vue($|\?)/, /\.(md|markdown)($|\?)/], }) - if (!existsSync(blogImagesDir)) { + if (resolveAvatars && !existsSync(blogImagesDir)) { await mkdir(blogImagesDir, { recursive: true }) } @@ -180,7 +190,10 @@ export default defineNuxtModule({ ) // Load posts once with resolved Bluesky avatars (shared across template + route rules) - const allPosts = await loadBlogPosts(blogDir, blogImagesDir) + const allPosts = await loadBlogPosts(blogDir, { + imagesDir: blogImagesDir, + resolveAvatars, + }) // Expose frontmatter for the `/blog` listing page. const showDrafts = nuxt.options.dev || !isProduction From f5bb3ed2f77fba0485a7c5dc732343b1dd400e11 Mon Sep 17 00:00:00 2001 From: Philippe Serhal Date: Fri, 10 Apr 2026 16:43:20 -0400 Subject: [PATCH 19/20] chore: move a comment to the right line (#2456) --- nuxt.config.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nuxt.config.ts b/nuxt.config.ts index b80700e7f5..8956e2e263 100644 --- a/nuxt.config.ts +++ b/nuxt.config.ts @@ -192,8 +192,8 @@ export default defineNuxtConfig({ '/translation-status': { prerender: true }, '/recharging': { prerender: true }, '/pds': { isr: 86400 }, // revalidate daily - // proxy for insights '/blog/**': { prerender: true }, + // proxy for insights '/_v/script.js': { proxy: 'https://npmx.dev/_vercel/insights/script.js', }, From 016406444c35dbcb890b9eaf106f81c3a99b7d8b Mon Sep 17 00:00:00 2001 From: Torben Haack Date: Fri, 10 Apr 2026 23:35:34 +0200 Subject: [PATCH 20/20] fix: add ignore attributes for password managers to input fields (#2466) --- app/components/CommandPalette.client.vue | 1 + app/components/Input/Base.vue | 15 +++++++++++++-- app/utils/input.ts | 12 ++++++++++++ 3 files changed, 26 insertions(+), 2 deletions(-) diff --git a/app/components/CommandPalette.client.vue b/app/components/CommandPalette.client.vue index f8d767ac5f..311b31ac54 100644 --- a/app/components/CommandPalette.client.vue +++ b/app/components/CommandPalette.client.vue @@ -324,6 +324,7 @@ useEventListener(document, 'keydown', handleGlobalKeydown) type="text" :placeholder="viewMeta.placeholder" no-correct + no-password-manager size="lg" class="w-full" :aria-describedby="inputDescribedBy" diff --git a/app/components/Input/Base.vue b/app/components/Input/Base.vue index e3f7edccdc..407abdad70 100644 --- a/app/components/Input/Base.vue +++ b/app/components/Input/Base.vue @@ -1,5 +1,5 @@