diff --git a/README.md b/README.md index ed5cbe7b..92ca0390 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ gt pul
-Fully featured, fully customisable static site generation for [SolidStart](https://start.solidjs.com) +Fully featured, fully customisable static site generation for [Solid](https://www.solidjs.com) [![license](https://img.shields.io/badge/license-MIT-1890ff.svg)](https://github.com/kobaltedev/solidbase/blob/main/LICENSE) [![checks](https://img.shields.io/github/checks-status/kobaltedev/solidbase/main)](https://github.com/kobaltedev/solidbase/actions) diff --git a/SOLID2-HANDOFF.md b/SOLID2-HANDOFF.md new file mode 100644 index 00000000..b56664bb --- /dev/null +++ b/SOLID2-HANDOFF.md @@ -0,0 +1,43 @@ +# Solid 2 Migration Handoff + +Updated 2026-10-13. Remove before #174 leaves draft. + +## State + +- Branch: solid2 on devagrawal09/solidbase. PR #174 remains draft; maintainers decide merge timing, versioning, dist-tags and dependency policy. +- Runtime pins unchanged: solid-js/@solidjs/web rc.14, router next.37, Vite plugin next.47, meta next.2, Kobalte alpha.2. Primitives fixes remain unreleased as of today's npm check. +- No vendored runtime patches or new test files. #173 REPL work remains separate. +- Never merge, publish or post outside devagrawal09/solidbase. Commit as Dev Agrawal . + +## Completed + +- Existing Back/Forward fix preserved: register page data using Vite-root-relative module paths and await undefined before lazy preload. Promise.resolve still hits the hydration Promise stub. Missing page modules return undefined. +- Native tabs replace Kobalte tabs, avoiding unreleased event-listener/resize-observer owner-count bugs. Preserve selected-tab styling, linked ARIA IDs, roving focus, Home/End, wrapping arrows (including RTL), force-mounted panels and persisted named groups. +- Persist named selection in the effect's apply phase after the signal commits, deferring initial writes so hydration does not overwrite a saved cookie. BroadcastChannel synchronization and reload persistence verified. +- The tab-group BroadcastChannel is created only on the client and closed on cleanup (SSR previously leaked one per named group). +- Native details/summary replaces the dev-only Kobalte accordion preview, with matching displayed snippet. Kobalte's demo used the same server/client ownership mismatch; this does not claim to fix arbitrary consumer Kobalte widgets. +- Prerender, sitemap and llms respect fileRoutes.dir. Missing directories yield no markdown seeds; other errors propagate. fileRoutes:false does not index default markdown files. +- Prerender worker exits only after stdout is flushed; child-process isolation retained. +- Missing-provider diagnostics restored using optional provider helpers/default context values. +- Docs font preloads restored; obsolete Nitro deployment instructions and config references updated. +- Dev/docs typechecks exclude generated output and include ambient declarations. DocSearch callable export normalized for differing TypeScript resolution modes. +- Preferred-language initial effect deferred so a saved JS cookie is not overwritten before onSettled reads it. + +## Verification + +- 138 tests pass across the existing 29 test files. +- Library build/typecheck and dev/docs standalone typechecks pass. +- Production dev: 15 pages plus 404.html. Production docs: 41 pages plus 404.html. +- Browser direct-load matrix: docs quickstart, add-to-existing, markdown, extending-themes; dev pm, ec, ec-file, preview; both home pages. No hydration/page/console errors in the matrix. +- Tab clicks, keyboard wrap/Home/End, unique IDs, visible selected panels, cookie reload, cross-tab BroadcastChannel synchronization, RTL keyboard behavior pass. +- History restores path/content/title/lang on Back/Forward. Locale selection, copy-page enabled state, theme-cookie reload and mobile navigation pass. +- JS preference cookie restores JS tab labels on reload. TS/JS toggle UI is disabled in current app configurations, so its click path was not verified. +- Independent read-only review found no verified actionable issues; browser checks cover hydration ownership. + +## Remaining + +- #174 stays draft until maintainer review and release/dependency decisions. Remove this note before leaving draft. +- Docs OG generation stays disabled pending Solid 2 support in its dependency. +- Vite native-config-loader warnings and prerender discovery headers with literal commas remain known limitations. +- Custom startConfig extensions require leading dots; dotted final URL segments are excluded from link discovery (explicit markdown seeds are still emitted). +- Existing raw Promise/lazy hydration upstream report remains the user's responsibility; previous detailed handoff is in branch history. diff --git a/dev/app.config.ts b/dev/app.config.ts deleted file mode 100644 index b9fbbc43..00000000 --- a/dev/app.config.ts +++ /dev/null @@ -1,111 +0,0 @@ -import { createSolidBase, defineTheme } from "../src/config"; -import defaultTheme from "../src/default-theme"; - -const theme = defineTheme({ - componentsPath: import.meta.resolve("./src/solidbase-theme"), - extends: defaultTheme, -}); - -const solidBase = createSolidBase(theme); - -export default { - ...solidBase.startConfig({ - ssr: true, - }), - server: { - prerender: { - crawlLinks: true, - }, - }, - plugins: [ - solidBase.plugin({ - title: "SolidBase", - description: - "Fully featured, fully customisable static site generation for SolidStart", - titleTemplate: ":title – SolidBase", - issueAutolink: "https://github.com/kobaltedev/solidbase/issues/:issue", - editPath: "https://github.com/kobaltedev/solidbase/edit/main/docs/:path", - markdown: { - importCodeFile: { - transform: (_code, id) => { - let code = _code; - - if (id.endsWith("to-transform.tsx")) { - code += "// appended by transform"; - } - - return code.replace("REPLACE ME", "replaced string!"); - }, - }, - }, - themeConfig: { - socialLinks: { - github: "https://github.com/kobaltedev/solidbase", - discord: "https://discord.com/invite/solidjs", - }, - search: { - provider: "algolia", - options: { - appId: "H7ZQSI0SAN", - apiKey: "c9354456dd4bb74c37e4d2b762b89b88", - indexName: "kobalte", - }, - }, - sidebar: { - "/": [ - { - title: "Dev", - items: [ - { - title: "Index", - link: "/", - status: "new", - }, - { - title: "About", - link: "/about", - status: "updated", - }, - { - title: "Expressive Code", - link: "/ec", - status: "next", - }, - { - title: "EC File", - link: "/ec-file", - status: { - text: "Custom", - color: "purple", - }, - }, - { - title: "Package Manager", - link: "/pm", - }, - { - title: "Frontmatter", - link: "/frontmatter", - }, - ], - }, - { - title: "Other", - items: [ - { - title: "Nested", - items: [ - { - title: "What are we missing?", - link: "/dave", - }, - ], - }, - ], - }, - ], - }, - }, - }), - ], -}; diff --git a/dev/package.json b/dev/package.json index 0d3979f6..551f309e 100644 --- a/dev/package.json +++ b/dev/package.json @@ -8,18 +8,18 @@ "preview": "vite preview" }, "dependencies": { + "@kobalte/core": "2.0.0-alpha.2", "@kobalte/solidbase": "workspace:*", - "@kobalte/core": "0.13.11", - "@solidjs/router": "^0.15.3", - "@solidjs/start": "https://pkg.pr.new/solidjs/solid-start/@solidjs/start@2080", - "nitro": "3.0.260311-beta", - "solid-js": "^1.9.9" + "@solidjs/router": "2.0.0-next.37", + "@solidjs/web": "2.0.0-rc.14", + "solid-js": "2.0.0-rc.14" }, "engines": { "node": ">=22.12" }, "devDependencies": { "@iconify-json/ri": "^1.2.5", + "@solidjs/vite-plugin": "3.0.0-next.47", "cross-env": "^7.0.3", "vite": "^8.0.0" } diff --git a/dev/src/Document.tsx b/dev/src/Document.tsx new file mode 100644 index 00000000..1eeaa83b --- /dev/null +++ b/dev/src/Document.tsx @@ -0,0 +1,21 @@ +import { getHtmlProps } from "@kobalte/solidbase/server"; +import { HydrationScript } from "@solidjs/web"; +import type { ParentProps } from "solid-js"; + +// Document shell for @solidjs/vite-plugin start mode: the app arrives as children and the +// client entry script is injected into automatically. +export default function Document(props: ParentProps) { + return ( + + + + + + + + +
{props.children}
+ + + ); +} diff --git a/dev/src/app.tsx b/dev/src/app.tsx index 8a694a4d..1fb14b19 100644 --- a/dev/src/app.tsx +++ b/dev/src/app.tsx @@ -1,13 +1,19 @@ +import { pageRoutes } from "virtual:file-routes"; import { SolidBaseRoot } from "@kobalte/solidbase/client"; -import { Router } from "@solidjs/router"; -import { FileRoutes } from "@solidjs/start/router"; +import { createRouter } from "@solidjs/router"; +import { fileRoutes } from "@solidjs/router/fs"; import "./app.css"; +const Router = createRouter({ + routes: fileRoutes(pageRoutes), + base: import.meta.env.BASE_URL, +}); + export default function App() { return ( - - + + {(props) => {props.children}} ); } diff --git a/dev/src/entry-client.tsx b/dev/src/entry-client.tsx deleted file mode 100644 index 0ca4e3c3..00000000 --- a/dev/src/entry-client.tsx +++ /dev/null @@ -1,4 +0,0 @@ -// @refresh reload -import { mount, StartClient } from "@solidjs/start/client"; - -mount(() => , document.getElementById("app")!); diff --git a/dev/src/entry-server.tsx b/dev/src/entry-server.tsx deleted file mode 100644 index 3cb29281..00000000 --- a/dev/src/entry-server.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import { getHtmlProps } from "@kobalte/solidbase/server"; -// @refresh reload -import { createHandler, StartServer } from "@solidjs/start/server"; - -export default createHandler(() => ( - ( - - - - - - {assets} - - -
{children}
- {scripts} - - - )} - /> -)); diff --git a/dev/src/global.d.ts b/dev/src/global.d.ts index dc6f10c2..30d6bfcb 100644 --- a/dev/src/global.d.ts +++ b/dev/src/global.d.ts @@ -1 +1,2 @@ -/// +/// +/// diff --git a/dev/src/preview-demo.tsx b/dev/src/preview-demo.tsx index 706d46b2..336e7781 100644 --- a/dev/src/preview-demo.tsx +++ b/dev/src/preview-demo.tsx @@ -1,5 +1,4 @@ -import { Accordion } from "@kobalte/core/accordion"; -import { For } from "solid-js"; +import { createUniqueId, For } from "solid-js"; function ChevronDownIcon(props: { class?: string }) { return ( @@ -23,7 +22,7 @@ const accordionItems = [ { value: "item-1", title: "Is it accessible?", - body: "Yes. It follows the WAI-ARIA accordion pattern and supports keyboard navigation.", + body: "Yes. Native disclosure elements support keyboard and screen reader navigation.", }, { value: "item-2", @@ -38,29 +37,33 @@ const accordionItems = [ ]; export function PreviewAccordionExample() { + const name = createUniqueId(); return (
- + +
{(item) => ( - - - +
+ +

{item.title} - - - +

+
+

{item.body}

- - +
+
)}
- +
); } diff --git a/dev/src/routes/ec-file.mdx b/dev/src/routes/ec-file.mdx index d9a38496..98785ff2 100644 --- a/dev/src/routes/ec-file.mdx +++ b/dev/src/routes/ec-file.mdx @@ -16,13 +16,13 @@ ```file=../app.css tab ``` -``` file=../entry-client.tsx tab +``` file=../Document.tsx tab ``` -```file=../entry-server.tsx tab +```file=../app.tsx tab ``` -```file=~/entry-server.tsx title="aliased import" +```file=@dev/Document.tsx title="aliased import" ``` ```file=./to-transform.tsx title=false diff --git a/dev/src/routes/preview.mdx b/dev/src/routes/preview.mdx index 297fdc8d..c6310cd3 100644 --- a/dev/src/routes/preview.mdx +++ b/dev/src/routes/preview.mdx @@ -22,129 +22,140 @@ Route for reviewing `:::preview` blocks in the dev app. --- ```tsx tab title="index.tsx" -import { Accordion } from "@kobalte/core/accordion"; -import { ChevronDownIcon } from "some-icon-library"; -import "./style.css"; -function App() { - return ( - - - - - Is it accessible? - - - - -

- Yes. It adheres to the WAI-ARIA design pattern. -

-
-
- - - - Is it unstyled? - - - - -

- Yes. It's unstyled by default, giving you freedom over the look and feel. -

-
-
- - - - Can it be animated? - - - - -

- Yes! You can animate the Accordion with CSS or JavaScript. -

-
-
-
- ); +import { For, createUniqueId } from "solid-js"; + +function ChevronDownIcon(props: { class?: string }) { + return ( + + ); +} + +const accordionItems = [ + { + value: "item-1", + title: "Is it accessible?", + body: "Yes. Native disclosure elements support keyboard and screen reader navigation.", + }, + { + value: "item-2", + title: "Is it unstyled?", + body: "Yes. The example styling is local to the dev app so theme authors can review the shell in isolation.", + }, + { + value: "item-3", + title: "Does it hold up on mobile?", + body: "The trigger rows keep their tap targets and the stage allows horizontal overflow when a demo needs it.", + }, +]; + +export function App() { + const name = createUniqueId(); + return ( +
+ +
+ + {(item) => ( +
+ +

+ {item.title} + +

+
+
+

{item.body}

+
+
+ )} +
+
+
+ ); } ``` ```css tab title="app.css" -.accordion { - border-radius: 6px; - width: 300px; - border: 1px solid hsl(240 5% 84%); - color: hsl(240 4% 16%); -} -.accordion__item:first-child { - margin-top: 0; - border-top-left-radius: 4px; - border-top-right-radius: 4px; +.sb-preview-demo-accordion-wrap { + width: 100%; + display: flex; + justify-content: center; } -.accordion__item:last-child { - border-bottom-left-radius: 4px; - border-bottom-right-radius: 4px; -} -.accordion__item-header { - display: flex; -} -.accordion__item-trigger { - display: inline-flex; - align-items: center; - justify-content: space-between; - width: 100%; - padding: 14px; - border-bottom: 1px solid hsl(240 5% 84%); - font-weight: 600; - text-align: left; - outline: none; -} -.accordion__item:last-child .accordion__item-trigger { - border-bottom: none; + +.sb-preview-demo-accordion { + width: min(100%, 27rem); + border-radius: 0.75rem; + border: 1px solid rgb(20 20 20 / 0.12); + background: rgb(255 255 255 / 0.92); + overflow: hidden; } -.accordion__item-trigger:focus-visible { - z-index: 1; - outline: 2px solid hsl(200 98% 39%); - outline-offset: 2px; + +.sb-preview-demo-item + .sb-preview-demo-item { + border-top: 1px solid rgb(15 23 42 / 0.08); } -.accordion__item-trigger-icon { - width: 24px; - height: 24px; - transition: transform 300ms cubic-bezier(0.87, 0, 0.13, 1); + +.sb-preview-demo-header { + display: block; } -.accordion__item-trigger[data-expanded] > .accordion__item-trigger-icon { - transform: rotate(180deg); + +.sb-preview-demo-trigger { + list-style: none; + cursor: pointer; + width: 100%; + min-height: 3.25rem; + padding: 0.95rem 1rem; + display: flex; + align-items: center; + justify-content: space-between; + gap: 1rem; + border: none; + background: transparent; + color: rgb(15 23 42 / 0.92); + font: inherit; + font-weight: 600; + text-align: left; + cursor: pointer; } -.accordion__item-content { - overflow: hidden; - font-size: 16px; - animation: slideUp 300ms cubic-bezier(0.87, 0, 0.13, 1); + +.sb-preview-demo-trigger:focus-visible { + outline: 2px solid rgb(59 130 246 / 0.9); + outline-offset: -2px; } -.accordion__item-content[data-expanded] { - animation: slideDown 300ms cubic-bezier(0.87, 0, 0.13, 1); + +.chevron-icon { + font-size: 0.95rem; + line-height: 1; + transition: transform 180ms ease; } -.accordion__item-content-text { - padding: 16px; + +.sb-preview-demo-item[open] .chevron-icon { + transform: rotate(180deg); } -@keyframes slideDown { - from { - height: 0; - } - to { - height: var(--kb-accordion-content-height); - } + +.sb-preview-demo-content { + padding: 0 1rem 1rem; + color: rgb(51 65 85 / 0.9); } -@keyframes slideUp { - from { - height: var(--kb-accordion-content-height); - } - to { - height: 0; - } + +.sb-preview-demo-content p { + margin: 0; + line-height: 1.65; } +.sb-preview-demo-trigger::-webkit-details-marker { display: none; } ``` ::: diff --git a/dev/src/solidbase-theme/mdx-components.tsx b/dev/src/solidbase-theme/mdx-components.tsx index e74fb5fd..697f2b9e 100644 --- a/dev/src/solidbase-theme/mdx-components.tsx +++ b/dev/src/solidbase-theme/mdx-components.tsx @@ -1,4 +1,4 @@ -import type { ComponentProps } from "solid-js"; +import type { ComponentProps } from "@solidjs/web"; export function h1(props: ComponentProps<"h1">) { return

; diff --git a/dev/tsconfig.json b/dev/tsconfig.json index 2a3dbdfe..e6287d6b 100644 --- a/dev/tsconfig.json +++ b/dev/tsconfig.json @@ -6,13 +6,16 @@ "allowSyntheticDefaultImports": true, "esModuleInterop": true, "jsx": "preserve", - "jsxImportSource": "solid-js", + "jsxImportSource": "@solidjs/web", "allowJs": true, "strict": true, + "skipLibCheck": true, "noEmit": true, "isolatedModules": true, "paths": { "~/*": ["./src/*"] } - } + }, + "include": ["src", "vite.config.mts", "../src/**/*.d.ts"], + "exclude": ["dist", "node_modules"] } diff --git a/dev/vite.config.mts b/dev/vite.config.mts index e269e2bd..ece05f75 100644 --- a/dev/vite.config.mts +++ b/dev/vite.config.mts @@ -1,5 +1,5 @@ -import { solidStart } from "@solidjs/start/config"; -import { nitro } from "nitro/vite"; +import { fileURLToPath } from "node:url"; +import solid from "@solidjs/vite-plugin"; import { defineConfig } from "vite"; import Inspect from "vite-plugin-inspect"; @@ -33,6 +33,11 @@ function createDevSidebar(route: string, hiddenFolders: string[] = []) { } export default defineConfig({ + resolve: { + alias: { + "@dev": fileURLToPath(new URL("./src", import.meta.url)), + }, + }, plugins: [ Inspect(), solidBase.plugin({ @@ -163,9 +168,7 @@ export default defineConfig({ }, }, }), - solidStart(solidBase.startConfig()), - nitro({ - prerender: { crawlLinks: true }, - }), + // @solidjs/vite-plugin start mode (SSR) replaces SolidStart + Nitro. + solid(solidBase.startConfig()), ], }); diff --git a/docs/package.json b/docs/package.json index 20b961da..94401792 100644 --- a/docs/package.json +++ b/docs/package.json @@ -9,10 +9,9 @@ "dependencies": { "@kobalte/solidbase": "workspace:*", "@solid-mediakit/og": "0.4.1", - "@solidjs/router": "^0.15.3", - "@solidjs/start": "https://pkg.pr.new/solidjs/solid-start/@solidjs/start@2080", - "nitro": "3.0.260311-beta", - "solid-js": "^1.9.9", + "@solidjs/router": "2.0.0-next.37", + "@solidjs/web": "2.0.0-rc.14", + "solid-js": "2.0.0-rc.14", "vite": "8.0.0" }, "engines": { @@ -20,6 +19,7 @@ }, "devDependencies": { "@iconify-json/ri": "^1.2.5", + "@solidjs/vite-plugin": "3.0.0-next.47", "vite-plugin-arraybuffer": "^0.0.8" } } diff --git a/docs/src/Document.tsx b/docs/src/Document.tsx new file mode 100644 index 00000000..d458a432 --- /dev/null +++ b/docs/src/Document.tsx @@ -0,0 +1,25 @@ +import { getFontPreloadLinkAttrs } from "@kobalte/solidbase/default-theme/fonts.js"; +import { getHtmlProps } from "@kobalte/solidbase/server"; +import { HydrationScript } from "@solidjs/web"; +import type { ParentProps } from "solid-js"; + +// Document shell for @solidjs/vite-plugin start mode: the app arrives as children and the +// client entry script is injected into automatically. +export default function Document(props: ParentProps) { + return ( + + + + + {getFontPreloadLinkAttrs().map((attrs) => ( + + ))} + + + + +
{props.children}
+ + + ); +} diff --git a/docs/src/app.tsx b/docs/src/app.tsx index 1bea9666..010738cc 100644 --- a/docs/src/app.tsx +++ b/docs/src/app.tsx @@ -1,11 +1,17 @@ +import { pageRoutes } from "virtual:file-routes"; import { SolidBaseRoot } from "@kobalte/solidbase/client"; -import { Router } from "@solidjs/router"; -import { FileRoutes } from "@solidjs/start/router"; +import { createRouter } from "@solidjs/router"; +import { fileRoutes } from "@solidjs/router/fs"; + +const Router = createRouter({ + routes: fileRoutes(pageRoutes), + base: import.meta.env.BASE_URL, +}); export default function App() { return ( - - + + {(props) => {props.children}} ); } diff --git a/docs/src/entry-client.tsx b/docs/src/entry-client.tsx deleted file mode 100644 index 0ca4e3c3..00000000 --- a/docs/src/entry-client.tsx +++ /dev/null @@ -1,4 +0,0 @@ -// @refresh reload -import { mount, StartClient } from "@solidjs/start/client"; - -mount(() => , document.getElementById("app")!); diff --git a/docs/src/entry-server.tsx b/docs/src/entry-server.tsx deleted file mode 100644 index d190d3b9..00000000 --- a/docs/src/entry-server.tsx +++ /dev/null @@ -1,26 +0,0 @@ -import { getFontPreloadLinkAttrs } from "@kobalte/solidbase/default-theme/fonts.js"; -import { getHtmlProps } from "@kobalte/solidbase/server"; -// @refresh reload -import { createHandler, StartServer } from "@solidjs/start/server"; - -export default createHandler(() => ( - ( - - - - - {getFontPreloadLinkAttrs().map((attrs: any) => ( - - ))} - - {assets} - - -
{children}
- {scripts} - - - )} - /> -)); diff --git a/docs/src/global.d.ts b/docs/src/global.d.ts index eeb33e00..30d6bfcb 100644 --- a/docs/src/global.d.ts +++ b/docs/src/global.d.ts @@ -1,6 +1,2 @@ -/// - -declare module "*?arraybuffer" { - const src: ArrayBuffer; - export default src; -} +/// +/// diff --git a/docs/src/routes/[...404].mdx b/docs/src/routes/[...404].mdx index 4b6d793b..9c3dfa3b 100644 --- a/docs/src/routes/[...404].mdx +++ b/docs/src/routes/[...404].mdx @@ -1,6 +1,5 @@ -import { mdxComponents } from "@kobalte/solidbase/client"; -import { HttpStatusCode } from "@solidjs/start"; -import { Dynamic } from "solid-js/web"; +import { HttpStatusCode, mdxComponents } from "@kobalte/solidbase/client"; +import { Dynamic } from "@solidjs/web"; # 404 diff --git a/docs/src/routes/fr/[...404].mdx b/docs/src/routes/fr/[...404].mdx index 64892248..478f7e22 100644 --- a/docs/src/routes/fr/[...404].mdx +++ b/docs/src/routes/fr/[...404].mdx @@ -1,4 +1,4 @@ -import { HttpStatusCode } from "@solidjs/start"; +import { HttpStatusCode } from "@kobalte/solidbase/client"; # 404 diff --git a/docs/src/routes/fr/guide/index.mdx b/docs/src/routes/fr/guide/index.mdx index 38293185..f2086355 100644 --- a/docs/src/routes/fr/guide/index.mdx +++ b/docs/src/routes/fr/guide/index.mdx @@ -4,22 +4,22 @@ title: À propos # Introduction -SolidBase est un [Générateur de Sites Statique](https://www.wikiwand.com/fr/articles/Générateur_de_site_statique) basé sur [SolidStart](https://start.solidjs.com/) centré sur le [Markdown](https://www.wikiwand.com/fr/articles/Markdown) ([MDX](https://mdxjs.com/)) . +SolidBase est un [Générateur de Sites Statique](https://www.wikiwand.com/fr/articles/Générateur_de_site_statique) basé sur [Solid](https://www.solidjs.com) centré sur le [Markdown](https://www.wikiwand.com/fr/articles/Markdown) ([MDX](https://mdxjs.com/)) . Idéal pour rédiger de la documentation et entièrement personnalisable. :::info[] -Vous voulez vous lancer tout de suite ? Allez directement à [Commencer](./getting-started) et rédigez votre documentation maintenant ! +Vous voulez vous lancer tout de suite ? Allez directement à [Commencer](/guide/quickstart) et rédigez votre documentation maintenant ! ::: ## Fonctionnalités clés ### Markdown intégré -Support natif pour Markdown et MDX avec presque toutes les extensions que vous pourriez vouloir. Toute la documentation des extensions et des exemples sont disponibles sur notre page [Extensions Markdown](./md-extensions). +Support natif pour Markdown et MDX avec presque toutes les extensions que vous pourriez vouloir. Toute la documentation des extensions et des exemples sont disponibles sur notre page [Extensions Markdown](/fr/guide/markdown). ### Personnalisable -Tous les composants de SolidBase sont remplaçables et peuvent transformer votre site web selon n'importe quel look ou structure. Consultez notre documentation sur [Personnalisation et Thèmes](./customization). +Tous les composants de SolidBase sont remplaçables et peuvent transformer votre site web selon n'importe quel look ou structure. Consultez notre documentation sur [Personnalisation et Thèmes](/guide/customization/extending-themes). ### Performant diff --git a/docs/src/routes/fr/index.mdx b/docs/src/routes/fr/index.mdx index e698b547..8f0bd8e9 100644 --- a/docs/src/routes/fr/index.mdx +++ b/docs/src/routes/fr/index.mdx @@ -3,14 +3,14 @@ title: SolidBase layout: home hero: - text: Generation de Site Static pour SolidStart + text: Génération de site statique pour Solid tagline: Tout Inclus, Entièrement Personnalisable actions: - text: Qu'est-ce que SolidBase ? link: /fr/guide - theme: alt text: Démarrer - link: /fr/guide/getting-started + link: /guide/quickstart - theme: alt text: GitHub link: https://github.com/kobaltedev/solidbase diff --git a/docs/src/routes/guide/(0)quickstart.mdx b/docs/src/routes/guide/(0)quickstart.mdx index a0320baf..be48b24b 100644 --- a/docs/src/routes/guide/(0)quickstart.mdx +++ b/docs/src/routes/guide/(0)quickstart.mdx @@ -4,7 +4,7 @@ title: Quick Start # {frontmatter.title} -You can quickly create a new SolidStart project with SolidBase using the [with-solidbase](https://github.com/solidjs/solid-start/tree/main/examples/with-solidbase) template available in the Solid CLI. +You can quickly create a new SolidBase project using the [with-solidbase](https://github.com/solidjs/solid-start/tree/main/examples/with-solidbase) template available in the Solid CLI (the template is being updated for Solid 2 — until then, follow [Adding to Existing Project](/guide/add-to-existing)). ## 1. Create a New Project diff --git a/docs/src/routes/guide/(1)add-to-existing.mdx b/docs/src/routes/guide/(1)add-to-existing.mdx index c4be5ba2..44ef6d42 100644 --- a/docs/src/routes/guide/(1)add-to-existing.mdx +++ b/docs/src/routes/guide/(1)add-to-existing.mdx @@ -4,7 +4,7 @@ title: Adding to Existing Project # {frontmatter.title} -SolidBase can be added to an existing SolidStart project in a few simple steps. +SolidBase can be added to an existing Solid + Vite project in a few simple steps. ## 1. Install `@kobalte/solidbase` @@ -15,68 +15,75 @@ To install SolidBase, run the following command in your project's root directory @kobalte/solidbase ``` -## 2. Update `app.config` +## 2. Configure Vite -Since SolidBase is built on top of SolidStart, you'll need to update your `app.config` to include SolidBase's configuration. To do this, wrap the existing configuration with `withSolidBase`: +SolidBase runs on [`@solidjs/vite-plugin`](https://github.com/solidjs/solid-vite-plugin) in **start mode** (the serving layer that replaced SolidStart). Create a `createSolidBase` instance and add its plugin next to the Solid plugin, using `startConfig()` for SolidBase's defaults (SSR start mode, `.md`/`.mdx` compiled as routes): -```ts title=app.config.ts -import { defineConfig } from "@solidjs/start/config"; -import { withSolidBase } from "@kobalte/solidbase/config"; +```ts title=vite.config.ts +import { createSolidBase } from "@kobalte/solidbase/config"; +import defaultTheme from "@kobalte/solidbase/default-theme"; +import solid from "@solidjs/vite-plugin"; +import { defineConfig } from "vite"; -export default defineConfig(withSolidBase(/* your SolidStart config */)); +const solidBase = createSolidBase(defaultTheme); + +export default defineConfig({ + plugins: [ + solidBase.plugin({ + // SolidBase options here + }), + solid(solidBase.startConfig()), + ], +}); ``` +Pages are discovered from `src/routes` by SolidBase's file-system routing (built on `filesystem-routing`, the convention SolidStart used), and your pages are prerendered into `dist/client` after `vite build`. Pass `fileRoutes: false` or `prerender: false` to take over either. + ## 3. Wrap Your App in `SolidBaseRoot` Once SolidBase is installed and configured, you'll need to wrap your application in the `SolidBaseRoot` component to provide the necessary context for SolidBase to function correctly. -In your `app.tsx`, import `SolidBaseRoot` from `@kobalte/solidbase/client` and wrap it around `Router`: +In `src/app.tsx` (the root component `@solidjs/vite-plugin` generates entries for), create the router from the file routes and wrap the matched content in `SolidBaseRoot`: -```tsx {7} title="app.tsx" +```tsx {9} title="src/app.tsx" import { SolidBaseRoot } from "@kobalte/solidbase/client"; -import { Router } from "@solidjs/router"; -import { FileRoutes } from "@solidjs/start/router"; +import { createRouter } from "@solidjs/router"; +import { fileRoutes } from "@solidjs/router/fs"; +import { pageRoutes } from "virtual:file-routes"; + +const Router = createRouter({ routes: fileRoutes(pageRoutes) }); export default function App() { - return ( - - - - ); + return {(props) => {props.children}}; } ``` -If your router already has a `root` component, you can wrap it with `SolidBaseRoot`: - -```tsx {3} - { - return {props.children}; - }} -> - - -``` +If you already wrap the matched content in a layout of your own, put `SolidBaseRoot` around it. ## 4. Add HTML Attributes for SSR To provide the `lang` and `data-theme` attributes to the `html` element during SSR, -spread `getHtmlProps()` onto it in `entry-server`: +spread `getHtmlProps()` onto it in your document shell (`src/Document.tsx`, picked up automatically by start mode): -```tsx {8} title=entry-server.tsx -// @refresh reload -import { StartServer, createHandler } from "@solidjs/start/server"; +```tsx {7} title=src/Document.tsx import { getHtmlProps } from "@kobalte/solidbase/server"; +import { HydrationScript } from "@solidjs/web"; +import type { ParentProps } from "solid-js"; -export default createHandler(() => ( - ( - - ... - - )} - /> -)); +export default function Document(props: ParentProps) { + return ( + + + + + + + +
{props.children}
+ + + ); +} ``` :::note diff --git a/docs/src/routes/guide/(2)config.mdx b/docs/src/routes/guide/(2)config.mdx index db697e2b..d84ab3a6 100644 --- a/docs/src/routes/guide/(2)config.mdx +++ b/docs/src/routes/guide/(2)config.mdx @@ -6,37 +6,45 @@ title: Configure Your App SolidBase provides a flexible configuration system that allows you to customize various aspects of your project. This guide will walk you through the different configuration options available. -This includes configuration options for both SolidStart and SolidBase. - -```ts -import { defineConfig } from "@solidjs/start/config"; -import { withSolidBase } from "@kobalte/solidbase/config"; - -export default defineConfig( - withSolidBase({ - // SolidStart options here - }, { - // SolidBase options here - }) -); +This includes configuration options for both `@solidjs/vite-plugin` (start mode) and SolidBase. + +```ts title="vite.config.ts" +import { createSolidBase } from "@kobalte/solidbase/config"; +import defaultTheme from "@kobalte/solidbase/default-theme"; +import solid from "@solidjs/vite-plugin"; +import { defineConfig } from "vite"; + +const solidBase = createSolidBase(defaultTheme); + +export default defineConfig({ + plugins: [ + solidBase.plugin({ + // SolidBase options here + }), + solid( + solidBase.startConfig({ + // @solidjs/vite-plugin options here + }), + ), + ], +}); ``` -## SolidStart Config +## Solid Plugin Config -Since SolidBase is built on top of SolidStart, you can leverage existing SolidStart configuration options. This includes settings for SSR, vite plugins, and more. +SolidBase is a set of Vite plugins on top of `@solidjs/vite-plugin`, so every option of the Solid plugin is available. `solidBase.startConfig()` applies SolidBase's defaults (`ssr: true`, `start: true`, and `.md`/`.mdx` in `extensions`) over whatever you pass in: -```ts title="app.config.ts" +```ts title="vite.config.ts" // .. -{ - ssr: false, - vite: { - // Vite configuration options - }, -} +solid( + solidBase.startConfig({ + start: { renderMode: "async" }, + }), +), // .. ``` -You can find more information about these options in the [SolidStart documentation](https://docs.solidjs.com/solid-start/reference/config/define-config). +You can find more information about these options in the [`@solidjs/vite-plugin` documentation](https://github.com/solidjs/solid-vite-plugin#optionsstart). ## SolidBase Config @@ -72,7 +80,7 @@ interface SolidBaseConfig { There are several options for setting site-wide metadata and behavior. These options help define the overall structure and presentation of your documentation site. This includes the site title, description, logo, and language settings. -```ts title="app.config.ts" +```ts title="vite.config.ts" // .. { title: "My Documentation Site", @@ -94,7 +102,7 @@ For multilingual support, use the `routes.locale` option. More details can be fo Use `routes` when a site has route dimensions such as project, version, or locale. -```ts title="app.config.ts" +```ts title="vite.config.ts" // .. routes: { path: "/{project}/{version}/{locale}", @@ -150,7 +158,7 @@ Each route axis has: Use `overrides` to change SolidBase config for matching route selections: -```ts title="app.config.ts" +```ts title="vite.config.ts" // .. overrides: [ { @@ -193,7 +201,7 @@ In addition to setting the site title and description, you can also configure ot - `sitemap`: Set to `true` to emit `/sitemap.xml`. You can also pass an object to override the hostname or control sitemap chunking for very large sites. - `robots`: Set to `true` to emit a simple Google-friendly `/robots.txt` file that allows crawling and points to your sitemap. -```ts title="app.config.ts" +```ts title="vite.config.ts" // .. siteUrl: "https://docs.example.com" editPath: "https://github.com/[USERNAME]/[REPO]/edit/main/docs/:path" @@ -211,7 +219,7 @@ See the [LLMs.txt guide](/guide/features/llms) for page-level exclusion and outp SolidBase can generate both `/sitemap.xml` and `/robots.txt` during the build. -```ts title="app.config.ts" +```ts title="vite.config.ts" // .. siteUrl: "https://docs.example.com", sitemap: true, @@ -227,7 +235,7 @@ This emits: If you need more control, `sitemap` also accepts an object: -```ts title="app.config.ts" +```ts title="vite.config.ts" // .. siteUrl: "https://docs.example.com", sitemap: { @@ -253,7 +261,7 @@ See the [Sitemap and robots guide](/guide/features/sitemap-and-robots) for a ful In addition to the default markdown support provided by SolidBase, you can include additional markdown plugins, configurations, and other options through the `markdown` option. -```ts title="app.config.ts" +```ts title="vite.config.ts" // .. markdown: { expressiveCode: { @@ -280,7 +288,7 @@ markdown: { The `expressiveCode` option allows you to configure the [Rehype Expressive Code](https://github.com/rehypejs/rehype-expressive-code) plugin, which adds support for expressive code blocks in your markdown. -```ts title="app.config.ts" +```ts title="vite.config.ts" // .. expressiveCode: { // Rehype expressive code options @@ -307,7 +315,7 @@ To see the available options, refer to the [Package Manager plugin's source code You can also customize theme-specific settings using the `themeConfig` option. The structure of this object will depend on the theme you are using. Refer to the theme's documentation for available options. -```ts title="app.config.ts" +```ts title="vite.config.ts" // .. themeConfig: { footer: // see Footer below; @@ -331,7 +339,7 @@ You can also customize theme-specific settings using the `themeConfig` option. T By default, SolidBase includes a footer section that can be customized or disabled. You can set the `footer` option to `false` to remove the footer entirely, or provide an object with `message` and `copyright`. -```ts title="app.config.ts" +```ts title="vite.config.ts" // .. footer: false // or true // .. @@ -348,7 +356,7 @@ There are 4 built-in social link types available: Each option can be configured with a link, optional logo, and label. -```ts title="app.config.ts" +```ts title="vite.config.ts" //.. socialLinks: { github: "https://github.com/your-repo", @@ -367,7 +375,7 @@ Each option can be configured with a link, optional logo, and label. The `nav` option allows you to define the main navigation links for your site. These links will appear in the header and provide easy access to important sections of your documentation. -```ts title="app.config.ts" +```ts title="vite.config.ts" // .. nav: [ { @@ -389,7 +397,7 @@ The sidebar configuration allows you to create a structured sidebar navigation f :::note While there are preset statuses available, you can create your own custom status styles. -```ts title="app.config.ts" +```ts title="vite.config.ts" // .. status: { text: "custom", @@ -400,7 +408,7 @@ status: { ``` ::: -```ts title="app.config.ts" +```ts title="vite.config.ts" // .. sidebar: { "/guide": [ diff --git a/docs/src/routes/guide/(3)structure.mdx b/docs/src/routes/guide/(3)structure.mdx index e35f96ac..1b9ef1b6 100644 --- a/docs/src/routes/guide/(3)structure.mdx +++ b/docs/src/routes/guide/(3)structure.mdx @@ -6,39 +6,34 @@ title: Project Structure ## SolidBase Entry -The entry point for a SolidBase project is the `app.config.ts` file located in the root of your project. +The entry point for a SolidBase project is the `vite.config.ts` file located in the root of your project. -```ts title=app.config.ts -import { defineConfig } from "@solidjs/start/config"; +```ts title=vite.config.ts +import { createSolidBase } from "@kobalte/solidbase/config"; +import defaultTheme from "@kobalte/solidbase/default-theme"; +import solid from "@solidjs/vite-plugin"; +import { defineConfig } from "vite"; -import { createSolidBase } from "@kobalte/solidbase"; - -const solidBase = createSolidBase(theme); +const solidBase = createSolidBase(defaultTheme); export default defineConfig({ - ...solidBase.startConfig({ - ssr: true, - }), - server: { - prerender: { - crawlLinks: true, - }, - }, plugins: [ solidBase.plugin({ title: "SolidBase", - description: "Fully featured, fully customisable static site generation for SolidStart", + description: "Fully featured, fully customisable static site generation for Solid", }), + solid(solidBase.startConfig()), ], }); - ``` +After `vite build`, SolidBase prerenders every page into `dist/client`, which deploys as a static site (set `prerender: false` to deploy the server bundle instead). + ## Routing -Since SolidBase is built on top of SolidStart, it uses the same file based routing system. Using file-based routing is recommended for both management and performance reasons. +SolidBase uses file-system routing (the convention SolidStart established, now provided router-neutrally by `filesystem-routing`). Using file-based routing is recommended for both management and performance reasons. -The `src/routes` directory is where you define your application's routes. Each file in this directory, corresponds to a route in your application. For example, `src/routes/index.mdx` corresponds to the root route `/`, and `src/routes/about.mdx` corresponds to the `/about` route. +The `src/routes` directory is where you define your application's routes. Each file in this directory corresponds to a route in your application. For example, `src/routes/index.mdx` corresponds to the root route `/`, and `src/routes/about.mdx` corresponds to the `/about` route. ``` ├─ src @@ -46,9 +41,8 @@ The `src/routes` directory is where you define your application's routes. Each f │ │ ├─ index.mdx │ │ └─ about.mdx │ ├─ app.tsx -│ ├─ entry-client.tsx -│ └─ entry-server.tsx -└─ app.config.ts +│ └─ Document.tsx +└─ vite.config.ts ``` -Full documentation and reference can be found in the [SolidStart docs](https://docs.solidjs.com/solid-start/building-your-application/routing). +Full documentation and reference can be found in the [Solid Router docs](https://docs.solidjs.com/solid-router) and the [`filesystem-routing` README](https://github.com/solidjs/filesystem-routing). diff --git a/docs/src/routes/guide/(4)deploy.mdx b/docs/src/routes/guide/(4)deploy.mdx index 5d2eff87..3980e928 100644 --- a/docs/src/routes/guide/(4)deploy.mdx +++ b/docs/src/routes/guide/(4)deploy.mdx @@ -4,4 +4,6 @@ title: Deploy # {frontmatter.title} -A SolidBase app can be deployed anywhere a SolidStart app can be deployed. You can use [Nitro](https://nitro.build/deploy) in your `app.config.ts` to add presets to deploy your app to various platforms. +After `vite build`, `dist/client` is a complete static site that can be hosted on any static hosting service. Set the build command to `vite build` (or your package's build script) and the publish directory to `dist/client`. + +SolidBase uses `@solidjs/vite-plugin` in start mode, configured in `vite.config.ts`. Nitro presets in `app.config.ts` are no longer used. If you set `prerender: false`, the build produces a server bundle in `dist/server` instead of prerendered pages; deploying that bundle requires a server setup suited to your host. diff --git a/docs/src/routes/guide/customization/custom-themes.mdx b/docs/src/routes/guide/customization/custom-themes.mdx index 35360767..74eebfab 100644 --- a/docs/src/routes/guide/customization/custom-themes.mdx +++ b/docs/src/routes/guide/customization/custom-themes.mdx @@ -138,7 +138,7 @@ It's up to you whether you distribute your theme's components as TS or JS. ## Consuming a Theme -To consume a theme, import its definition in your `app.config` and create a SolidBase instance from it: +To consume a theme, import its definition in your `vite.config.ts` and create a SolidBase instance from it: ```ts import { someTheme } from "awesome-solidbase-theme"; diff --git a/docs/src/routes/guide/customization/extending-themes.mdx b/docs/src/routes/guide/customization/extending-themes.mdx index 9f73e32f..0dfdd72f 100644 --- a/docs/src/routes/guide/customization/extending-themes.mdx +++ b/docs/src/routes/guide/customization/extending-themes.mdx @@ -6,14 +6,14 @@ title: Extending Themes You can extend the default theme if you'd like to preserve the default theme's functionality while adding your own customisations. SolidBase offers the ability to extend this theme, allowing you to build upon its existing features without starting from scratch. -For example, the dev app [extends the default theme](https://github.com/kobaltedev/solidbase/blob/main/dev/app.config.ts#L4) to add [OpenGraph](https://ogp.me) tags +For example, the dev app [extends the default theme](https://github.com/kobaltedev/solidbase/blob/main/dev/vite.config.mts) to add [OpenGraph](https://ogp.me) tags. ## Create an Extended Theme To extend the default theme, you must define a custom theme using `defineTheme`, setting its extends property to the `defaultTheme`, imported from `@kobalte/solidbase/default-theme`, and configuring the `componentsPath` property to point to the folder housing your custom theme's components. ```ts - + import { defineTheme } from "@kobalte/solidbase/config"; import defaultTheme from "@kobalte/solidbase/default-theme"; @@ -26,8 +26,9 @@ const customTheme = defineTheme({ Once the theme is defined, you can set it as the active theme in your SolidBase config with `createSolidBase`: ```ts - -import { defineConfig } from "@solidjs/start/config"; + +import solid from "@solidjs/vite-plugin"; +import { defineConfig } from "vite"; import { createSolidBase, defineTheme } from "@kobalte/solidbase/config"; import defaultTheme from "@kobalte/solidbase/default-theme"; @@ -39,10 +40,8 @@ const customTheme = defineTheme({ const solidBase = createSolidBase(customTheme); export default defineConfig({ - ...solidBase.startConfig({ - ssr: true, - }), plugins: [ + solid(solidBase.startConfig()), solidBase.plugin({ // your solidbase configuration }), @@ -97,12 +96,10 @@ The default theme uses a few fonts: To disable these fonts, set the `fonts` option to `false` in your SolidBase config: ```ts - + export default defineConfig({ - ...solidBase.startConfig({ - ... - }), plugins: [ + solid(solidBase.startConfig()), solidBase.plugin({ themeConfig: { fonts: false, diff --git a/docs/src/routes/guide/features/(1)language-switcher.mdx b/docs/src/routes/guide/features/(1)language-switcher.mdx index 1925b0b8..da4cdc86 100644 --- a/docs/src/routes/guide/features/(1)language-switcher.mdx +++ b/docs/src/routes/guide/features/(1)language-switcher.mdx @@ -14,36 +14,43 @@ To enable it, configure the `languageSwitcher` option in your SolidBase config: ### Basic Setup -```ts title="app.config.ts" -import { defineConfig } from "@solidjs/start/config"; -import { withSolidBase } from "@kobalte/solidbase/config"; - -export default defineConfig( - withSolidBase( - /* your SolidStart config */ - { +```ts title="vite.config.ts" +import { createSolidBase } from "@kobalte/solidbase/config"; +import defaultTheme from "@kobalte/solidbase/default-theme"; +import solid from "@solidjs/vite-plugin"; +import { defineConfig } from "vite"; + +const solidBase = createSolidBase(defaultTheme); + +export default defineConfig({ + plugins: [ + solidBase.plugin({ markdown: { expressiveCode: { languageSwitcher: true, }, }, - }, - ), -); + }), + solid(solidBase.startConfig()), + ], +}); ``` ### Advanced Configuration For custom options, pass an object: -```ts title="app.config.ts" -import { defineConfig } from "@solidjs/start/config"; -import { withSolidBase } from "@kobalte/solidbase/config"; +```ts title="vite.config.ts" +import { createSolidBase } from "@kobalte/solidbase/config"; +import defaultTheme from "@kobalte/solidbase/default-theme"; +import solid from "@solidjs/vite-plugin"; +import { defineConfig } from "vite"; + +const solidBase = createSolidBase(defaultTheme); -export default defineConfig( - withSolidBase( - /* your SolidStart config */ - { +export default defineConfig({ + plugins: [ + solidBase.plugin({ markdown: { expressiveCode: { languageSwitcher: { @@ -55,9 +62,10 @@ export default defineConfig( }, }, }, - }, - ), -); + }), + solid(solidBase.startConfig()), + ], +}); ``` ### Supported Languages diff --git a/docs/src/routes/guide/features/(3)llms.mdx b/docs/src/routes/guide/features/(3)llms.mdx index c07b012c..639e818c 100644 --- a/docs/src/routes/guide/features/(3)llms.mdx +++ b/docs/src/routes/guide/features/(3)llms.mdx @@ -10,7 +10,7 @@ SolidBase can generate an `llms.txt` index plus markdown versions of your routes Turn it on with the `llms` option in your SolidBase config: -```ts title="app.config.ts" +```ts title="vite.config.ts" import { createSolidBase, defineTheme } from "@kobalte/solidbase/config"; import defaultTheme from "@kobalte/solidbase/default-theme"; @@ -56,7 +56,7 @@ Once enabled, the build emits: When you use the default theme, enabling `llms: true` also adds a page-level copy button that copies the generated markdown for the current page. -```ts title="app.config.ts" +```ts title="vite.config.ts" solidBase.plugin({ llms: true, }); diff --git a/docs/src/routes/guide/features/(4)sitemap-and-robots.mdx b/docs/src/routes/guide/features/(4)sitemap-and-robots.mdx index c877f0e2..8835bc61 100644 --- a/docs/src/routes/guide/features/(4)sitemap-and-robots.mdx +++ b/docs/src/routes/guide/features/(4)sitemap-and-robots.mdx @@ -10,7 +10,7 @@ SolidBase can generate both `/sitemap.xml` and `/robots.txt` during the build so Set a canonical `siteUrl`, then turn both features on in your SolidBase config: -```ts title="app.config.ts" +```ts title="vite.config.ts" import { createSolidBase, defineTheme } from "@kobalte/solidbase/config"; import defaultTheme from "@kobalte/solidbase/default-theme"; @@ -57,7 +57,7 @@ If your site grows large enough, SolidBase automatically switches from a single When you use `lang` and `locales`, SolidBase groups equivalent localized pages together in the sitemap. -```ts title="app.config.ts" +```ts title="vite.config.ts" // .. siteUrl: "https://docs.example.com", lang: "en-US", @@ -91,7 +91,7 @@ You can also disable sitemap inclusion entirely for a page with `sitemap: false` The default setup is enough for most sites. If you need more control, you can pass config objects instead of booleans. -```ts title="app.config.ts" +```ts title="vite.config.ts" // .. siteUrl: "https://docs.example.com", sitemap: { diff --git a/docs/src/routes/guide/index.mdx b/docs/src/routes/guide/index.mdx index 90e0a827..1d845108 100644 --- a/docs/src/routes/guide/index.mdx +++ b/docs/src/routes/guide/index.mdx @@ -4,10 +4,10 @@ title: About # Introduction -SolidBase provides fully featured, fully customisable [Static Site Generation](https://www.wikiwand.com/en/articles/Static_site_generator) for [SolidStart](https://docs.solidjs.com/solid-start). +SolidBase provides fully featured, fully customisable [Static Site Generation](https://www.wikiwand.com/en/articles/Static_site_generator) for [Solid](https://www.solidjs.com), built on [`@solidjs/vite-plugin`](https://github.com/solidjs/solid-vite-plugin). It focuses on [Markdown](https://www.wikiwand.com/en/articles/Markdown) ([MDX](https://mdxjs.com/)), making it ideal for writing documentation. -You can [add SolidBase to an existing SolidStart project](/guide/add-to-existing) or start a new project with our [quickstart guide](/guide/quickstart). +You can [add SolidBase to an existing Solid project](/guide/add-to-existing) or start a new project with our [quickstart guide](/guide/quickstart). ## Key features diff --git a/docs/src/routes/index.mdx b/docs/src/routes/index.mdx index 78904987..4e1d054c 100644 --- a/docs/src/routes/index.mdx +++ b/docs/src/routes/index.mdx @@ -1,10 +1,10 @@ --- title: SolidBase -titleTemplate: Static Site Generation for SolidStart +titleTemplate: Static Site Generation for Solid layout: home hero: - text: Static Site Generation for SolidStart + text: Static Site Generation for Solid tagline: Fully Featured, Fully Customisable actions: - text: What is SolidBase? @@ -23,7 +23,7 @@ features: title: Focus on Your Content details: Effortlessly create beautiful documentation sites with just markdown. - icon: - title: Enjoy the SolidStart DX + title: Enjoy the Solid DX details: Instant server start, lightning fast hot updates, and deploy anywhere. - icon: title: Customize with Solid diff --git a/docs/src/routes/reference/default-theme/components/footer.mdx b/docs/src/routes/reference/default-theme/components/footer.mdx index 949ceb75..5ce0eee6 100644 --- a/docs/src/routes/reference/default-theme/components/footer.mdx +++ b/docs/src/routes/reference/default-theme/components/footer.mdx @@ -15,8 +15,9 @@ The footer has multiple options available. ## Social Links ```ts - -import { defineConfig } from "@solidjs/start/config"; + +import solid from "@solidjs/vite-plugin"; +import { defineConfig } from "vite"; import { createSolidBase } from "@kobalte/solidbase"; @@ -24,10 +25,8 @@ import { createSolidBase } from "@kobalte/solidbase"; const solidBase = createSolidBase(theme); export default defineConfig({ - ...solidBase.startConfig({ - ... - }), plugins: [ + solid(solidBase.startConfig()), solidBase.plugin({ ... themeConfig: { diff --git a/docs/src/routes/reference/default-theme/components/sidebar.mdx b/docs/src/routes/reference/default-theme/components/sidebar.mdx index d49d055f..16f0c76e 100644 --- a/docs/src/routes/reference/default-theme/components/sidebar.mdx +++ b/docs/src/routes/reference/default-theme/components/sidebar.mdx @@ -10,21 +10,20 @@ badges: # {frontmatter.title} -The sidebar for the default theme is configured in the app config: +The sidebar for the default theme is configured in `vite.config.ts`: -```ts title="app.config.ts" -import { defineConfig } from "@solidjs/start/config"; +```ts title="vite.config.ts" +import solid from "@solidjs/vite-plugin"; +import { defineConfig } from "vite"; -import { createSolidBase } from "@kobalte/solidbase"; +import { createSolidBase } from "@kobalte/solidbase/config"; const solidBase = createSolidBase(theme); export default defineConfig({ - ...solidBase.startConfig({ - ... - }), plugins: [ + solid(solidBase.startConfig()), solidBase.plugin({ ... themeConfig: { diff --git a/docs/src/routes/reference/default-theme/css-variables.mdx b/docs/src/routes/reference/default-theme/css-variables.mdx index b74a903f..56c10b6d 100644 --- a/docs/src/routes/reference/default-theme/css-variables.mdx +++ b/docs/src/routes/reference/default-theme/css-variables.mdx @@ -10,7 +10,7 @@ badges: # {frontmatter.title} -The default theme's CSS can be customized using CSS variables. You can override these variables in your own CSS file to change the appearance of your site. To see how to add your own CSS file, refer to the [Custom Themes](/guide/custom-themes#customizing-the-css) guide. +The default theme's CSS can be customized using CSS variables. You can override these variables in your own CSS file to change the appearance of your site. To see how to add your own CSS file, refer to the [Extending Themes](/guide/customization/extending-themes#customizing-the-css) guide. The following CSS variables are available: diff --git a/docs/src/routes/reference/frontmatter.mdx b/docs/src/routes/reference/frontmatter.mdx index 7dc9dcd3..a0fa609d 100644 --- a/docs/src/routes/reference/frontmatter.mdx +++ b/docs/src/routes/reference/frontmatter.mdx @@ -31,7 +31,7 @@ title: Tab Title The title is formatted from the config: ```ts - + /* SolidBase options */ { titleTemplate: ":title – SolidBase", diff --git a/docs/src/solidbase-theme/og-image.tsx b/docs/src/solidbase-theme/og-image.tsx deleted file mode 100644 index 74b51c74..00000000 --- a/docs/src/solidbase-theme/og-image.tsx +++ /dev/null @@ -1,73 +0,0 @@ -import { DynamicImage, OpenGraph } from "@solid-mediakit/og"; -import interBold from "./Inter_28pt-Bold.ttf?arraybuffer"; -import interMedium from "./Inter_28pt-Medium.ttf?arraybuffer"; -import lexendBold from "./Lexend-Bold.ttf?arraybuffer"; - -declare module "solid-js" { - namespace JSX { - interface HTMLAttributes { - tw?: string; - } - } -} - -const origin = import.meta.env.VITE_ORIGIN ?? "http://localhost:4000"; -const fonts = [ - { - name: "Inter", - weight: 500, - data: interMedium, - }, - { - name: "Inter", - weight: 700, - data: interBold, - }, - { - name: "Lexend", - weigth: 700, - data: lexendBold, - }, -]; - -export function OGImage() { - return ( - - -
-
-
- SolidBase -
-
- Static Site Generation for SolidStart -
-
- Fully Featured, Fully Customisable -
-
- - n/a -
-
-
- ); -} diff --git a/docs/tsconfig.json b/docs/tsconfig.json index 2a3dbdfe..e6287d6b 100644 --- a/docs/tsconfig.json +++ b/docs/tsconfig.json @@ -6,13 +6,16 @@ "allowSyntheticDefaultImports": true, "esModuleInterop": true, "jsx": "preserve", - "jsxImportSource": "solid-js", + "jsxImportSource": "@solidjs/web", "allowJs": true, "strict": true, + "skipLibCheck": true, "noEmit": true, "isolatedModules": true, "paths": { "~/*": ["./src/*"] } - } + }, + "include": ["src", "vite.config.mts", "../src/**/*.d.ts"], + "exclude": ["dist", "node_modules"] } diff --git a/docs/vite.config.mts b/docs/vite.config.mts index ca936670..b5de397c 100644 --- a/docs/vite.config.mts +++ b/docs/vite.config.mts @@ -1,6 +1,5 @@ -import { vitePlugin as OGPlugin } from "@solid-mediakit/og/unplugin"; -import { solidStart } from "@solidjs/start/config"; -import { nitro } from "nitro/vite"; +// TODO(solid2): @solid-mediakit/og has no Solid 2 release; OG image generation is disabled for now. +import solid from "@solidjs/vite-plugin"; import { defineConfig } from "vite"; import arraybuffer from "vite-plugin-arraybuffer"; import { version as SBVersion } from "../package.json"; @@ -17,12 +16,11 @@ const solidBase = createSolidBase(theme); export default defineConfig({ plugins: [ - OGPlugin(), arraybuffer(), solidBase.plugin({ title: "SolidBase", description: - "Fully featured, fully customisable static site generation for SolidStart", + "Fully featured, fully customisable static site generation for Solid", siteUrl: "https://solidbase.dev", llms: true, sitemap: true, @@ -59,10 +57,6 @@ export default defineConfig({ text: "Guide", link: "/guide", }, - { - text: "Référence", - link: "/reference", - }, ], sidebar: { "/guide": [ @@ -87,13 +81,6 @@ export default defineConfig({ ], }, ], - "/reference": [ - { - title: "Référence", - collapsed: false, - items: [], - }, - ], }, }, }, @@ -133,10 +120,8 @@ export default defineConfig({ }, }, }), - solidStart(solidBase.startConfig()), - nitro({ - preset: "netlify", - prerender: { crawlLinks: true }, - }), + // @solidjs/vite-plugin start mode (SSR) replaces SolidStart + Nitro. + // TODO(solid2): Netlify deploy + static prerender (was nitro preset/prerender.crawlLinks). + solid(solidBase.startConfig()), ], }); diff --git a/netlify.toml b/netlify.toml index 1429f793..9927efa3 100644 --- a/netlify.toml +++ b/netlify.toml @@ -1,6 +1,4 @@ [build] command = "VITE_ORIGIN=$DEPLOY_URL pnpm build:docs" -publish = "docs/dist/" - -[functions] -directory = "docs/.netlify/functions-internal/" +# @solidjs/vite-plugin start mode + SolidBase prerender: dist/client is a complete static site. +publish = "docs/dist/client/" diff --git a/package.json b/package.json index 46697916..62322a41 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@kobalte/solidbase", "version": "0.6.3-dev", - "description": "Fully featured, fully customisable static site generation for SolidStart", + "description": "Fully featured, fully customisable static site generation for Solid", "type": "module", "sideEffects": true, "scripts": { @@ -127,7 +127,8 @@ "devDependencies": { "@biomejs/biome": "^2.4.8", "@octokit/core": "^6.1.6", - "@solidjs/start": "https://pkg.pr.new/solidjs/solid-start/@solidjs/start@2080", + "@solidjs/vite-plugin": "3.0.0-next.47", + "@solidjs/web": "2.0.0-rc.14", "@types/cross-spawn": "^6.0.6", "@types/mdast": "^4.0.4", "@types/resolve": "^1.20.6", @@ -136,7 +137,7 @@ "esbuild": "^0.25.12", "jsdom": "^29.0.0", "resolve": "^1.22.11", - "solid-js": "^1.9.11", + "solid-js": "2.0.0-rc.14", "tsx": "^4.21.0", "vfile": "^6.0.3", "vite": "^8.0.1", @@ -144,8 +145,9 @@ "vitest": "^4.1.0" }, "peerDependencies": { - "@solidjs/start": "^2.0.0", - "solid-js": "^1.9.1", + "@solidjs/vite-plugin": "^3.0.0-next.47", + "@solidjs/web": "^2.0.0-rc.14", + "solid-js": "^2.0.0-rc.14", "vite": "^8.0.0" }, "packageManager": "pnpm@11.20.0", @@ -161,24 +163,25 @@ "@fontsource-variable/inter": "^5.2.8", "@fontsource-variable/jetbrains-mono": "^5.2.8", "@fontsource-variable/lexend": "^5.2.11", - "@kobalte/core": "^0.13.11", + "@kobalte/core": "2.0.0-alpha.2", "@mdx-js/mdx": "^3.1.1", - "@solid-primitives/clipboard": "^1.6.4", - "@solid-primitives/context": "^0.2.3", - "@solid-primitives/event-listener": "^2.4.5", - "@solid-primitives/keyboard": "^1.3.5", - "@solid-primitives/media": "^2.3.5", - "@solid-primitives/platform": "^0.1.2", - "@solid-primitives/scroll": "^2.1.5", - "@solid-primitives/storage": "^4.4.0", - "@solidjs/meta": "^0.29.4", - "@solidjs/router": "^0.15.3", + "@solid-primitives/clipboard": "2.0.0-next.17", + "@solid-primitives/context": "2.0.0-next.2", + "@solid-primitives/event-listener": "3.0.0-next.5", + "@solid-primitives/keyboard": "2.0.0-next.5", + "@solid-primitives/media": "4.0.0-next.2", + "@solid-primitives/platform": "1.0.0-next.2", + "@solid-primitives/scroll": "3.0.0-next.4", + "@solid-primitives/storage": "5.0.0-next.4", + "@solidjs/meta": "1.0.0-next.2", + "@solidjs/router": "2.0.0-next.37", "cross-spawn": "^7.0.6", "diff": "^8.0.3", "esast-util-from-js": "^2.0.1", "estree-util-value-to-estree": "^3.5.0", "expressive-code": "^0.41.7", "expressive-code-twoslash": "^0.4.0", + "filesystem-routing": "0.4.0", "gray-matter": "^4.0.3", "hastscript": "^9.0.1", "magic-string": "^0.30.21", @@ -187,6 +190,7 @@ "mdast-util-to-string": "^4.0.0", "mdast-util-toc": "^7.1.0", "parse-numeric-range": "^1.3.0", + "prerender-crawler": "0.2.0", "prettier": "4.0.0-alpha.13", "rehype-autolink-headings": "^7.1.0", "rehype-expressive-code": "^0.41.7", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2fdcbb5e..5aa79a17 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -42,41 +42,41 @@ importers: specifier: ^5.2.11 version: 5.3.0 '@kobalte/core': - specifier: ^0.13.11 - version: 0.13.11(solid-js@1.9.14) + specifier: 2.0.0-alpha.2 + version: 2.0.0-alpha.2(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14) '@mdx-js/mdx': specifier: ^3.1.1 - version: 3.1.1 + version: 3.1.1(supports-color@10.2.2) '@solid-primitives/clipboard': - specifier: ^1.6.4 - version: 1.6.6(solid-js@1.9.14) + specifier: 2.0.0-next.17 + version: 2.0.0-next.17(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14) '@solid-primitives/context': - specifier: ^0.2.3 - version: 0.2.3(solid-js@1.9.14) + specifier: 2.0.0-next.2 + version: 2.0.0-next.2(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14) '@solid-primitives/event-listener': - specifier: ^2.4.5 - version: 2.4.6(solid-js@1.9.14) + specifier: 3.0.0-next.5 + version: 3.0.0-next.5(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14) '@solid-primitives/keyboard': - specifier: ^1.3.5 - version: 1.3.7(solid-js@1.9.14) + specifier: 2.0.0-next.5 + version: 2.0.0-next.5(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14) '@solid-primitives/media': - specifier: ^2.3.5 - version: 2.3.6(solid-js@1.9.14) + specifier: 4.0.0-next.2 + version: 4.0.0-next.2(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14) '@solid-primitives/platform': - specifier: ^0.1.2 - version: 0.1.2(solid-js@1.9.14) + specifier: 1.0.0-next.2 + version: 1.0.0-next.2(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14) '@solid-primitives/scroll': - specifier: ^2.1.5 - version: 2.1.6(solid-js@1.9.14) + specifier: 3.0.0-next.4 + version: 3.0.0-next.4(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14) '@solid-primitives/storage': - specifier: ^4.4.0 - version: 4.4.0(solid-js@1.9.14) + specifier: 5.0.0-next.4 + version: 5.0.0-next.4(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14) '@solidjs/meta': - specifier: ^0.29.4 - version: 0.29.4(solid-js@1.9.14) + specifier: 1.0.0-next.2 + version: 1.0.0-next.2(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14) '@solidjs/router': - specifier: ^0.15.3 - version: 0.15.4(solid-js@1.9.14) + specifier: 2.0.0-next.37 + version: 2.0.0-next.37(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(filesystem-routing@0.4.0(supports-color@10.2.2)(vite@8.2.1(@types/node@26.1.2)(esbuild@0.25.12)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0)))(solid-js@2.0.0-rc.14) cross-spawn: specifier: ^7.0.6 version: 7.0.6 @@ -94,7 +94,10 @@ importers: version: 0.41.7 expressive-code-twoslash: specifier: ^0.4.0 - version: 0.4.0(@expressive-code/core@0.41.7)(expressive-code@0.41.7)(typescript@5.9.3) + version: 0.4.0(@expressive-code/core@0.41.7)(expressive-code@0.41.7)(supports-color@10.2.2)(typescript@5.9.3) + filesystem-routing: + specifier: 0.4.0 + version: 0.4.0(supports-color@10.2.2)(vite@8.2.1(@types/node@26.1.2)(esbuild@0.25.12)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0)) gray-matter: specifier: ^4.0.3 version: 4.0.3 @@ -109,7 +112,7 @@ importers: version: 3.0.2 mdast-util-mdx-jsx: specifier: ^3.2.0 - version: 3.2.0 + version: 3.2.0(supports-color@10.2.2) mdast-util-to-string: specifier: ^4.0.0 version: 4.0.0 @@ -119,6 +122,9 @@ importers: parse-numeric-range: specifier: ^1.3.0 version: 1.3.0 + prerender-crawler: + specifier: 0.2.0 + version: 0.2.0(vite@8.2.1(@types/node@26.1.2)(esbuild@0.25.12)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0)) prettier: specifier: 4.0.0-alpha.13 version: 4.0.0-alpha.13 @@ -136,22 +142,22 @@ importers: version: 6.0.0 remark: specifier: ^15.0.1 - version: 15.0.1 + version: 15.0.1(supports-color@10.2.2) remark-directive: specifier: ^3.0.1 - version: 3.0.1 + version: 3.0.1(supports-color@10.2.2) remark-frontmatter: specifier: ^5.0.0 - version: 5.0.0 + version: 5.0.0(supports-color@10.2.2) remark-gfm: specifier: ^4.0.1 - version: 4.0.1 + version: 4.0.1(supports-color@10.2.2) remark-mdx: specifier: ^3.1.1 - version: 3.1.1 + version: 3.1.1(supports-color@10.2.2) remark-parse: specifier: ^11.0.0 - version: 11.0.0 + version: 11.0.0(supports-color@10.2.2) remark-stringify: specifier: ^11.0.0 version: 11.0.0 @@ -181,7 +187,7 @@ importers: version: 19.3.0 unplugin-icons: specifier: ^22.5.0 - version: 22.5.0 + version: 22.5.0(supports-color@10.2.2) yaml: specifier: ^2.8.2 version: 2.9.0 @@ -192,9 +198,12 @@ importers: '@octokit/core': specifier: ^6.1.6 version: 6.1.6 - '@solidjs/start': - specifier: https://pkg.pr.new/solidjs/solid-start/@solidjs/start@2080 - version: https://pkg.pr.new/solidjs/solid-start/@solidjs/start@2080(crossws@0.4.10(srvx@0.12.5))(vite@8.2.1(@types/node@26.1.2)(esbuild@0.25.12)(tsx@4.23.9)(yaml@2.9.0)) + '@solidjs/vite-plugin': + specifier: 3.0.0-next.47 + version: 3.0.0-next.47(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14)(supports-color@10.2.2)(vite@8.2.1(@types/node@26.1.2)(esbuild@0.25.12)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0)) + '@solidjs/web': + specifier: 2.0.0-rc.14 + version: 2.0.0-rc.14(solid-js@2.0.0-rc.14) '@types/cross-spawn': specifier: ^6.0.6 version: 6.0.6 @@ -220,8 +229,8 @@ importers: specifier: ^1.22.11 version: 1.22.12 solid-js: - specifier: ^1.9.11 - version: 1.9.14 + specifier: 2.0.0-rc.14 + version: 2.0.0-rc.14 tsx: specifier: ^4.21.0 version: 4.23.9 @@ -230,44 +239,44 @@ importers: version: 6.0.3 vite: specifier: ^8.0.1 - version: 8.2.1(@types/node@26.1.2)(esbuild@0.25.12)(tsx@4.23.9)(yaml@2.9.0) + version: 8.2.1(@types/node@26.1.2)(esbuild@0.25.12)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0) vite-plugin-inspect: specifier: ^11.3.3 - version: 11.4.1(vite@8.2.1(@types/node@26.1.2)(esbuild@0.25.12)(tsx@4.23.9)(yaml@2.9.0)) + version: 11.4.1(vite@8.2.1(@types/node@26.1.2)(esbuild@0.25.12)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0)) vitest: specifier: ^4.1.0 - version: 4.1.10(@types/node@26.1.2)(jsdom@29.1.1)(vite@8.2.1(@types/node@26.1.2)(esbuild@0.25.12)(tsx@4.23.9)(yaml@2.9.0)) + version: 4.1.10(@types/node@26.1.2)(jsdom@29.1.1)(vite@8.2.1(@types/node@26.1.2)(esbuild@0.25.12)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0)) dev: dependencies: '@kobalte/core': - specifier: 0.13.11 - version: 0.13.11(solid-js@1.9.14) + specifier: 2.0.0-alpha.2 + version: 2.0.0-alpha.2(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14) '@kobalte/solidbase': specifier: workspace:* version: link:.. '@solidjs/router': - specifier: ^0.15.3 - version: 0.15.4(solid-js@1.9.14) - '@solidjs/start': - specifier: https://pkg.pr.new/solidjs/solid-start/@solidjs/start@2080 - version: https://pkg.pr.new/solidjs/solid-start/@solidjs/start@2080(crossws@0.4.10(srvx@0.11.22))(vite@8.2.1(@types/node@26.1.2)(esbuild@0.25.12)(tsx@4.23.9)(yaml@2.9.0)) - nitro: - specifier: 3.0.260311-beta - version: 3.0.260311-beta(lru-cache@11.5.2)(vite@8.2.1(@types/node@26.1.2)(esbuild@0.25.12)(tsx@4.23.9)(yaml@2.9.0)) + specifier: 2.0.0-next.37 + version: 2.0.0-next.37(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(filesystem-routing@0.4.0(supports-color@10.2.2)(vite@8.2.1(@types/node@26.1.2)(esbuild@0.25.12)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0)))(solid-js@2.0.0-rc.14) + '@solidjs/web': + specifier: 2.0.0-rc.14 + version: 2.0.0-rc.14(solid-js@2.0.0-rc.14) solid-js: - specifier: ^1.9.9 - version: 1.9.14 + specifier: 2.0.0-rc.14 + version: 2.0.0-rc.14 devDependencies: '@iconify-json/ri': specifier: ^1.2.5 version: 1.2.10 + '@solidjs/vite-plugin': + specifier: 3.0.0-next.47 + version: 3.0.0-next.47(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14)(supports-color@10.2.2)(vite@8.2.1(@types/node@26.1.2)(esbuild@0.25.12)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0)) cross-env: specifier: ^7.0.3 version: 7.0.3 vite: specifier: ^8.0.0 - version: 8.2.1(@types/node@26.1.2)(esbuild@0.25.12)(tsx@4.23.9)(yaml@2.9.0) + version: 8.2.1(@types/node@26.1.2)(esbuild@0.25.12)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0) docs: dependencies: @@ -276,26 +285,26 @@ importers: version: link:.. '@solid-mediakit/og': specifier: 0.4.1 - version: 0.4.1(@solidjs/meta@0.29.4(solid-js@1.9.14))(@solidjs/start@https://pkg.pr.new/solidjs/solid-start/@solidjs/start@2080(crossws@0.4.10(srvx@0.12.5))(vite@8.0.0(@emnapi/core@1.11.3)(@emnapi/runtime@1.11.3)(@types/node@26.1.2)(esbuild@0.25.12)(tsx@4.23.9)(yaml@2.9.0)))(solid-js@1.9.14) + version: 0.4.1(@solidjs/meta@1.0.0-next.2(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14))(@solidjs/start@1.3.2(solid-js@2.0.0-rc.14)(supports-color@10.2.2)(vinxi@0.5.11(@parcel/watcher@2.6.0)(@types/node@26.1.2)(db0@0.3.4)(debug@4.4.3(supports-color@10.2.2))(ioredis@5.11.1(supports-color@10.2.2))(jiti@2.7.0)(lightningcss@1.33.0)(oxc-parser@0.139.0)(rolldown@1.2.3)(srvx@0.12.5)(supports-color@10.2.2)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0))(vite@8.0.0(@emnapi/core@1.11.3)(@emnapi/runtime@1.11.3)(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0)))(rollup@4.64.0)(solid-js@2.0.0-rc.14)(supports-color@10.2.2) '@solidjs/router': - specifier: ^0.15.3 - version: 0.15.4(solid-js@1.9.14) - '@solidjs/start': - specifier: https://pkg.pr.new/solidjs/solid-start/@solidjs/start@2080 - version: https://pkg.pr.new/solidjs/solid-start/@solidjs/start@2080(crossws@0.4.10(srvx@0.12.5))(vite@8.0.0(@emnapi/core@1.11.3)(@emnapi/runtime@1.11.3)(@types/node@26.1.2)(esbuild@0.25.12)(tsx@4.23.9)(yaml@2.9.0)) - nitro: - specifier: 3.0.260311-beta - version: 3.0.260311-beta(lru-cache@11.5.2)(vite@8.0.0(@emnapi/core@1.11.3)(@emnapi/runtime@1.11.3)(@types/node@26.1.2)(esbuild@0.25.12)(tsx@4.23.9)(yaml@2.9.0)) + specifier: 2.0.0-next.37 + version: 2.0.0-next.37(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(filesystem-routing@0.4.0(supports-color@10.2.2)(vite@8.0.0(@emnapi/core@1.11.3)(@emnapi/runtime@1.11.3)(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0)))(solid-js@2.0.0-rc.14) + '@solidjs/web': + specifier: 2.0.0-rc.14 + version: 2.0.0-rc.14(solid-js@2.0.0-rc.14) solid-js: - specifier: ^1.9.9 - version: 1.9.14 + specifier: 2.0.0-rc.14 + version: 2.0.0-rc.14 vite: specifier: 8.0.0 - version: 8.0.0(@emnapi/core@1.11.3)(@emnapi/runtime@1.11.3)(@types/node@26.1.2)(esbuild@0.25.12)(tsx@4.23.9)(yaml@2.9.0) + version: 8.0.0(@emnapi/core@1.11.3)(@emnapi/runtime@1.11.3)(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0) devDependencies: '@iconify-json/ri': specifier: ^1.2.5 version: 1.2.10 + '@solidjs/vite-plugin': + specifier: 3.0.0-next.47 + version: 3.0.0-next.47(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14)(supports-color@10.2.2)(vite@8.0.0(@emnapi/core@1.11.3)(@emnapi/runtime@1.11.3)(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0)) vite-plugin-arraybuffer: specifier: ^0.0.8 version: 0.0.8 @@ -328,6 +337,10 @@ packages: '@asamuzakjp/nwsapi@2.3.9': resolution: {integrity: sha512-n8GuYSrI9bF7FFZ/SjhwevlHc8xaVlb/7HmHelnc/PZXBD2ZR49NnN9sMMuDdEGPeeRQ5d0hqlSlEpgCX3Wl0Q==} + '@babel/code-frame@7.26.2': + resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} + engines: {node: '>=6.9.0'} + '@babel/code-frame@7.29.7': resolution: {integrity: sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==} engines: {node: '>=6.9.0'} @@ -401,6 +414,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-typescript@7.29.7': + resolution: {integrity: sha512-ngr+82Sh0xMz25TPCZi+nC2iTzjfCdWS2ONXTp/PtSCHCgaCNBpdMqgvJ2ccdLlClVZ7sisIgB914j/JFe+RZA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/template@7.29.7': resolution: {integrity: sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==} engines: {node: '>=6.9.0'} @@ -477,10 +496,9 @@ packages: resolution: {integrity: sha512-ctxtJ/eA+t+6q2++vj5j7FYX3nRu311q1wfYH3xjlLOsczhlhxAg2FWNUXhpGvAw3BWo1xBcvOV6/YLc2r5FJw==} hasBin: true - '@corvu/utils@0.4.2': - resolution: {integrity: sha512-Ox2kYyxy7NoXdKWdHeDEjZxClwzO4SKM8plAaVwmAJPxHMqA0rLOoAsa+hBDwRLpctf+ZRnAd/ykguuJidnaTA==} - peerDependencies: - solid-js: ^1.8 + '@cloudflare/kv-asset-handler@0.4.2': + resolution: {integrity: sha512-SIOD2DxrRRwQ+jgzlXCqoEFiKOFqaPjhnNTGKXSRLvp1HiOvapLaFG2kEr9dYQTYe8rKrd9uvDUzmAITeNyaHQ==} + engines: {node: '>=18.0.0'} '@csstools/color-helpers@6.1.0': resolution: {integrity: sha512-064IFJdjTfUqnjpCVpMOdbr8FLQBhinbZj6yRv2An2E41O/pLEXqfFRWqGq/SxlE5PEUYTlvWsG2r8MswAVvkg==} @@ -522,18 +540,33 @@ packages: resolution: {integrity: sha512-kzyuwOAQnXJNLS9PSyrk0CWk35nWJW/zl/6KvnTBMFK65gm7U1/Z5BqjxeapjZCIhQcM/DsrEmcbRwDyXyXK4A==} engines: {node: '>=14'} + '@deno/shim-deno-test@0.5.0': + resolution: {integrity: sha512-4nMhecpGlPi0cSzT67L+Tm+GOJqvuk8gqHBziqcUQOarnuIax1z96/gJHCSIz2Z0zhxE6Rzwb3IZXPtFh51j+w==} + + '@deno/shim-deno@0.19.2': + resolution: {integrity: sha512-q3VTHl44ad8T2Tw2SpeAvghdGOjlnLPDNO2cpOxwMrBE/PVas6geWpbpIgrM+czOCH0yejp0yi8OaTuB+NU40Q==} + '@docsearch/css@3.9.0': resolution: {integrity: sha512-cQbnVbq0rrBwNAKegIac/t6a8nWoUAn8frnkLFW6YARaRmAQr5/Eoe6Ln2fqkUCZ40KpdrKbpSAmgrkviOxuWA==} '@docsearch/js@4.7.0': resolution: {integrity: sha512-x5lCqu1tetgsJFkjQ6VSocbHldsRkGEgwg5N98Vx21sq/V5wcmj4u226PY9k+TEpIgQ772zlYbPLTPicWyGnpA==} + '@emnapi/core@1.11.1': + resolution: {integrity: sha512-RSvbQmHzdKzNsLYa/wHrbc3KN4sYLKAdPZxqiM2HATqv/SBk2/ENSHpvXGaLOMcsAyz0poEGqkmmKYG3OWiJEQ==} + '@emnapi/core@1.11.3': resolution: {integrity: sha512-zLpS5asjEb7lq8jYLq37N6XKaE41DIexlY1rF/z4/tIl3wo13Sqm28fRyfIsKZD+NZ8mM5RoKkpW/rBcuoSZSg==} + '@emnapi/runtime@1.11.1': + resolution: {integrity: sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw==} + '@emnapi/runtime@1.11.3': resolution: {integrity: sha512-Xz4Tpyki7XyrpbUK1jR1AhdAdaXyhhY4lZ3neLodmhpuWfy2PAQN5B46sAiU4liOXGLkHypn/qU+jvfWSCYYLA==} + '@emnapi/wasi-threads@1.2.2': + resolution: {integrity: sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA==} + '@emnapi/wasi-threads@1.2.3': resolution: {integrity: sha512-ELEBe8PsLvvJ6QMr0zLt8ffvOHW/dc1m3CEzNMg7aJUv3bMaoDtw2TXyDAwkYBuroxxuHEwhRTLJSe5sya547g==} @@ -543,12 +576,6 @@ packages: cpu: [ppc64] os: [aix] - '@esbuild/aix-ppc64@0.27.7': - resolution: {integrity: sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [aix] - '@esbuild/aix-ppc64@0.28.1': resolution: {integrity: sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ==} engines: {node: '>=18'} @@ -561,12 +588,6 @@ packages: cpu: [arm64] os: [android] - '@esbuild/android-arm64@0.27.7': - resolution: {integrity: sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ==} - engines: {node: '>=18'} - cpu: [arm64] - os: [android] - '@esbuild/android-arm64@0.28.1': resolution: {integrity: sha512-34EGEbCIAgosYz6goLcopX6Mo7NyGv9tfwEM2/7Ce2VcVRk568iSvniGWcUXIy7wEDR1wzolcxcriFVrWYcwBg==} engines: {node: '>=18'} @@ -579,12 +600,6 @@ packages: cpu: [arm] os: [android] - '@esbuild/android-arm@0.27.7': - resolution: {integrity: sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ==} - engines: {node: '>=18'} - cpu: [arm] - os: [android] - '@esbuild/android-arm@0.28.1': resolution: {integrity: sha512-0k2F129Xdio1TdJfzJ8sy1Q47vUD2NnwdhiAf7drUN1EBTfPf4hsFCtmMgu/6m8JSzsBrlmVjudMBQqOfG8usQ==} engines: {node: '>=18'} @@ -597,12 +612,6 @@ packages: cpu: [x64] os: [android] - '@esbuild/android-x64@0.27.7': - resolution: {integrity: sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg==} - engines: {node: '>=18'} - cpu: [x64] - os: [android] - '@esbuild/android-x64@0.28.1': resolution: {integrity: sha512-dbwY7ltSMDWsRatcRpCnES4F+im88OCUgGZjy52shC7GqHRE/cYlxNbB4Z4UpJswpcc4Qxd2oE/ufM0p61IKng==} engines: {node: '>=18'} @@ -615,12 +624,6 @@ packages: cpu: [arm64] os: [darwin] - '@esbuild/darwin-arm64@0.27.7': - resolution: {integrity: sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw==} - engines: {node: '>=18'} - cpu: [arm64] - os: [darwin] - '@esbuild/darwin-arm64@0.28.1': resolution: {integrity: sha512-TZbWkQY7kvTAXbXUT7uVACR5cMHsDiSz9z7ZKAX/RTq/WJEk3QyRr0wZpNhBDX+/0CtdqUIJlOiodQcta6tY3Q==} engines: {node: '>=18'} @@ -633,12 +636,6 @@ packages: cpu: [x64] os: [darwin] - '@esbuild/darwin-x64@0.27.7': - resolution: {integrity: sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ==} - engines: {node: '>=18'} - cpu: [x64] - os: [darwin] - '@esbuild/darwin-x64@0.28.1': resolution: {integrity: sha512-zfdzgK9ACBNZLI/CyHTOx81SyNbM6YXn7rxSgX97VjyiPl9W1i4Ka4fgKECEoFCKGpvBj5qArWIGgQjOwkgskQ==} engines: {node: '>=18'} @@ -651,12 +648,6 @@ packages: cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-arm64@0.27.7': - resolution: {integrity: sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w==} - engines: {node: '>=18'} - cpu: [arm64] - os: [freebsd] - '@esbuild/freebsd-arm64@0.28.1': resolution: {integrity: sha512-wG2EA8ENdEI0qhkSZMjfqrdY+ziCYCPMmtZjjIwOmXFjmyzEHn+UUxk5of+SYsjtfs3VpnlC7QLzSI5hY/rOAw==} engines: {node: '>=18'} @@ -669,12 +660,6 @@ packages: cpu: [x64] os: [freebsd] - '@esbuild/freebsd-x64@0.27.7': - resolution: {integrity: sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ==} - engines: {node: '>=18'} - cpu: [x64] - os: [freebsd] - '@esbuild/freebsd-x64@0.28.1': resolution: {integrity: sha512-i7dZ9vQgnvSCzi/rYCXNgtF/U+eKZNJBzu3eTQbRgHnM7tNSizLOkRFAl3qzVc/Op/u5YkHHa4pf/3DOYHthLQ==} engines: {node: '>=18'} @@ -687,12 +672,6 @@ packages: cpu: [arm64] os: [linux] - '@esbuild/linux-arm64@0.27.7': - resolution: {integrity: sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A==} - engines: {node: '>=18'} - cpu: [arm64] - os: [linux] - '@esbuild/linux-arm64@0.28.1': resolution: {integrity: sha512-yHs+0uc8+nvEAfAfxrWQKK5peSNzBc4PegcMO0EJ2hT71uA7vB8Ihg2e77R2P7SG5uYjPbHlLLmve4LLLRCf0g==} engines: {node: '>=18'} @@ -705,12 +684,6 @@ packages: cpu: [arm] os: [linux] - '@esbuild/linux-arm@0.27.7': - resolution: {integrity: sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA==} - engines: {node: '>=18'} - cpu: [arm] - os: [linux] - '@esbuild/linux-arm@0.28.1': resolution: {integrity: sha512-qVXBOHQS+d5Y722GwJzJUtOLlX7km3CraOaGormF1pDtPd2C/l1SHRPgjLunLGe51Sh5YYWKMFDyV4SxgMQYTQ==} engines: {node: '>=18'} @@ -723,12 +696,6 @@ packages: cpu: [ia32] os: [linux] - '@esbuild/linux-ia32@0.27.7': - resolution: {integrity: sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg==} - engines: {node: '>=18'} - cpu: [ia32] - os: [linux] - '@esbuild/linux-ia32@0.28.1': resolution: {integrity: sha512-d1z4ZuP0ajrfz/FhGT4vv278rX8KnPPJx8i5+AtK7TYbx9Le9F1hyzurZpkEyjkGa9dUGhQow4C1NmeGvqxN2w==} engines: {node: '>=18'} @@ -741,12 +708,6 @@ packages: cpu: [loong64] os: [linux] - '@esbuild/linux-loong64@0.27.7': - resolution: {integrity: sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q==} - engines: {node: '>=18'} - cpu: [loong64] - os: [linux] - '@esbuild/linux-loong64@0.28.1': resolution: {integrity: sha512-M5sRjUVZrkm1OAPR3dlOYzNmN+loZKGVi1VUQGrwuqLcbR6qeAz+famMhjASeH3YVKvZz+zT1jlh/keC3Rj/lg==} engines: {node: '>=18'} @@ -759,12 +720,6 @@ packages: cpu: [mips64el] os: [linux] - '@esbuild/linux-mips64el@0.27.7': - resolution: {integrity: sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw==} - engines: {node: '>=18'} - cpu: [mips64el] - os: [linux] - '@esbuild/linux-mips64el@0.28.1': resolution: {integrity: sha512-mRObBZeHh2OxcBFPWE/FjylkRgZdYuiTR3vaTozquCGOH14iP9oN4x4Ge81CoIDYQrXmIxpFumJBu5MtZpnQJQ==} engines: {node: '>=18'} @@ -777,12 +732,6 @@ packages: cpu: [ppc64] os: [linux] - '@esbuild/linux-ppc64@0.27.7': - resolution: {integrity: sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [linux] - '@esbuild/linux-ppc64@0.28.1': resolution: {integrity: sha512-slScBsMAb3GFDcdrCgLwZtPYRoH2H/youv10QiZyRjmsP48fznoveWytSgCI/R0ZcUgpc0ZhIUEx6LHts8yrfQ==} engines: {node: '>=18'} @@ -795,12 +744,6 @@ packages: cpu: [riscv64] os: [linux] - '@esbuild/linux-riscv64@0.27.7': - resolution: {integrity: sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ==} - engines: {node: '>=18'} - cpu: [riscv64] - os: [linux] - '@esbuild/linux-riscv64@0.28.1': resolution: {integrity: sha512-kw0owk1o0GFETUJyW0jc0G4Yzs0BHZn0JDZ8JRT088vjJYX777BAs1fDGxAC+q831qOs2DTC96mNsG2opdfyyQ==} engines: {node: '>=18'} @@ -813,12 +756,6 @@ packages: cpu: [s390x] os: [linux] - '@esbuild/linux-s390x@0.27.7': - resolution: {integrity: sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw==} - engines: {node: '>=18'} - cpu: [s390x] - os: [linux] - '@esbuild/linux-s390x@0.28.1': resolution: {integrity: sha512-/lAIjX8aYFRByhh6L5rYtPEDRqa9de/4V/juOXcta5frjvzXO4/sqEtyytse0g3zZFuWu5cDN0MkLz2qRDD2Ag==} engines: {node: '>=18'} @@ -831,12 +768,6 @@ packages: cpu: [x64] os: [linux] - '@esbuild/linux-x64@0.27.7': - resolution: {integrity: sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA==} - engines: {node: '>=18'} - cpu: [x64] - os: [linux] - '@esbuild/linux-x64@0.28.1': resolution: {integrity: sha512-u/anNYF2mmVOEDwLtnQ1wOr3EZ9sTNGLWrsYGYwHWzGA3Si84IOkHXlbWTD1NB+9/1lcnweYKO54uhxZydNzfA==} engines: {node: '>=18'} @@ -849,12 +780,6 @@ packages: cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-arm64@0.27.7': - resolution: {integrity: sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w==} - engines: {node: '>=18'} - cpu: [arm64] - os: [netbsd] - '@esbuild/netbsd-arm64@0.28.1': resolution: {integrity: sha512-oks0DYbLwWMmaakTsCb+zL4E+aHRVLom9IJZOAthMQEPiQmydXHkziYEsGYRx0uNV/IjEKGAV941JzH02pflqw==} engines: {node: '>=18'} @@ -867,12 +792,6 @@ packages: cpu: [x64] os: [netbsd] - '@esbuild/netbsd-x64@0.27.7': - resolution: {integrity: sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw==} - engines: {node: '>=18'} - cpu: [x64] - os: [netbsd] - '@esbuild/netbsd-x64@0.28.1': resolution: {integrity: sha512-aeL6lAnN89Hz43Mlh1G8ARasbuoYvSITDEx0tHh5b7jJnHcssqgjy9Yx430GDpmCa6OyrKoS0aNRjKundRizGg==} engines: {node: '>=18'} @@ -885,12 +804,6 @@ packages: cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-arm64@0.27.7': - resolution: {integrity: sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A==} - engines: {node: '>=18'} - cpu: [arm64] - os: [openbsd] - '@esbuild/openbsd-arm64@0.28.1': resolution: {integrity: sha512-MEFJe5C3R8pwXdZ5Y21oo6m7ePiS0d9pWucn99O/wvyJZChoIQKrQDxKrGeW8F5+T0okTHesAmDeiHDTIq0V/Q==} engines: {node: '>=18'} @@ -903,12 +816,6 @@ packages: cpu: [x64] os: [openbsd] - '@esbuild/openbsd-x64@0.27.7': - resolution: {integrity: sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg==} - engines: {node: '>=18'} - cpu: [x64] - os: [openbsd] - '@esbuild/openbsd-x64@0.28.1': resolution: {integrity: sha512-i/ZLIOafE0Z8cI/XANJAixoJL/uRAoS2xOA3rb0xN+KK0K177cMAsQYkzHtBrtMXAKuAc7HGgcWiZ/sRC1Nxgw==} engines: {node: '>=18'} @@ -921,12 +828,6 @@ packages: cpu: [arm64] os: [openharmony] - '@esbuild/openharmony-arm64@0.27.7': - resolution: {integrity: sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw==} - engines: {node: '>=18'} - cpu: [arm64] - os: [openharmony] - '@esbuild/openharmony-arm64@0.28.1': resolution: {integrity: sha512-ge+Z7EXFNt2BO1oAMsVpiQ8EwndV9i1xXerAeTIK7AtPs3bKFXQM7nlRxDSIUIMeueR1CNXxqztLzdNeReKBJg==} engines: {node: '>=18'} @@ -939,12 +840,6 @@ packages: cpu: [x64] os: [sunos] - '@esbuild/sunos-x64@0.27.7': - resolution: {integrity: sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA==} - engines: {node: '>=18'} - cpu: [x64] - os: [sunos] - '@esbuild/sunos-x64@0.28.1': resolution: {integrity: sha512-BEjgtECkL3vY+SaSQ6nzVfiALUeFxpawyp8Jmf5PtYhf1Ug40N1h/hxlhts+f1FvSvarEigdxS3BlSMI2PJLcQ==} engines: {node: '>=18'} @@ -957,12 +852,6 @@ packages: cpu: [arm64] os: [win32] - '@esbuild/win32-arm64@0.27.7': - resolution: {integrity: sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA==} - engines: {node: '>=18'} - cpu: [arm64] - os: [win32] - '@esbuild/win32-arm64@0.28.1': resolution: {integrity: sha512-lCv9eK/H6ZJWbE7bh2nw54CZ9M2nupBxJcTsdk/QQnWkdSjKGuxmmH8/GWrlT1eMmZfn4dGcCjRte397WqfQXA==} engines: {node: '>=18'} @@ -975,12 +864,6 @@ packages: cpu: [ia32] os: [win32] - '@esbuild/win32-ia32@0.27.7': - resolution: {integrity: sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw==} - engines: {node: '>=18'} - cpu: [ia32] - os: [win32] - '@esbuild/win32-ia32@0.28.1': resolution: {integrity: sha512-zvb/mB2bSCoJOpoCBgYKKpX6YM6mJBlBUVUtVj41DlZJVEB6/0CKlRYxP5wWl1C1ILiCoAU5wZZ4q1P3qeS6Eg==} engines: {node: '>=18'} @@ -993,12 +876,6 @@ packages: cpu: [x64] os: [win32] - '@esbuild/win32-x64@0.27.7': - resolution: {integrity: sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg==} - engines: {node: '>=18'} - cpu: [x64] - os: [win32] - '@esbuild/win32-x64@0.28.1': resolution: {integrity: sha512-bm4Mowrv+GXMlpWX++EcXw/iLyd1o3+bJkC2DkWXYVvgZCqD/bSj9ctZeAMC3cIxgjRVR2Dufaiu4YPxr5gW1A==} engines: {node: '>=18'} @@ -1059,12 +936,20 @@ packages: '@iconify/utils@3.1.4': resolution: {integrity: sha512-b1S7B1k9ohZ+iNTi2ATxbRYG9fTrJmUT0rc46bvVnNxqNRGW7dyo/vRREwyniI5IRN2RSJHDcm+s3BjWrSAjHw==} - '@internationalized/date@3.12.3': - resolution: {integrity: sha512-fuLX+3ZKLsxI73y8b01EG/WjHb6gE6weCqlfawPO27kBWGMh9G1yH6Csv1uU7/cac9H2GHmOMt6CjmuQ1aia4Q==} - '@internationalized/number@3.6.7': resolution: {integrity: sha512-3ji1fcrT+FPAK86UqEhB/psHixYo6niWPJtt7+qRaYFynt/BaJG8GhAPimtWUpEiVSTq8ZM8L5psMxGquiB/Vg==} + '@ioredis/commands@1.10.0': + resolution: {integrity: sha512-UmeW7z4LfctwoQ5wkhVzgq8tXkreED2xZGpX+Bg+zA+WJFZCT6c062AfCK/Dfk81xZnnwdhJCUMkitihRaoC2Q==} + + '@isaacs/cliui@8.0.2': + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + + '@isaacs/fs-minipass@4.0.1': + resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==} + engines: {node: '>=18.0.0'} + '@jridgewell/gen-mapping@0.3.13': resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} @@ -1075,25 +960,45 @@ packages: resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} + '@jridgewell/source-map@0.3.11': + resolution: {integrity: sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==} + '@jridgewell/sourcemap-codec@1.5.5': resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} + '@jridgewell/sourcemap-codec@1.6.0': + resolution: {integrity: sha512-T7jf+5zgsZHwNJ4lvQ7/aezbyk0nNX+zJVWpmHA7VYsEx7a7qr5Rg5IbtJFqkgze5Y2sruq1RUY8Q837Od7iFw==} + '@jridgewell/trace-mapping@0.3.31': resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} - '@kobalte/core@0.13.11': - resolution: {integrity: sha512-hK7TYpdib/XDb/r/4XDBFaO9O+3ZHz4ZWryV4/3BfES+tSQVgg2IJupDnztKXB0BqbSRy/aWlHKw1SPtNPYCFQ==} + '@kobalte/core@2.0.0-alpha.2': + resolution: {integrity: sha512-XondeC9sn3zMeo/3CxNnV6MAjCLsw/euikAzW1W5R1eyAKki8er2PrsA0ihlVuYsXBZvnHm2HMiAVDdmC4VdHg==} peerDependencies: - solid-js: ^1.8.15 + '@solidjs/web': 2.0.0-rc.3 + solid-js: 2.0.0-rc.3 - '@kobalte/utils@0.9.2': - resolution: {integrity: sha512-jRVXr+zsVHxzDXRoh+CDeXzvCsFJ6uiHhqqNQ26Cw9ZsZ3D6nqPUBt1gGVtj2ZPmRL3a9Uk1v8D1aJ8/I12Dow==} + '@kobalte/utils@2.0.0-alpha.0': + resolution: {integrity: sha512-LtMNLEDDJICPJXZiy5yQL23cBfbYSqzT02ItXky9sAaiLfVlasvguE5MmC/9BxC0FnwKrTDU1R3ysM18+TGd0A==} peerDependencies: - solid-js: ^1.8.8 + '@solidjs/web': 2.0.0-rc.0 + solid-js: 2.0.0-rc.0 + + '@mapbox/node-pre-gyp@2.0.3': + resolution: {integrity: sha512-uwPAhccfFJlsfCxMYTwOdVfOz3xqyj8xYL3zJj8f0pb30tLohnnFPhLuqp4/qoEz8sNxe4SESZedcBojRefIzg==} + engines: {node: '>=18'} + hasBin: true '@mdx-js/mdx@3.1.1': resolution: {integrity: sha512-f6ZO2ifpwAQIpzGWaBQT2TXxPv6z3RBzQKpVftEWN78Vl/YweF1uwussDx8ECAXVtr3Rs89fKyG9YlzUs9DyGQ==} + '@napi-rs/lzma-linux-x64-gnu@1.5.1': + resolution: {integrity: sha512-oTXEIha4SsuXdTA4Iyskj0kpdx2yVXdhd75c2v3xGrHFfVMsbhTPZU/nMPL4sWKo4pBHm3aucLaqGlF696dTyQ==} + engines: {node: ^22.20 || ^24.12 || >=25} + cpu: [x64] + os: [linux] + libc: [glibc] + '@napi-rs/wasm-runtime@1.2.2': resolution: {integrity: sha512-JfB4kuJQjaoHuCTseIINHtHWeJnvgEcxjwA5t/Y00ZgaOO1Crz3fjT/p8kT28zA/Caz7oiUMn3d6H2yOVCVwuw==} engines: {node: ^20.19.0 || ^22.13.0 || >=23.5.0} @@ -1143,213 +1048,513 @@ packages: '@octokit/types@14.1.0': resolution: {integrity: sha512-1y6DgTy8Jomcpu33N+p5w58l6xyt55Ar2I91RPiIA0xCJBXyUAhXCcmZaDWSANiha7R9a6qJJ2CRomGPZ6f46g==} - '@oxc-project/runtime@0.115.0': - resolution: {integrity: sha512-Rg8Wlt5dCbXhQnsXPrkOjL1DTSvXLgb2R/KYfnf1/K+R0k6UMLEmbQXPM+kwrWqSmWA2t0B1EtHy2/3zikQpvQ==} - engines: {node: ^20.19.0 || >=22.12.0} - - '@oxc-project/types@0.115.0': - resolution: {integrity: sha512-4n91DKnebUS4yjUHl2g3/b2T+IUdCfmoZGhmwsovZCDaJSs+QkVAM+0AqqTxHSsHfeiMuueT75cZaZcT/m0pSw==} - - '@oxc-project/types@0.143.0': - resolution: {integrity: sha512-u6JZdLBTLotrNC9Vd6vPssINdzcCzleKAH6EJKImQb7GtYvX5keN2dxkoK44stCc4tffE6QQRtZTXVSzsLUlWA==} - - '@polka/url@1.0.0-next.29': - resolution: {integrity: sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==} - - '@resvg/resvg-wasm@2.4.0': - resolution: {integrity: sha512-C7c51Nn4yTxXFKvgh2txJFNweaVcfUPQxwEUFw4aWsCmfiBDJsTSwviIF8EcwjQ6k8bPyMWCl1vw4BdxE569Cg==} - engines: {node: '>= 10'} - - '@rolldown/binding-android-arm64@1.0.0-rc.9': - resolution: {integrity: sha512-lcJL0bN5hpgJfSIz/8PIf02irmyL43P+j1pTCfbD1DbLkmGRuFIA4DD3B3ZOvGqG0XiVvRznbKtN0COQVaKUTg==} + '@oxc-parser/binding-android-arm-eabi@0.139.0': + resolution: {integrity: sha512-22EsXTA3Vc7OvrF4bfT48PFln2UbxkVgrp/Tm32qLw76Dv7SmcInfClJe6yPYamnli6HiqasnESZ5ezN+X4ybg==} engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] + cpu: [arm] os: [android] - '@rolldown/binding-android-arm64@1.2.3': - resolution: {integrity: sha512-zrJtHDcaZJ1Fp7xf4hNl+7seH9Cn/N5TwLYkhgXREtBwAd/jaqW3uqeHxpDugJLVICWg4eW44kOQEGJ1r6jCGw==} + '@oxc-parser/binding-android-arm64@0.139.0': + resolution: {integrity: sha512-uASQkZV+CUQ6xXvoMzDQyfhd8OMusdv2FyCPfAi5ZDYptesapJlw7erhpGi1Lc+U8QjQV2JUrIh7d/3su2LzmQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@rolldown/binding-darwin-arm64@1.0.0-rc.9': - resolution: {integrity: sha512-J7Zk3kLYFsLtuH6U+F4pS2sYVzac0qkjcO5QxHS7OS7yZu2LRs+IXo+uvJ/mvpyUljDJ3LROZPoQfgBIpCMhdQ==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [darwin] - - '@rolldown/binding-darwin-arm64@1.2.3': - resolution: {integrity: sha512-ieIiibVCp0tX7TLu2cafoNPv8wJyYi01ekXpbf8q2j7F4rGAhhXb/eQh7ge9DRBY78GwmRQtvjZDux7EDbA8kA==} + '@oxc-parser/binding-darwin-arm64@0.139.0': + resolution: {integrity: sha512-vuQOv2WF5pZCkdSPEExul98o853M3MCR24DpWsGrUoPJu5KcnGE34kLXY2yFwBwZwT+eN1x40Tt4q6ZzlEdNUA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@rolldown/binding-darwin-x64@1.0.0-rc.9': - resolution: {integrity: sha512-iwtmmghy8nhfRGeNAIltcNXzD0QMNaaA5U/NyZc1Ia4bxrzFByNMDoppoC+hl7cDiUq5/1CnFthpT9n+UtfFyg==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [darwin] - - '@rolldown/binding-darwin-x64@1.2.3': - resolution: {integrity: sha512-Zh9tCon19eDXJoihx0rqKhMUlMYqzwj3aPsSuHmI4RWZh62dWUL+DJN4C5YQya5TcQBJU/Fe8+rY0jhXTQITqA==} + '@oxc-parser/binding-darwin-x64@0.139.0': + resolution: {integrity: sha512-zxZB8ChS+7XactZhcyxQ292P/DNiiBaPPKYiVUlb3RC0V/hme5bokNubjcmEmbW9uTfmqLTpveAdkbe66H3pGg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@rolldown/binding-freebsd-x64@1.0.0-rc.9': - resolution: {integrity: sha512-DLFYI78SCiZr5VvdEplsVC2Vx53lnA4/Ga5C65iyldMVaErr86aiqCoNBLl92PXPfDtUYjUh+xFFor40ueNs4Q==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [freebsd] - - '@rolldown/binding-freebsd-x64@1.2.3': - resolution: {integrity: sha512-nGbJWewA1wrXXZiQhjAT5rhibGfns5ZNkDVqxsO6zJ3f3YvpoDNNmGMSbbhLuXKjNScaBJVOAboztAWVespQMg==} + '@oxc-parser/binding-freebsd-x64@0.139.0': + resolution: {integrity: sha512-iw2MsoCPBQwdJqywRAGsF1jEAcGoZ+DeG2LVzt5pdUvRHqajsMF46BH0rHiWoWtMwcMSia+oQYga7fHo7u7Bcw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.9': - resolution: {integrity: sha512-CsjTmTwd0Hri6iTw/DRMK7kOZ7FwAkrO4h8YWKoX/kcj833e4coqo2wzIFywtch/8Eb5enQ/lwLM7w6JX1W5RQ==} + '@oxc-parser/binding-linux-arm-gnueabihf@0.139.0': + resolution: {integrity: sha512-SwjD/k3Y5bwGJWOH313VyaDrAuaYg1Pe+4AAXCgUKvSO5IHkj+mZ0oFcOWmB5nTuOM3uwdT+leL8h4OnFlI5hw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@rolldown/binding-linux-arm-gnueabihf@1.2.3': - resolution: {integrity: sha512-QNniJr5Kml0kDEB98jiDOJjXNroxIIi0IXIbdYzY26Xt1pVbeP62+KnoIZLwirOymX/0jDk/2gI/bNUv7A7OIw==} + '@oxc-parser/binding-linux-arm-musleabihf@0.139.0': + resolution: {integrity: sha512-qbeygDkcvailKFhphb2YGMMXsaZIynHlPtoOrcx4NZB/tRbUKraCCMbw8dPeFtEKasfS2qWh1VnReY+Lcys1zA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.9': - resolution: {integrity: sha512-2x9O2JbSPxpxMDhP9Z74mahAStibTlrBMW0520+epJH5sac7/LwZW5Bmg/E6CXuEF53JJFW509uP+lSedaUNxg==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [linux] - libc: [glibc] - - '@rolldown/binding-linux-arm64-gnu@1.2.3': - resolution: {integrity: sha512-TkqEAcmmvH3I/q4114NB4RVt6241Dao48pF45uLcFGrwAaIn0iITgTAKP/dLjbN0R4buJjGb91+UHSoFmpgIWw==} + '@oxc-parser/binding-linux-arm64-gnu@0.139.0': + resolution: {integrity: sha512-SrlL02KeImKlvx/9rCeopOLH7qKI3rqKKEguK6KBwVwEGLhV/A47dW4DNigf6/LFhrwoovaiayEQryjYAI86dQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [glibc] - '@rolldown/binding-linux-arm64-musl@1.0.0-rc.9': - resolution: {integrity: sha512-JA1QRW31ogheAIRhIg9tjMfsYbglXXYGNPLdPEYrwFxdbkQCAzvpSCSHCDWNl4hTtrol8WeboCSEpjdZK8qrCg==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [linux] - libc: [musl] - - '@rolldown/binding-linux-arm64-musl@1.2.3': - resolution: {integrity: sha512-NHqjnxpsndf4MPymxteFAWHHfkTL8HjWh1KB7z23ofZ6QO2euONuxDXjat69dKZRALnGypg8k8SsK8vZJoXv1Q==} + '@oxc-parser/binding-linux-arm64-musl@0.139.0': + resolution: {integrity: sha512-u9e884ChAVRmIZ1jr/m46S96FoDQnruFjISLi4Y0i6Wu/JUUmIiw7+umLyXILJsPfUuqnN5BJLe23t07+Y6+IA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [musl] - '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.9': - resolution: {integrity: sha512-aOKU9dJheda8Kj8Y3w9gnt9QFOO+qKPAl8SWd7JPHP+Cu0EuDAE5wokQubLzIDQWg2myXq2XhTpOVS07qqvT+w==} + '@oxc-parser/binding-linux-ppc64-gnu@0.139.0': + resolution: {integrity: sha512-Z9tU2b3GJfAXOdirQmz4gZQkQkVjy53i77gf91l0733MQKa/qtk73KQQE2GzDtMqim+HyjpzvemmqzBtH2IJUA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] libc: [glibc] - '@rolldown/binding-linux-ppc64-gnu@1.2.3': - resolution: {integrity: sha512-6tbrbwfz5GB9DQ4Jwo6hy9v+vR31xZlvzZ6n5Xut6Hhx5PvrA9q/HsK8KMaYQp063iqZGXwNvZtYNLD7EM/x0w==} + '@oxc-parser/binding-linux-riscv64-gnu@0.139.0': + resolution: {integrity: sha512-RyUbr7hzPK84YDWKs77PRYk9VBwWbsbuYsQzQWiSmLnARXTg2zntLPGfCH/1wpfUYdmGkp/6SsqTXSsYdw9Jgw==} engines: {node: ^20.19.0 || >=22.12.0} - cpu: [ppc64] + cpu: [riscv64] os: [linux] libc: [glibc] - '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.9': - resolution: {integrity: sha512-OalO94fqj7IWRn3VdXWty75jC5dk4C197AWEuMhIpvVv2lw9fiPhud0+bW2ctCxb3YoBZor71QHbY+9/WToadA==} + '@oxc-parser/binding-linux-riscv64-musl@0.139.0': + resolution: {integrity: sha512-dcQhjtcDvtR8BgkUpt03Yz5SzxdzYvTigenIJOEsiSX6G2t6yybEMxGWjp0dOuYGror0BaqcZfTyXR58amCEig==} engines: {node: ^20.19.0 || >=22.12.0} - cpu: [s390x] + cpu: [riscv64] os: [linux] - libc: [glibc] + libc: [musl] - '@rolldown/binding-linux-s390x-gnu@1.2.3': - resolution: {integrity: sha512-oyuXxXmoZHjXC917IAPFAAv4wWAa0cM9afk8nx1+9/jNNOX1uPf8yDA6p7G0RypOfw/X0PQt5IfoquY1um+zSg==} + '@oxc-parser/binding-linux-s390x-gnu@0.139.0': + resolution: {integrity: sha512-iuGrxysV4rGUymdKpn7bgZQ6Vix8Bi/6D/rp71HYIzphq6NKrsBhsGOYsSZte+uBFL43tXh7Xr7TM72sGliJNA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] libc: [glibc] - '@rolldown/binding-linux-x64-gnu@1.0.0-rc.9': - resolution: {integrity: sha512-cVEl1vZtBsBZna3YMjGXNvnYYrOJ7RzuWvZU0ffvJUexWkukMaDuGhUXn0rjnV0ptzGVkvc+vW9Yqy6h8YX4pg==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [linux] - libc: [glibc] - - '@rolldown/binding-linux-x64-gnu@1.2.3': - resolution: {integrity: sha512-TytMwF2KVGqP2tgd0I1OY0PAv78dZRAYcF5ssDzjM34SUXCED3uXvSd5+lHoC0bTD6eEdFz7LdQNCO1y0oVk9w==} + '@oxc-parser/binding-linux-x64-gnu@0.139.0': + resolution: {integrity: sha512-NxJdZZyaa2JLLvNfH/iJQXfCNfKcPMylwY4ObMpBVmW4Nq+RyUpVVQXrMMelcQ6rwx3nuhF1Iga8n+eoAKGCIA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [glibc] - '@rolldown/binding-linux-x64-musl@1.0.0-rc.9': - resolution: {integrity: sha512-UzYnKCIIc4heAKgI4PZ3dfBGUZefGCJ1TPDuLHoCzgrMYPb5Rv6TLFuYtyM4rWyHM7hymNdsg5ik2C+UD9VDbA==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [linux] - libc: [musl] - - '@rolldown/binding-linux-x64-musl@1.2.3': - resolution: {integrity: sha512-/E9m3qstrJFVPoULV25mVQblSNExY2+kBsYe4sy0Tn0yOOgJ8wZbZt3KnRbF/XeU2Gl1STKUQnDNTqhIE5MD4A==} + '@oxc-parser/binding-linux-x64-musl@0.139.0': + resolution: {integrity: sha512-ePxBvvtzISmSsJ0RIj8FNikSCn58i1jtccj7XR4U9Li4iSzhkFyYlnJ51cQTUwkairz8WMTD4SpKoot8RyTnQA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [musl] - '@rolldown/binding-openharmony-arm64@1.0.0-rc.9': - resolution: {integrity: sha512-+6zoiF+RRyf5cdlFQP7nm58mq7+/2PFaY2DNQeD4B87N36JzfF/l9mdBkkmTvSYcYPE8tMh/o3cRlsx1ldLfog==} + '@oxc-parser/binding-openharmony-arm64@0.139.0': + resolution: {integrity: sha512-b/c2+mPXMOxG5x16n8yf9cjor/ntQQScmYnSmLEWIWJ4rfXd5dokMxx0kliSLA+YAGq6DD3K9BWi+aFXHiiV1w==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] - '@rolldown/binding-openharmony-arm64@1.2.3': - resolution: {integrity: sha512-Kr0OcsoQI816i6HOl3vFHpd1K0eZyh76zgfj4c1nTyaTsd5r2Mj1lwM4R90y/qaCfmTn9eHy0SKwi98eitRxug==} + '@oxc-parser/binding-wasm32-wasi@0.139.0': + resolution: {integrity: sha512-rNU0pO+/CVPC2qZ+xtX5R2cOje9Q75q3UkfgwUCPlplqxMv6Iffd5tMPGVMCLGnPINxPlmi0WPsW94HltbYvfQ==} engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [openharmony] - - '@rolldown/binding-wasm32-wasi@1.0.0-rc.9': - resolution: {integrity: sha512-rgFN6sA/dyebil3YTlL2evvi/M+ivhfnyxec7AccTpRPccno/rPoNlqybEZQBkcbZu8Hy+eqNJCqfBR8P7Pg8g==} - engines: {node: '>=14.0.0'} cpu: [wasm32] - '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.9': - resolution: {integrity: sha512-lHVNUG/8nlF1IQk1C0Ci574qKYyty2goMiPlRqkC5R+3LkXDkL5Dhx8ytbxq35m+pkHVIvIxviD+TWLdfeuadA==} + '@oxc-parser/binding-win32-arm64-msvc@0.139.0': + resolution: {integrity: sha512-JPEmfncZfqAFiGsAN6UZSMIBqnG8wn8buywRacFOWjP+9dZwcs03SsBp4tmyjM/4l/VoH/IuThrW1Jof3OyQUw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@rolldown/binding-win32-arm64-msvc@1.2.3': - resolution: {integrity: sha512-hOtMwTqnME+/gJcH/PCZ0wn0zPUjiWOgkHpxbSJpfGKMezHltx1S7/k1SitzVa7Ww2cqrDDaFbZEhcJZO8o+Jw==} + '@oxc-parser/binding-win32-ia32-msvc@0.139.0': + resolution: {integrity: sha512-c06dWBwEnFHof5JN7T9/ts23uATXS9czPEBO60d4xnjH2Am29Bo7OGKdVHRmcWQnw0OBxlTg9fIEXAvtcwOBfw==} engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] + cpu: [ia32] os: [win32] - '@rolldown/binding-win32-x64-msvc@1.0.0-rc.9': - resolution: {integrity: sha512-G0oA4+w1iY5AGi5HcDTxWsoxF509hrFIPB2rduV5aDqS9FtDg1CAfa7V34qImbjfhIcA8C+RekocJZA96EarwQ==} + '@oxc-parser/binding-win32-x64-msvc@0.139.0': + resolution: {integrity: sha512-bI3/44urQjW/D495JPXe+c9d+4Q+ONi3DvDNnzwRZYTWHZ3hAlFdmirYK4mzhTfCZiAly02EbMYir7QGU+9O2Q==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] - '@rolldown/binding-win32-x64-msvc@1.2.3': - resolution: {integrity: sha512-ekcqMMkI2PlhYnfzQnB/cEdYUVVJViWvoUyLrbzgDoi3Snfc1mVBwdnc306ufA5ejy8JSPjT2RlW1nQSjW7efg==} - engines: {node: ^20.19.0 || >=22.12.0} + '@oxc-project/runtime@0.115.0': + resolution: {integrity: sha512-Rg8Wlt5dCbXhQnsXPrkOjL1DTSvXLgb2R/KYfnf1/K+R0k6UMLEmbQXPM+kwrWqSmWA2t0B1EtHy2/3zikQpvQ==} + engines: {node: ^20.19.0 || >=22.12.0} + + '@oxc-project/types@0.115.0': + resolution: {integrity: sha512-4n91DKnebUS4yjUHl2g3/b2T+IUdCfmoZGhmwsovZCDaJSs+QkVAM+0AqqTxHSsHfeiMuueT75cZaZcT/m0pSw==} + + '@oxc-project/types@0.139.0': + resolution: {integrity: sha512-r9gHphtCs+1M7J0pw6Sn/hh/Wpa/iQrOOkrNAlVLF/gHq+/CJmHIWKKUUhdWjcD6CIa8idarspCsASiXCXvFUw==} + + '@oxc-project/types@0.143.0': + resolution: {integrity: sha512-u6JZdLBTLotrNC9Vd6vPssINdzcCzleKAH6EJKImQb7GtYvX5keN2dxkoK44stCc4tffE6QQRtZTXVSzsLUlWA==} + + '@parcel/watcher-android-arm64@2.6.0': + resolution: {integrity: sha512-trgpLSCKRC/huFjXX/Smh+0sWe4+YtKfktIToiMl59ghz7z+qkH6kMvNnUbLyRs9N11t8l4svSCs1+5B3rOAhA==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [android] + + '@parcel/watcher-darwin-arm64@2.6.0': + resolution: {integrity: sha512-Y3QV0gl7Q1zbfueunkWIERICbEojQFCgpyG7YqOGNFLsckXyI1xu9mAIUpKY9QBYzBtSkN8dBPwd3yiAO9ovMw==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [darwin] + + '@parcel/watcher-darwin-x64@2.6.0': + resolution: {integrity: sha512-Ohv6OpzhUfKYD7Beb8kDvG0jbIxORCYY1JRdZnaBtnjjkJxgD7ZVL0nw2sCYd0yTMKTvz3nnTnOF3cDifK+kvw==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [darwin] + + '@parcel/watcher-freebsd-x64@2.6.0': + resolution: {integrity: sha512-5HmXvDgs8VK+74jF9y9/2FE3/OnlcKmc56tjmSrEuZjpSZOGL+fvAu+HKJBdPs9uwoP2hE6TlSUpXZ/C5jUFmQ==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [freebsd] + + '@parcel/watcher-linux-arm-glibc@2.6.0': + resolution: {integrity: sha512-Ps/hui3A+vMbjdqlqAowK2ZL8+BO8dBjxeWXj6npTBs3jx4wWmbPpaLuqwrQrSqIVMCnpWo238bJ1U37GhQOYg==} + engines: {node: '>= 10.0.0'} + cpu: [arm] + os: [linux] + libc: [glibc] + + '@parcel/watcher-linux-arm-musl@2.6.0': + resolution: {integrity: sha512-9c6AUHgHoG+IY88MRIHupztQiQnrbqHYQjkM2btA+Bf/wQnQMuiD0Wfk1EVv3TlNT3x41uU71rn6E4xh/+zvkw==} + engines: {node: '>= 10.0.0'} + cpu: [arm] + os: [linux] + libc: [musl] + + '@parcel/watcher-linux-arm64-glibc@2.6.0': + resolution: {integrity: sha512-yHRqS2owEXe6Hic9z6Mh1ECsCd+ODVOGvZDyciqRd21+v+o+DnXMOrw50DSpIG2sb8GPEaPPmfeCAWKPJdq46g==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@parcel/watcher-linux-arm64-musl@2.6.0': + resolution: {integrity: sha512-WhB2e/V7rqdHHWZusBSPuy5Ei8S6lSz6FE5TKKQz5h3a0O+C+mhY7vxU9b/stqvMb8beLnPY82ZrFTLKs+SrKA==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@parcel/watcher-linux-x64-glibc@2.6.0': + resolution: {integrity: sha512-ulGE6x6Oz6iAwg75T8YQSoguBWasniIbX+QWpaYPcCnDOpdWX3k+4xbEYPZVLxOuoJI+svJJPD3sEj8G7lrQ3A==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@parcel/watcher-linux-x64-musl@2.6.0': + resolution: {integrity: sha512-tkBYKt7YQrjIJWYDnto2YgO8MRkjlMTSNoRHzsXinBqbLdeOM3L32wPZJvIZxqaLMfSlS/4sUjH/6STVP/XDLw==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [linux] + libc: [musl] + + '@parcel/watcher-wasm@2.3.0': + resolution: {integrity: sha512-ejBAX8H0ZGsD8lSICDNyMbSEtPMWgDL0WFCt/0z7hyf5v8Imz4rAM8xY379mBsECkq/Wdqa5WEDLqtjZ+6NxfA==} + engines: {node: '>= 10.0.0'} + bundledDependencies: + - napi-wasm + + '@parcel/watcher-wasm@2.6.0': + resolution: {integrity: sha512-dtjbDxKSDPQ8AmA+pS4OFaHE1FKrjtGpLGBxw85uKFkRorjNbvDM/aFPgqosu40wprbp1xw2ZSxIKqghCUHe2w==} + engines: {node: '>= 10.0.0'} + bundledDependencies: + - napi-wasm + + '@parcel/watcher-win32-arm64@2.6.0': + resolution: {integrity: sha512-gIZAP23jaHjGWasY/TY6yL7NHFClf0Ga7FN+iINvk+KN94rhm94lYZhFsbYFNcA04/onvGD9kKmiJLJB2HbNwQ==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [win32] + + '@parcel/watcher-win32-x64@2.6.0': + resolution: {integrity: sha512-cA+/pXV2YkfxlIcXOQ5fSWqAzzPyD78/x5qbK/I0vUkrlYHA8TIz+MXjAbGouguKVSI4bOmkTSJ1/poVSsgt+A==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [win32] + + '@parcel/watcher@2.6.0': + resolution: {integrity: sha512-7FNeNl8NCE7aINx7WXiKQrPYZWC/hvrTsmk6zmxbI7LTXE7hVek/n8AfVgpe2y82zl3w0HvCHN0bVKMBoJcC0w==} + engines: {node: '>= 10.0.0'} + + '@pkgjs/parseargs@0.11.0': + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + + '@polka/url@1.0.0-next.29': + resolution: {integrity: sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==} + + '@poppinss/colors@4.1.6': + resolution: {integrity: sha512-H9xkIdFswbS8n1d6vmRd8+c10t2Qe+rZITbbDHHkQixH5+2x1FDGmi/0K+WgWiqQFKPSlIYB7jlH6Kpfn6Fleg==} + + '@poppinss/dumper@0.7.0': + resolution: {integrity: sha512-0UTYalzk2t6S4rA2uHOz5bSSW2CHdv4vggJI6Alg90yvl0UgXs6XSXpH96OH+bRkX4J/06djv29pqXJ0lq5Kag==} + + '@poppinss/exception@1.2.3': + resolution: {integrity: sha512-dCED+QRChTVatE9ibtoaxc+WkdzOSjYTKi/+uacHWIsfodVfpsueo3+DKpgU5Px8qXjgmXkSvhXvSCz3fnP9lw==} + + '@resvg/resvg-wasm@2.4.0': + resolution: {integrity: sha512-C7c51Nn4yTxXFKvgh2txJFNweaVcfUPQxwEUFw4aWsCmfiBDJsTSwviIF8EcwjQ6k8bPyMWCl1vw4BdxE569Cg==} + engines: {node: '>= 10'} + + '@rolldown/binding-android-arm64@1.0.0-rc.9': + resolution: {integrity: sha512-lcJL0bN5hpgJfSIz/8PIf02irmyL43P+j1pTCfbD1DbLkmGRuFIA4DD3B3ZOvGqG0XiVvRznbKtN0COQVaKUTg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [android] + + '@rolldown/binding-android-arm64@1.2.3': + resolution: {integrity: sha512-zrJtHDcaZJ1Fp7xf4hNl+7seH9Cn/N5TwLYkhgXREtBwAd/jaqW3uqeHxpDugJLVICWg4eW44kOQEGJ1r6jCGw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [android] + + '@rolldown/binding-darwin-arm64@1.0.0-rc.9': + resolution: {integrity: sha512-J7Zk3kLYFsLtuH6U+F4pS2sYVzac0qkjcO5QxHS7OS7yZu2LRs+IXo+uvJ/mvpyUljDJ3LROZPoQfgBIpCMhdQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [darwin] + + '@rolldown/binding-darwin-arm64@1.2.3': + resolution: {integrity: sha512-ieIiibVCp0tX7TLu2cafoNPv8wJyYi01ekXpbf8q2j7F4rGAhhXb/eQh7ge9DRBY78GwmRQtvjZDux7EDbA8kA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [darwin] + + '@rolldown/binding-darwin-x64@1.0.0-rc.9': + resolution: {integrity: sha512-iwtmmghy8nhfRGeNAIltcNXzD0QMNaaA5U/NyZc1Ia4bxrzFByNMDoppoC+hl7cDiUq5/1CnFthpT9n+UtfFyg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [darwin] + + '@rolldown/binding-darwin-x64@1.2.3': + resolution: {integrity: sha512-Zh9tCon19eDXJoihx0rqKhMUlMYqzwj3aPsSuHmI4RWZh62dWUL+DJN4C5YQya5TcQBJU/Fe8+rY0jhXTQITqA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [darwin] + + '@rolldown/binding-freebsd-x64@1.0.0-rc.9': + resolution: {integrity: sha512-DLFYI78SCiZr5VvdEplsVC2Vx53lnA4/Ga5C65iyldMVaErr86aiqCoNBLl92PXPfDtUYjUh+xFFor40ueNs4Q==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [freebsd] + + '@rolldown/binding-freebsd-x64@1.2.3': + resolution: {integrity: sha512-nGbJWewA1wrXXZiQhjAT5rhibGfns5ZNkDVqxsO6zJ3f3YvpoDNNmGMSbbhLuXKjNScaBJVOAboztAWVespQMg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [freebsd] + + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.9': + resolution: {integrity: sha512-CsjTmTwd0Hri6iTw/DRMK7kOZ7FwAkrO4h8YWKoX/kcj833e4coqo2wzIFywtch/8Eb5enQ/lwLM7w6JX1W5RQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + + '@rolldown/binding-linux-arm-gnueabihf@1.2.3': + resolution: {integrity: sha512-QNniJr5Kml0kDEB98jiDOJjXNroxIIi0IXIbdYzY26Xt1pVbeP62+KnoIZLwirOymX/0jDk/2gI/bNUv7A7OIw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + + '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.9': + resolution: {integrity: sha512-2x9O2JbSPxpxMDhP9Z74mahAStibTlrBMW0520+epJH5sac7/LwZW5Bmg/E6CXuEF53JJFW509uP+lSedaUNxg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@rolldown/binding-linux-arm64-gnu@1.2.3': + resolution: {integrity: sha512-TkqEAcmmvH3I/q4114NB4RVt6241Dao48pF45uLcFGrwAaIn0iITgTAKP/dLjbN0R4buJjGb91+UHSoFmpgIWw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@rolldown/binding-linux-arm64-musl@1.0.0-rc.9': + resolution: {integrity: sha512-JA1QRW31ogheAIRhIg9tjMfsYbglXXYGNPLdPEYrwFxdbkQCAzvpSCSHCDWNl4hTtrol8WeboCSEpjdZK8qrCg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@rolldown/binding-linux-arm64-musl@1.2.3': + resolution: {integrity: sha512-NHqjnxpsndf4MPymxteFAWHHfkTL8HjWh1KB7z23ofZ6QO2euONuxDXjat69dKZRALnGypg8k8SsK8vZJoXv1Q==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.9': + resolution: {integrity: sha512-aOKU9dJheda8Kj8Y3w9gnt9QFOO+qKPAl8SWd7JPHP+Cu0EuDAE5wokQubLzIDQWg2myXq2XhTpOVS07qqvT+w==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@rolldown/binding-linux-ppc64-gnu@1.2.3': + resolution: {integrity: sha512-6tbrbwfz5GB9DQ4Jwo6hy9v+vR31xZlvzZ6n5Xut6Hhx5PvrA9q/HsK8KMaYQp063iqZGXwNvZtYNLD7EM/x0w==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.9': + resolution: {integrity: sha512-OalO94fqj7IWRn3VdXWty75jC5dk4C197AWEuMhIpvVv2lw9fiPhud0+bW2ctCxb3YoBZor71QHbY+9/WToadA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@rolldown/binding-linux-s390x-gnu@1.2.3': + resolution: {integrity: sha512-oyuXxXmoZHjXC917IAPFAAv4wWAa0cM9afk8nx1+9/jNNOX1uPf8yDA6p7G0RypOfw/X0PQt5IfoquY1um+zSg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@rolldown/binding-linux-x64-gnu@1.0.0-rc.9': + resolution: {integrity: sha512-cVEl1vZtBsBZna3YMjGXNvnYYrOJ7RzuWvZU0ffvJUexWkukMaDuGhUXn0rjnV0ptzGVkvc+vW9Yqy6h8YX4pg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@rolldown/binding-linux-x64-gnu@1.2.3': + resolution: {integrity: sha512-TytMwF2KVGqP2tgd0I1OY0PAv78dZRAYcF5ssDzjM34SUXCED3uXvSd5+lHoC0bTD6eEdFz7LdQNCO1y0oVk9w==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@rolldown/binding-linux-x64-musl@1.0.0-rc.9': + resolution: {integrity: sha512-UzYnKCIIc4heAKgI4PZ3dfBGUZefGCJ1TPDuLHoCzgrMYPb5Rv6TLFuYtyM4rWyHM7hymNdsg5ik2C+UD9VDbA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [musl] + + '@rolldown/binding-linux-x64-musl@1.2.3': + resolution: {integrity: sha512-/E9m3qstrJFVPoULV25mVQblSNExY2+kBsYe4sy0Tn0yOOgJ8wZbZt3KnRbF/XeU2Gl1STKUQnDNTqhIE5MD4A==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [musl] + + '@rolldown/binding-openharmony-arm64@1.0.0-rc.9': + resolution: {integrity: sha512-+6zoiF+RRyf5cdlFQP7nm58mq7+/2PFaY2DNQeD4B87N36JzfF/l9mdBkkmTvSYcYPE8tMh/o3cRlsx1ldLfog==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [openharmony] + + '@rolldown/binding-openharmony-arm64@1.2.3': + resolution: {integrity: sha512-Kr0OcsoQI816i6HOl3vFHpd1K0eZyh76zgfj4c1nTyaTsd5r2Mj1lwM4R90y/qaCfmTn9eHy0SKwi98eitRxug==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [openharmony] + + '@rolldown/binding-wasm32-wasi@1.0.0-rc.9': + resolution: {integrity: sha512-rgFN6sA/dyebil3YTlL2evvi/M+ivhfnyxec7AccTpRPccno/rPoNlqybEZQBkcbZu8Hy+eqNJCqfBR8P7Pg8g==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + + '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.9': + resolution: {integrity: sha512-lHVNUG/8nlF1IQk1C0Ci574qKYyty2goMiPlRqkC5R+3LkXDkL5Dhx8ytbxq35m+pkHVIvIxviD+TWLdfeuadA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [win32] + + '@rolldown/binding-win32-arm64-msvc@1.2.3': + resolution: {integrity: sha512-hOtMwTqnME+/gJcH/PCZ0wn0zPUjiWOgkHpxbSJpfGKMezHltx1S7/k1SitzVa7Ww2cqrDDaFbZEhcJZO8o+Jw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [win32] + + '@rolldown/binding-win32-x64-msvc@1.0.0-rc.9': + resolution: {integrity: sha512-G0oA4+w1iY5AGi5HcDTxWsoxF509hrFIPB2rduV5aDqS9FtDg1CAfa7V34qImbjfhIcA8C+RekocJZA96EarwQ==} + engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] - '@rolldown/pluginutils@1.0.0-rc.9': - resolution: {integrity: sha512-w6oiRWgEBl04QkFZgmW+jnU1EC9b57Oihi2ot3HNWIQRqgHp5PnYDia5iZ5FF7rpa4EQdiqMDXjlqKGXBhsoXw==} + '@rolldown/binding-win32-x64-msvc@1.2.3': + resolution: {integrity: sha512-ekcqMMkI2PlhYnfzQnB/cEdYUVVJViWvoUyLrbzgDoi3Snfc1mVBwdnc306ufA5ejy8JSPjT2RlW1nQSjW7efg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [win32] + + '@rolldown/pluginutils@1.0.0-rc.9': + resolution: {integrity: sha512-w6oiRWgEBl04QkFZgmW+jnU1EC9b57Oihi2ot3HNWIQRqgHp5PnYDia5iZ5FF7rpa4EQdiqMDXjlqKGXBhsoXw==} + + '@rolldown/pluginutils@1.0.1': + resolution: {integrity: sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==} + + '@rollup/plugin-alias@6.0.0': + resolution: {integrity: sha512-tPCzJOtS7uuVZd+xPhoy5W4vThe6KWXNmsFCNktaAh5RTqcLiSfT4huPQIXkgJ6YCOjJHvecOAzQxLFhPxKr+g==} + engines: {node: '>=20.19.0'} + peerDependencies: + rollup: '>=4.0.0' + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/plugin-commonjs@29.0.3': + resolution: {integrity: sha512-ZaOxZceP7SOUW7Lqw5IRVweSQYWaeIPnXIGLiB690EBA3FGJTO40EEr2L5yZplJWsgTCogILRSpcAe7+U0Otdg==} + engines: {node: '>=16.0.0 || 14 >= 14.17'} + peerDependencies: + rollup: ^2.68.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/plugin-inject@5.0.5': + resolution: {integrity: sha512-2+DEJbNBoPROPkgTDNe8/1YXWcqxbN5DTjASVIOx8HS+pITXushyNiBV56RB08zuptzz8gT3YfkqriTBVycepg==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/plugin-json@6.1.0': + resolution: {integrity: sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/plugin-node-resolve@16.0.3': + resolution: {integrity: sha512-lUYM3UBGuM93CnMPG1YocWu7X802BrNF3jW2zny5gQyLQgRFJhV1Sq0Zi74+dh/6NBx1DxFC4b4GXg9wUCG5Qg==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^2.78.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true - '@rolldown/pluginutils@1.0.1': - resolution: {integrity: sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==} + '@rollup/plugin-replace@6.0.3': + resolution: {integrity: sha512-J4RZarRvQAm5IF0/LwUUg+obsm+xZhYnbMXmXROyoSE1ATJe3oXSb9L5MMppdxP2ylNSjv6zFBwKYjcKMucVfA==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/plugin-terser@1.0.0': + resolution: {integrity: sha512-FnCxhTBx6bMOYQrar6C8h3scPt8/JwIzw3+AJ2K++6guogH5fYaIFia+zZuhqv0eo1RN7W1Pz630SyvLbDjhtQ==} + engines: {node: '>=20.0.0'} + peerDependencies: + rollup: ^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true '@rollup/pluginutils@5.4.0': resolution: {integrity: sha512-MfPp06CjRLfXQ3wY0R8vJDYBy/MvVcc9OulEfR0B8Iv9ko+GCNaRZ+EpJYFl27LhKsZK0o420sYCRHCjfCgeUg==} @@ -1360,6 +1565,144 @@ packages: rollup: optional: true + '@rollup/rollup-android-arm-eabi@4.64.0': + resolution: {integrity: sha512-FLLpX941CD/7aBvX3GqLGBM9OvY5PGXTryPJkG5r5/OuBpZpV5k45Uo3RxAvqd35tsyc3hH1bhtz921IKzoIzg==} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm64@4.64.0': + resolution: {integrity: sha512-iI32XM/jnDYJsvx5ai/za/7gWO9XoSeFFtU06/ZCaRgyilfJOjaopD3nOpk2WrTCGOyeDt4hleUiGOAnd5tHNg==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.64.0': + resolution: {integrity: sha512-dRBZlbt2sEtF8Mn4MODThze9fIPdDoOhVSlXMAKy5dQbOYK9pOOoPY4Fat3OTtr0+8zbJo5TTZwlsfxY/kDNJg==} + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.64.0': + resolution: {integrity: sha512-Y3whrJOMucfkhgNkvcM93M6j8C53iEAMmPMYD99C6G1kUy4ELigLWk9ar2/4aCBSRgsql0zdlOemLgW2m5GZgQ==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-freebsd-arm64@4.64.0': + resolution: {integrity: sha512-S6S1GEzPjFF6IONYJX3AKt/799+8RgBgCcwRnUo+Ep1IvBxUbw5M51iU0TDdK2NWWVnSvCQ8yi6Em0fGASMOng==} + cpu: [arm64] + os: [freebsd] + + '@rollup/rollup-freebsd-x64@4.64.0': + resolution: {integrity: sha512-Ed1DPoFENkXj4IGzSB12SesV40iP6LxCCrbTIkSGIQBpOOxpBM+0kj62lmaeIHfMWTDoddqTOtqc7s8LYfn+Pw==} + cpu: [x64] + os: [freebsd] + + '@rollup/rollup-linux-arm-gnueabihf@4.64.0': + resolution: {integrity: sha512-J/6xhutJPtFyIkmHdf4olOdHHKH5kOJNumojdWn+Elv5ICEYTVOa362Vw27TxsK0BLzb1le3EDlO3UbvFK1lnQ==} + cpu: [arm] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-arm-musleabihf@4.64.0': + resolution: {integrity: sha512-G4L/Nnx59d2LvDoV/P4S5lZ7oVLT6hodOHMacqjiq2LL2gts86KbkEBTYL53+fBt0odhf7XPIbIATGoYiJctxg==} + cpu: [arm] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-arm64-gnu@4.64.0': + resolution: {integrity: sha512-zF16pvJDEUksGYRbfnXne7pdklAyj2XDmJeYKgP93oq0cUyX9Y8O7lUo1R+IY1GagP/YBvCEDCe7eEcAKpw//g==} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-arm64-musl@4.64.0': + resolution: {integrity: sha512-nIggWn8n+w12+R5lsV+PYYoUY8vuObxPAQqJI7WES+9v0qspYuAHoZMfYM0yLxlipasT5BY9ht5W8t5c/rSCkg==} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-loong64-gnu@4.64.0': + resolution: {integrity: sha512-WLOTiHPzszP0dxIMsHpFeDSOSB5I49Mj8K4+yKE3H1X/D0JRG5XZ5jrctJLMjnUc/LUzaKiwq6EHWNJ8pup8PA==} + cpu: [loong64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-loong64-musl@4.64.0': + resolution: {integrity: sha512-35RK9aRhh7g7Pmeu5gQ01aCvrhXzj9LoBE6xtUcEH1ns+nyTaSzxSpADmBQINu4QiTDGvmQYwo1j5hlg1rRXFw==} + cpu: [loong64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-ppc64-gnu@4.64.0': + resolution: {integrity: sha512-RqTfnpoTjuWfPAmqK5p2edt2AMCDJWm6oTn7sKfmyx+6tRga0ip05SJ977o6udTcIiDeF/CJMUfkaN4gtWt6Aw==} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-ppc64-musl@4.64.0': + resolution: {integrity: sha512-RQjZPigjxFvFZDijG6rjlSXxhRaTf9zLYVpGK+lVcga64oMqP1GbgVqCb46eHTTceSIgp89Ja0y5aPe3GFBYHg==} + cpu: [ppc64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-riscv64-gnu@4.64.0': + resolution: {integrity: sha512-tjL58mgQcTRnDRpeky+Sth1MKQeYi2Ct6r3Luq9E5aTSjnM/i/JbozqZkKqp9thM5+oDSZxo+05f9kdQedfTGA==} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-riscv64-musl@4.64.0': + resolution: {integrity: sha512-ictoRyVaoZ8C67myHef+8hhCa6IplXJJ/xUCkVCxziV4zxMZh+jvhkhGsPBLqj1S72fnqD0QH5zL4lcaa4X7DQ==} + cpu: [riscv64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-s390x-gnu@4.64.0': + resolution: {integrity: sha512-8aVvZ2hfr9RLFzBQkQNmYeHLDja8fLeQAmLt757zdKN/B+8L809KlLJKctQjS22wZotptV8G6o7fVPuAs8S1tQ==} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-x64-gnu@4.64.0': + resolution: {integrity: sha512-2dEF8GAcDKwshUfydD+GhosppNyBzhVUHkdFF3CXd3FpOkzj/RZzF5aoEtzklujklT5qFVRU2GK/cFeLaTNKVg==} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-x64-musl@4.64.0': + resolution: {integrity: sha512-3XHTvoo2hKkh0MiOfS7SkhHjMaaWF7P4F3drocZZaho/Z8w7h/jpnuBHm91BOQLfvrKHs1yR+zir4E8RI3XzTQ==} + cpu: [x64] + os: [linux] + libc: [musl] + + '@rollup/rollup-openbsd-x64@4.64.0': + resolution: {integrity: sha512-HKtkzodL4a3KFWDXDoO61cRynAWTR3LnAE0oGtfG9lcNFpNuVYUFOByxDgNqEvic9rvaQbAj+SFwTEWDptRaIw==} + cpu: [x64] + os: [openbsd] + + '@rollup/rollup-openharmony-arm64@4.64.0': + resolution: {integrity: sha512-JBsxqiY16uyyCujtoC3s7zL+SrYyNElptD7K4V+KUoJ2V8/XG3hPWpheK+SuPwNh1cikJvIZmIdsrYXvD6PLJw==} + cpu: [arm64] + os: [openharmony] + + '@rollup/rollup-win32-arm64-msvc@4.64.0': + resolution: {integrity: sha512-S5Qrijh37qhnUYQ0ay8WN3LuWeKjow7wTUyCOPMZtnXiBXYXdsZETI6ZLfYnQAKovltckPLBFdNeD61P2rJc7g==} + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-ia32-msvc@4.64.0': + resolution: {integrity: sha512-zbZ6iMmLFEsCtTdc2/y1F/cDFVNNCPF7Ae8PCT/wdPE//hGwYp6r+MyCLMFX+kOeIe09Pz6ASfnnfpSTN1FJQQ==} + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-gnu@4.64.0': + resolution: {integrity: sha512-L6Hw69oNpuYaOr1zCG30v0/DqKYCSRwodPGwIcVZ/6f8SOzq9rxtL/xNVI5MO4wjli+Ko0ErK9uHJL3mNPt8wQ==} + cpu: [x64] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.64.0': + resolution: {integrity: sha512-nl+CTWIgOGszQmUz/kanfgrfFZ4qiwxKIfT/ryl3N3Ewk5tqizmYtNXiqb7Bu/fDtNgu1kyxdFiAUJNur3iysg==} + cpu: [x64] + os: [win32] + '@shikijs/core@1.29.2': resolution: {integrity: sha512-vju0lY9r27jJfOY4Z7+Rt/nIOjzJpZ3y+nYpqtUZInVoXQ/TJZcfGnNOGnKjFdVZb8qexiCuSlZRKcGfhhTTZQ==} @@ -1404,9 +1747,16 @@ packages: engines: {node: '>= 8.0.0'} hasBin: true + '@sindresorhus/is@7.2.0': + resolution: {integrity: sha512-P1Cz1dWaFfR4IR+U13mqqiGsLFf1KbayybWwdd2vfctdV6hDpUkgCY0nKOLLTMSoRd/jJNjtbqzf13K8DCCXQw==} + engines: {node: '>=18'} + + '@sindresorhus/merge-streams@4.0.0': + resolution: {integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==} + engines: {node: '>=18'} + '@solid-mediakit/og@0.4.1': resolution: {integrity: sha512-DHYJVDX/rk2LHZIv28+VjcSvJD2u7hfceHl+/q0ufpsW0KRZYRVBsFmT/F3LUDkHYM1ckx1Ec8Wh/NvDtkrkng==} - version: 0.4.1 peerDependencies: '@solidjs/meta': ^0.29.4 '@solidjs/start': ^1.1.3 @@ -1415,114 +1765,261 @@ packages: '@solid-mediakit/shared@0.0.6': resolution: {integrity: sha512-OFy6QAS9fXQicV4+FmLtOzgWAjYuO1FjQlta09qBjgpRENr+xZqiPP8gUlRT0nph/dr7NP18b1cWiCzThZWqkw==} - '@solid-primitives/clipboard@1.6.6': - resolution: {integrity: sha512-dw7ela8hidoiSFiZiDsJeVfwR15Z/vuePrIj9UJclR9PS6DNYuRd06PV5ppo5blvLXvvdDF6GJj9Eo7cwJBa8w==} + '@solid-primitives/a11y@1.0.0-next.3': + resolution: {integrity: sha512-ohvuHYkxTNJtOPlhSHHCiLILE7KOQ3K6hcDrq4Fr69euk1Fnpct3d9VxFbgMPxBG31RJtJoD6Yh5BJNwFz84kw==} + peerDependencies: + '@solidjs/web': ^2.0.0-rc.0 + solid-js: ^2.0.0-rc.0 + + '@solid-primitives/clipboard@2.0.0-next.17': + resolution: {integrity: sha512-Zvm2yeGR16OsX3Bzk/gyywdXxXiVq3kUhbukPkogEKgA2bNKwGlKDuRC48C26aPKBJmYxbRRbg2p0KKG5kvqlg==} + peerDependencies: + '@solidjs/web': ^2.0.0-rc.0 + solid-js: ^2.0.0-rc.0 + + '@solid-primitives/context@2.0.0-next.2': + resolution: {integrity: sha512-QtOWAPbwmt35ngUqRwv/qa/Yvbwn7wzBXt2ameO7IYUTOiaT4fPVeOrRcc8bMUJbYsU1FPHI/Lcuz+zSKZVklA==} + peerDependencies: + '@solidjs/web': ^2.0.0-rc.0 + solid-js: ^2.0.0-rc.0 + + '@solid-primitives/controlled-signal@1.0.0-next.3': + resolution: {integrity: sha512-vcc3sI+0TFeqD6OWHr65LuH0x6OuRhmWQ9DxqGY53VIfvV5PFfIlBlxPidOyGbiN6VoHHMagZaXUq4ZnuH/KPg==} + peerDependencies: + solid-js: ^2.0.0-rc.0 + + '@solid-primitives/drag-drop@0.1.0-next.0': + resolution: {integrity: sha512-1OOKH+QHItwDmZNdKCqajhuoL8uSmZMPIyCI6qC+qDSafkH0q3NljEvblBQLskcBBZrq6FIbLs6ct1AYUDKbig==} + peerDependencies: + '@solidjs/web': ^2.0.0-rc.0 + solid-js: ^2.0.0-rc.0 + + '@solid-primitives/event-listener@3.0.0-next.3': + resolution: {integrity: sha512-DU89Vh/z7F1RTvL69RDDOyIoZ0TeYc/Mrdf+pSIGL5WORjL8TxKc91weBRJUrbeA4Co9bHJs+buSd3NPWbxWAg==} + peerDependencies: + '@solidjs/web': ^2.0.0-rc.0 + solid-js: ^2.0.0-rc.0 + + '@solid-primitives/event-listener@3.0.0-next.5': + resolution: {integrity: sha512-P8GdbTwt422PHkWeKIEQVMB3Yz2agE49bfN8ChXVNQBD0fzKQF8FfmAh8y33la5k+Ap7oshNJ0Db001dJhCqTw==} + peerDependencies: + '@solidjs/web': ^2.0.0-rc.0 + solid-js: ^2.0.0-rc.0 + + '@solid-primitives/focus@1.0.0-next.4': + resolution: {integrity: sha512-OPi75QpOJ3L/Ea9oT1MYrpsGz5z0nyeR40MAjAzcP6lKxPSrpN/3UbFL2I/oLKbPM+7fgIBfW0iwyvzSjVxtsg==} + peerDependencies: + '@solidjs/web': ^2.0.0-rc.0 + solid-js: ^2.0.0-rc.0 + + '@solid-primitives/form@1.0.0-next.3': + resolution: {integrity: sha512-EdR9Vqtdge1V3YoxhvqWNYpDf0eVrK9z5qNnm8laYvMp2DnoCy244VwqKxhSbS2+U0AhhKROX8cDJqXmdGCp+A==} + peerDependencies: + '@solidjs/web': ^2.0.0-rc.0 + solid-js: ^2.0.0-rc.0 + + '@solid-primitives/i18n@3.0.0-next.4': + resolution: {integrity: sha512-r5ZwXcxsE0NEC4MCs5nphs9gnEdDkvZ5zp3P/I0h0wHHXBQi1fuXkQv857HBgTi2Mwja7vS5D6nePyQQxd9q/A==} peerDependencies: - solid-js: ^1.6.12 + '@solidjs/web': ^2.0.0-rc.0 + solid-js: ^2.0.0-rc.0 - '@solid-primitives/context@0.2.3': - resolution: {integrity: sha512-6/e8qu9qJf48FJ+sxc/B782NdgFw5TvI8+r6U0gHizumfZcWZg8FAJqvRZAiwlygkUNiTQOGTeO10LVbMm0kvg==} + '@solid-primitives/interaction@1.0.0-next.4': + resolution: {integrity: sha512-V+kos+abAkAJLNAvj3A7iitNcSvbosFsjBoXh7K8GdWoABWEfPEf3DZsN+01UQOAf+4G0XLXPN4Y/IRe2EOBZQ==} peerDependencies: - solid-js: ^1.6.12 + '@solidjs/web': ^2.0.0-rc.0 + solid-js: ^2.0.0-rc.0 - '@solid-primitives/event-listener@2.4.6': - resolution: {integrity: sha512-5I0YJcTVYIWoMmgBSROBZGcz+ymhew/pGTg2dHW74BUjFKsV8Li4bOZYl0YAGP4mHw5o4UBd9/BEesqBci3wxw==} + '@solid-primitives/keyboard@2.0.0-next.5': + resolution: {integrity: sha512-kTdYQNMqVBzsZdSxzxlVPRAfuR3ENmkPw04WIEoIeV5rNDJYFRQQw7LaD4YWum4tLPtquzBWvYG3maPduSCc5g==} peerDependencies: - solid-js: ^1.6.12 + '@solidjs/web': ^2.0.0-rc.0 + solid-js: ^2.0.0-rc.0 - '@solid-primitives/keyboard@1.3.7': - resolution: {integrity: sha512-558RPNYnXx4nGh537DSqAn4xMrC8iFipl/5+xzgzWoTNFst4RnUN3BOLmtDjJ0UGGoQXVMALYR3bNOHM0xnt1Q==} + '@solid-primitives/keyed@3.0.0-next.2': + resolution: {integrity: sha512-FvEYVbX0PpeCTKyL3x7e2wnbb8muIKMgU+cQue+UrkhRkg1HLrBbimymvMuyQgPeBSEdgMYaaMnQI/uCUHS4NQ==} peerDependencies: - solid-js: ^1.6.12 + '@solidjs/web': ^2.0.0-rc.0 + solid-js: ^2.0.0-rc.0 - '@solid-primitives/keyed@1.5.3': - resolution: {integrity: sha512-zNadtyYBhJSOjXtogkGHmRxjGdz9KHc8sGGVAGlUABkE8BED2tbIZoxkwSqzOwde8OcUEH0bb5DLZUWIMvyBSA==} + '@solid-primitives/map@1.0.0-next.2': + resolution: {integrity: sha512-9TipViAZvtT9sNCJuriC7SbKTDA9THKseAxeGWmtvEcWEupwdCTsb/mA8qoobmo+rTgkkhYLyc2N+jHGH4KykQ==} peerDependencies: - solid-js: ^1.6.12 + '@solidjs/web': ^2.0.0-rc.0 + solid-js: ^2.0.0-rc.0 - '@solid-primitives/map@0.4.13': - resolution: {integrity: sha512-B1zyFbsiTQvqPr+cuPCXO72sRuczG9Swncqk5P74NCGw1VE8qa/Ry9GlfI1e/VdeQYHjan+XkbE3rO2GW/qKew==} + '@solid-primitives/media@4.0.0-next.2': + resolution: {integrity: sha512-jTua+YRSAe2u3z1kZRPIunANI+JSQl0U2pOsDVqCzKgp/nzZC1WsodyFluiSARD9SICgFnzHqlD+EmXzKgp/Mg==} peerDependencies: - solid-js: ^1.6.12 + '@solidjs/web': ^2.0.0-rc.0 + solid-js: ^2.0.0-rc.0 - '@solid-primitives/media@2.3.6': - resolution: {integrity: sha512-pk49gPOq/UMRUJ+pTSrOfBiR8xJjRYHXIf1iR/jSnyQ/KroU+ZXhkZzavC7hvfp2vJeOTW5k2/HN0r3Q1VJ7Pw==} + '@solid-primitives/platform@1.0.0-next.2': + resolution: {integrity: sha512-LzV2/ZFKU3uMIFMvVhj6iH2Bjf60QnVDCwK3lXbFhZIzBbb002k4ZNhqXVPRMQRkWlpjq1Otxe9p2qBIKfIyXQ==} peerDependencies: - solid-js: ^1.6.12 + '@solidjs/web': ^2.0.0-rc.0 + solid-js: ^2.0.0-rc.0 - '@solid-primitives/platform@0.1.2': - resolution: {integrity: sha512-sSxcZfuUrtxcwV0vdjmGnZQcflACzMfLriVeIIWXKp8hzaS3Or3tO6EFQkTd3L8T5dTq+kTtLvPscXIpL0Wzdg==} + '@solid-primitives/presence@1.0.0-next.2': + resolution: {integrity: sha512-p8uYuwV7JkR7DCa+ytkDz3EyhTaraZgg+KjU4Li/KCFthKA801kp+XUhRF+LctLNc6wY5HAQBwgAQZfMTHYMHA==} peerDependencies: - solid-js: ^1.6.12 + solid-js: ^2.0.0-rc.0 - '@solid-primitives/props@3.2.4': - resolution: {integrity: sha512-MXXdvi2TSB6d+0N6ueA/HP1j/Kh9SEc4WdF1ZDMLwPagxW6pIHHSS9xbRO0RjqSVpNP4j0nxCWT1hx3CkJNhNA==} + '@solid-primitives/props@4.0.0-next.3': + resolution: {integrity: sha512-V2Gn96sQLLhwyiAcGogExqP8+5++Itv0/KBQMNiNp/ldNwbQkr8Q11Ku5VXswYFiFmuiHJ/pGANfwzgsla7zpA==} peerDependencies: - solid-js: ^1.6.12 + '@solidjs/web': ^2.0.0-rc.0 + solid-js: ^2.0.0-rc.0 - '@solid-primitives/refs@1.1.4': - resolution: {integrity: sha512-bLjwIs6ZPu8NQnuw04sU3Zc8qKSpbc0umUU/O4SHf6oWOdO4+dHY8vb1T7C4b/Tg103+9WGr6sEE0+NFlbaB/A==} + '@solid-primitives/refs@3.0.0-next.2': + resolution: {integrity: sha512-lrDQ6cR/FY2cV4OfoyAcrc1TnmcHrQkaWvF1lxcI1S/BkLKTcnOfZG0KAQJ138eo/N4Bq9Eqx9yva/W5Rih9/A==} peerDependencies: - solid-js: ^1.6.12 + '@solidjs/web': ^2.0.0-rc.0 + solid-js: ^2.0.0-rc.0 - '@solid-primitives/resize-observer@2.2.0': - resolution: {integrity: sha512-9Fuu/EWBeGj+atGHRJp70HKhdfalmpjwxY8a32NZixdLNmfCJ45AfhLQNr6uOzETbbiMx4iCKlTrJ8KZCHC2Ww==} + '@solid-primitives/resize-observer@4.0.0-next.3': + resolution: {integrity: sha512-g7aKa5xgXd2wXC2EtJzYdx5k9pZCPRDuG+m5Kndfmi9f6yLhe1g1d0y4L6jE6Zxjwxz7a+wRnjpnTLbsP3JvRw==} peerDependencies: - solid-js: ^1.6.12 + '@solidjs/web': ^2.0.0-rc.0 + solid-js: ^2.0.0-rc.0 - '@solid-primitives/rootless@1.5.4': - resolution: {integrity: sha512-TOIZa1VUfVJ+9nkCcRajw3U4t9vBOP1HxX1WHNTbXq32mXwlqTvUnC4CRIilohcryBkT9u2ZkhUDSHRTaGp55g==} + '@solid-primitives/rootless@2.0.0-next.2': + resolution: {integrity: sha512-QGoy8R+8v+9I8mET50wMwu0uawkQvFFcv67S+vKJ8xP5jPrQXdxuNMckUTKUy2shR3rIRpR0oLzss0Vy0oLkPg==} peerDependencies: - solid-js: ^1.6.12 + '@solidjs/web': ^2.0.0-rc.0 + solid-js: ^2.0.0-rc.0 - '@solid-primitives/scroll@2.1.6': - resolution: {integrity: sha512-0qXgveGKtmwLee4SxkEZhTxgGVu8p7Utpe1f1Y4zSKaJoIsIc+PqPFMMy3HjIvjfVOGeAtuVwHn+kxMkF+5VEg==} + '@solid-primitives/scroll@3.0.0-next.4': + resolution: {integrity: sha512-6Zod2Q2YPnkZhijVMSOhU2e1ip5hzOSQNhZIaKh7Kx7HcocYrzhn1NqYJlaUr464o1hFZweEQVkhALi9EHvt/Q==} peerDependencies: - solid-js: ^1.6.12 + '@solidjs/web': ^2.0.0-rc.0 + solid-js: ^2.0.0-rc.0 - '@solid-primitives/static-store@0.1.4': - resolution: {integrity: sha512-LgtVaVBtB7EbmS4+M0b8xY5Iq6pUWXBsIC4VgtrFKDGDdyCaDt88sHk0fUlx1Enxm/XZnZyLXJABRoa39RjJqA==} + '@solid-primitives/static-store@1.0.0-next.2': + resolution: {integrity: sha512-cyMzFe39VMVF9zVYgZEck1TESbIB4Tnpp00vNQlaOYuhOr4nstRBSS3zsBqZMuF+a5qWlKqS0RHO48FwLScX9w==} peerDependencies: - solid-js: ^1.6.12 + '@solidjs/web': ^2.0.0-rc.0 + solid-js: ^2.0.0-rc.0 - '@solid-primitives/storage@4.4.0': - resolution: {integrity: sha512-+u0dpTqrUG7h+IMfmGLCx7vx2Q0Eon6paBgzcWhEP/dauElpGU3ElpZZOZgw8YKR1+J4X4ENiAL0na3VH8RWMg==} + '@solid-primitives/storage@5.0.0-next.4': + resolution: {integrity: sha512-Y9lWlvHhilhZgnUUr+ESGqQ3rbV7I6Ut3mHp6Hj0h3bohMm4fsJgKYpFRwbUsatDKcQIdo6B0Me9imvDIcU6nw==} peerDependencies: + '@solidjs/web': ^2.0.0-rc.0 '@tauri-apps/plugin-store': '*' - solid-js: ^1.6.12 - solid-start: '*' + solid-js: ^2.0.0-rc.0 peerDependenciesMeta: '@tauri-apps/plugin-store': optional: true - solid-start: + + '@solid-primitives/trigger@3.0.0-next.2': + resolution: {integrity: sha512-YhTGBKEPP7XI7Bk6/2gWxfZmwMWQEwfZsTiMO2dt9X/AQ9bmLk+xuRbT2QDOPg2IBe0D3uh/uguHUMYOLYGpbQ==} + peerDependencies: + '@solidjs/web': ^2.0.0-rc.0 + solid-js: ^2.0.0-rc.0 + + '@solid-primitives/upload@1.0.0-next.4': + resolution: {integrity: sha512-txKL0cGGsEsd/WZqga8xxsKEr0YNTLH4sd71wRtJa0/mJIRn8l/MMuVIzV3R8jBNP68WxFm/jUMf8Aef2Rd4Gw==} + peerDependencies: + '@solidjs/web': ^2.0.0-rc.0 + solid-js: ^2.0.0-rc.0 + + '@solid-primitives/utils@7.0.0-next.4': + resolution: {integrity: sha512-9KyRe6eu4hdhxxGOyS9vAa2s/T8FZ1sMJtk3UuV3W1Gi0f4if+o1n7S1M6l/MMjn8+m3+I3VB1KzFa9gNDkDsg==} + peerDependencies: + '@solidjs/web': ^2.0.0-rc.0 + solid-js: ^2.0.0-rc.0 + + '@solidjs/babel-plugin@2.0.0-rc.13': + resolution: {integrity: sha512-VaNysg2V5gu1leatjxBeRPvj1wTEB1LQ1bKuPABKBGztz/Vjr6bHUYEV2cC1mFuEyNJBaNrAiGv0+5Vpbl8Pug==} + peerDependencies: + '@babel/core': ^7.20.12 + '@tsrx/core': 0.1.63 + peerDependenciesMeta: + '@tsrx/core': optional: true - '@solid-primitives/trigger@1.2.4': - resolution: {integrity: sha512-Ju0e+ZOD7hpOp7nptJimvDSZHWFvIvF9iBWMvuwt30smX7c5wmB8Kmc0AdDuv0wOTi06PQ1J5IrP1WJbH2yUBQ==} + '@solidjs/compiler-darwin-arm64@2.0.0-rc.13': + resolution: {integrity: sha512-uG3Sa/2jNZNxoKkcHjHw3KZEEuwDrRAk9aqUU2qqJZl9GDLLI0HVW7i/Lvq9b17f5yN+fNTdNyojO8rLgHnQuQ==} + cpu: [arm64] + os: [darwin] + + '@solidjs/compiler-darwin-x64@2.0.0-rc.13': + resolution: {integrity: sha512-jIyzyn/fYHmzikOaskiqmkc8FusXMaxl1Z6huh7lEeHaZsl9NIdzzAIxq8j/EJFByvoCyfQitggRTuubGNblpA==} + cpu: [x64] + os: [darwin] + + '@solidjs/compiler-linux-arm64-gnu@2.0.0-rc.13': + resolution: {integrity: sha512-cGIX7ZWTyw3Qdpd5ZqJtHdb2vQkAtZlkTgy919dMldjoRqDwQIRlqCmH35kaH/IUBlhuG224BoP4twqK9GYyGw==} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@solidjs/compiler-linux-x64-gnu@2.0.0-rc.13': + resolution: {integrity: sha512-Dnft4iic4zHsemNSBGMwOMjN4fP0DEoyfeSUWbqBk1CMsXRarLTcMKhjNQmJvL0opzjOUq0/m7/17LTe6AKpvg==} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@solidjs/compiler-wasm32-wasi@2.0.0-rc.13': + resolution: {integrity: sha512-nNOMOFxanzfM2wNbSXyekMtGazyOcM3ja+P7tk0NJYTAo2MYmRTY/HUDdFRDluk6Nc5aehu87I7AVMRj5l1WXw==} + engines: {node: '>=14.0.0'} + + '@solidjs/compiler-win32-x64-msvc@2.0.0-rc.13': + resolution: {integrity: sha512-1DT+5TgIFV5L8GdrGb+uD9ruHFVq6kJ4A/cb9amUU574TGM88B4nwy//dM57zmT99u7mej7JF91glQBnHOGhHQ==} + cpu: [x64] + os: [win32] + + '@solidjs/compiler@2.0.0-rc.13': + resolution: {integrity: sha512-OveR/xhLKo8MTJO/53jgjHuBW54c6/a9B/jiSjDrBeQ3JSbODUxQ8t58WBSlHaxyowPd27TwhVkLo3zeT1YqMQ==} + + '@solidjs/meta@1.0.0-next.2': + resolution: {integrity: sha512-4aqPczFqDdep4JTAUXfh4nyfq7InbTgimd7NuN6ZWWE29UPv0uR5dyr53yFcf2YgVXjFdX+JGhXtsE0njGL+fA==} peerDependencies: - solid-js: ^1.6.12 + '@solidjs/web': ^2.0.0-rc.0 + solid-js: ^2.0.0-rc.0 - '@solid-primitives/utils@6.4.1': - resolution: {integrity: sha512-ISSB5QX1qP2ynrheIpYwc4oKR5Ny4siNuUyf1qZniy+Il+p/PtDB0QK1Dnle8noiHpwRD3gpPdubOC3qI/Zamg==} + '@solidjs/router@2.0.0-next.37': + resolution: {integrity: sha512-jg24cNEyNc/kGfXbWM3X+ZzivVCiIB9sxDvn93j7T8WrhNr2iIUI2wZM9bQhRIIbrPZu1dNKJtZBfRwLlzyesA==} peerDependencies: - solid-js: ^1.6.12 + '@solidjs/web': ^2.0.0-rc.14 + filesystem-routing: '>=0.4.0' + solid-js: ^2.0.0-rc.14 + peerDependenciesMeta: + filesystem-routing: + optional: true + + '@solidjs/signals@2.0.0-rc.14': + resolution: {integrity: sha512-s3v1wpPcX3wfNO0WUERrPrXS+qqJ4ylzH9QTIRKqrgcMVeLEOXgFa3hZrhEoVTp+lVAgido2NH6GCI79twe2fg==} + engines: {node: '>=22.12.0'} - '@solidjs/meta@0.29.4': - resolution: {integrity: sha512-zdIWBGpR9zGx1p1bzIPqF5Gs+Ks/BH8R6fWhmUa/dcK1L2rUC8BAcZJzNRYBQv74kScf1TSOs0EY//Vd/I0V8g==} + '@solidjs/start@1.3.2': + resolution: {integrity: sha512-tasDl3utVbtP0rr4InB3ntBIFV2upvEiFrOOCkRrAA3yBfjx9elpxnc94sJQXo65PNYdAAAkPIC6h93vLrtwHg==} peerDependencies: - solid-js: '>=1.8.4' + vinxi: ^0.5.7 - '@solidjs/router@0.15.4': - resolution: {integrity: sha512-WOpgg9a9T638cR+5FGbFi/IV4l2FpmBs1GpIMSPa0Ce9vyJN7Wts+X2PqMf9IYn0zUj2MlSJtm1gp7/HI/n5TQ==} + '@solidjs/vite-plugin@3.0.0-next.47': + resolution: {integrity: sha512-vcsZbXkTCt2RalJmUPp25iz+7KYGriP9w54BLf5uIJ0xDf5woTN92WdlDCh0udZV/Zb2xw2qrWQA977QeuScJw==} + engines: {node: '>=22.12.0'} peerDependencies: - solid-js: ^1.8.6 + '@solidjs/start-devtools': ^1.0.0-next.2 + '@solidjs/web': ^2.0.0-rc.13 + '@testing-library/jest-dom': ^5.16.6 || ^5.17.0 || ^6.0.0 || ^7.0.0 + solid-js: ^2.0.0-rc.13 + vite: ^8.0.0 || ^9.0.0 + peerDependenciesMeta: + '@solidjs/start-devtools': + optional: true + '@testing-library/jest-dom': + optional: true - '@solidjs/start@https://pkg.pr.new/solidjs/solid-start/@solidjs/start@2080': - resolution: {integrity: sha512-gpqlCmgEBL/FbGoiiaYKUPz03un2YLog7MT7cvM0hRgXH4iG/JEzKpsGVkS0+QyRDtEgBB4qGB9BKJndGcTrWA==, tarball: https://pkg.pr.new/solidjs/solid-start/@solidjs/start@2080} - version: 2.0.0-alpha.2 - engines: {node: '>=22'} + '@solidjs/web@2.0.0-rc.14': + resolution: {integrity: sha512-MhHqUoVBdgAG7EZOANx7Y5SuCFH7sBxzt9uBSYLpJxE503tqoi7pX1UhV7PWxw4LvmPe1PZkdkSOZ8BLchZkhQ==} + engines: {node: '>=22.12.0'} peerDependencies: - vite: ^7 + solid-js: ^2.0.0-rc.14 + + '@speed-highlight/core@1.2.24': + resolution: {integrity: sha512-qeW2e1l78afw8VhRPfPQ1Gjj+KU5XFQ/OFV5ti6eTa9bruO7mJyZtA4vw0ofqmA3tKCkROE9xLk3VZoeRc98nw==} '@standard-schema/spec@1.1.0': resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==} @@ -1530,6 +2027,20 @@ packages: '@swc/helpers@0.5.23': resolution: {integrity: sha512-5lSsMOTXURePglDfvuAQUqkGek9Hg2kksOYay2m0+XR++b2NWYL/4sWyuvVBIs8oKnJaxkdi9whaL/sqN13afw==} + '@tanstack/directive-functions-plugin@1.121.21': + resolution: {integrity: sha512-B9z/HbF7gJBaRHieyX7f2uQ4LpLLAVAEutBZipH6w+CYD6RHRJvSVPzECGHF7icFhNWTiJQL2QR6K07s59yzEw==} + engines: {node: '>=12'} + peerDependencies: + vite: '>=6.0.0' + + '@tanstack/router-utils@1.162.3': + resolution: {integrity: sha512-Icb0xGuG1+54IV0WMLRcc3ErTx2HeJWyPG661FkQ8UT6guoBq1FJjFRqlG/JS0xi4mFFkBhvwO7tbLa32f3yxA==} + engines: {node: '>=20.19'} + + '@tanstack/server-functions-plugin@1.121.21': + resolution: {integrity: sha512-a05fzK+jBGacsSAc1vE8an7lpBh4H0PyIEcivtEyHLomgSeElAJxm9E2It/0nYRZ5Lh23m0okbhzJNaYWZpAOg==} + engines: {node: '>=12'} + '@tybys/wasm-util@0.10.3': resolution: {integrity: sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==} @@ -1584,6 +2095,9 @@ packages: '@types/node@26.1.2': resolution: {integrity: sha512-Vu4a5UFA9rIIFJ7rB/Vaafh9lrCQszopTCx6KjFboXTGQbPNasehVR5TEiithSDGyd1DEiUByggTZsg8jukeIg==} + '@types/resolve@1.20.2': + resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} + '@types/resolve@1.20.6': resolution: {integrity: sha512-A4STmOXPhMUtHH+S6ymgE2GiBSMqf4oTvcQZMcHzokuTLVYzXTB8ttjcgxOVaAp2lGwEdzZ0J+cRbbeevQj1UQ==} @@ -1604,10 +2118,29 @@ packages: '@ungap/structured-clone@1.3.3': resolution: {integrity: sha512-60YRaenCQcVjYEKOcG824+DRGGIQ3VKErcBoAEDJZz5bKIs2ZG+X/H9Nk+Q6EVkwJk5QNApxbrc5QtBSwtrXAg==} + '@vercel/nft@1.11.0': + resolution: {integrity: sha512-m1QFg+U+3yPOnP1xSYJ73UIRxLOXdts1JOhiOiyPYqEsALgrXFFINvgUaD6R6iNvaBFAjHllBCbkfx4FuOdpaA==} + engines: {node: '>=20'} + hasBin: true + '@vercel/og@0.6.8': resolution: {integrity: sha512-e4kQK9mP8ntpo3dACWirGod/hHv4qO5JMj9a/0a2AZto7b4persj5YP7t1Er372gTtYFTYxNhMx34jRvHooglw==} engines: {node: '>=16'} + '@vinxi/listhen@1.5.6': + resolution: {integrity: sha512-WSN1z931BtasZJlgPp704zJFnQFRg7yzSjkm3MzAWQYe4uXFXlFr1hc5Ac2zae5/HDOz5x1/zDM5Cb54vTCnWw==} + hasBin: true + + '@vinxi/plugin-directives@0.5.1': + resolution: {integrity: sha512-pH/KIVBvBt7z7cXrUH/9uaqcdxjegFC7+zvkZkdOyWzs+kQD5KPf3cl8kC+5ayzXHT+OMlhGhyitytqN3cGmHg==} + peerDependencies: + vinxi: ^0.5.5 + + '@vinxi/server-components@0.5.1': + resolution: {integrity: sha512-0BsG95qac3dkhfdRZxqzqYWJE4NvPL7ILlV43B6K6ho1etXWB2e5b0IxsUAUbyqpqiXM7mSRivojuXjb2G4OsQ==} + peerDependencies: + vinxi: ^0.5.5 + '@vitest/expect@4.1.10': resolution: {integrity: sha512-YsCn+qAk1GWjQOWFEsEcL2gNQ0zmVmQu3T03qP6UyjhtmdtwtbuI+DASn/7iQB3HGTXkdBwGddzxPlmiql5vlA==} @@ -1637,20 +2170,77 @@ packages: '@vitest/utils@4.1.10': resolution: {integrity: sha512-fy9am/HWxbaGt/Sawrp90vt6Y6jQwf1RX77cz3uwoJwJVMli/e1IEwRPnMNJ7vKfPTwo0diXifkpPvwH9v7nGA==} + abbrev@3.0.1: + resolution: {integrity: sha512-AO2ac6pjRB3SJmGJo+v5/aK6Omggp6fsLrs6wN9bd35ulu4cCwaAU9+7ZhXjeqHVkaHThLuzH0nZr0YpCDhygg==} + engines: {node: ^18.17.0 || >=20.5.0} + + abort-controller@3.0.0: + resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} + engines: {node: '>=6.5'} + + acorn-import-attributes@1.9.5: + resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} + peerDependencies: + acorn: ^8 + acorn-jsx@5.3.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + acorn-loose@8.5.2: + resolution: {integrity: sha512-PPvV6g8UGMGgjrMu+n/f9E/tCSkNQ2Y97eFvuVdJfG11+xdIeDcLyNdC8SHcrHbRqkfwLASdplyR6B6sKM1U4A==} + engines: {node: '>=0.4.0'} + + acorn-typescript@1.4.13: + resolution: {integrity: sha512-xsc9Xv0xlVfwp2o7sQ+GCQ1PgbkdcpWdTzrwXxO3xDMTAywVS3oXVOcOHuRjAPkS4P9b+yc/qNF15460v+jp4Q==} + peerDependencies: + acorn: '>=8.9.0' + acorn@8.18.0: resolution: {integrity: sha512-lGq+9yr1/GuAWaVYIHRjvvySG5/4VfKIvC8EWxStPdcDh/Ka7FG3twP6v4d5BkravUilhIAsG4Qj83t02LWUPQ==} engines: {node: '>=0.4.0'} hasBin: true + agent-base@7.1.4: + resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} + engines: {node: '>= 14'} + + ansi-align@3.0.1: + resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-regex@6.4.0: + resolution: {integrity: sha512-KzTVk2tCWAHtYrvvvaP8bJKJq2pVinhLcGEQdtLIYPbmNGNyYe8QwNaTUYQp2J7/vIsUKt5QCqAfUkYyG9DkOw==} + engines: {node: '>=12'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + ansi-styles@6.2.3: + resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==} + engines: {node: '>=12'} + ansis@4.3.1: resolution: {integrity: sha512-BJ8/l4R5LRE7hW9WdSuGYrLSHi2ynxeFpDFbH0K/CgNeY/tyhk+vO6TYxXC5r5CpUhNVX310xzPsN/H9lCdfOA==} engines: {node: '>=14'} + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + + archiver-utils@5.0.2: + resolution: {integrity: sha512-wuLJMmIBQYCsGZgYLTy5FIB2pF6Lfb6cXMSF8Qywwk3t20zWnAi7zLcQFdKQmIB8wyZpY5ER38x08GbwtR2cLA==} + engines: {node: '>= 14'} + + archiver@7.0.1: + resolution: {integrity: sha512-ZcbTaIqJOfCc03QwD468Unz/5Ir8ATtvAHsK+FdXbDIbGfihqh9mrvdcYunQzqn4HrvWWaFyaxJhGZagaJJpPQ==} + engines: {node: '>= 14'} + argparse@1.0.10: resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} @@ -1658,10 +2248,31 @@ packages: resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} engines: {node: '>=12'} + ast-types@0.16.3: + resolution: {integrity: sha512-FvWoWYfSCM6kRxCSH+MGLHIKKGRL6A6AW7Zek2O32REPQRdg131428uRTKMBYAeRd3XXAaHDS60Wpri7CdKDrA==} + engines: {node: '>=4'} + astring@1.9.0: resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==} hasBin: true + async-sema@3.1.1: + resolution: {integrity: sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==} + + async@3.2.6: + resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} + + b4a@1.9.0: + resolution: {integrity: sha512-dpfcF9fDNR6++cthXR67iyhgqWy9CBouAvIWhIntzBG6cvK/cnIPiZQjBwi/ZqjjBEDGfoNDtmB0kTjroOJ3pQ==} + peerDependencies: + react-native-b4a: '*' + peerDependenciesMeta: + react-native-b4a: + optional: true + + babel-dead-code-elimination@1.0.12: + resolution: {integrity: sha512-GERT7L2TiYcYDtYk1IpD+ASAYXjKbLTDPhBtYj7X1NuRMDTMtAx9kyBenub1Ev41lo91OHCKdmP+egTDmfQ7Ig==} + babel-plugin-jsx-dom-expressions@0.40.7: resolution: {integrity: sha512-/O6JWUmjv03OI9lL2ry9bUjpD5S3PclM55RRJEyCdcFZ5W2SEA/59d+l2hNsk3gI6kiWRdRPdOtqZmsQzFN1pQ==} peerDependencies: @@ -1679,10 +2290,57 @@ packages: bail@2.0.2: resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + balanced-match@4.0.4: + resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} + engines: {node: 18 || 20 || >=22} + + bare-events@2.9.2: + resolution: {integrity: sha512-AIPKioV7/Y/8KfZ3AAhjPJxLLbY49S64Ym5DakZlUg75qQiTgUq9hEJoEwa4eUezPUlXRy/i5NpsKvo9jgKmoA==} + peerDependencies: + bare-abort-controller: '*' + peerDependenciesMeta: + bare-abort-controller: + optional: true + + bare-fs@4.8.2: + resolution: {integrity: sha512-+ZI68KHMUvosXfKbg/UOHK0tbCdRnegbvPEdEcZ3Nd6TetieQsJPRXBRXPdLyy8+3VSEbPXtsumTpEtt78xv9w==} + engines: {bare: '>=1.28.0'} + peerDependencies: + bare-buffer: '*' + peerDependenciesMeta: + bare-buffer: + optional: true + + bare-path@3.1.2: + resolution: {integrity: sha512-ZyKbsuuqK6Ag0K8pX6V5Txq6XeJRvY+wXucnFGRjiyVYP9YWDpIQugk/b+enRYrEYBJaqLzghRQpXPMR7341Nw==} + + bare-stream@2.13.4: + resolution: {integrity: sha512-PcrQ8lVLbiJscNm1Kez+Yp4Gy4AHGcN1lzwjvf5NybWen7VvEgUfyfnXYJ2zNqWnzOfCb1Abq6lH8ti0syQszA==} + peerDependencies: + bare-abort-controller: '*' + bare-buffer: '*' + bare-events: '*' + peerDependenciesMeta: + bare-abort-controller: + optional: true + bare-buffer: + optional: true + bare-events: + optional: true + + bare-url@2.5.4: + resolution: {integrity: sha512-Gxa7UVWBr0/edU1b+TJhn/AZvMQUj9OGspvYsaTYQrAbZA4BOTZGL3LiZxvD+CeMlDH4juwD84+eTAp/bLYW5g==} + base64-js@0.0.8: resolution: {integrity: sha512-3XSA2cR/h/73EzlXXdU6YNycmYI7+kicTxks4eJg2g39biHR84slg2+des+p7iHYhbRg/udIS4TD53WabcOUkw==} engines: {node: '>= 0.4'} + base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + baseline-browser-mapping@2.11.12: resolution: {integrity: sha512-r7WnVImvVCeFpf2DOXfy41aPWzeNg3H/A2X4dKmy1QL0MSyyk/e7z8ihJ3N6Nn2PsdhkVlqnEfnUE4a05P2aTA==} engines: {node: '>=6.0.0'} @@ -1697,12 +2355,26 @@ packages: bidi-js@1.0.3: resolution: {integrity: sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw==} + bindings@1.5.0: + resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} + birpc@4.0.0: resolution: {integrity: sha512-LShSxJP0KTmd101b6DRyGBj57LZxSDYWKitQNW/mi8GRMvZb078Uf9+pveax1DrVL89vm7mWe+TovdI/UDOuPw==} boolbase@1.0.0: resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + boxen@8.0.1: + resolution: {integrity: sha512-F3PH5k5juxom4xktynS7MoFY+NUWH5LC4CnH11YB8NPew+HLpmBLCybSAEyb2F+4pRXhuhWqFesoQd6DAyc2hw==} + engines: {node: '>=18'} + + brace-expansion@2.1.7: + resolution: {integrity: sha512-uZbew1NqdmPDTMJ8ah1y+b+9QEJrfkXFk3RcTQw3X0jW/xRUvFKsg1CfQdSYGdTbXZWExtU3J3ccxtnfw1Fi0g==} + + brace-expansion@5.0.12: + resolution: {integrity: sha512-YovQ3rzhaLMIrDjNDMkNS01tea93qhEhG5xy8f6+R0l+dw3Ki+5sCoIoI942iuLZTHWogWktgwVDhU09iNEimQ==} + engines: {node: 20 || >=22} + braces@3.0.3: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} @@ -1712,9 +2384,31 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true - bundle-name@4.1.0: - resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} - engines: {node: '>=18'} + buffer-crc32@1.0.0: + resolution: {integrity: sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==} + engines: {node: '>=8.0.0'} + + buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + + buffer@6.0.3: + resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} + + bundle-name@4.1.0: + resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} + engines: {node: '>=18'} + + c12@3.3.4: + resolution: {integrity: sha512-cM0ApFQSBXuourJejzwv/AuPRvAxordTyParRVcHjjtXirtkzM0uK2L9TTn9s0cXZbG7E55jCivRQzoxYmRAlA==} + peerDependencies: + magicast: '*' + peerDependenciesMeta: + magicast: + optional: true + + camelcase@8.0.0: + resolution: {integrity: sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==} + engines: {node: '>=16'} camelize@1.0.1: resolution: {integrity: sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==} @@ -1729,6 +2423,10 @@ packages: resolution: {integrity: sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==} engines: {node: '>=18'} + chalk@5.6.2: + resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + character-entities-html4@2.1.0: resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} @@ -1741,21 +2439,75 @@ packages: character-reference-invalid@2.0.1: resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} + chokidar@4.0.3: + resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} + engines: {node: '>= 14.16.0'} + + chokidar@5.0.0: + resolution: {integrity: sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==} + engines: {node: '>= 20.19.0'} + + chownr@3.0.0: + resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==} + engines: {node: '>=18'} + + citty@0.1.6: + resolution: {integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==} + + citty@0.2.2: + resolution: {integrity: sha512-+6vJA3L98yv+IdfKGZHBNiGW5KHn22e/JwID0Strsz8h4S/csAu/OuICwxrg44k5MRiZHWIo8XXuJgQTriRP4w==} + + cli-boxes@3.0.0: + resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} + engines: {node: '>=10'} + + clipboardy@4.0.0: + resolution: {integrity: sha512-5mOlNS0mhX0707P2I0aZ2V/cmHUEO/fL7VFLqszkhUsxt7RwnmrInf/eEQKlf5GzvYeHIjT+Ov1HRfNmymlG0w==} + engines: {node: '>=18'} + + cliui@9.0.1: + resolution: {integrity: sha512-k7ndgKhwoQveBL+/1tqGJYNz097I7WOvwbmmU2AR5+magtbjPWQTS1C5vzGkBC8Ym8UWRzfKUzUUqFLypY4Q+w==} + engines: {node: '>=20'} + + cluster-key-slot@1.1.1: + resolution: {integrity: sha512-rwHwUfXL40Chm1r08yrhU3qpUvdVlgkKNeyeGPOxnW8/SyVDvgRaed/Uz54AqWNaTCAThlj6QAs3TZcKI0xDEw==} + engines: {node: '>=0.10.0'} + collapse-white-space@2.1.0: resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==} + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} comma-separated-tokens@2.0.3: resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} + commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + + commondir@1.0.1: + resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} + + compatx@0.2.0: + resolution: {integrity: sha512-6gLRNt4ygsi5NyMVhceOCFv14CIdDFN7fQjX1U4+47qVE/+kjPoXMK65KWK+dWxmFzMTuKazoQ9sch6pM0p5oA==} + + compress-commons@6.0.2: + resolution: {integrity: sha512-6FqVXeETqWPoGcfzrXb37E50NP0LXT8kAMu5ooZayhWWdgEY4lBEEcbQNXtkuKQsGduxiIcI4gOTsxTmuq/bSg==} + engines: {node: '>= 14'} + confbox@0.1.8: resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} confbox@0.2.4: resolution: {integrity: sha512-ysOGlgTFbN2/Y6Cg3Iye8YKulHw+R2fNXHrgSmXISQdMnomY6eNDprVdW9R5xBguEqI954+S6709UyiO7B+6OQ==} + confbox@0.3.1: + resolution: {integrity: sha512-cKUSoKa8YxFZZSmraVi7onONx3amu77ngK3kGpsYHDH7drPwCRkQE1RYMPlLRrMtnciRj274XNRxcHxnKmDSnA==} + consola@3.4.2: resolution: {integrity: sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==} engines: {node: ^14.18.0 || >=16.10.0} @@ -1763,9 +2515,31 @@ packages: convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + cookie-es@1.2.3: + resolution: {integrity: sha512-lXVyvUvrNXblMqzIRrxHb57UUVmqsSWlxqt3XIjCkUP0wDAf6uicO6KMbEgYrMNtEvWgWHwe42CKxPu9MYAnWw==} + cookie-es@2.0.1: resolution: {integrity: sha512-aVf4A4hI2w70LnF7GG+7xDQUkliwiXWXFvTjkip4+b64ygDQ2sJPRSKFDHbxn8o0xu9QzPkMuuiWIXyFSE2slA==} + cookie-es@3.1.1: + resolution: {integrity: sha512-UaXxwISYJPTr9hwQxMFYZ7kNhSXboMXP+Z3TRX6f1/NyaGPfuNUZOWP1pUEb75B2HjfklIYLVRfWiFZJyC6Npg==} + + core-util-is@1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + + crc-32@1.2.2: + resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} + engines: {node: '>=0.8'} + hasBin: true + + crc32-stream@6.0.0: + resolution: {integrity: sha512-piICUB6ei4IlTv1+653yq5+KoqfBYmj9bw6LqXoOneTMDXk5nM1qt12mFW1caG3LlJXEKW1Bp0WggEmIfQB34g==} + engines: {node: '>= 14'} + + croner@10.0.1: + resolution: {integrity: sha512-ixNtAJndqh173VQ4KodSdJEI6nuioBWI0V1ITNKhZZsO0pEMoDxz539T4FTTbSZ/xIOSuDnzxLVRqBVSvPNE2g==} + engines: {node: '>=18.0'} + cross-env@7.0.3: resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==} engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} @@ -1775,6 +2549,9 @@ packages: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} + crossws@0.3.5: + resolution: {integrity: sha512-ojKiDvcmByhwa8YYqbQI/hg7MEU0NC03+pSdEq4ZUnZR9xXpwk7E43SMNGkn+JxJGPFtNvQ48+vV2p+P1ml5PA==} + crossws@0.4.10: resolution: {integrity: sha512-pz3oubH/dt12KjqsUB0IuXW4nwRDQ583iDsP4555Cpdqx0NoU7pGlWBcayyFI8f/l/idRpgjMEfwuOxSWJYlIA==} peerDependencies: @@ -1819,6 +2596,10 @@ packages: resolution: {integrity: sha512-23XHcCF+coGYevirZceTVD7NdJOqVn+49IHyxgszm+JIiHLoB2TkmPtsYkNWT1pvRSGkc35L6NHs0yHkN2SumA==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} + dax-sh@0.43.2: + resolution: {integrity: sha512-uULa1sSIHgXKGCqJ/pA0zsnzbHlVnuq7g8O2fkHokWFNwEGIhh5lAJlxZa1POG5En5ba7AU4KcBAvGQWMMf8rg==} + deprecated: This package has moved to simply be 'dax' instead of 'dax-sh' + db0@0.3.4: resolution: {integrity: sha512-RiXXi4WaNzPTHEOu8UPQKMooIbqOEyqA1t7Z6MsdxSCeb8iUC9ko3LcmsLmeUt2SM5bctfArZKkRQggKZz7JNw==} peerDependencies: @@ -1842,6 +2623,14 @@ packages: sqlite3: optional: true + debug@2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + debug@4.4.3: resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} engines: {node: '>=6.0'} @@ -1857,6 +2646,10 @@ packages: decode-named-character-reference@1.3.0: resolution: {integrity: sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q==} + deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} + default-browser-id@5.0.1: resolution: {integrity: sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==} engines: {node: '>=18'} @@ -1872,10 +2665,25 @@ packages: defu@6.1.7: resolution: {integrity: sha512-7z22QmUWiQ/2d0KkdYmANbRUVABpZ9SNYyH5vx6PZ+nE5bcC0l7uFvEfHlyld/HcGBFTL536ClDt3DEcSlEJAQ==} + denque@2.1.0: + resolution: {integrity: sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==} + engines: {node: '>=0.10'} + + depd@2.0.0: + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + engines: {node: '>= 0.8'} + dequal@2.0.3: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} engines: {node: '>=6'} + destr@2.0.5: + resolution: {integrity: sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==} + + destroy@1.2.0: + resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + detect-libc@2.1.2: resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} engines: {node: '>=8'} @@ -1891,6 +2699,23 @@ packages: resolution: {integrity: sha512-9S6m9Sukh1cZNknO1CWAr2QAWsbKLafQiyM5gZ7VgXHeuaoUwffKN4q6NC4A/Mf9iiPlOXQEKW/Mv/mh9/3YFA==} hasBin: true + dot-prop@10.2.0: + resolution: {integrity: sha512-BTJ9aZYL3vCfZlZOBLy9v8TUqWGQ0pzFnygKwFZt5udj6viBoFIBviKPUoZLDCPn1FoXffv6McQFDenrm5Krfw==} + engines: {node: '>=20'} + + dotenv@17.4.2: + resolution: {integrity: sha512-nI4U3TottKAcAD9LLud4Cb7b2QztQMUEfHbvhTH09bqXTxnSie8WnjPALV/WMCrJZ6UV/qHJ6L03OqO3LcdYZw==} + engines: {node: '>=12'} + + duplexer@0.1.2: + resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} + + eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + + ee-first@1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + electron-to-chromium@1.5.402: resolution: {integrity: sha512-/oOpMaPT6Yg+6/1XQhyIPlzgj7Ye9zf+nNM2Uh6OcE2G2oNptWazFa+qB2Pdqqbsc9KnIDzgAntoYN0dbwOXwA==} @@ -1900,6 +2725,16 @@ packages: emoji-regex@10.6.0: resolution: {integrity: sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==} + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + + encodeurl@2.0.0: + resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} + engines: {node: '>= 0.8'} + entities@6.0.1: resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} engines: {node: '>=0.12'} @@ -1908,24 +2743,6 @@ packages: resolution: {integrity: sha512-zwfzJecQ/Uej6tusMqwAqU/6KL2XaB2VZ2Jg54Je6ahNBGNH6Ek6g3jjNCF0fG9EWQKGZNddNjU5F1ZQn/sBnA==} engines: {node: '>=20.19.0'} - env-runner@0.1.16: - resolution: {integrity: sha512-2LRJM4P2KLX6J83QZZrMqvgCDt/D5ea7wPcI3yYiy5cG/9rX5QwdwZFx0D7ktWnjdRyZxYjttGGorb5nFqb1CA==} - hasBin: true - peerDependencies: - '@netlify/runtime': ^4.1.23 - '@vercel/queue': '>=0.2.0' - miniflare: ^4.20260515.0 - wrangler: ^4.0.0 - peerDependenciesMeta: - '@netlify/runtime': - optional: true - '@vercel/queue': - optional: true - miniflare: - optional: true - wrangler: - optional: true - error-stack-parser-es@1.0.5: resolution: {integrity: sha512-5qucVt2XcuGMcEGgWI7i+yZpmpByQ8J1lHhcL7PwqCwu9FPP3VUXzT4ltHe5i2z9dePwEHcDVOAfSnHsOlCXRA==} @@ -1936,6 +2753,9 @@ packages: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} + es-module-lexer@1.7.0: + resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} + es-module-lexer@2.3.1: resolution: {integrity: sha512-shc1dbU90Yl/xq1QrC7QRtfcwURZuVRfPhZbDoldJ1cn1gzDvBaBWlv0eFolj5+0znnPJz5TXLxsN77X/12KTA==} @@ -1950,11 +2770,6 @@ packages: engines: {node: '>=18'} hasBin: true - esbuild@0.27.7: - resolution: {integrity: sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w==} - engines: {node: '>=18'} - hasBin: true - esbuild@0.28.1: resolution: {integrity: sha512-HrJrvZv5ayxBzPfwphOoNzkzOIIlifzk0KJrGK2c8R4+LKpMtpYLQeUdjnwjWv/LZlkH2laZk+4w78pi99D4Vw==} engines: {node: '>=18'} @@ -2003,6 +2818,28 @@ packages: estree-walker@3.0.3: resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + etag@1.8.1: + resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} + engines: {node: '>= 0.6'} + + event-target-shim@5.0.1: + resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} + engines: {node: '>=6'} + + eventemitter3@4.0.7: + resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} + + events-universal@1.0.1: + resolution: {integrity: sha512-LUd5euvbMLpwOF8m6ivPCbhQeSiYVNb8Vs0fQ8QjXo0JTkEHpz8pxdQf0gStltaPpw0Cca8b39KxvK9cfKRiAw==} + + events@3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + engines: {node: '>=0.8.x'} + + execa@8.0.1: + resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} + engines: {node: '>=16.17'} + expect-type@1.4.0: resolution: {integrity: sha512-KfYbmpRm0VbLjEvVa9yGwCi9GI34xvi7A/HXYWQO65CSD2u3MczUJSuwXKFIxlGsgBQizV9q5J9NHj4VG0n+pA==} engines: {node: '>=12.0.0'} @@ -2030,6 +2867,9 @@ packages: fast-content-type-parse@2.0.1: resolution: {integrity: sha512-nGqtvLrj5w0naR6tDPfB4cUmYCqouzyQiz6C5y/LtcDllJdrcc6WaWW6iXyIIOErTa/XRybj28aasdn4LkVk6Q==} + fast-fifo@1.3.2: + resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} + fast-glob@3.3.3: resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} engines: {node: '>=8.6.0'} @@ -2052,14 +2892,49 @@ packages: fflate@0.7.5: resolution: {integrity: sha512-QieYf//cis6ywHNi5qW1+PXPQ4bC+XVJAtS4AXIML8P76GroEiOxm/oQtn1f02UkJY1+KsXMJcC+R2v/Eg4G3g==} + file-uri-to-path@1.0.0: + resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} + + filesystem-routing@0.4.0: + resolution: {integrity: sha512-HSGdLhrkYgF4/E0IKxirCShkrGUfvavQuOOP2Nio0dCxp/PrhiATGWQPUODUJuDavD+N6hIp1K7e/rh347o9nw==} + peerDependencies: + '@tsrx/oxc': '>=0.9.0' + vite: ^6.0.0 || ^7.0.0 || ^8.0.0 + peerDependenciesMeta: + '@tsrx/oxc': + optional: true + vite: + optional: true + fill-range@7.1.1: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} + follow-redirects@1.16.1: + resolution: {integrity: sha512-FNvFGzoMLWmE6Yj9spb/zjd7yiNCHiAW9/Tg9CXrQ8wuu32HtlJOwWO11OJafl5FfY3DxTdQ0vj42zU1kvv5jg==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + + foreground-child@3.3.1: + resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} + engines: {node: '>=14'} + format@0.2.2: resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==} engines: {node: '>=0.4.x'} + fresh@0.5.2: + resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} + engines: {node: '>= 0.6'} + + fresh@2.0.0: + resolution: {integrity: sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==} + engines: {node: '>= 0.8'} + fsevents@2.3.3: resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} @@ -2072,6 +2947,25 @@ packages: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + get-east-asian-width@1.7.0: + resolution: {integrity: sha512-XjH1AECxf0giL2V1aU8vKyRR2ppRUb5c0EvT7zuJTokQ74bNo52zOtghqdWIqrhUD79fo3x0WfKZdOqxF6LG1Q==} + engines: {node: '>=18'} + + get-port-please@3.2.0: + resolution: {integrity: sha512-I9QVvBw5U/hw3RmWpYKRumUeaDgxTPd401x364rLmWBJcOQ753eov1eTgzDqRG9bqFIfDc7gfzcQEWrUri3o1A==} + + get-stream@8.0.1: + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} + engines: {node: '>=16'} + + giget@3.3.1: + resolution: {integrity: sha512-r+mvuDjrjMpsdw46Kmeydb8bdHm7wOKw8wNBtTndkjbPjgAp5oUJUxRE76wZFknxIPokfWvep2qSXK37aXE6zg==} + hasBin: true + github-slugger@2.0.0: resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==} @@ -2079,29 +2973,35 @@ packages: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} + glob@10.5.0: + resolution: {integrity: sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==} + deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me + hasBin: true + + glob@13.0.6: + resolution: {integrity: sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==} + engines: {node: 18 || 20 || >=22} + + globby@16.2.4: + resolution: {integrity: sha512-c8B/VNLmxRcmqqenRA9t+9IyOjf9+V6lTxPaUJLqOCONdQkWZ0ETYgX0qbtJqPsgCNusT9MZ5Jeidw8Eb9tn2g==} + engines: {node: '>=20'} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + gray-matter@4.0.3: resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} engines: {node: '>=6.0'} - h3@2.0.1-rc.16: - resolution: {integrity: sha512-h+pjvyujdo9way8qj6FUbhaQcHlR8FEq65EhTX9ViT5pK8aLj68uFl4hBkF+hsTJAH+H1END2Yv6hTIsabGfag==} - engines: {node: '>=20.11.1'} - hasBin: true - peerDependencies: - crossws: ^0.4.1 - peerDependenciesMeta: - crossws: - optional: true + gzip-size@7.0.0: + resolution: {integrity: sha512-O1Ld7Dr+nqPnmGpdhzLmMTQ4vAsD+rHwMm1NLUmoUFFymBOMKxCCrtDxqdBRYXdeEPEi3SyoR4TizJLQrnKBNA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - h3@2.0.1-rc.26: - resolution: {integrity: sha512-GDxlvDsKxgjRvG5UBRJYyGJTMWLV30CJ4cV+e7QCTgftDHihrvio1fVPbNembhEr6J4WNm8IWy3fookgyTweLw==} - engines: {node: '>=20.11.1'} - hasBin: true - peerDependencies: - crossws: ^0.4.9 - peerDependenciesMeta: - crossws: - optional: true + h3@1.15.11: + resolution: {integrity: sha512-L3THSe2MPeBwgIZVSH5zLdBBU90TOxarvhK9d04IDY2AmVS8j2Jz2LIWtwsGOU3lu2I5jCN7FNvVfY2+XyF+mg==} + + h3@1.15.3: + resolution: {integrity: sha512-z6GknHqyX0h9aQaTx22VZDf6QyZn+0Nh+Ym8O/u0SGSkyF5cuTJYKlc8MkzW3Nzf9LE1ivcpmYC3FUGpywhuUQ==} hasown@2.0.4: resolution: {integrity: sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==} @@ -2156,8 +3056,8 @@ packages: resolution: {integrity: sha512-Ox1pJVrDCyGHMG9CFg1tmrRUMRPRsAWYc/PinY0XzJU4K7y7vjNoLKIQ7BR5UJMCxNN8EM1MNDmHWA/B3aZUuw==} engines: {node: '>=6'} - hookable@6.1.1: - resolution: {integrity: sha512-U9LYDy1CwhMCnprUfeAZWZGByVbhd54hwepegYTK7Pi5NvqEj63ifz5z+xukznehT7i6NIZRu89Ay1AZmRsLEQ==} + hookable@5.5.3: + resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==} html-encoding-sniffer@6.0.0: resolution: {integrity: sha512-CV9TW3Y3f8/wT0BRFc1/KAVQ3TUHiXmaAb6VW9vtiMFf7SLoMd1PdAc4W3KFOFETBJUb90KatHqlsZMWV+R9Gg==} @@ -2172,15 +3072,52 @@ packages: html-void-elements@3.0.0: resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} + http-errors@2.0.1: + resolution: {integrity: sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==} + engines: {node: '>= 0.8'} + + http-proxy@1.18.1: + resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} + engines: {node: '>=8.0.0'} + + http-shutdown@1.2.2: + resolution: {integrity: sha512-S9wWkJ/VSY9/k4qcjG318bqJNruzE4HySUhFYknwmu6LBP97KLLfwNf+n4V1BHurvFNkSKLFnK/RsuUnRTf9Vw==} + engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} + + https-proxy-agent@7.0.6: + resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} + engines: {node: '>= 14'} + httpxy@0.5.5: resolution: {integrity: sha512-uDjmnPyp1q4Sgzf3w+J/Fc6UqcCEj0x4Wjp7OqK5dGhNeDgpyrAmnS6ey8QWrX3SWDon2DMKf9sBa5X9+CVyMA==} + human-signals@5.0.0: + resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} + engines: {node: '>=16.17.0'} + + ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + + ignore@7.0.12: + resolution: {integrity: sha512-/8UvqAPU9DGTI9k4mxtf49U37Isfwr8Uts96+SBHIkFxPJnHS0Ew4f00sM4Scd8V8EjM0jUNtVDdv1kPdt35lg==} + engines: {node: '>= 4'} + import-meta-resolve@4.2.0: resolution: {integrity: sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==} + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + inline-style-parser@0.2.7: resolution: {integrity: sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA==} + ioredis@5.11.1: + resolution: {integrity: sha512-ehuGcf94bQXhfagULNXrJdfnWO38v070jxSx/qE87Kjzmu2fU7ro5EFAb+OPituLqgfyuQaym5DlrNydW2sJ9A==} + engines: {node: '>=12.22.0'} + + iron-webcrypto@1.2.1: + resolution: {integrity: sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==} + is-alphabetical@2.0.1: resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} @@ -2207,6 +3144,10 @@ packages: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} @@ -2223,10 +3164,17 @@ packages: engines: {node: '>=14.16'} hasBin: true + is-module@1.0.0: + resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} + is-number@7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} + is-path-inside@4.0.0: + resolution: {integrity: sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==} + engines: {node: '>=12'} + is-plain-obj@4.1.0: resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} engines: {node: '>=12'} @@ -2234,6 +3182,17 @@ packages: is-potential-custom-element-name@1.0.1: resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} + is-reference@1.2.1: + resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} + + is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + + is-stream@3.0.0: + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + is-what@4.1.16: resolution: {integrity: sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==} engines: {node: '>=12.13'} @@ -2242,9 +3201,34 @@ packages: resolution: {integrity: sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==} engines: {node: '>=16'} + is64bit@2.0.0: + resolution: {integrity: sha512-jv+8jaWCl0g2lSBkNSVXdzfBA0npK1HGC2KtWM9FumFRoGS94g3NbCCLVnCYHLjp4GrW2KZeeSTMo5ddtznmGw==} + engines: {node: '>=18'} + + isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + isexe@3.1.5: + resolution: {integrity: sha512-6B3tLtFqtQS4ekarvLVMZ+X+VlvQekbe4taUkf/rhVO3d/h0M2rfARm/pXLcPEsjjMsFgrFgSrhQIxcSVrBz8w==} + engines: {node: '>=18'} + + jackspeak@3.4.3: + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + + jiti@1.21.7: + resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==} + hasBin: true + + jiti@2.7.0: + resolution: {integrity: sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==} + hasBin: true + + js-tokens@10.0.0: + resolution: {integrity: sha512-lM/UBzQmfJRo9ABXbPWemivdCW8V2G8FHaHdypQaIy523snUjog0W71ayWXTjiR+ixeMyVHN2XcpnTd/liPg/Q==} + js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} @@ -2278,6 +3262,21 @@ packages: resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} engines: {node: '>=0.10.0'} + kleur@4.1.5: + resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} + engines: {node: '>=6'} + + klona@2.0.6: + resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==} + engines: {node: '>= 8'} + + knitwork@1.3.0: + resolution: {integrity: sha512-4LqMNoONzR43B1W0ek0fhXMsDNW/zxa1NdFAVMY+k28pgZLovR4G3PB5MrpTxCy1QaZCqNoiaKPr5w5qZHfSNw==} + + lazystream@1.0.1: + resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} + engines: {node: '>= 0.6.3'} + lightningcss-android-arm64@1.33.0: resolution: {integrity: sha512-gEpRTalKdosp4Bb8qWtc2iOgE5SeIHlpS1up9bFq2wAyYhl1UdTObYiHe98zEM9SQvSoqQZ1IQD0JNpg3Ml5pg==} engines: {node: '>= 12.0.0'} @@ -2355,13 +3354,28 @@ packages: linebreak@1.1.0: resolution: {integrity: sha512-MHp03UImeVhB7XZtjd0E4n6+3xr5Dq/9xI/5FptGk5FrbDR3zagPa2DS6U8ks/3HjbKWG9Q1M2ufOzxV2qLYSQ==} + listhen@1.10.1: + resolution: {integrity: sha512-6nt/86SkqUQSLW1ofz8MxC6RhRMqOl3ONISe6qqvJ3xj09aJWQx6DhgSZpugs3PX4PXdOas/WD6A9jx6J2N19A==} + hasBin: true + peerDependencies: + '@parcel/watcher': ^2.5.6 + peerDependenciesMeta: + '@parcel/watcher': + optional: true + local-pkg@1.2.1: resolution: {integrity: sha512-++gUqRDEvcnN6Zhqrr+y/CkVEHhlrR96vZn3nZZPYzMcBUyBtTKzB9NadClFIsIVSsu+3i9tfk/erqy9kAmt7Q==} engines: {node: '>=14'} + lodash@4.18.1: + resolution: {integrity: sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==} + longest-streak@3.1.0: resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} + lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + lru-cache@11.5.2: resolution: {integrity: sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g==} engines: {node: 20 || >=22} @@ -2372,6 +3386,15 @@ packages: magic-string@0.30.21: resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} + magic-string@1.4.2: + resolution: {integrity: sha512-vG+rjFRj1PqdIBozIxAGMjPlOhaVe+GXpbttY/iSK7rGcJRMlwNJO7dcUwmUqkymsFLJiNGI06t4D7Fr7yRC9g==} + + magicast@0.2.11: + resolution: {integrity: sha512-6saXbRDA1HMkqbsvHOU6HBjCVgZT460qheRkLhJQHWAbhXoWESI3Kn/dGGXyKs15FFKR85jsUqFx2sMK0wy/5g==} + + magicast@0.5.5: + resolution: {integrity: sha512-UicdXN8zQ3JHlxVq+28afMXPr1z7WNY6+7EJnzTdQWkTAlMLF5fNCCKxJHBQwGaNGR11581EiQmQzx73+MvszA==} + markdown-extensions@2.0.0: resolution: {integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==} engines: {node: '>=16'} @@ -2443,6 +3466,9 @@ packages: resolution: {integrity: sha512-eRtbOb1N5iyH0tkQDAoQ4Ipsp/5qSR79Dzrz8hEPxRX10RWWR/iQXdoKmBSRCThY1Fh5EhISDtpSc93fpxUniQ==} engines: {node: '>=12.13'} + merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + merge2@1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} @@ -2562,6 +3588,53 @@ packages: resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} engines: {node: '>=8.6'} + mime-db@1.54.0: + resolution: {integrity: sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==} + engines: {node: '>= 0.6'} + + mime-types@3.0.2: + resolution: {integrity: sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==} + engines: {node: '>=18'} + + mime@1.6.0: + resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} + engines: {node: '>=4'} + hasBin: true + + mime@3.0.0: + resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} + engines: {node: '>=10.0.0'} + hasBin: true + + mime@4.1.0: + resolution: {integrity: sha512-X5ju04+cAzsojXKes0B/S4tcYtFAJ6tTMuSPBEn9CPGlrWr8Fiw7qYeLT0XyH80HSoAoqWCaz+MWKh22P7G1cw==} + engines: {node: '>=16'} + hasBin: true + + mimic-fn@4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} + + minimatch@10.2.6: + resolution: {integrity: sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==} + engines: {node: 18 || 20 || >=22} + + minimatch@5.1.9: + resolution: {integrity: sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==} + engines: {node: '>=10'} + + minimatch@9.0.9: + resolution: {integrity: sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==} + engines: {node: '>=16 || 14 >=14.17'} + + minipass@7.1.3: + resolution: {integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==} + engines: {node: '>=16 || 14 >=14.17'} + + minizlib@3.1.0: + resolution: {integrity: sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==} + engines: {node: '>= 18'} + mlly@1.8.2: resolution: {integrity: sha512-d+ObxMQFmbt10sretNDytwt85VrbkhhUA/JBGm1MPaWJ65Cl4wOgLaB1NYvJSZ0Ef03MMEU/0xpPMXUIQ29UfA==} @@ -2569,6 +3642,9 @@ packages: resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==} engines: {node: '>=10'} + ms@2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} @@ -2577,41 +3653,59 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - nf3@0.3.23: - resolution: {integrity: sha512-RWVLAWozmVD3AaDmaU3qMGB3v+yNlH5d9qqStI4e/WLlNQVnJ4YErGDbYCIrGFyrHdbF6I6Baf0Ae6c7tFYmSg==} - - nitro@3.0.260311-beta: - resolution: {integrity: sha512-0o0fJ9LUh4WKUqJNX012jyieUOtMCnadkNDWr0mHzdraoHpJP/1CGNefjRyZyMXSpoJfwoWdNEZu2iGf35TUvQ==} + nitropack@2.13.4: + resolution: {integrity: sha512-tX7bT6zxNeMwkc6hxHiZeUoTOjVrcjoh1Z3cmxOlodIqjl4HISgqfGOmkWSayky3Nv9Z5+KQH52F8nmXJY5AAA==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: - dotenv: '*' - giget: '*' - jiti: ^2.6.1 - rollup: ^4.59.0 - vite: ^7 || ^8 || >=8.0.0-0 xml2js: ^0.6.2 - zephyr-agent: ^0.1.15 peerDependenciesMeta: - dotenv: - optional: true - giget: - optional: true - jiti: - optional: true - rollup: - optional: true - vite: - optional: true xml2js: optional: true - zephyr-agent: + + node-addon-api@7.1.1: + resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} + + node-fetch-native@1.6.7: + resolution: {integrity: sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==} + + node-fetch@2.7.0: + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: optional: true + node-forge@1.4.0: + resolution: {integrity: sha512-LarFH0+6VfriEhqMMcLX2F7SwSXeWwnEAJEsYm5QKWchiVYVvJyV9v7UDvUv+w5HO23ZpQTXDv/GxdDdMyOuoQ==} + engines: {node: '>= 6.13.0'} + + node-gyp-build@4.8.4: + resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} + hasBin: true + + node-mock-http@1.0.5: + resolution: {integrity: sha512-KQyt/wLjG3TAc7DOUhpqWzgd4ERxR80JOlTK5VE5R1S12IaPVN5qkj4klBce9HPG1Njuup4Sb5bljaT34lIyjw==} + node-releases@2.0.53: resolution: {integrity: sha512-D9UOmYG3UH1V+ENW56t5QXBwJw1YEY18ruVeus89Rw+SyIgjPkCO84bRzO3uNIYosJbNwiabWVn48o3uJLjxFQ==} engines: {node: '>=18'} + nopt@8.1.0: + resolution: {integrity: sha512-ieGu42u/Qsa4TFktmaKEwM6MQH0pOWnaB3htzh0JRtx84+Mebc0cbZYN5bC+6WTZ4+77xrL9Pn5m7CV6VIkV7A==} + engines: {node: ^18.17.0 || >=20.5.0} + hasBin: true + + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + npm-run-path@5.3.0: + resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + nth-check@2.1.1: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} @@ -2619,15 +3713,20 @@ packages: resolution: {integrity: sha512-4a+OsYv9UktOJKE+l1A4OufDgdRF9PifWj+tJnHURo/P+WOxpG4GzUFL9qCalmWauao6ogiG+QvnCovwPoyAWA==} engines: {node: '>=12.20.0'} - ocache@0.1.5: - resolution: {integrity: sha512-kNNnkkVQup/QDvmTz8Q84wc2ntiyoVHDxa6eHWKt5qdGAmFRBIxy83rxgCYEjW0x06UJ9E3P6VgM2yY4rOBH4w==} - - ofetch@2.0.0-alpha.3: - resolution: {integrity: sha512-zpYTCs2byOuft65vI3z43Dd6iSdFbOZZLb9/d21aCpx2rGastVU9dOCv0lu4ykc1Ur1anAYjDi3SUvR0vq50JA==} + ofetch@1.5.1: + resolution: {integrity: sha512-2W4oUZlVaqAPAil6FUg/difl6YhqhUR7x2eZY4bQCko22UXg3hptq9KLQdqFClV+Wu85UX7hNtdGTngi/1BxcA==} ohash@2.0.11: resolution: {integrity: sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==} + on-finished@2.4.1: + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} + engines: {node: '>= 0.8'} + + onetime@6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} + oniguruma-parser@0.12.2: resolution: {integrity: sha512-6HVa5oIrgMC6aA6WF6XyyqbhRPJrKR02L20+2+zpDtO5QAzGHAUGw5TKQvwi5vctNnRHkJYmjAhRVQF2EKdTQw==} @@ -2641,6 +3740,13 @@ packages: resolution: {integrity: sha512-smsWv2LzFjP03xmvFoJ331ss6h+jixfA4UUV/Bsiyuu4YJPfN+FIQGOIiv4w9/+MoHkfkJ22UIaQWRVFRfH6Vw==} engines: {node: '>=20'} + oxc-parser@0.139.0: + resolution: {integrity: sha512-cf1TKZN+zc0lwqigeyXKzKVk5+vNRe99Or2+wVJsXLdlhJgC+gsIniYDfj/ZEBzCJ8Xm21ZG6YtMbR262CcS2w==} + engines: {node: ^20.19.0 || >=22.12.0} + + package-json-from-dist@1.0.1: + resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} + package-manager-detector@1.8.0: resolution: {integrity: sha512-yQA4H19AmPEoMUeavPMDIe1higySl/gH/yaQrkT/s07Qp+7pp2hYz30N3z2l5BkjVkF9Ow6o0wjJamm2y7Sn0A==} @@ -2662,15 +3768,34 @@ packages: parse5@8.0.1: resolution: {integrity: sha512-z1e/HMG90obSGeidlli3hj7cbocou0/wa5HacvI3ASx34PecNjNQeaHNo5WIZpWofN9kgkqV1q5YvXe3F0FoPw==} + parseurl@1.3.3: + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} + engines: {node: '>= 0.8'} + path-key@3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} + path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} + path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - path-to-regexp@8.4.2: - resolution: {integrity: sha512-qRcuIdP69NPm4qbACK+aDogI5CBDMi1jKe0ry5rSQJz8JVLsC7jV8XpiJjGRLLol3N+R5ihGYcrPLTno6pAdBA==} + path-scurry@1.11.1: + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} + + path-scurry@2.0.2: + resolution: {integrity: sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==} + engines: {node: 18 || 20 || >=22} + + path-to-regexp@6.3.0: + resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==} + + pathe@1.1.2: + resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} pathe@2.0.3: resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} @@ -2689,12 +3814,19 @@ packages: resolution: {integrity: sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==} engines: {node: '>=12'} + picomatch@4.0.7: + resolution: {integrity: sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==} + engines: {node: '>=12'} + pkg-types@1.3.1: resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} pkg-types@2.3.1: resolution: {integrity: sha512-y+ichcgc2LrADuhLNAx8DFjVfgz91pRxfZdI3UDhxHvcVEZsenLO+7XaU5vOp0u/7V/wZ+plyuQxtrDlZJ+yeg==} + pkg-types@2.3.3: + resolution: {integrity: sha512-j/lCFdcppV0JxWpCEITdbDltBxPP6cHT+yNJ6Go2OgoSA9518X847X9z0p6LtA4Nc16+eQzCZjRrWanTGvHJ5w==} + postcss-nested@6.2.0: resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==} engines: {node: '>=12.0'} @@ -2716,11 +3848,32 @@ packages: resolution: {integrity: sha512-dM0jVuXJPsDN6DvRpea484tCUaMiXWjuCn++HGTqUWzGDjv5tZkEZldAJ/UMlqRYGFrD/etByo4/xOuC/snX2A==} engines: {node: '>=20'} + prerender-crawler@0.2.0: + resolution: {integrity: sha512-3Ek26TejDpGWUyCpmT5E53o/WjasdkVWfcvIOGMwFJ4hfP08B8IRx0as8t0PVeLFr28VfI1EKPG6MWN7j4rE0A==} + engines: {node: '>=20'} + hasBin: true + peerDependencies: + vite: ^7.0.0 || ^8.0.0 + peerDependenciesMeta: + vite: + optional: true + prettier@4.0.0-alpha.13: resolution: {integrity: sha512-177K/2S5iYDKtvZkDC2ZMqpyXtoiiVQBVQZpcQsRs+ZIIUQxsXomWIjquAlwt2pXpio9riz5IgtaUEnoZH44tg==} engines: {node: '>=18'} hasBin: true + pretty-bytes@7.2.0: + resolution: {integrity: sha512-T2kroepGB5DRVbkN/nOpW03+VRWqdtJhZNuCW3wYk3chdPjgi4GcTBOaxWfHq1MIM0ypidxsSWbQaAiRpxnXmg==} + engines: {node: '>=20'} + + process-nextick-args@2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + + process@0.11.10: + resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} + engines: {node: '>= 0.6.0'} + property-information@7.2.0: resolution: {integrity: sha512-IAtzIB6sUiWaJYrX9smp3V46pBGbBeLFRGdh25kg1334VcBlD8HzhPeNIWQH9zhGmo2itIe25EHt9dQP7G5hmg==} @@ -2737,6 +3890,39 @@ packages: radix3@1.1.2: resolution: {integrity: sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==} + range-parser@1.2.1: + resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} + engines: {node: '>= 0.6'} + + range-parser@1.3.0: + resolution: {integrity: sha512-hek2mFQpPuI4E1BBKrSto+BU3e3x4xuarsbiwr3+lf7p44juvFMV0XFWQAP3xUyqXA4RrXLIoaSUGbSt056ZMw==} + engines: {node: '>= 0.6'} + + rc9@3.1.0: + resolution: {integrity: sha512-ufjkNVzbRHKcCOmTahZkmVsyc3W+MSk3jY03m+a7tGHkIsdVMG9l10/3HvFbWkkKzY5VFp3pkRsIo/UYgmFL7Q==} + + readable-stream@2.3.8: + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + + readable-stream@4.7.0: + resolution: {integrity: sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + readdir-glob@1.1.3: + resolution: {integrity: sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==} + + readdirp@4.1.2: + resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} + engines: {node: '>= 14.18.0'} + + readdirp@5.1.1: + resolution: {integrity: sha512-Kko+Y5XQ6fM+Ce3dq3m9YGxnacYZYl9cA1wZjaF3Vbry2L3i1qVg8+CAgNPsXRArPMUMCaOR7oa9Nqntc43JKA==} + engines: {node: '>= 20.19.0'} + + recast@0.23.21: + resolution: {integrity: sha512-mFAyJq9vUbSTARLZUvAEf1z3YxlvAwswbmxMx2mPA/MSm4KmpwvwvhsH/NIrZhyOuwD60Lzyw2qh83uCbgTPYw==} + engines: {node: '>= 4'} + recma-build-jsx@1.0.0: resolution: {integrity: sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==} @@ -2751,6 +3937,14 @@ packages: recma-stringify@1.0.0: resolution: {integrity: sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g==} + redis-errors@1.2.0: + resolution: {integrity: sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==} + engines: {node: '>=4'} + + redis-parser@3.0.0: + resolution: {integrity: sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==} + engines: {node: '>=4'} + regex-recursion@5.1.1: resolution: {integrity: sha512-ae7SBCbzVNrIjgSbh7wMznPcQel1DNlDtzensnFxpiNpXt1U2ju/bHugH422r+4LAVS1FpW1YCwilmnNsjum9w==} @@ -2809,6 +4003,13 @@ packages: resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} engines: {node: '>=0.10.0'} + requires-port@1.0.0: + resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} + + resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + resolve@1.22.12: resolution: {integrity: sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==} engines: {node: '>= 0.4'} @@ -2828,11 +4029,23 @@ packages: engines: {node: ^20.19.0 || >=22.12.0} hasBin: true - rou3@0.8.1: - resolution: {integrity: sha512-ePa+XGk00/3HuCqrEnK3LxJW7I0SdNg6EFzKUJG73hMAdDcOUC/i/aSz7LSDwLrGr33kal/rqOGydzwl6U7zBA==} + rollup-plugin-visualizer@7.1.1: + resolution: {integrity: sha512-ThaGiHTU8XW02OkK80TrTHATraJmM9OAduU4otal+7gyXLpYEtmGBLfx5kW+EHvvLwn03YGW2NnwKUIqsYlJAA==} + engines: {node: '>=22'} + hasBin: true + peerDependencies: + rolldown: 1.x || ^1.0.0-beta || ^1.0.0-rc + rollup: 2.x || 3.x || 4.x + peerDependenciesMeta: + rolldown: + optional: true + rollup: + optional: true - rou3@0.9.1: - resolution: {integrity: sha512-z/sSmzvtwMDDnxsPVhfWMuG6F6mbmhFDXoVqLmMfbpDD9qfV3GDmSQpf0+W296/ZDIpW2wcMmBfpVFzcnOi/nA==} + rollup@4.64.0: + resolution: {integrity: sha512-gjA/kFeDfffII8COoPsvLPvE16hWDTEc1+0QKQNKUkuV8iJjqsC4xXs8/FzuL0v9EV39kuxTbAgcFoTRyy2TGQ==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true run-applescript@7.1.0: resolution: {integrity: sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==} @@ -2841,6 +4054,12 @@ packages: run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + safe-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + satori-html@0.3.2: resolution: {integrity: sha512-wjTh14iqADFKDK80e51/98MplTGfxz2RmIzh0GqShlf4a67+BooLywF17TvJPD6phO0Hxm7Mf1N5LtRYvdkYRA==} @@ -2863,25 +4082,46 @@ packages: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true - seroval-plugins@1.5.6: - resolution: {integrity: sha512-HXuLAX2pu/UByPpaeo/TaMfvMIi+1QqIoPJYCcAtU8QkVNwgR6MPlGuCQTErV1JwraaMbYaWVIBX7mppzGLATQ==} + semver@7.8.5: + resolution: {integrity: sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==} engines: {node: '>=10'} - peerDependencies: - seroval: ^1.0 + hasBin: true + + send@0.19.2: + resolution: {integrity: sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==} + engines: {node: '>= 0.8.0'} + + send@1.2.1: + resolution: {integrity: sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==} + engines: {node: '>= 18'} - seroval-plugins@1.6.2: - resolution: {integrity: sha512-TfxuUjlbBESzUOWdTkTKqvSmav0ABym+itetDXLK6mDz8SmrpdI30aF8RTXE8Bvq+tH/1yIDkvy3W0lfQb1ipQ==} + serialize-javascript@7.1.2: + resolution: {integrity: sha512-GL2BWwVa6JydKO6l/ljVgjAZF4QJ3S7dWDWi53s5GZT8PJzD2fNxi67HANQGKAqPrwEpL5ba7gUBGi0Ls/sEoQ==} + engines: {node: '>=20.0.0'} + + seroval-plugins@1.6.8: + resolution: {integrity: sha512-N7mWAMydj89EnYTHtRpS3LBrAz3J9O6oVrqpuXuvlAHfAUG8WEKqtbAd7SBiJNY5NfCAFhSdyAh7wI4Shjqy4g==} engines: {node: '>=10'} peerDependencies: seroval: ^1.0 - seroval@1.5.6: - resolution: {integrity: sha512-rVQVWjjSvlINzaQPZH5JFqsqEsIWdTxY3iJZCnTL/5gQbXIRooVZKI60tVCkOVfzcRPejboxO2t0P89dg5mQaA==} + seroval@1.6.8: + resolution: {integrity: sha512-HlSgSAkTk4EqHcje1ptJjfZi1YDv5KbhVJ/d3P7T/nAXua2VmDu+AKDX5VTdFfZf48nDkWB2TKYt0DrCSa+3wg==} engines: {node: '>=10'} - seroval@1.6.2: - resolution: {integrity: sha512-mPT+SD2TrlB6wvte1KkYOYUkubaTbd6pZ/6Kk3C9nxzrHmCZyhxOO7XGAeL7f+yLKZglzGtM9odUVvg/EhO+vQ==} - engines: {node: '>=10'} + serve-placeholder@2.0.2: + resolution: {integrity: sha512-/TMG8SboeiQbZJWRlfTCqMs2DD3SZgWp0kDQePz9yUuCnDfDh/92gf7/PxGhzXTKBIPASIHxFcZndoNbp6QOLQ==} + + serve-static@1.16.3: + resolution: {integrity: sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==} + engines: {node: '>= 0.8.0'} + + serve-static@2.2.1: + resolution: {integrity: sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw==} + engines: {node: '>= 18'} + + setprototypeof@1.2.0: + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} @@ -2900,22 +4140,25 @@ packages: siginfo@2.0.0: resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + sirv@3.0.2: resolution: {integrity: sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g==} engines: {node: '>=18'} - solid-js@1.9.14: - resolution: {integrity: sha512-sAEXC0Kk0S1EDg+8ysEWJDbYhA3RRoEjwuySUGlKIemeo0I5YZfOyumNjNs9Sv3y2nmhD+0rW66ag2HsMuQiGQ==} + slash@5.1.0: + resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} + engines: {node: '>=14.16'} - solid-presence@0.1.8: - resolution: {integrity: sha512-pWGtXUFWYYUZNbg5YpG5vkQJyOtzn2KXhxYaMx/4I+lylTLYkITOLevaCwMRN+liCVk0pqB6EayLWojNqBFECA==} - peerDependencies: - solid-js: ^1.8 + smob@1.6.2: + resolution: {integrity: sha512-RQsvleCbF8cVHEv+xuDGaA4pOizFqJ0GgjtMSRo6oP8pnN7WsigHgVGey6aILRBKv4W2YOMHLqbKdnB6hpB9fw==} + engines: {node: '>=20.0.0'} - solid-prevent-scroll@0.1.11: - resolution: {integrity: sha512-2PComVCDHaQN/5t7ogEqUYeHasritZKXZ8Sb/VLkl0Web8o9YhEwOo8LSujJEahvMlYCNyKt0zRJeHldOAeWZg==} - peerDependencies: - solid-js: ^1.8 + solid-js@2.0.0-rc.14: + resolution: {integrity: sha512-fmaqUHgbITf18Hedur6gPnaPE4GrdPgkTbLujHqM5Vl5jxWf9rxwFh6hZMXQs+Kg1pu8KYuOMfqnuSizFQ9I6Q==} + engines: {node: '>=22.12.0'} solid-refresh@0.6.3: resolution: {integrity: sha512-F3aPsX6hVw9ttm5LYlth8Q15x6MlI/J3Dn+o3EQyRTtTxidepSTwAYdozt01/YA+7ObcciagGEyXIopGZzQtbA==} @@ -2932,21 +4175,27 @@ packages: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} + source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + + source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + source-map@0.7.6: resolution: {integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==} engines: {node: '>= 12'} + source-map@0.8.0: + resolution: {integrity: sha512-d8EqvL+k/SOXCreS/SUzg2ciyHqBBLcN/yuRjFsbvVhHTE2pgei7oAhmPM7kWFbkX6OSMQfUq4KbkF3au9lhYQ==} + engines: {node: '>= 12'} + space-separated-tokens@2.0.2: resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} sprintf-js@1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} - srvx@0.11.22: - resolution: {integrity: sha512-LqZxxBDMKuMAZzFzJnDCkFOrs9MZQZr0LvHiO/SuSZVdQaXD7xQ5UWTUxheJrQPve1qk9MG2B/yttUvJxw8egQ==} - engines: {node: '>=20.16.0'} - hasBin: true - srvx@0.12.5: resolution: {integrity: sha512-IuvtDNQg5EIwv3c6dleyau7u8hCyGQ7D6+V/QM799Aud07z0wCUcurKLTRfyG33C8oUY+UWcVBFkfHMcbtmRLA==} engines: {node: '>=20.16.0'} @@ -2958,28 +4207,82 @@ packages: stackframe@1.3.4: resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==} + standard-as-callback@2.1.0: + resolution: {integrity: sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==} + + statuses@2.0.2: + resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==} + engines: {node: '>= 0.8'} + + std-env@3.10.0: + resolution: {integrity: sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==} + std-env@4.2.0: resolution: {integrity: sha512-oCUKSupKTHX53EyjDtuZQ64pjLJ6yYCtpmEw0goYxtjG9KpbRe8KAsl2tBUGU9DyMcJ0RwJ8GqJAFzMXcXW1Rw==} + streamx@2.28.1: + resolution: {integrity: sha512-zEzXb0s5Cds7tqMH6rhZ05lcJydCWiQPEwiNngVqzsxCc962vLY4Uw+mW7od8kDH258k2Uz/JrOkdIAAhSh9VA==} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + + string-width@7.2.0: + resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} + engines: {node: '>=18'} + + string-width@8.3.0: + resolution: {integrity: sha512-ZbmZM0JCihQN91dWnxoipT2KOEyHqEyfRXUyjuRhW8b/xnqPDoq4gWEVApTVa9db2wN8mmoikgFBbjh71+cGeQ==} + engines: {node: '>=20'} + string.prototype.codepointat@0.2.1: resolution: {integrity: sha512-2cBVCj6I4IOvEnjgO/hWqXjqBGsY+zwPmHl12Srk9IXSZ56Jwwmy+66XO5Iut/oQVR7t5ihYdLB0GMa4alEUcg==} + string_decoder@1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + + string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + stringify-entities@4.0.4: resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-ansi@7.2.0: + resolution: {integrity: sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==} + engines: {node: '>=12'} + strip-bom-string@1.0.0: resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==} engines: {node: '>=0.10.0'} + strip-final-newline@3.0.0: + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: '>=12'} + strip-literal@3.1.0: resolution: {integrity: sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg==} + strip-literal@4.0.0: + resolution: {integrity: sha512-PaqAvfUZKBwc/SLmNZtHmzK+v19Z4O4eS3cKPeGvbIv/U3pnyEq4Tuw3/4v/FwfM8VQaEawsyCcOQ0P+kpwWWw==} + style-to-js@1.1.21: resolution: {integrity: sha512-RjQetxJrrUJLQPHbLku6U/ocGtzyjbJMP9lCNK7Ag0CNh690nSH8woqWH9u16nMjYBAok+i7JO1NP2pOy8IsPQ==} style-to-object@1.0.14: resolution: {integrity: sha512-LIN7rULI0jBscWQYaSswptyderlarFkjQ+t79nzty8tcIAceVomEVlLzH5VP4Cmsv6MtKhs7qaAiwlcp+Mgaxw==} + supports-color@10.2.2: + resolution: {integrity: sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g==} + engines: {node: '>=18'} + supports-preserve-symlinks-flag@1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} @@ -2987,18 +4290,51 @@ packages: symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} + system-architecture@0.1.0: + resolution: {integrity: sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA==} + engines: {node: '>=18'} + + tagged-tag@1.0.0: + resolution: {integrity: sha512-yEFYrVhod+hdNyx7g5Bnkkb0G6si8HJurOoOEgC8B/O0uXLHlaey/65KRv6cuWBNhBgHKAROVpc7QyYqE5gFng==} + engines: {node: '>=20'} + + tar-stream@3.2.2: + resolution: {integrity: sha512-+8NeqHRjQWH9nYlwo2gamAMImZCVzI4UoEgDpWorBt9OEfppiZn+uSkskzQKPWIZyji/C8fpWO7u69G0DX0tbg==} + + tar@7.5.22: + resolution: {integrity: sha512-MFO/QzvtAOmJbkhOaCTvbGcFN9L9b+JunIsDwaKljSOdcLMea3NJ1k9Usz/rjdfSXTq4dfzfeS7W4p4YOAAHeA==} + engines: {node: '>=18'} + + teex@1.0.1: + resolution: {integrity: sha512-eYE6iEI62Ni1H8oIa7KlDU6uQBtqr4Eajni3wX7rpfXD8ysFx8z0+dri+KWEPWpBsxXfxu58x/0jvTVT1ekOSg==} + terracotta@1.1.1: resolution: {integrity: sha512-Sa6wnvkGMFmPq8N/wQb2aKkIW2eXH0LJvUOEk6QZLBEjqy+LsbzAOpDuqEfOmfA/hexssE6eQve2i1IIOeOh4g==} engines: {node: '>=10'} peerDependencies: solid-js: ^1.8 + terser@5.51.2: + resolution: {integrity: sha512-bWnjSNscmuI+GJze6ZupnHP8G/cTcsJF+bXCeQknk2SHQsgbNJnLrqiH9jZ2W4STPVXH2mDKKRX3iwPhc9Cn/Q==} + engines: {node: '>=10'} + hasBin: true + + text-decoder@1.2.7: + resolution: {integrity: sha512-vlLytXkeP4xvEq2otHeJfSQIRyWxo/oZGEbXrtEEF9Hnmrdly59sUbzZ/QgyWuLYHctCHxFF4tRQZNQ9k60ExQ==} + tiny-inflate@1.0.3: resolution: {integrity: sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==} + tiny-invariant@1.3.3: + resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} + tinybench@2.9.0: resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} + tinyclip@0.1.15: + resolution: {integrity: sha512-uo33abH+Ays0xYaDysoBt494Hb3hsEczMpcC0MwFl773pazORx4fmvKhclhR1wonUbB6vvpRsvVMwnhfqeMc+A==} + engines: {node: ^16.14.0 || >= 17.3.0} + tinyexec@1.3.0: resolution: {integrity: sha512-QKAl9m8gWWGHV8jZcPeym6j+XULi6tOf1mT83WYJ4Lk2ytW/uwAWkrP0uFsdoYMdueVJ0qs26wZ+23xeB4ibNQ==} engines: {node: '>=18'} @@ -3022,6 +4358,10 @@ packages: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} + toidentifier@1.0.1: + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + engines: {node: '>=0.6'} + toml@3.0.0: resolution: {integrity: sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==} @@ -3033,6 +4373,9 @@ packages: resolution: {integrity: sha512-exgYmnmL/sJpR3upZfXG5PoatXQii55xAiXGXzY+sROLZ/Y+SLcp9PgJNI9Vz37HpQ74WvDcLT8eqm+kV3FzrA==} engines: {node: '>=16'} + tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + tr46@6.0.0: resolution: {integrity: sha512-bLVMLPtstlZ4iMQHpFHTR7GAGj2jxi8Dg0s2h2MafAE4uSWF98FC/3MomU51iQAMf8/qDUbKWf5GxuvvVcXEhw==} engines: {node: '>=20'} @@ -3059,6 +4402,14 @@ packages: peerDependencies: typescript: '*' + type-fest@4.41.0: + resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==} + engines: {node: '>=16'} + + type-fest@5.10.0: + resolution: {integrity: sha512-NoSdpq/WEiAg5sjmBkmV/hfxv6HJH4NqPNrqjtSO5CwRmpsDfaf4begxW34KdJykH/l1yHtwBWQkCRdoXO8mPA==} + engines: {node: '>=20'} + typescript@5.9.3: resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} engines: {node: '>=14.17'} @@ -3070,6 +4421,15 @@ packages: ultrahtml@1.7.0: resolution: {integrity: sha512-2xRd0VHoAQE4M+vF/DvFFB7pUV0ZxTW1TLi7lHQWnF/Sb5TPeEUV/l+hxcNnGO00ZXGnR0voCMmYRKQf+rvJ2g==} + uncrypto@0.1.3: + resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==} + + unctx@2.5.0: + resolution: {integrity: sha512-p+Rz9x0R7X+CYDkT+Xg8/GhpcShTlU8n+cf9OtOEf7zEQsNcCZO1dPKNRDqvUTaq+P32PMMkxWHwfrxkqfqAYg==} + + undici-types@5.28.4: + resolution: {integrity: sha512-3OeMF5Lyowe8VW0skf5qaIE7Or3yS9LS7fvMUI0gg4YxpIBVg0L8BxCmROw2CcYhSkpR68Epz7CGc8MPj94Uww==} + undici-types@8.3.0: resolution: {integrity: sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ==} @@ -3077,12 +4437,19 @@ packages: resolution: {integrity: sha512-IDxfleLmmbSskfWSUATiN1nfn2rDuvnMOqb5CWR92iIfojA0Ud+ulOAAEQ57LPr9rWmsreUyf5lwyao+7GNNVw==} engines: {node: '>=20.18.1'} + unenv@1.10.0: + resolution: {integrity: sha512-wY5bskBQFL9n3Eca5XnhH6KbUo/tfvkwm9OpcdCvLaeA7piBNbavbOKJySEwQ1V0RH6HvNlSAFRTpvTqgKRQXQ==} + unenv@2.0.0-rc.24: resolution: {integrity: sha512-i7qRCmY42zmCwnYlh9H2SvLEypEFGye5iRmEMKjcGi7zk9UquigRjFtTLz0TYqr0ZGLZhaMHl/foy1bZR+Cwlw==} unicode-trie@2.0.0: resolution: {integrity: sha512-x7bc76x0bm4prf1VLg79uhAzKw8DVboClSN5VxJuQ+LKDOVEW9CdH+VY7SP+vX7xCYQqzzgQpFqz15zeLvAtZQ==} + unicorn-magic@0.4.1: + resolution: {integrity: sha512-lzlXPoVB0Uy/FvTaUgX39RbixYiSKoc3JSoSf01+0c2B6FR3qdYIPN7Qjo/AV7n6sqLCk0509cT3LRj1oSZ1+A==} + engines: {node: '>=20'} + unified@11.0.5: resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} @@ -3090,6 +4457,18 @@ packages: resolution: {integrity: sha512-mYVtA0nmzrysnYnyb3ALMbByJ+Maosee2+WyE0puXl+Xm2bUwPorPaaeZt0ETfuroPOtG8jj1g/qeFZ6buFnag==} engines: {node: '>=18.12.0'} + unimport@6.5.0: + resolution: {integrity: sha512-t0KLJLRbebz3f7NrQe+vy2ObeugVeM1XqI2oeYnauddmHSglYj3U6bxOJ65IbXmOFkcAGFJK2OyGH7aqHPM6Ug==} + engines: {node: '>=18.12.0'} + peerDependencies: + oxc-parser: '*' + rolldown: ^1.0.0 + peerDependenciesMeta: + oxc-parser: + optional: true + rolldown: + optional: true + unist-builder@4.0.0: resolution: {integrity: sha512-wmRFnH+BLpZnTKpc5L7O67Kac89s9HMrtELpnNaE6TAobq5DTZZs5YaTQfAZBA9bFPECx2uVAPO31c+GVug8mg==} @@ -3167,32 +4546,64 @@ packages: resolution: {integrity: sha512-5uKD0nqiYVzlmCRs01Fhs2BdkEgBS3SAVP6ndrBsuK42iC2+JHyxM05Rm9G8+5mkmRtzMZGY8Ct5+mliZxU/Ww==} engines: {node: '>=18.12.0'} - unstorage@2.0.0-alpha.7: - resolution: {integrity: sha512-ELPztchk2zgFJnakyodVY3vJWGW9jy//keJ32IOJVGUMyaPydwcA1FtVvWqT0TNRch9H+cMNEGllfVFfScImog==} + unplugin@3.4.0: + resolution: {integrity: sha512-9skdIFlCsPdFV7wUfZxNsFInlW+7nJmGu2gkTu0OUhF56aXGsHab9x52/QhdJ4lC7ZDPWTxbiC4ANqVlsuaW3w==} + engines: {node: ^20.19.0 || >=22.12.0} + peerDependencies: + '@farmfe/core': '*' + '@rsbuild/core': '*' + '@rspack/core': '*' + bun-types-no-globals: '*' + esbuild: '*' + rolldown: '*' + rollup: '*' + unloader: '*' + vite: '*' + webpack: '*' + peerDependenciesMeta: + '@farmfe/core': + optional: true + '@rsbuild/core': + optional: true + '@rspack/core': + optional: true + bun-types-no-globals: + optional: true + esbuild: + optional: true + rolldown: + optional: true + rollup: + optional: true + unloader: + optional: true + vite: + optional: true + webpack: + optional: true + + unstorage@1.17.5: + resolution: {integrity: sha512-0i3iqvRfx29hkNntHyQvJTpf5W9dQ9ZadSoRU8+xVlhVtT7jAX57fazYO9EHvcRCfBCyi5YRya7XCDOsbTgkPg==} peerDependencies: - '@azure/app-configuration': ^1.11.0 - '@azure/cosmos': ^4.9.1 - '@azure/data-tables': ^13.3.2 - '@azure/identity': ^4.13.0 - '@azure/keyvault-secrets': ^4.10.0 - '@azure/storage-blob': ^12.31.0 + '@azure/app-configuration': ^1.8.0 + '@azure/cosmos': ^4.2.0 + '@azure/data-tables': ^13.3.0 + '@azure/identity': ^4.6.0 + '@azure/keyvault-secrets': ^4.9.0 + '@azure/storage-blob': ^12.26.0 '@capacitor/preferences': ^6 || ^7 || ^8 - '@deno/kv': '>=0.13.0' + '@deno/kv': '>=0.9.0' '@netlify/blobs': ^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0 '@planetscale/database': ^1.19.0 - '@upstash/redis': ^1.36.2 - '@vercel/blob': '>=0.27.3' + '@upstash/redis': ^1.34.3 + '@vercel/blob': '>=0.27.1' '@vercel/functions': ^2.2.12 || ^3.0.0 - '@vercel/kv': ^1.0.1 + '@vercel/kv': ^1 || ^2 || ^3 aws4fetch: ^1.0.20 - chokidar: ^4 || ^5 - db0: '>=0.3.4' - idb-keyval: ^6.2.2 - ioredis: ^5.9.3 - lru-cache: ^11.2.6 - mongodb: ^6 || ^7 - ofetch: '*' - uploadthing: ^7.7.4 + db0: '>=0.2.1' + idb-keyval: ^6.2.1 + ioredis: ^5.4.2 + uploadthing: ^7.4.4 peerDependenciesMeta: '@azure/app-configuration': optional: true @@ -3224,29 +4635,39 @@ packages: optional: true aws4fetch: optional: true - chokidar: - optional: true db0: optional: true idb-keyval: optional: true ioredis: optional: true - lru-cache: - optional: true - mongodb: - optional: true - ofetch: - optional: true uploadthing: optional: true + untun@0.1.3: + resolution: {integrity: sha512-4luGP9LMYszMRZwsvyUd9MrxgEGZdZuZgpVQHEEX0lCYFESasVRvZd0EYpCkOIbJKHMuv0LskpXc/8Un+MJzEQ==} + hasBin: true + + untun@0.2.2: + resolution: {integrity: sha512-+NnOJcSiEtYsVgJmXUzQbJeRAFXJC4yPJYuh6kF9B0Rm6zunXcs/3GZOTllyocSbUDIxD6Bj7e/4ATw7sph1Sw==} + hasBin: true + + untyped@2.0.0: + resolution: {integrity: sha512-nwNCjxJTjNuLCgFr42fEak5OcLuB3ecca+9ksPFNvtfYSLpjf+iJqSIaSnIile6ZPbKYxI5k2AfXqeopGudK/g==} + hasBin: true + + unwasm@0.5.3: + resolution: {integrity: sha512-keBgTSfp3r6+s9ZcSma+0chwxQdmLbB5+dAD9vjtB21UTMYuKAxHXCU1K2CbCtnP09EaWeRvACnXk0EJtUx+hw==} + update-browserslist-db@1.2.3: resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' + uqr@0.1.3: + resolution: {integrity: sha512-0rjE8iEJe4YmT9TOhwsZtqCMRLc5DXZUI2UEYUUg63ikBkqqE5EYWaI0etFe/5KUcmcYwLih2RND1kq+hrUJXA==} + util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} @@ -3259,6 +4680,10 @@ packages: vfile@6.0.3: resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} + vinxi@0.5.11: + resolution: {integrity: sha512-82Qm+EG/b2PRFBvXBbz1lgWBGcd9totIL6SJhnrZYfakjloTVG9+5l6gfO6dbCCtztm5pqWFzLY0qpZ3H3ww/w==} + hasBin: true + vite-dev-rpc@2.0.0: resolution: {integrity: sha512-yKwbTwdHKSD2k/aGqyWpPHepo45OQc8lH3/6IfT4ZqeKE26ooKvi4WIEKzqWav8v+9Is8u1k8q54hvOmqASazA==} peerDependencies: @@ -3292,6 +4717,46 @@ packages: '@testing-library/jest-dom': optional: true + vite@6.4.3: + resolution: {integrity: sha512-NTKlcQjlAK7MlQoyb6LgaqHc8sso/pVyUJYWMws3jg21uTJw/LddqIFPcPqP6PzpgbIcZyKI85sFE4HBrQDA8A==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 + jiti: '>=1.21.0' + less: '*' + lightningcss: ^1.21.0 + sass: '*' + sass-embedded: '*' + stylus: '*' + sugarss: '*' + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + '@types/node': + optional: true + jiti: + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + vite@8.0.0: resolution: {integrity: sha512-fPGaRNj9Zytaf8LEiBhY7Z6ijnFKdzU/+mL8EFBaKr7Vw1/FWcTBAMW0wLPJAGMPX38ZPVCVgLceWiEqeoqL2Q==} engines: {node: ^20.19.0 || >=22.12.0} @@ -3434,6 +4899,9 @@ packages: web-namespaces@2.0.1: resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} + webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + webidl-conversions@8.0.1: resolution: {integrity: sha512-BMhLD/Sw+GbJC21C/UgyaZX41nPt8bUTg+jWyDeg7e7YN4xOM05YPSIXceACnXVtqyEw/LMClUQMtMZ+PGGpqQ==} engines: {node: '>=20'} @@ -3449,16 +4917,40 @@ packages: resolution: {integrity: sha512-1to4zXBxmXHV3IiSSEInrreIlu02vUOvrhxJJH5vcxYTBDAx51cqZiKdyTxlecdKNSjj8EcxGBxNf6Vg+945gw==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} + whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} hasBin: true + which@4.0.0: + resolution: {integrity: sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==} + engines: {node: ^16.13.0 || >=18.0.0} + hasBin: true + why-is-node-running@2.3.0: resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} engines: {node: '>=8'} hasBin: true + widest-line@5.0.0: + resolution: {integrity: sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA==} + engines: {node: '>=18'} + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + + wrap-ansi@9.0.2: + resolution: {integrity: sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==} + engines: {node: '>=18'} + wsl-utils@0.3.1: resolution: {integrity: sha512-g/eziiSUNBSsdDJtCLB8bdYEUMj4jR7AGeUo96p/3dTafgjHhpF4RiCFPiRILwjQoDXx5MqkBr4fwWtR3Ky4Wg==} engines: {node: '>=20'} @@ -3470,17 +4962,46 @@ packages: xmlchars@2.2.0: resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + yallist@3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + yallist@5.0.0: + resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==} + engines: {node: '>=18'} + yaml@2.9.0: resolution: {integrity: sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==} engines: {node: '>= 14.6'} hasBin: true + yargs-parser@22.0.0: + resolution: {integrity: sha512-rwu/ClNdSMpkSrUb+d6BRsSkLUq1fmfsY6TOpYzTwvwkg1/NRG85KBy3kq++A8LKQwX6lsu+aWad+2khvuXrqw==} + engines: {node: ^20.19.0 || ^22.12.0 || >=23} + + yargs@18.2.0: + resolution: {integrity: sha512-9OpKOLeaoNFecEp7P6iYbzze/5CqWoH7N3SMs/6y1XF4nMvFMspEGZzJ6uFi9MmQwXhyzqYoSEKO3tvA3Z/o2w==} + engines: {node: ^20.19.0 || ^22.12.0 || >=23} + yoga-wasm-web@0.3.3: resolution: {integrity: sha512-N+d4UJSJbt/R3wqY7Coqs5pcV0aUj2j9IaQ3rNj9bVCLld8tTGKRa2USARjnvZJWVx1NDmQev8EknoczaOQDOA==} + youch-core@0.3.3: + resolution: {integrity: sha512-ho7XuGjLaJ2hWHoK8yFnsUGy2Y5uDpqSTq1FkHLK4/oqKtyUU1AFbOOxY4IpC9f0fTLjwYbslUz0Po5BpD1wrA==} + + youch@4.1.1: + resolution: {integrity: sha512-mxW3qiSnl+GRxXsaUMzv2Mbada1Y8CDltET9UxejDQe6DBYlSekghl5U5K0ReAikcHDi0G1vKZEmmo/NWAGKLA==} + + zip-stream@6.0.1: + resolution: {integrity: sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==} + engines: {node: '>= 14'} + + zod@4.6.5: + resolution: {integrity: sha512-v5l/aFXZQeai4awLbOpSoHecE9UiMrnfx75tEXLjNonXVARxQ5mOeipTjROUchszUNCqnE+hqAMujRsRHsut2Q==} + zwitch@2.0.4: resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} @@ -3518,6 +5039,12 @@ snapshots: '@asamuzakjp/nwsapi@2.3.9': {} + '@babel/code-frame@7.26.2': + dependencies: + '@babel/helper-validator-identifier': 7.29.7 + js-tokens: 4.0.0 + picocolors: 1.1.1 + '@babel/code-frame@7.29.7': dependencies: '@babel/helper-validator-identifier': 7.29.7 @@ -3526,40 +5053,40 @@ snapshots: '@babel/compat-data@7.29.7': {} - '@babel/core@7.25.2': + '@babel/core@7.25.2(supports-color@10.2.2)': dependencies: '@ampproject/remapping': 2.3.0 '@babel/code-frame': 7.29.7 '@babel/generator': 7.29.8 '@babel/helper-compilation-targets': 7.29.7 - '@babel/helper-module-transforms': 7.29.7(@babel/core@7.25.2) + '@babel/helper-module-transforms': 7.29.7(@babel/core@7.25.2(supports-color@10.2.2))(supports-color@10.2.2) '@babel/helpers': 7.29.7 '@babel/parser': 7.29.8 '@babel/template': 7.29.7 - '@babel/traverse': 7.29.8 + '@babel/traverse': 7.29.8(supports-color@10.2.2) '@babel/types': 7.29.8 convert-source-map: 2.0.0 - debug: 4.4.3 + debug: 4.4.3(supports-color@10.2.2) gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/core@7.29.7': + '@babel/core@7.29.7(supports-color@10.2.2)': dependencies: '@babel/code-frame': 7.29.7 '@babel/generator': 7.29.8 '@babel/helper-compilation-targets': 7.29.7 - '@babel/helper-module-transforms': 7.29.7(@babel/core@7.29.7) + '@babel/helper-module-transforms': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2) '@babel/helpers': 7.29.7 '@babel/parser': 7.29.8 '@babel/template': 7.29.7 - '@babel/traverse': 7.29.8 + '@babel/traverse': 7.29.8(supports-color@10.2.2) '@babel/types': 7.29.8 '@jridgewell/remapping': 2.3.5 convert-source-map: 2.0.0 - debug: 4.4.3 + debug: 4.4.3(supports-color@10.2.2) gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -3588,28 +5115,28 @@ snapshots: dependencies: '@babel/types': 7.29.8 - '@babel/helper-module-imports@7.29.7': + '@babel/helper-module-imports@7.29.7(supports-color@10.2.2)': dependencies: - '@babel/traverse': 7.29.8 + '@babel/traverse': 7.29.8(supports-color@10.2.2) '@babel/types': 7.29.8 transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.29.7(@babel/core@7.25.2)': + '@babel/helper-module-transforms@7.29.7(@babel/core@7.25.2(supports-color@10.2.2))(supports-color@10.2.2)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-module-imports': 7.29.7 + '@babel/core': 7.25.2(supports-color@10.2.2) + '@babel/helper-module-imports': 7.29.7(supports-color@10.2.2) '@babel/helper-validator-identifier': 7.29.7 - '@babel/traverse': 7.29.8 + '@babel/traverse': 7.29.8(supports-color@10.2.2) transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.29.7(@babel/core@7.29.7)': + '@babel/helper-module-transforms@7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-module-imports': 7.29.7 + '@babel/core': 7.29.7(supports-color@10.2.2) + '@babel/helper-module-imports': 7.29.7(supports-color@10.2.2) '@babel/helper-validator-identifier': 7.29.7 - '@babel/traverse': 7.29.8 + '@babel/traverse': 7.29.8(supports-color@10.2.2) transitivePeerDependencies: - supports-color @@ -3630,9 +5157,14 @@ snapshots: dependencies: '@babel/types': 7.29.8 - '@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.7)': + '@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.7(supports-color@10.2.2))': + dependencies: + '@babel/core': 7.29.7(supports-color@10.2.2) + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.29.7(supports-color@10.2.2))': dependencies: - '@babel/core': 7.29.7 + '@babel/core': 7.29.7(supports-color@10.2.2) '@babel/helper-plugin-utils': 7.29.7 '@babel/template@7.29.7': @@ -3641,7 +5173,7 @@ snapshots: '@babel/parser': 7.29.8 '@babel/types': 7.29.8 - '@babel/traverse@7.29.8': + '@babel/traverse@7.29.8(supports-color@10.2.2)': dependencies: '@babel/code-frame': 7.29.7 '@babel/generator': 7.29.8 @@ -3649,7 +5181,7 @@ snapshots: '@babel/parser': 7.29.8 '@babel/template': 7.29.7 '@babel/types': 7.29.8 - debug: 4.4.3 + debug: 4.4.3(supports-color@10.2.2) transitivePeerDependencies: - supports-color @@ -3699,10 +5231,7 @@ snapshots: dependencies: css-tree: 3.2.1 - '@corvu/utils@0.4.2(solid-js@1.9.14)': - dependencies: - '@floating-ui/dom': 1.8.0 - solid-js: 1.9.14 + '@cloudflare/kv-asset-handler@0.4.2': {} '@csstools/color-helpers@6.1.0': {} @@ -3730,30 +5259,50 @@ snapshots: '@ctrl/tinycolor@4.2.0': {} + '@deno/shim-deno-test@0.5.0': {} + + '@deno/shim-deno@0.19.2': + dependencies: + '@deno/shim-deno-test': 0.5.0 + which: 4.0.0 + '@docsearch/css@3.9.0': {} '@docsearch/js@4.7.0': {} + '@emnapi/core@1.11.1': + dependencies: + '@emnapi/wasi-threads': 1.2.2 + tslib: 2.8.1 + optional: true + '@emnapi/core@1.11.3': dependencies: '@emnapi/wasi-threads': 1.2.3 tslib: 2.8.1 optional: true + '@emnapi/runtime@1.11.1': + dependencies: + tslib: 2.8.1 + optional: true + '@emnapi/runtime@1.11.3': dependencies: tslib: 2.8.1 optional: true - '@emnapi/wasi-threads@1.2.3': + '@emnapi/wasi-threads@1.2.2': dependencies: tslib: 2.8.1 optional: true - '@esbuild/aix-ppc64@0.25.12': + '@emnapi/wasi-threads@1.2.3': + dependencies: + tslib: 2.8.1 optional: true - '@esbuild/aix-ppc64@0.27.7': + '@esbuild/aix-ppc64@0.25.12': optional: true '@esbuild/aix-ppc64@0.28.1': @@ -3762,225 +5311,150 @@ snapshots: '@esbuild/android-arm64@0.25.12': optional: true - '@esbuild/android-arm64@0.27.7': - optional: true - '@esbuild/android-arm64@0.28.1': optional: true '@esbuild/android-arm@0.25.12': optional: true - '@esbuild/android-arm@0.27.7': - optional: true - '@esbuild/android-arm@0.28.1': optional: true '@esbuild/android-x64@0.25.12': optional: true - '@esbuild/android-x64@0.27.7': - optional: true - '@esbuild/android-x64@0.28.1': optional: true '@esbuild/darwin-arm64@0.25.12': optional: true - '@esbuild/darwin-arm64@0.27.7': - optional: true - '@esbuild/darwin-arm64@0.28.1': optional: true '@esbuild/darwin-x64@0.25.12': optional: true - '@esbuild/darwin-x64@0.27.7': - optional: true - '@esbuild/darwin-x64@0.28.1': optional: true '@esbuild/freebsd-arm64@0.25.12': optional: true - '@esbuild/freebsd-arm64@0.27.7': - optional: true - '@esbuild/freebsd-arm64@0.28.1': optional: true '@esbuild/freebsd-x64@0.25.12': optional: true - '@esbuild/freebsd-x64@0.27.7': - optional: true - '@esbuild/freebsd-x64@0.28.1': optional: true '@esbuild/linux-arm64@0.25.12': optional: true - '@esbuild/linux-arm64@0.27.7': - optional: true - '@esbuild/linux-arm64@0.28.1': optional: true '@esbuild/linux-arm@0.25.12': optional: true - '@esbuild/linux-arm@0.27.7': - optional: true - '@esbuild/linux-arm@0.28.1': optional: true '@esbuild/linux-ia32@0.25.12': optional: true - '@esbuild/linux-ia32@0.27.7': - optional: true - '@esbuild/linux-ia32@0.28.1': optional: true '@esbuild/linux-loong64@0.25.12': optional: true - '@esbuild/linux-loong64@0.27.7': - optional: true - '@esbuild/linux-loong64@0.28.1': optional: true '@esbuild/linux-mips64el@0.25.12': optional: true - '@esbuild/linux-mips64el@0.27.7': - optional: true - '@esbuild/linux-mips64el@0.28.1': optional: true '@esbuild/linux-ppc64@0.25.12': optional: true - '@esbuild/linux-ppc64@0.27.7': - optional: true - '@esbuild/linux-ppc64@0.28.1': optional: true '@esbuild/linux-riscv64@0.25.12': optional: true - '@esbuild/linux-riscv64@0.27.7': - optional: true - '@esbuild/linux-riscv64@0.28.1': optional: true '@esbuild/linux-s390x@0.25.12': optional: true - '@esbuild/linux-s390x@0.27.7': - optional: true - '@esbuild/linux-s390x@0.28.1': optional: true '@esbuild/linux-x64@0.25.12': optional: true - '@esbuild/linux-x64@0.27.7': - optional: true - '@esbuild/linux-x64@0.28.1': optional: true '@esbuild/netbsd-arm64@0.25.12': optional: true - '@esbuild/netbsd-arm64@0.27.7': - optional: true - '@esbuild/netbsd-arm64@0.28.1': optional: true '@esbuild/netbsd-x64@0.25.12': optional: true - '@esbuild/netbsd-x64@0.27.7': - optional: true - '@esbuild/netbsd-x64@0.28.1': optional: true '@esbuild/openbsd-arm64@0.25.12': optional: true - '@esbuild/openbsd-arm64@0.27.7': - optional: true - '@esbuild/openbsd-arm64@0.28.1': optional: true '@esbuild/openbsd-x64@0.25.12': optional: true - '@esbuild/openbsd-x64@0.27.7': - optional: true - '@esbuild/openbsd-x64@0.28.1': optional: true '@esbuild/openharmony-arm64@0.25.12': optional: true - '@esbuild/openharmony-arm64@0.27.7': - optional: true - '@esbuild/openharmony-arm64@0.28.1': optional: true '@esbuild/sunos-x64@0.25.12': optional: true - '@esbuild/sunos-x64@0.27.7': - optional: true - '@esbuild/sunos-x64@0.28.1': optional: true '@esbuild/win32-arm64@0.25.12': optional: true - '@esbuild/win32-arm64@0.27.7': - optional: true - '@esbuild/win32-arm64@0.28.1': optional: true '@esbuild/win32-ia32@0.25.12': optional: true - '@esbuild/win32-ia32@0.27.7': - optional: true - '@esbuild/win32-ia32@0.28.1': optional: true '@esbuild/win32-x64@0.25.12': optional: true - '@esbuild/win32-x64@0.27.7': - optional: true - '@esbuild/win32-x64@0.28.1': optional: true @@ -4048,17 +5522,28 @@ snapshots: '@iconify/types': 2.0.0 import-meta-resolve: 4.2.0 - '@internationalized/date@3.12.3': + '@internationalized/number@3.6.7': dependencies: '@swc/helpers': 0.5.23 - '@internationalized/number@3.6.7': + '@ioredis/commands@1.10.0': {} + + '@isaacs/cliui@8.0.2': + dependencies: + string-width: 5.1.2 + string-width-cjs: string-width@4.2.3 + strip-ansi: 7.2.0 + strip-ansi-cjs: strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: wrap-ansi@7.0.0 + + '@isaacs/fs-minipass@4.0.1': dependencies: - '@swc/helpers': 0.5.23 + minipass: 7.1.3 '@jridgewell/gen-mapping@0.3.13': dependencies: - '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/sourcemap-codec': 1.6.0 '@jridgewell/trace-mapping': 0.3.31 '@jridgewell/remapping@2.3.5': @@ -4068,37 +5553,70 @@ snapshots: '@jridgewell/resolve-uri@3.1.2': {} + '@jridgewell/source-map@0.3.11': + dependencies: + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + '@jridgewell/sourcemap-codec@1.5.5': {} + '@jridgewell/sourcemap-codec@1.6.0': {} + '@jridgewell/trace-mapping@0.3.31': dependencies: '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/sourcemap-codec': 1.6.0 - '@kobalte/core@0.13.11(solid-js@1.9.14)': + '@kobalte/core@2.0.0-alpha.2(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14)': dependencies: '@floating-ui/dom': 1.8.0 - '@internationalized/date': 3.12.3 '@internationalized/number': 3.6.7 - '@kobalte/utils': 0.9.2(solid-js@1.9.14) - '@solid-primitives/props': 3.2.4(solid-js@1.9.14) - '@solid-primitives/resize-observer': 2.2.0(solid-js@1.9.14) - solid-js: 1.9.14 - solid-presence: 0.1.8(solid-js@1.9.14) - solid-prevent-scroll: 0.1.11(solid-js@1.9.14) - - '@kobalte/utils@0.9.2(solid-js@1.9.14)': - dependencies: - '@solid-primitives/event-listener': 2.4.6(solid-js@1.9.14) - '@solid-primitives/keyed': 1.5.3(solid-js@1.9.14) - '@solid-primitives/map': 0.4.13(solid-js@1.9.14) - '@solid-primitives/media': 2.3.6(solid-js@1.9.14) - '@solid-primitives/props': 3.2.4(solid-js@1.9.14) - '@solid-primitives/refs': 1.1.4(solid-js@1.9.14) - '@solid-primitives/utils': 6.4.1(solid-js@1.9.14) - solid-js: 1.9.14 + '@kobalte/utils': 2.0.0-alpha.0(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14) + '@solid-primitives/a11y': 1.0.0-next.3(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14) + '@solid-primitives/controlled-signal': 1.0.0-next.3(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14) + '@solid-primitives/event-listener': 3.0.0-next.5(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14) + '@solid-primitives/focus': 1.0.0-next.4(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14) + '@solid-primitives/form': 1.0.0-next.3(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14) + '@solid-primitives/i18n': 3.0.0-next.4(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14) + '@solid-primitives/interaction': 1.0.0-next.4(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14) + '@solid-primitives/keyboard': 2.0.0-next.5(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14) + '@solid-primitives/platform': 1.0.0-next.2(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14) + '@solid-primitives/presence': 1.0.0-next.2(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14) + '@solid-primitives/props': 4.0.0-next.3(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14) + '@solid-primitives/refs': 3.0.0-next.2(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14) + '@solid-primitives/resize-observer': 4.0.0-next.3(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14) + '@solid-primitives/scroll': 3.0.0-next.4(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14) + '@solid-primitives/upload': 1.0.0-next.4(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14) + '@solid-primitives/utils': 7.0.0-next.4(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14) + '@solidjs/web': 2.0.0-rc.14(solid-js@2.0.0-rc.14) + solid-js: 2.0.0-rc.14 + + '@kobalte/utils@2.0.0-alpha.0(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14)': + dependencies: + '@solid-primitives/event-listener': 3.0.0-next.3(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14) + '@solid-primitives/keyed': 3.0.0-next.2(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14) + '@solid-primitives/map': 1.0.0-next.2(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14) + '@solid-primitives/media': 4.0.0-next.2(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14) + '@solid-primitives/props': 4.0.0-next.3(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14) + '@solid-primitives/refs': 3.0.0-next.2(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14) + '@solid-primitives/utils': 7.0.0-next.4(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14) + '@solidjs/web': 2.0.0-rc.14(solid-js@2.0.0-rc.14) + solid-js: 2.0.0-rc.14 + + '@mapbox/node-pre-gyp@2.0.3(supports-color@10.2.2)': + dependencies: + consola: 3.4.2 + detect-libc: 2.1.2 + https-proxy-agent: 7.0.6(supports-color@10.2.2) + node-fetch: 2.7.0 + nopt: 8.1.0 + semver: 7.8.5 + tar: 7.5.22 + transitivePeerDependencies: + - encoding + - supports-color - '@mdx-js/mdx@3.1.1': + '@mdx-js/mdx@3.1.1(supports-color@10.2.2)': dependencies: '@types/estree': 1.0.9 '@types/estree-jsx': 1.0.5 @@ -4110,14 +5628,14 @@ snapshots: estree-util-is-identifier-name: 3.0.0 estree-util-scope: 1.0.0 estree-walker: 3.0.3 - hast-util-to-jsx-runtime: 2.3.6 + hast-util-to-jsx-runtime: 2.3.6(supports-color@10.2.2) markdown-extensions: 2.0.0 recma-build-jsx: 1.0.0 recma-jsx: 1.0.1(acorn@8.18.0) recma-stringify: 1.0.0 - rehype-recma: 1.0.0 - remark-mdx: 3.1.1 - remark-parse: 11.0.0 + rehype-recma: 1.0.0(supports-color@10.2.2) + remark-mdx: 3.1.1(supports-color@10.2.2) + remark-parse: 11.0.0(supports-color@10.2.2) remark-rehype: 11.1.2 source-map: 0.7.6 unified: 11.0.5 @@ -4128,6 +5646,16 @@ snapshots: transitivePeerDependencies: - supports-color + '@napi-rs/lzma-linux-x64-gnu@1.5.1': + optional: true + + '@napi-rs/wasm-runtime@1.2.2(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)': + dependencies: + '@emnapi/core': 1.11.1 + '@emnapi/runtime': 1.11.1 + '@tybys/wasm-util': 0.10.3 + optional: true + '@napi-rs/wasm-runtime@1.2.2(@emnapi/core@1.11.3)(@emnapi/runtime@1.11.3)': dependencies: '@emnapi/core': 1.11.3 @@ -4188,14 +5716,161 @@ snapshots: dependencies: '@octokit/openapi-types': 25.1.0 + '@oxc-parser/binding-android-arm-eabi@0.139.0': + optional: true + + '@oxc-parser/binding-android-arm64@0.139.0': + optional: true + + '@oxc-parser/binding-darwin-arm64@0.139.0': + optional: true + + '@oxc-parser/binding-darwin-x64@0.139.0': + optional: true + + '@oxc-parser/binding-freebsd-x64@0.139.0': + optional: true + + '@oxc-parser/binding-linux-arm-gnueabihf@0.139.0': + optional: true + + '@oxc-parser/binding-linux-arm-musleabihf@0.139.0': + optional: true + + '@oxc-parser/binding-linux-arm64-gnu@0.139.0': + optional: true + + '@oxc-parser/binding-linux-arm64-musl@0.139.0': + optional: true + + '@oxc-parser/binding-linux-ppc64-gnu@0.139.0': + optional: true + + '@oxc-parser/binding-linux-riscv64-gnu@0.139.0': + optional: true + + '@oxc-parser/binding-linux-riscv64-musl@0.139.0': + optional: true + + '@oxc-parser/binding-linux-s390x-gnu@0.139.0': + optional: true + + '@oxc-parser/binding-linux-x64-gnu@0.139.0': + optional: true + + '@oxc-parser/binding-linux-x64-musl@0.139.0': + optional: true + + '@oxc-parser/binding-openharmony-arm64@0.139.0': + optional: true + + '@oxc-parser/binding-wasm32-wasi@0.139.0': + dependencies: + '@emnapi/core': 1.11.1 + '@emnapi/runtime': 1.11.1 + '@napi-rs/wasm-runtime': 1.2.2(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1) + optional: true + + '@oxc-parser/binding-win32-arm64-msvc@0.139.0': + optional: true + + '@oxc-parser/binding-win32-ia32-msvc@0.139.0': + optional: true + + '@oxc-parser/binding-win32-x64-msvc@0.139.0': + optional: true + '@oxc-project/runtime@0.115.0': {} '@oxc-project/types@0.115.0': {} + '@oxc-project/types@0.139.0': {} + '@oxc-project/types@0.143.0': {} + '@parcel/watcher-android-arm64@2.6.0': + optional: true + + '@parcel/watcher-darwin-arm64@2.6.0': + optional: true + + '@parcel/watcher-darwin-x64@2.6.0': + optional: true + + '@parcel/watcher-freebsd-x64@2.6.0': + optional: true + + '@parcel/watcher-linux-arm-glibc@2.6.0': + optional: true + + '@parcel/watcher-linux-arm-musl@2.6.0': + optional: true + + '@parcel/watcher-linux-arm64-glibc@2.6.0': + optional: true + + '@parcel/watcher-linux-arm64-musl@2.6.0': + optional: true + + '@parcel/watcher-linux-x64-glibc@2.6.0': + optional: true + + '@parcel/watcher-linux-x64-musl@2.6.0': + optional: true + + '@parcel/watcher-wasm@2.3.0': + dependencies: + is-glob: 4.0.3 + micromatch: 4.0.8 + + '@parcel/watcher-wasm@2.6.0': + dependencies: + is-glob: 4.0.3 + picomatch: 4.0.7 + + '@parcel/watcher-win32-arm64@2.6.0': + optional: true + + '@parcel/watcher-win32-x64@2.6.0': + optional: true + + '@parcel/watcher@2.6.0': + dependencies: + detect-libc: 2.1.2 + is-glob: 4.0.3 + node-addon-api: 7.1.1 + picomatch: 4.0.7 + optionalDependencies: + '@parcel/watcher-android-arm64': 2.6.0 + '@parcel/watcher-darwin-arm64': 2.6.0 + '@parcel/watcher-darwin-x64': 2.6.0 + '@parcel/watcher-freebsd-x64': 2.6.0 + '@parcel/watcher-linux-arm-glibc': 2.6.0 + '@parcel/watcher-linux-arm-musl': 2.6.0 + '@parcel/watcher-linux-arm64-glibc': 2.6.0 + '@parcel/watcher-linux-arm64-musl': 2.6.0 + '@parcel/watcher-linux-x64-glibc': 2.6.0 + '@parcel/watcher-linux-x64-musl': 2.6.0 + '@parcel/watcher-win32-arm64': 2.6.0 + '@parcel/watcher-win32-x64': 2.6.0 + + '@pkgjs/parseargs@0.11.0': + optional: true + '@polka/url@1.0.0-next.29': {} + '@poppinss/colors@4.1.6': + dependencies: + kleur: 4.1.5 + + '@poppinss/dumper@0.7.0': + dependencies: + '@poppinss/colors': 4.1.6 + '@sindresorhus/is': 7.2.0 + supports-color: 10.2.2 + + '@poppinss/exception@1.2.3': {} + '@resvg/resvg-wasm@2.4.0': {} '@rolldown/binding-android-arm64@1.0.0-rc.9': @@ -4294,11 +5969,143 @@ snapshots: '@rolldown/pluginutils@1.0.1': {} - '@rollup/pluginutils@5.4.0': + '@rollup/plugin-alias@6.0.0(rollup@4.64.0)': + optionalDependencies: + rollup: 4.64.0 + + '@rollup/plugin-commonjs@29.0.3(rollup@4.64.0)': + dependencies: + '@rollup/pluginutils': 5.4.0(rollup@4.64.0) + commondir: 1.0.1 + estree-walker: 2.0.2 + fdir: 6.5.0(picomatch@4.0.7) + is-reference: 1.2.1 + magic-string: 0.30.21 + picomatch: 4.0.7 + optionalDependencies: + rollup: 4.64.0 + + '@rollup/plugin-inject@5.0.5(rollup@4.64.0)': + dependencies: + '@rollup/pluginutils': 5.4.0(rollup@4.64.0) + estree-walker: 2.0.2 + magic-string: 0.30.21 + optionalDependencies: + rollup: 4.64.0 + + '@rollup/plugin-json@6.1.0(rollup@4.64.0)': + dependencies: + '@rollup/pluginutils': 5.4.0(rollup@4.64.0) + optionalDependencies: + rollup: 4.64.0 + + '@rollup/plugin-node-resolve@16.0.3(rollup@4.64.0)': + dependencies: + '@rollup/pluginutils': 5.4.0(rollup@4.64.0) + '@types/resolve': 1.20.2 + deepmerge: 4.3.1 + is-module: 1.0.0 + resolve: 1.22.12 + optionalDependencies: + rollup: 4.64.0 + + '@rollup/plugin-replace@6.0.3(rollup@4.64.0)': + dependencies: + '@rollup/pluginutils': 5.4.0(rollup@4.64.0) + magic-string: 0.30.21 + optionalDependencies: + rollup: 4.64.0 + + '@rollup/plugin-terser@1.0.0(rollup@4.64.0)': + dependencies: + serialize-javascript: 7.1.2 + smob: 1.6.2 + terser: 5.51.2 + optionalDependencies: + rollup: 4.64.0 + + '@rollup/pluginutils@5.4.0(rollup@4.64.0)': dependencies: '@types/estree': 1.0.9 estree-walker: 2.0.2 picomatch: 4.0.5 + optionalDependencies: + rollup: 4.64.0 + + '@rollup/rollup-android-arm-eabi@4.64.0': + optional: true + + '@rollup/rollup-android-arm64@4.64.0': + optional: true + + '@rollup/rollup-darwin-arm64@4.64.0': + optional: true + + '@rollup/rollup-darwin-x64@4.64.0': + optional: true + + '@rollup/rollup-freebsd-arm64@4.64.0': + optional: true + + '@rollup/rollup-freebsd-x64@4.64.0': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.64.0': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.64.0': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.64.0': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.64.0': + optional: true + + '@rollup/rollup-linux-loong64-gnu@4.64.0': + optional: true + + '@rollup/rollup-linux-loong64-musl@4.64.0': + optional: true + + '@rollup/rollup-linux-ppc64-gnu@4.64.0': + optional: true + + '@rollup/rollup-linux-ppc64-musl@4.64.0': + optional: true + + '@rollup/rollup-linux-riscv64-gnu@4.64.0': + optional: true + + '@rollup/rollup-linux-riscv64-musl@4.64.0': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.64.0': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.64.0': + optional: true + + '@rollup/rollup-linux-x64-musl@4.64.0': + optional: true + + '@rollup/rollup-openbsd-x64@4.64.0': + optional: true + + '@rollup/rollup-openharmony-arm64@4.64.0': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.64.0': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.64.0': + optional: true + + '@rollup/rollup-win32-x64-gnu@4.64.0': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.64.0': + optional: true '@shikijs/core@1.29.2': dependencies: @@ -4371,235 +6178,378 @@ snapshots: fflate: 0.7.5 string.prototype.codepointat: 0.2.1 - '@solid-mediakit/og@0.4.1(@solidjs/meta@0.29.4(solid-js@1.9.14))(@solidjs/start@https://pkg.pr.new/solidjs/solid-start/@solidjs/start@2080(crossws@0.4.10(srvx@0.12.5))(vite@8.0.0(@emnapi/core@1.11.3)(@emnapi/runtime@1.11.3)(@types/node@26.1.2)(esbuild@0.25.12)(tsx@4.23.9)(yaml@2.9.0)))(solid-js@1.9.14)': + '@sindresorhus/is@7.2.0': {} + + '@sindresorhus/merge-streams@4.0.0': {} + + '@solid-mediakit/og@0.4.1(@solidjs/meta@1.0.0-next.2(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14))(@solidjs/start@1.3.2(solid-js@2.0.0-rc.14)(supports-color@10.2.2)(vinxi@0.5.11(@parcel/watcher@2.6.0)(@types/node@26.1.2)(db0@0.3.4)(debug@4.4.3(supports-color@10.2.2))(ioredis@5.11.1(supports-color@10.2.2))(jiti@2.7.0)(lightningcss@1.33.0)(oxc-parser@0.139.0)(rolldown@1.2.3)(srvx@0.12.5)(supports-color@10.2.2)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0))(vite@8.0.0(@emnapi/core@1.11.3)(@emnapi/runtime@1.11.3)(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0)))(rollup@4.64.0)(solid-js@2.0.0-rc.14)(supports-color@10.2.2)': dependencies: - '@babel/core': 7.25.2 - '@solid-mediakit/shared': 0.0.6 - '@solidjs/meta': 0.29.4(solid-js@1.9.14) - '@solidjs/start': https://pkg.pr.new/solidjs/solid-start/@solidjs/start@2080(crossws@0.4.10(srvx@0.12.5))(vite@8.0.0(@emnapi/core@1.11.3)(@emnapi/runtime@1.11.3)(@types/node@26.1.2)(esbuild@0.25.12)(tsx@4.23.9)(yaml@2.9.0)) + '@babel/core': 7.25.2(supports-color@10.2.2) + '@solid-mediakit/shared': 0.0.6(rollup@4.64.0)(supports-color@10.2.2) + '@solidjs/meta': 1.0.0-next.2(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14) + '@solidjs/start': 1.3.2(solid-js@2.0.0-rc.14)(supports-color@10.2.2)(vinxi@0.5.11(@parcel/watcher@2.6.0)(@types/node@26.1.2)(db0@0.3.4)(debug@4.4.3(supports-color@10.2.2))(ioredis@5.11.1(supports-color@10.2.2))(jiti@2.7.0)(lightningcss@1.33.0)(oxc-parser@0.139.0)(rolldown@1.2.3)(srvx@0.12.5)(supports-color@10.2.2)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0))(vite@8.0.0(@emnapi/core@1.11.3)(@emnapi/runtime@1.11.3)(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0)) '@vercel/og': 0.6.8 satori-html: 0.3.2 - solid-js: 1.9.14 + solid-js: 2.0.0-rc.14 unplugin: 2.3.11 transitivePeerDependencies: - rollup - supports-color - '@solid-mediakit/shared@0.0.6': + '@solid-mediakit/shared@0.0.6(rollup@4.64.0)(supports-color@10.2.2)': dependencies: - '@babel/core': 7.25.2 - '@rollup/pluginutils': 5.4.0 + '@babel/core': 7.25.2(supports-color@10.2.2) + '@rollup/pluginutils': 5.4.0(rollup@4.64.0) transitivePeerDependencies: - rollup - supports-color - '@solid-primitives/clipboard@1.6.6(solid-js@1.9.14)': + '@solid-primitives/a11y@1.0.0-next.3(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14)': dependencies: - '@solid-primitives/utils': 6.4.1(solid-js@1.9.14) - solid-js: 1.9.14 + '@solid-primitives/utils': 7.0.0-next.4(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14) + '@solidjs/web': 2.0.0-rc.14(solid-js@2.0.0-rc.14) + solid-js: 2.0.0-rc.14 - '@solid-primitives/context@0.2.3(solid-js@1.9.14)': + '@solid-primitives/clipboard@2.0.0-next.17(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14)': dependencies: - solid-js: 1.9.14 + '@solid-primitives/utils': 7.0.0-next.4(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14) + '@solidjs/web': 2.0.0-rc.14(solid-js@2.0.0-rc.14) + solid-js: 2.0.0-rc.14 - '@solid-primitives/event-listener@2.4.6(solid-js@1.9.14)': + '@solid-primitives/context@2.0.0-next.2(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14)': dependencies: - '@solid-primitives/utils': 6.4.1(solid-js@1.9.14) - solid-js: 1.9.14 + '@solidjs/web': 2.0.0-rc.14(solid-js@2.0.0-rc.14) + solid-js: 2.0.0-rc.14 - '@solid-primitives/keyboard@1.3.7(solid-js@1.9.14)': + '@solid-primitives/controlled-signal@1.0.0-next.3(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14)': dependencies: - '@solid-primitives/event-listener': 2.4.6(solid-js@1.9.14) - '@solid-primitives/rootless': 1.5.4(solid-js@1.9.14) - '@solid-primitives/utils': 6.4.1(solid-js@1.9.14) - solid-js: 1.9.14 + '@solid-primitives/utils': 7.0.0-next.4(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14) + solid-js: 2.0.0-rc.14 + transitivePeerDependencies: + - '@solidjs/web' - '@solid-primitives/keyed@1.5.3(solid-js@1.9.14)': + '@solid-primitives/drag-drop@0.1.0-next.0(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14)': dependencies: - solid-js: 1.9.14 + '@solid-primitives/utils': 7.0.0-next.4(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14) + '@solidjs/web': 2.0.0-rc.14(solid-js@2.0.0-rc.14) + solid-js: 2.0.0-rc.14 - '@solid-primitives/map@0.4.13(solid-js@1.9.14)': + '@solid-primitives/event-listener@3.0.0-next.3(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14)': dependencies: - '@solid-primitives/trigger': 1.2.4(solid-js@1.9.14) - solid-js: 1.9.14 + '@solid-primitives/utils': 7.0.0-next.4(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14) + '@solidjs/web': 2.0.0-rc.14(solid-js@2.0.0-rc.14) + solid-js: 2.0.0-rc.14 - '@solid-primitives/media@2.3.6(solid-js@1.9.14)': + '@solid-primitives/event-listener@3.0.0-next.5(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14)': dependencies: - '@solid-primitives/event-listener': 2.4.6(solid-js@1.9.14) - '@solid-primitives/rootless': 1.5.4(solid-js@1.9.14) - '@solid-primitives/static-store': 0.1.4(solid-js@1.9.14) - '@solid-primitives/utils': 6.4.1(solid-js@1.9.14) - solid-js: 1.9.14 + '@solid-primitives/utils': 7.0.0-next.4(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14) + '@solidjs/web': 2.0.0-rc.14(solid-js@2.0.0-rc.14) + solid-js: 2.0.0-rc.14 - '@solid-primitives/platform@0.1.2(solid-js@1.9.14)': + '@solid-primitives/focus@1.0.0-next.4(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14)': dependencies: - solid-js: 1.9.14 + '@solid-primitives/event-listener': 3.0.0-next.5(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14) + '@solid-primitives/utils': 7.0.0-next.4(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14) + '@solidjs/web': 2.0.0-rc.14(solid-js@2.0.0-rc.14) + solid-js: 2.0.0-rc.14 - '@solid-primitives/props@3.2.4(solid-js@1.9.14)': + '@solid-primitives/form@1.0.0-next.3(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14)': dependencies: - '@solid-primitives/utils': 6.4.1(solid-js@1.9.14) - solid-js: 1.9.14 + '@solid-primitives/a11y': 1.0.0-next.3(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14) + '@solid-primitives/event-listener': 3.0.0-next.5(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14) + '@solid-primitives/utils': 7.0.0-next.4(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14) + '@solidjs/web': 2.0.0-rc.14(solid-js@2.0.0-rc.14) + solid-js: 2.0.0-rc.14 - '@solid-primitives/refs@1.1.4(solid-js@1.9.14)': + '@solid-primitives/i18n@3.0.0-next.4(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14)': dependencies: - '@solid-primitives/utils': 6.4.1(solid-js@1.9.14) - solid-js: 1.9.14 + '@solidjs/web': 2.0.0-rc.14(solid-js@2.0.0-rc.14) + solid-js: 2.0.0-rc.14 - '@solid-primitives/resize-observer@2.2.0(solid-js@1.9.14)': + '@solid-primitives/interaction@1.0.0-next.4(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14)': dependencies: - '@solid-primitives/event-listener': 2.4.6(solid-js@1.9.14) - '@solid-primitives/rootless': 1.5.4(solid-js@1.9.14) - '@solid-primitives/static-store': 0.1.4(solid-js@1.9.14) - '@solid-primitives/utils': 6.4.1(solid-js@1.9.14) - solid-js: 1.9.14 + '@solid-primitives/utils': 7.0.0-next.4(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14) + '@solidjs/web': 2.0.0-rc.14(solid-js@2.0.0-rc.14) + solid-js: 2.0.0-rc.14 - '@solid-primitives/rootless@1.5.4(solid-js@1.9.14)': + '@solid-primitives/keyboard@2.0.0-next.5(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14)': dependencies: - '@solid-primitives/utils': 6.4.1(solid-js@1.9.14) - solid-js: 1.9.14 + '@solid-primitives/event-listener': 3.0.0-next.5(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14) + '@solid-primitives/rootless': 2.0.0-next.2(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14) + '@solid-primitives/utils': 7.0.0-next.4(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14) + '@solidjs/web': 2.0.0-rc.14(solid-js@2.0.0-rc.14) + solid-js: 2.0.0-rc.14 - '@solid-primitives/scroll@2.1.6(solid-js@1.9.14)': + '@solid-primitives/keyed@3.0.0-next.2(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14)': dependencies: - '@solid-primitives/event-listener': 2.4.6(solid-js@1.9.14) - '@solid-primitives/rootless': 1.5.4(solid-js@1.9.14) - '@solid-primitives/static-store': 0.1.4(solid-js@1.9.14) - solid-js: 1.9.14 + '@solidjs/web': 2.0.0-rc.14(solid-js@2.0.0-rc.14) + solid-js: 2.0.0-rc.14 - '@solid-primitives/static-store@0.1.4(solid-js@1.9.14)': + '@solid-primitives/map@1.0.0-next.2(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14)': dependencies: - '@solid-primitives/utils': 6.4.1(solid-js@1.9.14) - solid-js: 1.9.14 + '@solid-primitives/trigger': 3.0.0-next.2(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14) + '@solidjs/web': 2.0.0-rc.14(solid-js@2.0.0-rc.14) + solid-js: 2.0.0-rc.14 - '@solid-primitives/storage@4.4.0(solid-js@1.9.14)': + '@solid-primitives/media@4.0.0-next.2(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14)': dependencies: - '@solid-primitives/utils': 6.4.1(solid-js@1.9.14) - solid-js: 1.9.14 + '@solid-primitives/event-listener': 3.0.0-next.5(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14) + '@solid-primitives/rootless': 2.0.0-next.2(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14) + '@solid-primitives/static-store': 1.0.0-next.2(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14) + '@solid-primitives/utils': 7.0.0-next.4(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14) + '@solidjs/web': 2.0.0-rc.14(solid-js@2.0.0-rc.14) + solid-js: 2.0.0-rc.14 - '@solid-primitives/trigger@1.2.4(solid-js@1.9.14)': + '@solid-primitives/platform@1.0.0-next.2(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14)': dependencies: - '@solid-primitives/utils': 6.4.1(solid-js@1.9.14) - solid-js: 1.9.14 + '@solidjs/web': 2.0.0-rc.14(solid-js@2.0.0-rc.14) + solid-js: 2.0.0-rc.14 - '@solid-primitives/utils@6.4.1(solid-js@1.9.14)': + '@solid-primitives/presence@1.0.0-next.2(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14)': dependencies: - solid-js: 1.9.14 + '@solid-primitives/utils': 7.0.0-next.4(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14) + solid-js: 2.0.0-rc.14 + transitivePeerDependencies: + - '@solidjs/web' - '@solidjs/meta@0.29.4(solid-js@1.9.14)': + '@solid-primitives/props@4.0.0-next.3(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14)': dependencies: - solid-js: 1.9.14 + '@solid-primitives/utils': 7.0.0-next.4(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14) + '@solidjs/web': 2.0.0-rc.14(solid-js@2.0.0-rc.14) + solid-js: 2.0.0-rc.14 - '@solidjs/router@0.15.4(solid-js@1.9.14)': + '@solid-primitives/refs@3.0.0-next.2(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14)': dependencies: - solid-js: 1.9.14 + '@solid-primitives/utils': 7.0.0-next.4(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14) + '@solidjs/web': 2.0.0-rc.14(solid-js@2.0.0-rc.14) + solid-js: 2.0.0-rc.14 - '@solidjs/start@https://pkg.pr.new/solidjs/solid-start/@solidjs/start@2080(crossws@0.4.10(srvx@0.11.22))(vite@8.2.1(@types/node@26.1.2)(esbuild@0.25.12)(tsx@4.23.9)(yaml@2.9.0))': + '@solid-primitives/resize-observer@4.0.0-next.3(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14)': dependencies: - '@babel/core': 7.29.7 - '@babel/traverse': 7.29.8 - '@babel/types': 7.29.8 - '@solidjs/meta': 0.29.4(solid-js@1.9.14) - '@types/babel__traverse': 7.28.0 - '@types/micromatch': 4.0.10 - cookie-es: 2.0.1 - defu: 6.1.7 - error-stack-parser: 2.1.4 - es-module-lexer: 2.3.1 - esbuild: 0.27.7 - fast-glob: 3.3.3 - h3: 2.0.1-rc.16(crossws@0.4.10(srvx@0.11.22)) - html-to-image: 1.11.13 - micromatch: 4.0.8 - path-to-regexp: 8.4.2 - pathe: 2.0.3 - radix3: 1.1.2 - seroval: 1.6.2 - seroval-plugins: 1.6.2(seroval@1.6.2) - shiki: 1.29.2 - solid-js: 1.9.14 - source-map-js: 1.2.1 - srvx: 0.11.22 - terracotta: 1.1.1(solid-js@1.9.14) - vite: 8.2.1(@types/node@26.1.2)(esbuild@0.25.12)(tsx@4.23.9)(yaml@2.9.0) - vite-plugin-solid: 2.11.14(solid-js@1.9.14)(vite@8.2.1(@types/node@26.1.2)(esbuild@0.25.12)(tsx@4.23.9)(yaml@2.9.0)) - transitivePeerDependencies: - - '@testing-library/jest-dom' - - crossws - - supports-color + '@solid-primitives/event-listener': 3.0.0-next.5(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14) + '@solid-primitives/rootless': 2.0.0-next.2(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14) + '@solid-primitives/static-store': 1.0.0-next.2(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14) + '@solid-primitives/utils': 7.0.0-next.4(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14) + '@solidjs/web': 2.0.0-rc.14(solid-js@2.0.0-rc.14) + solid-js: 2.0.0-rc.14 + + '@solid-primitives/rootless@2.0.0-next.2(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14)': + dependencies: + '@solid-primitives/utils': 7.0.0-next.4(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14) + '@solidjs/web': 2.0.0-rc.14(solid-js@2.0.0-rc.14) + solid-js: 2.0.0-rc.14 + + '@solid-primitives/scroll@3.0.0-next.4(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14)': + dependencies: + '@solid-primitives/event-listener': 3.0.0-next.5(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14) + '@solid-primitives/rootless': 2.0.0-next.2(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14) + '@solid-primitives/static-store': 1.0.0-next.2(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14) + '@solid-primitives/utils': 7.0.0-next.4(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14) + '@solidjs/web': 2.0.0-rc.14(solid-js@2.0.0-rc.14) + solid-js: 2.0.0-rc.14 + + '@solid-primitives/static-store@1.0.0-next.2(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14)': + dependencies: + '@solid-primitives/utils': 7.0.0-next.4(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14) + '@solidjs/web': 2.0.0-rc.14(solid-js@2.0.0-rc.14) + solid-js: 2.0.0-rc.14 + + '@solid-primitives/storage@5.0.0-next.4(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14)': + dependencies: + '@solid-primitives/utils': 7.0.0-next.4(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14) + '@solidjs/web': 2.0.0-rc.14(solid-js@2.0.0-rc.14) + solid-js: 2.0.0-rc.14 + + '@solid-primitives/trigger@3.0.0-next.2(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14)': + dependencies: + '@solid-primitives/utils': 7.0.0-next.4(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14) + '@solidjs/web': 2.0.0-rc.14(solid-js@2.0.0-rc.14) + solid-js: 2.0.0-rc.14 + + '@solid-primitives/upload@1.0.0-next.4(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14)': + dependencies: + '@solid-primitives/drag-drop': 0.1.0-next.0(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14) + '@solidjs/web': 2.0.0-rc.14(solid-js@2.0.0-rc.14) + solid-js: 2.0.0-rc.14 + + '@solid-primitives/utils@7.0.0-next.4(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14)': + dependencies: + '@solidjs/web': 2.0.0-rc.14(solid-js@2.0.0-rc.14) + solid-js: 2.0.0-rc.14 - '@solidjs/start@https://pkg.pr.new/solidjs/solid-start/@solidjs/start@2080(crossws@0.4.10(srvx@0.12.5))(vite@8.0.0(@emnapi/core@1.11.3)(@emnapi/runtime@1.11.3)(@types/node@26.1.2)(esbuild@0.25.12)(tsx@4.23.9)(yaml@2.9.0))': + '@solidjs/babel-plugin@2.0.0-rc.13(@babel/core@7.29.7(supports-color@10.2.2))': dependencies: - '@babel/core': 7.29.7 - '@babel/traverse': 7.29.8 + '@babel/core': 7.29.7(supports-color@10.2.2) + '@babel/helper-module-imports': 7.18.6 + '@babel/plugin-syntax-jsx': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2)) '@babel/types': 7.29.8 - '@solidjs/meta': 0.29.4(solid-js@1.9.14) - '@types/babel__traverse': 7.28.0 - '@types/micromatch': 4.0.10 - cookie-es: 2.0.1 - defu: 6.1.7 - error-stack-parser: 2.1.4 - es-module-lexer: 2.3.1 - esbuild: 0.27.7 - fast-glob: 3.3.3 - h3: 2.0.1-rc.16(crossws@0.4.10(srvx@0.12.5)) - html-to-image: 1.11.13 - micromatch: 4.0.8 - path-to-regexp: 8.4.2 - pathe: 2.0.3 - radix3: 1.1.2 - seroval: 1.6.2 - seroval-plugins: 1.6.2(seroval@1.6.2) - shiki: 1.29.2 - solid-js: 1.9.14 - source-map-js: 1.2.1 - srvx: 0.11.22 - terracotta: 1.1.1(solid-js@1.9.14) - vite: 8.0.0(@emnapi/core@1.11.3)(@emnapi/runtime@1.11.3)(@types/node@26.1.2)(esbuild@0.25.12)(tsx@4.23.9)(yaml@2.9.0) - vite-plugin-solid: 2.11.14(solid-js@1.9.14)(vite@8.0.0(@emnapi/core@1.11.3)(@emnapi/runtime@1.11.3)(@types/node@26.1.2)(esbuild@0.25.12)(tsx@4.23.9)(yaml@2.9.0)) - transitivePeerDependencies: - - '@testing-library/jest-dom' - - crossws - - supports-color + html-entities: 2.3.3 + parse5: 7.3.0 + + '@solidjs/compiler-darwin-arm64@2.0.0-rc.13': + optional: true + + '@solidjs/compiler-darwin-x64@2.0.0-rc.13': + optional: true + + '@solidjs/compiler-linux-arm64-gnu@2.0.0-rc.13': + optional: true + + '@solidjs/compiler-linux-x64-gnu@2.0.0-rc.13': + optional: true + + '@solidjs/compiler-wasm32-wasi@2.0.0-rc.13': + dependencies: + '@emnapi/core': 1.11.3 + '@emnapi/runtime': 1.11.3 + '@napi-rs/wasm-runtime': 1.2.2(@emnapi/core@1.11.3)(@emnapi/runtime@1.11.3) + optional: true + + '@solidjs/compiler-win32-x64-msvc@2.0.0-rc.13': + optional: true + + '@solidjs/compiler@2.0.0-rc.13': + optionalDependencies: + '@solidjs/compiler-darwin-arm64': 2.0.0-rc.13 + '@solidjs/compiler-darwin-x64': 2.0.0-rc.13 + '@solidjs/compiler-linux-arm64-gnu': 2.0.0-rc.13 + '@solidjs/compiler-linux-x64-gnu': 2.0.0-rc.13 + '@solidjs/compiler-wasm32-wasi': 2.0.0-rc.13 + '@solidjs/compiler-win32-x64-msvc': 2.0.0-rc.13 + + '@solidjs/meta@1.0.0-next.2(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14)': + dependencies: + '@solidjs/web': 2.0.0-rc.14(solid-js@2.0.0-rc.14) + solid-js: 2.0.0-rc.14 - '@solidjs/start@https://pkg.pr.new/solidjs/solid-start/@solidjs/start@2080(crossws@0.4.10(srvx@0.12.5))(vite@8.2.1(@types/node@26.1.2)(esbuild@0.25.12)(tsx@4.23.9)(yaml@2.9.0))': + '@solidjs/router@2.0.0-next.37(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(filesystem-routing@0.4.0(supports-color@10.2.2)(vite@8.0.0(@emnapi/core@1.11.3)(@emnapi/runtime@1.11.3)(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0)))(solid-js@2.0.0-rc.14)': dependencies: - '@babel/core': 7.29.7 - '@babel/traverse': 7.29.8 - '@babel/types': 7.29.8 - '@solidjs/meta': 0.29.4(solid-js@1.9.14) - '@types/babel__traverse': 7.28.0 - '@types/micromatch': 4.0.10 + '@solidjs/web': 2.0.0-rc.14(solid-js@2.0.0-rc.14) + solid-js: 2.0.0-rc.14 + optionalDependencies: + filesystem-routing: 0.4.0(supports-color@10.2.2)(vite@8.0.0(@emnapi/core@1.11.3)(@emnapi/runtime@1.11.3)(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0)) + + '@solidjs/router@2.0.0-next.37(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(filesystem-routing@0.4.0(supports-color@10.2.2)(vite@8.2.1(@types/node@26.1.2)(esbuild@0.25.12)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0)))(solid-js@2.0.0-rc.14)': + dependencies: + '@solidjs/web': 2.0.0-rc.14(solid-js@2.0.0-rc.14) + solid-js: 2.0.0-rc.14 + optionalDependencies: + filesystem-routing: 0.4.0(supports-color@10.2.2)(vite@8.2.1(@types/node@26.1.2)(esbuild@0.25.12)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0)) + + '@solidjs/signals@2.0.0-rc.14': {} + + '@solidjs/start@1.3.2(solid-js@2.0.0-rc.14)(supports-color@10.2.2)(vinxi@0.5.11(@parcel/watcher@2.6.0)(@types/node@26.1.2)(db0@0.3.4)(debug@4.4.3(supports-color@10.2.2))(ioredis@5.11.1(supports-color@10.2.2))(jiti@2.7.0)(lightningcss@1.33.0)(oxc-parser@0.139.0)(rolldown@1.2.3)(srvx@0.12.5)(supports-color@10.2.2)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0))(vite@8.0.0(@emnapi/core@1.11.3)(@emnapi/runtime@1.11.3)(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0))': + dependencies: + '@tanstack/server-functions-plugin': 1.121.21(supports-color@10.2.2)(vite@8.0.0(@emnapi/core@1.11.3)(@emnapi/runtime@1.11.3)(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0)) + '@vinxi/plugin-directives': 0.5.1(vinxi@0.5.11(@parcel/watcher@2.6.0)(@types/node@26.1.2)(db0@0.3.4)(debug@4.4.3(supports-color@10.2.2))(ioredis@5.11.1(supports-color@10.2.2))(jiti@2.7.0)(lightningcss@1.33.0)(oxc-parser@0.139.0)(rolldown@1.2.3)(srvx@0.12.5)(supports-color@10.2.2)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0)) + '@vinxi/server-components': 0.5.1(vinxi@0.5.11(@parcel/watcher@2.6.0)(@types/node@26.1.2)(db0@0.3.4)(debug@4.4.3(supports-color@10.2.2))(ioredis@5.11.1(supports-color@10.2.2))(jiti@2.7.0)(lightningcss@1.33.0)(oxc-parser@0.139.0)(rolldown@1.2.3)(srvx@0.12.5)(supports-color@10.2.2)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0)) cookie-es: 2.0.1 defu: 6.1.7 error-stack-parser: 2.1.4 - es-module-lexer: 2.3.1 - esbuild: 0.27.7 - fast-glob: 3.3.3 - h3: 2.0.1-rc.16(crossws@0.4.10(srvx@0.12.5)) html-to-image: 1.11.13 - micromatch: 4.0.8 - path-to-regexp: 8.4.2 - pathe: 2.0.3 radix3: 1.1.2 - seroval: 1.6.2 - seroval-plugins: 1.6.2(seroval@1.6.2) + seroval: 1.6.8 + seroval-plugins: 1.6.8(seroval@1.6.8) shiki: 1.29.2 - solid-js: 1.9.14 source-map-js: 1.2.1 - srvx: 0.11.22 - terracotta: 1.1.1(solid-js@1.9.14) - vite: 8.2.1(@types/node@26.1.2)(esbuild@0.25.12)(tsx@4.23.9)(yaml@2.9.0) - vite-plugin-solid: 2.11.14(solid-js@1.9.14)(vite@8.2.1(@types/node@26.1.2)(esbuild@0.25.12)(tsx@4.23.9)(yaml@2.9.0)) + terracotta: 1.1.1(solid-js@2.0.0-rc.14) + tinyglobby: 0.2.17 + vinxi: 0.5.11(@parcel/watcher@2.6.0)(@types/node@26.1.2)(db0@0.3.4)(debug@4.4.3(supports-color@10.2.2))(ioredis@5.11.1(supports-color@10.2.2))(jiti@2.7.0)(lightningcss@1.33.0)(oxc-parser@0.139.0)(rolldown@1.2.3)(srvx@0.12.5)(supports-color@10.2.2)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0) + vite-plugin-solid: 2.11.14(solid-js@2.0.0-rc.14)(supports-color@10.2.2)(vite@8.0.0(@emnapi/core@1.11.3)(@emnapi/runtime@1.11.3)(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0)) transitivePeerDependencies: - '@testing-library/jest-dom' - - crossws + - solid-js + - supports-color + - vite + + '@solidjs/vite-plugin@3.0.0-next.47(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14)(supports-color@10.2.2)(vite@8.0.0(@emnapi/core@1.11.3)(@emnapi/runtime@1.11.3)(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0))': + dependencies: + '@ampproject/remapping': 2.3.0 + '@babel/core': 7.29.7(supports-color@10.2.2) + '@solidjs/babel-plugin': 2.0.0-rc.13(@babel/core@7.29.7(supports-color@10.2.2)) + '@solidjs/compiler': 2.0.0-rc.13 + '@solidjs/web': 2.0.0-rc.14(solid-js@2.0.0-rc.14) + '@types/babel__core': 7.20.5 + merge-anything: 5.1.7 + solid-js: 2.0.0-rc.14 + vite: 8.0.0(@emnapi/core@1.11.3)(@emnapi/runtime@1.11.3)(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0) + vitefu: 1.1.3(vite@8.0.0(@emnapi/core@1.11.3)(@emnapi/runtime@1.11.3)(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0)) + transitivePeerDependencies: + - '@tsrx/core' + - supports-color + + '@solidjs/vite-plugin@3.0.0-next.47(@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14))(solid-js@2.0.0-rc.14)(supports-color@10.2.2)(vite@8.2.1(@types/node@26.1.2)(esbuild@0.25.12)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0))': + dependencies: + '@ampproject/remapping': 2.3.0 + '@babel/core': 7.29.7(supports-color@10.2.2) + '@solidjs/babel-plugin': 2.0.0-rc.13(@babel/core@7.29.7(supports-color@10.2.2)) + '@solidjs/compiler': 2.0.0-rc.13 + '@solidjs/web': 2.0.0-rc.14(solid-js@2.0.0-rc.14) + '@types/babel__core': 7.20.5 + merge-anything: 5.1.7 + solid-js: 2.0.0-rc.14 + vite: 8.2.1(@types/node@26.1.2)(esbuild@0.25.12)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0) + vitefu: 1.1.3(vite@8.2.1(@types/node@26.1.2)(esbuild@0.25.12)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0)) + transitivePeerDependencies: + - '@tsrx/core' - supports-color + '@solidjs/web@2.0.0-rc.14(solid-js@2.0.0-rc.14)': + dependencies: + seroval: 1.6.8 + seroval-plugins: 1.6.8(seroval@1.6.8) + solid-js: 2.0.0-rc.14 + + '@speed-highlight/core@1.2.24': {} + '@standard-schema/spec@1.1.0': {} '@swc/helpers@0.5.23': dependencies: tslib: 2.8.1 + '@tanstack/directive-functions-plugin@1.121.21(supports-color@10.2.2)(vite@8.0.0(@emnapi/core@1.11.3)(@emnapi/runtime@1.11.3)(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0))': + dependencies: + '@babel/code-frame': 7.26.2 + '@babel/core': 7.29.7(supports-color@10.2.2) + '@babel/traverse': 7.29.8(supports-color@10.2.2) + '@babel/types': 7.29.8 + '@tanstack/router-utils': 1.162.3(supports-color@10.2.2) + babel-dead-code-elimination: 1.0.12(supports-color@10.2.2) + tiny-invariant: 1.3.3 + vite: 8.0.0(@emnapi/core@1.11.3)(@emnapi/runtime@1.11.3)(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0) + transitivePeerDependencies: + - supports-color + + '@tanstack/router-utils@1.162.3(supports-color@10.2.2)': + dependencies: + '@babel/generator': 7.29.8 + '@babel/parser': 7.29.8 + '@babel/types': 7.29.8 + ansis: 4.3.1 + babel-dead-code-elimination: 1.0.12(supports-color@10.2.2) + diff: 8.0.4 + pathe: 2.0.3 + tinyglobby: 0.2.17 + transitivePeerDependencies: + - supports-color + + '@tanstack/server-functions-plugin@1.121.21(supports-color@10.2.2)(vite@8.0.0(@emnapi/core@1.11.3)(@emnapi/runtime@1.11.3)(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0))': + dependencies: + '@babel/code-frame': 7.26.2 + '@babel/core': 7.29.7(supports-color@10.2.2) + '@babel/plugin-syntax-jsx': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2)) + '@babel/plugin-syntax-typescript': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2)) + '@babel/template': 7.29.7 + '@babel/traverse': 7.29.8(supports-color@10.2.2) + '@babel/types': 7.29.8 + '@tanstack/directive-functions-plugin': 1.121.21(supports-color@10.2.2)(vite@8.0.0(@emnapi/core@1.11.3)(@emnapi/runtime@1.11.3)(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0)) + babel-dead-code-elimination: 1.0.12(supports-color@10.2.2) + tiny-invariant: 1.3.3 + transitivePeerDependencies: + - supports-color + - vite + '@tybys/wasm-util@0.10.3': dependencies: tslib: 2.8.1 @@ -4669,6 +6619,8 @@ snapshots: dependencies: undici-types: 8.3.0 + '@types/resolve@1.20.2': {} + '@types/resolve@1.20.6': {} '@types/ungap__structured-clone@1.2.0': {} @@ -4677,21 +6629,84 @@ snapshots: '@types/unist@3.0.3': {} - '@typescript/vfs@1.6.4(typescript@5.9.3)': + '@typescript/vfs@1.6.4(supports-color@10.2.2)(typescript@5.9.3)': dependencies: - debug: 4.4.3 + debug: 4.4.3(supports-color@10.2.2) typescript: 5.9.3 transitivePeerDependencies: - supports-color '@ungap/structured-clone@1.3.3': {} + '@vercel/nft@1.11.0(rollup@4.64.0)(supports-color@10.2.2)': + dependencies: + '@mapbox/node-pre-gyp': 2.0.3(supports-color@10.2.2) + '@rollup/pluginutils': 5.4.0(rollup@4.64.0) + acorn: 8.18.0 + acorn-import-attributes: 1.9.5(acorn@8.18.0) + async-sema: 3.1.1 + bindings: 1.5.0 + estree-walker: 2.0.2 + glob: 13.0.6 + graceful-fs: 4.2.11 + node-gyp-build: 4.8.4 + picomatch: 4.0.7 + resolve-from: 5.0.0 + transitivePeerDependencies: + - encoding + - rollup + - supports-color + '@vercel/og@0.6.8': dependencies: '@resvg/resvg-wasm': 2.4.0 satori: 0.12.2 yoga-wasm-web: 0.3.3 + '@vinxi/listhen@1.5.6': + dependencies: + '@parcel/watcher': 2.6.0 + '@parcel/watcher-wasm': 2.3.0 + citty: 0.1.6 + clipboardy: 4.0.0 + consola: 3.4.2 + defu: 6.1.7 + get-port-please: 3.2.0 + h3: 1.15.11 + http-shutdown: 1.2.2 + jiti: 1.21.7 + mlly: 1.8.2 + node-forge: 1.4.0 + pathe: 1.1.2 + std-env: 3.10.0 + ufo: 1.6.4 + untun: 0.1.3 + uqr: 0.1.3 + + '@vinxi/plugin-directives@0.5.1(vinxi@0.5.11(@parcel/watcher@2.6.0)(@types/node@26.1.2)(db0@0.3.4)(debug@4.4.3(supports-color@10.2.2))(ioredis@5.11.1(supports-color@10.2.2))(jiti@2.7.0)(lightningcss@1.33.0)(oxc-parser@0.139.0)(rolldown@1.2.3)(srvx@0.12.5)(supports-color@10.2.2)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0))': + dependencies: + '@babel/parser': 7.29.8 + acorn: 8.18.0 + acorn-jsx: 5.3.2(acorn@8.18.0) + acorn-loose: 8.5.2 + acorn-typescript: 1.4.13(acorn@8.18.0) + astring: 1.9.0 + magicast: 0.2.11 + recast: 0.23.21 + tslib: 2.8.1 + vinxi: 0.5.11(@parcel/watcher@2.6.0)(@types/node@26.1.2)(db0@0.3.4)(debug@4.4.3(supports-color@10.2.2))(ioredis@5.11.1(supports-color@10.2.2))(jiti@2.7.0)(lightningcss@1.33.0)(oxc-parser@0.139.0)(rolldown@1.2.3)(srvx@0.12.5)(supports-color@10.2.2)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0) + + '@vinxi/server-components@0.5.1(vinxi@0.5.11(@parcel/watcher@2.6.0)(@types/node@26.1.2)(db0@0.3.4)(debug@4.4.3(supports-color@10.2.2))(ioredis@5.11.1(supports-color@10.2.2))(jiti@2.7.0)(lightningcss@1.33.0)(oxc-parser@0.139.0)(rolldown@1.2.3)(srvx@0.12.5)(supports-color@10.2.2)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0))': + dependencies: + '@vinxi/plugin-directives': 0.5.1(vinxi@0.5.11(@parcel/watcher@2.6.0)(@types/node@26.1.2)(db0@0.3.4)(debug@4.4.3(supports-color@10.2.2))(ioredis@5.11.1(supports-color@10.2.2))(jiti@2.7.0)(lightningcss@1.33.0)(oxc-parser@0.139.0)(rolldown@1.2.3)(srvx@0.12.5)(supports-color@10.2.2)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0)) + acorn: 8.18.0 + acorn-loose: 8.5.2 + acorn-typescript: 1.4.13(acorn@8.18.0) + astring: 1.9.0 + magicast: 0.2.11 + recast: 0.23.21 + vinxi: 0.5.11(@parcel/watcher@2.6.0)(@types/node@26.1.2)(db0@0.3.4)(debug@4.4.3(supports-color@10.2.2))(ioredis@5.11.1(supports-color@10.2.2))(jiti@2.7.0)(lightningcss@1.33.0)(oxc-parser@0.139.0)(rolldown@1.2.3)(srvx@0.12.5)(supports-color@10.2.2)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0) + '@vitest/expect@4.1.10': dependencies: '@standard-schema/spec': 1.1.0 @@ -4701,13 +6716,13 @@ snapshots: chai: 6.2.2 tinyrainbow: 3.1.1 - '@vitest/mocker@4.1.10(vite@8.2.1(@types/node@26.1.2)(esbuild@0.25.12)(tsx@4.23.9)(yaml@2.9.0))': + '@vitest/mocker@4.1.10(vite@8.2.1(@types/node@26.1.2)(esbuild@0.25.12)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0))': dependencies: '@vitest/spy': 4.1.10 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 8.2.1(@types/node@26.1.2)(esbuild@0.25.12)(tsx@4.23.9)(yaml@2.9.0) + vite: 8.2.1(@types/node@26.1.2)(esbuild@0.25.12)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0) '@vitest/pretty-format@4.1.10': dependencies: @@ -4733,42 +6748,159 @@ snapshots: convert-source-map: 2.0.0 tinyrainbow: 3.1.1 + abbrev@3.0.1: {} + + abort-controller@3.0.0: + dependencies: + event-target-shim: 5.0.1 + + acorn-import-attributes@1.9.5(acorn@8.18.0): + dependencies: + acorn: 8.18.0 + acorn-jsx@5.3.2(acorn@8.18.0): dependencies: acorn: 8.18.0 + acorn-loose@8.5.2: + dependencies: + acorn: 8.18.0 + + acorn-typescript@1.4.13(acorn@8.18.0): + dependencies: + acorn: 8.18.0 + acorn@8.18.0: {} + agent-base@7.1.4: {} + + ansi-align@3.0.1: + dependencies: + string-width: 4.2.3 + + ansi-regex@5.0.1: {} + + ansi-regex@6.4.0: {} + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + ansi-styles@6.2.3: {} + ansis@4.3.1: {} + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.2 + + archiver-utils@5.0.2: + dependencies: + glob: 10.5.0 + graceful-fs: 4.2.11 + is-stream: 2.0.1 + lazystream: 1.0.1 + lodash: 4.18.1 + normalize-path: 3.0.0 + readable-stream: 4.7.0 + + archiver@7.0.1: + dependencies: + archiver-utils: 5.0.2 + async: 3.2.6 + buffer-crc32: 1.0.0 + readable-stream: 4.7.0 + readdir-glob: 1.1.3 + tar-stream: 3.2.2 + zip-stream: 6.0.1 + transitivePeerDependencies: + - bare-abort-controller + - bare-buffer + - react-native-b4a + argparse@1.0.10: dependencies: sprintf-js: 1.0.3 assertion-error@2.0.1: {} + ast-types@0.16.3: + dependencies: + tslib: 2.8.1 + astring@1.9.0: {} - babel-plugin-jsx-dom-expressions@0.40.7(@babel/core@7.29.7): + async-sema@3.1.1: {} + + async@3.2.6: {} + + b4a@1.9.0: {} + + babel-dead-code-elimination@1.0.12(supports-color@10.2.2): + dependencies: + '@babel/core': 7.29.7(supports-color@10.2.2) + '@babel/parser': 7.29.8 + '@babel/traverse': 7.29.8(supports-color@10.2.2) + '@babel/types': 7.29.8 + transitivePeerDependencies: + - supports-color + + babel-plugin-jsx-dom-expressions@0.40.7(@babel/core@7.29.7(supports-color@10.2.2)): dependencies: - '@babel/core': 7.29.7 + '@babel/core': 7.29.7(supports-color@10.2.2) '@babel/helper-module-imports': 7.18.6 - '@babel/plugin-syntax-jsx': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-syntax-jsx': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2)) '@babel/types': 7.29.8 html-entities: 2.3.3 parse5: 7.3.0 - babel-preset-solid@1.9.12(@babel/core@7.29.7)(solid-js@1.9.14): + babel-preset-solid@1.9.12(@babel/core@7.29.7(supports-color@10.2.2))(solid-js@2.0.0-rc.14): dependencies: - '@babel/core': 7.29.7 - babel-plugin-jsx-dom-expressions: 0.40.7(@babel/core@7.29.7) + '@babel/core': 7.29.7(supports-color@10.2.2) + babel-plugin-jsx-dom-expressions: 0.40.7(@babel/core@7.29.7(supports-color@10.2.2)) optionalDependencies: - solid-js: 1.9.14 + solid-js: 2.0.0-rc.14 bail@2.0.2: {} + balanced-match@1.0.2: {} + + balanced-match@4.0.4: {} + + bare-events@2.9.2: {} + + bare-fs@4.8.2: + dependencies: + bare-events: 2.9.2 + bare-path: 3.1.2 + bare-stream: 2.13.4(bare-events@2.9.2) + bare-url: 2.5.4 + fast-fifo: 1.3.2 + transitivePeerDependencies: + - bare-abort-controller + - react-native-b4a + + bare-path@3.1.2: {} + + bare-stream@2.13.4(bare-events@2.9.2): + dependencies: + b4a: 1.9.0 + streamx: 2.28.1 + teex: 1.0.1 + optionalDependencies: + bare-events: 2.9.2 + transitivePeerDependencies: + - react-native-b4a + + bare-url@2.5.4: + dependencies: + bare-path: 3.1.2 + base64-js@0.0.8: {} + base64-js@1.5.1: {} + baseline-browser-mapping@2.11.12: {} bcp-47-match@2.0.3: {} @@ -4779,10 +6911,33 @@ snapshots: dependencies: require-from-string: 2.0.2 + bindings@1.5.0: + dependencies: + file-uri-to-path: 1.0.0 + birpc@4.0.0: {} boolbase@1.0.0: {} + boxen@8.0.1: + dependencies: + ansi-align: 3.0.1 + camelcase: 8.0.0 + chalk: 5.6.2 + cli-boxes: 3.0.0 + string-width: 7.2.0 + type-fest: 4.41.0 + widest-line: 5.0.0 + wrap-ansi: 9.0.2 + + brace-expansion@2.1.7: + dependencies: + balanced-match: 1.0.2 + + brace-expansion@5.0.12: + dependencies: + balanced-match: 4.0.4 + braces@3.0.3: dependencies: fill-range: 7.1.1 @@ -4795,10 +6950,38 @@ snapshots: node-releases: 2.0.53 update-browserslist-db: 1.2.3(browserslist@4.28.7) + buffer-crc32@1.0.0: {} + + buffer-from@1.1.2: {} + + buffer@6.0.3: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + bundle-name@4.1.0: dependencies: run-applescript: 7.1.0 + c12@3.3.4(magicast@0.5.5): + dependencies: + chokidar: 5.0.0 + confbox: 0.2.4 + defu: 6.1.7 + dotenv: 17.4.2 + exsolve: 1.1.1 + giget: 3.3.1 + jiti: 2.7.0 + ohash: 2.0.11 + pathe: 2.0.3 + perfect-debounce: 2.1.0 + pkg-types: 2.3.3 + rc9: 3.1.0 + optionalDependencies: + magicast: 0.5.5 + + camelcase@8.0.0: {} + camelize@1.0.1: {} caniuse-lite@1.0.30001807: {} @@ -4807,6 +6990,8 @@ snapshots: chai@6.2.2: {} + chalk@5.6.2: {} + character-entities-html4@2.1.0: {} character-entities-legacy@3.0.0: {} @@ -4815,22 +7000,89 @@ snapshots: character-reference-invalid@2.0.1: {} + chokidar@4.0.3: + dependencies: + readdirp: 4.1.2 + + chokidar@5.0.0: + dependencies: + readdirp: 5.1.1 + + chownr@3.0.0: {} + + citty@0.1.6: + dependencies: + consola: 3.4.2 + + citty@0.2.2: {} + + cli-boxes@3.0.0: {} + + clipboardy@4.0.0: + dependencies: + execa: 8.0.1 + is-wsl: 3.1.1 + is64bit: 2.0.0 + + cliui@9.0.1: + dependencies: + string-width: 7.2.0 + strip-ansi: 7.2.0 + wrap-ansi: 9.0.2 + + cluster-key-slot@1.1.1: {} + collapse-white-space@2.1.0: {} + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + color-name@1.1.4: {} comma-separated-tokens@2.0.3: {} + commander@2.20.3: {} + + commondir@1.0.1: {} + + compatx@0.2.0: {} + + compress-commons@6.0.2: + dependencies: + crc-32: 1.2.2 + crc32-stream: 6.0.0 + is-stream: 2.0.1 + normalize-path: 3.0.0 + readable-stream: 4.7.0 + confbox@0.1.8: {} confbox@0.2.4: {} + confbox@0.3.1: {} + consola@3.4.2: {} convert-source-map@2.0.0: {} + cookie-es@1.2.3: {} + cookie-es@2.0.1: {} + cookie-es@3.1.1: {} + + core-util-is@1.0.3: {} + + crc-32@1.2.2: {} + + crc32-stream@6.0.0: + dependencies: + crc-32: 1.2.2 + readable-stream: 4.7.0 + + croner@10.0.1: {} + cross-env@7.0.3: dependencies: cross-spawn: 7.0.6 @@ -4841,14 +7093,13 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 - crossws@0.4.10(srvx@0.11.22): - optionalDependencies: - srvx: 0.11.22 + crossws@0.3.5: + dependencies: + uncrypto: 0.1.3 crossws@0.4.10(srvx@0.12.5): optionalDependencies: srvx: 0.12.5 - optional: true css-background-parser@0.1.0: {} @@ -4882,11 +7133,24 @@ snapshots: transitivePeerDependencies: - '@noble/hashes' + dax-sh@0.43.2: + dependencies: + '@deno/shim-deno': 0.19.2 + undici-types: 5.28.4 + db0@0.3.4: {} - debug@4.4.3: + debug@2.6.9(supports-color@10.2.2): + dependencies: + ms: 2.0.0 + optionalDependencies: + supports-color: 10.2.2 + + debug@4.4.3(supports-color@10.2.2): dependencies: ms: 2.1.3 + optionalDependencies: + supports-color: 10.2.2 decimal.js@10.6.0: {} @@ -4894,6 +7158,8 @@ snapshots: dependencies: character-entities: 2.0.2 + deepmerge@4.3.1: {} + default-browser-id@5.0.1: {} default-browser@5.5.0: @@ -4905,8 +7171,16 @@ snapshots: defu@6.1.7: {} + denque@2.1.0: {} + + depd@2.0.0: {} + dequal@2.0.3: {} + destr@2.0.5: {} + + destroy@1.2.0: {} + detect-libc@2.1.2: {} devlop@1.1.0: @@ -4917,23 +7191,34 @@ snapshots: direction@2.0.1: {} + dot-prop@10.2.0: + dependencies: + type-fest: 5.10.0 + + dotenv@17.4.2: {} + + duplexer@0.1.2: {} + + eastasianwidth@0.2.0: {} + + ee-first@1.1.1: {} + electron-to-chromium@1.5.402: {} emoji-regex-xs@1.0.0: {} emoji-regex@10.6.0: {} + emoji-regex@8.0.0: {} + + emoji-regex@9.2.2: {} + + encodeurl@2.0.0: {} + entities@6.0.1: {} entities@8.0.0: {} - env-runner@0.1.16: - dependencies: - crossws: 0.4.10(srvx@0.11.22) - exsolve: 1.1.1 - httpxy: 0.5.5 - srvx: 0.11.22 - error-stack-parser-es@1.0.5: {} error-stack-parser@2.1.4: @@ -4942,6 +7227,8 @@ snapshots: es-errors@1.3.0: {} + es-module-lexer@1.7.0: {} + es-module-lexer@2.3.1: {} esast-util-from-estree@2.0.0: @@ -4987,35 +7274,6 @@ snapshots: '@esbuild/win32-ia32': 0.25.12 '@esbuild/win32-x64': 0.25.12 - esbuild@0.27.7: - optionalDependencies: - '@esbuild/aix-ppc64': 0.27.7 - '@esbuild/android-arm': 0.27.7 - '@esbuild/android-arm64': 0.27.7 - '@esbuild/android-x64': 0.27.7 - '@esbuild/darwin-arm64': 0.27.7 - '@esbuild/darwin-x64': 0.27.7 - '@esbuild/freebsd-arm64': 0.27.7 - '@esbuild/freebsd-x64': 0.27.7 - '@esbuild/linux-arm': 0.27.7 - '@esbuild/linux-arm64': 0.27.7 - '@esbuild/linux-ia32': 0.27.7 - '@esbuild/linux-loong64': 0.27.7 - '@esbuild/linux-mips64el': 0.27.7 - '@esbuild/linux-ppc64': 0.27.7 - '@esbuild/linux-riscv64': 0.27.7 - '@esbuild/linux-s390x': 0.27.7 - '@esbuild/linux-x64': 0.27.7 - '@esbuild/netbsd-arm64': 0.27.7 - '@esbuild/netbsd-x64': 0.27.7 - '@esbuild/openbsd-arm64': 0.27.7 - '@esbuild/openbsd-x64': 0.27.7 - '@esbuild/openharmony-arm64': 0.27.7 - '@esbuild/sunos-x64': 0.27.7 - '@esbuild/win32-arm64': 0.27.7 - '@esbuild/win32-ia32': 0.27.7 - '@esbuild/win32-x64': 0.27.7 - esbuild@0.28.1: optionalDependencies: '@esbuild/aix-ppc64': 0.28.1 @@ -5092,16 +7350,42 @@ snapshots: dependencies: '@types/estree': 1.0.9 + etag@1.8.1: {} + + event-target-shim@5.0.1: {} + + eventemitter3@4.0.7: {} + + events-universal@1.0.1: + dependencies: + bare-events: 2.9.2 + transitivePeerDependencies: + - bare-abort-controller + + events@3.3.0: {} + + execa@8.0.1: + dependencies: + cross-spawn: 7.0.6 + get-stream: 8.0.1 + human-signals: 5.0.0 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.3.0 + onetime: 6.0.0 + signal-exit: 4.1.0 + strip-final-newline: 3.0.0 + expect-type@1.4.0: {} - expressive-code-twoslash@0.4.0(@expressive-code/core@0.41.7)(expressive-code@0.41.7)(typescript@5.9.3): + expressive-code-twoslash@0.4.0(@expressive-code/core@0.41.7)(expressive-code@0.41.7)(supports-color@10.2.2)(typescript@5.9.3): dependencies: '@expressive-code/core': 0.41.7 expressive-code: 0.41.7 - mdast-util-from-markdown: 2.0.3 - mdast-util-gfm: 3.1.0 + mdast-util-from-markdown: 2.0.3(supports-color@10.2.2) + mdast-util-gfm: 3.1.0(supports-color@10.2.2) mdast-util-to-hast: 13.2.1 - twoslash: 0.2.12(typescript@5.9.3) + twoslash: 0.2.12(supports-color@10.2.2)(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: - supports-color @@ -5123,6 +7407,8 @@ snapshots: fast-content-type-parse@2.0.1: {} + fast-fifo@1.3.2: {} + fast-glob@3.3.3: dependencies: '@nodelib/fs.stat': 2.0.5 @@ -5135,22 +7421,72 @@ snapshots: dependencies: reusify: 1.1.0 - fault@2.0.1: + fault@2.0.1: + dependencies: + format: 0.2.2 + + fdir@6.5.0(picomatch@4.0.5): + optionalDependencies: + picomatch: 4.0.5 + + fdir@6.5.0(picomatch@4.0.7): + optionalDependencies: + picomatch: 4.0.7 + + fflate@0.7.5: {} + + file-uri-to-path@1.0.0: {} + + filesystem-routing@0.4.0(supports-color@10.2.2)(vite@8.0.0(@emnapi/core@1.11.3)(@emnapi/runtime@1.11.3)(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0)): + dependencies: + '@babel/core': 7.29.7(supports-color@10.2.2) + '@types/babel__core': 7.20.5 + '@types/babel__traverse': 7.28.0 + '@types/micromatch': 4.0.10 + fast-glob: 3.3.3 + micromatch: 4.0.8 + oxc-parser: 0.139.0 + radix3: 1.1.2 + optionalDependencies: + vite: 8.0.0(@emnapi/core@1.11.3)(@emnapi/runtime@1.11.3)(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0) + transitivePeerDependencies: + - supports-color + optional: true + + filesystem-routing@0.4.0(supports-color@10.2.2)(vite@8.2.1(@types/node@26.1.2)(esbuild@0.25.12)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0)): + dependencies: + '@babel/core': 7.29.7(supports-color@10.2.2) + '@types/babel__core': 7.20.5 + '@types/babel__traverse': 7.28.0 + '@types/micromatch': 4.0.10 + fast-glob: 3.3.3 + micromatch: 4.0.8 + oxc-parser: 0.139.0 + radix3: 1.1.2 + optionalDependencies: + vite: 8.2.1(@types/node@26.1.2)(esbuild@0.25.12)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0) + transitivePeerDependencies: + - supports-color + + fill-range@7.1.1: dependencies: - format: 0.2.2 + to-regex-range: 5.0.1 - fdir@6.5.0(picomatch@4.0.5): + follow-redirects@1.16.1(debug@4.4.3(supports-color@10.2.2)): optionalDependencies: - picomatch: 4.0.5 + debug: 4.4.3(supports-color@10.2.2) - fflate@0.7.5: {} - - fill-range@7.1.1: + foreground-child@3.3.1: dependencies: - to-regex-range: 5.0.1 + cross-spawn: 7.0.6 + signal-exit: 4.1.0 format@0.2.2: {} + fresh@0.5.2: {} + + fresh@2.0.0: {} + fsevents@2.3.3: optional: true @@ -5158,12 +7494,49 @@ snapshots: gensync@1.0.0-beta.2: {} + get-caller-file@2.0.5: {} + + get-east-asian-width@1.7.0: {} + + get-port-please@3.2.0: {} + + get-stream@8.0.1: {} + + giget@3.3.1: {} + github-slugger@2.0.0: {} glob-parent@5.1.2: dependencies: is-glob: 4.0.3 + glob@10.5.0: + dependencies: + foreground-child: 3.3.1 + jackspeak: 3.4.3 + minimatch: 9.0.9 + minipass: 7.1.3 + package-json-from-dist: 1.0.1 + path-scurry: 1.11.1 + + glob@13.0.6: + dependencies: + minimatch: 10.2.6 + minipass: 7.1.3 + path-scurry: 2.0.2 + + globby@16.2.4: + dependencies: + '@sindresorhus/merge-streams': 4.0.0 + fast-glob: 3.3.3 + ignore: 7.0.12 + is-path-inside: 4.0.0 + micromatch: 4.0.8 + slash: 5.1.0 + unicorn-magic: 0.4.1 + + graceful-fs@4.2.11: {} + gray-matter@4.0.3: dependencies: js-yaml: 3.15.1 @@ -5171,33 +7544,33 @@ snapshots: section-matter: 1.0.0 strip-bom-string: 1.0.0 - h3@2.0.1-rc.16(crossws@0.4.10(srvx@0.11.22)): - dependencies: - rou3: 0.8.1 - srvx: 0.11.22 - optionalDependencies: - crossws: 0.4.10(srvx@0.11.22) - - h3@2.0.1-rc.16(crossws@0.4.10(srvx@0.12.5)): + gzip-size@7.0.0: dependencies: - rou3: 0.8.1 - srvx: 0.11.22 - optionalDependencies: - crossws: 0.4.10(srvx@0.12.5) + duplexer: 0.1.2 - h3@2.0.1-rc.26(crossws@0.4.10(srvx@0.11.22)): + h3@1.15.11: dependencies: - rou3: 0.9.1 - srvx: 0.12.5 - optionalDependencies: - crossws: 0.4.10(srvx@0.11.22) + cookie-es: 1.2.3 + crossws: 0.3.5 + defu: 6.1.7 + destr: 2.0.5 + iron-webcrypto: 1.2.1 + node-mock-http: 1.0.5 + radix3: 1.1.2 + ufo: 1.6.4 + uncrypto: 0.1.3 - h3@2.0.1-rc.26(crossws@0.4.10(srvx@0.12.5)): + h3@1.15.3: dependencies: - rou3: 0.9.1 - srvx: 0.12.5 - optionalDependencies: - crossws: 0.4.10(srvx@0.12.5) + cookie-es: 1.2.3 + crossws: 0.3.5 + defu: 6.1.7 + destr: 2.0.5 + iron-webcrypto: 1.2.1 + node-mock-http: 1.0.5 + radix3: 1.1.2 + ufo: 1.6.4 + uncrypto: 0.1.3 hasown@2.0.4: dependencies: @@ -5264,7 +7637,7 @@ snapshots: unist-util-visit: 5.1.0 zwitch: 2.0.4 - hast-util-to-estree@3.1.3: + hast-util-to-estree@3.1.3(supports-color@10.2.2): dependencies: '@types/estree': 1.0.9 '@types/estree-jsx': 1.0.5 @@ -5274,9 +7647,9 @@ snapshots: estree-util-attach-comments: 3.0.0 estree-util-is-identifier-name: 3.0.0 hast-util-whitespace: 3.0.0 - mdast-util-mdx-expression: 2.0.1 - mdast-util-mdx-jsx: 3.2.0 - mdast-util-mdxjs-esm: 2.0.1 + mdast-util-mdx-expression: 2.0.1(supports-color@10.2.2) + mdast-util-mdx-jsx: 3.2.0(supports-color@10.2.2) + mdast-util-mdxjs-esm: 2.0.1(supports-color@10.2.2) property-information: 7.2.0 space-separated-tokens: 2.0.2 style-to-js: 1.1.21 @@ -5299,7 +7672,7 @@ snapshots: stringify-entities: 4.0.4 zwitch: 2.0.4 - hast-util-to-jsx-runtime@2.3.6: + hast-util-to-jsx-runtime@2.3.6(supports-color@10.2.2): dependencies: '@types/estree': 1.0.9 '@types/hast': 3.0.5 @@ -5308,9 +7681,9 @@ snapshots: devlop: 1.1.0 estree-util-is-identifier-name: 3.0.0 hast-util-whitespace: 3.0.0 - mdast-util-mdx-expression: 2.0.1 - mdast-util-mdx-jsx: 3.2.0 - mdast-util-mdxjs-esm: 2.0.1 + mdast-util-mdx-expression: 2.0.1(supports-color@10.2.2) + mdast-util-mdx-jsx: 3.2.0(supports-color@10.2.2) + mdast-util-mdxjs-esm: 2.0.1(supports-color@10.2.2) property-information: 7.2.0 space-separated-tokens: 2.0.2 style-to-js: 1.1.21 @@ -5354,7 +7727,7 @@ snapshots: hex-rgb@4.3.0: {} - hookable@6.1.1: {} + hookable@5.5.3: {} html-encoding-sniffer@6.0.0: dependencies: @@ -5368,12 +7741,59 @@ snapshots: html-void-elements@3.0.0: {} + http-errors@2.0.1: + dependencies: + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 2.0.2 + toidentifier: 1.0.1 + + http-proxy@1.18.1(debug@4.4.3(supports-color@10.2.2)): + dependencies: + eventemitter3: 4.0.7 + follow-redirects: 1.16.1(debug@4.4.3(supports-color@10.2.2)) + requires-port: 1.0.0 + transitivePeerDependencies: + - debug + + http-shutdown@1.2.2: {} + + https-proxy-agent@7.0.6(supports-color@10.2.2): + dependencies: + agent-base: 7.1.4 + debug: 4.4.3(supports-color@10.2.2) + transitivePeerDependencies: + - supports-color + httpxy@0.5.5: {} + human-signals@5.0.0: {} + + ieee754@1.2.1: {} + + ignore@7.0.12: {} + import-meta-resolve@4.2.0: {} + inherits@2.0.4: {} + inline-style-parser@0.2.7: {} + ioredis@5.11.1(supports-color@10.2.2): + dependencies: + '@ioredis/commands': 1.10.0 + cluster-key-slot: 1.1.1 + debug: 4.4.3(supports-color@10.2.2) + denque: 2.1.0 + redis-errors: 1.2.0 + redis-parser: 3.0.0 + standard-as-callback: 2.1.0 + transitivePeerDependencies: + - supports-color + + iron-webcrypto@1.2.1: {} + is-alphabetical@2.0.1: {} is-alphanumerical@2.0.1: @@ -5393,6 +7813,8 @@ snapshots: is-extglob@2.1.1: {} + is-fullwidth-code-point@3.0.0: {} + is-glob@4.0.3: dependencies: is-extglob: 2.1.1 @@ -5405,20 +7827,52 @@ snapshots: dependencies: is-docker: 3.0.0 + is-module@1.0.0: {} + is-number@7.0.0: {} + is-path-inside@4.0.0: {} + is-plain-obj@4.1.0: {} is-potential-custom-element-name@1.0.1: {} + is-reference@1.2.1: + dependencies: + '@types/estree': 1.0.9 + + is-stream@2.0.1: {} + + is-stream@3.0.0: {} + is-what@4.1.16: {} is-wsl@3.1.1: dependencies: is-inside-container: 1.0.0 + is64bit@2.0.0: + dependencies: + system-architecture: 0.1.0 + + isarray@1.0.0: {} + isexe@2.0.0: {} + isexe@3.1.5: {} + + jackspeak@3.4.3: + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + + jiti@1.21.7: {} + + jiti@2.7.0: {} + + js-tokens@10.0.0: {} + js-tokens@4.0.0: {} js-tokens@9.0.1: {} @@ -5460,6 +7914,16 @@ snapshots: kind-of@6.0.3: {} + kleur@4.1.5: {} + + klona@2.0.6: {} + + knitwork@1.3.0: {} + + lazystream@1.0.1: + dependencies: + readable-stream: 2.3.8 + lightningcss-android-arm64@1.33.0: optional: true @@ -5514,14 +7978,41 @@ snapshots: base64-js: 0.0.8 unicode-trie: 2.0.0 + listhen@1.10.1(@parcel/watcher@2.6.0)(srvx@0.12.5): + dependencies: + '@parcel/watcher-wasm': 2.6.0 + citty: 0.2.2 + consola: 3.4.2 + crossws: 0.4.10(srvx@0.12.5) + defu: 6.1.7 + get-port-please: 3.2.0 + h3: 1.15.11 + http-shutdown: 1.2.2 + jiti: 2.7.0 + node-forge: 1.4.0 + pathe: 2.0.3 + std-env: 4.2.0 + tinyclip: 0.1.15 + ufo: 1.6.4 + untun: 0.2.2 + uqr: 0.1.3 + optionalDependencies: + '@parcel/watcher': 2.6.0 + transitivePeerDependencies: + - srvx + local-pkg@1.2.1: dependencies: mlly: 1.8.2 pkg-types: 2.3.1 quansync: 0.2.11 + lodash@4.18.1: {} + longest-streak@3.1.0: {} + lru-cache@10.4.3: {} + lru-cache@11.5.2: {} lru-cache@5.1.1: @@ -5532,17 +8023,33 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.5.5 + magic-string@1.4.2: + dependencies: + '@jridgewell/sourcemap-codec': 1.6.0 + + magicast@0.2.11: + dependencies: + '@babel/parser': 7.29.8 + '@babel/types': 7.29.8 + recast: 0.23.21 + + magicast@0.5.5: + dependencies: + '@babel/parser': 7.29.8 + '@babel/types': 7.29.8 + source-map-js: 1.2.1 + markdown-extensions@2.0.0: {} markdown-table@3.0.4: {} - mdast-util-directive@3.1.0: + mdast-util-directive@3.1.0(supports-color@10.2.2): dependencies: '@types/mdast': 4.0.4 '@types/unist': 3.0.3 ccount: 2.0.1 devlop: 1.1.0 - mdast-util-from-markdown: 2.0.3 + mdast-util-from-markdown: 2.0.3(supports-color@10.2.2) mdast-util-to-markdown: 2.1.2 parse-entities: 4.0.2 stringify-entities: 4.0.4 @@ -5557,14 +8064,14 @@ snapshots: unist-util-is: 6.0.1 unist-util-visit-parents: 6.0.2 - mdast-util-from-markdown@2.0.3: + mdast-util-from-markdown@2.0.3(supports-color@10.2.2): dependencies: '@types/mdast': 4.0.4 '@types/unist': 3.0.3 decode-named-character-reference: 1.3.0 devlop: 1.1.0 mdast-util-to-string: 4.0.0 - micromark: 4.0.2 + micromark: 4.0.2(supports-color@10.2.2) micromark-util-decode-numeric-character-reference: 2.0.2 micromark-util-decode-string: 2.0.1 micromark-util-normalize-identifier: 2.0.1 @@ -5574,12 +8081,12 @@ snapshots: transitivePeerDependencies: - supports-color - mdast-util-frontmatter@2.0.1: + mdast-util-frontmatter@2.0.1(supports-color@10.2.2): dependencies: '@types/mdast': 4.0.4 devlop: 1.1.0 escape-string-regexp: 5.0.0 - mdast-util-from-markdown: 2.0.3 + mdast-util-from-markdown: 2.0.3(supports-color@10.2.2) mdast-util-to-markdown: 2.1.2 micromark-extension-frontmatter: 2.0.0 transitivePeerDependencies: @@ -5593,67 +8100,67 @@ snapshots: mdast-util-find-and-replace: 3.0.2 micromark-util-character: 2.1.1 - mdast-util-gfm-footnote@2.1.0: + mdast-util-gfm-footnote@2.1.0(supports-color@10.2.2): dependencies: '@types/mdast': 4.0.4 devlop: 1.1.0 - mdast-util-from-markdown: 2.0.3 + mdast-util-from-markdown: 2.0.3(supports-color@10.2.2) mdast-util-to-markdown: 2.1.2 micromark-util-normalize-identifier: 2.0.1 transitivePeerDependencies: - supports-color - mdast-util-gfm-strikethrough@2.0.0: + mdast-util-gfm-strikethrough@2.0.0(supports-color@10.2.2): dependencies: '@types/mdast': 4.0.4 - mdast-util-from-markdown: 2.0.3 + mdast-util-from-markdown: 2.0.3(supports-color@10.2.2) mdast-util-to-markdown: 2.1.2 transitivePeerDependencies: - supports-color - mdast-util-gfm-table@2.0.0: + mdast-util-gfm-table@2.0.0(supports-color@10.2.2): dependencies: '@types/mdast': 4.0.4 devlop: 1.1.0 markdown-table: 3.0.4 - mdast-util-from-markdown: 2.0.3 + mdast-util-from-markdown: 2.0.3(supports-color@10.2.2) mdast-util-to-markdown: 2.1.2 transitivePeerDependencies: - supports-color - mdast-util-gfm-task-list-item@2.0.0: + mdast-util-gfm-task-list-item@2.0.0(supports-color@10.2.2): dependencies: '@types/mdast': 4.0.4 devlop: 1.1.0 - mdast-util-from-markdown: 2.0.3 + mdast-util-from-markdown: 2.0.3(supports-color@10.2.2) mdast-util-to-markdown: 2.1.2 transitivePeerDependencies: - supports-color - mdast-util-gfm@3.1.0: + mdast-util-gfm@3.1.0(supports-color@10.2.2): dependencies: - mdast-util-from-markdown: 2.0.3 + mdast-util-from-markdown: 2.0.3(supports-color@10.2.2) mdast-util-gfm-autolink-literal: 2.0.1 - mdast-util-gfm-footnote: 2.1.0 - mdast-util-gfm-strikethrough: 2.0.0 - mdast-util-gfm-table: 2.0.0 - mdast-util-gfm-task-list-item: 2.0.0 + mdast-util-gfm-footnote: 2.1.0(supports-color@10.2.2) + mdast-util-gfm-strikethrough: 2.0.0(supports-color@10.2.2) + mdast-util-gfm-table: 2.0.0(supports-color@10.2.2) + mdast-util-gfm-task-list-item: 2.0.0(supports-color@10.2.2) mdast-util-to-markdown: 2.1.2 transitivePeerDependencies: - supports-color - mdast-util-mdx-expression@2.0.1: + mdast-util-mdx-expression@2.0.1(supports-color@10.2.2): dependencies: '@types/estree-jsx': 1.0.5 '@types/hast': 3.0.5 '@types/mdast': 4.0.4 devlop: 1.1.0 - mdast-util-from-markdown: 2.0.3 + mdast-util-from-markdown: 2.0.3(supports-color@10.2.2) mdast-util-to-markdown: 2.1.2 transitivePeerDependencies: - supports-color - mdast-util-mdx-jsx@3.2.0: + mdast-util-mdx-jsx@3.2.0(supports-color@10.2.2): dependencies: '@types/estree-jsx': 1.0.5 '@types/hast': 3.0.5 @@ -5661,7 +8168,7 @@ snapshots: '@types/unist': 3.0.3 ccount: 2.0.1 devlop: 1.1.0 - mdast-util-from-markdown: 2.0.3 + mdast-util-from-markdown: 2.0.3(supports-color@10.2.2) mdast-util-to-markdown: 2.1.2 parse-entities: 4.0.2 stringify-entities: 4.0.4 @@ -5670,23 +8177,23 @@ snapshots: transitivePeerDependencies: - supports-color - mdast-util-mdx@3.0.0: + mdast-util-mdx@3.0.0(supports-color@10.2.2): dependencies: - mdast-util-from-markdown: 2.0.3 - mdast-util-mdx-expression: 2.0.1 - mdast-util-mdx-jsx: 3.2.0 - mdast-util-mdxjs-esm: 2.0.1 + mdast-util-from-markdown: 2.0.3(supports-color@10.2.2) + mdast-util-mdx-expression: 2.0.1(supports-color@10.2.2) + mdast-util-mdx-jsx: 3.2.0(supports-color@10.2.2) + mdast-util-mdxjs-esm: 2.0.1(supports-color@10.2.2) mdast-util-to-markdown: 2.1.2 transitivePeerDependencies: - supports-color - mdast-util-mdxjs-esm@2.0.1: + mdast-util-mdxjs-esm@2.0.1(supports-color@10.2.2): dependencies: '@types/estree-jsx': 1.0.5 '@types/hast': 3.0.5 '@types/mdast': 4.0.4 devlop: 1.1.0 - mdast-util-from-markdown: 2.0.3 + mdast-util-from-markdown: 2.0.3(supports-color@10.2.2) mdast-util-to-markdown: 2.1.2 transitivePeerDependencies: - supports-color @@ -5740,6 +8247,8 @@ snapshots: dependencies: is-what: 4.1.16 + merge-stream@2.0.0: {} + merge2@1.4.1: {} micromark-core-commonmark@2.0.3: @@ -6001,10 +8510,10 @@ snapshots: micromark-util-types@2.0.2: {} - micromark@4.0.2: + micromark@4.0.2(supports-color@10.2.2): dependencies: '@types/debug': 4.1.13 - debug: 4.4.3 + debug: 4.4.3(supports-color@10.2.2) decode-named-character-reference: 1.3.0 devlop: 1.1.0 micromark-core-commonmark: 2.0.3 @@ -6028,6 +8537,38 @@ snapshots: braces: 3.0.3 picomatch: 2.3.2 + mime-db@1.54.0: {} + + mime-types@3.0.2: + dependencies: + mime-db: 1.54.0 + + mime@1.6.0: {} + + mime@3.0.0: {} + + mime@4.1.0: {} + + mimic-fn@4.0.0: {} + + minimatch@10.2.6: + dependencies: + brace-expansion: 5.0.12 + + minimatch@5.1.9: + dependencies: + brace-expansion: 2.1.7 + + minimatch@9.0.9: + dependencies: + brace-expansion: 2.1.7 + + minipass@7.1.3: {} + + minizlib@3.1.0: + dependencies: + minipass: 7.1.3 + mlly@1.8.2: dependencies: acorn: 8.18.0 @@ -6037,30 +8578,84 @@ snapshots: mrmime@2.0.1: {} + ms@2.0.0: {} + ms@2.1.3: {} nanoid@3.3.17: {} - nf3@0.3.23: {} - - nitro@3.0.260311-beta(lru-cache@11.5.2)(vite@8.0.0(@emnapi/core@1.11.3)(@emnapi/runtime@1.11.3)(@types/node@26.1.2)(esbuild@0.25.12)(tsx@4.23.9)(yaml@2.9.0)): - dependencies: + nitropack@2.13.4(@parcel/watcher@2.6.0)(oxc-parser@0.139.0)(rolldown@1.2.3)(srvx@0.12.5)(supports-color@10.2.2)(vite@6.4.3(@types/node@26.1.2)(jiti@2.7.0)(lightningcss@1.33.0)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0)): + dependencies: + '@cloudflare/kv-asset-handler': 0.4.2 + '@rollup/plugin-alias': 6.0.0(rollup@4.64.0) + '@rollup/plugin-commonjs': 29.0.3(rollup@4.64.0) + '@rollup/plugin-inject': 5.0.5(rollup@4.64.0) + '@rollup/plugin-json': 6.1.0(rollup@4.64.0) + '@rollup/plugin-node-resolve': 16.0.3(rollup@4.64.0) + '@rollup/plugin-replace': 6.0.3(rollup@4.64.0) + '@rollup/plugin-terser': 1.0.0(rollup@4.64.0) + '@vercel/nft': 1.11.0(rollup@4.64.0)(supports-color@10.2.2) + archiver: 7.0.1 + c12: 3.3.4(magicast@0.5.5) + chokidar: 5.0.0 + citty: 0.2.2 + compatx: 0.2.0 + confbox: 0.2.4 consola: 3.4.2 - crossws: 0.4.10(srvx@0.11.22) + cookie-es: 2.0.1 + croner: 10.0.1 + crossws: 0.3.5 db0: 0.3.4 - env-runner: 0.1.16 - h3: 2.0.1-rc.26(crossws@0.4.10(srvx@0.12.5)) - hookable: 6.1.1 - nf3: 0.3.23 - ocache: 0.1.5 - ofetch: 2.0.0-alpha.3 + defu: 6.1.7 + destr: 2.0.5 + dot-prop: 10.2.0 + esbuild: 0.28.1 + escape-string-regexp: 5.0.0 + etag: 1.8.1 + exsolve: 1.1.1 + globby: 16.2.4 + gzip-size: 7.0.0 + h3: 1.15.11 + hookable: 5.5.3 + httpxy: 0.5.5 + ioredis: 5.11.1(supports-color@10.2.2) + jiti: 2.7.0 + klona: 2.0.6 + knitwork: 1.3.0 + listhen: 1.10.1(@parcel/watcher@2.6.0)(srvx@0.12.5) + magic-string: 0.30.21 + magicast: 0.5.5 + mime: 4.1.0 + mlly: 1.8.2 + node-fetch-native: 1.6.7 + node-mock-http: 1.0.5 + ofetch: 1.5.1 ohash: 2.0.11 - rolldown: 1.2.3 - srvx: 0.11.22 + pathe: 2.0.3 + perfect-debounce: 2.1.0 + pkg-types: 2.3.3 + pretty-bytes: 7.2.0 + radix3: 1.1.2 + rollup: 4.64.0 + rollup-plugin-visualizer: 7.1.1(rolldown@1.2.3)(rollup@4.64.0) + scule: 1.3.0 + semver: 7.8.5 + serve-placeholder: 2.0.2 + serve-static: 2.2.1(supports-color@10.2.2) + source-map: 0.7.6 + std-env: 4.2.0 + ufo: 1.6.4 + ultrahtml: 1.7.0 + uncrypto: 0.1.3 + unctx: 2.5.0 unenv: 2.0.0-rc.24 - unstorage: 2.0.0-alpha.7(db0@0.3.4)(lru-cache@11.5.2)(ofetch@2.0.0-alpha.3) - optionalDependencies: - vite: 8.0.0(@emnapi/core@1.11.3)(@emnapi/runtime@1.11.3)(@types/node@26.1.2)(esbuild@0.25.12)(tsx@4.23.9)(yaml@2.9.0) + unimport: 6.5.0(esbuild@0.28.1)(oxc-parser@0.139.0)(rolldown@1.2.3)(rollup@4.64.0)(vite@6.4.3(@types/node@26.1.2)(jiti@2.7.0)(lightningcss@1.33.0)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0)) + unplugin-utils: 0.3.2 + unstorage: 1.17.5(db0@0.3.4)(ioredis@5.11.1(supports-color@10.2.2)) + untyped: 2.0.0 + unwasm: 0.5.3 + youch: 4.1.1 + youch-core: 0.3.3 transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -6071,96 +8666,85 @@ snapshots: - '@capacitor/preferences' - '@deno/kv' - '@electric-sql/pglite' + - '@farmfe/core' - '@libsql/client' - '@netlify/blobs' - - '@netlify/runtime' + - '@parcel/watcher' - '@planetscale/database' + - '@rsbuild/core' + - '@rspack/core' - '@upstash/redis' - '@vercel/blob' - '@vercel/functions' - '@vercel/kv' - - '@vercel/queue' - aws4fetch + - bare-abort-controller + - bare-buffer - better-sqlite3 - - chokidar + - bun-types-no-globals - drizzle-orm + - encoding - idb-keyval - - ioredis - - lru-cache - - miniflare - - mongodb - mysql2 + - oxc-parser + - react-native-b4a + - rolldown - sqlite3 + - srvx + - supports-color + - unloader - uploadthing - - wrangler + - vite + - webpack + + node-addon-api@7.1.1: {} - nitro@3.0.260311-beta(lru-cache@11.5.2)(vite@8.2.1(@types/node@26.1.2)(esbuild@0.25.12)(tsx@4.23.9)(yaml@2.9.0)): + node-fetch-native@1.6.7: {} + + node-fetch@2.7.0: dependencies: - consola: 3.4.2 - crossws: 0.4.10(srvx@0.11.22) - db0: 0.3.4 - env-runner: 0.1.16 - h3: 2.0.1-rc.26(crossws@0.4.10(srvx@0.11.22)) - hookable: 6.1.1 - nf3: 0.3.23 - ocache: 0.1.5 - ofetch: 2.0.0-alpha.3 - ohash: 2.0.11 - rolldown: 1.2.3 - srvx: 0.11.22 - unenv: 2.0.0-rc.24 - unstorage: 2.0.0-alpha.7(db0@0.3.4)(lru-cache@11.5.2)(ofetch@2.0.0-alpha.3) - optionalDependencies: - vite: 8.2.1(@types/node@26.1.2)(esbuild@0.25.12)(tsx@4.23.9)(yaml@2.9.0) - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@deno/kv' - - '@electric-sql/pglite' - - '@libsql/client' - - '@netlify/blobs' - - '@netlify/runtime' - - '@planetscale/database' - - '@upstash/redis' - - '@vercel/blob' - - '@vercel/functions' - - '@vercel/kv' - - '@vercel/queue' - - aws4fetch - - better-sqlite3 - - chokidar - - drizzle-orm - - idb-keyval - - ioredis - - lru-cache - - miniflare - - mongodb - - mysql2 - - sqlite3 - - uploadthing - - wrangler + whatwg-url: 5.0.0 + + node-forge@1.4.0: {} + + node-gyp-build@4.8.4: {} + + node-mock-http@1.0.5: {} node-releases@2.0.53: {} + nopt@8.1.0: + dependencies: + abbrev: 3.0.1 + + normalize-path@3.0.0: {} + + npm-run-path@5.3.0: + dependencies: + path-key: 4.0.0 + nth-check@2.1.1: dependencies: boolbase: 1.0.0 obug@2.1.4: {} - ocache@0.1.5: + ofetch@1.5.1: dependencies: - ohash: 2.0.11 - - ofetch@2.0.0-alpha.3: {} + destr: 2.0.5 + node-fetch-native: 1.6.7 + ufo: 1.6.4 ohash@2.0.11: {} + on-finished@2.4.1: + dependencies: + ee-first: 1.1.1 + + onetime@6.0.0: + dependencies: + mimic-fn: 4.0.0 + oniguruma-parser@0.12.2: {} oniguruma-to-es@2.3.0: @@ -6184,6 +8768,33 @@ snapshots: powershell-utils: 0.1.0 wsl-utils: 0.3.1 + oxc-parser@0.139.0: + dependencies: + '@oxc-project/types': 0.139.0 + optionalDependencies: + '@oxc-parser/binding-android-arm-eabi': 0.139.0 + '@oxc-parser/binding-android-arm64': 0.139.0 + '@oxc-parser/binding-darwin-arm64': 0.139.0 + '@oxc-parser/binding-darwin-x64': 0.139.0 + '@oxc-parser/binding-freebsd-x64': 0.139.0 + '@oxc-parser/binding-linux-arm-gnueabihf': 0.139.0 + '@oxc-parser/binding-linux-arm-musleabihf': 0.139.0 + '@oxc-parser/binding-linux-arm64-gnu': 0.139.0 + '@oxc-parser/binding-linux-arm64-musl': 0.139.0 + '@oxc-parser/binding-linux-ppc64-gnu': 0.139.0 + '@oxc-parser/binding-linux-riscv64-gnu': 0.139.0 + '@oxc-parser/binding-linux-riscv64-musl': 0.139.0 + '@oxc-parser/binding-linux-s390x-gnu': 0.139.0 + '@oxc-parser/binding-linux-x64-gnu': 0.139.0 + '@oxc-parser/binding-linux-x64-musl': 0.139.0 + '@oxc-parser/binding-openharmony-arm64': 0.139.0 + '@oxc-parser/binding-wasm32-wasi': 0.139.0 + '@oxc-parser/binding-win32-arm64-msvc': 0.139.0 + '@oxc-parser/binding-win32-ia32-msvc': 0.139.0 + '@oxc-parser/binding-win32-x64-msvc': 0.139.0 + + package-json-from-dist@1.0.1: {} + package-manager-detector@1.8.0: {} pako@0.2.9: {} @@ -6213,11 +8824,27 @@ snapshots: dependencies: entities: 8.0.0 + parseurl@1.3.3: {} + path-key@3.1.1: {} + path-key@4.0.0: {} + path-parse@1.0.7: {} - path-to-regexp@8.4.2: {} + path-scurry@1.11.1: + dependencies: + lru-cache: 10.4.3 + minipass: 7.1.3 + + path-scurry@2.0.2: + dependencies: + lru-cache: 11.5.2 + minipass: 7.1.3 + + path-to-regexp@6.3.0: {} + + pathe@1.1.2: {} pathe@2.0.3: {} @@ -6229,6 +8856,8 @@ snapshots: picomatch@4.0.5: {} + picomatch@4.0.7: {} + pkg-types@1.3.1: dependencies: confbox: 0.1.8 @@ -6241,6 +8870,12 @@ snapshots: exsolve: 1.1.1 pathe: 2.0.3 + pkg-types@2.3.3: + dependencies: + confbox: 0.3.1 + exsolve: 1.1.1 + pathe: 2.0.3 + postcss-nested@6.2.0(postcss@8.5.26): dependencies: postcss: 8.5.26 @@ -6261,17 +8896,70 @@ snapshots: powershell-utils@0.1.0: {} - prettier@4.0.0-alpha.13: {} + prerender-crawler@0.2.0(vite@8.2.1(@types/node@26.1.2)(esbuild@0.25.12)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0)): + optionalDependencies: + vite: 8.2.1(@types/node@26.1.2)(esbuild@0.25.12)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0) + + prettier@4.0.0-alpha.13: {} + + pretty-bytes@7.2.0: {} + + process-nextick-args@2.0.1: {} + + process@0.11.10: {} + + property-information@7.2.0: {} + + punycode@2.3.1: {} + + quansync@0.2.11: {} + + queue-microtask@1.2.3: {} + + radix3@1.1.2: {} + + range-parser@1.2.1: {} + + range-parser@1.3.0: {} + + rc9@3.1.0: + dependencies: + defu: 6.1.7 + destr: 2.0.5 + + readable-stream@2.3.8: + dependencies: + core-util-is: 1.0.3 + inherits: 2.0.4 + isarray: 1.0.0 + process-nextick-args: 2.0.1 + safe-buffer: 5.1.2 + string_decoder: 1.1.1 + util-deprecate: 1.0.2 - property-information@7.2.0: {} + readable-stream@4.7.0: + dependencies: + abort-controller: 3.0.0 + buffer: 6.0.3 + events: 3.3.0 + process: 0.11.10 + string_decoder: 1.3.0 - punycode@2.3.1: {} + readdir-glob@1.1.3: + dependencies: + minimatch: 5.1.9 - quansync@0.2.11: {} + readdirp@4.1.2: {} - queue-microtask@1.2.3: {} + readdirp@5.1.1: {} - radix3@1.1.2: {} + recast@0.23.21: + dependencies: + ast-types: 0.16.3 + esprima: 4.0.1 + source-map: 0.6.1 + tiny-invariant: 1.3.3 + tslib: 2.8.1 recma-build-jsx@1.0.0: dependencies: @@ -6302,6 +8990,12 @@ snapshots: unified: 11.0.5 vfile: 6.0.3 + redis-errors@1.2.0: {} + + redis-parser@3.0.0: + dependencies: + redis-errors: 1.2.0 + regex-recursion@5.1.1: dependencies: regex: 5.1.1 @@ -6340,11 +9034,11 @@ snapshots: hast-util-raw: 9.1.0 vfile: 6.0.3 - rehype-recma@1.0.0: + rehype-recma@1.0.0(supports-color@10.2.2): dependencies: '@types/estree': 1.0.9 '@types/hast': 3.0.5 - hast-util-to-estree: 3.1.3 + hast-util-to-estree: 3.1.3(supports-color@10.2.2) transitivePeerDependencies: - supports-color @@ -6356,46 +9050,46 @@ snapshots: hast-util-to-string: 3.0.1 unist-util-visit: 5.1.0 - remark-directive@3.0.1: + remark-directive@3.0.1(supports-color@10.2.2): dependencies: '@types/mdast': 4.0.4 - mdast-util-directive: 3.1.0 + mdast-util-directive: 3.1.0(supports-color@10.2.2) micromark-extension-directive: 3.0.2 unified: 11.0.5 transitivePeerDependencies: - supports-color - remark-frontmatter@5.0.0: + remark-frontmatter@5.0.0(supports-color@10.2.2): dependencies: '@types/mdast': 4.0.4 - mdast-util-frontmatter: 2.0.1 + mdast-util-frontmatter: 2.0.1(supports-color@10.2.2) micromark-extension-frontmatter: 2.0.0 unified: 11.0.5 transitivePeerDependencies: - supports-color - remark-gfm@4.0.1: + remark-gfm@4.0.1(supports-color@10.2.2): dependencies: '@types/mdast': 4.0.4 - mdast-util-gfm: 3.1.0 + mdast-util-gfm: 3.1.0(supports-color@10.2.2) micromark-extension-gfm: 3.0.0 - remark-parse: 11.0.0 + remark-parse: 11.0.0(supports-color@10.2.2) remark-stringify: 11.0.0 unified: 11.0.5 transitivePeerDependencies: - supports-color - remark-mdx@3.1.1: + remark-mdx@3.1.1(supports-color@10.2.2): dependencies: - mdast-util-mdx: 3.0.0 + mdast-util-mdx: 3.0.0(supports-color@10.2.2) micromark-extension-mdxjs: 3.0.0 transitivePeerDependencies: - supports-color - remark-parse@11.0.0: + remark-parse@11.0.0(supports-color@10.2.2): dependencies: '@types/mdast': 4.0.4 - mdast-util-from-markdown: 2.0.3 + mdast-util-from-markdown: 2.0.3(supports-color@10.2.2) micromark-util-types: 2.0.2 unified: 11.0.5 transitivePeerDependencies: @@ -6415,10 +9109,10 @@ snapshots: mdast-util-to-markdown: 2.1.2 unified: 11.0.5 - remark@15.0.1: + remark@15.0.1(supports-color@10.2.2): dependencies: '@types/mdast': 4.0.4 - remark-parse: 11.0.0 + remark-parse: 11.0.0(supports-color@10.2.2) remark-stringify: 11.0.0 unified: 11.0.5 transitivePeerDependencies: @@ -6426,6 +9120,10 @@ snapshots: require-from-string@2.0.2: {} + requires-port@1.0.0: {} + + resolve-from@5.0.0: {} + resolve@1.22.12: dependencies: es-errors: 1.3.0 @@ -6479,9 +9177,47 @@ snapshots: '@rolldown/binding-win32-arm64-msvc': 1.2.3 '@rolldown/binding-win32-x64-msvc': 1.2.3 - rou3@0.8.1: {} + rollup-plugin-visualizer@7.1.1(rolldown@1.2.3)(rollup@4.64.0): + dependencies: + open: 11.0.0 + picomatch: 4.0.7 + source-map: 0.8.0 + yargs: 18.2.0 + optionalDependencies: + rolldown: 1.2.3 + rollup: 4.64.0 - rou3@0.9.1: {} + rollup@4.64.0: + dependencies: + '@types/estree': 1.0.9 + optionalDependencies: + '@napi-rs/lzma-linux-x64-gnu': 1.5.1 + '@rollup/rollup-android-arm-eabi': 4.64.0 + '@rollup/rollup-android-arm64': 4.64.0 + '@rollup/rollup-darwin-arm64': 4.64.0 + '@rollup/rollup-darwin-x64': 4.64.0 + '@rollup/rollup-freebsd-arm64': 4.64.0 + '@rollup/rollup-freebsd-x64': 4.64.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.64.0 + '@rollup/rollup-linux-arm-musleabihf': 4.64.0 + '@rollup/rollup-linux-arm64-gnu': 4.64.0 + '@rollup/rollup-linux-arm64-musl': 4.64.0 + '@rollup/rollup-linux-loong64-gnu': 4.64.0 + '@rollup/rollup-linux-loong64-musl': 4.64.0 + '@rollup/rollup-linux-ppc64-gnu': 4.64.0 + '@rollup/rollup-linux-ppc64-musl': 4.64.0 + '@rollup/rollup-linux-riscv64-gnu': 4.64.0 + '@rollup/rollup-linux-riscv64-musl': 4.64.0 + '@rollup/rollup-linux-s390x-gnu': 4.64.0 + '@rollup/rollup-linux-x64-gnu': 4.64.0 + '@rollup/rollup-linux-x64-musl': 4.64.0 + '@rollup/rollup-openbsd-x64': 4.64.0 + '@rollup/rollup-openharmony-arm64': 4.64.0 + '@rollup/rollup-win32-arm64-msvc': 4.64.0 + '@rollup/rollup-win32-ia32-msvc': 4.64.0 + '@rollup/rollup-win32-x64-gnu': 4.64.0 + '@rollup/rollup-win32-x64-msvc': 4.64.0 + fsevents: 2.3.3 run-applescript@7.1.0: {} @@ -6489,6 +9225,10 @@ snapshots: dependencies: queue-microtask: 1.2.3 + safe-buffer@5.1.2: {} + + safe-buffer@5.2.1: {} + satori-html@0.3.2: dependencies: ultrahtml: 1.7.0 @@ -6520,17 +9260,73 @@ snapshots: semver@6.3.1: {} - seroval-plugins@1.5.6(seroval@1.5.6): + semver@7.8.5: {} + + send@0.19.2(supports-color@10.2.2): + dependencies: + debug: 2.6.9(supports-color@10.2.2) + depd: 2.0.0 + destroy: 1.2.0 + encodeurl: 2.0.0 + escape-html: 1.0.3 + etag: 1.8.1 + fresh: 0.5.2 + http-errors: 2.0.1 + mime: 1.6.0 + ms: 2.1.3 + on-finished: 2.4.1 + range-parser: 1.2.1 + statuses: 2.0.2 + transitivePeerDependencies: + - supports-color + + send@1.2.1(supports-color@10.2.2): + dependencies: + debug: 4.4.3(supports-color@10.2.2) + encodeurl: 2.0.0 + escape-html: 1.0.3 + etag: 1.8.1 + fresh: 2.0.0 + http-errors: 2.0.1 + mime-types: 3.0.2 + ms: 2.1.3 + on-finished: 2.4.1 + range-parser: 1.3.0 + statuses: 2.0.2 + transitivePeerDependencies: + - supports-color + + serialize-javascript@7.1.2: {} + + seroval-plugins@1.6.8(seroval@1.6.8): + dependencies: + seroval: 1.6.8 + + seroval@1.6.8: {} + + serve-placeholder@2.0.2: dependencies: - seroval: 1.5.6 + defu: 6.1.7 - seroval-plugins@1.6.2(seroval@1.6.2): + serve-static@1.16.3(supports-color@10.2.2): dependencies: - seroval: 1.6.2 + encodeurl: 2.0.0 + escape-html: 1.0.3 + parseurl: 1.3.3 + send: 0.19.2(supports-color@10.2.2) + transitivePeerDependencies: + - supports-color - seroval@1.5.6: {} + serve-static@2.2.1(supports-color@10.2.2): + dependencies: + encodeurl: 2.0.0 + escape-html: 1.0.3 + parseurl: 1.3.3 + send: 1.2.1(supports-color@10.2.2) + transitivePeerDependencies: + - supports-color - seroval@1.6.2: {} + setprototypeof@1.2.0: {} shebang-command@2.0.0: dependencies: @@ -6562,72 +9358,137 @@ snapshots: siginfo@2.0.0: {} + signal-exit@4.1.0: {} + sirv@3.0.2: dependencies: '@polka/url': 1.0.0-next.29 mrmime: 2.0.1 totalist: 3.0.1 - solid-js@1.9.14: - dependencies: - csstype: 3.2.3 - seroval: 1.5.6 - seroval-plugins: 1.5.6(seroval@1.5.6) + slash@5.1.0: {} - solid-presence@0.1.8(solid-js@1.9.14): - dependencies: - '@corvu/utils': 0.4.2(solid-js@1.9.14) - solid-js: 1.9.14 + smob@1.6.2: {} - solid-prevent-scroll@0.1.11(solid-js@1.9.14): + solid-js@2.0.0-rc.14: dependencies: - '@corvu/utils': 0.4.2(solid-js@1.9.14) - solid-js: 1.9.14 + '@solidjs/signals': 2.0.0-rc.14 + csstype: 3.2.3 + seroval: 1.6.8 + seroval-plugins: 1.6.8(seroval@1.6.8) - solid-refresh@0.6.3(solid-js@1.9.14): + solid-refresh@0.6.3(solid-js@2.0.0-rc.14)(supports-color@10.2.2): dependencies: '@babel/generator': 7.29.8 - '@babel/helper-module-imports': 7.29.7 + '@babel/helper-module-imports': 7.29.7(supports-color@10.2.2) '@babel/types': 7.29.8 - solid-js: 1.9.14 + solid-js: 2.0.0-rc.14 transitivePeerDependencies: - supports-color - solid-use@0.9.1(solid-js@1.9.14): + solid-use@0.9.1(solid-js@2.0.0-rc.14): dependencies: - solid-js: 1.9.14 + solid-js: 2.0.0-rc.14 source-map-js@1.2.1: {} + source-map-support@0.5.21: + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + + source-map@0.6.1: {} + source-map@0.7.6: {} + source-map@0.8.0: {} + space-separated-tokens@2.0.2: {} sprintf-js@1.0.3: {} - srvx@0.11.22: {} - - srvx@0.12.5: {} + srvx@0.12.5: + optional: true stackback@0.0.2: {} stackframe@1.3.4: {} + standard-as-callback@2.1.0: {} + + statuses@2.0.2: {} + + std-env@3.10.0: {} + std-env@4.2.0: {} + streamx@2.28.1: + dependencies: + events-universal: 1.0.1 + fast-fifo: 1.3.2 + text-decoder: 1.2.7 + transitivePeerDependencies: + - bare-abort-controller + - react-native-b4a + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + string-width@5.1.2: + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.2.0 + + string-width@7.2.0: + dependencies: + emoji-regex: 10.6.0 + get-east-asian-width: 1.7.0 + strip-ansi: 7.2.0 + + string-width@8.3.0: + dependencies: + get-east-asian-width: 1.7.0 + strip-ansi: 7.2.0 + string.prototype.codepointat@0.2.1: {} + string_decoder@1.1.1: + dependencies: + safe-buffer: 5.1.2 + + string_decoder@1.3.0: + dependencies: + safe-buffer: 5.2.1 + stringify-entities@4.0.4: dependencies: character-entities-html4: 2.1.0 character-entities-legacy: 3.0.0 + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + strip-ansi@7.2.0: + dependencies: + ansi-regex: 6.4.0 + strip-bom-string@1.0.0: {} + strip-final-newline@3.0.0: {} + strip-literal@3.1.0: dependencies: js-tokens: 9.0.1 + strip-literal@4.0.0: + dependencies: + js-tokens: 10.0.0 + style-to-js@1.1.21: dependencies: style-to-object: 1.0.14 @@ -6636,19 +9497,68 @@ snapshots: dependencies: inline-style-parser: 0.2.7 + supports-color@10.2.2: {} + supports-preserve-symlinks-flag@1.0.0: {} symbol-tree@3.2.4: {} - terracotta@1.1.1(solid-js@1.9.14): + system-architecture@0.1.0: {} + + tagged-tag@1.0.0: {} + + tar-stream@3.2.2: + dependencies: + b4a: 1.9.0 + bare-fs: 4.8.2 + fast-fifo: 1.3.2 + streamx: 2.28.1 + transitivePeerDependencies: + - bare-abort-controller + - bare-buffer + - react-native-b4a + + tar@7.5.22: + dependencies: + '@isaacs/fs-minipass': 4.0.1 + chownr: 3.0.0 + minipass: 7.1.3 + minizlib: 3.1.0 + yallist: 5.0.0 + + teex@1.0.1: + dependencies: + streamx: 2.28.1 + transitivePeerDependencies: + - bare-abort-controller + - react-native-b4a + + terracotta@1.1.1(solid-js@2.0.0-rc.14): + dependencies: + solid-js: 2.0.0-rc.14 + solid-use: 0.9.1(solid-js@2.0.0-rc.14) + + terser@5.51.2: dependencies: - solid-js: 1.9.14 - solid-use: 0.9.1(solid-js@1.9.14) + '@jridgewell/source-map': 0.3.11 + acorn: 8.18.0 + commander: 2.20.3 + source-map-support: 0.5.21 + + text-decoder@1.2.7: + dependencies: + b4a: 1.9.0 + transitivePeerDependencies: + - react-native-b4a tiny-inflate@1.0.3: {} + tiny-invariant@1.3.3: {} + tinybench@2.9.0: {} + tinyclip@0.1.15: {} + tinyexec@1.3.0: {} tinyglobby@0.2.17: @@ -6668,6 +9578,8 @@ snapshots: dependencies: is-number: 7.0.0 + toidentifier@1.0.1: {} + toml@3.0.0: {} totalist@3.0.1: {} @@ -6676,6 +9588,8 @@ snapshots: dependencies: tldts: 7.4.10 + tr46@0.0.3: {} + tr46@6.0.0: dependencies: punycode: 2.3.1 @@ -6694,24 +9608,49 @@ snapshots: twoslash-protocol@0.2.12: {} - twoslash@0.2.12(typescript@5.9.3): + twoslash@0.2.12(supports-color@10.2.2)(typescript@5.9.3): dependencies: - '@typescript/vfs': 1.6.4(typescript@5.9.3) + '@typescript/vfs': 1.6.4(supports-color@10.2.2)(typescript@5.9.3) twoslash-protocol: 0.2.12 typescript: 5.9.3 transitivePeerDependencies: - supports-color + type-fest@4.41.0: {} + + type-fest@5.10.0: + dependencies: + tagged-tag: 1.0.0 + typescript@5.9.3: {} ufo@1.6.4: {} ultrahtml@1.7.0: {} + uncrypto@0.1.3: {} + + unctx@2.5.0: + dependencies: + acorn: 8.18.0 + estree-walker: 3.0.3 + magic-string: 0.30.21 + unplugin: 2.3.11 + + undici-types@5.28.4: {} + undici-types@8.3.0: {} undici@7.29.0: {} + unenv@1.10.0: + dependencies: + consola: 3.4.2 + defu: 6.1.7 + mime: 3.0.0 + node-fetch-native: 1.6.7 + pathe: 1.1.2 + unenv@2.0.0-rc.24: dependencies: pathe: 2.0.3 @@ -6721,6 +9660,8 @@ snapshots: pako: 0.2.9 tiny-inflate: 1.0.3 + unicorn-magic@0.4.1: {} + unified@11.0.5: dependencies: '@types/unist': 3.0.3 @@ -6748,6 +9689,36 @@ snapshots: unplugin: 2.3.11 unplugin-utils: 0.2.5 + unimport@6.5.0(esbuild@0.28.1)(oxc-parser@0.139.0)(rolldown@1.2.3)(rollup@4.64.0)(vite@6.4.3(@types/node@26.1.2)(jiti@2.7.0)(lightningcss@1.33.0)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0)): + dependencies: + acorn: 8.18.0 + escape-string-regexp: 5.0.0 + estree-walker: 3.0.3 + local-pkg: 1.2.1 + magic-string: 1.4.2 + mlly: 1.8.2 + pathe: 2.0.3 + picomatch: 4.0.7 + pkg-types: 2.3.3 + scule: 1.3.0 + strip-literal: 4.0.0 + tinyglobby: 0.2.17 + unplugin: 3.4.0(esbuild@0.28.1)(rolldown@1.2.3)(rollup@4.64.0)(vite@6.4.3(@types/node@26.1.2)(jiti@2.7.0)(lightningcss@1.33.0)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0)) + unplugin-utils: 0.3.2 + optionalDependencies: + oxc-parser: 0.139.0 + rolldown: 1.2.3 + transitivePeerDependencies: + - '@farmfe/core' + - '@rsbuild/core' + - '@rspack/core' + - bun-types-no-globals + - esbuild + - rollup + - unloader + - vite + - webpack + unist-builder@4.0.0: dependencies: '@types/unist': 3.0.3 @@ -6805,11 +9776,11 @@ snapshots: unplugin: 2.3.11 unplugin-utils: 0.2.5 - unplugin-icons@22.5.0: + unplugin-icons@22.5.0(supports-color@10.2.2): dependencies: '@antfu/install-pkg': 1.1.0 '@iconify/utils': 3.1.4 - debug: 4.4.3 + debug: 4.4.3(supports-color@10.2.2) local-pkg: 1.2.1 unplugin: 2.3.11 transitivePeerDependencies: @@ -6832,11 +9803,55 @@ snapshots: picomatch: 4.0.5 webpack-virtual-modules: 0.6.2 - unstorage@2.0.0-alpha.7(db0@0.3.4)(lru-cache@11.5.2)(ofetch@2.0.0-alpha.3): + unplugin@3.4.0(esbuild@0.28.1)(rolldown@1.2.3)(rollup@4.64.0)(vite@6.4.3(@types/node@26.1.2)(jiti@2.7.0)(lightningcss@1.33.0)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0)): + dependencies: + '@jridgewell/remapping': 2.3.5 + picomatch: 4.0.7 + webpack-virtual-modules: 0.6.2 optionalDependencies: - db0: 0.3.4 + esbuild: 0.28.1 + rolldown: 1.2.3 + rollup: 4.64.0 + vite: 6.4.3(@types/node@26.1.2)(jiti@2.7.0)(lightningcss@1.33.0)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0) + + unstorage@1.17.5(db0@0.3.4)(ioredis@5.11.1(supports-color@10.2.2)): + dependencies: + anymatch: 3.1.3 + chokidar: 5.0.0 + destr: 2.0.5 + h3: 1.15.11 lru-cache: 11.5.2 - ofetch: 2.0.0-alpha.3 + node-fetch-native: 1.6.7 + ofetch: 1.5.1 + ufo: 1.6.4 + optionalDependencies: + db0: 0.3.4 + ioredis: 5.11.1(supports-color@10.2.2) + + untun@0.1.3: + dependencies: + citty: 0.1.6 + consola: 3.4.2 + pathe: 1.1.2 + + untun@0.2.2: {} + + untyped@2.0.0: + dependencies: + citty: 0.1.6 + defu: 6.1.7 + jiti: 2.7.0 + knitwork: 1.3.0 + scule: 1.3.0 + + unwasm@0.5.3: + dependencies: + exsolve: 1.1.1 + knitwork: 1.3.0 + magic-string: 0.30.21 + mlly: 1.8.2 + pathe: 2.0.3 + pkg-types: 2.3.3 update-browserslist-db@1.2.3(browserslist@4.28.7): dependencies: @@ -6844,6 +9859,8 @@ snapshots: escalade: 3.2.0 picocolors: 1.1.1 + uqr@0.1.3: {} + util-deprecate@1.0.2: {} vfile-location@5.0.3: @@ -6861,19 +9878,110 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.3 - vite-dev-rpc@2.0.0(vite@8.2.1(@types/node@26.1.2)(esbuild@0.25.12)(tsx@4.23.9)(yaml@2.9.0)): + vinxi@0.5.11(@parcel/watcher@2.6.0)(@types/node@26.1.2)(db0@0.3.4)(debug@4.4.3(supports-color@10.2.2))(ioredis@5.11.1(supports-color@10.2.2))(jiti@2.7.0)(lightningcss@1.33.0)(oxc-parser@0.139.0)(rolldown@1.2.3)(srvx@0.12.5)(supports-color@10.2.2)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0): + dependencies: + '@babel/core': 7.29.7(supports-color@10.2.2) + '@babel/plugin-syntax-jsx': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2)) + '@babel/plugin-syntax-typescript': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2)) + '@types/micromatch': 4.0.10 + '@vinxi/listhen': 1.5.6 + boxen: 8.0.1 + chokidar: 4.0.3 + citty: 0.1.6 + consola: 3.4.2 + crossws: 0.3.5 + dax-sh: 0.43.2 + defu: 6.1.7 + es-module-lexer: 1.7.0 + esbuild: 0.25.12 + get-port-please: 3.2.0 + h3: 1.15.3 + hookable: 5.5.3 + http-proxy: 1.18.1(debug@4.4.3(supports-color@10.2.2)) + micromatch: 4.0.8 + nitropack: 2.13.4(@parcel/watcher@2.6.0)(oxc-parser@0.139.0)(rolldown@1.2.3)(srvx@0.12.5)(supports-color@10.2.2)(vite@6.4.3(@types/node@26.1.2)(jiti@2.7.0)(lightningcss@1.33.0)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0)) + node-fetch-native: 1.6.7 + path-to-regexp: 6.3.0 + pathe: 1.1.2 + radix3: 1.1.2 + resolve: 1.22.12 + serve-placeholder: 2.0.2 + serve-static: 1.16.3(supports-color@10.2.2) + tinyglobby: 0.2.17 + ufo: 1.6.4 + unctx: 2.5.0 + unenv: 1.10.0 + unstorage: 1.17.5(db0@0.3.4)(ioredis@5.11.1(supports-color@10.2.2)) + vite: 6.4.3(@types/node@26.1.2)(jiti@2.7.0)(lightningcss@1.33.0)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0) + zod: 4.6.5 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@deno/kv' + - '@electric-sql/pglite' + - '@farmfe/core' + - '@libsql/client' + - '@netlify/blobs' + - '@parcel/watcher' + - '@planetscale/database' + - '@rsbuild/core' + - '@rspack/core' + - '@types/node' + - '@upstash/redis' + - '@vercel/blob' + - '@vercel/functions' + - '@vercel/kv' + - aws4fetch + - bare-abort-controller + - bare-buffer + - better-sqlite3 + - bun-types-no-globals + - db0 + - debug + - drizzle-orm + - encoding + - idb-keyval + - ioredis + - jiti + - less + - lightningcss + - mysql2 + - oxc-parser + - react-native-b4a + - rolldown + - sass + - sass-embedded + - sqlite3 + - srvx + - stylus + - sugarss + - supports-color + - terser + - tsx + - unloader + - uploadthing + - webpack + - xml2js + - yaml + + vite-dev-rpc@2.0.0(vite@8.2.1(@types/node@26.1.2)(esbuild@0.25.12)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0)): dependencies: birpc: 4.0.0 - vite: 8.2.1(@types/node@26.1.2)(esbuild@0.25.12)(tsx@4.23.9)(yaml@2.9.0) - vite-hot-client: 2.2.0(vite@8.2.1(@types/node@26.1.2)(esbuild@0.25.12)(tsx@4.23.9)(yaml@2.9.0)) + vite: 8.2.1(@types/node@26.1.2)(esbuild@0.25.12)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0) + vite-hot-client: 2.2.0(vite@8.2.1(@types/node@26.1.2)(esbuild@0.25.12)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0)) - vite-hot-client@2.2.0(vite@8.2.1(@types/node@26.1.2)(esbuild@0.25.12)(tsx@4.23.9)(yaml@2.9.0)): + vite-hot-client@2.2.0(vite@8.2.1(@types/node@26.1.2)(esbuild@0.25.12)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0)): dependencies: - vite: 8.2.1(@types/node@26.1.2)(esbuild@0.25.12)(tsx@4.23.9)(yaml@2.9.0) + vite: 8.2.1(@types/node@26.1.2)(esbuild@0.25.12)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0) vite-plugin-arraybuffer@0.0.8: {} - vite-plugin-inspect@11.4.1(vite@8.2.1(@types/node@26.1.2)(esbuild@0.25.12)(tsx@4.23.9)(yaml@2.9.0)): + vite-plugin-inspect@11.4.1(vite@8.2.1(@types/node@26.1.2)(esbuild@0.25.12)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0)): dependencies: ansis: 4.3.1 error-stack-parser-es: 1.0.5 @@ -6883,36 +9991,40 @@ snapshots: perfect-debounce: 2.1.0 sirv: 3.0.2 unplugin-utils: 0.3.2 - vite: 8.2.1(@types/node@26.1.2)(esbuild@0.25.12)(tsx@4.23.9)(yaml@2.9.0) - vite-dev-rpc: 2.0.0(vite@8.2.1(@types/node@26.1.2)(esbuild@0.25.12)(tsx@4.23.9)(yaml@2.9.0)) + vite: 8.2.1(@types/node@26.1.2)(esbuild@0.25.12)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0) + vite-dev-rpc: 2.0.0(vite@8.2.1(@types/node@26.1.2)(esbuild@0.25.12)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0)) - vite-plugin-solid@2.11.14(solid-js@1.9.14)(vite@8.0.0(@emnapi/core@1.11.3)(@emnapi/runtime@1.11.3)(@types/node@26.1.2)(esbuild@0.25.12)(tsx@4.23.9)(yaml@2.9.0)): + vite-plugin-solid@2.11.14(solid-js@2.0.0-rc.14)(supports-color@10.2.2)(vite@8.0.0(@emnapi/core@1.11.3)(@emnapi/runtime@1.11.3)(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0)): dependencies: - '@babel/core': 7.29.7 + '@babel/core': 7.29.7(supports-color@10.2.2) '@types/babel__core': 7.20.5 - babel-preset-solid: 1.9.12(@babel/core@7.29.7)(solid-js@1.9.14) + babel-preset-solid: 1.9.12(@babel/core@7.29.7(supports-color@10.2.2))(solid-js@2.0.0-rc.14) merge-anything: 5.1.7 - solid-js: 1.9.14 - solid-refresh: 0.6.3(solid-js@1.9.14) - vite: 8.0.0(@emnapi/core@1.11.3)(@emnapi/runtime@1.11.3)(@types/node@26.1.2)(esbuild@0.25.12)(tsx@4.23.9)(yaml@2.9.0) - vitefu: 1.1.3(vite@8.0.0(@emnapi/core@1.11.3)(@emnapi/runtime@1.11.3)(@types/node@26.1.2)(esbuild@0.25.12)(tsx@4.23.9)(yaml@2.9.0)) + solid-js: 2.0.0-rc.14 + solid-refresh: 0.6.3(solid-js@2.0.0-rc.14)(supports-color@10.2.2) + vite: 8.0.0(@emnapi/core@1.11.3)(@emnapi/runtime@1.11.3)(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0) + vitefu: 1.1.3(vite@8.0.0(@emnapi/core@1.11.3)(@emnapi/runtime@1.11.3)(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0)) transitivePeerDependencies: - supports-color - vite-plugin-solid@2.11.14(solid-js@1.9.14)(vite@8.2.1(@types/node@26.1.2)(esbuild@0.25.12)(tsx@4.23.9)(yaml@2.9.0)): + vite@6.4.3(@types/node@26.1.2)(jiti@2.7.0)(lightningcss@1.33.0)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0): dependencies: - '@babel/core': 7.29.7 - '@types/babel__core': 7.20.5 - babel-preset-solid: 1.9.12(@babel/core@7.29.7)(solid-js@1.9.14) - merge-anything: 5.1.7 - solid-js: 1.9.14 - solid-refresh: 0.6.3(solid-js@1.9.14) - vite: 8.2.1(@types/node@26.1.2)(esbuild@0.25.12)(tsx@4.23.9)(yaml@2.9.0) - vitefu: 1.1.3(vite@8.2.1(@types/node@26.1.2)(esbuild@0.25.12)(tsx@4.23.9)(yaml@2.9.0)) - transitivePeerDependencies: - - supports-color + esbuild: 0.25.12 + fdir: 6.5.0(picomatch@4.0.7) + picomatch: 4.0.7 + postcss: 8.5.26 + rollup: 4.64.0 + tinyglobby: 0.2.17 + optionalDependencies: + '@types/node': 26.1.2 + fsevents: 2.3.3 + jiti: 2.7.0 + lightningcss: 1.33.0 + terser: 5.51.2 + tsx: 4.23.9 + yaml: 2.9.0 - vite@8.0.0(@emnapi/core@1.11.3)(@emnapi/runtime@1.11.3)(@types/node@26.1.2)(esbuild@0.25.12)(tsx@4.23.9)(yaml@2.9.0): + vite@8.0.0(@emnapi/core@1.11.3)(@emnapi/runtime@1.11.3)(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0): dependencies: '@oxc-project/runtime': 0.115.0 lightningcss: 1.33.0 @@ -6922,15 +10034,17 @@ snapshots: tinyglobby: 0.2.17 optionalDependencies: '@types/node': 26.1.2 - esbuild: 0.25.12 + esbuild: 0.28.1 fsevents: 2.3.3 + jiti: 2.7.0 + terser: 5.51.2 tsx: 4.23.9 yaml: 2.9.0 transitivePeerDependencies: - '@emnapi/core' - '@emnapi/runtime' - vite@8.2.1(@types/node@26.1.2)(esbuild@0.25.12)(tsx@4.23.9)(yaml@2.9.0): + vite@8.2.1(@types/node@26.1.2)(esbuild@0.25.12)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0): dependencies: lightningcss: 1.33.0 picomatch: 4.0.5 @@ -6941,21 +10055,23 @@ snapshots: '@types/node': 26.1.2 esbuild: 0.25.12 fsevents: 2.3.3 + jiti: 2.7.0 + terser: 5.51.2 tsx: 4.23.9 yaml: 2.9.0 - vitefu@1.1.3(vite@8.0.0(@emnapi/core@1.11.3)(@emnapi/runtime@1.11.3)(@types/node@26.1.2)(esbuild@0.25.12)(tsx@4.23.9)(yaml@2.9.0)): + vitefu@1.1.3(vite@8.0.0(@emnapi/core@1.11.3)(@emnapi/runtime@1.11.3)(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0)): optionalDependencies: - vite: 8.0.0(@emnapi/core@1.11.3)(@emnapi/runtime@1.11.3)(@types/node@26.1.2)(esbuild@0.25.12)(tsx@4.23.9)(yaml@2.9.0) + vite: 8.0.0(@emnapi/core@1.11.3)(@emnapi/runtime@1.11.3)(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0) - vitefu@1.1.3(vite@8.2.1(@types/node@26.1.2)(esbuild@0.25.12)(tsx@4.23.9)(yaml@2.9.0)): + vitefu@1.1.3(vite@8.2.1(@types/node@26.1.2)(esbuild@0.25.12)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0)): optionalDependencies: - vite: 8.2.1(@types/node@26.1.2)(esbuild@0.25.12)(tsx@4.23.9)(yaml@2.9.0) + vite: 8.2.1(@types/node@26.1.2)(esbuild@0.25.12)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0) - vitest@4.1.10(@types/node@26.1.2)(jsdom@29.1.1)(vite@8.2.1(@types/node@26.1.2)(esbuild@0.25.12)(tsx@4.23.9)(yaml@2.9.0)): + vitest@4.1.10(@types/node@26.1.2)(jsdom@29.1.1)(vite@8.2.1(@types/node@26.1.2)(esbuild@0.25.12)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0)): dependencies: '@vitest/expect': 4.1.10 - '@vitest/mocker': 4.1.10(vite@8.2.1(@types/node@26.1.2)(esbuild@0.25.12)(tsx@4.23.9)(yaml@2.9.0)) + '@vitest/mocker': 4.1.10(vite@8.2.1(@types/node@26.1.2)(esbuild@0.25.12)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0)) '@vitest/pretty-format': 4.1.10 '@vitest/runner': 4.1.10 '@vitest/snapshot': 4.1.10 @@ -6972,7 +10088,7 @@ snapshots: tinyexec: 1.3.0 tinyglobby: 0.2.17 tinyrainbow: 3.1.1 - vite: 8.2.1(@types/node@26.1.2)(esbuild@0.25.12)(tsx@4.23.9)(yaml@2.9.0) + vite: 8.2.1(@types/node@26.1.2)(esbuild@0.25.12)(jiti@2.7.0)(terser@5.51.2)(tsx@4.23.9)(yaml@2.9.0) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 26.1.2 @@ -6986,6 +10102,8 @@ snapshots: web-namespaces@2.0.1: {} + webidl-conversions@3.0.1: {} + webidl-conversions@8.0.1: {} webpack-virtual-modules@0.6.2: {} @@ -7000,15 +10118,46 @@ snapshots: transitivePeerDependencies: - '@noble/hashes' + whatwg-url@5.0.0: + dependencies: + tr46: 0.0.3 + webidl-conversions: 3.0.1 + which@2.0.2: dependencies: isexe: 2.0.0 + which@4.0.0: + dependencies: + isexe: 3.1.5 + why-is-node-running@2.3.0: dependencies: siginfo: 2.0.0 stackback: 0.0.2 + widest-line@5.0.0: + dependencies: + string-width: 7.2.0 + + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrap-ansi@8.1.0: + dependencies: + ansi-styles: 6.2.3 + string-width: 5.1.2 + strip-ansi: 7.2.0 + + wrap-ansi@9.0.2: + dependencies: + ansi-styles: 6.2.3 + string-width: 7.2.0 + strip-ansi: 7.2.0 + wsl-utils@0.3.1: dependencies: is-wsl: 3.1.1 @@ -7018,10 +10167,46 @@ snapshots: xmlchars@2.2.0: {} + y18n@5.0.8: {} + yallist@3.1.1: {} + yallist@5.0.0: {} + yaml@2.9.0: {} + yargs-parser@22.0.0: {} + + yargs@18.2.0: + dependencies: + cliui: 9.0.1 + escalade: 3.2.0 + get-caller-file: 2.0.5 + string-width: 8.3.0 + y18n: 5.0.8 + yargs-parser: 22.0.0 + yoga-wasm-web@0.3.3: {} + youch-core@0.3.3: + dependencies: + '@poppinss/exception': 1.2.3 + error-stack-parser-es: 1.0.5 + + youch@4.1.1: + dependencies: + '@poppinss/colors': 4.1.6 + '@poppinss/dumper': 0.7.0 + '@speed-highlight/core': 1.2.24 + cookie-es: 3.1.1 + youch-core: 0.3.3 + + zip-stream@6.0.1: + dependencies: + archiver-utils: 5.0.2 + compress-commons: 6.0.2 + readable-stream: 4.7.0 + + zod@4.6.5: {} + zwitch@2.0.4: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 998d14c4..6adc7008 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -4,4 +4,10 @@ packages: - "dev" # - "examples/*" allowBuilds: + '@parcel/watcher': true esbuild: false +minimumReleaseAgeExclude: + - '@solidjs/signals@2.0.0-rc.14' + - '@solidjs/web@2.0.0-rc.14' + - solid-js@2.0.0-rc.14 + - '@solidjs/router@2.0.0-next.37' diff --git a/scripts/build.js b/scripts/build.js index d43be6a8..0889173c 100644 --- a/scripts/build.js +++ b/scripts/build.js @@ -3,7 +3,7 @@ import { glob } from "node:fs/promises"; import * as path from "node:path"; const files = await Array.fromAsync( - glob("**/*.{js,css}", { cwd: `${process.cwd()}/src` }), + glob("**/*.{js,mjs,css}", { cwd: `${process.cwd()}/src` }), ); await Promise.all( diff --git a/src/client/Root.tsx b/src/client/Root.tsx index 831ceab7..7e407eab 100644 --- a/src/client/Root.tsx +++ b/src/client/Root.tsx @@ -5,21 +5,28 @@ import { Layout, mdxComponents } from "virtual:solidbase/components"; // as different modules, resulting in this file getting its own MDXContext (id `file://.../mdx.js), // and the MDX files sharing another (id `@kobalte/solidbase/mdx`). import { MDXProvider } from "virtual:solidbase/mdx"; -import { Meta, MetaProvider, Title } from "@solidjs/meta"; -import { createMemo, onMount, type ParentProps, Suspense } from "solid-js"; +import { Meta, Title } from "@solidjs/meta"; +import { useRouteMatches } from "@solidjs/router"; +import { httpStatus, isServer } from "@solidjs/web"; +import { createMemo, Loading, onSettled, type ParentProps } from "solid-js"; import { useRouteSolidBaseConfig } from "./config.js"; import { SolidBaseContext } from "./context.jsx"; +import { PreferredLanguageCookieScript } from "./preferred-language.js"; +import { ThemeCookieScript } from "./theme.js"; export function SolidBaseRoot( props: ParentProps & { currentPageData?: { deferStream?: boolean }; - meta?: { - // allows diabling MetaProvider for cases where you've already got one - provider?: boolean; - }; }, ) { - onMount(() => { + // SolidStart answered unmatched paths with a 404; Router 2 start mode renders an empty + // shell with 200 unless a route sets the status. Apps with a [...404] route still win. + if (isServer) { + const matches = useRouteMatches(); + if (matches().length === 0) httpStatus(404); + } + + onSettled(() => { const { $$SolidBase } = window as { $$SolidBase?: { initTwoslashPopups?(): void }; }; @@ -27,7 +34,9 @@ export function SolidBaseRoot( }); const base = () => ( - + + + @@ -37,17 +46,10 @@ export function SolidBaseRoot( - + ); - const withMeta = () => - (props.meta?.provider ?? true) ? ( - {base()} - ) : ( - base() - ); - - return <>{withMeta()}; + return <>{base()}; } import { LocaleContextProvider } from "./locale.js"; @@ -73,10 +75,10 @@ export function Inner(props: ParentProps) { pageData()?.frontmatter?.description ?? config().description; return ( - + {metaTitle()} {description() && } {props.children} - + ); } diff --git a/src/client/context.tsx b/src/client/context.tsx index 1ab719d2..ed39c8f6 100644 --- a/src/client/context.tsx +++ b/src/client/context.tsx @@ -7,12 +7,15 @@ export interface SolidBaseContextValue { metaTitle: Accessor; } -export const SolidBaseContext = createContext>(); +// A null default: Solid 2 throws on reading a context created without a default, which +// would skip the diagnostic (and the dev reload) below. +export const SolidBaseContext = + createContext | null>(null); export function useSolidBaseContext() { const context = useContext(SolidBaseContext); - if (context === undefined) { + if (context == null) { if (import.meta.env.VITE_SOLIDBASE_DEV) location.reload(); throw new Error( "[SolidBase]: `useSolidBaseContext` must be used within a `SolidBase` component", diff --git a/src/client/http.tsx b/src/client/http.tsx new file mode 100644 index 00000000..67dc9306 --- /dev/null +++ b/src/client/http.tsx @@ -0,0 +1,7 @@ +import { httpStatus } from "@solidjs/web"; + +/** Sets the response status for the current server render (no-op on the client). Usable from MDX. */ +export function HttpStatusCode(props: { code: number; text?: string }) { + httpStatus(props.code, props.text); + return null; +} diff --git a/src/client/index.tsx b/src/client/index.tsx index d5c4ac8b..f650b1bd 100644 --- a/src/client/index.tsx +++ b/src/client/index.tsx @@ -1,6 +1,7 @@ export { mdxComponents } from "virtual:solidbase/components"; export { useRouteSolidBaseConfig } from "./config.js"; export { useSolidBaseContext } from "./context.jsx"; +export { HttpStatusCode } from "./http.jsx"; export { getLocale, getLocaleLink, diff --git a/src/client/locale.ts b/src/client/locale.ts index c2aa3dd8..3fb5aaa6 100644 --- a/src/client/locale.ts +++ b/src/client/locale.ts @@ -1,8 +1,8 @@ import { solidBaseConfig } from "virtual:solidbase/config"; -import { createContextProvider } from "@solid-primitives/context"; +import { createOptionalContextProvider } from "@solid-primitives/context"; import { useLocation, useMatch, useNavigate } from "@solidjs/router"; -import { createMemo, startTransition } from "solid-js"; -import { getRequestEvent, isServer } from "solid-js/web"; +import { getRequestEvent, isServer } from "@solidjs/web"; +import { action, createMemo, onSettled } from "solid-js"; import type { LocaleConfig } from "../config/index.js"; import { @@ -150,110 +150,118 @@ function isPathWithinPrefix(path: string, prefix: string) { return path === prefix || path.startsWith(`${prefix}/`); } -const [LocaleContextProvider, useLocaleContext] = createContextProvider(() => { - const location = useLocation(); - const navigate = useNavigate(); - const routes = useSolidBaseRoutes(); - - const currentLocale = createMemo(() => getLocaleForPath(location.pathname)); - const currentRouteMatch = createMemo(() => - getSolidBaseRouteMatchForPath(solidBaseConfig.routes, location.pathname), - ); - const locales = createMemo(() => { - if (!solidBaseConfig.routes) return legacyLocales; +const [LocaleContextProvider, useLocaleContext] = createOptionalContextProvider( + () => { + const location = useLocation(); + const navigate = useNavigate(); + const routes = useSolidBaseRoutes(); + + const currentLocale = createMemo(() => getLocaleForPath(location.pathname)); + const currentRouteMatch = createMemo(() => + getSolidBaseRouteMatchForPath(solidBaseConfig.routes, location.pathname), + ); + const locales = createMemo(() => { + if (!solidBaseConfig.routes) return legacyLocales; + + const match = currentRouteMatch(); + if (!match) return []; + + return routes + .options(LOCALE_AXIS, match.selection) + .map(routeOptionToLocale); + }); - const match = currentRouteMatch(); - if (!match) return []; + const match = useMatch(() => `${getLocaleLink(currentLocale())}*rest`); - return routes - .options(LOCALE_AXIS, match.selection) - .map(routeOptionToLocale); - }); + return { + get locales() { + return locales(); + }, + currentLocale, + // A Solid action (generator transaction): the navigation runs as a transition, and + // onSettled queues the lang update behind its effects — i.e. after the new route commits, + // the timing 1.x got from startTransition(() => navigate()).then(...). + setLocale: action(function* (locale: ResolvedLocale) { + if (locale.option) { + const routePath = getSolidBaseRoutePathWithRest( + solidBaseConfig.routes, + { + ...routes.current(), + [LOCALE_AXIS]: locale.option.name, + }, + currentRouteMatch()?.restPath ?? "/", + ); + + if (!routePath) return; + + navigate(routePath); + onSettled(() => { + document.documentElement.lang = locale.code; + }); + return; + } - const match = useMatch(() => `${getLocaleLink(currentLocale())}*rest`); + const searchValue = getLocaleLink(locale); - return { - get locales() { - return locales(); - }, - currentLocale, - setLocale: (locale: ResolvedLocale) => { - if (locale.option) { - const routePath = getSolidBaseRoutePathWithRest( - solidBaseConfig.routes, - { - ...routes.current(), - [LOCALE_AXIS]: locale.option.name, - }, - currentRouteMatch()?.restPath ?? "/", - ); - - if (!routePath) return; - - startTransition(() => navigate(routePath)).then(() => { + navigate(`${searchValue}${match()?.params.rest ?? ""}`); + onSettled(() => { document.documentElement.lang = locale.code; }); - return; - } + }), + applyPathPrefix: (_path: string): `/${string}` => { + if (solidBaseConfig.routes && !isExternalPath(_path)) { + const path = normalizeClientPath(_path); + const pathMatch = getSolidBaseRouteMatchForPath( + solidBaseConfig.routes, + path, + ); + const pathPrefix = + pathMatch && + buildSolidBaseRoutePath( + solidBaseConfig.routes, + pathMatch.selection, + ); + + if ( + pathPrefix && + pathPrefix !== "/" && + isPathWithinPrefix(path, pathPrefix) + ) { + return path; + } + + const routePath = getSolidBaseRoutePathWithRest( + solidBaseConfig.routes, + routes.current(), + path, + ); + + if (routePath) return routePath; + } - const searchValue = getLocaleLink(locale); + let path = _path; + const link = getLocaleLink(currentLocale()); - startTransition(() => - navigate(`${searchValue}${match()?.params.rest ?? ""}`), - ).then(() => { - document.documentElement.lang = locale.code; - }); - }, - applyPathPrefix: (_path: string): `/${string}` => { - if (solidBaseConfig.routes && !isExternalPath(_path)) { - const path = normalizeClientPath(_path); - const pathMatch = getSolidBaseRouteMatchForPath( - solidBaseConfig.routes, - path, - ); - const pathPrefix = - pathMatch && - buildSolidBaseRoutePath(solidBaseConfig.routes, pathMatch.selection); - - if ( - pathPrefix && - pathPrefix !== "/" && - isPathWithinPrefix(path, pathPrefix) - ) { - return path; + if (link === "/") { + const normalizedPath = path.startsWith("/") ? path : `/${path}`; + return normalizedPath as `/${string}`; } - const routePath = getSolidBaseRoutePathWithRest( - solidBaseConfig.routes, - routes.current(), - path, - ); - + if (path.startsWith("/")) path = path.slice(1); + return `${link}${path}` as `/${string}`; + }, + routePath: () => { + const routePath = currentRouteMatch()?.restPath; if (routePath) return routePath; - } - - let path = _path; - const link = getLocaleLink(currentLocale()); - if (link === "/") { - const normalizedPath = path.startsWith("/") ? path : `/${path}`; - return normalizedPath as `/${string}`; - } - - if (path.startsWith("/")) path = path.slice(1); - return `${link}${path}` as `/${string}`; - }, - routePath: () => { - const routePath = currentRouteMatch()?.restPath; - if (routePath) return routePath; + const rest = match()?.params.rest; - const rest = match()?.params.rest; - - if (!rest) return "/"; - return `/${rest}`; - }, - }; -}); + if (!rest) return "/"; + return `/${rest}`; + }, + }; + }, +); export { LocaleContextProvider }; diff --git a/src/client/page-data.ts b/src/client/page-data.ts index ca048a56..349b275a 100644 --- a/src/client/page-data.ts +++ b/src/client/page-data.ts @@ -1,6 +1,28 @@ -import { createContextProvider } from "@solid-primitives/context"; -import { useCurrentMatches } from "@solidjs/router"; -import { createResource } from "solid-js"; +import { createOptionalContextProvider } from "@solid-primitives/context"; +import { useRouteMatches } from "@solidjs/router"; +import { createMemo, type MemoOptions } from "solid-js"; + +interface PageModuleRef { + src?: string; + import?: () => Promise; +} + +/** + * Locate the route's page module. `@solidjs/router/fs` wraps file routes in `lazy()`, which + * exposes `preload()` and `moduleUrl` (the manifest `src`). The 1.x SolidStart manifest shape + * (`route.key.$component`) is kept as a fallback for custom route trees. + */ +function getPageModuleRef(route: unknown): PageModuleRef | undefined { + const r = route as { + component?: { preload?: () => Promise; moduleUrl?: string }; + key?: { $component?: PageModuleRef }; + }; + if (typeof r?.component?.preload === "function") { + const component = r.component; + return { src: component.moduleUrl, import: () => component.preload!() }; + } + return r?.key?.$component; +} function getWindowPageData(path?: string) { if (typeof window === "undefined" || !path) return; @@ -29,36 +51,37 @@ interface CurrentPageData { } const [CurrentPageDataProvider, useCurrentPageDataContext] = - createContextProvider((props: { deferStream?: boolean }) => { - const matches = useCurrentMatches(); - - const [pageData] = createResource( - matches, - async (m): Promise => { + createOptionalContextProvider((props: { deferStream?: boolean }) => { + const matches = useRouteMatches(); + + // Solid 2: async memos replace createResource; readers suspend via the nearest . + // `deferStream` keeps 1.x semantics: hold the first flush until page data settles, so the + // page (and e.g. its ) renders before the response head is committed. + // The server memo honors it at runtime; it is not on the public MemoOptions type yet. + const pageData = createMemo( + async (): Promise => { + const m = matches(); const lastMatch = m[m.length - 1]; // if there's no matches that's not an us problem if (!lastMatch) return; - const { $component } = lastMatch.route.key as { - $component: { import?: () => Promise; src?: string }; - }; - const windowPageData = getWindowPageData($component?.src); + const ref = getPageModuleRef(lastMatch.route); + const windowPageData = getWindowPageData(ref?.src); if (windowPageData) return windowPageData; - const mod = - typeof $component?.import === "function" - ? await $component.import() - : undefined; - - if (!mod) throw new Error("Failed to get page data: module not found"); - return mod.$$SolidBase_page_data; - }, - { - get deferStream() { - return props.deferStream ?? true; - }, + // Hydration re-runs this compute with a stubbed global Promise until its first await. + // Preloading the lazy route under that stub caches a promise that never settles and + // stalls every later navigation back to the route, so yield before loading. `await` + // uses the intrinsic Promise; `await Promise.resolve()` would hit the stub instead. + await undefined; + // no page module (e.g. an eager or hand-written route): no page data, not an error + const mod = ref?.import ? await ref.import() : undefined; + return mod?.$$SolidBase_page_data; }, + { deferStream: props.deferStream ?? true } as MemoOptions< + CurrentPageData | undefined + >, ); return () => pageData(); diff --git a/src/client/page-markdown.ts b/src/client/page-markdown.ts index 13d87547..dd6a270e 100644 --- a/src/client/page-markdown.ts +++ b/src/client/page-markdown.ts @@ -3,7 +3,7 @@ import { writeClipboard, } from "@solid-primitives/clipboard"; import { useLocation } from "@solidjs/router"; -import { createEffect, createSignal, onCleanup, onMount } from "solid-js"; +import { createEffect, createSignal, onCleanup, onSettled } from "solid-js"; import { useRouteSolidBaseConfig } from "./config.js"; import { type BaseFrontmatter, useCurrentPageData } from "./page-data.js"; @@ -101,7 +101,7 @@ export function useCopyPageMarkdown() { clearFeedbackTimeout(); } - onMount(() => { + onSettled(() => { setIsClient(true); }); @@ -109,10 +109,10 @@ export function useCopyPageMarkdown() { clearFeedbackTimeout(); }); - createEffect(() => { - location.pathname; - resetCopyFeedback(); - }); + createEffect( + () => location.pathname, + () => resetCopyFeedback(), + ); const canCopy = () => canCopyPageMarkdown(config().llms, pageData()?.frontmatter.llms); diff --git a/src/client/preferred-language.ts b/src/client/preferred-language.ts index e1159638..2e761d65 100644 --- a/src/client/preferred-language.ts +++ b/src/client/preferred-language.ts @@ -1,6 +1,11 @@ -import { useHead } from "@solidjs/meta"; -import { createEffect, createSignal, createUniqueId, onMount } from "solid-js"; -import { getRequestEvent, isServer } from "solid-js/web"; +import { Script } from "@solidjs/meta"; +import { getRequestEvent, isServer } from "@solidjs/web"; +import { + createComponent, + createEffect, + createSignal, + onSettled, +} from "solid-js"; import readPreferredLanguageCookieScript from "./read-preferred-language-cookie.js?raw"; type SupportedLanguage = "ts" | "js"; @@ -38,34 +43,39 @@ const [preferredLanguage, setPreferredLanguage] = createSignal(DEFAULT_LANGUAGE); export function usePreferredLanguage() { - onMount(() => { + onSettled(() => { setPreferredLanguage(getPreferredLanguageCookie()); }); - createEffect(() => { - const preferredLanguageStr = String(preferredLanguage()); - document.documentElement.setAttribute( - "data-preferred-language", - preferredLanguageStr, - ); - // biome-ignore lint/suspicious/noDocumentCookie: remove next major - document.cookie = `${COOKIE_NAME}=${preferredLanguageStr}; max-age=31536000; path=/`; + createEffect( + () => preferredLanguage(), + (lang) => { + const preferredLanguageStr = String(lang); + document.documentElement.setAttribute( + "data-preferred-language", + preferredLanguageStr, + ); + // biome-ignore lint/suspicious/noDocumentCookie: remove next major + document.cookie = `${COOKIE_NAME}=${preferredLanguageStr}; max-age=31536000; path=/`; - const toggles = document.querySelectorAll( - 'input[type="checkbox"].sb-ts-js-toggle', - ); + const toggles = document.querySelectorAll( + 'input[type="checkbox"].sb-ts-js-toggle', + ); - for (const toggle of Array.from(toggles)) { - toggle.checked = preferredLanguage() === "ts"; - } - }); - - useHead({ - tag: "script", - id: createUniqueId(), - props: { children: readPreferredLanguageCookieScript }, - setting: { close: true }, - }); + for (const toggle of Array.from(toggles)) { + toggle.checked = lang === "ts"; + } + }, + { defer: true }, + ); return [preferredLanguage, setPreferredLanguage] as const; } + +/** Inline script that applies the preferred-language cookie before hydration (prevents FOUC). Render once in the document head. */ +export function PreferredLanguageCookieScript() { + return createComponent(Script, { + id: "sb-preferred-language-script", + children: readPreferredLanguageCookieScript, + }); +} diff --git a/src/client/routes.ts b/src/client/routes.ts index 82a539a2..3e70c771 100644 --- a/src/client/routes.ts +++ b/src/client/routes.ts @@ -1,5 +1,5 @@ import { solidBaseConfig } from "virtual:solidbase/config"; -import { createContextProvider } from "@solid-primitives/context"; +import { createOptionalContextProvider } from "@solid-primitives/context"; import { useLocation } from "@solidjs/router"; import { createMemo } from "solid-js"; @@ -16,7 +16,7 @@ import { import { useRouteSolidBaseConfig } from "./config.js"; const [SolidBaseRoutesContextProvider, useSolidBaseRoutesContext] = - createContextProvider(() => { + createOptionalContextProvider(() => { const location = useLocation(); const current = createMemo( () => diff --git a/src/client/sidebar.ts b/src/client/sidebar.ts index 62dddea5..e341c5f2 100644 --- a/src/client/sidebar.ts +++ b/src/client/sidebar.ts @@ -1,4 +1,4 @@ -import { createContextProvider } from "@solid-primitives/context"; +import { createOptionalContextProvider } from "@solid-primitives/context"; import { useLocation } from "@solidjs/router"; import { type Accessor, createMemo } from "solid-js"; @@ -11,7 +11,7 @@ import { useLocale } from "./locale.js"; export type * from "../config/sidebar.js"; -const [SidebarProvider, useSidebarRaw] = createContextProvider( +const [SidebarProvider, useSidebarRaw] = createOptionalContextProvider( (props: { config?: SidebarConfig }) => { const locale = useLocale(); @@ -66,7 +66,7 @@ export function useSidebar() { const s = useSidebarRaw(); if (!s) throw new Error("useSidebar must be called underneath a SidebarProvider"); - return s as Accessor<{ prefix: string; items: SidebarItem[] }>; + return s as unknown as Accessor<{ prefix: string; items: SidebarItem[] }>; } function flattenSidebarItems( diff --git a/src/client/theme.ts b/src/client/theme.ts index ef8105e5..be565f36 100644 --- a/src/client/theme.ts +++ b/src/client/theme.ts @@ -1,7 +1,7 @@ import { usePrefersDark } from "@solid-primitives/media"; -import { useHead } from "@solidjs/meta"; -import { createEffect, createSignal, createUniqueId } from "solid-js"; -import { getRequestEvent, isServer } from "solid-js/web"; +import { Script } from "@solidjs/meta"; +import { getRequestEvent, isServer } from "@solidjs/web"; +import { createComponent, createEffect, createSignal } from "solid-js"; export type ThemeType = "light" | "dark"; export type RawThemeType = ThemeType | `s${ThemeType}`; @@ -21,7 +21,20 @@ function getThemeCookie(): RawThemeType { return getCookie("theme", document.cookie) as RawThemeType; } -const [theme, _setTheme] = createSignal(); +// Solid 2 forbids writing reactive state from inside a computation (the old code wrote the +// cookie value into the signal during `getRawTheme()`, which runs in an effect's compute phase). +// Seed the signal from the cookie on the client instead; the server reads the cookie per request. +function initialTheme(): ThemeType | "system" | undefined { + if (isServer) return undefined; + const userTheme = getThemeCookie(); + return userTheme && !userTheme.startsWith("s") + ? (userTheme as ThemeType) + : undefined; +} + +const [theme, _setTheme] = createSignal( + initialTheme(), +); export function getRawTheme(): RawThemeType { if (isServer) return getThemeCookie() as RawThemeType; @@ -29,16 +42,9 @@ export function getRawTheme(): RawThemeType { const prefersDark = usePrefersDark(); const prefersTheme = () => (prefersDark() ? "sdark" : "slight"); - if (theme()) - return theme()!.startsWith("s") - ? prefersTheme() - : (theme()! as RawThemeType); - - const userTheme = getThemeCookie(); - if (userTheme && !userTheme.startsWith("s")) { - setTheme(userTheme as ThemeType); - return userTheme; - } + const current = theme(); + if (current) + return current.startsWith("s") ? prefersTheme() : (current as RawThemeType); return prefersTheme(); } @@ -58,16 +64,20 @@ export const setTheme = _setTheme; import readThemeCookieScript from "./read-theme-cookie.js?raw"; export function useThemeListener() { - createEffect(() => { - document.documentElement.setAttribute("data-theme", getRawTheme()); - // biome-ignore lint/suspicious/noDocumentCookie: remove next major - document.cookie = `theme=${getRawTheme()}; max-age=31536000; path=/`; - }); + createEffect( + () => getRawTheme(), + (raw) => { + document.documentElement.setAttribute("data-theme", raw); + // biome-ignore lint/suspicious/noDocumentCookie: remove next major + document.cookie = `theme=${raw}; max-age=31536000; path=/`; + }, + ); +} - useHead({ - tag: "script", - id: createUniqueId(), - props: { children: readThemeCookieScript }, - setting: { close: true }, +/** Inline script that applies the theme cookie before hydration (prevents FOUC). Render once in the document head. */ +export function ThemeCookieScript() { + return createComponent(Script, { + id: "sb-theme-script", + children: readThemeCookieScript, }); } diff --git a/src/config/file-routes.ts b/src/config/file-routes.ts new file mode 100644 index 00000000..001680dc --- /dev/null +++ b/src/config/file-routes.ts @@ -0,0 +1,74 @@ +import { + PageFileSystemRouter, + type RouteManifestEntry, +} from "filesystem-routing"; +import { + DEFAULT_EXTENSIONS, + type FileRoutesOptions, + fileRoutes, +} from "filesystem-routing/vite"; +import type { PluginOption } from "vite"; + +/** Export appended to every compiled MDX module by the SolidBase Vite plugin. */ +export const PAGE_DATA_EXPORT = "$$SolidBase_page_data"; +const MARKDOWN_EXTENSIONS = ["md", "mdx"]; +const MARKDOWN_RE = /\.mdx?$/; +const BASE_ROUTER = Symbol("solidbase.baseRouter"); + +/** + * File-system routes for a SolidBase site, on top of `filesystem-routing` (the convention + * SolidStart used, now router-neutral). Markdown files are pages out of the box; SolidBase only + * adds `$$SolidBase_page_data` to the picked exports. `filesystem-routing` only tree-shakes picks + * for js/ts routes today, so markdown modules load whole; the pick keeps page data if that changes. + * + * Apps consume the manifest from `virtual:file-routes` and hand it to the router: + * + * ```tsx + * import { pageRoutes } from "virtual:file-routes"; + * import { createRouter } from "@solidjs/router"; + * import { fileRoutes } from "@solidjs/router/fs"; + * const Router = createRouter({ routes: fileRoutes(pageRoutes) }); + * ``` + */ +/** + * The route convention SolidBase uses: the stock `filesystem-routing` page convention, with + * `$$SolidBase_page_data` added to the picked exports of markdown routes. Pass it as `toRoute` + * when wiring `fileRoutes()` yourself (`fileRoutes: false` in the SolidBase config). + */ +export const solidBaseToRoute: NonNullable = ( + src, + router, +) => { + const holder = router as unknown as Record; + const base = (holder[BASE_ROUTER] ??= new PageFileSystemRouter({ + ...(router.config as ConstructorParameters[0]), + toRoute: undefined, + })); + const route: RouteManifestEntry | undefined = base.toRoute(src); + const component = route?.$component; + if ( + component && + MARKDOWN_RE.test(src) && + !component.pick.includes(PAGE_DATA_EXPORT) + ) { + component.pick = [...component.pick, PAGE_DATA_EXPORT]; + } + return route; +}; + +export function solidBaseFileRoutes( + options: FileRoutesOptions = {}, +): PluginOption[] { + const extensions = [ + ...new Set([ + ...(options.extensions ?? DEFAULT_EXTENSIONS), + ...MARKDOWN_EXTENSIONS, + ]), + ]; + + return fileRoutes({ + ...options, + extensions, + toRoute: solidBaseToRoute, + }); +} diff --git a/src/config/index.ts b/src/config/index.ts index 89a42d16..0d403d77 100644 --- a/src/config/index.ts +++ b/src/config/index.ts @@ -1,10 +1,12 @@ -import type { SolidStartOptions } from "@solidjs/start/config"; +import type { Options as SolidPluginOptions } from "@solidjs/vite-plugin"; +import type { FileRoutesOptions } from "filesystem-routing/vite"; import type { Options as AutoImportOptions } from "unplugin-auto-import/dist/types.js"; import type { ComponentResolverOption } from "unplugin-icons/resolver"; import type { Options as IconsOptions } from "unplugin-icons/types"; import type { PluginOption } from "vite"; import defaultTheme from "../default-theme/index.js"; +import { solidBaseFileRoutes } from "./file-routes.js"; import { type MdxOptions, solidBaseMdx } from "./mdx.js"; import type { IssueAutoLinkConfig } from "./remark-plugins/issue-autolink.js"; import type { @@ -14,6 +16,7 @@ import type { } from "./route-config.js"; import { validateSolidBaseRoutesConfig as validateRoutes } from "./route-config.js"; import solidBaseVitePlugin from "./vite-plugin/index.js"; +import type { PrerenderOptions } from "./vite-plugin/prerender.js"; export type { SolidBaseRouteOption, @@ -61,6 +64,10 @@ export interface SolidBaseConfig { editPath?: string | ((path: string) => string); lastUpdated?: Intl.DateTimeFormatOptions | false; markdown?: MdxOptions; + /** File-system routing (`virtual:file-routes`); `false` to wire `filesystem-routing` yourself. */ + fileRoutes?: FileRoutesOptions | false; + /** Static site generation after `vite build` (into the client output dir). `false` to deploy as SSR. */ + prerender?: boolean | PrerenderOptions; icons?: Omit | false; // disabled by default autoImport?: @@ -136,7 +143,7 @@ export function createSolidBase( const sbConfig: SolidBaseResolvedConfig = { title: "SolidBase", description: - "Fully featured, fully customisable static site generation for SolidStart", + "Fully featured, fully customisable static site generation for Solid", llms: false, sitemap: false, robots: false, @@ -175,14 +182,23 @@ export function createSolidBase( return [ solidBaseMdx(sbConfig), solidBaseVitePlugin(theme, sbConfig), + ...(sbConfig.fileRoutes === false + ? [] + : solidBaseFileRoutes(sbConfig.fileRoutes)), ...plugins, ]; }; - const startConfig = (config: SolidStartOptions = {}) => { + /** + * `@solidjs/vite-plugin` options with SolidBase defaults applied: start mode with SSR + * (the serving layer that replaced SolidStart), and `.md`/`.mdx` registered as extensions. + */ + const startConfig = (config: Partial = {}) => { config.ssr ??= true; + config.start ??= true; + // @solidjs/vite-plugin matches extensions with their leading dot. config.extensions = [ - ...new Set((config.extensions ?? []).concat(["md", "mdx"])), + ...new Set((config.extensions ?? []).concat([".md", ".mdx"])), ]; return config; }; diff --git a/src/config/llms-index.ts b/src/config/llms-index.ts index 468ea85a..a8cac7ce 100644 --- a/src/config/llms-index.ts +++ b/src/config/llms-index.ts @@ -101,9 +101,9 @@ export async function getLlmDocuments( importer: string, ) => Promise<{ id: string } | null>, ): Promise { - if (!config.llms) return []; + if (!config.llms || config.fileRoutes === false) return []; - const routes = await getRoutesIndex(root); + const routes = await getRoutesIndex(root, config.fileRoutes?.dir); return Promise.all( routes.map(async (route): Promise => { diff --git a/src/config/mdx.ts b/src/config/mdx.ts index 911c0a41..653e3179 100644 --- a/src/config/mdx.ts +++ b/src/config/mdx.ts @@ -76,7 +76,7 @@ export function solidBaseMdx( viteAliasCodeImports(), mdx.withImports({})({ jsx: true, - jsxImportSource: "solid-js", + jsxImportSource: "@solidjs/web", providerImportSource: "@kobalte/solidbase/mdx", stylePropertyNameCase: "css", rehypePlugins: getRehypePlugins(sbConfig), @@ -112,7 +112,7 @@ function getRehypePlugins(sbConfig: SolidBaseResolvedConfig) { target: "ESNext", module: "ESNext", lib: ["dom", "esnext"], - jsxImportSource: "solid-js", + jsxImportSource: "@solidjs/web", jsx: "preserve", ...twoSlash.tsconfig, }, diff --git a/src/config/routes-index.ts b/src/config/routes-index.ts index 9fe23c42..a80ba95c 100644 --- a/src/config/routes-index.ts +++ b/src/config/routes-index.ts @@ -1,5 +1,5 @@ import { readdir, readFile } from "node:fs/promises"; -import { extname, join, relative } from "node:path"; +import { extname, join, relative, resolve } from "node:path"; import matter from "gray-matter"; @@ -23,8 +23,8 @@ export type RouteIndexEntry = { frontmatter: Record; }; -export function getRoutesDir(root: string) { - return join(root, "src/routes"); +export function getRoutesDir(root: string, dir = "src/routes") { + return resolve(root, dir); } export function isNotFoundRoute(routesDir: string, filePath: string) { @@ -39,7 +39,10 @@ export function stripOrderingSegment(segment: string) { } export async function collectMarkdownFiles(dir: string): Promise { - const entries = await readdir(dir, { withFileTypes: true }); + const entries = await readdir(dir, { withFileTypes: true }).catch((error) => { + if (error.code === "ENOENT") return []; + throw error; + }); const files = await Promise.all( entries.map(async (entry) => { const fullPath = join(dir, entry.name); @@ -213,8 +216,11 @@ export function isDefaultLocaleRoute( ); } -export async function getRoutesIndex(root: string): Promise { - const routesDir = getRoutesDir(root); +export async function getRoutesIndex( + root: string, + dir?: string, +): Promise { + const routesDir = getRoutesDir(root, dir); const markdownFiles = await collectMarkdownFiles(routesDir); return Promise.all( diff --git a/src/config/sitemap-index.ts b/src/config/sitemap-index.ts index a9b47799..f03e9303 100644 --- a/src/config/sitemap-index.ts +++ b/src/config/sitemap-index.ts @@ -115,6 +115,9 @@ export async function getSitemapEntries( const hostname = getSitemapHostname(config); if (!hostname) return []; - const routes = await getRoutesIndex(root); + const routes = + config.fileRoutes === false + ? [] + : await getRoutesIndex(root, config.fileRoutes?.dir); return buildSitemapEntries(hostname, config, routes); } diff --git a/src/config/vite-plugin/generated-asset.ts b/src/config/vite-plugin/generated-asset.ts index 80d49acf..7ce43146 100644 --- a/src/config/vite-plugin/generated-asset.ts +++ b/src/config/vite-plugin/generated-asset.ts @@ -1,5 +1,5 @@ -import { access, mkdir, readFile, rm, stat } from "node:fs/promises"; -import { join, normalize, relative } from "node:path"; +import { access, mkdir, readdir, readFile, rm, stat } from "node:fs/promises"; +import { join, normalize, relative, sep } from "node:path"; import type { PluginOption } from "vite"; @@ -21,6 +21,22 @@ export async function emptyDir(dir: string) { await mkdir(dir, { recursive: true }); } +async function listFiles(dir: string): Promise { + let entries: import("node:fs").Dirent[]; + try { + entries = await readdir(dir, { withFileTypes: true }); + } catch { + return []; + } + const files = await Promise.all( + entries.map((entry) => { + const path = join(dir, entry.name); + return entry.isDirectory() ? listFiles(path) : [path]; + }), + ); + return files.flat(); +} + export function createGeneratedAssetPlugin( options: GeneratedAssetPluginOptions, ): PluginOption { @@ -64,24 +80,6 @@ export function createGeneratedAssetPlugin( return { name: options.name, apply: options.apply, - config(viteConfig) { - const nitroConfig = (viteConfig as any).nitro ?? {}; - - return { - nitro: { - ...nitroConfig, - publicAssets: [ - ...(nitroConfig.publicAssets ?? []), - { - dir: options.assetDir, - baseURL: "/", - fallthrough: true, - ignore: false, - }, - ], - }, - } as any; - }, configResolved(resolvedConfig) { root = resolvedConfig.root; assetRoot = join(root, options.assetDir); @@ -98,5 +96,16 @@ export function createGeneratedAssetPlugin( this.resolve(source, importer), ); }, + // Ship the generated files with the client bundle (previously Nitro `publicAssets`). + async generateBundle() { + if (this.environment?.name !== "client") return; + for (const file of await listFiles(assetRoot)) { + this.emitFile({ + type: "asset", + fileName: relative(assetRoot, file).split(sep).join("/"), + source: await readFile(file), + }); + } + }, }; } diff --git a/src/config/vite-plugin/index.ts b/src/config/vite-plugin/index.ts index cbbb6d8c..1d606261 100644 --- a/src/config/vite-plugin/index.ts +++ b/src/config/vite-plugin/index.ts @@ -7,6 +7,7 @@ import type { PluginOption } from "vite"; import type { SolidBaseResolvedConfig, ThemeDefinition } from "../index.js"; import solidBaseLlmsPlugin from "./llms.js"; +import { solidBasePrerenderPlugin } from "./prerender.js"; import solidBaseRobotsPlugin from "./robots.js"; import solidBaseSitemapPlugin from "./sitemap.js"; import { @@ -26,7 +27,18 @@ export default function solidBaseVitePlugin( name: "solidbase:pre", enforce: "pre", config() { - return { resolve: { noExternal: ["@kobalte/solidbase"] } }; + return { + resolve: { + noExternal: ["@kobalte/solidbase"], + // Solid 2 context identity: the app and SolidBase must share one copy of these. + dedupe: [ + "solid-js", + "@solidjs/web", + "@solidjs/router", + "@solidjs/meta", + ], + }, + }; }, configResolved(resolvedConfig) { root = resolvedConfig.root; @@ -65,7 +77,7 @@ export default function solidBaseVitePlugin( enforce: "post", transform(code, id) { if (isMarkdown(id)) - return transformMdxModule(code, id, solidBaseConfig); + return transformMdxModule(code, id, solidBaseConfig, root); }, }, ]; @@ -115,6 +127,14 @@ export default function solidBaseVitePlugin( plugins.push(solidBaseSitemapPlugin(solidBaseConfig)); plugins.push(solidBaseRobotsPlugin(solidBaseConfig)); + if (solidBaseConfig.prerender !== false) + plugins.push( + solidBasePrerenderPlugin( + solidBaseConfig, + solidBaseConfig.prerender === true ? {} : solidBaseConfig.prerender, + ), + ); + return plugins; } diff --git a/src/config/vite-plugin/prerender-worker.mjs b/src/config/vite-plugin/prerender-worker.mjs new file mode 100644 index 00000000..be446dea --- /dev/null +++ b/src/config/vite-plugin/prerender-worker.mjs @@ -0,0 +1,142 @@ +// Runs in a child process so the production server bundle never loads into Vite's process +// (its runtime holds handles that keep the event loop alive and hang `vite build`). +import { pathToFileURL } from "node:url"; +import { extractLinks, normalizeRoute, runPrerender } from "prerender-crawler"; + +const STATIC_FILE_RE = /\.[a-z0-9]{1,8}$/i; +const NOT_FOUND_PROBE = "/__solidbase_404__"; +const DISCOVERY_HEADER = "x-solidbase-prerender"; + +// v0.2 normalizes away trailing slashes. Keep the original URL spelling only +// for requests and relative-link resolution; link discovery stays with the engine. +function rememberLinkPaths(html, pageUrl, paths, toAppPath) { + const baseMatch = /]*?href\s*=\s*(?:"([^"]*)"|'([^']*)')/is.exec( + html, + ); + let linkBase = pageUrl; + try { + if (baseMatch) + linkBase = new URL(baseMatch[1] ?? baseMatch[2] ?? "", pageUrl); + } catch { + // Ignore invalid base URLs, as the engine does. + } + for (const match of html.matchAll( + /]*?href\s*=\s*(?:"([^"]*)"|'([^']*)')/gis, + )) { + try { + const url = new URL(match[1] ?? match[2] ?? "", linkBase); + if (url.origin !== pageUrl.origin) continue; + const path = normalizeRoute( + new URL(toAppPath(url.pathname), pageUrl.origin), + ); + if (!paths.has(path)) paths.set(path, toAppPath(url.pathname)); + } catch { + // Invalid hrefs are not crawlable. + } + } +} + +async function main() { + const input = JSON.parse(await readStdin()); + const { serverEntry, outDir, origin, seeds, crawlLinks, notFound } = input; + const base = (input.base ?? "/").replace(/\/$/, ""); + const toAppPath = (path) => { + if (!base) return path || "/"; + if (path === base || path === `${base}/`) return "/"; + return path.startsWith(`${base}/`) ? path.slice(base.length) : path; + }; + const mod = await import(pathToFileURL(serverEntry).href); + const handleRequest = + mod.handleRequest ?? mod.default?.fetch?.bind(mod.default); + if (!handleRequest) + throw new Error(`${serverEntry} does not export handleRequest`); + + const render = async (path) => { + const res = await handleRequest(new Request(new URL(base + path, origin)), { + renderMode: "async", + }); + return { status: res.status, html: await res.text() }; + }; + + const failed = []; + // The first spelling wins, matching the engine's seed deduplication. + const requestPaths = new Map(); + for (const seed of seeds) { + const url = new URL(seed, origin); + const path = normalizeRoute(url); + if (!requestPaths.has(path)) requestPaths.set(path, url.pathname); + } + const result = await runPrerender({ + origin, + outDir, + pages: seeds, + concurrency: 1, + retries: 0, + failOnError: false, + // There is no base-path mapping hook in the engine. Use its extractor at + // the public URL, then pass app-relative paths to its discovery queue. + crawlLinks: false, + hintHeader: DISCOVERY_HEADER, + filter: (path) => !STATIC_FILE_RE.test(path) || path.endsWith(".html"), + transport: { + async fetch(request) { + const path = new URL(request.url).pathname; + const requestPath = requestPaths.get(path) ?? path; + const { status, html } = await render(requestPath); + if (status !== 200) { + failed.push({ path, status }); + // Keep the existing policy: report every non-200, without following + // redirects or writing their bodies as successful pages. + return new Response(null, { status: 400 }); + } + const pageUrl = new URL(base + requestPath, origin); + if (crawlLinks) + rememberLinkPaths(html, pageUrl, requestPaths, toAppPath); + const links = crawlLinks + ? extractLinks(html, pageUrl).map(toAppPath) + : []; + return new Response(html, { + headers: { [DISCOVERY_HEADER]: links.join(",") }, + }); + }, + }, + integrations: [ + { + name: "solidbase", + async teardown(context) { + // HTTP failures are warnings; thrown handler errors must still fail + // the worker (and therefore the Vite build). + for (const skipped of context.skipped) { + if (!failed.some((entry) => entry.path === skipped.path)) + throw skipped.error; + } + if (notFound) { + const { html } = await render(NOT_FOUND_PROBE); + context.emitFile({ filename: "404.html", contents: html }); + } + }, + }, + ], + }); + const written = result.pages.map((page) => page.path); + // The server runtime keeps the loop alive, so exit explicitly, but only once the + // result is flushed: piped stdout is async on macOS and would truncate at 64 KiB. + process.stdout.write(JSON.stringify({ written, failed }), () => + process.exit(0), + ); +} + +function readStdin() { + return new Promise((resolve, reject) => { + let data = ""; + process.stdin.setEncoding("utf8"); + process.stdin.on("data", (c) => (data += c)); + process.stdin.on("end", () => resolve(data)); + process.stdin.on("error", reject); + }); +} + +main().catch((error) => { + console.error(error); + process.exit(1); +}); diff --git a/src/config/vite-plugin/prerender.ts b/src/config/vite-plugin/prerender.ts new file mode 100644 index 00000000..e51d15f6 --- /dev/null +++ b/src/config/vite-plugin/prerender.ts @@ -0,0 +1,148 @@ +import { spawn } from "node:child_process"; +import { join, resolve } from "node:path"; +import { fileURLToPath } from "node:url"; + +import type { Plugin, ViteBuilder } from "vite"; + +import type { SolidBaseResolvedConfig } from "../index.js"; +import { getRoutesIndex } from "../routes-index.js"; + +export interface PrerenderOptions { + /** Extra paths to render on top of the markdown route index (and `/`). */ + routes?: string[]; + /** Follow same-origin links found in rendered pages. @default true */ + crawlLinks?: boolean; + /** Also render a never-matching path and write it as `404.html`. @default true */ + notFound?: boolean; + /** Origin used for the synthetic requests. Defaults to `siteUrl`, else `http://localhost`. */ + origin?: string; +} + +interface WorkerInput { + serverEntry: string; + outDir: string; + origin: string; + /** Vite `base`; pages are requested at `base + path` and written relative to `outDir`. */ + base: string; + seeds: string[]; + crawlLinks: boolean; + notFound: boolean; +} + +interface WorkerResult { + written: string[]; + failed: Array<{ path: string; status: number }>; +} + +const WORKER = fileURLToPath( + new URL("./prerender-worker.mjs", import.meta.url), +); + +function runWorker(input: WorkerInput): Promise { + return new Promise((resolvePromise, reject) => { + const child = spawn(process.execPath, [WORKER], { + stdio: ["pipe", "pipe", "inherit"], + env: process.env, + }); + let stdout = ""; + child.stdout.setEncoding("utf8"); + child.stdout.on("data", (chunk) => { + stdout += chunk; + }); + child.on("error", reject); + child.on("close", (code) => { + if (code !== 0) { + reject( + new Error(`[solidbase] prerender worker exited with code ${code}`), + ); + return; + } + try { + resolvePromise(JSON.parse(stdout) as WorkerResult); + } catch (error) { + reject(error); + } + }); + child.stdin.end(JSON.stringify(input)); + }); +} + +/** + * Static site generation for `@solidjs/vite-plugin` start mode. After the client and server + * bundles are built, every markdown route (plus `/`, configured extras, and crawled links) is + * rendered through the production `handleRequest` handler and written into the client output + * directory, so `dist/client` deploys as a static site. Replaces Nitro's `prerender.crawlLinks`. + */ +export function solidBasePrerenderPlugin( + sbConfig: SolidBaseResolvedConfig, + options: PrerenderOptions = {}, +): Plugin { + let root = process.cwd(); + let base = "/"; + + return { + name: "solidbase:prerender", + apply: "build", + configResolved(config) { + root = config.root; + base = config.base; + }, + buildApp: { + order: "post", + async handler(builder: ViteBuilder) { + const client = builder.environments.client; + const ssr = builder.environments.ssr; + if (!client || !ssr) return; // not an SSR start-mode build + + // Declaring a buildApp hook makes this plugin the build orchestrator as far as + // @solidjs/vite-plugin is concerned, so finish the app build here: client first + // (the server build reads its manifest), then everything else still unbuilt. + for (const env of [ + client, + ...Object.values(builder.environments).filter((e) => e !== client), + ]) { + if (!env.isBuilt) await builder.build(env); + } + + const clientOut = resolve(root, client.config.build.outDir); + const serverOut = resolve(root, ssr.config.build.outDir); + const serverEntry = join(serverOut, "server.js"); + + const origin = new URL( + options.origin ?? sbConfig.siteUrl ?? "http://localhost", + ).origin; + const index = + sbConfig.fileRoutes === false + ? [] + : await getRoutesIndex(root, sbConfig.fileRoutes?.dir); + const seeds = [ + ...new Set([ + "/", + ...index.map((e) => e.routePath), + ...(options.routes ?? []), + ]), + ]; + + // Rendering happens in a child process: the production server runtime keeps the + // event loop alive once imported, which would hang `vite build` after the hook. + const { written, failed } = await runWorker({ + serverEntry, + outDir: clientOut, + origin, + base, + seeds, + crawlLinks: options.crawlLinks ?? true, + notFound: options.notFound ?? true, + }); + + const log = client.logger; + log.info( + `[solidbase] prerendered ${written.length} page${written.length === 1 ? "" : "s"} into ${client.config.build.outDir}${(options.notFound ?? true) ? " (+ 404.html)" : ""}`, + ); + for (const { path, status } of failed) { + log.warn(`[solidbase] prerender skipped ${path} (HTTP ${status})`); + } + }, + }, + }; +} diff --git a/src/config/vite-plugin/virtual.ts b/src/config/vite-plugin/virtual.ts index cd3c0693..9221fb2b 100644 --- a/src/config/vite-plugin/virtual.ts +++ b/src/config/vite-plugin/virtual.ts @@ -1,5 +1,5 @@ import { readdir } from "node:fs/promises"; -import { parse } from "node:path"; +import { parse, relative, sep } from "node:path"; import { fileURLToPath } from "node:url"; import MagicString from "magic-string"; @@ -83,10 +83,13 @@ export async function transformMdxModule( code: string, id: string, solidBaseConfig: Partial>, + root: string, ) { const rootPath = process.env.PWD!; const modulePath = getMarkdownModulePath(id); + // Keyed like the route's `moduleUrl` (Vite-root-relative, posix) so the client finds it. + const pageDataKey = relative(root, modulePath).split(sep).join("/"); let modulePathLink = ""; if (solidBaseConfig.editPath && modulePath.startsWith(rootPath)) { @@ -114,7 +117,7 @@ export async function transformMdxModule( if (typeof window !== "undefined") { window.$$SolidBase_page_data ??= {}; - window.$$SolidBase_page_data["${modulePath}"] = data; + window.$$SolidBase_page_data[${JSON.stringify(pageDataKey)}] = data; } export const $$SolidBase_page_data = data; diff --git a/src/default-theme/Layout.tsx b/src/default-theme/Layout.tsx index 0753a70c..d01eece8 100644 --- a/src/default-theme/Layout.tsx +++ b/src/default-theme/Layout.tsx @@ -1,18 +1,17 @@ // @refresh reload import { Collapsible } from "@kobalte/core/collapsible"; import { Dialog } from "@kobalte/core/dialog"; -import { A } from "@solidjs/router"; +import { useLinkState } from "@solidjs/router"; +import { Dynamic } from "@solidjs/web"; import { createEffect, For, Match, - onCleanup, - onMount, + onSettled, type ParentProps, Show, Switch, } from "solid-js"; -import { Dynamic } from "solid-js/web"; import { useLocale, useThemeListener } from "../client/index.jsx"; import { usePreferredLanguage } from "../client/preferred-language.js"; @@ -70,10 +69,11 @@ function Layout(props: ParentProps) { const [preferredLanguage, setPreferredLanguage] = usePreferredLanguage(); - onMount(() => { + onSettled(() => { const toggles = document.querySelectorAll( 'input[type="checkbox"].sb-ts-js-toggle', ); + const cleanups: Array<() => void> = []; for (const toggle of Array.from(toggles)) { toggle.checked = preferredLanguage() === "ts"; @@ -82,21 +82,24 @@ function Layout(props: ParentProps) { } toggle.addEventListener("click", handleToggle); - - onCleanup(() => { - toggle.removeEventListener("click", handleToggle); - }); + cleanups.push(() => toggle.removeEventListener("click", handleToggle)); } + return () => { + for (const cleanup of cleanups) cleanup(); + }; }); - createEffect(() => { - const toggles = document.querySelectorAll( - 'input[type="checkbox"].sb-ts-js-toggle', - ); - for (const toggle of Array.from(toggles)) { - toggle.checked = preferredLanguage() === "ts"; - } - }); + createEffect( + () => preferredLanguage(), + (lang) => { + const toggles = document.querySelectorAll( + 'input[type="checkbox"].sb-ts-js-toggle', + ); + for (const toggle of Array.from(toggles)) { + toggle.checked = lang === "ts"; + } + }, + ); return ( <> @@ -217,16 +220,23 @@ function NavigationItem(props: NavigationItemProps) { {(item) => { const link = () => item().link; const prefix = () => props.prefix; + const href = () => + locale.applyPathPrefix( + `${prefix() === "/" ? "" : prefix()}${link() === "/" ? "" : link()}`, + ); + // Solid Router 2 has no : native anchors are claimed by the router. + const linkState = useLinkState(href, { end: true }); + const isActive = () => linkState.active(); return (
  • - setSidebarOpen(false)} > {item().title} @@ -257,7 +267,7 @@ function NavigationItem(props: NavigationItemProps) { )} - +
  • ); }} diff --git a/src/default-theme/components/Badges.tsx b/src/default-theme/components/Badges.tsx index ee1dfb21..76c2eac7 100644 --- a/src/default-theme/components/Badges.tsx +++ b/src/default-theme/components/Badges.tsx @@ -1,6 +1,6 @@ import { Badge as KBBadge } from "@kobalte/core/badge"; +import { Dynamic } from "@solidjs/web"; import { For, type ParentProps, Show } from "solid-js"; -import { Dynamic } from "solid-js/web"; import type { BadgeConfig } from "../frontmatter.js"; import type { diff --git a/src/default-theme/components/CopyPageLink.tsx b/src/default-theme/components/CopyPageLink.tsx index 6702889c..38acb484 100644 --- a/src/default-theme/components/CopyPageLink.tsx +++ b/src/default-theme/components/CopyPageLink.tsx @@ -1,5 +1,5 @@ +import { dynamic } from "@solidjs/web"; import { Show } from "solid-js"; -import { Dynamic } from "solid-js/web"; import Check from "~icons/ri/check-fill"; import CrossIcon from "~icons/ri/close-circle-line"; import CopyIcon from "~icons/ri/file-copy-line"; @@ -24,38 +24,38 @@ function getStateIcon(state: CopyPageState) { export default function CopyPageLink() { const text = useThemeText(); const { canCopy, copy, isCopying, isReady, state } = useCopyPageMarkdown(); + const StateIcon = dynamic(() => getStateIcon(state())); return ( ); })} - {props.withTsJsToggle === "true" && ( )} - +

    {(title, i) => ( - + )} - - ); - - if (!props.title) return tabs(); - - const [openTab, setOpenTab] = makePersisted>( - createSignal(tabNames![0]!), - { - name: `tab-group:${props.title}`, - sync: messageSync(new BroadcastChannel("tab-group")), - storage: cookieStorage.withOptions({ - expires: new Date(Date.now() + 3e10), - }), - }, + ); - - return tabs(openTab, setOpenTab); } if (props.type === "details") { diff --git a/src/default-theme/pace.ts b/src/default-theme/pace.ts index b5d098ca..09497cb3 100644 --- a/src/default-theme/pace.ts +++ b/src/default-theme/pace.ts @@ -13,14 +13,17 @@ export function usePace(options?: Partial) { let paceTimeoutId: number | undefined; - createEffect(() => { - if (isRouting()) { - paceTimeoutId = window.setTimeout(() => BProgress.start(), 100); - } else { - clearTimeout(paceTimeoutId); - BProgress.done(); - } - }); + createEffect( + () => isRouting(), + (routing) => { + if (routing) { + paceTimeoutId = window.setTimeout(() => BProgress.start(), 100); + } else { + clearTimeout(paceTimeoutId); + BProgress.done(); + } + }, + ); onCleanup(() => { clearTimeout(paceTimeoutId); diff --git a/src/icons.d.ts b/src/icons.d.ts new file mode 100644 index 00000000..7e811911 --- /dev/null +++ b/src/icons.d.ts @@ -0,0 +1,15 @@ +// unplugin-icons ships `types/solid` typed against solid-js 1.x, whose `ComponentProps`/`JSX` +// no longer exist in Solid 2 (they live in the renderer package). Declare the virtual modules here. +declare module "~icons/*" { + import type { ComponentProps, JSX } from "@solidjs/web"; + + const component: (props: ComponentProps<"svg">) => JSX.Element; + export default component; +} + +declare module "virtual:icons/*" { + import type { ComponentProps, JSX } from "@solidjs/web"; + + const component: (props: ComponentProps<"svg">) => JSX.Element; + export default component; +} diff --git a/src/mdx.ts b/src/mdx.ts index c63df00b..c81fa63f 100644 --- a/src/mdx.ts +++ b/src/mdx.ts @@ -1,12 +1,12 @@ +import type { JSX } from "@solidjs/web"; +import { Dynamic } from "@solidjs/web"; import { createComponent, createContext, - type JSX, - mergeProps, + merge, type ParentProps, useContext, } from "solid-js"; -import { Dynamic } from "solid-js/web"; const HTMLElements = [ "html", @@ -378,7 +378,7 @@ export const MDXContext = createContext( [...HTMLElements, ...SVGElements.keys()].map((el) => [ el, (_props: any) => { - const props = mergeProps(_props, { + const props = merge(_props, { component: el, }); return createComponent(Dynamic, props); @@ -395,7 +395,7 @@ export const MDXProvider = ( }>, ) => { const context = useContext(MDXContext); - return createComponent(MDXContext.Provider, { + return createComponent(MDXContext, { get value() { return { ...context, diff --git a/tests/client/config.test.ts b/tests/client/config.test.ts index db710140..150c4a03 100644 --- a/tests/client/config.test.ts +++ b/tests/client/config.test.ts @@ -1,5 +1,6 @@ import { createRoot } from "solid-js"; import { afterEach, describe, expect, it, vi } from "vitest"; +import { mount } from "../helpers/solid.js"; const NpmIcon = () => null; const pathname = vi.fn<() => string>(() => "/"); @@ -66,12 +67,14 @@ describe("route config helper", () => { createRoot((dispose) => { let config: ReturnType> | undefined; - SolidBaseRoutesContextProvider({ - get children() { - config = useRouteSolidBaseConfig(); - return null; - }, - } as any); + mount( + SolidBaseRoutesContextProvider({ + get children() { + config = useRouteSolidBaseConfig(); + return null; + }, + } as any), + ); expect(config?.()).toMatchObject({ title: "Docs", @@ -136,12 +139,14 @@ describe("route config helper", () => { createRoot((dispose) => { let config: ReturnType> | undefined; - SolidBaseRoutesContextProvider({ - get children() { - config = useRouteSolidBaseConfig(); - return null; - }, - } as any); + mount( + SolidBaseRoutesContextProvider({ + get children() { + config = useRouteSolidBaseConfig(); + return null; + }, + } as any), + ); expect(config?.()).toMatchObject({ title: "Docs v1", diff --git a/tests/client/llms.test.ts b/tests/client/llms.test.ts index be77b42d..fab1a438 100644 --- a/tests/client/llms.test.ts +++ b/tests/client/llms.test.ts @@ -144,13 +144,15 @@ describe("llms client helpers", () => { return dispose; }); - await flushMicrotasks(); - + // Not ready until the client settles (onSettled); copying is a no-op before that. expect(api?.canCopy()).toBe(true); expect(api?.isReady()).toBe(false); await expect(api?.copy()).resolves.toBe(false); expect((globalThis as any).fetch).not.toHaveBeenCalled(); + await flushMicrotasks(); + expect(api?.isReady()).toBe(true); + dispose(); }); @@ -180,13 +182,7 @@ describe("llms client helpers", () => { }, }; - vi.doMock("solid-js", async () => - vi.importActual( - "solid-js/dist/solid.cjs", - ), - ); - - const { render } = await import("solid-js/web/dist/web.cjs"); + const { render } = await import("@solidjs/web"); const { clearPageMarkdownCache, useCopyPageMarkdown } = await import( "../../src/client/page-markdown.ts" ); @@ -216,12 +212,7 @@ describe("llms client helpers", () => { it("resets copy feedback when navigation changes mid-copy", async () => { setSolidBaseConfig({ llms: true, themeConfig: {} }); - vi.doMock("solid-js", async () => - vi.importActual( - "solid-js/dist/solid.cjs", - ), - ); - const { createSignal } = await import("solid-js"); + const { createSignal, flush } = await import("solid-js"); const [pathname, setPathname] = createSignal("/guide/getting-started"); useLocation.mockReturnValue({ get pathname() { @@ -254,7 +245,7 @@ describe("llms client helpers", () => { }, }; - const { render } = await import("solid-js/web/dist/web.cjs"); + const { render } = await import("@solidjs/web"); const { clearPageMarkdownCache, useCopyPageMarkdown } = await import( "../../src/client/page-markdown.ts" ); @@ -276,6 +267,7 @@ describe("llms client helpers", () => { expect(api?.isReady()).toBe(true); const copyPromise = api?.copy(); + flush(); // Solid 2 batches writes until the microtask flush expect(api?.isCopying()).toBe(true); setPathname("/guide/customization/extending-themes"); diff --git a/tests/client/locale.test.ts b/tests/client/locale.test.ts index b6bb594e..1176dfbf 100644 --- a/tests/client/locale.test.ts +++ b/tests/client/locale.test.ts @@ -1,7 +1,8 @@ // @vitest-environment jsdom -import { createRoot } from "solid-js"; +import { createRoot, flush } from "solid-js"; import { afterEach, describe, expect, it, vi } from "vitest"; +import { mount } from "../helpers/solid.js"; const pathname = vi.fn<() => string>(() => "/fr/guide/install"); const navigate = vi.fn<(to: string) => Promise>(() => Promise.resolve()); @@ -30,11 +31,10 @@ vi.mock("solid-js", async () => { const actual = await vi.importActual("solid-js"); return { ...actual, - startTransition: (fn: () => void) => Promise.resolve(fn()), }; }); -vi.mock("solid-js/web", () => ({ +vi.mock("@solidjs/web", () => ({ getRequestEvent: vi.fn(), isServer: false, })); @@ -68,19 +68,23 @@ describe("locale client helpers", () => { "../../src/client/routes.ts" ); + let localeApi: ReturnType | undefined; + let disposeRoot: (() => void) | undefined; createRoot((dispose) => { let value: ReturnType | undefined; - SolidBaseRoutesContextProvider({ - get children() { - return LocaleContextProvider({ - get children() { - value = useLocale(); - return null; - }, - } as any); - }, - } as any); + mount( + SolidBaseRoutesContextProvider({ + get children() { + return LocaleContextProvider({ + get children() { + value = useLocale(); + return null; + }, + } as any); + }, + } as any), + ); expect(value?.currentLocale().code).toBe("fr"); expect(value?.routePath()).toBe("/guide/install"); @@ -88,11 +92,14 @@ describe("locale client helpers", () => { expect(getLocaleLink(value!.locales[0]!)).toBe("/"); expect(getLocaleLink(value!.locales[1]!)).toBe("/fr/"); - void value?.setLocale(value!.locales[0]!); - dispose(); + localeApi = value; + disposeRoot = dispose; }); - await Promise.resolve(); + // Actions must be called from an imperative scope (an event handler in the app), not inside the root. + await localeApi?.setLocale(localeApi!.locales[0]!); + flush(); // onSettled queues the write behind the action's effects + disposeRoot?.(); expect(navigate).toHaveBeenCalledWith("/guide/install"); expect(document.documentElement.lang).toBe("en-US"); }); @@ -151,19 +158,23 @@ describe("locale client helpers", () => { "../../src/client/routes.ts" ); + let localeApi: ReturnType | undefined; + let disposeRoot: (() => void) | undefined; createRoot((dispose) => { let value: ReturnType | undefined; - SolidBaseRoutesContextProvider({ - get children() { - return LocaleContextProvider({ - get children() { - value = useLocale(); - return null; - }, - } as any); - }, - } as any); + mount( + SolidBaseRoutesContextProvider({ + get children() { + return LocaleContextProvider({ + get children() { + value = useLocale(); + return null; + }, + } as any); + }, + } as any), + ); expect(value?.currentLocale().code).toBe("fr-FR"); expect(value?.routePath()).toBe("/about"); @@ -177,11 +188,14 @@ describe("locale client helpers", () => { expect(value?.applyPathPrefix("/about")).toBe("/router/fr/about"); expect(value?.applyPathPrefix("/router/fr")).toBe("/router/fr"); - void value?.setLocale(value!.locales[0]!); - dispose(); + localeApi = value; + disposeRoot = dispose; }); - await Promise.resolve(); + // Actions must be called from an imperative scope (an event handler in the app), not inside the root. + await localeApi?.setLocale(localeApi!.locales[0]!); + flush(); // onSettled queues the write behind the action's effects + disposeRoot?.(); expect(navigate).toHaveBeenCalledWith("/router/about"); expect(document.documentElement.lang).toBe("en-US"); }); @@ -235,16 +249,18 @@ describe("locale client helpers", () => { createRoot((dispose) => { let value: ReturnType | undefined; - SolidBaseRoutesContextProvider({ - get children() { - return LocaleContextProvider({ - get children() { - value = useLocale(); - return null; - }, - } as any); - }, - } as any); + mount( + SolidBaseRoutesContextProvider({ + get children() { + return LocaleContextProvider({ + get children() { + value = useLocale(); + return null; + }, + } as any); + }, + } as any), + ); const rootLocales = value?.locales ?? []; expect(rootLocales.map((locale) => locale.config.label)).toEqual([ @@ -259,16 +275,18 @@ describe("locale client helpers", () => { createRoot((dispose) => { let value: ReturnType | undefined; - SolidBaseRoutesContextProvider({ - get children() { - return LocaleContextProvider({ - get children() { - value = useLocale(); - return null; - }, - } as any); - }, - } as any); + mount( + SolidBaseRoutesContextProvider({ + get children() { + return LocaleContextProvider({ + get children() { + value = useLocale(); + return null; + }, + } as any); + }, + } as any), + ); const routerLocales = value?.locales ?? []; expect(routerLocales.map((locale) => locale.config.label)).toEqual([ diff --git a/tests/client/page-data.test.ts b/tests/client/page-data.test.ts index 154575e6..00abc1b7 100644 --- a/tests/client/page-data.test.ts +++ b/tests/client/page-data.test.ts @@ -2,25 +2,57 @@ import { createRoot } from "solid-js"; import { afterEach, describe, expect, it, vi } from "vitest"; +import { mount } from "../helpers/solid.js"; const useCurrentMatches = vi.fn(); vi.mock("@solidjs/router", () => ({ - useCurrentMatches, + // Solid Router 2: useRouteMatches() returns an accessor of the current matches + useRouteMatches: () => () => useCurrentMatches(), })); +// Solid's hydration re-runs async memos with the global Promise swapped for one that never +// settles (`subFetch`), restoring it once the compute returns. +const hydration = vi.hoisted(() => { + class StubPromise { + // biome-ignore lint/suspicious/noThenProperty: mirrors Solid's never-settling MockPromise + then() { + return new StubPromise(); + } + catch() { + return new StubPromise(); + } + finally() { + return new StubPromise(); + } + static resolve() { + return new StubPromise(); + } + } + return { stubPromise: false, StubPromise, NativePromise: Promise }; +}); + vi.mock("solid-js", async () => { const actual = await vi.importActual("solid-js"); return { ...actual, - createResource: (source: any, fetcher: (value: any) => Promise) => { - let value: any; - Promise.resolve(typeof source === "function" ? source() : source) - .then((resolved) => fetcher(resolved)) - .then((resolved) => { - value = resolved; - }); - return [() => value] as const; + // Solid 2 replaces createResource with async memos; the server build used under vitest + // computes memos once, so shim the async case to resolve into a plain accessor. + createMemo: (compute: () => unknown) => { + let value: unknown; + let result: unknown; + if (hydration.stubPromise) { + globalThis.Promise = hydration.StubPromise as any; + try { + result = compute(); + } finally { + globalThis.Promise = hydration.NativePromise; + } + } else result = compute(); + if (result instanceof hydration.NativePromise) + result.then((resolved) => (value = resolved)); + else value = result; + return () => value; }, }; }); @@ -53,13 +85,15 @@ describe("page data helpers", () => { let frontmatter: ReturnType> | undefined; const dispose = createRoot((dispose) => { - CurrentPageDataProvider({ - get children() { - _pageData = useCurrentPageData(); - frontmatter = useFrontmatter(); - return null; - }, - } as any); + mount( + CurrentPageDataProvider({ + get children() { + _pageData = useCurrentPageData(); + frontmatter = useFrontmatter(); + return null; + }, + } as any), + ); return dispose; }); @@ -74,4 +108,85 @@ describe("page data helpers", () => { }); dispose(); }); + + const readFrontmatter = async ( + CurrentPageDataProvider: any, + useFrontmatter: () => () => any, + ) => { + let frontmatter: (() => any) | undefined; + const dispose = createRoot((dispose) => { + mount( + CurrentPageDataProvider({ + get children() { + frontmatter = useFrontmatter(); + return null; + }, + }), + ); + return dispose; + }); + for (let i = 0; i < 4; i++) await Promise.resolve(); + const value = frontmatter?.(); + dispose(); + return value; + }; + + it("reads lazy routes from the window cache by moduleUrl", async () => { + const preload = vi.fn(); + useCurrentMatches.mockReturnValue([ + { + route: { + component: { + preload, + moduleUrl: + "src/routes/page.mdx?pick=$css&pick=$$SolidBase_page_data", + }, + }, + }, + ]); + (window as any).$$SolidBase_page_data = { + "src/routes/page.mdx": { frontmatter: { title: "Lazy" } }, + }; + + const { CurrentPageDataProvider, useFrontmatter } = await import( + "../../src/client/page-data.ts" + ); + + expect( + await readFrontmatter(CurrentPageDataProvider, useFrontmatter), + ).toEqual({ title: "Lazy" }); + expect(preload).not.toHaveBeenCalled(); + }); + + it("does not preload lazy routes under the hydration Promise stub", async () => { + // A lazy() route as Vite builds it: the load chains off the global Promise and is cached. + let load: Promise | undefined; + const preload = vi.fn(() => { + load ??= Promise.resolve().then(() => ({ + $$SolidBase_page_data: { frontmatter: { title: "Loaded" } }, + })); + return load; + }); + useCurrentMatches.mockReturnValue([ + { + route: { + component: { preload, moduleUrl: "src/routes/app.tsx?pick=default" }, + }, + }, + ]); + + const { CurrentPageDataProvider, useFrontmatter } = await import( + "../../src/client/page-data.ts" + ); + + hydration.stubPromise = true; + const hydrated = readFrontmatter(CurrentPageDataProvider, useFrontmatter); + hydration.stubPromise = false; + await hydrated; + + // Navigating back to the route reuses the cached load, which must settle. + expect( + await readFrontmatter(CurrentPageDataProvider, useFrontmatter), + ).toEqual({ title: "Loaded" }); + }); }); diff --git a/tests/client/routes.test.ts b/tests/client/routes.test.ts index b8e55bf4..a8b3f1c4 100644 --- a/tests/client/routes.test.ts +++ b/tests/client/routes.test.ts @@ -1,5 +1,6 @@ import { createRoot } from "solid-js"; import { afterEach, describe, expect, it, vi } from "vitest"; +import { mount } from "../helpers/solid.js"; const pathname = vi.fn<() => string>(() => "/router/fr"); @@ -70,12 +71,14 @@ describe("solidbase route client helpers", () => { createRoot((dispose) => { let current: ReturnType | undefined; - SolidBaseRoutesContextProvider({ - get children() { - current = useSolidBaseRoute(); - return null; - }, - } as any); + mount( + SolidBaseRoutesContextProvider({ + get children() { + current = useSolidBaseRoute(); + return null; + }, + } as any), + ); expect(current?.()).toEqual({ project: "router", @@ -96,12 +99,14 @@ describe("solidbase route client helpers", () => { createRoot((dispose) => { let helpers: ReturnType | undefined; - SolidBaseRoutesContextProvider({ - get children() { - helpers = useSolidBaseRoutes(); - return null; - }, - } as any); + mount( + SolidBaseRoutesContextProvider({ + get children() { + helpers = useSolidBaseRoutes(); + return null; + }, + } as any), + ); expect(helpers?.options("locale").map((option) => option.name)).toEqual([ "en", @@ -127,12 +132,14 @@ describe("solidbase route client helpers", () => { createRoot((dispose) => { let helpers: ReturnType | undefined; - SolidBaseRoutesContextProvider({ - get children() { - helpers = useSolidBaseRoutes(); - return null; - }, - } as any); + mount( + SolidBaseRoutesContextProvider({ + get children() { + helpers = useSolidBaseRoutes(); + return null; + }, + } as any), + ); expect(helpers?.current()).toEqual({ project: "solid", @@ -151,12 +158,14 @@ describe("solidbase route client helpers", () => { createRoot((dispose) => { let helpers: ReturnType | undefined; - SolidBaseRoutesContextProvider({ - get children() { - helpers = useSolidBaseRoutes(); - return null; - }, - } as any); + mount( + SolidBaseRoutesContextProvider({ + get children() { + helpers = useSolidBaseRoutes(); + return null; + }, + } as any), + ); expect(helpers?.current()).toEqual({ project: "router", diff --git a/tests/client/sidebar.test.ts b/tests/client/sidebar.test.ts index 3f98cec4..a3a965bd 100644 --- a/tests/client/sidebar.test.ts +++ b/tests/client/sidebar.test.ts @@ -1,5 +1,6 @@ import { createRoot } from "solid-js"; import { afterEach, describe, expect, it, vi } from "vitest"; +import { mount } from "../helpers/solid.js"; const pathname = vi.fn<() => string>(() => "/guide/install"); const routePath = vi.fn<() => string>(() => "/guide/install"); @@ -27,6 +28,17 @@ describe("client sidebar helpers", () => { vi.resetModules(); }); + it("reports a missing SidebarProvider with its own message", async () => { + const { useSidebar } = await import("../../src/client/sidebar.ts"); + + createRoot((dispose) => { + expect(() => useSidebar()).toThrow( + "useSidebar must be called underneath a SidebarProvider", + ); + dispose(); + }); + }); + it("selects the longest matching sidebar prefix", async () => { const { SidebarProvider, useSidebar } = await import( "../../src/client/sidebar.ts" @@ -34,16 +46,18 @@ describe("client sidebar helpers", () => { createRoot((dispose) => { let value: ReturnType> | undefined; - SidebarProvider({ - config: { - "/guide": [{ title: "Guide", link: "/intro" }], - "/guide/install": [{ title: "Install", link: "/" }], - }, - get children() { - value = useSidebar()(); - return null; - }, - } as any); + mount( + SidebarProvider({ + config: { + "/guide": [{ title: "Guide", link: "/intro" }], + "/guide/install": [{ title: "Install", link: "/" }], + }, + get children() { + value = useSidebar()(); + return null; + }, + } as any), + ); expect(value).toEqual({ prefix: "/guide/install", @@ -63,25 +77,27 @@ describe("client sidebar helpers", () => { createRoot((dispose) => { let value: ReturnType | undefined; - SidebarProvider({ - config: { - "/guide": [ - { title: "Intro", link: "/intro" }, - { - title: "Section", - base: "/nested", - items: [ - { title: "Install", link: "/install" }, - { title: "External", link: "https://example.com" }, - ], - }, - ], - }, - get children() { - value = usePrevNext() as any; - return null; - }, - } as any); + mount( + SidebarProvider({ + config: { + "/guide": [ + { title: "Intro", link: "/intro" }, + { + title: "Section", + base: "/nested", + items: [ + { title: "Install", link: "/install" }, + { title: "External", link: "https://example.com" }, + ], + }, + ], + }, + get children() { + value = usePrevNext() as any; + return null; + }, + } as any), + ); expect(value).toBeDefined(); expect(value!.prevLink()).toMatchObject({ @@ -108,18 +124,20 @@ describe("client sidebar helpers", () => { createRoot((dispose) => { let value: ReturnType> | undefined; - SidebarProvider({ - config: { - "/guide": { - title: "Guide", - items: [{ title: "Intro", link: "/intro" }], + mount( + SidebarProvider({ + config: { + "/guide": { + title: "Guide", + items: [{ title: "Intro", link: "/intro" }], + }, + }, + get children() { + value = useSidebar()(); + return null; }, - }, - get children() { - value = useSidebar()(); - return null; - }, - } as any); + } as any), + ); expect(value).toEqual({ prefix: "/guide", diff --git a/tests/client/theme.test.ts b/tests/client/theme.test.ts index 57178820..1abfc61c 100644 --- a/tests/client/theme.test.ts +++ b/tests/client/theme.test.ts @@ -1,10 +1,11 @@ // @vitest-environment jsdom -import { createRoot } from "solid-js"; +import { createRoot, flush } from "solid-js"; import { afterEach, describe, expect, it, vi } from "vitest"; +import { mount } from "../helpers/solid.js"; const prefersDarkValue = vi.fn<() => boolean>(() => false); -const useHead = vi.fn(); +const Script = vi.fn(() => null); vi.mock("@solid-primitives/media", () => ({ usePrefersDark: () => prefersDarkValue, @@ -14,16 +15,17 @@ vi.mock("solid-js", async () => { const actual = await vi.importActual("solid-js"); return { ...actual, - createEffect: (fn: () => void) => fn(), - createUniqueId: () => "theme-script", + // Solid 2 effects are split: compute -> apply. Run both synchronously for the test. + createEffect: (compute: () => unknown, apply: (value: unknown) => void) => + apply(compute()), }; }); vi.mock("@solidjs/meta", () => ({ - useHead, + Script, })); -vi.mock("solid-js/web", () => ({ +vi.mock("@solidjs/web", () => ({ getRequestEvent: vi.fn(), isServer: false, })); @@ -36,7 +38,7 @@ describe("theme client helpers", () => { afterEach(async () => { prefersDarkValue.mockReset(); prefersDarkValue.mockReturnValue(false); - useHead.mockReset(); + Script.mockClear(); vi.resetModules(); // biome-ignore lint/suspicious/noDocumentCookie: test document.cookie = ""; @@ -56,6 +58,7 @@ describe("theme client helpers", () => { expect(getThemeVariant()).toBe("system"); setTheme("light"); + flush(); // Solid 2 batches writes until the microtask flush expect(getRawTheme()).toBe("light"); expect(getThemeVariant()).toBe("light"); }); @@ -65,13 +68,16 @@ describe("theme client helpers", () => { // biome-ignore lint/suspicious/noDocumentCookie: test document.cookie = "theme=dark"; - const { setTheme, useThemeListener } = await import( + const { setTheme, ThemeCookieScript, useThemeListener } = await import( "../../src/client/theme.ts" ); + // Solid 2: reactive writes are not allowed inside an owned scope (createRoot), so set first. + setTheme("dark"); + flush(); const dispose = createRoot((dispose) => { - setTheme("dark"); useThemeListener(); + mount(ThemeCookieScript()); return dispose; }); @@ -80,12 +86,9 @@ describe("theme client helpers", () => { expect(setAttribute).toHaveBeenCalledWith("data-theme", "dark"); expect(document.cookie).toContain("theme=dark"); - expect(useHead).toHaveBeenCalledWith( + expect(Script).toHaveBeenCalledWith( expect.objectContaining({ - tag: "script", - props: expect.objectContaining({ - children: "window.__theme = document.cookie", - }), + children: "window.__theme = document.cookie", }), ); setAttribute.mockRestore(); diff --git a/tests/config/index.test.ts b/tests/config/index.test.ts index 6b2292a5..e31988ff 100644 --- a/tests/config/index.test.ts +++ b/tests/config/index.test.ts @@ -57,7 +57,7 @@ describe("createSolidBase", () => { }); const plugins = solidBase.plugin({ title: "Docs", llms: true }); - expect(config.extensions).toEqual(["tsx", "md", "mdx"]); + expect(config.extensions).toEqual(["tsx", "md", ".md", ".mdx"]); expect(config.ssr).toBe(true); expect(theme.config).toHaveBeenCalledWith( expect.objectContaining({ @@ -69,7 +69,15 @@ describe("createSolidBase", () => { issueAutolink: false, }), ); - expect(plugins).toEqual(["mdx-plugin", "solidbase-plugin", "theme-plugin"]); + // File-system routing plugins (filesystem-routing) sit between core and theme plugins. + expect(plugins.filter((p: unknown) => typeof p === "string")).toEqual([ + "mdx-plugin", + "solidbase-plugin", + "theme-plugin", + ]); + expect( + plugins.some((p: any) => p?.name?.startsWith("filesystem-routing")), + ).toBe(true); expect(solidBaseMdx).toHaveBeenCalledWith( expect.objectContaining({ title: "Docs", diff --git a/tests/config/llms-index.test.ts b/tests/config/llms-index.test.ts index c4e57365..aceab38c 100644 --- a/tests/config/llms-index.test.ts +++ b/tests/config/llms-index.test.ts @@ -27,6 +27,36 @@ const config = { } as any; describe("getLlmDocuments", () => { + it("uses configured route directories", async () => { + const root = await mkdtemp(join(tmpdir(), "solidbase-llms-custom-")); + const dir = join(root, "pages"); + await mkdir(dir); + await writeFile( + join(dir, "guide.md"), + "---\ntitle: Custom Guide\n---\nCustom content.", + ); + for (const routesDir of ["pages", dir]) { + const documents = await getLlmDocuments(root, { + ...config, + fileRoutes: { dir: routesDir }, + }); + expect(documents).toHaveLength(1); + expect(documents[0]).toMatchObject({ + routePath: "/guide", + title: "Custom Guide", + }); + } + }); + + it("does not index default markdown when file routes are disabled", async () => { + expect( + await getLlmDocuments(fixtureSiteRoot, { + ...config, + fileRoutes: false, + }), + ).toEqual([]); + }); + it("collects transformed markdown documents and skips excluded files", async () => { const documents = await getLlmDocuments(fixtureSiteRoot, config); diff --git a/tests/config/routes-index.test.ts b/tests/config/routes-index.test.ts index acfd926e..abe853eb 100644 --- a/tests/config/routes-index.test.ts +++ b/tests/config/routes-index.test.ts @@ -12,6 +12,33 @@ import { import { fixtureSiteRoot } from "../helpers/fixtures.ts"; describe("getRoutesIndex", () => { + it("indexes relative and absolute custom route directories", async () => { + const root = await mkdtemp(join(tmpdir(), "solidbase-routes-custom-")); + const dir = join(root, "pages"); + await mkdir(dir); + await writeFile(join(dir, "index.md"), "Home"); + await writeFile(join(dir, "guide.mdx"), "Guide"); + + for (const routesDir of ["pages", dir]) { + const routes = await getRoutesIndex(root, routesDir); + expect(routes.map((route) => route.routePath)).toEqual(["/guide", "/"]); + } + }); + + it("returns no routes when the routes directory is missing", async () => { + const root = await mkdtemp(join(tmpdir(), "solidbase-routes-missing-")); + expect(await getRoutesIndex(root)).toEqual([]); + expect(await getRoutesIndex(root, "pages")).toEqual([]); + }); + + it("preserves errors other than a missing directory", async () => { + const root = await mkdtemp(join(tmpdir(), "solidbase-routes-error-")); + await writeFile(join(root, "pages"), "Not a directory"); + await expect(getRoutesIndex(root, "pages")).rejects.toMatchObject({ + code: "ENOTDIR", + }); + }); + it("indexes markdown routes with normalized paths and frontmatter", async () => { const routes = await getRoutesIndex(fixtureSiteRoot); diff --git a/tests/config/sitemap-index.test.ts b/tests/config/sitemap-index.test.ts index 4abb5570..16a779b9 100644 --- a/tests/config/sitemap-index.test.ts +++ b/tests/config/sitemap-index.test.ts @@ -1,8 +1,16 @@ +import { mkdir, mkdtemp, writeFile } from "node:fs/promises"; +import { tmpdir } from "node:os"; +import { join } from "node:path"; import { describe, expect, it } from "vitest"; -import { buildSitemapEntries } from "../../src/config/sitemap-index.ts"; +import { + buildSitemapEntries, + getSitemapEntries, +} from "../../src/config/sitemap-index.ts"; +import { fixtureSiteRoot } from "../helpers/fixtures.ts"; const config = { + sitemap: true, lang: "en-US", locales: { root: { label: "English", lang: "en-US" }, @@ -10,6 +18,37 @@ const config = { }, } as any; +describe("getSitemapEntries", () => { + it("uses configured route directories", async () => { + const root = await mkdtemp(join(tmpdir(), "solidbase-sitemap-custom-")); + const dir = join(root, "pages"); + await mkdir(dir); + await writeFile(join(dir, "guide.md"), "Custom content."); + for (const routesDir of ["pages", dir]) { + const entries = await getSitemapEntries(root, { + ...config, + siteUrl: "https://example.com", + fileRoutes: { dir: routesDir }, + }); + expect(entries).toHaveLength(1); + expect(entries[0]).toMatchObject({ + routePath: "/guide", + url: "https://example.com/guide", + }); + } + }); + + it("does not index default markdown when file routes are disabled", async () => { + expect( + await getSitemapEntries(fixtureSiteRoot, { + ...config, + siteUrl: "https://example.com", + fileRoutes: false, + }), + ).toEqual([]); + }); +}); + describe("buildSitemapEntries", () => { it("emits absolute canonical URLs and localized alternates", () => { const entries = buildSitemapEntries("https://example.com", config, [ diff --git a/tests/config/virtual.test.ts b/tests/config/virtual.test.ts index 0ddf0f22..b8ba6848 100644 --- a/tests/config/virtual.test.ts +++ b/tests/config/virtual.test.ts @@ -1,7 +1,7 @@ import { afterEach, describe, expect, it } from "vitest"; import { transformMdxModule } from "../../src/config/vite-plugin/virtual.ts"; -import { routeFixturePath } from "../helpers/fixtures.ts"; +import { fixtureSiteRoot, routeFixturePath } from "../helpers/fixtures.ts"; describe("transformMdxModule", () => { const previousPwd = process.env.PWD; @@ -20,12 +20,17 @@ describe("transformMdxModule", () => { markdown: {}, editPath: (file: string) => `https://example.com/edit/${file}`, }, + fixtureSiteRoot, ); expect(code).toContain("https://example.com/edit/"); expect(code).toContain( "/tests/fixtures/src/routes/guide/getting-started.mdx", ); + // keyed like the route's moduleUrl: relative to the Vite root + expect(code).toContain( + 'window.$$SolidBase_page_data["src/routes/guide/getting-started.mdx"]', + ); expect(code).not.toContain("llmText:"); }); @@ -35,6 +40,7 @@ describe("transformMdxModule", () => { "export default function Page() {}", markdownPath, { markdown: {} }, + fixtureSiteRoot, ); expect(code).toContain("frontmatter:"); diff --git a/tests/default-theme/badges.test.tsx b/tests/default-theme/badges.test.tsx index bdf1117f..46cd3038 100644 --- a/tests/default-theme/badges.test.tsx +++ b/tests/default-theme/badges.test.tsx @@ -47,7 +47,7 @@ describe("PageBadges", () => { >, })); - const { renderToString } = await import("solid-js/web"); + const { renderToString } = await import("@solidjs/web"); const { default: Badges } = await import( "../../src/default-theme/components/Badges.tsx" ); @@ -84,7 +84,7 @@ describe("PageBadges", () => { >, })); - const { renderToString } = await import("solid-js/web"); + const { renderToString } = await import("@solidjs/web"); const { default: Badges } = await import( "../../src/default-theme/components/Badges.tsx" ); diff --git a/tests/default-theme/preview.test.ts b/tests/default-theme/preview.test.ts index b3c0f1de..1d0b430f 100644 --- a/tests/default-theme/preview.test.ts +++ b/tests/default-theme/preview.test.ts @@ -25,7 +25,7 @@ async function loadPreviewComponents() { const outdir = await mkdtemp(join(tmpdir(), "solidbase-preview-test-")); tempDirs.push(outdir); - const [babelCore, solidPreset, typescriptPreset] = await Promise.all([ + const [babelCore, solidBabelPlugin, esbuild] = await Promise.all([ import( pathToFileURL( await resolvePnpmPackagePath( @@ -37,19 +37,12 @@ async function loadPreviewComponents() { import( pathToFileURL( await resolvePnpmPackagePath( - "babel-preset-solid@", - "node_modules/babel-preset-solid/index.js", - ), - ).href - ), - import( - pathToFileURL( - await resolvePnpmPackagePath( - "@babel+preset-typescript@", - "node_modules/@babel/preset-typescript/lib/index.js", + "@solidjs+babel-plugin@", + "node_modules/@solidjs/babel-plugin/index.js", ), ).href ), + import("esbuild"), ]); const entryPath = resolve( @@ -57,22 +50,24 @@ async function loadPreviewComponents() { "../../src/default-theme/components/Preview.tsx", ); const source = await readFile(entryPath, "utf8"); - const transformed = await babelCore.transformAsync( + // esbuild strips the TypeScript (JSX preserved); the Solid babel plugin then compiles the JSX. + const stripped = await esbuild.transform( source.replace( 'import styles from "../mdx-components.module.css";', "const styles = new Proxy({}, { get: (_, key) => String(key) });", ), - { - filename: entryPath, - babelrc: false, - configFile: false, - sourceMaps: false, - presets: [ - [typescriptPreset.default, { isTSX: true, allExtensions: true }], - [solidPreset.default, { generate: "ssr", hydratable: false }], - ], - }, + { loader: "tsx", jsx: "preserve", format: "esm", target: "esnext" }, ); + const transformed = await babelCore.transformAsync(stripped.code, { + filename: entryPath, + babelrc: false, + configFile: false, + sourceMaps: false, + parserOpts: { plugins: ["jsx"] }, + plugins: [ + [solidBabelPlugin.default, { generate: "ssr", hydratable: false }], + ], + }); if (!transformed?.code) { throw new Error("Failed to transform Preview.tsx for test runtime"); @@ -94,7 +89,7 @@ describe("default theme preview components", () => { }); it("renders a preview-only shell with a stage", async () => { - const { renderToString } = await import("solid-js/web"); + const { renderToString } = await import("@solidjs/web"); const { Preview, PreviewStage } = await loadPreviewComponents(); const html = renderToString(() => @@ -114,7 +109,7 @@ describe("default theme preview components", () => { }); it("renders a two-panel shell without altering panel content", async () => { - const { renderToString } = await import("solid-js/web"); + const { renderToString } = await import("@solidjs/web"); const { Preview, PreviewPanel, PreviewStage } = await loadPreviewComponents(); diff --git a/tests/helpers/solid.ts b/tests/helpers/solid.ts new file mode 100644 index 00000000..14e1f5e1 --- /dev/null +++ b/tests/helpers/solid.ts @@ -0,0 +1,10 @@ +/** + * Solid 2 components return lazy JSX (a thunk evaluated by the renderer). Tests that call a + * component/provider directly must evaluate that thunk for its children to run. + */ +export function mount(jsx: T): unknown { + let value: unknown = jsx; + while (typeof value === "function") value = (value as () => unknown)(); + if (Array.isArray(value)) return value.map(mount); + return value; +} diff --git a/tsconfig.json b/tsconfig.json index 93694fdf..5a11bc34 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -11,14 +11,14 @@ "noFallthroughCasesInSwitch": false, "isolatedModules": true, "jsx": "preserve", - "jsxImportSource": "solid-js", + "jsxImportSource": "@solidjs/web", "resolveJsonModule": true, "skipLibCheck": true, "strict": true, "declaration": true, "sourceMap": true, "lib": ["dom", "esnext"], - "types": ["solid-js", "vite/client", "unplugin-icons/types/solid"], + "types": ["solid-js", "vite/client"], "rootDir": "./src", "outDir": "./dist" }, diff --git a/vitest.config.ts b/vitest.config.ts index 830a688f..81eefe93 100644 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -1,17 +1,44 @@ import { resolve } from "node:path"; import { defineConfig } from "vitest/config"; +const alias = { + "virtual:solidbase/config": resolve( + __dirname, + "tests/mocks/virtual-solidbase-config.ts", + ), +}; + +// Tests that render on the client. Solid 2 ships separate server/browser builds selected by +// package export conditions, so these run in a project that resolves the "browser" condition. +const jsdomTests = [ + "tests/client/llms.test.ts", + "tests/client/locale.test.ts", + "tests/client/page-data.test.ts", + "tests/client/theme.test.ts", +]; + export default defineConfig({ - resolve: { - alias: { - "virtual:solidbase/config": resolve( - __dirname, - "tests/mocks/virtual-solidbase-config.ts", - ), - }, - }, + resolve: { alias }, test: { - environment: "node", - include: ["tests/**/*.test.ts"], + projects: [ + { + extends: true, + test: { + name: "node", + environment: "node", + include: ["tests/**/*.test.ts"], + exclude: ["**/node_modules/**", ...jsdomTests], + }, + }, + { + extends: true, + resolve: { conditions: ["browser"] }, + test: { + name: "jsdom", + environment: "jsdom", + include: jsdomTests, + }, + }, + ], }, });