diff --git a/.changeset/lemon-dingos-dance.md b/.changeset/lemon-dingos-dance.md new file mode 100644 index 00000000000..ee7569dd198 --- /dev/null +++ b/.changeset/lemon-dingos-dance.md @@ -0,0 +1,5 @@ +--- +'@builder.io/qwik': minor +--- + +BREAKING: (slightly) Qwik will no longer scan all modules at build start to detect Qwik modules. Instead, a runtime check is done to prevent duplicate core imports. If you get a runtime error, you need to fix your build settings so they don't externalize qwik-related libraries. diff --git a/e2e/qwik-cli-e2e/package.json b/e2e/qwik-cli-e2e/package.json index b0a98646444..769f43bb139 100644 --- a/e2e/qwik-cli-e2e/package.json +++ b/e2e/qwik-cli-e2e/package.json @@ -2,7 +2,7 @@ "name": "qwik-cli-e2e", "version": "0.0.0", "dependencies": { - "kleur": "4.1.5" + "kleur": "^4.1.5" }, "private": true, "scripts": { diff --git a/e2e/qwik-cli-e2e/tests/serve.spec.ts b/e2e/qwik-cli-e2e/tests/serve.spec.ts index 796f914ebfd..43b554edec5 100644 --- a/e2e/qwik-cli-e2e/tests/serve.spec.ts +++ b/e2e/qwik-cli-e2e/tests/serve.spec.ts @@ -33,7 +33,7 @@ for (const type of ['empty', 'playground'] as QwikProjectType[]) { } config.cleanupFn(); }; - }); + }, 120000); if (type === 'playground') { test( diff --git a/package.json b/package.json index ec9c9d2f795..1ceb665e91c 100644 --- a/package.json +++ b/package.json @@ -93,7 +93,7 @@ "@changesets/cli": "2.29.5", "@changesets/get-github-info": "0.6.0", "@changesets/types": "6.1.0", - "@clack/prompts": "0.7.0", + "@clack/prompts": "0.11.0", "@eslint/js": "9.33.0", "@mdx-js/mdx": "3.1.0", "@microsoft/api-documenter": "7.26.31", @@ -110,7 +110,7 @@ "@types/bun": "1.2.20", "@types/cross-spawn": "6.0.6", "@types/express": "5.0.3", - "@types/node": "24.2.1", + "@types/node": "24.3.0", "@types/path-browserify": "1.0.3", "@types/prompts": "2.4.9", "@types/react": "19.1.10", @@ -125,7 +125,7 @@ "cross-spawn": "7.0.6", "csstype": "3.1.3", "dotenv": "16.5.0", - "esbuild": "0.25.8", + "esbuild": "0.25.9", "eslint": "9.33.0", "eslint-plugin-import": "2.32.0", "eslint-plugin-no-only-tests": "3.3.0", @@ -134,8 +134,8 @@ "express": "4.20.0", "globals": "16.3.0", "install": "0.13.0", - "memfs": "4.34.0", - "monaco-editor": "0.45.0", + "memfs": "4.36.0", + "monaco-editor": "0.52.2", "mri": "1.2.0", "path-browserify": "1.0.1", "prettier": "3.6.2", @@ -147,17 +147,17 @@ "semver": "7.7.2", "simple-git-hooks": "2.13.1", "snoop": "1.0.4", - "source-map": "0.7.4", + "source-map": "0.7.6", "svgo": "3.3.2", "syncpack": "13.0.4", "terser": "5.43.1", - "tmp": "0.2.3", + "tmp": "0.2.5", "tree-kill": "1.2.2", - "tsx": "4.20.3", - "typescript": "5.8.3", + "tsx": "4.20.4", + "typescript": "5.9.2", "typescript-eslint": "8.39.1", "vfile": "6.0.3", - "vite": "7.1.0", + "vite": "7.1.2", "vite-imagetools": "7.1.0", "vite-plugin-dts": "4.5.4", "vite-tsconfig-paths": "5.1.4", @@ -177,8 +177,9 @@ "overrides": { "@builder.io/qwik": "npm:@qwik.dev/core@*", "@builder.io/qwik-city": "npm:@qwik.dev/router", + "@types/estree": "1.0.8", "prettier": "3.6.2", - "typescript": "5.8.3", + "typescript": "5.9.2", "vfile": "6.0.3" }, "patchedDependencies": { diff --git a/packages/create-qwik/package.json b/packages/create-qwik/package.json index fc78a3ebfad..d46a0bcf1e4 100644 --- a/packages/create-qwik/package.json +++ b/packages/create-qwik/package.json @@ -6,7 +6,7 @@ "bin": "./create-qwik.cjs", "bugs": "https://github.com/QwikDev/qwik/issues", "devDependencies": { - "@clack/prompts": "0.7.0", + "@clack/prompts": "0.11.0", "@types/yargs": "17.0.33", "kleur": "4.1.5", "yargs": "17.7.2" diff --git a/packages/docs/package.json b/packages/docs/package.json index 4760bf015e4..e7a77e501fe 100644 --- a/packages/docs/package.json +++ b/packages/docs/package.json @@ -19,16 +19,16 @@ "@qwik.dev/partytown": "0.11.2", "@qwik.dev/react": "workspace:*", "@qwik.dev/router": "workspace:*", - "@shikijs/colorized-brackets": "3.9.1", - "@shikijs/rehype": "3.9.1", - "@shikijs/transformers": "3.9.1", - "@shikijs/types": "3.9.1", + "@shikijs/colorized-brackets": "3.9.2", + "@shikijs/rehype": "3.9.2", + "@shikijs/transformers": "3.9.2", + "@shikijs/types": "3.9.2", "@supabase/supabase-js": "2.53.0", - "@tailwindcss/vite": "4.1.11", + "@tailwindcss/vite": "4.1.12", "@types/leaflet": "1.9.20", "@types/prismjs": "1.26.5", "@types/react": "19.1.10", - "@types/react-dom": "18.3.0", + "@types/react-dom": "19.1.7", "@unpic/core": "0.0.42", "@unpic/qwik": "0.0.38", "algoliasearch": "4.16.0", @@ -42,17 +42,17 @@ "prismjs": "1.30.0", "puppeteer": "22.13.1", "qwik-image": "0.0.16", - "react": "18.3.1", - "react-dom": "18.3.1", - "shiki": "3.9.1", + "react": "19.1.1", + "react-dom": "19.1.1", + "shiki": "3.9.2", "snarkdown": "2.0.0", - "tailwindcss": "4.1.11", + "tailwindcss": "4.1.12", "terser": "5.43.1", "tsm": "2.3.0", - "typescript": "5.8.3", + "typescript": "5.9.2", "undici": "*", "valibot": "0.33.3", - "vite": "7.1.0", + "vite": "7.1.2", "vite-plugin-inspect": "11.3.2", "vite-tsconfig-paths": "5.1.4", "wrangler": "3.65.1" diff --git a/packages/docs/src/repl/worker/repl-dependencies.ts b/packages/docs/src/repl/worker/repl-dependencies.ts index 1c42daddb3d..68e9ee34374 100644 --- a/packages/docs/src/repl/worker/repl-dependencies.ts +++ b/packages/docs/src/repl/worker/repl-dependencies.ts @@ -77,6 +77,8 @@ const _loadDependencies = async (replOptions: ReplInputOptions) => { } if (!isSameQwikVersion(self.qwikCore?.version)) { + // Special case: we allow importing qwik again in the same process. + delete (globalThis as any).__qwik; await exec(QWIK_PKG_NAME, '/core.cjs'); if (self.qwikCore) { console.debug(`Loaded ${QWIK_PKG_NAME}: ${self.qwikCore.version}`); diff --git a/packages/docs/vite.config.ts b/packages/docs/vite.config.ts index eb05c450371..1c9d3787d19 100644 --- a/packages/docs/vite.config.ts +++ b/packages/docs/vite.config.ts @@ -137,6 +137,7 @@ export default defineConfig(async () => { 'algoliasearch', '@algolia/autocomplete-core/dist/esm/reshape', 'algoliasearch/dist/algoliasearch-lite.esm.browser', + '@qwik-ui/headless', ], }, diff --git a/packages/insights/package.json b/packages/insights/package.json index 000520873da..e0aede0052b 100644 --- a/packages/insights/package.json +++ b/packages/insights/package.json @@ -4,7 +4,7 @@ "version": "0.1.0", "dependencies": { "@auth/qwik": "0.8.0", - "@libsql/client": "^0.15.10", + "@libsql/client": "^0.15.11", "@modular-forms/qwik": "^0.24.0", "@typescript/analyze-trace": "^0.10.1", "density-clustering": "^1.3.0", @@ -18,9 +18,9 @@ "@netlify/edge-functions": "2.17.0", "@qwik.dev/core": "workspace:*", "@qwik.dev/router": "workspace:*", - "@tailwindcss/vite": "4.1.11", + "@tailwindcss/vite": "4.1.12", "@types/density-clustering": "1.3.3", - "@types/node": "24.2.1", + "@types/node": "24.3.0", "autoprefixer": "10.4.21", "eslint": "9.33.0", "eslint-plugin-qwik": "workspace:*", @@ -29,11 +29,11 @@ "postcss": "8.5.6", "prettier": "3.6.2", "prettier-plugin-tailwindcss": "0.6.14", - "tailwindcss": "4.1.11", - "typescript": "5.8.3", + "tailwindcss": "4.1.12", + "typescript": "5.9.2", "typescript-eslint": "8.39.1", "undici": "*", - "vite": "7.1.0", + "vite": "7.1.2", "vite-tsconfig-paths": "5.1.4", "vitest": "3.2.4", "zod": "3.25.48" diff --git a/packages/qwik-react/package.json b/packages/qwik-react/package.json index bb0c80b740d..377d0e615ae 100644 --- a/packages/qwik-react/package.json +++ b/packages/qwik-react/package.json @@ -6,11 +6,11 @@ "devDependencies": { "@qwik.dev/core": "workspace:*", "@types/react": "19.1.10", - "@types/react-dom": "18.3.0", - "react": "18.3.1", - "react-dom": "18.3.1", - "typescript": "5.8.3", - "vite": "7.1.0" + "@types/react-dom": "19.1.7", + "react": "19.1.1", + "react-dom": "19.1.1", + "typescript": "5.9.2", + "vite": "7.1.2" }, "engines": { "node": "^18.17.0 || ^20.3.0 || >=21.0.0" diff --git a/packages/qwik-router/package.json b/packages/qwik-router/package.json index a42e17f62f8..3e43aea552b 100644 --- a/packages/qwik-router/package.json +++ b/packages/qwik-router/package.json @@ -4,44 +4,42 @@ "version": "2.0.0-beta.7", "bugs": "https://github.com/QwikDev/qwik/issues", "dependencies": { + "@azure/functions": "3.5.1", "@mdx-js/mdx": "^3.1.0", + "@netlify/edge-functions": "^2.17.0", "@types/mdx": "^2.0.13", - "source-map": "^0.7.4", + "estree-util-value-to-estree": "^3.4.0", + "github-slugger": "^2.0.0", + "hast-util-heading-rank": "^2.1.1", + "hast-util-to-string": "^2.0.0", + "kleur": "^4.1.5", + "marked": "^12.0.2", + "mdast-util-mdx": "^3.0.0", + "refractor": "^4.8.1", + "rehype-autolink-headings": "^7.1.0", + "remark-frontmatter": "^5.0.0", + "remark-gfm": "^4.0.1", + "set-cookie-parser": "^2.7.1", + "source-map": "^0.7.6", "svgo": "^3.3.2", - "undici": "*", + "typescript": "5.9.2", + "unified": "^11.0.5", + "unist-util-visit": "^5.0.0", "valibot": ">=0.36.0 <2", "vfile": "6.0.3", "vite-imagetools": "^7.1.0", - "zod": "3.25.48" + "yaml": "^2.8.1", + "zod": "^3.25.40" }, "devDependencies": { - "@azure/functions": "3.5.1", "@microsoft/api-extractor": "7.52.10", - "@netlify/edge-functions": "2.17.0", "@qwik.dev/core": "workspace:*", "@types/mdast": "4.0.4", - "@types/node": "24.2.1", - "@types/refractor": "3.4.1", + "@types/node": "24.3.0", + "@types/refractor": "4.0.0", "@types/set-cookie-parser": "2.4.10", - "estree-util-value-to-estree": "3.4.0", - "github-slugger": "2.0.0", - "hast-util-heading-rank": "2.1.1", - "hast-util-to-string": "2.0.0", - "kleur": "4.1.5", - "marked": "12.0.2", - "mdast-util-mdx": "3.0.0", - "refractor": "4.8.1", - "rehype-autolink-headings": "7.1.0", - "remark-frontmatter": "5.0.0", - "remark-gfm": "4.0.1", - "set-cookie-parser": "2.7.1", "tsm": "2.3.0", - "typescript": "5.8.3", - "unified": "11.0.5", - "unist-util-visit": "5.0.0", - "uvu": "0.5.6", - "vite": "7.1.0", - "yaml": "2.6.1" + "uvu": "0.5.6" }, "engines": { "node": "^18.17.0 || ^20.3.0 || >=21.0.0" @@ -186,6 +184,10 @@ "homepage": "https://qwik.dev/", "license": "MIT", "main": "./lib/index.qwik.mjs", + "peerDependencies": { + "@qwik.dev/core": "workspace:^", + "vite": ">=5 <8" + }, "publishConfig": { "access": "public" }, diff --git a/packages/qwik-router/src/adapters/netlify-edge/vite/index.ts b/packages/qwik-router/src/adapters/netlify-edge/vite/index.ts index 0261b4fa485..26dbade0b40 100644 --- a/packages/qwik-router/src/adapters/netlify-edge/vite/index.ts +++ b/packages/qwik-router/src/adapters/netlify-edge/vite/index.ts @@ -1,4 +1,3 @@ -import { basePathname } from '@qwik-router-config'; import type { SsgRenderOptions } from 'packages/qwik-router/src/ssg'; import fs, { existsSync } from 'node:fs'; import { join } from 'node:path'; @@ -39,7 +38,7 @@ export function netlifyEdgeAdapter(opts: NetlifyEdgeAdapterOptions = {}): any { }; }, - async generate({ serverOutDir }) { + async generate({ serverOutDir, basePathname }) { if (opts.functionRoutes !== false) { // https://docs.netlify.com/edge-functions/create-integration/#generate-declarations diff --git a/packages/qwik-router/src/adapters/shared/vite/index.ts b/packages/qwik-router/src/adapters/shared/vite/index.ts index ad910396d37..708e54926b4 100644 --- a/packages/qwik-router/src/adapters/shared/vite/index.ts +++ b/packages/qwik-router/src/adapters/shared/vite/index.ts @@ -195,6 +195,34 @@ export function viteAdapter(opts: ViteAdapterPluginOptions) { `\nSee https://qwik.dev/docs/deployments/#cache-headers for more information.` + `\n==============================================` ); + if (opts.ssg !== null) { + /** + * HACK: for some reason the build hangs after SSG. `why-is-node-running` shows 4 + * culprits: + * + * ``` + * There are 4 handle(s) keeping the process running. + * + * # CustomGC + * ./node_modules/.pnpm/lightningcss@1.30.1/node_modules/lightningcss/node/index.js:20 - module.exports = require(`lightningcss-${parts.join('-')}`); + * + * # CustomGC + * ./node_modules/.pnpm/@tailwindcss+oxide@4.1.12/node_modules/@tailwindcss/oxide/index.js:229 - return require('@tailwindcss/oxide-linux-x64-gnu') + * + * # Timeout + * node_modules/.vite-temp/vite.config.timestamp-1755270314169-a2a97ad5233f9.mjs:357 + * ./node_modules/.pnpm/vite@7.1.2_@types+node@24.3.0_jiti@2.5.1_lightningcss@1.30.1_terser@5.43.1_tsx@4.20.4_yaml@2.8.1/node_modules/vite/dist/node/chunks/dep-CMEinpL-.js:36657 - return (await import(pathToFileURL(tempFileName).href)).default; + * + * # CustomGC + * ./packages/qwik/dist/optimizer.mjs:1328 - const mod2 = module.default.createRequire(import.meta.url)(`../bindings/${triple.platformArchABI}`); + * ``` + * + * For now, we'll force exit the process after SSG with some delay. + */ + setTimeout(() => { + process.exit(0); + }, 5000).unref(); + } } }, }, diff --git a/packages/qwik-router/src/buildtime/context.ts b/packages/qwik-router/src/buildtime/context.ts index 4f2b0dbff46..14e7b2bc9e5 100644 --- a/packages/qwik-router/src/buildtime/context.ts +++ b/packages/qwik-router/src/buildtime/context.ts @@ -6,7 +6,8 @@ export function createBuildContext( rootDir: string, viteBasePath: string, userOpts?: PluginOptions, - target?: 'ssr' | 'client' + target?: 'ssr' | 'client', + dynamicImports?: boolean ) { const ctx: BuildContext = { rootDir: normalizePath(rootDir), @@ -20,8 +21,7 @@ export function createBuildContext( diagnostics: [], frontmatter: new Map(), target: target || 'ssr', - isDevServer: false, - isDevServerClientOnly: false, + dynamicImports: target === 'client' || !!dynamicImports, isDirty: true, activeBuild: null, }; diff --git a/packages/qwik-router/src/buildtime/runtime-generation/generate-qwik-router-config.ts b/packages/qwik-router/src/buildtime/runtime-generation/generate-qwik-router-config.ts index efb8b41f908..9dc2089d678 100644 --- a/packages/qwik-router/src/buildtime/runtime-generation/generate-qwik-router-config.ts +++ b/packages/qwik-router/src/buildtime/runtime-generation/generate-qwik-router-config.ts @@ -15,6 +15,7 @@ export function generateQwikRouterConfig( const c: string[] = []; c.push(`\n/** Qwik Router Config */`); + c.push(`\nimport { isDev } from '@qwik.dev/core/build';`); createServerPlugins(ctx, qwikPlugin, c, esmImports, isSSR); @@ -28,11 +29,10 @@ export function generateQwikRouterConfig( c.push(`export const basePathname = ${JSON.stringify(ctx.opts.basePathname)};`); - c.push(`export const cacheModules = ${JSON.stringify(!ctx.isDevServer)};`); + c.push(`export const cacheModules = !isDev;`); c.push( `export default { routes, serverPlugins, menus, trailingSlash, basePathname, cacheModules };` ); - return esmImports.join('\n') + c.join('\n'); } diff --git a/packages/qwik-router/src/buildtime/runtime-generation/generate-routes.ts b/packages/qwik-router/src/buildtime/runtime-generation/generate-routes.ts index ebf23792dd4..4efed351d6b 100644 --- a/packages/qwik-router/src/buildtime/runtime-generation/generate-routes.ts +++ b/packages/qwik-router/src/buildtime/runtime-generation/generate-routes.ts @@ -11,7 +11,7 @@ export function createRoutes( isSSR: boolean ) { const includeEndpoints = isSSR; - const dynamicImports = ctx.target === 'client'; + const dynamicImports = ctx.dynamicImports; if (ctx.layouts.length > 0) { c.push(`\n/** Qwik Router Layouts (${ctx.layouts.length}) */`); diff --git a/packages/qwik-router/src/buildtime/runtime-generation/generate-service-worker.ts b/packages/qwik-router/src/buildtime/runtime-generation/generate-service-worker.ts index 1f9209a43ce..253713e1664 100644 --- a/packages/qwik-router/src/buildtime/runtime-generation/generate-service-worker.ts +++ b/packages/qwik-router/src/buildtime/runtime-generation/generate-service-worker.ts @@ -3,29 +3,17 @@ import type { BuildContext } from '../types'; export function generateServiceWorkerRegister(ctx: BuildContext, swRegister: string) { let swReg: string; - if (ctx.isDevServer) { - swReg = SW_UNREGISTER; - } else { - swReg = swRegister; + swReg = swRegister; - let swUrl = '/service-worker.js'; - if (ctx.serviceWorkers.length > 0) { - const sw = ctx.serviceWorkers.sort((a, b) => - a.chunkFileName.length < b.chunkFileName.length ? -1 : 1 - )[0]; - swUrl = ctx.opts.basePathname + sw.chunkFileName; - } - - swReg = swReg.replace('__url', swUrl); + let swUrl = '/service-worker.js'; + if (ctx.serviceWorkers.length > 0) { + const sw = ctx.serviceWorkers.sort((a, b) => + a.chunkFileName.length < b.chunkFileName.length ? -1 : 1 + )[0]; + swUrl = ctx.opts.basePathname + sw.chunkFileName; } + swReg = swReg.replace('__url', swUrl); + return `export default ${JSON.stringify(swReg)};`; } - -const SW_UNREGISTER = ` -navigator.serviceWorker?.getRegistrations().then((regs) => { - for (const reg of regs) { - reg.unregister(); - } -}); -`; diff --git a/packages/qwik-router/src/buildtime/types.ts b/packages/qwik-router/src/buildtime/types.ts index ad505d19ca7..39dc4ace9aa 100644 --- a/packages/qwik-router/src/buildtime/types.ts +++ b/packages/qwik-router/src/buildtime/types.ts @@ -12,8 +12,7 @@ export interface BuildContext { frontmatter: Map; diagnostics: Diagnostic[]; target: 'ssr' | 'client' | undefined; - isDevServer: boolean; - isDevServerClientOnly: boolean; + dynamicImports: boolean; isDirty: boolean; activeBuild: Promise | null; } diff --git a/packages/qwik-router/src/buildtime/vite/dev-server.ts b/packages/qwik-router/src/buildtime/vite/dev-server.ts deleted file mode 100644 index 4b43545c0f9..00000000000 --- a/packages/qwik-router/src/buildtime/vite/dev-server.ts +++ /dev/null @@ -1,572 +0,0 @@ -import type { QwikViteDevResponse } from '@qwik.dev/core/optimizer'; -import fs from 'node:fs'; -import type { ServerResponse } from 'node:http'; -import { join, resolve } from 'node:path'; -import type { Connect, ViteDevServer } from 'vite'; -import { computeOrigin, fromNodeHttp, getUrl } from '../../middleware/node/http'; -import { - checkBrand, - resolveRequestHandlers, -} from '../../middleware/request-handler/resolve-request-handlers'; -import { getQwikRouterServerData } from '../../middleware/request-handler/response-page'; -import type { QwikSerializer } from '../../middleware/request-handler/types'; -import { - QDATA_JSON, - getRouteMatchPathname, - runQwikRouter, -} from '../../middleware/request-handler/user-response'; -import { matchRoute } from '../../runtime/src/route-matcher'; -import { getMenuLoader } from '../../runtime/src/routing'; -import type { - ActionInternal, - RebuildRouteInfoInternal, - ContentMenu, - LoadedRoute, - LoaderInternal, - MenuData, - MenuModule, - MenuModuleLoader, - PathParams, - RequestEvent, - RouteModule, -} from '../../runtime/src/types'; -import { getExtension, normalizePath } from '../../utils/fs'; -import { updateBuildContext } from '../build'; -import type { BuildContext, BuildRoute } from '../types'; -import { formatError } from './format-error'; -import { RequestEvShareServerTiming } from '../../middleware/request-handler/request-event'; - -export function ssrDevMiddleware(ctx: BuildContext, server: ViteDevServer) { - const matchRouteRequest = (pathname: string) => { - for (const route of ctx.routes) { - let params = matchRoute(route.pathname, pathname); - if (params) { - return { route, params }; - } - - if (!globalThis.__NO_TRAILING_SLASH__ && !pathname.endsWith('/')) { - params = matchRoute(route.pathname, pathname + '/'); - if (params) { - return { route, params }; - } - } - } - - return null; - }; - - const routePs: Record> = {}; - const _resolveRoute = async ( - routeModulePaths: WeakMap, string>, - matchPathname: string - ) => { - await updateBuildContext(ctx); - for (const d of ctx.diagnostics) { - if (d.type === 'error') { - console.error(d.message); - } else { - console.warn(d.message); - } - } - - // use vite to dynamically load each layout/page module in this route's hierarchy - const loaderMap = new Map(); - const serverPlugins: RouteModule[] = []; - for (const file of ctx.serverPlugins) { - const layoutModule = await server.ssrLoadModule(file.filePath); - serverPlugins.push(layoutModule); - routeModulePaths.set(layoutModule, file.filePath); - checkModule(loaderMap, layoutModule, file.filePath); - } - - const routeResult = matchRouteRequest(matchPathname); - const routeModules: RouteModule[] = []; - - let params: PathParams = {}; - if (routeResult) { - const route = routeResult.route; - params = routeResult.params; - - // found a matching route - for (const layout of route.layouts) { - const layoutModule = await server.ssrLoadModule(layout.filePath); - routeModules.push(layoutModule); - routeModulePaths.set(layoutModule, layout.filePath); - checkModule(loaderMap, layoutModule, layout.filePath); - } - const endpointModule = await server.ssrLoadModule(route.filePath); - routeModules.push(endpointModule); - routeModulePaths.set(endpointModule, route.filePath); - checkModule(loaderMap, endpointModule, route.filePath); - } - - let menu: ContentMenu | undefined = undefined; - const menus = ctx.menus.map((buildMenu) => { - const menuLoader: MenuModuleLoader = async () => { - const m = await server.ssrLoadModule(buildMenu.filePath); - const menuModule: MenuModule = { - default: m.default, - }; - return menuModule; - }; - const menuData: MenuData = [buildMenu.pathname, menuLoader]; - return menuData; - }); - - const menuLoader = getMenuLoader(menus, matchPathname); - if (menuLoader) { - const menuModule = await menuLoader(); - menu = menuModule?.default; - } - - const loadedRoute = [ - routeResult ? routeResult.route.pathname : '', - params, - routeModules, - menu, - undefined, - ] satisfies LoadedRoute; - return { serverPlugins, loadedRoute }; - }; - const resolveRoute = (routeModulePaths: WeakMap, string>, url: URL) => { - const matchPathname = getRouteMatchPathname(url.pathname); - routePs[matchPathname] ||= _resolveRoute(routeModulePaths, matchPathname).finally(() => { - delete routePs[matchPathname]; - }); - return routePs[matchPathname]; - }; - - // Preload the modules needed to handle /, so that they load faster on first request. - resolveRoute(new WeakMap(), new URL('/', 'http://localhost')).catch((e: unknown) => { - if (e instanceof Error) { - server.ssrFixStacktrace(e); - formatError(e); - } - }); - - return async (req: Connect.IncomingMessage, res: ServerResponse, next: Connect.NextFunction) => { - try { - const url = getUrl(req, computeOrigin(req)); - - if (shouldSkipRequest(url.pathname) || isVitePing(url.pathname, req.headers)) { - next(); - return; - } - - // Normally, entries are served statically, so in dev mode we need to handle them here. - const matchRouteName = url.pathname.slice(1); - const entry = ctx.entries.find((e) => e.routeName === matchRouteName); - if (entry) { - const entryContents = await server.transformRequest( - `/@fs${entry.filePath.startsWith('/') ? '' : '/'}${entry.filePath}` - ); - - if (entryContents) { - res.setHeader('Content-Type', 'text/javascript'); - res.end(entryContents.code); - } else { - next(); - } - return; - } - - const routeModulePaths = new WeakMap(); - try { - const { serverPlugins, loadedRoute } = await resolveRoute(routeModulePaths, url); - - const renderFn = async (requestEv: RequestEvent) => { - // routeResult && requestEv.sharedMap.set('@routeName', routeResult.route.pathname); - const isPageDataReq = requestEv.pathname.endsWith(QDATA_JSON); - if (!isPageDataReq) { - const serverData = getQwikRouterServerData(requestEv); - - res.statusCode = requestEv.status(); - requestEv.headers.forEach((value, key) => { - res.setHeader(key, value); - }); - - const cookieHeaders = requestEv.cookie.headers(); - if (cookieHeaders.length > 0) { - res.setHeader('Set-Cookie', cookieHeaders); - } - - const serverTiming = requestEv.sharedMap.get(RequestEvShareServerTiming) as - | [string, number][] - | undefined; - if (serverTiming) { - res.setHeader( - 'Server-Timing', - serverTiming.map(([name, duration]) => `${name};dur=${duration}`).join(',') - ); - } - (res as QwikViteDevResponse)._qwikEnvData = { - ...(res as QwikViteDevResponse)._qwikEnvData, - ...serverData, - }; - - const qwikRenderPromise = new Promise((resolve) => { - (res as QwikViteDevResponse)._qwikRenderResolve = resolve; - }); - - next(); - - return qwikRenderPromise; - } - }; - - const requestHandlers = resolveRequestHandlers( - serverPlugins, - loadedRoute, - req.method ?? 'GET', - false, - renderFn - ); - - if (requestHandlers.length > 0) { - const serverRequestEv = await fromNodeHttp(url, req, res, 'dev'); - Object.assign(serverRequestEv.platform, ctx.opts.platform); - - const { _deserialize, _serialize, _verifySerializable } = - await server.ssrLoadModule('@qwik-serializer'); - const qwikSerializer: QwikSerializer = { _deserialize, _serialize, _verifySerializable }; - - const rebuildRouteInfo: RebuildRouteInfoInternal = async (url: URL) => { - const { serverPlugins, loadedRoute } = await resolveRoute(routeModulePaths, url); - const requestHandlers = resolveRequestHandlers( - serverPlugins, - loadedRoute, - req.method ?? 'GET', - false, - renderFn - ); - - return { - loadedRoute, - requestHandlers, - }; - }; - - const { completion, requestEv } = runQwikRouter( - serverRequestEv, - loadedRoute, - requestHandlers, - rebuildRouteInfo, - ctx.opts.basePathname, - qwikSerializer - ); - const result = await completion; - if (result != null) { - throw result; - } - - if (requestEv.headersSent || res.headersSent) { - return; - } - } else { - // no matching route - - // test if this is a dev service-worker.js request - for (const sw of ctx.serviceWorkers) { - const match = sw.pattern.exec(req.originalUrl!); - if (match) { - res.setHeader('Content-Type', 'text/javascript'); - res.end(DEV_SERVICE_WORKER); - return; - } - } - } - } catch (e: any) { - if (e instanceof Error) { - server.ssrFixStacktrace(e); - formatError(e); - } - if (e instanceof Error && (e as any).id === 'DEV_SERIALIZE') { - next(formatDevSerializeError(e, routeModulePaths)); - } else { - next(e); - } - return; - } - - // simple test if it's a static file - const ext = getExtension(req.originalUrl!); - if (STATIC_CONTENT_TYPES[ext]) { - // let the static asset middleware handle this - next(); - return; - } - - if (req.headers.accept && req.headers.accept.includes('text/html')) { - /** - * If no route match, but is html request, fast path to 404 otherwise qwik plugin will take - * over render without envData causing error - */ - // TODO: after file change, need to manual page refresh to see changes currently - // there's two ways handling HMR for page endpoint with error - // 1. Html response inject `import.meta.hot.accept('./pageEndpoint_FILE_URL', () => { location.reload })` - // 2. watcher, diff previous & current file content, a bit expensive - const html = getUnmatchedRouteHtml(url, ctx); - res.statusCode = 404; - res.setHeader('Content-Type', 'text/html; charset=utf-8'); - res.end(html); - return; - } - - next(); - } catch (e) { - next(e); - } - }; -} - -const checkModule = (loaderMap: Map, routeModule: any, filePath: string) => { - for (const loader of Object.values(routeModule)) { - if (checkBrand(loader, 'server_action') || checkBrand(loader, 'server_loader')) { - checkUniqueLoader(loaderMap, loader as any, filePath); - } - } -}; - -const checkUniqueLoader = ( - loaderMap: Map, - loader: LoaderInternal | ActionInternal, - filePath: string -) => { - const prev = loaderMap.get(loader.__id); - if (prev) { - const type = loader.__brand === 'server_loader' ? 'routeLoader$' : 'routeAction$'; - throw new Error( - `The same ${type} (${loader.__qrl.getSymbol()}) was exported in multiple modules: - - ${prev} - - ${filePath}` - ); - } - loaderMap.set(loader.__id, filePath); -}; - -export function getUnmatchedRouteHtml(url: URL, ctx: BuildContext): string { - const blue = '#006ce9'; - const routesAndDistance = sortRoutesByDistance(ctx.routes, url); - return ` - - - - - 404 Not Found - - - - -

404 ${url.pathname} not found.

- -
- Available Routes - - ${routesAndDistance - .map( - ([route, distance], i) => - `${route.pathname}${ - i === 0 && distance < 3 - ? ' 👈 maybe you meant this?' - : '' - } ` - ) - .join('')} -
- - `; -} - -const sortRoutesByDistance = (routes: BuildRoute[], url: URL) => { - const pathname = url.pathname; - const routesWithDistance = routes.map( - (route) => [route, levenshteinDistance(pathname, route.pathname)] as const - ); - return routesWithDistance.sort((a, b) => a[1] - b[1]); -}; - -const levenshteinDistance = (s: string, t: string) => { - if (!s.endsWith('/')) { - s = s + '/'; - } - if (!t.endsWith('/')) { - t = t + '/'; - } - const arr = []; - for (let i = 0; i <= t.length; i++) { - arr[i] = [i]; - for (let j = 1; j <= s.length; j++) { - arr[i][j] = - i === 0 - ? j - : Math.min( - arr[i - 1][j] + 1, - arr[i][j - 1] + 1, - arr[i - 1][j - 1] + (s[j - 1] === t[i - 1] ? 0 : 1) - ); - } - } - return arr[t.length][s.length]; -}; - -/** - * Static file server for files written directly to the 'dist' dir. - * - * Only handles the simplest cases. - */ -export function staticDistMiddleware({ config }: ViteDevServer) { - const distDirs = new Set( - ['dist', config.build.outDir, config.publicDir].map((d) => - normalizePath(resolve(config.root, d)) - ) - ); - - return async (req: Connect.IncomingMessage, res: ServerResponse, next: Connect.NextFunction) => { - const url = new URL(req.originalUrl!, `http://${req.headers.host}`); - - if (shouldSkipRequest(url.pathname)) { - next(); - return; - } - - const relPath = `${url.pathname.slice(1)}${url.search}`; - - const ext = getExtension(relPath); - const contentType = STATIC_CONTENT_TYPES[ext]; - if (!contentType) { - next(); - return; - } - - for (const distDir of distDirs) { - try { - const filePath = join(distDir, relPath); - const s = await fs.promises.stat(filePath); - if (s.isFile()) { - res.writeHead(200, { - 'Content-Type': contentType, - 'X-Source-Path': filePath, - }); - fs.createReadStream(filePath).pipe(res); - return; - } - } catch { - // - } - } - - next(); - }; -} - -function formatDevSerializeError(err: any, routeModulePaths: WeakMap) { - const requestHandler = err.requestHandler; - - if (requestHandler?.name) { - let errMessage = `Data returned from the ${requestHandler.name}() endpoint must be serializable `; - errMessage += `so it can also be transferred over the network in an HTTP response. `; - errMessage += `Please ensure that the data returned from ${requestHandler.name}() is limited to only strings, numbers, booleans, arrays or objects, and does not have any circular references. `; - errMessage += `Error: ${err.message}`; - err.message = errMessage; - - const endpointModule = err.endpointModule; - const filePath = routeModulePaths.get(endpointModule); - if (filePath) { - try { - const code = fs.readFileSync(filePath, 'utf-8'); - err.plugin = 'vite-plugin-qwik-router'; - err.id = normalizePath(filePath); - err.loc = { - file: err.id, - line: undefined, - column: undefined, - }; - err.stack = ''; - const lines = code.split('\n'); - const line = lines.findIndex((line) => line.includes(requestHandler.name)); - if (line > -1) { - err.loc.line = line + 1; - } - } catch { - // nothing - } - } - } - return err; -} - -const FS_PREFIX = `/@fs/`; -const VALID_ID_PREFIX = `/@id/`; -const VITE_PUBLIC_PATH = `/@vite/`; -const internalPrefixes = [FS_PREFIX, VALID_ID_PREFIX, VITE_PUBLIC_PATH]; -const InternalPrefixRE = new RegExp(`^(?:${internalPrefixes.join('|')})`); - -function shouldSkipRequest(pathname: string) { - if (pathname.startsWith('/@qwik-router-')) { - return true; - } - if ( - pathname.includes('__open-in-editor') || - InternalPrefixRE.test(pathname) || - pathname.startsWith('/node_modules/') - ) { - return true; - } - if (pathname.includes('favicon')) { - return true; - } - if (pathname.startsWith('/src/') || pathname.startsWith('/@fs/')) { - const ext = getExtension(pathname); - if (SKIP_SRC_EXTS[ext]) { - return true; - } - } - return false; -} - -function isVitePing(url: string, headers: Connect.IncomingMessage['headers']) { - return url === '/' && headers.accept === '*/*' && headers['sec-fetch-mode'] === 'no-cors'; -} - -const SKIP_SRC_EXTS: { [ext: string]: boolean } = { - '.tsx': true, - '.ts': true, - '.jsx': true, - '.js': true, - '.md': true, - '.mdx': true, - '.css': true, - '.scss': true, - '.sass': true, - '.less': true, - '.styl': true, - '.stylus': true, -}; - -const STATIC_CONTENT_TYPES: { [ext: string]: string } = { - '.js': 'text/javascript', - '.mjs': 'text/javascript', - '.json': 'application/json', - '.css': 'text/css', - '.html': 'text/html', - '.svg': 'image/svg+xml', - '.png': 'image/png', - '.gif': 'image/gif', - '.jpeg': 'image/jpeg', - '.jpg': 'image/jpeg', - '.ico': 'image/x-icon', -}; - -const DEV_SERVICE_WORKER = `/* Qwik Router Dev Service Worker */ -self.addEventListener('install', () => self.skipWaiting()); -self.addEventListener('activate', (ev) => ev.waitUntil(self.clients.claim())); -`; diff --git a/packages/qwik-router/src/buildtime/vite/plugin.ts b/packages/qwik-router/src/buildtime/vite/plugin.ts index 50de22c9edc..845eb99eb81 100644 --- a/packages/qwik-router/src/buildtime/vite/plugin.ts +++ b/packages/qwik-router/src/buildtime/vite/plugin.ts @@ -1,5 +1,7 @@ import swRegister from '@qwik-router-sw-register-build'; import type { QwikVitePlugin } from '@qwik.dev/core/optimizer'; +import type { Render } from '@qwik.dev/core/server'; +import type { DocumentHeadValue, RendererOptions, RendererOutputOptions } from '@qwik.dev/router'; import fs from 'node:fs'; import { basename, extname, join, resolve } from 'node:path'; import type { Plugin, PluginOption, Rollup, UserConfig } from 'vite'; @@ -13,7 +15,6 @@ import { generateQwikRouterEntries } from '../runtime-generation/generate-entrie import { generateQwikRouterConfig } from '../runtime-generation/generate-qwik-router-config'; import { generateServiceWorkerRegister } from '../runtime-generation/generate-service-worker'; import type { BuildContext } from '../types'; -import { ssrDevMiddleware, staticDistMiddleware } from './dev-server'; import { getRouteImports } from './get-route-imports'; import { imagePlugin } from './image-jsx'; import type { @@ -22,8 +23,8 @@ import type { QwikRouterVitePluginOptions, } from './types'; import { validatePlugin } from './validate-plugin'; +import { formatError } from './format-error'; -const QWIK_SERIALIZER = '@qwik-serializer'; export const QWIK_ROUTER_CONFIG_ID = '@qwik-router-config'; const QWIK_ROUTER_ENTRIES_ID = '@qwik-router-entries'; const QWIK_ROUTER = '@qwik.dev/router'; @@ -104,6 +105,12 @@ function qwikRouterPlugin(userOpts?: QwikRouterVitePluginOptions): any { QWIK_ROUTER_SW_REGISTER, ], }, + server: { + watch: { + // needed for recursive watching of index and layout files in the src/routes directory + disableGlobbing: false, + }, + }, }; return updatedViteConfig; }, @@ -114,10 +121,13 @@ function qwikRouterPlugin(userOpts?: QwikRouterVitePluginOptions): any { const target = config.build?.ssr || config.mode === 'ssr' ? 'ssr' : 'client'; - ctx = createBuildContext(rootDir!, config.base, userOpts, target); - - ctx.isDevServer = config.command === 'serve' && config.mode !== 'production'; - ctx.isDevServerClientOnly = ctx.isDevServer && config.mode !== 'ssr'; + ctx = createBuildContext( + rootDir!, + config.base, + userOpts, + target, + !userOpts?.staticImportRoutes + ); await validatePlugin(ctx.opts); @@ -138,20 +148,145 @@ function qwikRouterPlugin(userOpts?: QwikRouterVitePluginOptions): any { outDir = config.build?.outDir; }, - configureServer(server) { - // this callback is run after the vite middlewares are registered - return () => { - if (!ctx) { - throw new Error('configureServer: Missing ctx from configResolved'); + async configureServer(server) { + // recursively watch all route files in the src/routes directory + const toWatch = resolve( + rootDir!, + 'src/routes/**/{index,layout,entry,service-worker}{.,@,-}*' + ); + server.watcher.add(toWatch); + await new Promise((resolve) => setTimeout(resolve, 1000)); + server.watcher.on('change', (path) => { + // If the path is not an index or layout file, skip + if (!/\/(index[.@]|layout[.-]|entry\.|service-worker\.)[^/]*$/.test(path)) { + return; } - if (!ctx.isDevServer) { - // preview server: serve static files from the dist directory - server.middlewares.use(staticDistMiddleware(server)); + // Invalidate the router config + ctx!.isDirty = true; + const graph = server.environments?.ssr?.moduleGraph; + if (graph) { + const mod = graph.getModuleById('@qwik-router-config'); + if (mod) { + graph.invalidateModule(mod); + } } - // qwik router middleware injected BEFORE vite internal middlewares - // and BEFORE @qwik.dev/core/optimizer/vite middlewares - // handles only known user defined routes - server.middlewares.use(ssrDevMiddleware(ctx, server)); + }); + + return () => { + // this hits only when Vite hasn't handled client assets + server.middlewares.use(async (req, res, next) => { + // TODO more flexible entry points, like importing `render` from `src/server` + const mod = (await server.ssrLoadModule('src/entry.ssr')) as { default: Render }; + if (!mod.default) { + console.error('No default export found in src/entry.ssr'); + return next(); + } + if (ctx!.isDirty) { + await build(ctx!); + ctx!.isDirty = false; + } + + // entry.ts files + const entry = ctx!.entries.find( + (e) => req.url === `${server.config.base}${e.chunkFileName}` + ); + if (entry) { + const entryContents = await server.transformRequest( + `/@fs${entry.filePath.startsWith('/') ? '' : '/'}${entry.filePath}` + ); + + if (entryContents) { + res.setHeader('Content-Type', 'text/javascript'); + res.end(entryContents.code); + } else { + next(); + } + return; + } + // in dev mode, serve a placeholder service worker + if (req.url === `${server.config.base}service-worker.js`) { + res.setHeader('Content-Type', 'text/javascript'); + res.end( + `/* Qwik Router Dev Service Worker */` + + `self.addEventListener('install', () => self.skipWaiting());` + + `self.addEventListener('activate', (ev) => ev.waitUntil(self.clients.claim()));` + ); + return; + } + + const documentHead: DocumentHeadValue = { + // Vite normally injects these + links: [...server.moduleGraph.idToModuleMap.keys()] + .filter((id) => id.endsWith('.css')) + .map((id) => { + const { url } = server.moduleGraph.idToModuleMap.get(id)!; + return { + key: id, + rel: 'stylesheet', + href: url, + }; + }), + scripts: [ + { + key: 'vite-dev-client', + props: { + type: 'module', + src: '/@vite/client', + }, + }, + ], + }; + + // Grab tags from other plugins + const fakeHTML = 'HEADBODY'; + for (const plugin of server.config.plugins) { + const handler = + (plugin.transformIndexHtml as any)?.handler || plugin.transformIndexHtml; + if (typeof handler === 'function') { + const result = await (handler(fakeHTML, {}) as ReturnType< + Extract + >); + if (result) { + if (typeof result === 'string' || 'html' in result) { + console.warn( + 'plugin', + plugin.name, + 'returned a string for transformIndexHtml, which is not supported by qwik-router' + ); + } else { + // TODO add these tags to the document + console.warn('not implemented yet: adding these tags to the document', result); + } + } + } + } + + const render = (async (opts: RendererOptions) => { + return await mod.default({ + ...opts, + serverData: { ...opts.serverData, documentHead }, + } as RendererOutputOptions as any); + }) as Render; + + const { createQwikRouter } = (await server.ssrLoadModule( + '@qwik.dev/router/middleware/node' + )) as typeof import('@qwik.dev/router/middleware/node'); + try { + const { router, staticFile, notFound } = createQwikRouter({ render }); + staticFile(req, res, () => { + router(req, res, () => { + notFound(req, res, next); + }); + }); + } catch (e: any) { + if (e instanceof Error) { + server.ssrFixStacktrace(e); + formatError(e); + } + next(e); + return; + } + }); }; }, @@ -160,12 +295,9 @@ function qwikRouterPlugin(userOpts?: QwikRouterVitePluginOptions): any { }, resolveId(id) { - if (id === QWIK_SERIALIZER) { - return join(rootDir!, id); - } if (id === QWIK_ROUTER_CONFIG_ID || id === QWIK_ROUTER_ENTRIES_ID) { return { - id: join(rootDir!, id), + id, // user entries added in the routes, like src/routes/service-worker.ts // are added as dynamic imports to the qwik-router-config as a way to create // a new entry point for the build. Ensure these are not treeshaken. @@ -173,7 +305,7 @@ function qwikRouterPlugin(userOpts?: QwikRouterVitePluginOptions): any { }; } if (id === QWIK_ROUTER_SW_REGISTER) { - return join(rootDir!, id); + return id; } return null; }, @@ -184,14 +316,10 @@ function qwikRouterPlugin(userOpts?: QwikRouterVitePluginOptions): any { // @qwik-router-entries return generateQwikRouterEntries(ctx); } - const isSerializer = id.endsWith(QWIK_SERIALIZER); - if (isSerializer) { - return `export {_deserialize, _serialize, _verifySerializable} from '@qwik.dev/core'`; - } const isRouterConfig = id.endsWith(QWIK_ROUTER_CONFIG_ID); const isSwRegister = id.endsWith(QWIK_ROUTER_SW_REGISTER); if (isRouterConfig || isSwRegister) { - if (!ctx.isDevServer && ctx.isDirty) { + if (ctx.isDirty) { await build(ctx); ctx.isDirty = false; @@ -284,7 +412,7 @@ function qwikRouterPlugin(userOpts?: QwikRouterVitePluginOptions): any { closeBundle: { sequential: true, async handler() { - if (ctx?.target === 'ssr' && !ctx?.isDevServer && outDir) { + if (ctx?.target === 'ssr' && outDir) { await generateServerPackageJson(outDir, ssrFormat); } }, diff --git a/packages/qwik-router/src/buildtime/vite/qwik-router.buildtime.api.md b/packages/qwik-router/src/buildtime/vite/qwik-router.buildtime.api.md index 45b8ce8ea23..e4b0a4908d5 100644 --- a/packages/qwik-router/src/buildtime/vite/qwik-router.buildtime.api.md +++ b/packages/qwik-router/src/buildtime/vite/qwik-router.buildtime.api.md @@ -56,6 +56,7 @@ export interface QwikRouterVitePluginOptions extends Omit; + staticImportRoutes?: boolean; } // (No @packageDocumentation comment for this package) diff --git a/packages/qwik-router/src/buildtime/vite/types.ts b/packages/qwik-router/src/buildtime/vite/types.ts index f6ccdfb21b0..39054e3f50f 100644 --- a/packages/qwik-router/src/buildtime/vite/types.ts +++ b/packages/qwik-router/src/buildtime/vite/types.ts @@ -32,6 +32,8 @@ export interface QwikRouterVitePluginOptions extends Omit; imageOptimization?: ImageOptimizationOptions; + /** Whether to use static imports for route modules (layout and index files). Defaults to `false`. */ + staticImportRoutes?: boolean; } /** @public */ diff --git a/packages/qwik-router/src/middleware/azure-swa/index.ts b/packages/qwik-router/src/middleware/azure-swa/index.ts index 449c8c3a7b3..f395ae6ad8d 100644 --- a/packages/qwik-router/src/middleware/azure-swa/index.ts +++ b/packages/qwik-router/src/middleware/azure-swa/index.ts @@ -1,5 +1,4 @@ import type { AzureFunction, Context, HttpRequest } from '@azure/functions'; -import { _deserialize, _serialize, _verifySerializable } from '@qwik.dev/core/internal'; import { setServerPlatform } from '@qwik.dev/core/server'; import type { ServerRenderOptions, @@ -11,7 +10,6 @@ import { requestHandler, } from '@qwik.dev/router/middleware/request-handler'; import { parseString } from 'set-cookie-parser'; -import type { QwikSerializer } from '../request-handler/types'; // @qwik.dev/router/middleware/azure-swa @@ -56,11 +54,6 @@ export function createQwikRouter(opts: QwikRouterAzureOptions): AzureFunction { console.warn('qwikCityPlan is deprecated. Simply remove it.'); opts.qwikRouterConfig = opts.qwikCityPlan; } - const qwikSerializer: QwikSerializer = { - _deserialize, - _serialize, - _verifySerializable, - }; if (opts.manifest) { setServerPlatform(opts.manifest); } @@ -116,7 +109,7 @@ export function createQwikRouter(opts: QwikRouterAzureOptions): AzureFunction { }; // send request to qwik router request handler - const handledResponse = await requestHandler(serverRequestEv, opts, qwikSerializer); + const handledResponse = await requestHandler(serverRequestEv, opts); if (handledResponse) { handledResponse.completion.then((err) => { if (err) { diff --git a/packages/qwik-router/src/middleware/bun/index.ts b/packages/qwik-router/src/middleware/bun/index.ts index 8ad8f2a24c0..8eb77f18726 100644 --- a/packages/qwik-router/src/middleware/bun/index.ts +++ b/packages/qwik-router/src/middleware/bun/index.ts @@ -1,5 +1,4 @@ /// -import { _deserialize, _serialize, _verifySerializable } from '@qwik.dev/core/internal'; import { setServerPlatform } from '@qwik.dev/core/server'; import type { ClientConn, @@ -24,9 +23,8 @@ export function createQwikRouter(opts: QwikRouterBunOptions) { } // @qwik.dev/router/middleware/bun // still missing from bun: last check was bun version 1.1.8 - globalThis.TextEncoderStream ||= _TextEncoderStream_polyfill; + globalThis.TextEncoderStream ||= _TextEncoderStream_polyfill as any; - const qwikSerializer = { _deserialize, _serialize, _verifySerializable }; if (opts.manifest) { setServerPlatform(opts.manifest); } @@ -66,7 +64,7 @@ export function createQwikRouter(opts: QwikRouterBunOptions) { }; // send request to qwik router request handler - const handledResponse = await requestHandler(serverRequestEv, opts, qwikSerializer); + const handledResponse = await requestHandler(serverRequestEv, opts); if (handledResponse) { handledResponse.completion.then((v) => { if (v) { diff --git a/packages/qwik-router/src/middleware/cloudflare-pages/index.ts b/packages/qwik-router/src/middleware/cloudflare-pages/index.ts index 86d8b408bf3..c0f62871be6 100644 --- a/packages/qwik-router/src/middleware/cloudflare-pages/index.ts +++ b/packages/qwik-router/src/middleware/cloudflare-pages/index.ts @@ -1,4 +1,3 @@ -import { _deserialize, _serialize, _verifySerializable } from '@qwik.dev/core/internal'; import { setServerPlatform } from '@qwik.dev/core/server'; import type { ServerRenderOptions, @@ -25,9 +24,8 @@ export function createQwikRouter(opts: QwikRouterCloudflarePagesOptions) { // this will throw if CF compatibility_date < 2022-11-30 new globalThis.TextEncoderStream(); } catch { - globalThis.TextEncoderStream = _TextEncoderStream_polyfill; + globalThis.TextEncoderStream = _TextEncoderStream_polyfill as any; } - const qwikSerializer = { _deserialize, _serialize, _verifySerializable }; if (opts.manifest) { setServerPlatform(opts.manifest); } @@ -92,7 +90,7 @@ export function createQwikRouter(opts: QwikRouterCloudflarePagesOptions) { }; // send request to qwik router request handler - const handledResponse = await requestHandler(serverRequestEv, opts, qwikSerializer); + const handledResponse = await requestHandler(serverRequestEv, opts); if (handledResponse) { handledResponse.completion.then((v) => { if (v) { diff --git a/packages/qwik-router/src/middleware/deno/index.ts b/packages/qwik-router/src/middleware/deno/index.ts index 87b07248c97..8d3ccd3f2ab 100644 --- a/packages/qwik-router/src/middleware/deno/index.ts +++ b/packages/qwik-router/src/middleware/deno/index.ts @@ -1,4 +1,3 @@ -import { _deserialize, _serialize, _verifySerializable } from '@qwik.dev/core/internal'; import { setServerPlatform } from '@qwik.dev/core/server'; import type { ClientConn, @@ -14,7 +13,6 @@ import { import { MIME_TYPES } from '../request-handler/mime-types'; // @ts-ignore import { extname, fromFileUrl, join } from 'https://deno.land/std/path/mod.ts'; -import type { QwikSerializer } from '../request-handler/types'; // @qwik.dev/router/middleware/deno @@ -36,11 +34,6 @@ export function createQwikRouter(opts: QwikRouterDenoOptions) { console.warn('qwikCityPlan is deprecated. Simply remove it.'); opts.qwikRouterConfig = opts.qwikCityPlan; } - const qwikSerializer: QwikSerializer = { - _deserialize, - _serialize, - _verifySerializable, - }; if (opts.manifest) { setServerPlatform(opts.manifest); } @@ -80,7 +73,7 @@ export function createQwikRouter(opts: QwikRouterDenoOptions) { }; // send request to qwik router request handler - const handledResponse = await requestHandler(serverRequestEv, opts, qwikSerializer); + const handledResponse = await requestHandler(serverRequestEv, opts); if (handledResponse) { handledResponse.completion.then((v) => { if (v) { diff --git a/packages/qwik-router/src/middleware/netlify-edge/index.ts b/packages/qwik-router/src/middleware/netlify-edge/index.ts index ff990a6a293..54982702c32 100644 --- a/packages/qwik-router/src/middleware/netlify-edge/index.ts +++ b/packages/qwik-router/src/middleware/netlify-edge/index.ts @@ -4,7 +4,6 @@ import type { ServerRequestEvent, } from '@qwik.dev/router/middleware/request-handler'; -import { _deserialize, _serialize, _verifySerializable } from '@qwik.dev/core/internal'; import { setServerPlatform } from '@qwik.dev/core/server'; import { getNotFound, @@ -12,7 +11,6 @@ import { mergeHeadersCookies, requestHandler, } from '@qwik.dev/router/middleware/request-handler'; -import type { QwikSerializer } from '../request-handler/types'; // @qwik.dev/router/middleware/netlify-edge @@ -23,11 +21,6 @@ export function createQwikRouter(opts: QwikRouterNetlifyOptions) { console.warn('qwikCityPlan is deprecated. Simply remove it.'); opts.qwikRouterConfig = opts.qwikCityPlan; } - const qwikSerializer: QwikSerializer = { - _deserialize, - _serialize, - _verifySerializable, - }; if (opts.manifest) { setServerPlatform(opts.manifest); } @@ -65,7 +58,7 @@ export function createQwikRouter(opts: QwikRouterNetlifyOptions) { }; // send request to qwik router request handler - const handledResponse = await requestHandler(serverRequestEv, opts, qwikSerializer); + const handledResponse = await requestHandler(serverRequestEv, opts); if (handledResponse) { handledResponse.completion.then((v) => { if (v) { diff --git a/packages/qwik-router/src/middleware/node/index.ts b/packages/qwik-router/src/middleware/node/index.ts index 460e43a58bb..a09764ca540 100644 --- a/packages/qwik-router/src/middleware/node/index.ts +++ b/packages/qwik-router/src/middleware/node/index.ts @@ -1,4 +1,3 @@ -import { _deserialize, _serialize, _verifySerializable } from '@qwik.dev/core/internal'; import { setServerPlatform } from '@qwik.dev/core/server'; import type { ClientConn, ServerRenderOptions } from '@qwik.dev/router/middleware/request-handler'; import { @@ -12,7 +11,6 @@ import type { Http2ServerRequest } from 'node:http2'; import { basename, extname, join } from 'node:path'; import { fileURLToPath } from 'node:url'; import { MIME_TYPES } from '../request-handler/mime-types'; -import type { QwikSerializer } from '../request-handler/types'; import { computeOrigin, fromNodeHttp, getUrl } from './http'; // @qwik.dev/router/middleware/node @@ -24,12 +22,6 @@ export function createQwikRouter(opts: QwikRouterNodeRequestOptions | QwikCityNo opts.qwikRouterConfig = opts.qwikCityPlan; } - const qwikSerializer: QwikSerializer = { - _deserialize, - _serialize, - _verifySerializable, - }; - if (opts.manifest) { setServerPlatform(opts.manifest); } @@ -50,7 +42,7 @@ export function createQwikRouter(opts: QwikRouterNodeRequestOptions | QwikCityNo 'server', opts.getClientConn ); - const handled = await requestHandler(serverRequestEv, opts, qwikSerializer); + const handled = await requestHandler(serverRequestEv, opts); if (handled) { const err = await handled.completion; if (err) { diff --git a/packages/qwik-router/src/middleware/request-handler/middleware.request-handler.api.md b/packages/qwik-router/src/middleware/request-handler/middleware.request-handler.api.md index b6051a88803..b430ba87592 100644 --- a/packages/qwik-router/src/middleware/request-handler/middleware.request-handler.api.md +++ b/packages/qwik-router/src/middleware/request-handler/middleware.request-handler.api.md @@ -5,7 +5,6 @@ ```ts import type { Action } from '@qwik.dev/router'; -import type { _deserialize } from '@qwik.dev/core/internal'; import type { EnvGetter as EnvGetter_2 } from '@qwik.dev/router/middleware/request-handler'; import type { FailReturn } from '@qwik.dev/router'; import type { Loader as Loader_2 } from '@qwik.dev/router'; @@ -18,9 +17,7 @@ import { RequestEvent as RequestEvent_2 } from '@qwik.dev/router/middleware/requ import type { RequestHandler as RequestHandler_2 } from '@qwik.dev/router/middleware/request-handler'; import type { ResolveSyncValue as ResolveSyncValue_2 } from '@qwik.dev/router/middleware/request-handler'; import { SerializationStrategy } from '@qwik.dev/core/internal'; -import type { _serialize } from '@qwik.dev/core/internal'; import type { ValueOrPromise } from '@qwik.dev/core'; -import type { _verifySerializable } from '@qwik.dev/core/internal'; // @public (undocumented) export class AbortMessage { @@ -171,11 +168,10 @@ export const RequestEvShareQData = "qData"; // @public (undocumented) export type RequestHandler = (ev: RequestEvent) => Promise | void; -// Warning: (ae-forgotten-export) The symbol "QwikSerializer" needs to be exported by the entry point index.d.ts // Warning: (ae-forgotten-export) The symbol "QwikRouterRun" needs to be exported by the entry point index.d.ts // // @public -export function requestHandler(serverRequestEv: ServerRequestEvent, opts: ServerRenderOptions, qwikSerializer: QwikSerializer): Promise | null>; +export function requestHandler(serverRequestEv: ServerRequestEvent, opts: ServerRenderOptions): Promise | null>; // @public (undocumented) export interface ResolveSyncValue { diff --git a/packages/qwik-router/src/middleware/request-handler/request-event.ts b/packages/qwik-router/src/middleware/request-handler/request-event.ts index 9cdadfe9055..2c83d569123 100644 --- a/packages/qwik-router/src/middleware/request-handler/request-event.ts +++ b/packages/qwik-router/src/middleware/request-handler/request-event.ts @@ -1,5 +1,5 @@ import type { ValueOrPromise } from '@qwik.dev/core'; -import { _UNINITIALIZED, type SerializationStrategy } from '@qwik.dev/core/internal'; +import { _deserialize, _UNINITIALIZED, type SerializationStrategy } from '@qwik.dev/core/internal'; import { QDATA_KEY } from '../../runtime/src/constants'; import { LoadedRouteProp, @@ -23,7 +23,6 @@ import { encoder, getRouteLoaderPromise } from './resolve-request-handlers'; import type { CacheControl, CacheControlTarget, - QwikSerializer, RequestEvent, RequestEventCommon, RequestEventLoader, @@ -37,7 +36,6 @@ import { IsQData, QDATA_JSON, QDATA_JSON_LEN } from './user-response'; const RequestEvLoaders = Symbol('RequestEvLoaders'); const RequestEvMode = Symbol('RequestEvMode'); const RequestEvRoute = Symbol('RequestEvRoute'); -export const RequestEvQwikSerializer = Symbol('RequestEvQwikSerializer'); export const RequestEvLoaderSerializationStrategyMap = Symbol( 'RequestEvLoaderSerializationStrategyMap' ); @@ -55,7 +53,6 @@ export function createRequestEvent( loadedRoute: LoadedRoute | null, requestHandlers: RequestHandler[], basePathname: string, - qwikSerializer: QwikSerializer, resolved: (response: any) => void ) { const { request, platform, env } = serverRequestEv; @@ -160,7 +157,6 @@ export function createRequestEvent( get [RequestEvRoute]() { return loadedRoute; }, - [RequestEvQwikSerializer]: qwikSerializer, cookie, headers, env, @@ -213,7 +209,7 @@ export function createRequestEvent( } if (loaders[id] === _UNINITIALIZED) { const isDev = getRequestMode(requestEv) === 'dev'; - await getRouteLoaderPromise(loaderOrAction, loaders, requestEv, isDev, qwikSerializer); + await getRouteLoaderPromise(loaderOrAction, loaders, requestEv, isDev); } } @@ -295,7 +291,7 @@ export function createRequestEvent( if (requestData !== undefined) { return requestData; } - return (requestData = parseRequest(requestEv, sharedMap, qwikSerializer)); + return (requestData = parseRequest(requestEv, sharedMap)); }, json: (statusCode: number, data: any) => { @@ -341,7 +337,6 @@ export interface RequestEventInternal extends RequestEvent, RequestEventLoader { [RequestEvLoaderSerializationStrategyMap]: Map; [RequestEvMode]: ServerRequestMode; [RequestEvRoute]: LoadedRoute | null; - [RequestEvQwikSerializer]: QwikSerializer; /** * Check if this request is already written to. @@ -384,8 +379,7 @@ const ABORT_INDEX = Number.MAX_SAFE_INTEGER; const parseRequest = async ( { request, method, query }: RequestEventInternal, - sharedMap: Map, - qwikSerializer: QwikSerializer + sharedMap: Map ): Promise => { const type = request.headers.get('content-type')?.split(/[;,]/, 1)[0].trim() ?? ''; if (type === 'application/x-www-form-urlencoded' || type === 'multipart/form-data') { @@ -400,13 +394,13 @@ const parseRequest = async ( const data = query.get(QDATA_KEY); if (data) { try { - return qwikSerializer._deserialize(decodeURIComponent(data)) as JSONValue; + return _deserialize(decodeURIComponent(data)) as JSONValue; } catch { // } } } - return qwikSerializer._deserialize(await request.text()) as JSONValue; + return _deserialize(await request.text()) as JSONValue; } return undefined; }; diff --git a/packages/qwik-router/src/middleware/request-handler/request-handler.ts b/packages/qwik-router/src/middleware/request-handler/request-handler.ts index 3d6c19eac68..be1c45552a9 100644 --- a/packages/qwik-router/src/middleware/request-handler/request-handler.ts +++ b/packages/qwik-router/src/middleware/request-handler/request-handler.ts @@ -2,7 +2,7 @@ import type { Render } from '@qwik.dev/core/server'; import { loadRoute } from '../../runtime/src/routing'; import type { QwikRouterConfig, RebuildRouteInfoInternal } from '../../runtime/src/types'; import { renderQwikMiddleware, resolveRequestHandlers } from './resolve-request-handlers'; -import type { QwikSerializer, ServerRenderOptions, ServerRequestEvent } from './types'; +import type { ServerRenderOptions, ServerRequestEvent } from './types'; import { getRouteMatchPathname, runQwikRouter, type QwikRouterRun } from './user-response'; /** @@ -17,8 +17,7 @@ let qwikRouterConfigActual: QwikRouterConfig; */ export async function requestHandler( serverRequestEv: ServerRequestEvent, - opts: ServerRenderOptions, - qwikSerializer: QwikSerializer + opts: ServerRenderOptions ): Promise | null> { const { render, checkOrigin } = opts; let { qwikRouterConfig } = opts; @@ -70,8 +69,7 @@ export async function requestHandler( route, requestHandlers, rebuildRouteInfo, - qwikRouterConfig.basePathname, - qwikSerializer + qwikRouterConfig.basePathname ); } return null; diff --git a/packages/qwik-router/src/middleware/request-handler/resolve-request-handlers.ts b/packages/qwik-router/src/middleware/request-handler/resolve-request-handlers.ts index 5a272ba6021..b73fc9e0816 100644 --- a/packages/qwik-router/src/middleware/request-handler/resolve-request-handlers.ts +++ b/packages/qwik-router/src/middleware/request-handler/resolve-request-handlers.ts @@ -1,5 +1,5 @@ import { type QRL } from '@qwik.dev/core'; -import { _UNINITIALIZED } from '@qwik.dev/core/internal'; +import { _serialize, _UNINITIALIZED, _verifySerializable } from '@qwik.dev/core/internal'; import type { Render, RenderToStringResult } from '@qwik.dev/core/server'; import { QACTION_KEY, QFN_KEY, QLOADER_KEY } from '../../runtime/src/constants'; import { @@ -17,7 +17,6 @@ import { import { HttpStatus } from './http-status-codes'; import { RequestEvIsRewrite, - RequestEvQwikSerializer, RequestEvShareQData, RequestEvShareServerTiming, RequestEvSharedActionId, @@ -28,13 +27,7 @@ import { type RequestEventInternal, } from './request-event'; import { getQwikRouterServerData } from './response-page'; -import type { - ErrorCodes, - QwikSerializer, - RequestEvent, - RequestEventBase, - RequestHandler, -} from './types'; +import type { ErrorCodes, RequestEvent, RequestEventBase, RequestHandler } from './types'; import { IsQData, QDATA_JSON } from './user-response'; // Import separately to avoid duplicate imports in the vite dev server import { RedirectMessage, ServerError } from '@qwik.dev/router/middleware/request-handler'; @@ -189,7 +182,6 @@ export function actionsMiddleware(routeActions: ActionInternal[]): RequestHandle const { method } = requestEv; const loaders = getRequestLoaders(requestEv); const isDev = getRequestMode(requestEv) === 'dev'; - const qwikSerializer = requestEv[RequestEvQwikSerializer]; if (isDev && method === 'GET') { if (requestEv.query.has(QACTION_KEY)) { console.warn( @@ -224,7 +216,7 @@ export function actionsMiddleware(routeActions: ActionInternal[]): RequestHandle ) : await action.__qrl.call(requestEv, result.data as JSONObject, requestEv); if (isDev) { - verifySerializable(qwikSerializer, actionResolved, action.__qrl); + verifySerializable(actionResolved, action.__qrl); } loaders[selectedActionId] = actionResolved; } @@ -243,7 +235,6 @@ export function loadersMiddleware(routeLoaders: LoaderInternal[]): RequestHandle } const loaders = getRequestLoaders(requestEv); const isDev = getRequestMode(requestEv) === 'dev'; - const qwikSerializer = requestEv[RequestEvQwikSerializer]; if (routeLoaders.length > 0) { let currentLoaders: LoaderInternal[] = []; if (requestEv.query.has(QLOADER_KEY)) { @@ -259,7 +250,7 @@ export function loadersMiddleware(routeLoaders: LoaderInternal[]): RequestHandle currentLoaders = routeLoaders; } const resolvedLoadersPromises = currentLoaders.map((loader) => - getRouteLoaderPromise(loader, loaders, requestEv, isDev, qwikSerializer) + getRouteLoaderPromise(loader, loaders, requestEv, isDev) ); await Promise.all(resolvedLoadersPromises); } @@ -270,8 +261,7 @@ export async function getRouteLoaderPromise( loader: LoaderInternal, loaders: Record, requestEv: RequestEventInternal, - isDev: boolean, - qwikSerializer: QwikSerializer + isDev: boolean ) { const loaderId = loader.__id; loaders[loaderId] = runValidators( @@ -298,7 +288,7 @@ export async function getRouteLoaderPromise( loaders[loaderId] = resolvedLoader(); } else { if (isDev) { - verifySerializable(qwikSerializer, resolvedLoader, loader.__qrl); + verifySerializable(resolvedLoader, loader.__qrl); } loaders[loaderId] = resolvedLoader; } @@ -351,7 +341,6 @@ async function pureServerFunction(ev: RequestEvent) { ) { ev.exit(); const isDev = getRequestMode(ev) === 'dev'; - const qwikSerializer = (ev as RequestEventInternal)[RequestEvQwikSerializer]; const data = await ev.parseBody(); if (Array.isArray(data)) { const [qrl, ...args] = data; @@ -377,9 +366,9 @@ async function pureServerFunction(ev: RequestEvent) { const stream = writable.getWriter(); for await (const item of result) { if (isDev) { - verifySerializable(qwikSerializer, item, qrl); + verifySerializable(item, qrl); } - const message = await qwikSerializer._serialize([item]); + const message = await _serialize([item]); if (ev.signal.aborted) { break; } @@ -387,9 +376,9 @@ async function pureServerFunction(ev: RequestEvent) { } stream.close(); } else { - verifySerializable(qwikSerializer, result, qrl); + verifySerializable(result, qrl); ev.headers.set('Content-Type', 'application/qwik-json'); - const message = await qwikSerializer._serialize([result]); + const message = await _serialize([result]); ev.send(200, message); } return; @@ -424,9 +413,9 @@ function fixTrailingSlash(ev: RequestEvent) { } } -export function verifySerializable(qwikSerializer: QwikSerializer, data: any, qrl: QRL) { +export function verifySerializable(data: any, qrl: QRL) { try { - qwikSerializer._verifySerializable(data, undefined); + _verifySerializable(data, undefined); } catch (e: any) { if (e instanceof Error && qrl.dev) { (e as any).loc = qrl.dev; @@ -640,9 +629,8 @@ export async function renderQData(requestEv: RequestEvent) { isRewrite: requestEv.sharedMap.get(RequestEvIsRewrite), }; const writer = requestEv.getWritableStream().getWriter(); - const qwikSerializer = (requestEv as RequestEventInternal)[RequestEvQwikSerializer]; // write just the page json data to the response body - const data = await qwikSerializer._serialize([qData]); + const data = await _serialize([qData]); writer.write(encoder.encode(data)); requestEv.sharedMap.set(RequestEvShareQData, qData); diff --git a/packages/qwik-router/src/middleware/request-handler/user-response.ts b/packages/qwik-router/src/middleware/request-handler/user-response.ts index f37ca8a8c17..e92f0a0edb7 100644 --- a/packages/qwik-router/src/middleware/request-handler/user-response.ts +++ b/packages/qwik-router/src/middleware/request-handler/user-response.ts @@ -1,3 +1,4 @@ +import { _serialize } from '@qwik.dev/core/internal'; import type { LoadedRoute, RebuildRouteInfoInternal, @@ -5,20 +6,15 @@ import type { RequestHandler, } from '../../runtime/src/types'; import { getErrorHtml } from './error-handler'; -import { - RequestEvQwikSerializer, - createRequestEvent, - getRequestMode, - type RequestEventInternal, -} from './request-event'; +import { createRequestEvent, getRequestMode, type RequestEventInternal } from './request-event'; import { encoder } from './resolve-request-handlers'; -import type { QwikSerializer, ServerRequestEvent, StatusCodes } from './types'; +import type { ServerRequestEvent, StatusCodes } from './types'; // Import separately to avoid duplicate imports in the vite dev server import { AbortMessage, RedirectMessage, - ServerError, RewriteMessage, + ServerError, } from '@qwik.dev/router/middleware/request-handler'; export interface QwikRouterRun { @@ -46,8 +42,7 @@ export function runQwikRouter( loadedRoute: LoadedRoute | null, requestHandlers: RequestHandler[], rebuildRouteInfo: RebuildRouteInfoInternal, - basePathname = '/', - qwikSerializer: QwikSerializer + basePathname = '/' ): QwikRouterRun { let resolve: (value: T) => void; const responsePromise = new Promise((r) => (resolve = r)); @@ -56,7 +51,6 @@ export function runQwikRouter( loadedRoute, requestHandlers, basePathname, - qwikSerializer, resolve! ); @@ -100,9 +94,8 @@ async function runNext( const status = e.status as StatusCodes; const accept = requestEv.request.headers.get('Accept'); if (accept && !accept.includes('text/html')) { - const qwikSerializer = requestEv[RequestEvQwikSerializer]; requestEv.headers.set('Content-Type', 'application/qwik-json'); - requestEv.send(status, await qwikSerializer._serialize([e.data])); + requestEv.send(status, await _serialize([e.data])); } else { const html = getErrorHtml(e.status, e.data); requestEv.html(status, html); diff --git a/packages/qwik-router/src/middleware/vercel-edge/index.ts b/packages/qwik-router/src/middleware/vercel-edge/index.ts index ce4d5205a72..5795ccba2b3 100644 --- a/packages/qwik-router/src/middleware/vercel-edge/index.ts +++ b/packages/qwik-router/src/middleware/vercel-edge/index.ts @@ -1,4 +1,3 @@ -import { _deserialize, _serialize, _verifySerializable } from '@qwik.dev/core/internal'; import { setServerPlatform } from '@qwik.dev/core/server'; import type { ServerRenderOptions, @@ -10,7 +9,6 @@ import { mergeHeadersCookies, requestHandler, } from '@qwik.dev/router/middleware/request-handler'; -import type { QwikSerializer } from '../request-handler/types'; // @qwik.dev/router/middleware/vercel-edge const COUNTRY_HEADER_NAME = 'x-vercel-ip-country'; @@ -26,11 +24,6 @@ export function createQwikRouter(opts: QwikRouterVercelEdgeOptions) { console.warn('qwikCityPlan is deprecated. Simply remove it.'); opts.qwikRouterConfig = opts.qwikCityPlan; } - const qwikSerializer: QwikSerializer = { - _deserialize, - _serialize, - _verifySerializable, - }; if (opts.manifest) { setServerPlatform(opts.manifest); } @@ -92,7 +85,7 @@ export function createQwikRouter(opts: QwikRouterVercelEdgeOptions) { }; // send request to qwik router request handler - const handledResponse = await requestHandler(serverRequestEv, opts, qwikSerializer); + const handledResponse = await requestHandler(serverRequestEv, opts); if (handledResponse) { handledResponse.completion.then((v) => { if (v) { diff --git a/packages/qwik-router/src/runtime/src/deepFreeze.ts b/packages/qwik-router/src/runtime/src/deepFreeze.ts new file mode 100644 index 00000000000..5fe48422008 --- /dev/null +++ b/packages/qwik-router/src/runtime/src/deepFreeze.ts @@ -0,0 +1,13 @@ +export const deepFreeze = (obj: any) => { + if (obj == null) { + return obj; + } + Object.getOwnPropertyNames(obj).forEach((prop) => { + const value = obj[prop]; + // we assume that a frozen object is a circular reference and fully deep frozen + if (value && typeof value === 'object' && !Object.isFrozen(value)) { + deepFreeze(value); + } + }); + return Object.freeze(obj); +}; diff --git a/packages/qwik-router/src/runtime/src/routing.ts b/packages/qwik-router/src/runtime/src/routing.ts index 0412bb8ed95..bf14faebf3f 100644 --- a/packages/qwik-router/src/runtime/src/routing.ts +++ b/packages/qwik-router/src/runtime/src/routing.ts @@ -11,7 +11,7 @@ import { RouteDataProp, type RouteModule, } from './types'; -import { deepFreeze } from './utils'; +import { deepFreeze } from './deepFreeze'; /** LoadRoute() runs in both client and server. */ export const loadRoute = async ( diff --git a/packages/qwik-router/src/runtime/src/server-functions.ts b/packages/qwik-router/src/runtime/src/server-functions.ts index fafddd70ab2..323486d30a1 100644 --- a/packages/qwik-router/src/runtime/src/server-functions.ts +++ b/packages/qwik-router/src/runtime/src/server-functions.ts @@ -64,7 +64,7 @@ import type { import { useAction, useLocation, useQwikRouterEnv } from './use-functions'; import type { FormSubmitCompletedDetail } from './form-component'; -import { deepFreeze } from './utils'; +import { deepFreeze } from './deepFreeze'; /** @internal */ export const routeActionQrl = (( diff --git a/packages/qwik-router/src/runtime/src/utils.ts b/packages/qwik-router/src/runtime/src/utils.ts index 1f0df86e857..4d8ee6bd871 100644 --- a/packages/qwik-router/src/runtime/src/utils.ts +++ b/packages/qwik-router/src/runtime/src/utils.ts @@ -88,20 +88,6 @@ export const isPromise = (value: any): value is Promise => { return value && typeof value.then === 'function'; }; -export const deepFreeze = (obj: any) => { - if (obj == null) { - return obj; - } - Object.getOwnPropertyNames(obj).forEach((prop) => { - const value = obj[prop]; - // we assume that a frozen object is a circular reference and fully deep frozen - if (value && typeof value === 'object' && !Object.isFrozen(value)) { - deepFreeze(value); - } - }); - return Object.freeze(obj); -}; - export const createLoaderSignal = ( loadersObject: Record, loaderId: string, diff --git a/packages/qwik-router/src/ssg/index.ts b/packages/qwik-router/src/ssg/index.ts index 4bdcc82a8ea..4f34acbc971 100644 --- a/packages/qwik-router/src/ssg/index.ts +++ b/packages/qwik-router/src/ssg/index.ts @@ -10,7 +10,7 @@ import type { SsgOptions, SsgRenderOptions, SsgResult } from './types'; */ export async function generate(opts: SsgOptions) { const ssgPlatform = await getEntryModule(); - const result: SsgResult = await ssgPlatform.generate(opts); + const result: SsgResult = (await ssgPlatform.generate(opts)) as any; return result; } @@ -20,27 +20,16 @@ export type { SsgResult as StaticGenerateResult, }; -function getEntryModulePath() { +function getEntryModule() { if (isDeno()) { - return './deno.mjs'; + return import('./deno'); } - if (isNode() || isBun()) { - if (isCjs()) { - return './node.cjs'; - } - return './node.mjs'; + if (isBun() || isNode()) { + return import('./node'); } throw new Error(`Unsupported platform`); } -function getEntryModule() { - const entryModule = getEntryModulePath(); - if (isCjs()) { - return require(entryModule); - } - return import(entryModule); -} - function isDeno() { return typeof Deno !== 'undefined'; } @@ -53,10 +42,5 @@ function isNode() { return !isBun() && !isDeno() && typeof process !== 'undefined' && !!process.versions?.node; } -function isCjs() { - const req = 'require'; - return isNode() && typeof globalThis[req] === 'function'; -} - declare const Deno: any; declare const Bun: any; diff --git a/packages/qwik-router/src/ssg/worker-thread.ts b/packages/qwik-router/src/ssg/worker-thread.ts index 884a85b1ae3..4c1beb02120 100644 --- a/packages/qwik-router/src/ssg/worker-thread.ts +++ b/packages/qwik-router/src/ssg/worker-thread.ts @@ -1,19 +1,21 @@ -import { _deserialize, _serialize, _verifySerializable } from '@qwik.dev/core/internal'; +import { _serialize } from '@qwik.dev/core/internal'; import type { ServerRequestEvent } from '@qwik.dev/router/middleware/request-handler'; -import { requestHandler, RequestEvShareQData } from '@qwik.dev/router/middleware/request-handler'; +import { RequestEvShareQData, requestHandler } from '@qwik.dev/router/middleware/request-handler'; import { WritableStream } from 'node:stream/web'; import { pathToFileURL } from 'node:url'; -import type { QwikSerializer } from '../middleware/request-handler/types'; import type { ClientPageData } from '../runtime/src/types'; import type { SsgHandlerOptions, SsgRoute, - StaticStreamWriter, SsgWorkerRenderResult, + StaticStreamWriter, System, } from './types'; export async function workerThread(sys: System) { + // Special case: we allow importing qwik again in the same process, it's ok because we just needed the serializer + // TODO: remove this once we have vite environment API and no longer need the serializer separately + delete (globalThis as any).__qwik; const ssgOpts = sys.getOptions(); const pendingPromises = new Set>(); @@ -42,6 +44,9 @@ export async function workerThread(sys: System) { } export async function createSingleThreadWorker(sys: System) { + // Special case: we allow importing qwik again in the same process, it's ok because we just needed the serializer + // TODO: remove this once we have vite environment API and no longer need the serializer separately + delete (globalThis as any).__qwik; const ssgOpts = sys.getOptions(); const pendingPromises = new Set>(); @@ -66,11 +71,6 @@ async function workerRender( pendingPromises: Set>, callback: (result: SsgWorkerRenderResult) => void ) { - const qwikSerializer: QwikSerializer = { - _deserialize, - _serialize, - _verifySerializable, - }; // pathname and origin already normalized at this point const url = new URL(staticRoute.pathname, opts.origin); @@ -231,7 +231,7 @@ async function workerRender( }, }; - const promise = requestHandler(requestCtx, opts, qwikSerializer) + const promise = requestHandler(requestCtx, opts) .then((rsp) => { if (rsp != null) { return rsp.completion.then((r) => { diff --git a/packages/qwik/package.json b/packages/qwik/package.json index ed53ae91d10..29ef03b710f 100644 --- a/packages/qwik/package.json +++ b/packages/qwik/package.json @@ -180,7 +180,7 @@ "license": "MIT", "main": "./src/index.ts", "peerDependencies": { - "prettier": "*", + "prettier": "3.6.2", "vite": ">=5 <8", "vitest": ">=2 <4" }, diff --git a/packages/qwik/src/core/index.ts b/packages/qwik/src/core/index.ts index 7f65ca8ec20..8f4b917bb80 100644 --- a/packages/qwik/src/core/index.ts +++ b/packages/qwik/src/core/index.ts @@ -1,3 +1,14 @@ +////////////////////////////////////////////////////////////////////////////////////////// +// Protect against duplicate imports +////////////////////////////////////////////////////////////////////////////////////////// +import { version } from './version'; +if ((globalThis as any).__qwik) { + throw new Error( + `Qwik version ${(globalThis as any).__qwik} already imported while importing ${version}. Verify external vs bundled imports etc.` + ); +} +(globalThis as any).__qwik = version; + ////////////////////////////////////////////////////////////////////////////////////////// // Developer Core API ////////////////////////////////////////////////////////////////////////////////////////// diff --git a/packages/qwik/src/optimizer/src/platform.ts b/packages/qwik/src/optimizer/src/platform.ts index c080142bdda..fe480a4b975 100644 --- a/packages/qwik/src/optimizer/src/platform.ts +++ b/packages/qwik/src/optimizer/src/platform.ts @@ -177,18 +177,10 @@ export async function loadPlatformBinding(sys: OptimizerSystem) { const mod = await sys.dynamicImport(`../bindings/qwik.wasm.cjs`); const fs: typeof import('fs') = await sys.dynamicImport('node:fs'); - return new Promise((resolve, reject) => { - fs.readFile(wasmPath, (err, buf) => { - if (err != null) { - reject(err); - } else { - resolve(buf); - } - }); - }) - .then((buf) => WebAssembly.compile(buf)) - .then((wasm) => mod.default(wasm)) - .then(() => mod); + const buf = await fs.promises.readFile(wasmPath); + const wasm = await WebAssembly.compile(buf as any); + await mod.default(wasm); + return mod; } if (sysEnv === 'webworker' || sysEnv === 'browsermain') { @@ -234,25 +226,17 @@ export async function loadPlatformBinding(sys: OptimizerSystem) { if (globalThis.IS_ESM) { if (sysEnv === 'node' || sysEnv === 'bun') { - // CJS WASM Node.js + // ESM WASM Node.js const url: typeof import('url') = await sys.dynamicImport('node:url'); const __dirname = sys.path.dirname(url.fileURLToPath(import.meta.url)); const wasmPath = sys.path.join(__dirname, '..', 'bindings', 'qwik_wasm_bg.wasm'); const mod = await sys.dynamicImport(`../bindings/qwik.wasm.mjs`); const fs: typeof import('fs') = await sys.dynamicImport('node:fs'); - return new Promise((resolve, reject) => { - fs.readFile(wasmPath, (err, buf) => { - if (err != null) { - reject(err); - } else { - resolve(buf); - } - }); - }) - .then((buf) => WebAssembly.compile(buf)) - .then((wasm) => mod.default(wasm)) - .then(() => mod); + const buf = await fs.promises.readFile(wasmPath); + const wasm = await WebAssembly.compile(buf as any); + await mod.default(wasm); + return mod; } else { const module = await sys.dynamicImport(`../bindings/qwik.wasm.mjs`); await module.default(); diff --git a/packages/qwik/src/optimizer/src/plugins/plugin.ts b/packages/qwik/src/optimizer/src/plugins/plugin.ts index 07cf6b17b8f..c2b56ea7f6b 100644 --- a/packages/qwik/src/optimizer/src/plugins/plugin.ts +++ b/packages/qwik/src/optimizer/src/plugins/plugin.ts @@ -131,15 +131,20 @@ export function createQwikPlugin(optimizerOptions: OptimizerOptions = {}) { }; let lazyNormalizePath: (id: string) => string; - let maybeFs: typeof import('fs') | undefined; + let maybeFs: typeof import('fs') | undefined | null; const init = async () => { if (!internalOptimizer) { internalOptimizer = await createOptimizer(optimizerOptions); lazyNormalizePath = makeNormalizePath(internalOptimizer.sys); try { - maybeFs = await internalOptimizer.sys.dynamicImport('node:fs'); + // only try once, don't spam the console + if (maybeFs === undefined) { + maybeFs = await internalOptimizer.sys.dynamicImport('node:fs'); + } } catch { - // ignore + // eslint-disable-next-line no-console + console.log('node:fs not available, disabling automatic manifest reading'); + maybeFs = null; } } }; diff --git a/packages/qwik/src/optimizer/src/plugins/vite.ts b/packages/qwik/src/optimizer/src/plugins/vite.ts index 79181cfc8ed..5fb04e1ea09 100644 --- a/packages/qwik/src/optimizer/src/plugins/vite.ts +++ b/packages/qwik/src/optimizer/src/plugins/vite.ts @@ -5,7 +5,6 @@ import type { GlobalInjections, Optimizer, OptimizerOptions, - OptimizerSystem, QwikManifest, TransformModule, } from '../types'; @@ -25,7 +24,6 @@ import { type NormalizedQwikPluginOptions, type QwikBuildMode, type QwikBuildTarget, - type QwikPackages, type QwikPluginOptions, } from './plugin'; import { createRollupError, normalizeRollupOutputOptions } from './rollup'; @@ -96,7 +94,6 @@ export function qwikVite(qwikViteOpts: QwikVitePluginOptions = {}): any { async config(viteConfig, viteEnv) { await qwikPlugin.init(); - const sys = qwikPlugin.getSys(); const path = qwikPlugin.getPath(); let target: QwikBuildTarget; @@ -149,8 +146,6 @@ export function qwikVite(qwikViteOpts: QwikVitePluginOptions = {}): any { if (input && typeof input === 'string') { input = [input]; } - const shouldFindVendors = - !qwikViteOpts.disableVendorScan && (target !== 'lib' || viteCommand === 'serve'); viteAssetsDir = viteConfig.build?.assetsDir; const useAssetsDir = target === 'client' && !!viteAssetsDir && viteAssetsDir !== '_astro'; const pluginOpts: QwikPluginOptions = { @@ -208,8 +203,6 @@ export function qwikVite(qwikViteOpts: QwikVitePluginOptions = {}): any { clientDevInput = qwikPlugin.normalizePath(clientDevInput); } - const vendorRoots = shouldFindVendors ? await findQwikRoots(sys, sys.cwd()) : []; - const vendorIds = vendorRoots.map((v) => v.id); const isDevelopment = buildMode === 'development'; const qDevKey = 'globalThis.qDev'; const qTestKey = 'globalThis.qTest'; @@ -221,17 +214,11 @@ export function qwikVite(qwikViteOpts: QwikVitePluginOptions = {}): any { const updatedViteConfig: UserConfig = { ssr: { - noExternal: [ - QWIK_CORE_ID, - QWIK_CORE_INTERNAL_ID, - QWIK_CORE_SERVER, - QWIK_BUILD_ID, - ...vendorIds, - ], + noExternal: [QWIK_CORE_ID, QWIK_CORE_INTERNAL_ID, QWIK_CORE_SERVER, QWIK_BUILD_ID], }, envPrefix: ['VITE_', 'PUBLIC_'], resolve: { - dedupe: [...DEDUPE, ...vendorIds], + dedupe: [...DEDUPE], conditions: buildMode === 'production' && target === 'client' ? ['min'] : [], alias: { '@builder.io/qwik': '@qwik.dev/core', @@ -264,8 +251,6 @@ export function qwikVite(qwikViteOpts: QwikVitePluginOptions = {}): any { QWIK_JSX_DEV_RUNTIME_ID, QWIK_BUILD_ID, QWIK_CLIENT_MANIFEST_ID, - // Sadly we can't specify **/*.qwik.*, so we need to specify each one - ...vendorIds, // v1 imports, they are removed during transform but vite doesn't know that '@builder.io/qwik', '@builder.io/qwik-city', @@ -371,13 +356,7 @@ export function qwikVite(qwikViteOpts: QwikVitePluginOptions = {}): any { async configResolved(config) { basePathname = config.base; if (!(basePathname.startsWith('/') && basePathname.endsWith('/'))) { - // TODO v2: make this an error - console.error( - `warning: vite's config.base must begin and end with /. This will be an error in v2. If you have a valid use case, please open an issue.` - ); - if (!basePathname.endsWith('/')) { - basePathname += '/'; - } + throw new Error(`vite's config.base must begin and end with /`); } const useSourcemap = !!config.build.sourcemap; if (useSourcemap && qwikViteOpts.optimizerOptions?.sourcemap === undefined) { @@ -715,90 +694,6 @@ export async function render(document, rootNode, opts) { }`; } -async function findDepPkgJsonPath(sys: OptimizerSystem, dep: string, parent: string) { - const fs: typeof import('fs') = await sys.dynamicImport('node:fs'); - let root = parent; - while (root) { - const pkg = sys.path.join(root, 'node_modules', dep, 'package.json'); - try { - await fs.promises.access(pkg); - // use 'node:fs' version to match 'vite:resolve' and avoid realpath.native quirk - // https://github.com/sveltejs/vite-plugin-svelte/issues/525#issuecomment-1355551264 - return fs.promises.realpath(pkg); - } catch { - //empty - } - const nextRoot = sys.path.dirname(root); - if (nextRoot === root) { - break; - } - root = nextRoot; - } - return undefined; -} - -const findQwikRoots = async ( - sys: OptimizerSystem, - packageJsonDir: string -): Promise => { - const paths = new Map(); - if (sys.env === 'node' || sys.env === 'bun') { - const fs: typeof import('fs') = await sys.dynamicImport('node:fs'); - let prevPackageJsonDir: string | undefined; - do { - try { - const data = await fs.promises.readFile(sys.path.join(packageJsonDir, 'package.json'), { - encoding: 'utf-8', - }); - - try { - const packageJson = JSON.parse(data); - const dependencies = packageJson['dependencies']; - const devDependencies = packageJson['devDependencies']; - - const packages: string[] = []; - if (typeof dependencies === 'object') { - packages.push(...Object.keys(dependencies)); - } - if (typeof devDependencies === 'object') { - packages.push(...Object.keys(devDependencies)); - } - - const basedir = sys.cwd(); - await Promise.all( - packages.map(async (id) => { - const pkgJsonPath = await findDepPkgJsonPath(sys, id, basedir); - if (pkgJsonPath) { - const pkgJsonContent = await fs.promises.readFile(pkgJsonPath, 'utf-8'); - const pkgJson = JSON.parse(pkgJsonContent); - const qwikPath = pkgJson['qwik']; - if (!qwikPath) { - return; - } - // Support multiple paths - const allPaths = Array.isArray(qwikPath) ? qwikPath : [qwikPath]; - for (const p of allPaths) { - paths.set( - await fs.promises.realpath(sys.path.resolve(sys.path.dirname(pkgJsonPath), p)), - id - ); - } - } - }) - ); - } catch (e) { - console.error(e); - } - } catch { - // ignore errors if package.json not found - } - prevPackageJsonDir = packageJsonDir; - packageJsonDir = sys.path.dirname(packageJsonDir); - } while (packageJsonDir !== prevPackageJsonDir); - } - return Array.from(paths).map(([path, id]) => ({ path, id })); -}; - export const isNotNullable = (v: T): v is NonNullable => { return v != null; }; diff --git a/packages/qwik/src/optimizer/src/plugins/vite.unit.ts b/packages/qwik/src/optimizer/src/plugins/vite.unit.ts index 7526318d77e..da0a5df2a85 100644 --- a/packages/qwik/src/optimizer/src/plugins/vite.unit.ts +++ b/packages/qwik/src/optimizer/src/plugins/vite.unit.ts @@ -42,7 +42,6 @@ const noExternal = [ '@qwik.dev/core/internal', '@qwik.dev/core/server', '@qwik.dev/core/build', - '@qwik.dev/router', ]; const excludeDeps = [ @@ -53,7 +52,6 @@ const excludeDeps = [ '@qwik.dev/core/jsx-dev-runtime', '@qwik.dev/core/build', '@qwik-client-manifest', - '@qwik.dev/router', '@builder.io/qwik', '@builder.io/qwik-city', ]; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a51701c002a..7b6bb53a456 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,8 +7,9 @@ settings: overrides: '@builder.io/qwik': npm:@qwik.dev/core@* '@builder.io/qwik-city': npm:@qwik.dev/router + '@types/estree': 1.0.8 prettier: 3.6.2 - typescript: 5.8.3 + typescript: 5.9.2 vfile: 6.0.3 patchedDependencies: @@ -22,7 +23,7 @@ importers: dependencies: esbuild-plugin-raw: specifier: ^0.2.0 - version: 0.2.0(esbuild@0.25.8) + version: 0.2.0(esbuild@0.25.9) devDependencies: '@changesets/cli': specifier: 2.29.5 @@ -34,8 +35,8 @@ importers: specifier: 6.1.0 version: 6.1.0 '@clack/prompts': - specifier: 0.7.0 - version: 0.7.0 + specifier: 0.11.0 + version: 0.11.0 '@eslint/js': specifier: 9.33.0 version: 9.33.0 @@ -44,10 +45,10 @@ importers: version: 3.1.0(acorn@8.15.0) '@microsoft/api-documenter': specifier: 7.26.31 - version: 7.26.31(@types/node@24.2.1) + version: 7.26.31(@types/node@24.3.0) '@microsoft/api-extractor': specifier: 7.52.10 - version: 7.52.10(@types/node@24.2.1) + version: 7.52.10(@types/node@24.3.0) '@napi-rs/cli': specifier: 2.18.4 version: 2.18.4 @@ -85,8 +86,8 @@ importers: specifier: 5.0.3 version: 5.0.3 '@types/node': - specifier: 24.2.1 - version: 24.2.1 + specifier: 24.3.0 + version: 24.3.0 '@types/path-browserify': specifier: 1.0.3 version: 1.0.3 @@ -107,10 +108,10 @@ importers: version: 1.0.2 '@vitejs/plugin-basic-ssl': specifier: 2.1.0 - version: 2.1.0(vite@7.1.0(@types/node@24.2.1)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1)) + version: 2.1.0(vite@7.1.2(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.4)(yaml@2.8.1)) '@vitest/coverage-v8': specifier: 3.2.4 - version: 3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.2.1)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1)) + version: 3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.4)(yaml@2.8.1)) all-contributors-cli: specifier: 6.26.1 version: 6.26.1 @@ -130,14 +131,14 @@ importers: specifier: 16.5.0 version: 16.5.0 esbuild: - specifier: 0.25.8 - version: 0.25.8 + specifier: 0.25.9 + version: 0.25.9 eslint: specifier: 9.33.0 - version: 9.33.0(jiti@2.4.2) + version: 9.33.0(jiti@2.5.1) eslint-plugin-import: specifier: 2.32.0 - version: 2.32.0(eslint@9.33.0(jiti@2.4.2)) + version: 2.32.0(eslint@9.33.0(jiti@2.5.1)) eslint-plugin-no-only-tests: specifier: 3.3.0 version: 3.3.0 @@ -157,11 +158,11 @@ importers: specifier: 0.13.0 version: 0.13.0 memfs: - specifier: 4.34.0 - version: 4.34.0 + specifier: 4.36.0 + version: 4.36.0 monaco-editor: - specifier: 0.45.0 - version: 0.45.0 + specifier: 0.52.2 + version: 0.52.2 mri: specifier: 1.2.0 version: 1.2.0 @@ -185,7 +186,7 @@ importers: version: 2.4.2 rollup: specifier: '>= 4.44.0' - version: 4.44.0 + version: 4.46.2 semver: specifier: 7.7.2 version: 7.7.2 @@ -196,50 +197,50 @@ importers: specifier: 1.0.4 version: 1.0.4 source-map: - specifier: 0.7.4 - version: 0.7.4 + specifier: 0.7.6 + version: 0.7.6 svgo: specifier: 3.3.2 version: 3.3.2 syncpack: specifier: 13.0.4 - version: 13.0.4(typescript@5.8.3) + version: 13.0.4(typescript@5.9.2) terser: specifier: 5.43.1 version: 5.43.1 tmp: - specifier: 0.2.3 - version: 0.2.3 + specifier: 0.2.5 + version: 0.2.5 tree-kill: specifier: 1.2.2 version: 1.2.2 tsx: - specifier: 4.20.3 - version: 4.20.3 + specifier: 4.20.4 + version: 4.20.4 typescript: - specifier: 5.8.3 - version: 5.8.3 + specifier: 5.9.2 + version: 5.9.2 typescript-eslint: specifier: 8.39.1 - version: 8.39.1(eslint@9.33.0(jiti@2.4.2))(typescript@5.8.3) + version: 8.39.1(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2) vfile: specifier: 6.0.3 version: 6.0.3 vite: - specifier: 7.1.0 - version: 7.1.0(@types/node@24.2.1)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1) + specifier: 7.1.2 + version: 7.1.2(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.4)(yaml@2.8.1) vite-imagetools: specifier: 7.1.0 - version: 7.1.0(rollup@4.44.0) + version: 7.1.0(rollup@4.46.2) vite-plugin-dts: specifier: 4.5.4 - version: 4.5.4(@types/node@24.2.1)(rollup@4.44.0)(typescript@5.8.3)(vite@7.1.0(@types/node@24.2.1)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1)) + version: 4.5.4(@types/node@24.3.0)(rollup@4.46.2)(typescript@5.9.2)(vite@7.1.2(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.4)(yaml@2.8.1)) vite-tsconfig-paths: specifier: 5.1.4 - version: 5.1.4(typescript@5.8.3)(vite@7.1.0(@types/node@24.2.1)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1)) + version: 5.1.4(typescript@5.9.2)(vite@7.1.2(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.4)(yaml@2.8.1)) vitest: specifier: 3.2.4 - version: 3.2.4(@types/debug@4.1.12)(@types/node@24.2.1)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1) + version: 3.2.4(@types/debug@4.1.12)(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.4)(yaml@2.8.1) watchlist: specifier: 0.3.1 version: 0.3.1 @@ -255,14 +256,14 @@ importers: e2e/qwik-cli-e2e: dependencies: kleur: - specifier: 4.1.5 + specifier: ^4.1.5 version: 4.1.5 packages/create-qwik: devDependencies: '@clack/prompts': - specifier: 0.7.0 - version: 0.7.0 + specifier: 0.11.0 + version: 0.11.0 '@types/yargs': specifier: 17.0.33 version: 17.0.33 @@ -283,28 +284,28 @@ importers: version: 4.14.3 '@builder.io/qwik': specifier: npm:@qwik.dev/core@* - version: '@qwik.dev/core@2.0.0-beta.7(prettier@3.6.2)(vite@7.1.0(@types/node@24.2.1)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1))(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.2.1)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1))' + version: '@qwik.dev/core@2.0.0-beta.7(prettier@3.6.2)(vite@7.1.2(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.4)(yaml@2.8.1))(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.4)(yaml@2.8.1))' '@emotion/react': specifier: 11.14.0 - version: 11.14.0(@types/react@19.1.10)(react@18.3.1) + version: 11.14.0(@types/react@19.1.10)(react@19.1.1) '@emotion/styled': specifier: 11.14.1 - version: 11.14.1(@emotion/react@11.14.0(@types/react@19.1.10)(react@18.3.1))(@types/react@19.1.10)(react@18.3.1) + version: 11.14.1(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react@19.1.1) '@modular-forms/qwik': specifier: 0.23.1 - version: 0.23.1(@qwik.dev/core@2.0.0-beta.7(prettier@3.6.2)(vite@7.1.0(@types/node@24.2.1)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1))(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.2.1)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1))) + version: 0.23.1(@qwik.dev/core@2.0.0-beta.7(prettier@3.6.2)(vite@7.1.2(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.4)(yaml@2.8.1))(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.4)(yaml@2.8.1))) '@mui/material': specifier: 5.16.4 - version: 5.16.4(@emotion/react@11.14.0(@types/react@19.1.10)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.10)(react@18.3.1))(@types/react@19.1.10)(react@18.3.1))(@types/react@19.1.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 5.16.4(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@mui/system': specifier: 5.16.4 - version: 5.16.4(@emotion/react@11.14.0(@types/react@19.1.10)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.10)(react@18.3.1))(@types/react@19.1.10)(react@18.3.1))(@types/react@19.1.10)(react@18.3.1) + version: 5.16.4(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react@19.1.1) '@mui/x-data-grid': specifier: 6.20.4 - version: 6.20.4(@mui/material@5.16.4(@emotion/react@11.14.0(@types/react@19.1.10)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.10)(react@18.3.1))(@types/react@19.1.10)(react@18.3.1))(@types/react@19.1.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mui/system@5.16.4(@emotion/react@11.14.0(@types/react@19.1.10)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.10)(react@18.3.1))(@types/react@19.1.10)(react@18.3.1))(@types/react@19.1.10)(react@18.3.1))(@types/react@19.1.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 6.20.4(@mui/material@5.16.4(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@mui/system@5.16.4(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@qwik-ui/headless': specifier: 0.6.7 - version: 0.6.7(@qwik.dev/core@2.0.0-beta.7(prettier@3.6.2)(vite@7.1.0(@types/node@24.2.1)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1))(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.2.1)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1))) + version: 0.6.7(@qwik.dev/core@2.0.0-beta.7(prettier@3.6.2)(vite@7.1.2(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.4)(yaml@2.8.1))(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.4)(yaml@2.8.1))) '@qwik.dev/core': specifier: workspace:* version: link:../qwik @@ -318,23 +319,23 @@ importers: specifier: workspace:* version: link:../qwik-router '@shikijs/colorized-brackets': - specifier: 3.9.1 - version: 3.9.1 + specifier: 3.9.2 + version: 3.9.2 '@shikijs/rehype': - specifier: 3.9.1 - version: 3.9.1 + specifier: 3.9.2 + version: 3.9.2 '@shikijs/transformers': - specifier: 3.9.1 - version: 3.9.1 + specifier: 3.9.2 + version: 3.9.2 '@shikijs/types': - specifier: 3.9.1 - version: 3.9.1 + specifier: 3.9.2 + version: 3.9.2 '@supabase/supabase-js': specifier: 2.53.0 version: 2.53.0 '@tailwindcss/vite': - specifier: 4.1.11 - version: 4.1.11(vite@7.1.0(@types/node@24.2.1)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1)) + specifier: 4.1.12 + version: 4.1.12(vite@7.1.2(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.4)(yaml@2.8.1)) '@types/leaflet': specifier: 1.9.20 version: 1.9.20 @@ -345,14 +346,14 @@ importers: specifier: 19.1.10 version: 19.1.10 '@types/react-dom': - specifier: 18.3.0 - version: 18.3.0 + specifier: 19.1.7 + version: 19.1.7(@types/react@19.1.10) '@unpic/core': specifier: 0.0.42 version: 0.0.42 '@unpic/qwik': specifier: 0.0.38 - version: 0.0.38(@qwik.dev/core@2.0.0-beta.7(prettier@3.6.2)(vite@7.1.0(@types/node@24.2.1)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1))(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.2.1)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1))) + version: 0.0.38(@qwik.dev/core@2.0.0-beta.7(prettier@3.6.2)(vite@7.1.2(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.4)(yaml@2.8.1))(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.4)(yaml@2.8.1))) algoliasearch: specifier: 4.16.0 version: 4.16.0 @@ -382,25 +383,25 @@ importers: version: 1.30.0 puppeteer: specifier: 22.13.1 - version: 22.13.1(typescript@5.8.3) + version: 22.13.1(typescript@5.9.2) qwik-image: specifier: 0.0.16 version: 0.0.16 react: - specifier: 18.3.1 - version: 18.3.1 + specifier: 19.1.1 + version: 19.1.1 react-dom: - specifier: 18.3.1 - version: 18.3.1(react@18.3.1) + specifier: 19.1.1 + version: 19.1.1(react@19.1.1) shiki: - specifier: 3.9.1 - version: 3.9.1 + specifier: 3.9.2 + version: 3.9.2 snarkdown: specifier: 2.0.0 version: 2.0.0 tailwindcss: - specifier: 4.1.11 - version: 4.1.11 + specifier: 4.1.12 + version: 4.1.12 terser: specifier: 5.43.1 version: 5.43.1 @@ -408,8 +409,8 @@ importers: specifier: 2.3.0 version: 2.3.0 typescript: - specifier: 5.8.3 - version: 5.8.3 + specifier: 5.9.2 + version: 5.9.2 undici: specifier: '*' version: 6.18.2 @@ -417,14 +418,14 @@ importers: specifier: 0.33.3 version: 0.33.3 vite: - specifier: 7.1.0 - version: 7.1.0(@types/node@24.2.1)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1) + specifier: 7.1.2 + version: 7.1.2(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.4)(yaml@2.8.1) vite-plugin-inspect: specifier: 11.3.2 - version: 11.3.2(vite@7.1.0(@types/node@24.2.1)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1)) + version: 11.3.2(vite@7.1.2(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.4)(yaml@2.8.1)) vite-tsconfig-paths: specifier: 5.1.4 - version: 5.1.4(typescript@5.8.3)(vite@7.1.0(@types/node@24.2.1)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1)) + version: 5.1.4(typescript@5.9.2)(vite@7.1.2(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.4)(yaml@2.8.1)) wrangler: specifier: 3.65.1 version: 3.65.1 @@ -433,7 +434,7 @@ importers: dependencies: '@typescript-eslint/utils': specifier: ^8.38.0 - version: 8.39.1(eslint@9.33.0(jiti@2.4.2))(typescript@5.8.3) + version: 8.39.1(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2) jsx-ast-utils: specifier: ^3.3.5 version: 3.3.5 @@ -449,7 +450,7 @@ importers: version: 1.0.8 '@typescript-eslint/rule-tester': specifier: 8.38.0 - version: 8.38.0(eslint@9.33.0(jiti@2.4.2))(typescript@5.8.3) + version: 8.38.0(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2) redent: specifier: 4.0.0 version: 4.0.0 @@ -460,8 +461,8 @@ importers: specifier: 0.8.0 version: 0.8.0 '@libsql/client': - specifier: ^0.15.10 - version: 0.15.10 + specifier: ^0.15.11 + version: 0.15.11 '@modular-forms/qwik': specifier: ^0.24.0 version: 0.24.0 @@ -479,11 +480,11 @@ importers: version: 0.31.4 drizzle-orm: specifier: 0.44.4 - version: 0.44.4(@libsql/client@0.15.10)(@opentelemetry/api@1.8.0)(bun-types@1.2.20(@types/react@19.1.10)) + version: 0.44.4(@libsql/client@0.15.11)(@opentelemetry/api@1.8.0)(bun-types@1.2.20(@types/react@19.1.10)) devDependencies: '@builder.io/vite-plugin-macro': specifier: 0.0.7 - version: 0.0.7(@types/node@24.2.1)(lightningcss@1.30.1)(rollup@4.46.2)(terser@5.43.1) + version: 0.0.7(@types/node@24.3.0)(lightningcss@1.30.1)(rollup@4.46.2)(terser@5.43.1) '@eslint/js': specifier: 9.33.0 version: 9.33.0 @@ -497,20 +498,20 @@ importers: specifier: workspace:* version: link:../qwik-router '@tailwindcss/vite': - specifier: 4.1.11 - version: 4.1.11(vite@7.1.0(@types/node@24.2.1)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1)) + specifier: 4.1.12 + version: 4.1.12(vite@7.1.2(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.4)(yaml@2.8.1)) '@types/density-clustering': specifier: 1.3.3 version: 1.3.3 '@types/node': - specifier: 24.2.1 - version: 24.2.1 + specifier: 24.3.0 + version: 24.3.0 autoprefixer: specifier: 10.4.21 version: 10.4.21(postcss@8.5.6) eslint: specifier: 9.33.0 - version: 9.33.0(jiti@2.4.2) + version: 9.33.0(jiti@2.5.1) eslint-plugin-qwik: specifier: workspace:* version: link:../eslint-plugin-qwik @@ -519,7 +520,7 @@ importers: version: 16.3.0 netlify-cli: specifier: 21.5.0 - version: 21.5.0(@types/express@5.0.3)(@types/node@24.2.1)(picomatch@4.0.3)(rollup@4.46.2) + version: 21.5.0(@types/express@5.0.3)(@types/node@24.3.0)(picomatch@4.0.3)(rollup@4.46.2) postcss: specifier: 8.5.6 version: 8.5.6 @@ -530,26 +531,26 @@ importers: specifier: 0.6.14 version: 0.6.14(prettier-plugin-jsdoc@1.3.3(prettier@3.6.2))(prettier@3.6.2) tailwindcss: - specifier: 4.1.11 - version: 4.1.11 + specifier: 4.1.12 + version: 4.1.12 typescript: - specifier: 5.8.3 - version: 5.8.3 + specifier: 5.9.2 + version: 5.9.2 typescript-eslint: specifier: 8.39.1 - version: 8.39.1(eslint@9.33.0(jiti@2.4.2))(typescript@5.8.3) + version: 8.39.1(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2) undici: specifier: '*' version: 6.18.2 vite: - specifier: 7.1.0 - version: 7.1.0(@types/node@24.2.1)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1) + specifier: 7.1.2 + version: 7.1.2(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.4)(yaml@2.8.1) vite-tsconfig-paths: specifier: 5.1.4 - version: 5.1.4(typescript@5.8.3)(vite@7.1.0(@types/node@24.2.1)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1)) + version: 5.1.4(typescript@5.9.2)(vite@7.1.2(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.4)(yaml@2.8.1)) vitest: specifier: 3.2.4 - version: 3.2.4(@types/debug@4.1.12)(@types/node@24.2.1)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1) + version: 3.2.4(@types/debug@4.1.12)(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.4)(yaml@2.8.1) zod: specifier: 3.25.48 version: 3.25.48 @@ -586,7 +587,7 @@ importers: version: 23.0.0 vitest: specifier: 3.2.4 - version: 3.2.4(@types/debug@4.1.12)(@types/node@24.2.1)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1) + version: 3.2.4(@types/debug@4.1.12)(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.4)(yaml@2.8.1) packages/qwik-dom: {} @@ -599,60 +600,105 @@ importers: specifier: 19.1.10 version: 19.1.10 '@types/react-dom': - specifier: 18.3.0 - version: 18.3.0 + specifier: 19.1.7 + version: 19.1.7(@types/react@19.1.10) react: - specifier: 18.3.1 - version: 18.3.1 + specifier: 19.1.1 + version: 19.1.1 react-dom: - specifier: 18.3.1 - version: 18.3.1(react@18.3.1) + specifier: 19.1.1 + version: 19.1.1(react@19.1.1) typescript: - specifier: 5.8.3 - version: 5.8.3 + specifier: 5.9.2 + version: 5.9.2 vite: - specifier: 7.1.0 - version: 7.1.0(@types/node@24.2.1)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1) + specifier: 7.1.2 + version: 7.1.2(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.4)(yaml@2.8.1) packages/qwik-router: dependencies: + '@azure/functions': + specifier: 3.5.1 + version: 3.5.1 '@mdx-js/mdx': specifier: ^3.1.0 version: 3.1.0(acorn@8.15.0) + '@netlify/edge-functions': + specifier: ^2.17.0 + version: 2.17.0 '@types/mdx': specifier: ^2.0.13 version: 2.0.13 + estree-util-value-to-estree: + specifier: ^3.4.0 + version: 3.4.0 + github-slugger: + specifier: ^2.0.0 + version: 2.0.0 + hast-util-heading-rank: + specifier: ^2.1.1 + version: 2.1.1 + hast-util-to-string: + specifier: ^2.0.0 + version: 2.0.0 + kleur: + specifier: ^4.1.5 + version: 4.1.5 + marked: + specifier: ^12.0.2 + version: 12.0.2 + mdast-util-mdx: + specifier: ^3.0.0 + version: 3.0.0 + refractor: + specifier: ^4.8.1 + version: 4.8.1 + rehype-autolink-headings: + specifier: ^7.1.0 + version: 7.1.0 + remark-frontmatter: + specifier: ^5.0.0 + version: 5.0.0 + remark-gfm: + specifier: ^4.0.1 + version: 4.0.1 + set-cookie-parser: + specifier: ^2.7.1 + version: 2.7.1 source-map: - specifier: ^0.7.4 - version: 0.7.4 + specifier: ^0.7.6 + version: 0.7.6 svgo: specifier: ^3.3.2 version: 3.3.2 - undici: - specifier: '*' - version: 6.18.2 + typescript: + specifier: 5.9.2 + version: 5.9.2 + unified: + specifier: ^11.0.5 + version: 11.0.5 + unist-util-visit: + specifier: ^5.0.0 + version: 5.0.0 valibot: specifier: '>=0.36.0 <2' - version: 0.42.1(typescript@5.8.3) + version: 0.42.1(typescript@5.9.2) vfile: specifier: 6.0.3 version: 6.0.3 vite-imagetools: specifier: ^7.1.0 version: 7.1.0(rollup@4.46.2) + yaml: + specifier: ^2.8.1 + version: 2.8.1 zod: - specifier: 3.25.48 + specifier: ^3.25.40 version: 3.25.48 devDependencies: - '@azure/functions': - specifier: 3.5.1 - version: 3.5.1 '@microsoft/api-extractor': specifier: 7.52.10 - version: 7.52.10(@types/node@24.2.1) - '@netlify/edge-functions': - specifier: 2.17.0 - version: 2.17.0 + version: 7.52.10(@types/node@24.3.0) '@qwik.dev/core': specifier: workspace:* version: link:../qwik @@ -660,71 +706,20 @@ importers: specifier: 4.0.4 version: 4.0.4 '@types/node': - specifier: 24.2.1 - version: 24.2.1 + specifier: 24.3.0 + version: 24.3.0 '@types/refractor': - specifier: 3.4.1 - version: 3.4.1 + specifier: 4.0.0 + version: 4.0.0 '@types/set-cookie-parser': specifier: 2.4.10 version: 2.4.10 - estree-util-value-to-estree: - specifier: 3.4.0 - version: 3.4.0 - github-slugger: - specifier: 2.0.0 - version: 2.0.0 - hast-util-heading-rank: - specifier: 2.1.1 - version: 2.1.1 - hast-util-to-string: - specifier: 2.0.0 - version: 2.0.0 - kleur: - specifier: 4.1.5 - version: 4.1.5 - marked: - specifier: 12.0.2 - version: 12.0.2 - mdast-util-mdx: - specifier: 3.0.0 - version: 3.0.0 - refractor: - specifier: 4.8.1 - version: 4.8.1 - rehype-autolink-headings: - specifier: 7.1.0 - version: 7.1.0 - remark-frontmatter: - specifier: 5.0.0 - version: 5.0.0 - remark-gfm: - specifier: 4.0.1 - version: 4.0.1 - set-cookie-parser: - specifier: 2.7.1 - version: 2.7.1 tsm: specifier: 2.3.0 version: 2.3.0 - typescript: - specifier: 5.8.3 - version: 5.8.3 - unified: - specifier: 11.0.5 - version: 11.0.5 - unist-util-visit: - specifier: 5.0.0 - version: 5.0.0 uvu: specifier: 0.5.6 version: 0.5.6 - vite: - specifier: 7.1.0 - version: 7.1.0(@types/node@24.2.1)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1) - yaml: - specifier: 2.6.1 - version: 2.6.1 packages/supabase-auth-helpers-qwik: devDependencies: @@ -834,10 +829,6 @@ packages: '@azure/functions@3.5.1': resolution: {integrity: sha512-6UltvJiuVpvHSwLcK/Zc6NfUwlkDLOFFx97BHCJzlWNsfiWwzwmTsxJXg4kE/LemKTHxPpfoPE+kOJ8hAdiKFQ==} - '@babel/code-frame@7.24.6': - resolution: {integrity: sha512-ZJhac6FkEd1yhG2AHOmfcXG4ceoLltoCVJjN5XsWN9BifBQr+cHJbWi0h68HZuSORq+3WtJ2z0hwF2NG1b5kcA==} - engines: {node: '>=6.9.0'} - '@babel/code-frame@7.27.1': resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} engines: {node: '>=6.9.0'} @@ -854,10 +845,6 @@ packages: resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} engines: {node: '>=6.9.0'} - '@babel/highlight@7.24.6': - resolution: {integrity: sha512-2YnuOp4HAk2BsBrJJvYCbItHx0zWscI1C3zgWkz+wDyD9I7GIVrfnLyrR4Y1VR+7p+chAEcrgRQYZAGIKMV7vQ==} - engines: {node: '>=6.9.0'} - '@babel/parser@7.27.5': resolution: {integrity: sha512-OsQd175SxWkGlzbny8J3K8TnnDD0N3lrIUtB92xwyRpzaenGZhxDvxN/JgU00U3CDZNj9tPuDJ5H0WS4Nt3vKg==} engines: {node: '>=6.0.0'} @@ -959,13 +946,11 @@ packages: '@changesets/write@0.4.0': resolution: {integrity: sha512-CdTLvIOPiCNuH71pyDu3rA+Q0n65cmAbXnwWH84rKGiFumFzkmHNT8KHTMEchcxN+Kl8I54xGUhJ7l3E7X396Q==} - '@clack/core@0.3.4': - resolution: {integrity: sha512-H4hxZDXgHtWTwV3RAVenqcC4VbJZNegbBjlPvzOzCouXtS2y3sDvlO3IsbrPNWuLWPPlYVYPghQdSF64683Ldw==} + '@clack/core@0.5.0': + resolution: {integrity: sha512-p3y0FIOwaYRUPRcMO7+dlmLh8PSRcrjuTndsiA0WAFbWES0mLZlrjVoBRZ9DzkPFJZG6KGkJmoEAY0ZcVWTkow==} - '@clack/prompts@0.7.0': - resolution: {integrity: sha512-0MhX9/B4iL6Re04jPrttDm+BsP8y6mS7byuv0BvXgdXhbV5PdlsHt55dvNsuBCPZ7xq1oTAOOuotR9NFbQyMSA==} - bundledDependencies: - - is-unicode-supported + '@clack/prompts@0.11.0': + resolution: {integrity: sha512-pMN5FcrEw9hUkZA4f+zLlzivQSeQf5dRGJjSUbvVYDLvpKCdQx5OaknvKzgbtXOizhP+SJJJjqEbOe55uKKfAw==} '@cloudflare/kv-asset-handler@0.3.4': resolution: {integrity: sha512-YLPHc8yASwjNkmcDMQMY35yiWjoKAKnhUbPRszBRS0YgH+IXtsMp61j+yTcnCE3oO2DgP0U3iejLC8FTtKDC8Q==} @@ -1025,9 +1010,6 @@ packages: '@emotion/babel-plugin@11.13.5': resolution: {integrity: sha512-pxHCpT2ex+0q+HH91/zsdHkw/lXd468DIN2zvfvLtPKLLMo6gQj7oLObq8PhkrxOZb/gGCq03S3Z7PDhS8pduQ==} - '@emotion/cache@11.13.1': - resolution: {integrity: sha512-iqouYkuEblRcXmylXIwwOodiEK5Ifl7JcX7o6V4jI3iW4mLXX3dmt5xwBtIkJiQEXFAI+pC8X0i67yiPkH9Ucw==} - '@emotion/cache@11.14.0': resolution: {integrity: sha512-L/B1lc/TViYk4DcpGxtAVbx0ZyiKM5ktoIyafGkH6zg/tj+mA+NE//aPYKG0k8kCHSHVJrpLpcAlOBEXQ3SavA==} @@ -1073,9 +1055,6 @@ packages: peerDependencies: react: '>=16.8.0' - '@emotion/utils@1.4.0': - resolution: {integrity: sha512-spEnrA1b6hDR/C68lC2M7m6ALPUHZC0lIY7jAS/B/9DuuO1ZP04eov8SMv/6fwRd8pzmsn2AuJEznRREWlQrlQ==} - '@emotion/utils@1.4.2': resolution: {integrity: sha512-3vLclRofFziIa3J2wDh9jjbkUz9qk5Vi3IZ/FSTKViB0k+ef0fPV7dYrUIugbgupYDx7v9ud/SjrtEP8Y4xLoA==} @@ -1116,8 +1095,8 @@ packages: cpu: [ppc64] os: [aix] - '@esbuild/aix-ppc64@0.25.8': - resolution: {integrity: sha512-urAvrUedIqEiFR3FYSLTWQgLu5tb+m0qZw0NBEasUeo6wuqatkMDaRT+1uABiGXEu5vqgPd7FGE1BhsAIy9QVA==} + '@esbuild/aix-ppc64@0.25.9': + resolution: {integrity: sha512-OaGtL73Jck6pBKjNIe24BnFE6agGl+6KxDtTfHhy1HmhthfKouEcOhqpSL64K4/0WCtbKFLOdzD/44cJ4k9opA==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] @@ -1146,8 +1125,8 @@ packages: cpu: [arm64] os: [android] - '@esbuild/android-arm64@0.25.8': - resolution: {integrity: sha512-OD3p7LYzWpLhZEyATcTSJ67qB5D+20vbtr6vHlHWSQYhKtzUYrETuWThmzFpZtFsBIxRvhO07+UgVA9m0i/O1w==} + '@esbuild/android-arm64@0.25.9': + resolution: {integrity: sha512-IDrddSmpSv51ftWslJMvl3Q2ZT98fUSL2/rlUXuVqRXHCs5EUF1/f+jbjF5+NG9UffUDMCiTyh8iec7u8RlTLg==} engines: {node: '>=18'} cpu: [arm64] os: [android] @@ -1182,8 +1161,8 @@ packages: cpu: [arm] os: [android] - '@esbuild/android-arm@0.25.8': - resolution: {integrity: sha512-RONsAvGCz5oWyePVnLdZY/HHwA++nxYWIX1atInlaW6SEkwq6XkP3+cb825EUcRs5Vss/lGh/2YxAb5xqc07Uw==} + '@esbuild/android-arm@0.25.9': + resolution: {integrity: sha512-5WNI1DaMtxQ7t7B6xa572XMXpHAaI/9Hnhk8lcxF4zVN4xstUgTlvuGDorBguKEnZO70qwEcLpfifMLoxiPqHQ==} engines: {node: '>=18'} cpu: [arm] os: [android] @@ -1212,8 +1191,8 @@ packages: cpu: [x64] os: [android] - '@esbuild/android-x64@0.25.8': - resolution: {integrity: sha512-yJAVPklM5+4+9dTeKwHOaA+LQkmrKFX96BM0A/2zQrbS6ENCmxc4OVoBs5dPkCCak2roAD+jKCdnmOqKszPkjA==} + '@esbuild/android-x64@0.25.9': + resolution: {integrity: sha512-I853iMZ1hWZdNllhVZKm34f4wErd4lMyeV7BLzEExGEIZYsOzqDWDf+y082izYUE8gtJnYHdeDpN/6tUdwvfiw==} engines: {node: '>=18'} cpu: [x64] os: [android] @@ -1242,8 +1221,8 @@ packages: cpu: [arm64] os: [darwin] - '@esbuild/darwin-arm64@0.25.8': - resolution: {integrity: sha512-Jw0mxgIaYX6R8ODrdkLLPwBqHTtYHJSmzzd+QeytSugzQ0Vg4c5rDky5VgkoowbZQahCbsv1rT1KW72MPIkevw==} + '@esbuild/darwin-arm64@0.25.9': + resolution: {integrity: sha512-XIpIDMAjOELi/9PB30vEbVMs3GV1v2zkkPnuyRRURbhqjyzIINwj+nbQATh4H9GxUgH1kFsEyQMxwiLFKUS6Rg==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] @@ -1272,8 +1251,8 @@ packages: cpu: [x64] os: [darwin] - '@esbuild/darwin-x64@0.25.8': - resolution: {integrity: sha512-Vh2gLxxHnuoQ+GjPNvDSDRpoBCUzY4Pu0kBqMBDlK4fuWbKgGtmDIeEC081xi26PPjn+1tct+Bh8FjyLlw1Zlg==} + '@esbuild/darwin-x64@0.25.9': + resolution: {integrity: sha512-jhHfBzjYTA1IQu8VyrjCX4ApJDnH+ez+IYVEoJHeqJm9VhG9Dh2BYaJritkYK3vMaXrf7Ogr/0MQ8/MeIefsPQ==} engines: {node: '>=18'} cpu: [x64] os: [darwin] @@ -1302,8 +1281,8 @@ packages: cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-arm64@0.25.8': - resolution: {integrity: sha512-YPJ7hDQ9DnNe5vxOm6jaie9QsTwcKedPvizTVlqWG9GBSq+BuyWEDazlGaDTC5NGU4QJd666V0yqCBL2oWKPfA==} + '@esbuild/freebsd-arm64@0.25.9': + resolution: {integrity: sha512-z93DmbnY6fX9+KdD4Ue/H6sYs+bhFQJNCPZsi4XWJoYblUqT06MQUdBCpcSfuiN72AbqeBFu5LVQTjfXDE2A6Q==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] @@ -1332,8 +1311,8 @@ packages: cpu: [x64] os: [freebsd] - '@esbuild/freebsd-x64@0.25.8': - resolution: {integrity: sha512-MmaEXxQRdXNFsRN/KcIimLnSJrk2r5H8v+WVafRWz5xdSVmWLoITZQXcgehI2ZE6gioE6HirAEToM/RvFBeuhw==} + '@esbuild/freebsd-x64@0.25.9': + resolution: {integrity: sha512-mrKX6H/vOyo5v71YfXWJxLVxgy1kyt1MQaD8wZJgJfG4gq4DpQGpgTB74e5yBeQdyMTbgxp0YtNj7NuHN0PoZg==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] @@ -1362,8 +1341,8 @@ packages: cpu: [arm64] os: [linux] - '@esbuild/linux-arm64@0.25.8': - resolution: {integrity: sha512-WIgg00ARWv/uYLU7lsuDK00d/hHSfES5BzdWAdAig1ioV5kaFNrtK8EqGcUBJhYqotlUByUKz5Qo6u8tt7iD/w==} + '@esbuild/linux-arm64@0.25.9': + resolution: {integrity: sha512-BlB7bIcLT3G26urh5Dmse7fiLmLXnRlopw4s8DalgZ8ef79Jj4aUcYbk90g8iCa2467HX8SAIidbL7gsqXHdRw==} engines: {node: '>=18'} cpu: [arm64] os: [linux] @@ -1392,8 +1371,8 @@ packages: cpu: [arm] os: [linux] - '@esbuild/linux-arm@0.25.8': - resolution: {integrity: sha512-FuzEP9BixzZohl1kLf76KEVOsxtIBFwCaLupVuk4eFVnOZfU+Wsn+x5Ryam7nILV2pkq2TqQM9EZPsOBuMC+kg==} + '@esbuild/linux-arm@0.25.9': + resolution: {integrity: sha512-HBU2Xv78SMgaydBmdor38lg8YDnFKSARg1Q6AT0/y2ezUAKiZvc211RDFHlEZRFNRVhcMamiToo7bDx3VEOYQw==} engines: {node: '>=18'} cpu: [arm] os: [linux] @@ -1422,8 +1401,8 @@ packages: cpu: [ia32] os: [linux] - '@esbuild/linux-ia32@0.25.8': - resolution: {integrity: sha512-A1D9YzRX1i+1AJZuFFUMP1E9fMaYY+GnSQil9Tlw05utlE86EKTUA7RjwHDkEitmLYiFsRd9HwKBPEftNdBfjg==} + '@esbuild/linux-ia32@0.25.9': + resolution: {integrity: sha512-e7S3MOJPZGp2QW6AK6+Ly81rC7oOSerQ+P8L0ta4FhVi+/j/v2yZzx5CqqDaWjtPFfYz21Vi1S0auHrap3Ma3A==} engines: {node: '>=18'} cpu: [ia32] os: [linux] @@ -1458,8 +1437,8 @@ packages: cpu: [loong64] os: [linux] - '@esbuild/linux-loong64@0.25.8': - resolution: {integrity: sha512-O7k1J/dwHkY1RMVvglFHl1HzutGEFFZ3kNiDMSOyUrB7WcoHGf96Sh+64nTRT26l3GMbCW01Ekh/ThKM5iI7hQ==} + '@esbuild/linux-loong64@0.25.9': + resolution: {integrity: sha512-Sbe10Bnn0oUAB2AalYztvGcK+o6YFFA/9829PhOCUS9vkJElXGdphz0A3DbMdP8gmKkqPmPcMJmJOrI3VYB1JQ==} engines: {node: '>=18'} cpu: [loong64] os: [linux] @@ -1488,8 +1467,8 @@ packages: cpu: [mips64el] os: [linux] - '@esbuild/linux-mips64el@0.25.8': - resolution: {integrity: sha512-uv+dqfRazte3BzfMp8PAQXmdGHQt2oC/y2ovwpTteqrMx2lwaksiFZ/bdkXJC19ttTvNXBuWH53zy/aTj1FgGw==} + '@esbuild/linux-mips64el@0.25.9': + resolution: {integrity: sha512-YcM5br0mVyZw2jcQeLIkhWtKPeVfAerES5PvOzaDxVtIyZ2NUBZKNLjC5z3/fUlDgT6w89VsxP2qzNipOaaDyA==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] @@ -1518,8 +1497,8 @@ packages: cpu: [ppc64] os: [linux] - '@esbuild/linux-ppc64@0.25.8': - resolution: {integrity: sha512-GyG0KcMi1GBavP5JgAkkstMGyMholMDybAf8wF5A70CALlDM2p/f7YFE7H92eDeH/VBtFJA5MT4nRPDGg4JuzQ==} + '@esbuild/linux-ppc64@0.25.9': + resolution: {integrity: sha512-++0HQvasdo20JytyDpFvQtNrEsAgNG2CY1CLMwGXfFTKGBGQT3bOeLSYE2l1fYdvML5KUuwn9Z8L1EWe2tzs1w==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] @@ -1548,8 +1527,8 @@ packages: cpu: [riscv64] os: [linux] - '@esbuild/linux-riscv64@0.25.8': - resolution: {integrity: sha512-rAqDYFv3yzMrq7GIcen3XP7TUEG/4LK86LUPMIz6RT8A6pRIDn0sDcvjudVZBiiTcZCY9y2SgYX2lgK3AF+1eg==} + '@esbuild/linux-riscv64@0.25.9': + resolution: {integrity: sha512-uNIBa279Y3fkjV+2cUjx36xkx7eSjb8IvnL01eXUKXez/CBHNRw5ekCGMPM0BcmqBxBcdgUWuUXmVWwm4CH9kg==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] @@ -1578,8 +1557,8 @@ packages: cpu: [s390x] os: [linux] - '@esbuild/linux-s390x@0.25.8': - resolution: {integrity: sha512-Xutvh6VjlbcHpsIIbwY8GVRbwoviWT19tFhgdA7DlenLGC/mbc3lBoVb7jxj9Z+eyGqvcnSyIltYUrkKzWqSvg==} + '@esbuild/linux-s390x@0.25.9': + resolution: {integrity: sha512-Mfiphvp3MjC/lctb+7D287Xw1DGzqJPb/J2aHHcHxflUo+8tmN/6d4k6I2yFR7BVo5/g7x2Monq4+Yew0EHRIA==} engines: {node: '>=18'} cpu: [s390x] os: [linux] @@ -1608,8 +1587,8 @@ packages: cpu: [x64] os: [linux] - '@esbuild/linux-x64@0.25.8': - resolution: {integrity: sha512-ASFQhgY4ElXh3nDcOMTkQero4b1lgubskNlhIfJrsH5OKZXDpUAKBlNS0Kx81jwOBp+HCeZqmoJuihTv57/jvQ==} + '@esbuild/linux-x64@0.25.9': + resolution: {integrity: sha512-iSwByxzRe48YVkmpbgoxVzn76BXjlYFXC7NvLYq+b+kDjyyk30J0JY47DIn8z1MO3K0oSl9fZoRmZPQI4Hklzg==} engines: {node: '>=18'} cpu: [x64] os: [linux] @@ -1626,8 +1605,8 @@ packages: cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-arm64@0.25.8': - resolution: {integrity: sha512-d1KfruIeohqAi6SA+gENMuObDbEjn22olAR7egqnkCD9DGBG0wsEARotkLgXDu6c4ncgWTZJtN5vcgxzWRMzcw==} + '@esbuild/netbsd-arm64@0.25.9': + resolution: {integrity: sha512-9jNJl6FqaUG+COdQMjSCGW4QiMHH88xWbvZ+kRVblZsWrkXlABuGdFJ1E9L7HK+T0Yqd4akKNa/lO0+jDxQD4Q==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] @@ -1656,8 +1635,8 @@ packages: cpu: [x64] os: [netbsd] - '@esbuild/netbsd-x64@0.25.8': - resolution: {integrity: sha512-nVDCkrvx2ua+XQNyfrujIG38+YGyuy2Ru9kKVNyh5jAys6n+l44tTtToqHjino2My8VAY6Lw9H7RI73XFi66Cg==} + '@esbuild/netbsd-x64@0.25.9': + resolution: {integrity: sha512-RLLdkflmqRG8KanPGOU7Rpg829ZHu8nFy5Pqdi9U01VYtG9Y0zOG6Vr2z4/S+/3zIyOxiK6cCeYNWOFR9QP87g==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] @@ -1674,8 +1653,8 @@ packages: cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-arm64@0.25.8': - resolution: {integrity: sha512-j8HgrDuSJFAujkivSMSfPQSAa5Fxbvk4rgNAS5i3K+r8s1X0p1uOO2Hl2xNsGFppOeHOLAVgYwDVlmxhq5h+SQ==} + '@esbuild/openbsd-arm64@0.25.9': + resolution: {integrity: sha512-YaFBlPGeDasft5IIM+CQAhJAqS3St3nJzDEgsgFixcfZeyGPCd6eJBWzke5piZuZ7CtL656eOSYKk4Ls2C0FRQ==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] @@ -1704,8 +1683,8 @@ packages: cpu: [x64] os: [openbsd] - '@esbuild/openbsd-x64@0.25.8': - resolution: {integrity: sha512-1h8MUAwa0VhNCDp6Af0HToI2TJFAn1uqT9Al6DJVzdIBAd21m/G0Yfc77KDM3uF3T/YaOgQq3qTJHPbTOInaIQ==} + '@esbuild/openbsd-x64@0.25.9': + resolution: {integrity: sha512-1MkgTCuvMGWuqVtAvkpkXFmtL8XhWy+j4jaSO2wxfJtilVCi0ZE37b8uOdMItIHz4I6z1bWWtEX4CJwcKYLcuA==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] @@ -1716,8 +1695,8 @@ packages: cpu: [arm64] os: [openharmony] - '@esbuild/openharmony-arm64@0.25.8': - resolution: {integrity: sha512-r2nVa5SIK9tSWd0kJd9HCffnDHKchTGikb//9c7HX+r+wHYCpQrSgxhlY6KWV1nFo1l4KFbsMlHk+L6fekLsUg==} + '@esbuild/openharmony-arm64@0.25.9': + resolution: {integrity: sha512-4Xd0xNiMVXKh6Fa7HEJQbrpP3m3DDn43jKxMjxLLRjWnRsfxjORYJlXPO4JNcXtOyfajXorRKY9NkOpTHptErg==} engines: {node: '>=18'} cpu: [arm64] os: [openharmony] @@ -1746,8 +1725,8 @@ packages: cpu: [x64] os: [sunos] - '@esbuild/sunos-x64@0.25.8': - resolution: {integrity: sha512-zUlaP2S12YhQ2UzUfcCuMDHQFJyKABkAjvO5YSndMiIkMimPmxA+BYSBikWgsRpvyxuRnow4nS5NPnf9fpv41w==} + '@esbuild/sunos-x64@0.25.9': + resolution: {integrity: sha512-WjH4s6hzo00nNezhp3wFIAfmGZ8U7KtrJNlFMRKxiI9mxEK1scOMAaa9i4crUtu+tBr+0IN6JCuAcSBJZfnphw==} engines: {node: '>=18'} cpu: [x64] os: [sunos] @@ -1776,8 +1755,8 @@ packages: cpu: [arm64] os: [win32] - '@esbuild/win32-arm64@0.25.8': - resolution: {integrity: sha512-YEGFFWESlPva8hGL+zvj2z/SaK+pH0SwOM0Nc/d+rVnW7GSTFlLBGzZkuSU9kFIGIo8q9X3ucpZhu8PDN5A2sQ==} + '@esbuild/win32-arm64@0.25.9': + resolution: {integrity: sha512-mGFrVJHmZiRqmP8xFOc6b84/7xa5y5YvR1x8djzXpJBSv/UsNK6aqec+6JDjConTgvvQefdGhFDAs2DLAds6gQ==} engines: {node: '>=18'} cpu: [arm64] os: [win32] @@ -1806,8 +1785,8 @@ packages: cpu: [ia32] os: [win32] - '@esbuild/win32-ia32@0.25.8': - resolution: {integrity: sha512-hiGgGC6KZ5LZz58OL/+qVVoZiuZlUYlYHNAmczOm7bs2oE1XriPFi5ZHHrS8ACpV5EjySrnoCKmcbQMN+ojnHg==} + '@esbuild/win32-ia32@0.25.9': + resolution: {integrity: sha512-b33gLVU2k11nVx1OhX3C8QQP6UHQK4ZtN56oFWvVXvz2VkDoe6fbG8TOgHFxEvqeqohmRnIHe5A1+HADk4OQww==} engines: {node: '>=18'} cpu: [ia32] os: [win32] @@ -1836,8 +1815,8 @@ packages: cpu: [x64] os: [win32] - '@esbuild/win32-x64@0.25.8': - resolution: {integrity: sha512-cn3Yr7+OaaZq1c+2pe+8yxC8E144SReCQjN6/2ynubzYjvyqZjTXfQJpAcQpsdJq3My7XADANiYGHoFC69pLQw==} + '@esbuild/win32-x64@0.25.9': + resolution: {integrity: sha512-PPOl1mi6lpLNQxnGoyAfschAodRFYXJ+9fs6WHXz7CSWKbOqiMZsubC+BQsVKuul+3vKLuwTHsS2c2y9EoKwxQ==} engines: {node: '>=18'} cpu: [x64] os: [win32] @@ -2091,10 +2070,16 @@ packages: resolution: {integrity: sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + '@jridgewell/gen-mapping@0.3.13': + resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} + '@jridgewell/gen-mapping@0.3.8': resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} engines: {node: '>=6.0.0'} + '@jridgewell/remapping@2.3.5': + resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} + '@jridgewell/resolve-uri@3.1.2': resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} @@ -2109,9 +2094,15 @@ packages: '@jridgewell/sourcemap-codec@1.5.0': resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + '@jridgewell/sourcemap-codec@1.5.5': + resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} + '@jridgewell/trace-mapping@0.3.25': resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + '@jridgewell/trace-mapping@0.3.30': + resolution: {integrity: sha512-GQ7Nw5G2lTu/BtHTKfXhKHok2WGetd4XYcVKGx00SjAk8GMwgJM3zr6zORiPGuOE+/vkc90KtTosSSvaCjKb2Q==} + '@jridgewell/trace-mapping@0.3.9': resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} @@ -2121,23 +2112,41 @@ packages: peerDependencies: tslib: '2' - '@jsonjoy.com/json-pack@1.1.0': - resolution: {integrity: sha512-zlQONA+msXPPwHWZMKFVS78ewFczIll5lXiVPwFPCZUsrOKdxc2AvxU1HoNBmMRhqDZUR9HkC3UOm+6pME6Xsg==} + '@jsonjoy.com/buffers@1.0.0': + resolution: {integrity: sha512-NDigYR3PHqCnQLXYyoLbnEdzMMvzeiCWo1KOut7Q0CoIqg9tUAPKJ1iq/2nFhc5kZtexzutNY0LFjdwWL3Dw3Q==} engines: {node: '>=10.0'} peerDependencies: tslib: '2' - '@jsonjoy.com/util@1.5.0': - resolution: {integrity: sha512-ojoNsrIuPI9g6o8UxhraZQSyF2ByJanAY4cTFbc8Mf2AXEF4aQRGY1dJxyJpuyav8r9FGflEt/Ff3u5Nt6YMPA==} + '@jsonjoy.com/codegen@1.0.0': + resolution: {integrity: sha512-E8Oy+08cmCf0EK/NMxpaJZmOxPqM+6iSe2S4nlSBrPZOORoDJILxtbSUEDKQyTamm/BVAhIGllOBNU79/dwf0g==} engines: {node: '>=10.0'} peerDependencies: tslib: '2' - '@libsql/client@0.15.10': - resolution: {integrity: sha512-J9cJQwrgH92JlPBYjUGxPIH5G9z3j/V/aPnQvcmmCgjatdVb/f7bzK3yNq15Phc+gVuKMwox3toXL+58qUMylg==} + '@jsonjoy.com/json-pack@1.10.1': + resolution: {integrity: sha512-XgVydQHFY0mZXJhG8yKVFoXO1295IdKQf/YE2jDlbp+1TUVB9p/Bul34E5HcqB/bH+0Rx1HIgqmmZm57MK0dhQ==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' - '@libsql/core@0.15.10': - resolution: {integrity: sha512-fAMD+GnGQNdZ9zxeNC8AiExpKnou/97GJWkiDDZbTRHj3c9dvF1y4jsRQ0WE72m/CqTdbMGyU98yL0SJ9hQVeg==} + '@jsonjoy.com/json-pointer@1.0.1': + resolution: {integrity: sha512-tJpwQfuBuxqZlyoJOSZcqf7OUmiYQ6MiPNmOv4KbZdXE/DdvBSSAwhos0zIlJU/AXxC8XpuO8p08bh2fIl+RKA==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + '@jsonjoy.com/util@1.9.0': + resolution: {integrity: sha512-pLuQo+VPRnN8hfPqUTLTHk126wuYdXVxE6aDmjSeV4NCAgyxWbiOIeNJVtID3h1Vzpoi9m4jXezf73I6LgabgQ==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + '@libsql/client@0.15.11': + resolution: {integrity: sha512-JB8RWRs+cAbHX35/dQ9wD3m4W5EVGevq1fFqiHKTT4Pa5HR7WrcGRVT+8NL2M7gtTlOvyPh9zzms2DPLBCswig==} + + '@libsql/core@0.15.11': + resolution: {integrity: sha512-DQDYnEhCSYOsx30ASlOGuOqcQhvwELhOS2qM4dnIP+ZhKki2epZU1j5VZSNeQlrQXHkByMcWBy+wt7tBNx/9uA==} '@libsql/darwin-arm64@0.5.17': resolution: {integrity: sha512-WTYG2skZsUnZmfZ2v7WFj7s3/5s2PfrYBZOWBKOnxHA8g4XCDc/4bFDaqob9Q2e88+GC7cWeJ8VNkVBFpD2Xxg==} @@ -2584,9 +2593,6 @@ packages: '@octokit/openapi-types@20.0.0': resolution: {integrity: sha512-EtqRBEjp1dL/15V7WiX5LJMIxxkdiGJnabzYx5Apx4FkQIFgAfKumXeYAqqJCj1s+BMX4cPFIFC4OLCR6stlnA==} - '@octokit/openapi-types@22.2.0': - resolution: {integrity: sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg==} - '@octokit/openapi-types@24.2.0': resolution: {integrity: sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==} @@ -2649,9 +2655,6 @@ packages: '@octokit/types@13.10.0': resolution: {integrity: sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==} - '@octokit/types@13.5.0': - resolution: {integrity: sha512-HdqWTf5Z3qwDVlzCrP8UJquMwunpDiMPt5er+QjGzL4hqr/vBVY/MauQgS1xWxCDT1oMx1EULyqxncdCY/NVSQ==} - '@octokit/types@14.1.0': resolution: {integrity: sha512-1y6DgTy8Jomcpu33N+p5w58l6xyt55Ar2I91RPiIA0xCJBXyUAhXCcmZaDWSANiha7R9a6qJJ2CRomGPZ6f46g==} @@ -2821,201 +2824,101 @@ packages: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.44.0': - resolution: {integrity: sha512-xEiEE5oDW6tK4jXCAyliuntGR+amEMO7HLtdSshVuhFnKTYoeYMyXQK7pLouAJJj5KHdwdn87bfHAR2nSdNAUA==} - cpu: [arm] - os: [android] - '@rollup/rollup-android-arm-eabi@4.46.2': resolution: {integrity: sha512-Zj3Hl6sN34xJtMv7Anwb5Gu01yujyE/cLBDB2gnHTAHaWS1Z38L7kuSG+oAh0giZMqG060f/YBStXtMH6FvPMA==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.44.0': - resolution: {integrity: sha512-uNSk/TgvMbskcHxXYHzqwiyBlJ/lGcv8DaUfcnNwict8ba9GTTNxfn3/FAoFZYgkaXXAdrAA+SLyKplyi349Jw==} - cpu: [arm64] - os: [android] - '@rollup/rollup-android-arm64@4.46.2': resolution: {integrity: sha512-nTeCWY83kN64oQ5MGz3CgtPx8NSOhC5lWtsjTs+8JAJNLcP3QbLCtDDgUKQc/Ro/frpMq4SHUaHN6AMltcEoLQ==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.44.0': - resolution: {integrity: sha512-VGF3wy0Eq1gcEIkSCr8Ke03CWT+Pm2yveKLaDvq51pPpZza3JX/ClxXOCmTYYq3us5MvEuNRTaeyFThCKRQhOA==} - cpu: [arm64] - os: [darwin] - '@rollup/rollup-darwin-arm64@4.46.2': resolution: {integrity: sha512-HV7bW2Fb/F5KPdM/9bApunQh68YVDU8sO8BvcW9OngQVN3HHHkw99wFupuUJfGR9pYLLAjcAOA6iO+evsbBaPQ==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.44.0': - resolution: {integrity: sha512-fBkyrDhwquRvrTxSGH/qqt3/T0w5Rg0L7ZIDypvBPc1/gzjJle6acCpZ36blwuwcKD/u6oCE/sRWlUAcxLWQbQ==} - cpu: [x64] - os: [darwin] - '@rollup/rollup-darwin-x64@4.46.2': resolution: {integrity: sha512-SSj8TlYV5nJixSsm/y3QXfhspSiLYP11zpfwp6G/YDXctf3Xkdnk4woJIF5VQe0of2OjzTt8EsxnJDCdHd2xMA==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.44.0': - resolution: {integrity: sha512-u5AZzdQJYJXByB8giQ+r4VyfZP+walV+xHWdaFx/1VxsOn6eWJhK2Vl2eElvDJFKQBo/hcYIBg/jaKS8ZmKeNQ==} - cpu: [arm64] - os: [freebsd] - '@rollup/rollup-freebsd-arm64@4.46.2': resolution: {integrity: sha512-ZyrsG4TIT9xnOlLsSSi9w/X29tCbK1yegE49RYm3tu3wF1L/B6LVMqnEWyDB26d9Ecx9zrmXCiPmIabVuLmNSg==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.44.0': - resolution: {integrity: sha512-qC0kS48c/s3EtdArkimctY7h3nHicQeEUdjJzYVJYR3ct3kWSafmn6jkNCA8InbUdge6PVx6keqjk5lVGJf99g==} - cpu: [x64] - os: [freebsd] - '@rollup/rollup-freebsd-x64@4.46.2': resolution: {integrity: sha512-pCgHFoOECwVCJ5GFq8+gR8SBKnMO+xe5UEqbemxBpCKYQddRQMgomv1104RnLSg7nNvgKy05sLsY51+OVRyiVw==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.44.0': - resolution: {integrity: sha512-x+e/Z9H0RAWckn4V2OZZl6EmV0L2diuX3QB0uM1r6BvhUIv6xBPL5mrAX2E3e8N8rEHVPwFfz/ETUbV4oW9+lQ==} - cpu: [arm] - os: [linux] - '@rollup/rollup-linux-arm-gnueabihf@4.46.2': resolution: {integrity: sha512-EtP8aquZ0xQg0ETFcxUbU71MZlHaw9MChwrQzatiE8U/bvi5uv/oChExXC4mWhjiqK7azGJBqU0tt5H123SzVA==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.44.0': - resolution: {integrity: sha512-1exwiBFf4PU/8HvI8s80icyCcnAIB86MCBdst51fwFmH5dyeoWVPVgmQPcKrMtBQ0W5pAs7jBCWuRXgEpRzSCg==} - cpu: [arm] - os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.46.2': resolution: {integrity: sha512-qO7F7U3u1nfxYRPM8HqFtLd+raev2K137dsV08q/LRKRLEc7RsiDWihUnrINdsWQxPR9jqZ8DIIZ1zJJAm5PjQ==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.44.0': - resolution: {integrity: sha512-ZTR2mxBHb4tK4wGf9b8SYg0Y6KQPjGpR4UWwTFdnmjB4qRtoATZ5dWn3KsDwGa5Z2ZBOE7K52L36J9LueKBdOQ==} - cpu: [arm64] - os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.46.2': resolution: {integrity: sha512-3dRaqLfcOXYsfvw5xMrxAk9Lb1f395gkoBYzSFcc/scgRFptRXL9DOaDpMiehf9CO8ZDRJW2z45b6fpU5nwjng==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.44.0': - resolution: {integrity: sha512-GFWfAhVhWGd4r6UxmnKRTBwP1qmModHtd5gkraeW2G490BpFOZkFtem8yuX2NyafIP/mGpRJgTJ2PwohQkUY/Q==} - cpu: [arm64] - os: [linux] - '@rollup/rollup-linux-arm64-musl@4.46.2': resolution: {integrity: sha512-fhHFTutA7SM+IrR6lIfiHskxmpmPTJUXpWIsBXpeEwNgZzZZSg/q4i6FU4J8qOGyJ0TR+wXBwx/L7Ho9z0+uDg==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-loongarch64-gnu@4.44.0': - resolution: {integrity: sha512-xw+FTGcov/ejdusVOqKgMGW3c4+AgqrfvzWEVXcNP6zq2ue+lsYUgJ+5Rtn/OTJf7e2CbgTFvzLW2j0YAtj0Gg==} - cpu: [loong64] - os: [linux] - '@rollup/rollup-linux-loongarch64-gnu@4.46.2': resolution: {integrity: sha512-i7wfGFXu8x4+FRqPymzjD+Hyav8l95UIZ773j7J7zRYc3Xsxy2wIn4x+llpunexXe6laaO72iEjeeGyUFmjKeA==} cpu: [loong64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.44.0': - resolution: {integrity: sha512-bKGibTr9IdF0zr21kMvkZT4K6NV+jjRnBoVMt2uNMG0BYWm3qOVmYnXKzx7UhwrviKnmK46IKMByMgvpdQlyJQ==} - cpu: [ppc64] - os: [linux] - '@rollup/rollup-linux-ppc64-gnu@4.46.2': resolution: {integrity: sha512-B/l0dFcHVUnqcGZWKcWBSV2PF01YUt0Rvlurci5P+neqY/yMKchGU8ullZvIv5e8Y1C6wOn+U03mrDylP5q9Yw==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.44.0': - resolution: {integrity: sha512-vV3cL48U5kDaKZtXrti12YRa7TyxgKAIDoYdqSIOMOFBXqFj2XbChHAtXquEn2+n78ciFgr4KIqEbydEGPxXgA==} - cpu: [riscv64] - os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.46.2': resolution: {integrity: sha512-32k4ENb5ygtkMwPMucAb8MtV8olkPT03oiTxJbgkJa7lJ7dZMr0GCFJlyvy+K8iq7F/iuOr41ZdUHaOiqyR3iQ==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-riscv64-musl@4.44.0': - resolution: {integrity: sha512-TDKO8KlHJuvTEdfw5YYFBjhFts2TR0VpZsnLLSYmB7AaohJhM8ctDSdDnUGq77hUh4m/djRafw+9zQpkOanE2Q==} - cpu: [riscv64] - os: [linux] - '@rollup/rollup-linux-riscv64-musl@4.46.2': resolution: {integrity: sha512-t5B2loThlFEauloaQkZg9gxV05BYeITLvLkWOkRXogP4qHXLkWSbSHKM9S6H1schf/0YGP/qNKtiISlxvfmmZw==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.44.0': - resolution: {integrity: sha512-8541GEyktXaw4lvnGp9m84KENcxInhAt6vPWJ9RodsB/iGjHoMB2Pp5MVBCiKIRxrxzJhGCxmNzdu+oDQ7kwRA==} - cpu: [s390x] - os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.46.2': resolution: {integrity: sha512-YKjekwTEKgbB7n17gmODSmJVUIvj8CX7q5442/CK80L8nqOUbMtf8b01QkG3jOqyr1rotrAnW6B/qiHwfcuWQA==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.44.0': - resolution: {integrity: sha512-iUVJc3c0o8l9Sa/qlDL2Z9UP92UZZW1+EmQ4xfjTc1akr0iUFZNfxrXJ/R1T90h/ILm9iXEY6+iPrmYB3pXKjw==} - cpu: [x64] - os: [linux] - '@rollup/rollup-linux-x64-gnu@4.46.2': resolution: {integrity: sha512-Jj5a9RUoe5ra+MEyERkDKLwTXVu6s3aACP51nkfnK9wJTraCC8IMe3snOfALkrjTYd2G1ViE1hICj0fZ7ALBPA==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.44.0': - resolution: {integrity: sha512-PQUobbhLTQT5yz/SPg116VJBgz+XOtXt8D1ck+sfJJhuEsMj2jSej5yTdp8CvWBSceu+WW+ibVL6dm0ptG5fcA==} - cpu: [x64] - os: [linux] - '@rollup/rollup-linux-x64-musl@4.46.2': resolution: {integrity: sha512-7kX69DIrBeD7yNp4A5b81izs8BqoZkCIaxQaOpumcJ1S/kmqNFjPhDu1LHeVXv0SexfHQv5cqHsxLOjETuqDuA==} cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.44.0': - resolution: {integrity: sha512-M0CpcHf8TWn+4oTxJfh7LQuTuaYeXGbk0eageVjQCKzYLsajWS/lFC94qlRqOlyC2KvRT90ZrfXULYmukeIy7w==} - cpu: [arm64] - os: [win32] - '@rollup/rollup-win32-arm64-msvc@4.46.2': resolution: {integrity: sha512-wiJWMIpeaak/jsbaq2HMh/rzZxHVW1rU6coyeNNpMwk5isiPjSTx0a4YLSlYDwBH/WBvLz+EtsNqQScZTLJy3g==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.44.0': - resolution: {integrity: sha512-3XJ0NQtMAXTWFW8FqZKcw3gOQwBtVWP/u8TpHP3CRPXD7Pd6s8lLdH3sHWh8vqKCyyiI8xW5ltJScQmBU9j7WA==} - cpu: [ia32] - os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.46.2': resolution: {integrity: sha512-gBgaUDESVzMgWZhcyjfs9QFK16D8K6QZpwAaVNJxYDLHWayOta4ZMjGm/vsAEy3hvlS2GosVFlBlP9/Wb85DqQ==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.44.0': - resolution: {integrity: sha512-Q2Mgwt+D8hd5FIPUuPDsvPR7Bguza6yTkJxspDGkZj7tBRn2y4KSWYuIXpftFSjBra76TbKerCV7rgFPQrn+wQ==} - cpu: [x64] - os: [win32] - '@rollup/rollup-win32-x64-msvc@4.46.2': resolution: {integrity: sha512-CvUo2ixeIQGtF6WvuB87XWqPQkoFAFqW+HUo/WzHwuHDvIwZCtjdWXoYCcr06iKGydiqTclC4jU/TNObC/xKZg==} cpu: [x64] @@ -3046,32 +2949,32 @@ packages: '@rushstack/ts-command-line@5.0.2': resolution: {integrity: sha512-+AkJDbu1GFMPIU8Sb7TLVXDv/Q7Mkvx+wAjEl8XiXVVq+p1FmWW6M3LYpJMmoHNckSofeMecgWg5lfMwNAAsEQ==} - '@shikijs/colorized-brackets@3.9.1': - resolution: {integrity: sha512-t8tytUMzd/cU8IxMKsMZPfAGQdIo1u5SkRI2pa1UAaJp3gdfXPtSdn+MKmcmyHrn2sjVp8/ESUykqPqTZJ9glg==} + '@shikijs/colorized-brackets@3.9.2': + resolution: {integrity: sha512-8VWAlrJbalZuMEFCHYcpLFvSC7lTDe5rlLAlF60TEicVb5V9WkijCWKV726rnbHUpigJOajbdOhOpFHgRl/6UA==} - '@shikijs/core@3.9.1': - resolution: {integrity: sha512-W5Vwen0KJCtR7KFRo+3JLGAqLUPsfW7e+wZ4yaRBGIogwI9ZlnkpRm9ZV8JtfzMxOkIwZwMmmN0hNErLtm3AYg==} + '@shikijs/core@3.9.2': + resolution: {integrity: sha512-3q/mzmw09B2B6PgFNeiaN8pkNOixWS726IHmJEpjDAcneDPMQmUg2cweT9cWXY4XcyQS3i6mOOUgQz9RRUP6HA==} - '@shikijs/engine-javascript@3.9.1': - resolution: {integrity: sha512-4hGenxYpAmtALryKsdli2K58F0s7RBYpj/RSDcAAGfRM6eTEGI5cZnt86mr+d9/4BaZ5sH5s4p3VU5irIdhj9Q==} + '@shikijs/engine-javascript@3.9.2': + resolution: {integrity: sha512-kUTRVKPsB/28H5Ko6qEsyudBiWEDLst+Sfi+hwr59E0GLHV0h8RfgbQU7fdN5Lt9A8R1ulRiZyTvAizkROjwDA==} - '@shikijs/engine-oniguruma@3.9.1': - resolution: {integrity: sha512-WPlL/xqviwS3te4unSGGGfflKsuHLMI6tPdNYvgz/IygcBT6UiwDFSzjBKyebwi5GGSlXsjjdoJLIBnAplmEZw==} + '@shikijs/engine-oniguruma@3.9.2': + resolution: {integrity: sha512-Vn/w5oyQ6TUgTVDIC/BrpXwIlfK6V6kGWDVVz2eRkF2v13YoENUvaNwxMsQU/t6oCuZKzqp9vqtEtEzKl9VegA==} - '@shikijs/langs@3.9.1': - resolution: {integrity: sha512-Vyy2Yv9PP3Veh3VSsIvNncOR+O93wFsNYgN2B6cCCJlS7H9SKFYc55edsqernsg8WT/zam1cfB6llJsQWLnVhA==} + '@shikijs/langs@3.9.2': + resolution: {integrity: sha512-X1Q6wRRQXY7HqAuX3I8WjMscjeGjqXCg/Sve7J2GWFORXkSrXud23UECqTBIdCSNKJioFtmUGJQNKtlMMZMn0w==} - '@shikijs/rehype@3.9.1': - resolution: {integrity: sha512-zkwzC92w2MdmwIkT0E8lKYD4dPJxCmm7HNHBwyWgJN4P6wcxZKJDvgCgAOXjOtLfXuZl3hZjO1Q/9lIyjarD/g==} + '@shikijs/rehype@3.9.2': + resolution: {integrity: sha512-obHyTWAUp5cpgpr4v7T9sjEHkLUMvBHvcpYAtdB1yuWU4/IeJ8boDMpnGUvvnxVpDwARlkvBA4Hr+BISo3zwjg==} - '@shikijs/themes@3.9.1': - resolution: {integrity: sha512-zAykkGECNICCMXpKeVvq04yqwaSuAIvrf8MjsU5bzskfg4XreU+O0B5wdNCYRixoB9snd3YlZ373WV5E/g5T9A==} + '@shikijs/themes@3.9.2': + resolution: {integrity: sha512-6z5lBPBMRfLyyEsgf6uJDHPa6NAGVzFJqH4EAZ+03+7sedYir2yJBRu2uPZOKmj43GyhVHWHvyduLDAwJQfDjA==} - '@shikijs/transformers@3.9.1': - resolution: {integrity: sha512-QI4Bh565EhKGaefiDAyn5o7S8rQIUGXcOjZANSiQHa/KSGCyJTZP9UUiRbvdovVpaI/nagODX6mspFk/vcYOQQ==} + '@shikijs/transformers@3.9.2': + resolution: {integrity: sha512-MW5hT4TyUp6bNAgTExRYLk1NNasVQMTCw1kgbxHcEC0O5cbepPWaB+1k+JzW9r3SP2/R8kiens8/3E6hGKfgsA==} - '@shikijs/types@3.9.1': - resolution: {integrity: sha512-rqM3T7a0iM1oPKz9iaH/cVgNX9Vz1HERcUcXJ94/fulgVdwqfnhXzGxO4bLrAnh/o5CPLy3IcYedogfV+Ns0Qg==} + '@shikijs/types@3.9.2': + resolution: {integrity: sha512-/M5L0Uc2ljyn2jKvj4Yiah7ow/W+DJSglVafvWAJ/b8AZDeeRAdMu3c2riDzB7N42VD+jSnWxeP9AKtd4TfYVw==} '@shikijs/vscode-textmate@10.0.2': resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} @@ -3126,65 +3029,65 @@ packages: resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==} engines: {node: '>=14.16'} - '@tailwindcss/node@4.1.11': - resolution: {integrity: sha512-yzhzuGRmv5QyU9qLNg4GTlYI6STedBWRE7NjxP45CsFYYq9taI0zJXZBMqIC/c8fViNLhmrbpSFS57EoxUmD6Q==} + '@tailwindcss/node@4.1.12': + resolution: {integrity: sha512-3hm9brwvQkZFe++SBt+oLjo4OLDtkvlE8q2WalaD/7QWaeM7KEJbAiY/LJZUaCs7Xa8aUu4xy3uoyX4q54UVdQ==} - '@tailwindcss/oxide-android-arm64@4.1.11': - resolution: {integrity: sha512-3IfFuATVRUMZZprEIx9OGDjG3Ou3jG4xQzNTvjDoKmU9JdmoCohQJ83MYd0GPnQIu89YoJqvMM0G3uqLRFtetg==} + '@tailwindcss/oxide-android-arm64@4.1.12': + resolution: {integrity: sha512-oNY5pq+1gc4T6QVTsZKwZaGpBb2N1H1fsc1GD4o7yinFySqIuRZ2E4NvGasWc6PhYJwGK2+5YT1f9Tp80zUQZQ==} engines: {node: '>= 10'} cpu: [arm64] os: [android] - '@tailwindcss/oxide-darwin-arm64@4.1.11': - resolution: {integrity: sha512-ESgStEOEsyg8J5YcMb1xl8WFOXfeBmrhAwGsFxxB2CxY9evy63+AtpbDLAyRkJnxLy2WsD1qF13E97uQyP1lfQ==} + '@tailwindcss/oxide-darwin-arm64@4.1.12': + resolution: {integrity: sha512-cq1qmq2HEtDV9HvZlTtrj671mCdGB93bVY6J29mwCyaMYCP/JaUBXxrQQQm7Qn33AXXASPUb2HFZlWiiHWFytw==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@tailwindcss/oxide-darwin-x64@4.1.11': - resolution: {integrity: sha512-EgnK8kRchgmgzG6jE10UQNaH9Mwi2n+yw1jWmof9Vyg2lpKNX2ioe7CJdf9M5f8V9uaQxInenZkOxnTVL3fhAw==} + '@tailwindcss/oxide-darwin-x64@4.1.12': + resolution: {integrity: sha512-6UCsIeFUcBfpangqlXay9Ffty9XhFH1QuUFn0WV83W8lGdX8cD5/+2ONLluALJD5+yJ7k8mVtwy3zMZmzEfbLg==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@tailwindcss/oxide-freebsd-x64@4.1.11': - resolution: {integrity: sha512-xdqKtbpHs7pQhIKmqVpxStnY1skuNh4CtbcyOHeX1YBE0hArj2romsFGb6yUmzkq/6M24nkxDqU8GYrKrz+UcA==} + '@tailwindcss/oxide-freebsd-x64@4.1.12': + resolution: {integrity: sha512-JOH/f7j6+nYXIrHobRYCtoArJdMJh5zy5lr0FV0Qu47MID/vqJAY3r/OElPzx1C/wdT1uS7cPq+xdYYelny1ww==} engines: {node: '>= 10'} cpu: [x64] os: [freebsd] - '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.11': - resolution: {integrity: sha512-ryHQK2eyDYYMwB5wZL46uoxz2zzDZsFBwfjssgB7pzytAeCCa6glsiJGjhTEddq/4OsIjsLNMAiMlHNYnkEEeg==} + '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.12': + resolution: {integrity: sha512-v4Ghvi9AU1SYgGr3/j38PD8PEe6bRfTnNSUE3YCMIRrrNigCFtHZ2TCm8142X8fcSqHBZBceDx+JlFJEfNg5zQ==} engines: {node: '>= 10'} cpu: [arm] os: [linux] - '@tailwindcss/oxide-linux-arm64-gnu@4.1.11': - resolution: {integrity: sha512-mYwqheq4BXF83j/w75ewkPJmPZIqqP1nhoghS9D57CLjsh3Nfq0m4ftTotRYtGnZd3eCztgbSPJ9QhfC91gDZQ==} + '@tailwindcss/oxide-linux-arm64-gnu@4.1.12': + resolution: {integrity: sha512-YP5s1LmetL9UsvVAKusHSyPlzSRqYyRB0f+Kl/xcYQSPLEw/BvGfxzbH+ihUciePDjiXwHh+p+qbSP3SlJw+6g==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@tailwindcss/oxide-linux-arm64-musl@4.1.11': - resolution: {integrity: sha512-m/NVRFNGlEHJrNVk3O6I9ggVuNjXHIPoD6bqay/pubtYC9QIdAMpS+cswZQPBLvVvEF6GtSNONbDkZrjWZXYNQ==} + '@tailwindcss/oxide-linux-arm64-musl@4.1.12': + resolution: {integrity: sha512-V8pAM3s8gsrXcCv6kCHSuwyb/gPsd863iT+v1PGXC4fSL/OJqsKhfK//v8P+w9ThKIoqNbEnsZqNy+WDnwQqCA==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@tailwindcss/oxide-linux-x64-gnu@4.1.11': - resolution: {integrity: sha512-YW6sblI7xukSD2TdbbaeQVDysIm/UPJtObHJHKxDEcW2exAtY47j52f8jZXkqE1krdnkhCMGqP3dbniu1Te2Fg==} + '@tailwindcss/oxide-linux-x64-gnu@4.1.12': + resolution: {integrity: sha512-xYfqYLjvm2UQ3TZggTGrwxjYaLB62b1Wiysw/YE3Yqbh86sOMoTn0feF98PonP7LtjsWOWcXEbGqDL7zv0uW8Q==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@tailwindcss/oxide-linux-x64-musl@4.1.11': - resolution: {integrity: sha512-e3C/RRhGunWYNC3aSF7exsQkdXzQ/M+aYuZHKnw4U7KQwTJotnWsGOIVih0s2qQzmEzOFIJ3+xt7iq67K/p56Q==} + '@tailwindcss/oxide-linux-x64-musl@4.1.12': + resolution: {integrity: sha512-ha0pHPamN+fWZY7GCzz5rKunlv9L5R8kdh+YNvP5awe3LtuXb5nRi/H27GeL2U+TdhDOptU7T6Is7mdwh5Ar3A==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@tailwindcss/oxide-wasm32-wasi@4.1.11': - resolution: {integrity: sha512-Xo1+/GU0JEN/C/dvcammKHzeM6NqKovG+6921MR6oadee5XPBaKOumrJCXvopJ/Qb5TH7LX/UAywbqrP4lax0g==} + '@tailwindcss/oxide-wasm32-wasi@4.1.12': + resolution: {integrity: sha512-4tSyu3dW+ktzdEpuk6g49KdEangu3eCYoqPhWNsZgUhyegEda3M9rG0/j1GV/JjVVsj+lG7jWAyrTlLzd/WEBg==} engines: {node: '>=14.0.0'} cpu: [wasm32] bundledDependencies: @@ -3195,24 +3098,24 @@ packages: - '@emnapi/wasi-threads' - tslib - '@tailwindcss/oxide-win32-arm64-msvc@4.1.11': - resolution: {integrity: sha512-UgKYx5PwEKrac3GPNPf6HVMNhUIGuUh4wlDFR2jYYdkX6pL/rn73zTq/4pzUm8fOjAn5L8zDeHp9iXmUGOXZ+w==} + '@tailwindcss/oxide-win32-arm64-msvc@4.1.12': + resolution: {integrity: sha512-iGLyD/cVP724+FGtMWslhcFyg4xyYyM+5F4hGvKA7eifPkXHRAUDFaimu53fpNg9X8dfP75pXx/zFt/jlNF+lg==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@tailwindcss/oxide-win32-x64-msvc@4.1.11': - resolution: {integrity: sha512-YfHoggn1j0LK7wR82TOucWc5LDCguHnoS879idHekmmiR7g9HUtMw9MI0NHatS28u/Xlkfi9w5RJWgz2Dl+5Qg==} + '@tailwindcss/oxide-win32-x64-msvc@4.1.12': + resolution: {integrity: sha512-NKIh5rzw6CpEodv/++r0hGLlfgT/gFN+5WNdZtvh6wpU2BpGNgdjvj6H2oFc8nCM839QM1YOhjpgbAONUb4IxA==} engines: {node: '>= 10'} cpu: [x64] os: [win32] - '@tailwindcss/oxide@4.1.11': - resolution: {integrity: sha512-Q69XzrtAhuyfHo+5/HMgr1lAiPP/G40OMFAnws7xcFEYqcypZmdW8eGXaOUIeOl1dzPJBPENXgbjsOyhg2nkrg==} + '@tailwindcss/oxide@4.1.12': + resolution: {integrity: sha512-gM5EoKHW/ukmlEtphNwaGx45fGoEmP10v51t9unv55voWh6WrOL19hfuIdo2FjxIaZzw776/BUQg7Pck++cIVw==} engines: {node: '>= 10'} - '@tailwindcss/vite@4.1.11': - resolution: {integrity: sha512-RHYhrR3hku0MJFRV+fN2gNbDNEh3dwKvY8XJvTxCSXeMOsCRSr+uKvDWQcbizrHgjML6ZmTE5OwMrl5wKcujCw==} + '@tailwindcss/vite@4.1.12': + resolution: {integrity: sha512-4pt0AMFDx7gzIrAOIYgYP0KCBuKWqyW8ayrdiLEjoJTT4pKTjrzG/e4uzWtTLDziC+66R9wbUqZBccJalSE5vQ==} peerDependencies: vite: ^5.2.0 || ^6 || ^7 @@ -3340,8 +3243,8 @@ packages: '@types/node@12.20.55': resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} - '@types/node@24.2.1': - resolution: {integrity: sha512-DRh5K+ka5eJic8CjH7td8QpYEV6Zo10gfRkjHCO3weqZHWDtAaSTFtl4+VMqOJ4N5jcuhZ9/l+yy8rVgw7BQeQ==} + '@types/node@24.3.0': + resolution: {integrity: sha512-aPTXCrfwnDLj4VvXrm+UUCQjNEvJgNA8s5F1cvwQU+3KNltTOkBm1j30uNLyqqPNe7gE3KFzImYoZEfLhp4Yow==} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -3355,9 +3258,6 @@ packages: '@types/phoenix@1.6.6': resolution: {integrity: sha512-PIzZZlEppgrpoT2QgbnDU+MMzuR6BbCjllj0bM70lWoejMeNJAxCchxnv7J3XFkI8MpygtRpzXrIlmWUBclP5A==} - '@types/prismjs@1.26.4': - resolution: {integrity: sha512-rlAnzkW2sZOjbqZ743IHUhFcvzaGbqijwOu8QZnZCjfQzBqFE3s4lOTJEsxikImav9uzz/42I+O7YUs1mWgMlg==} - '@types/prismjs@1.26.5': resolution: {integrity: sha512-AUZTa7hQ2KY5L7AmtSiqxlhWxb4ina0yd8hNbl4TWuqnv/pFP0nDMb3YrfSBf4hJVGLh2YEIBfKaBW/9UEl6IQ==} @@ -3373,8 +3273,10 @@ packages: '@types/range-parser@1.2.7': resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} - '@types/react-dom@18.3.0': - resolution: {integrity: sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==} + '@types/react-dom@19.1.7': + resolution: {integrity: sha512-i5ZzwYpqjmrKenzkoLM2Ibzt6mAsM7pxB6BCIouEVVmgiqaMj1TjaK7hnA36hbW5aZv20kx7Lw6hWzPWg0Rurw==} + peerDependencies: + '@types/react': ^19.0.0 '@types/react-transition-group@4.4.10': resolution: {integrity: sha512-hT/+s0VQs2ojCX823m60m5f0sL5idt9SO6Tj6Dg+rdphGPIeJbJ6CxvBYkgkGKrYeDjvIpKTR38UzmtHJOGW3Q==} @@ -3382,8 +3284,9 @@ packages: '@types/react@19.1.10': resolution: {integrity: sha512-EhBeSYX0Y6ye8pNebpKrwFJq7BoQ8J5SO6NlvNwwHjSj6adXJViPQrKlsyPw7hLBLvckEMO1yxeGdR82YBBlDg==} - '@types/refractor@3.4.1': - resolution: {integrity: sha512-wYuorIiCTSuvRT9srwt+taF6mH/ww+SyN2psM0sjef2qW+sS8GmshgDGTEDgWB1sTVGgYVE6EK7dBA2MxQxibg==} + '@types/refractor@4.0.0': + resolution: {integrity: sha512-qba+Qpzch8TqKwHPw3TIR8VaCK3o7spwnlQd51cbYgrZyBOc9K9kFSdH3zxlAmcD0RN6vWBwFZBe6FwJSfM/LA==} + deprecated: This is a stub types definition. refractor provides its own type definitions, so you do not need this installed. '@types/retry@0.12.1': resolution: {integrity: sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==} @@ -3421,9 +3324,6 @@ packages: '@types/ws@8.18.1': resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==} - '@types/ws@8.5.10': - resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==} - '@types/yargs-parser@21.0.3': resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} @@ -3442,33 +3342,33 @@ packages: peerDependencies: '@typescript-eslint/parser': ^8.39.1 eslint: ^8.57.0 || ^9.0.0 - typescript: 5.8.3 + typescript: 5.9.2 '@typescript-eslint/parser@8.38.0': resolution: {integrity: sha512-Zhy8HCvBUEfBECzIl1PKqF4p11+d0aUJS1GeUiuqK9WmOug8YCmC4h4bjyBvMyAMI9sbRczmrYL5lKg/YMbrcQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: 5.8.3 + typescript: 5.9.2 '@typescript-eslint/parser@8.39.1': resolution: {integrity: sha512-pUXGCuHnnKw6PyYq93lLRiZm3vjuslIy7tus1lIQTYVK9bL8XBgJnCWm8a0KcTtHC84Yya1Q6rtll+duSMj0dg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: 5.8.3 + typescript: 5.9.2 '@typescript-eslint/project-service@8.38.0': resolution: {integrity: sha512-dbK7Jvqcb8c9QfH01YB6pORpqX1mn5gDZc9n63Ak/+jD67oWXn3Gs0M6vddAN+eDXBCS5EmNWzbSxsn9SzFWWg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - typescript: 5.8.3 + typescript: 5.9.2 '@typescript-eslint/project-service@8.39.1': resolution: {integrity: sha512-8fZxek3ONTwBu9ptw5nCKqZOSkXshZB7uAxuFF0J/wTMkKydjXCzqqga7MlFMpHi9DoG4BadhmTkITBcg8Aybw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - typescript: 5.8.3 + typescript: 5.9.2 '@typescript-eslint/rule-tester@8.38.0': resolution: {integrity: sha512-uoGpIY8WdJw1KOnUTZTmp99k+DtpBJEKuGk/asSY6GfWz7vlF84p/EpTL6jraD0hW/3mkU/ipd5Nq0UxfIidsw==} @@ -3488,20 +3388,20 @@ packages: resolution: {integrity: sha512-Lum9RtSE3EroKk/bYns+sPOodqb2Fv50XOl/gMviMKNvanETUuUcC9ObRbzrJ4VSd2JalPqgSAavwrPiPvnAiQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - typescript: 5.8.3 + typescript: 5.9.2 '@typescript-eslint/tsconfig-utils@8.39.1': resolution: {integrity: sha512-ePUPGVtTMR8XMU2Hee8kD0Pu4NDE1CN9Q1sxGSGd/mbOtGZDM7pnhXNJnzW63zk/q+Z54zVzj44HtwXln5CvHA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - typescript: 5.8.3 + typescript: 5.9.2 '@typescript-eslint/type-utils@8.39.1': resolution: {integrity: sha512-gu9/ahyatyAdQbKeHnhT4R+y3YLtqqHyvkfDxaBYk97EcbfChSJXyaJnIL3ygUv7OuZatePHmQvuH5ru0lnVeA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: 5.8.3 + typescript: 5.9.2 '@typescript-eslint/types@5.62.0': resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} @@ -3528,27 +3428,27 @@ packages: resolution: {integrity: sha512-fooELKcAKzxux6fA6pxOflpNS0jc+nOQEEOipXFNjSlBS6fqrJOVY/whSn70SScHrcJ2LDsxWrneFoWYSVfqhQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - typescript: 5.8.3 + typescript: 5.9.2 '@typescript-eslint/typescript-estree@8.39.1': resolution: {integrity: sha512-EKkpcPuIux48dddVDXyQBlKdeTPMmALqBUbEk38McWv0qVEZwOpVJBi7ugK5qVNgeuYjGNQxrrnoM/5+TI/BPw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - typescript: 5.8.3 + typescript: 5.9.2 '@typescript-eslint/utils@8.38.0': resolution: {integrity: sha512-hHcMA86Hgt+ijJlrD8fX0j1j8w4C92zue/8LOPAFioIno+W0+L7KqE8QZKCcPGc/92Vs9x36w/4MPTJhqXdyvg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: 5.8.3 + typescript: 5.9.2 '@typescript-eslint/utils@8.39.1': resolution: {integrity: sha512-VF5tZ2XnUSTuiqZFXCZfZs1cgkdd3O/sSYmdo2EpSyDlC86UM/8YytTmKnehOW3TGAlivqTDT6bS87B/GQ/jyg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: 5.8.3 + typescript: 5.9.2 '@typescript-eslint/visitor-keys@5.62.0': resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} @@ -3566,8 +3466,8 @@ packages: resolution: {integrity: sha512-RnlSOPh14QbopGCApgkSx5UBgGda5MX1cHqp2fsqfiDyCwGL/m1jaeB9fzu7didVS81LQqGZZuxFBcg8YU8EVw==} hasBin: true - '@ungap/structured-clone@1.2.0': - resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + '@ungap/structured-clone@1.3.0': + resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} '@unpic/core@0.0.42': resolution: {integrity: sha512-K5Di+P8Bijl7doGDBGU+5VqX44e2iXMEm7G/AVla+9Hgxb5rOm/OXZoOjCUNjx5BOnjsVyegP6vlgsTfBtymkQ==} @@ -3648,7 +3548,7 @@ packages: '@vue/language-core@2.2.0': resolution: {integrity: sha512-O1ZZFaaBGkKbsRfnVH1ifOK1/1BUkyK+3SQsfnh6PmMmD4qJcTU8godCeA96jjDRTL6zgnK7YzCHfaUlH2r0Mw==} peerDependencies: - typescript: 5.8.3 + typescript: 5.9.2 peerDependenciesMeta: typescript: optional: true @@ -3741,10 +3641,6 @@ packages: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} - agent-base@7.1.1: - resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==} - engines: {node: '>= 14'} - agent-base@7.1.4: resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} engines: {node: '>= 14'} @@ -3826,10 +3722,6 @@ packages: resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} engines: {node: '>=12'} - ansi-styles@3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} - ansi-styles@4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} @@ -3884,10 +3776,6 @@ packages: argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - array-buffer-byte-length@1.0.1: - resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} - engines: {node: '>= 0.4'} - array-buffer-byte-length@1.0.2: resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} engines: {node: '>= 0.4'} @@ -3895,10 +3783,6 @@ packages: array-flatten@1.1.1: resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} - array-includes@3.1.8: - resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} - engines: {node: '>= 0.4'} - array-includes@3.1.9: resolution: {integrity: sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==} engines: {node: '>= 0.4'} @@ -3914,10 +3798,6 @@ packages: resolution: {integrity: sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==} engines: {node: '>= 0.4'} - array.prototype.flat@1.3.2: - resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} - engines: {node: '>= 0.4'} - array.prototype.flat@1.3.3: resolution: {integrity: sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==} engines: {node: '>= 0.4'} @@ -3926,10 +3806,6 @@ packages: resolution: {integrity: sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==} engines: {node: '>= 0.4'} - arraybuffer.prototype.slice@1.0.3: - resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} - engines: {node: '>= 0.4'} - arraybuffer.prototype.slice@1.0.4: resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==} engines: {node: '>= 0.4'} @@ -4161,10 +4037,6 @@ packages: resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} engines: {node: '>= 0.4'} - call-bind@1.0.7: - resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} - engines: {node: '>= 0.4'} - call-bind@1.0.8: resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} engines: {node: '>= 0.4'} @@ -4209,10 +4081,6 @@ packages: resolution: {integrity: sha512-T2VJbcDuZQ0Tb2EWwSotMPJjgpy1/tGee1BTpUNsGZ/qgNjV2t7Mvu+d4600U564nbLesN1x2dPL+xii174Ekg==} engines: {node: '>=14.16'} - chalk@2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} - engines: {node: '>=4'} - chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} @@ -4492,7 +4360,7 @@ packages: resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} engines: {node: '>=14'} peerDependencies: - typescript: 5.8.3 + typescript: 5.9.2 peerDependenciesMeta: typescript: optional: true @@ -4576,26 +4444,14 @@ packages: resolution: {integrity: sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==} engines: {node: '>= 14'} - data-view-buffer@1.0.1: - resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} - engines: {node: '>= 0.4'} - data-view-buffer@1.0.2: resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==} engines: {node: '>= 0.4'} - data-view-byte-length@1.0.1: - resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} - engines: {node: '>= 0.4'} - data-view-byte-length@1.0.2: resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==} engines: {node: '>= 0.4'} - data-view-byte-offset@1.0.0: - resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} - engines: {node: '>= 0.4'} - data-view-byte-offset@1.0.1: resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==} engines: {node: '>= 0.4'} @@ -4986,8 +4842,8 @@ packages: end-of-stream@1.4.4: resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} - enhanced-resolve@5.18.1: - resolution: {integrity: sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==} + enhanced-resolve@5.18.3: + resolution: {integrity: sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==} engines: {node: '>=10.13.0'} enquirer@2.4.1: @@ -5027,18 +4883,10 @@ packages: error-stack-parser@2.1.4: resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==} - es-abstract@1.23.3: - resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==} - engines: {node: '>= 0.4'} - es-abstract@1.24.0: resolution: {integrity: sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==} engines: {node: '>= 0.4'} - es-define-property@1.0.0: - resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} - engines: {node: '>= 0.4'} - es-define-property@1.0.1: resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} engines: {node: '>= 0.4'} @@ -5050,33 +4898,18 @@ packages: es-module-lexer@1.7.0: resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} - es-object-atoms@1.0.0: - resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} - engines: {node: '>= 0.4'} - es-object-atoms@1.1.1: resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} engines: {node: '>= 0.4'} - es-set-tostringtag@2.0.3: - resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} - engines: {node: '>= 0.4'} - es-set-tostringtag@2.1.0: resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} engines: {node: '>= 0.4'} - es-shim-unscopables@1.0.2: - resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} - es-shim-unscopables@1.1.0: resolution: {integrity: sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==} engines: {node: '>= 0.4'} - es-to-primitive@1.2.1: - resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} - engines: {node: '>= 0.4'} - es-to-primitive@1.3.0: resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} engines: {node: '>= 0.4'} @@ -5242,15 +5075,11 @@ packages: engines: {node: '>=18'} hasBin: true - esbuild@0.25.8: - resolution: {integrity: sha512-vVC0USHGtMi8+R4Kz8rt6JhEWLxsv9Rnu/lGYbPR8u47B+DCBksq9JarW0zOO7bs37hyOK1l2/oqtbciutL5+Q==} + esbuild@0.25.9: + resolution: {integrity: sha512-CRbODhYyQx3qp7ZEwzxOk4JBqmD/seJrzPa/cGjY1VtIn5E09Oi9/dB4JwctnfZ8Q8iT7rioVv5k/FNT/uf54g==} engines: {node: '>=18'} hasBin: true - escalade@3.1.2: - resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} - engines: {node: '>=6'} - escalade@3.2.0: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} @@ -5505,10 +5334,6 @@ packages: fast-fifo@1.3.2: resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} - fast-glob@3.3.2: - resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} - engines: {node: '>=8.6.0'} - fast-glob@3.3.3: resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} engines: {node: '>=8.6.0'} @@ -5562,6 +5387,15 @@ packages: picomatch: optional: true + fdir@6.5.0: + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} + engines: {node: '>=12.0.0'} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + fecha@4.2.3: resolution: {integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==} @@ -5675,9 +5509,6 @@ packages: debug: optional: true - for-each@0.3.3: - resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} - for-each@0.3.5: resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} engines: {node: '>= 0.4'} @@ -5751,10 +5582,6 @@ packages: function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - function.prototype.name@1.1.6: - resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} - engines: {node: '>= 0.4'} - function.prototype.name@1.1.8: resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==} engines: {node: '>= 0.4'} @@ -5783,10 +5610,6 @@ packages: resolution: {integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==} engines: {node: '>=18'} - get-intrinsic@1.2.4: - resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} - engines: {node: '>= 0.4'} - get-intrinsic@1.3.0: resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} engines: {node: '>= 0.4'} @@ -5829,16 +5652,12 @@ packages: resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} engines: {node: '>=16'} - get-symbol-description@1.0.2: - resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} - engines: {node: '>= 0.4'} - get-symbol-description@1.1.0: resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} engines: {node: '>= 0.4'} - get-tsconfig@4.10.0: - resolution: {integrity: sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A==} + get-tsconfig@4.10.1: + resolution: {integrity: sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==} get-uri@6.0.3: resolution: {integrity: sha512-BzUrJBS9EcUb4cFol8r4W3v1cPsSyajLSthNkz5BxbpDcHN5tIrM10E2eNvfnvBn3DaT3DUgx0OpsBKkaOpanw==} @@ -5921,9 +5740,6 @@ packages: engines: {node: '>=0.6.0'} hasBin: true - gopd@1.0.1: - resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} - gopd@1.2.0: resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} engines: {node: '>= 0.4'} @@ -5948,17 +5764,10 @@ packages: h3@1.11.1: resolution: {integrity: sha512-AbaH6IDnZN6nmbnJOH72y3c5Wwh9P97soSVdGSBbcDACRdkC0FEWf25pzx4f/NuOCK6quHmW18yF2Wx+G4Zi1A==} - has-bigints@1.0.2: - resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} - has-bigints@1.1.0: resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} engines: {node: '>= 0.4'} - has-flag@3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} - engines: {node: '>=4'} - has-flag@4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} @@ -5970,18 +5779,10 @@ packages: has-property-descriptors@1.0.2: resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} - has-proto@1.0.3: - resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} - engines: {node: '>= 0.4'} - has-proto@1.2.0: resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==} engines: {node: '>= 0.4'} - has-symbols@1.0.3: - resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} - engines: {node: '>= 0.4'} - has-symbols@1.1.0: resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} engines: {node: '>= 0.4'} @@ -6099,10 +5900,6 @@ packages: resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} engines: {node: '>= 6'} - https-proxy-agent@7.0.5: - resolution: {integrity: sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==} - engines: {node: '>= 14'} - https-proxy-agent@7.0.6: resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} engines: {node: '>= 14'} @@ -6146,10 +5943,6 @@ packages: resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} engines: {node: '>= 4'} - ignore@5.3.2: - resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} - engines: {node: '>= 4'} - ignore@7.0.5: resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} engines: {node: '>= 4'} @@ -6232,10 +6025,6 @@ packages: resolution: {integrity: sha512-zDml/jzr2PKU9I8J/xyZBQn8rPCAY//UOYNmR01XwNwyfhEWObo2SWfSl1+0tm1u6PhxLwDnfsT/6jB7OUxqFA==} engines: {node: '>= 0.10'} - internal-slot@1.0.7: - resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} - engines: {node: '>= 0.4'} - internal-slot@1.1.0: resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} engines: {node: '>= 0.4'} @@ -6261,10 +6050,6 @@ packages: is-alphanumerical@2.0.1: resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} - is-array-buffer@3.0.4: - resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} - engines: {node: '>= 0.4'} - is-array-buffer@3.0.5: resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==} engines: {node: '>= 0.4'} @@ -6279,9 +6064,6 @@ packages: resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==} engines: {node: '>= 0.4'} - is-bigint@1.0.4: - resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} - is-bigint@1.1.0: resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==} engines: {node: '>= 0.4'} @@ -6290,10 +6072,6 @@ packages: resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} engines: {node: '>=8'} - is-boolean-object@1.1.2: - resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} - engines: {node: '>= 0.4'} - is-boolean-object@1.2.2: resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==} engines: {node: '>= 0.4'} @@ -6310,18 +6088,10 @@ packages: resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} engines: {node: '>= 0.4'} - is-data-view@1.0.1: - resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} - engines: {node: '>= 0.4'} - is-data-view@1.0.2: resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==} engines: {node: '>= 0.4'} - is-date-object@1.0.5: - resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} - engines: {node: '>= 0.4'} - is-date-object@1.1.0: resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==} engines: {node: '>= 0.4'} @@ -6403,10 +6173,6 @@ packages: resolution: {integrity: sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - is-number-object@1.0.7: - resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} - engines: {node: '>= 0.4'} - is-number-object@1.1.1: resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==} engines: {node: '>= 0.4'} @@ -6435,10 +6201,6 @@ packages: resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} engines: {node: '>=12'} - is-regex@1.1.4: - resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} - engines: {node: '>= 0.4'} - is-regex@1.2.1: resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} engines: {node: '>= 0.4'} @@ -6447,10 +6209,6 @@ packages: resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} engines: {node: '>= 0.4'} - is-shared-array-buffer@1.0.3: - resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} - engines: {node: '>= 0.4'} - is-shared-array-buffer@1.0.4: resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==} engines: {node: '>= 0.4'} @@ -6467,10 +6225,6 @@ packages: resolution: {integrity: sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==} engines: {node: '>=18'} - is-string@1.0.7: - resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} - engines: {node: '>= 0.4'} - is-string@1.1.1: resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==} engines: {node: '>= 0.4'} @@ -6479,18 +6233,10 @@ packages: resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} engines: {node: '>=4'} - is-symbol@1.0.4: - resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} - engines: {node: '>= 0.4'} - is-symbol@1.1.1: resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==} engines: {node: '>= 0.4'} - is-typed-array@1.1.13: - resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} - engines: {node: '>= 0.4'} - is-typed-array@1.1.15: resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} engines: {node: '>= 0.4'} @@ -6518,9 +6264,6 @@ packages: resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} engines: {node: '>= 0.4'} - is-weakref@1.0.2: - resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} - is-weakref@1.1.1: resolution: {integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==} engines: {node: '>= 0.4'} @@ -6593,8 +6336,8 @@ packages: resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} hasBin: true - jiti@2.4.2: - resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==} + jiti@2.5.1: + resolution: {integrity: sha512-twQoecYPiVA5K/h6SxtORw/Bs3ar+mLUtoPSc7iMXzQzK8d7eJ/R09wmTwAjiamETn1cXYPGfNnu7DMoHgu12w==} hasBin: true jju@1.4.0: @@ -6606,8 +6349,8 @@ packages: jpeg-js@0.4.4: resolution: {integrity: sha512-WZzeDOEtTOBK4Mdsar0IqEU5sMr3vSV2RqkAIzUEV2BHnUfKGyswWFPFwK5EeDo93K3FohSHbLAjj0s1Wzd+dg==} - js-base64@3.7.7: - resolution: {integrity: sha512-7rCnleh0z2CkXhH67J8K1Ytz0b2Y+yxTPL+/KOJoa20hfnVQ/3/T6W/KflYI4bRHRagNeXeU2bkNGI3v1oS/lw==} + js-base64@3.7.8: + resolution: {integrity: sha512-hNngCeKxIUQiEUN3GPJOkz4wF/YvdUdbNL9hsBcMQTkKzboD7T/q3OYOuuPZLUE6dBxSGpwhk5mwuDud7JVAow==} js-image-generator@1.0.4: resolution: {integrity: sha512-ckb7kyVojGAnArouVR+5lBIuwU1fcrn7E/YYSd0FK7oIngAkMmRvHASLro9Zt5SQdWToaI66NybG+OGxPw/HlQ==} @@ -6941,10 +6684,6 @@ packages: resolution: {integrity: sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - lru-cache@10.2.2: - resolution: {integrity: sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==} - engines: {node: 14 || >=16.14} - lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} @@ -7052,8 +6791,8 @@ packages: mdast-util-phrasing@4.1.0: resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} - mdast-util-to-hast@13.1.0: - resolution: {integrity: sha512-/e2l/6+OdGp/FB+ctrJ9Avz71AN/GRH3oi/3KAx/kMnoUsD6q0woXlDT8lLEeViVKE7oZxE7RXzvO3T8kF2/sA==} + mdast-util-to-hast@13.2.0: + resolution: {integrity: sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==} mdast-util-to-markdown@2.1.0: resolution: {integrity: sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==} @@ -7071,8 +6810,8 @@ packages: resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} engines: {node: '>= 0.6'} - memfs@4.34.0: - resolution: {integrity: sha512-grcxk6xaTzKOJggz8H+rjN7IMPvMZkH3VbRzjOqfGUUqCrdKStCvD77pvpArqZQzyiNB1HWRmyijzmLQlyQyfw==} + memfs@4.36.0: + resolution: {integrity: sha512-mfBfzGUdoEw5AZwG8E965ej3BbvW2F9LxEWj4uLxF6BEh1dO2N9eS3AGu9S6vfenuQYrVjsbUOOZK7y3vz4vyQ==} engines: {node: '>= 4.0.0'} memoize-one@6.0.0: @@ -7326,8 +7065,8 @@ packages: moize@6.1.6: resolution: {integrity: sha512-vSKdIUO61iCmTqhdoIDrqyrtp87nWZUmBPniNjO0fX49wEYmyDO4lvlnFXiGcaH1JLE/s/9HbiK4LSHsbiUY6Q==} - monaco-editor@0.45.0: - resolution: {integrity: sha512-mjv1G1ZzfEE3k9HZN0dQ2olMdwIfaeAAjFiwNprLfYNRSz7ctv9XuCT7gPtBGrMUeV1/iZzYKj17Khu1hxoHOA==} + monaco-editor@0.52.2: + resolution: {integrity: sha512-GEQWEZmfkOGLdd3XK8ryrfWz3AIP8YymVXiPHEdewrUq7mh0qrKrfHLNCXcbB6sTnMLnOZ3ztSiKcciFUkIJwQ==} move-file@3.1.0: resolution: {integrity: sha512-4aE3U7CCBWgrQlQDMq8da4woBWDGHioJFiOZ8Ie6Yq2uwYQ9V2kGhTz4x3u6Wc+OU17nw0yc3rJ/lQ4jIiPe3A==} @@ -7503,9 +7242,6 @@ packages: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} - object-inspect@1.13.1: - resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} - object-inspect@1.13.4: resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} engines: {node: '>= 0.4'} @@ -7514,10 +7250,6 @@ packages: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} engines: {node: '>= 0.4'} - object.assign@4.1.5: - resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} - engines: {node: '>= 0.4'} - object.assign@4.1.7: resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} engines: {node: '>= 0.4'} @@ -7530,10 +7262,6 @@ packages: resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} engines: {node: '>= 0.4'} - object.values@1.2.0: - resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} - engines: {node: '>= 0.4'} - object.values@1.2.1: resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} engines: {node: '>= 0.4'} @@ -7868,10 +7596,6 @@ packages: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} - picomatch@4.0.2: - resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} - engines: {node: '>=12'} - picomatch@4.0.3: resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} engines: {node: '>=12'} @@ -7914,10 +7638,6 @@ packages: engines: {node: '>=18'} hasBin: true - possible-typed-array-names@1.0.0: - resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} - engines: {node: '>= 0.4'} - possible-typed-array-names@1.1.0: resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} engines: {node: '>= 0.4'} @@ -8093,8 +7813,8 @@ packages: property-information@6.5.0: resolution: {integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==} - property-information@7.0.0: - resolution: {integrity: sha512-7D/qOz/+Y4X/rzSB6jKxKUsQnphO046ei8qxG59mtM3RG3DHgTK81HrxrmoDVINJb8NKT5ZsRbwHvQ6B68Iyhg==} + property-information@7.1.0: + resolution: {integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==} proto-list@1.2.4: resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} @@ -8197,10 +7917,10 @@ packages: resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} hasBin: true - react-dom@18.3.1: - resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} + react-dom@19.1.1: + resolution: {integrity: sha512-Dlq/5LAZgF0Gaz6yiqZCf6VCcZs1ghAJyrsu84Q/GT0gV+mCxbfmKNoGRKBYMJ8IEdGPqu49YWXD02GCknEDkw==} peerDependencies: - react: ^18.3.1 + react: ^19.1.1 react-is@16.13.1: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} @@ -8217,8 +7937,8 @@ packages: react: '>=16.6.0' react-dom: '>=16.6.0' - react@18.3.1: - resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} + react@19.1.1: + resolution: {integrity: sha512-w8nqGImo45dmMIfljjMwOGtbmC/mk4CMYhWIicdSflH91J9TyCyczcPFXJzrZ/ZXcgGRFeP6BU0BEJTw6tZdfQ==} engines: {node: '>=0.10.0'} read-package-up@11.0.0: @@ -8312,10 +8032,6 @@ packages: regex@6.0.1: resolution: {integrity: sha512-uorlqlzAKjKQZ5P+kTJr3eeJGSVroLKoHmquUj4zHWuR+hEyNqlXsSKlYYF5F4NI6nl7tWCs0apKJ0lmfsXAPA==} - regexp.prototype.flags@1.5.2: - resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} - engines: {node: '>= 0.4'} - regexp.prototype.flags@1.5.4: resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} engines: {node: '>= 0.4'} @@ -8453,11 +8169,6 @@ packages: engines: {node: '>=14.18.0', npm: '>=8.0.0'} hasBin: true - rollup@4.44.0: - resolution: {integrity: sha512-qHcdEzLCiktQIfwBq420pn2dP+30uzqYxv9ETm91wdt2R9AFcWfjNAmje4NWlnCIQ5RMTzVf0ZyisOKqHR6RwA==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true - rollup@4.46.2: resolution: {integrity: sha512-WMmLFI+Boh6xbop+OAGo9cQ3OgX9MIg7xOQjn+pTCwOkk+FNDAeAemXkJ3HzDJrVXleLOFVa1ipuc1AmEx1Dwg==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} @@ -8485,10 +8196,6 @@ packages: resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} engines: {node: '>=6'} - safe-array-concat@1.1.2: - resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} - engines: {node: '>=0.4'} - safe-array-concat@1.1.3: resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} engines: {node: '>=0.4'} @@ -8506,10 +8213,6 @@ packages: resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==} engines: {node: '>= 0.4'} - safe-regex-test@1.0.3: - resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} - engines: {node: '>= 0.4'} - safe-regex-test@1.1.0: resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} engines: {node: '>= 0.4'} @@ -8524,8 +8227,8 @@ packages: safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - scheduler@0.23.2: - resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} + scheduler@0.26.0: + resolution: {integrity: sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==} section-matter@1.0.0: resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} @@ -8614,8 +8317,8 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - shiki@3.9.1: - resolution: {integrity: sha512-HogZ8nMnv9VAQMrG+P7BleJFhrKHm3fi6CYyHRbUu61gJ0lpqLr6ecYEui31IYG1Cn9Bad7N2vf332iXHnn0bQ==} + shiki@3.9.2: + resolution: {integrity: sha512-t6NKl5e/zGTvw/IyftLcumolgOczhuroqwXngDeMqJ3h3EQiTY/7wmfgPlsmloD8oYfqkEDqxiaH37Pjm1zUhQ==} side-channel-list@1.0.0: resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} @@ -8629,10 +8332,6 @@ packages: resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} engines: {node: '>= 0.4'} - side-channel@1.0.6: - resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} - engines: {node: '>= 0.4'} - side-channel@1.1.0: resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} engines: {node: '>= 0.4'} @@ -8730,9 +8429,9 @@ packages: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} - source-map@0.7.4: - resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} - engines: {node: '>= 8'} + source-map@0.7.6: + resolution: {integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==} + engines: {node: '>= 12'} sourcemap-codec@1.4.8: resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} @@ -8833,10 +8532,6 @@ packages: resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==} engines: {node: '>= 0.4'} - string.prototype.trim@1.2.9: - resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} - engines: {node: '>= 0.4'} - string.prototype.trimend@1.0.9: resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==} engines: {node: '>= 0.4'} @@ -8920,10 +8615,6 @@ packages: stylis@4.2.0: resolution: {integrity: sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==} - supports-color@5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} - engines: {node: '>=4'} - supports-color@7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} @@ -8965,11 +8656,11 @@ packages: tabbable@6.2.0: resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==} - tailwindcss@4.1.11: - resolution: {integrity: sha512-2E9TBm6MDD/xKYe+dvJZAmg3yxIEDNRc0jwlNyDg/4Fil2QcSLjFKGVff0lAf1jjeaArlG/M75Ey/EYr/OJtBA==} + tailwindcss@4.1.12: + resolution: {integrity: sha512-DzFtxOi+7NsFf7DBtI3BJsynR+0Yp6etH+nRPTbpWnS2pZBaSksv/JGctNwSWzbFjp0vxSqknaUylseZqMDGrA==} - tapable@2.2.1: - resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + tapable@2.2.2: + resolution: {integrity: sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==} engines: {node: '>=6'} tar-fs@2.1.1: @@ -9020,8 +8711,8 @@ packages: text-hex@1.0.0: resolution: {integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==} - thingies@1.21.0: - resolution: {integrity: sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g==} + thingies@2.5.0: + resolution: {integrity: sha512-s+2Bwztg6PhWUD7XMfeYm5qliDdSiZm7M7n8KjTkIsm3l/2lgVRc2/Gx/v+ZX8lT4FMA+i8aQvhcWylldc+ZNw==} engines: {node: '>=10.18'} peerDependencies: tslib: ^2 @@ -9071,8 +8762,8 @@ packages: resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} engines: {node: '>=0.6.0'} - tmp@0.2.3: - resolution: {integrity: sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==} + tmp@0.2.5: + resolution: {integrity: sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==} engines: {node: '>=14.14'} to-regex-range@5.0.1: @@ -9104,8 +8795,8 @@ packages: tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - tree-dump@1.0.2: - resolution: {integrity: sha512-dpev9ABuLWdEubk+cIaI9cHwRNNDjkBBLXTwI4UCUFdQ5xXKqNXoK4FEciw/vxf+NQ7Cb7sGUyeUtORvHIdRXQ==} + tree-dump@1.0.3: + resolution: {integrity: sha512-il+Cv80yVHFBwokQSfd4bldvr1Md951DpgAGfmhydt04L+YzHgubm2tQ7zueWDcGENKHq0ZvGFR/hjvNXilHEg==} engines: {node: '>=10.0'} peerDependencies: tslib: '2' @@ -9136,7 +8827,7 @@ packages: resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==} engines: {node: '>=18.12'} peerDependencies: - typescript: 5.8.3 + typescript: 5.9.2 ts-morph@23.0.0: resolution: {integrity: sha512-FcvFx7a9E8TUe6T3ShihXJLiJOiqyafzFKUO4aqIHDUCIvADdGNShcbc2W5PMr3LerXRv7mafvFZ9lRENxJmug==} @@ -9148,7 +8839,7 @@ packages: '@swc/core': '>=1.2.50' '@swc/wasm': '>=1.2.50' '@types/node': '*' - typescript: 5.8.3 + typescript: 5.9.2 peerDependenciesMeta: '@swc/core': optional: true @@ -9163,7 +8854,7 @@ packages: engines: {node: ^18 || >=20} hasBin: true peerDependencies: - typescript: 5.8.3 + typescript: 5.9.2 peerDependenciesMeta: typescript: optional: true @@ -9186,10 +8877,10 @@ packages: resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} peerDependencies: - typescript: 5.8.3 + typescript: 5.9.2 - tsx@4.20.3: - resolution: {integrity: sha512-qjbnuR9Tr+FJOMBqJCW5ehvIo/buZq7vH7qD7JziU98h6l3qGy0a/yPFjwO+y0/T7GFpNgNAvEcPPVfyT8rrPQ==} + tsx@4.20.4: + resolution: {integrity: sha512-yyxBKfORQ7LuRt/BQKBXrpcq59ZvSW0XxwfjAt3w2/8PmdxaFzijtMhTawprSHhpzeM5BgU2hXHG3lklIERZXg==} engines: {node: '>=18.0.0'} hasBin: true @@ -9220,34 +8911,18 @@ packages: resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} engines: {node: '>= 0.6'} - typed-array-buffer@1.0.2: - resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} - engines: {node: '>= 0.4'} - typed-array-buffer@1.0.3: resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} engines: {node: '>= 0.4'} - typed-array-byte-length@1.0.1: - resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} - engines: {node: '>= 0.4'} - typed-array-byte-length@1.0.3: resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==} engines: {node: '>= 0.4'} - typed-array-byte-offset@1.0.2: - resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} - engines: {node: '>= 0.4'} - typed-array-byte-offset@1.0.4: resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==} engines: {node: '>= 0.4'} - typed-array-length@1.0.6: - resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} - engines: {node: '>= 0.4'} - typed-array-length@1.0.7: resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} engines: {node: '>= 0.4'} @@ -9257,10 +8932,10 @@ packages: engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: 5.8.3 + typescript: 5.9.2 - typescript@5.8.3: - resolution: {integrity: sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==} + typescript@5.9.2: + resolution: {integrity: sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==} engines: {node: '>=14.17'} hasBin: true @@ -9275,9 +8950,6 @@ packages: resolution: {integrity: sha512-yvZYdXInnJve6LdlPIuYmURdS2NP41ZoF4QW7SXwbUKYt53+0eDAySO+rGSvM2O/ciuB/G+8N7GQrZ1mCJpuqw==} hasBin: true - unbox-primitive@1.0.2: - resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} - unbox-primitive@1.1.0: resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} engines: {node: '>= 0.4'} @@ -9477,7 +9149,7 @@ packages: valibot@0.42.1: resolution: {integrity: sha512-3keXV29Ar5b//Hqi4MbSdV7lfVp6zuYLZuA9V1PvQUsXqogr+u5lvLPLk3A4f74VUXDnf/JfWMN6sB+koJ/FFw==} peerDependencies: - typescript: 5.8.3 + typescript: 5.9.2 peerDependenciesMeta: typescript: optional: true @@ -9530,7 +9202,7 @@ packages: vite-plugin-dts@4.5.4: resolution: {integrity: sha512-d4sOM8M/8z7vRXHHq/ebbblfaxENjogAAekcfcDCCwAyvGqnPrc7f4NZbvItS+g4WTgerW0xDwSz5qz11JT3vg==} peerDependencies: - typescript: 5.8.3 + typescript: 5.9.2 vite: '*' peerDependenciesMeta: vite: @@ -9582,8 +9254,8 @@ packages: terser: optional: true - vite@7.0.0: - resolution: {integrity: sha512-ixXJB1YRgDIw2OszKQS9WxGHKwLdCsbQNkpJN171udl6szi/rIySHL6/Os3s2+oE4P/FLD4dxg4mD7Wust+u5g==} + vite@7.1.0: + resolution: {integrity: sha512-3jdAy3NhBJYsa/lCFcnRfbK4kNkO/bhijFCnv5ByUQk/eekYagoV2yQSISUrhpV+5JiY5hmwOh7jNnQ68dFMuQ==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: @@ -9622,8 +9294,8 @@ packages: yaml: optional: true - vite@7.1.0: - resolution: {integrity: sha512-3jdAy3NhBJYsa/lCFcnRfbK4kNkO/bhijFCnv5ByUQk/eekYagoV2yQSISUrhpV+5JiY5hmwOh7jNnQ68dFMuQ==} + vite@7.1.2: + resolution: {integrity: sha512-J0SQBPlQiEXAF7tajiH+rUooJPo0l8KQgyg4/aMunNtrOa7bwuZJsJbDWzeljqQpgftxuq5yNJxQ91O9ts29UQ==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: @@ -9719,9 +9391,6 @@ packages: when-exit@2.1.3: resolution: {integrity: sha512-uVieSTccFIr/SFQdFWN/fFaQYmV37OKtuaGphMAzi4DmmUlrvRBJW5WSLkHyjNQY/ePJMz3LoiX9R3yy1Su6Hw==} - which-boxed-primitive@1.0.2: - resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} - which-boxed-primitive@1.1.1: resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} engines: {node: '>= 0.4'} @@ -9741,10 +9410,6 @@ packages: resolution: {integrity: sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==} engines: {node: '>=4'} - which-typed-array@1.1.15: - resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} - engines: {node: '>= 0.4'} - which-typed-array@1.1.19: resolution: {integrity: sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==} engines: {node: '>= 0.4'} @@ -9820,18 +9485,6 @@ packages: resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - ws@8.18.0: - resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} - engines: {node: '>=10.0.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: '>=5.0.2' - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - ws@8.18.2: resolution: {integrity: sha512-DMricUmwGZUVr++AEAe2uiVM7UoO9MAVZMDu05UQOaUII0lp+zOzLLU4Xqh/JvTqklB1T4uELaaPBKyjE1r4fQ==} engines: {node: '>=10.0.0'} @@ -9894,9 +9547,9 @@ packages: resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} engines: {node: '>= 6'} - yaml@2.6.1: - resolution: {integrity: sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg==} - engines: {node: '>= 14'} + yaml@2.8.1: + resolution: {integrity: sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==} + engines: {node: '>= 14.6'} hasBin: true yargs-parser@18.1.3: @@ -10075,11 +9728,6 @@ snapshots: long: 4.0.0 uuid: 8.3.2 - '@babel/code-frame@7.24.6': - dependencies: - '@babel/highlight': 7.24.6 - picocolors: 1.1.1 - '@babel/code-frame@7.27.1': dependencies: '@babel/helper-validator-identifier': 7.27.1 @@ -10094,13 +9742,6 @@ snapshots: '@babel/helper-validator-identifier@7.27.1': {} - '@babel/highlight@7.24.6': - dependencies: - '@babel/helper-validator-identifier': 7.27.1 - chalk: 2.4.2 - js-tokens: 4.0.0 - picocolors: 1.1.1 - '@babel/parser@7.27.5': dependencies: '@babel/types': 7.27.6 @@ -10151,11 +9792,11 @@ snapshots: '@bugsnag/safe-json-stringify@6.0.0': {} - '@builder.io/vite-plugin-macro@0.0.7(@types/node@24.2.1)(lightningcss@1.30.1)(rollup@4.46.2)(terser@5.43.1)': + '@builder.io/vite-plugin-macro@0.0.7(@types/node@24.3.0)(lightningcss@1.30.1)(rollup@4.46.2)(terser@5.43.1)': dependencies: '@rollup/pluginutils': 5.2.0(rollup@4.46.2) magic-string: 0.30.17 - vite-node: 0.32.4(@types/node@24.2.1)(lightningcss@1.30.1)(terser@5.43.1) + vite-node: 0.32.4(@types/node@24.3.0)(lightningcss@1.30.1)(terser@5.43.1) transitivePeerDependencies: - '@types/node' - less @@ -10316,14 +9957,14 @@ snapshots: human-id: 4.1.1 prettier: 3.6.2 - '@clack/core@0.3.4': + '@clack/core@0.5.0': dependencies: picocolors: 1.1.1 sisteransi: 1.0.5 - '@clack/prompts@0.7.0': + '@clack/prompts@0.11.0': dependencies: - '@clack/core': 0.3.4 + '@clack/core': 0.5.0 picocolors: 1.1.1 sisteransi: 1.0.5 @@ -10384,14 +10025,6 @@ snapshots: source-map: 0.5.7 stylis: 4.2.0 - '@emotion/cache@11.13.1': - dependencies: - '@emotion/memoize': 0.9.0 - '@emotion/sheet': 1.4.0 - '@emotion/utils': 1.4.0 - '@emotion/weak-memoize': 0.4.0 - stylis: 4.2.0 - '@emotion/cache@11.14.0': dependencies: '@emotion/memoize': 0.9.0 @@ -10408,17 +10041,17 @@ snapshots: '@emotion/memoize@0.9.0': {} - '@emotion/react@11.14.0(@types/react@19.1.10)(react@18.3.1)': + '@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1)': dependencies: '@babel/runtime': 7.24.6 '@emotion/babel-plugin': 11.13.5 '@emotion/cache': 11.14.0 '@emotion/serialize': 1.3.3 - '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@18.3.1) + '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@19.1.1) '@emotion/utils': 1.4.2 '@emotion/weak-memoize': 0.4.0 hoist-non-react-statics: 3.3.2 - react: 18.3.1 + react: 19.1.1 optionalDependencies: '@types/react': 19.1.10 @@ -10432,26 +10065,24 @@ snapshots: '@emotion/sheet@1.4.0': {} - '@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.10)(react@18.3.1))(@types/react@19.1.10)(react@18.3.1)': + '@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react@19.1.1)': dependencies: '@babel/runtime': 7.24.6 '@emotion/babel-plugin': 11.13.5 '@emotion/is-prop-valid': 1.3.0 - '@emotion/react': 11.14.0(@types/react@19.1.10)(react@18.3.1) + '@emotion/react': 11.14.0(@types/react@19.1.10)(react@19.1.1) '@emotion/serialize': 1.3.3 - '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@18.3.1) + '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@19.1.1) '@emotion/utils': 1.4.2 - react: 18.3.1 + react: 19.1.1 optionalDependencies: '@types/react': 19.1.10 '@emotion/unitless@0.10.0': {} - '@emotion/use-insertion-effect-with-fallbacks@1.2.0(react@18.3.1)': + '@emotion/use-insertion-effect-with-fallbacks@1.2.0(react@19.1.1)': dependencies: - react: 18.3.1 - - '@emotion/utils@1.4.0': {} + react: 19.1.1 '@emotion/utils@1.4.2': {} @@ -10470,7 +10101,7 @@ snapshots: '@esbuild-kit/esm-loader@2.6.5': dependencies: '@esbuild-kit/core-utils': 3.3.2 - get-tsconfig: 4.10.0 + get-tsconfig: 4.10.1 '@esbuild-plugins/node-globals-polyfill@0.2.3(esbuild@0.17.19)': dependencies: @@ -10488,7 +10119,7 @@ snapshots: '@esbuild/aix-ppc64@0.25.6': optional: true - '@esbuild/aix-ppc64@0.25.8': + '@esbuild/aix-ppc64@0.25.9': optional: true '@esbuild/android-arm64@0.17.19': @@ -10503,7 +10134,7 @@ snapshots: '@esbuild/android-arm64@0.25.6': optional: true - '@esbuild/android-arm64@0.25.8': + '@esbuild/android-arm64@0.25.9': optional: true '@esbuild/android-arm@0.15.18': @@ -10521,7 +10152,7 @@ snapshots: '@esbuild/android-arm@0.25.6': optional: true - '@esbuild/android-arm@0.25.8': + '@esbuild/android-arm@0.25.9': optional: true '@esbuild/android-x64@0.17.19': @@ -10536,7 +10167,7 @@ snapshots: '@esbuild/android-x64@0.25.6': optional: true - '@esbuild/android-x64@0.25.8': + '@esbuild/android-x64@0.25.9': optional: true '@esbuild/darwin-arm64@0.17.19': @@ -10551,7 +10182,7 @@ snapshots: '@esbuild/darwin-arm64@0.25.6': optional: true - '@esbuild/darwin-arm64@0.25.8': + '@esbuild/darwin-arm64@0.25.9': optional: true '@esbuild/darwin-x64@0.17.19': @@ -10566,7 +10197,7 @@ snapshots: '@esbuild/darwin-x64@0.25.6': optional: true - '@esbuild/darwin-x64@0.25.8': + '@esbuild/darwin-x64@0.25.9': optional: true '@esbuild/freebsd-arm64@0.17.19': @@ -10581,7 +10212,7 @@ snapshots: '@esbuild/freebsd-arm64@0.25.6': optional: true - '@esbuild/freebsd-arm64@0.25.8': + '@esbuild/freebsd-arm64@0.25.9': optional: true '@esbuild/freebsd-x64@0.17.19': @@ -10596,7 +10227,7 @@ snapshots: '@esbuild/freebsd-x64@0.25.6': optional: true - '@esbuild/freebsd-x64@0.25.8': + '@esbuild/freebsd-x64@0.25.9': optional: true '@esbuild/linux-arm64@0.17.19': @@ -10611,7 +10242,7 @@ snapshots: '@esbuild/linux-arm64@0.25.6': optional: true - '@esbuild/linux-arm64@0.25.8': + '@esbuild/linux-arm64@0.25.9': optional: true '@esbuild/linux-arm@0.17.19': @@ -10626,7 +10257,7 @@ snapshots: '@esbuild/linux-arm@0.25.6': optional: true - '@esbuild/linux-arm@0.25.8': + '@esbuild/linux-arm@0.25.9': optional: true '@esbuild/linux-ia32@0.17.19': @@ -10641,7 +10272,7 @@ snapshots: '@esbuild/linux-ia32@0.25.6': optional: true - '@esbuild/linux-ia32@0.25.8': + '@esbuild/linux-ia32@0.25.9': optional: true '@esbuild/linux-loong64@0.15.18': @@ -10659,7 +10290,7 @@ snapshots: '@esbuild/linux-loong64@0.25.6': optional: true - '@esbuild/linux-loong64@0.25.8': + '@esbuild/linux-loong64@0.25.9': optional: true '@esbuild/linux-mips64el@0.17.19': @@ -10674,7 +10305,7 @@ snapshots: '@esbuild/linux-mips64el@0.25.6': optional: true - '@esbuild/linux-mips64el@0.25.8': + '@esbuild/linux-mips64el@0.25.9': optional: true '@esbuild/linux-ppc64@0.17.19': @@ -10689,7 +10320,7 @@ snapshots: '@esbuild/linux-ppc64@0.25.6': optional: true - '@esbuild/linux-ppc64@0.25.8': + '@esbuild/linux-ppc64@0.25.9': optional: true '@esbuild/linux-riscv64@0.17.19': @@ -10704,7 +10335,7 @@ snapshots: '@esbuild/linux-riscv64@0.25.6': optional: true - '@esbuild/linux-riscv64@0.25.8': + '@esbuild/linux-riscv64@0.25.9': optional: true '@esbuild/linux-s390x@0.17.19': @@ -10719,7 +10350,7 @@ snapshots: '@esbuild/linux-s390x@0.25.6': optional: true - '@esbuild/linux-s390x@0.25.8': + '@esbuild/linux-s390x@0.25.9': optional: true '@esbuild/linux-x64@0.17.19': @@ -10734,7 +10365,7 @@ snapshots: '@esbuild/linux-x64@0.25.6': optional: true - '@esbuild/linux-x64@0.25.8': + '@esbuild/linux-x64@0.25.9': optional: true '@esbuild/netbsd-arm64@0.25.4': @@ -10743,7 +10374,7 @@ snapshots: '@esbuild/netbsd-arm64@0.25.6': optional: true - '@esbuild/netbsd-arm64@0.25.8': + '@esbuild/netbsd-arm64@0.25.9': optional: true '@esbuild/netbsd-x64@0.17.19': @@ -10758,7 +10389,7 @@ snapshots: '@esbuild/netbsd-x64@0.25.6': optional: true - '@esbuild/netbsd-x64@0.25.8': + '@esbuild/netbsd-x64@0.25.9': optional: true '@esbuild/openbsd-arm64@0.25.4': @@ -10767,7 +10398,7 @@ snapshots: '@esbuild/openbsd-arm64@0.25.6': optional: true - '@esbuild/openbsd-arm64@0.25.8': + '@esbuild/openbsd-arm64@0.25.9': optional: true '@esbuild/openbsd-x64@0.17.19': @@ -10782,13 +10413,13 @@ snapshots: '@esbuild/openbsd-x64@0.25.6': optional: true - '@esbuild/openbsd-x64@0.25.8': + '@esbuild/openbsd-x64@0.25.9': optional: true '@esbuild/openharmony-arm64@0.25.6': optional: true - '@esbuild/openharmony-arm64@0.25.8': + '@esbuild/openharmony-arm64@0.25.9': optional: true '@esbuild/sunos-x64@0.17.19': @@ -10803,7 +10434,7 @@ snapshots: '@esbuild/sunos-x64@0.25.6': optional: true - '@esbuild/sunos-x64@0.25.8': + '@esbuild/sunos-x64@0.25.9': optional: true '@esbuild/win32-arm64@0.17.19': @@ -10818,7 +10449,7 @@ snapshots: '@esbuild/win32-arm64@0.25.6': optional: true - '@esbuild/win32-arm64@0.25.8': + '@esbuild/win32-arm64@0.25.9': optional: true '@esbuild/win32-ia32@0.17.19': @@ -10833,7 +10464,7 @@ snapshots: '@esbuild/win32-ia32@0.25.6': optional: true - '@esbuild/win32-ia32@0.25.8': + '@esbuild/win32-ia32@0.25.9': optional: true '@esbuild/win32-x64@0.17.19': @@ -10848,12 +10479,12 @@ snapshots: '@esbuild/win32-x64@0.25.6': optional: true - '@esbuild/win32-x64@0.25.8': + '@esbuild/win32-x64@0.25.9': optional: true - '@eslint-community/eslint-utils@4.7.0(eslint@9.33.0(jiti@2.4.2))': + '@eslint-community/eslint-utils@4.7.0(eslint@9.33.0(jiti@2.5.1))': dependencies: - eslint: 9.33.0(jiti@2.4.2) + eslint: 9.33.0(jiti@2.5.1) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.1': {} @@ -10861,7 +10492,7 @@ snapshots: '@eslint/config-array@0.21.0': dependencies: '@eslint/object-schema': 2.1.6 - debug: 4.4.1 + debug: 4.4.1(supports-color@9.4.0) minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -10875,7 +10506,7 @@ snapshots: '@eslint/eslintrc@3.3.1': dependencies: ajv: 6.12.6 - debug: 4.4.1 + debug: 4.4.1(supports-color@9.4.0) espree: 10.4.0 globals: 14.0.0 ignore: 5.3.1 @@ -11072,16 +10703,26 @@ snapshots: dependencies: '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 24.2.1 + '@types/node': 24.3.0 '@types/yargs': 16.0.9 chalk: 4.1.2 + '@jridgewell/gen-mapping@0.3.13': + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/trace-mapping': 0.3.30 + '@jridgewell/gen-mapping@0.3.8': dependencies: '@jridgewell/set-array': 1.2.1 '@jridgewell/sourcemap-codec': 1.5.0 '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/remapping@2.3.5': + dependencies: + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.30 + '@jridgewell/resolve-uri@3.1.2': {} '@jridgewell/set-array@1.2.1': {} @@ -11093,11 +10734,18 @@ snapshots: '@jridgewell/sourcemap-codec@1.5.0': {} + '@jridgewell/sourcemap-codec@1.5.5': {} + '@jridgewell/trace-mapping@0.3.25': dependencies: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping@0.3.30': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/trace-mapping@0.3.9': dependencies: '@jridgewell/resolve-uri': 3.1.2 @@ -11107,32 +10755,50 @@ snapshots: dependencies: tslib: 2.8.1 - '@jsonjoy.com/json-pack@1.1.0(tslib@2.8.1)': + '@jsonjoy.com/buffers@1.0.0(tslib@2.8.1)': + dependencies: + tslib: 2.8.1 + + '@jsonjoy.com/codegen@1.0.0(tslib@2.8.1)': + dependencies: + tslib: 2.8.1 + + '@jsonjoy.com/json-pack@1.10.1(tslib@2.8.1)': dependencies: '@jsonjoy.com/base64': 1.1.2(tslib@2.8.1) - '@jsonjoy.com/util': 1.5.0(tslib@2.8.1) + '@jsonjoy.com/buffers': 1.0.0(tslib@2.8.1) + '@jsonjoy.com/codegen': 1.0.0(tslib@2.8.1) + '@jsonjoy.com/json-pointer': 1.0.1(tslib@2.8.1) + '@jsonjoy.com/util': 1.9.0(tslib@2.8.1) hyperdyperid: 1.2.0 - thingies: 1.21.0(tslib@2.8.1) + thingies: 2.5.0(tslib@2.8.1) + tslib: 2.8.1 + + '@jsonjoy.com/json-pointer@1.0.1(tslib@2.8.1)': + dependencies: + '@jsonjoy.com/util': 1.9.0(tslib@2.8.1) tslib: 2.8.1 - '@jsonjoy.com/util@1.5.0(tslib@2.8.1)': + '@jsonjoy.com/util@1.9.0(tslib@2.8.1)': dependencies: + '@jsonjoy.com/buffers': 1.0.0(tslib@2.8.1) + '@jsonjoy.com/codegen': 1.0.0(tslib@2.8.1) tslib: 2.8.1 - '@libsql/client@0.15.10': + '@libsql/client@0.15.11': dependencies: - '@libsql/core': 0.15.10 + '@libsql/core': 0.15.11 '@libsql/hrana-client': 0.7.0 - js-base64: 3.7.7 + js-base64: 3.7.8 libsql: 0.5.17 promise-limit: 2.7.0 transitivePeerDependencies: - bufferutil - utf-8-validate - '@libsql/core@0.15.10': + '@libsql/core@0.15.11': dependencies: - js-base64: 3.7.7 + js-base64: 3.7.8 '@libsql/darwin-arm64@0.5.17': optional: true @@ -11144,7 +10810,7 @@ snapshots: dependencies: '@libsql/isomorphic-fetch': 0.3.1 '@libsql/isomorphic-ws': 0.1.5 - js-base64: 3.7.7 + js-base64: 3.7.8 node-fetch: 3.3.2 transitivePeerDependencies: - bufferutil @@ -11154,8 +10820,8 @@ snapshots: '@libsql/isomorphic-ws@0.1.5': dependencies: - '@types/ws': 8.5.10 - ws: 8.18.0 + '@types/ws': 8.18.1 + ws: 8.18.3 transitivePeerDependencies: - bufferutil - utf-8-validate @@ -11234,7 +10900,7 @@ snapshots: remark-mdx: 3.0.1 remark-parse: 11.0.0 remark-rehype: 11.1.0 - source-map: 0.7.4 + source-map: 0.7.6 unified: 11.0.5 unist-util-position-from-estree: 2.0.0 unist-util-stringify-position: 4.0.0 @@ -11244,41 +10910,41 @@ snapshots: - acorn - supports-color - '@microsoft/api-documenter@7.26.31(@types/node@24.2.1)': + '@microsoft/api-documenter@7.26.31(@types/node@24.3.0)': dependencies: - '@microsoft/api-extractor-model': 7.30.7(@types/node@24.2.1) + '@microsoft/api-extractor-model': 7.30.7(@types/node@24.3.0) '@microsoft/tsdoc': 0.15.1 - '@rushstack/node-core-library': 5.14.0(@types/node@24.2.1) - '@rushstack/terminal': 0.15.4(@types/node@24.2.1) - '@rushstack/ts-command-line': 5.0.2(@types/node@24.2.1) + '@rushstack/node-core-library': 5.14.0(@types/node@24.3.0) + '@rushstack/terminal': 0.15.4(@types/node@24.3.0) + '@rushstack/ts-command-line': 5.0.2(@types/node@24.3.0) js-yaml: 3.13.1 resolve: 1.22.10 transitivePeerDependencies: - '@types/node' - '@microsoft/api-extractor-model@7.30.7(@types/node@24.2.1)': + '@microsoft/api-extractor-model@7.30.7(@types/node@24.3.0)': dependencies: '@microsoft/tsdoc': 0.15.1 '@microsoft/tsdoc-config': 0.17.1 - '@rushstack/node-core-library': 5.14.0(@types/node@24.2.1) + '@rushstack/node-core-library': 5.14.0(@types/node@24.3.0) transitivePeerDependencies: - '@types/node' - '@microsoft/api-extractor@7.52.10(@types/node@24.2.1)': + '@microsoft/api-extractor@7.52.10(@types/node@24.3.0)': dependencies: - '@microsoft/api-extractor-model': 7.30.7(@types/node@24.2.1) + '@microsoft/api-extractor-model': 7.30.7(@types/node@24.3.0) '@microsoft/tsdoc': 0.15.1 '@microsoft/tsdoc-config': 0.17.1 - '@rushstack/node-core-library': 5.14.0(@types/node@24.2.1) + '@rushstack/node-core-library': 5.14.0(@types/node@24.3.0) '@rushstack/rig-package': 0.5.3 - '@rushstack/terminal': 0.15.4(@types/node@24.2.1) - '@rushstack/ts-command-line': 5.0.2(@types/node@24.2.1) + '@rushstack/terminal': 0.15.4(@types/node@24.3.0) + '@rushstack/ts-command-line': 5.0.2(@types/node@24.3.0) lodash: 4.17.21 minimatch: 10.0.3 resolve: 1.22.10 semver: 7.5.4 source-map: 0.6.1 - typescript: 5.8.3 + typescript: 5.9.2 transitivePeerDependencies: - '@types/node' @@ -11291,9 +10957,9 @@ snapshots: '@microsoft/tsdoc@0.15.1': {} - '@modular-forms/qwik@0.23.1(@qwik.dev/core@2.0.0-beta.7(prettier@3.6.2)(vite@7.1.0(@types/node@24.2.1)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1))(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.2.1)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1)))': + '@modular-forms/qwik@0.23.1(@qwik.dev/core@2.0.0-beta.7(prettier@3.6.2)(vite@7.1.2(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.4)(yaml@2.8.1))(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.4)(yaml@2.8.1)))': dependencies: - '@builder.io/qwik': '@qwik.dev/core@2.0.0-beta.7(prettier@3.6.2)(vite@7.1.0(@types/node@24.2.1)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1))(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.2.1)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1))' + '@builder.io/qwik': '@qwik.dev/core@2.0.0-beta.7(prettier@3.6.2)(vite@7.1.2(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.4)(yaml@2.8.1))(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.4)(yaml@2.8.1))' '@modular-forms/qwik@0.24.0': dependencies: @@ -11301,89 +10967,89 @@ snapshots: '@mui/core-downloads-tracker@5.16.7': {} - '@mui/material@5.16.4(@emotion/react@11.14.0(@types/react@19.1.10)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.10)(react@18.3.1))(@types/react@19.1.10)(react@18.3.1))(@types/react@19.1.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@mui/material@5.16.4(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: '@babel/runtime': 7.24.6 '@mui/core-downloads-tracker': 5.16.7 - '@mui/system': 5.16.4(@emotion/react@11.14.0(@types/react@19.1.10)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.10)(react@18.3.1))(@types/react@19.1.10)(react@18.3.1))(@types/react@19.1.10)(react@18.3.1) + '@mui/system': 5.16.4(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react@19.1.1) '@mui/types': 7.2.15(@types/react@19.1.10) - '@mui/utils': 5.16.6(@types/react@19.1.10)(react@18.3.1) + '@mui/utils': 5.16.6(@types/react@19.1.10)(react@19.1.1) '@popperjs/core': 2.11.8 '@types/react-transition-group': 4.4.10 clsx: 2.1.1 csstype: 3.1.3 prop-types: 15.8.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react: 19.1.1 + react-dom: 19.1.1(react@19.1.1) react-is: 18.3.1 - react-transition-group: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react-transition-group: 4.4.5(react-dom@19.1.1(react@19.1.1))(react@19.1.1) optionalDependencies: - '@emotion/react': 11.14.0(@types/react@19.1.10)(react@18.3.1) - '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.1.10)(react@18.3.1))(@types/react@19.1.10)(react@18.3.1) + '@emotion/react': 11.14.0(@types/react@19.1.10)(react@19.1.1) + '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react@19.1.1) '@types/react': 19.1.10 - '@mui/private-theming@5.16.6(@types/react@19.1.10)(react@18.3.1)': + '@mui/private-theming@5.16.6(@types/react@19.1.10)(react@19.1.1)': dependencies: '@babel/runtime': 7.24.6 - '@mui/utils': 5.16.6(@types/react@19.1.10)(react@18.3.1) + '@mui/utils': 5.16.6(@types/react@19.1.10)(react@19.1.1) prop-types: 15.8.1 - react: 18.3.1 + react: 19.1.1 optionalDependencies: '@types/react': 19.1.10 - '@mui/styled-engine@5.16.6(@emotion/react@11.14.0(@types/react@19.1.10)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.10)(react@18.3.1))(@types/react@19.1.10)(react@18.3.1))(react@18.3.1)': + '@mui/styled-engine@5.16.6(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react@19.1.1))(react@19.1.1)': dependencies: '@babel/runtime': 7.24.6 - '@emotion/cache': 11.13.1 + '@emotion/cache': 11.14.0 csstype: 3.1.3 prop-types: 15.8.1 - react: 18.3.1 + react: 19.1.1 optionalDependencies: - '@emotion/react': 11.14.0(@types/react@19.1.10)(react@18.3.1) - '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.1.10)(react@18.3.1))(@types/react@19.1.10)(react@18.3.1) + '@emotion/react': 11.14.0(@types/react@19.1.10)(react@19.1.1) + '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react@19.1.1) - '@mui/system@5.16.4(@emotion/react@11.14.0(@types/react@19.1.10)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.10)(react@18.3.1))(@types/react@19.1.10)(react@18.3.1))(@types/react@19.1.10)(react@18.3.1)': + '@mui/system@5.16.4(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react@19.1.1)': dependencies: '@babel/runtime': 7.24.6 - '@mui/private-theming': 5.16.6(@types/react@19.1.10)(react@18.3.1) - '@mui/styled-engine': 5.16.6(@emotion/react@11.14.0(@types/react@19.1.10)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.10)(react@18.3.1))(@types/react@19.1.10)(react@18.3.1))(react@18.3.1) + '@mui/private-theming': 5.16.6(@types/react@19.1.10)(react@19.1.1) + '@mui/styled-engine': 5.16.6(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react@19.1.1))(react@19.1.1) '@mui/types': 7.2.15(@types/react@19.1.10) - '@mui/utils': 5.16.6(@types/react@19.1.10)(react@18.3.1) + '@mui/utils': 5.16.6(@types/react@19.1.10)(react@19.1.1) clsx: 2.1.1 csstype: 3.1.3 prop-types: 15.8.1 - react: 18.3.1 + react: 19.1.1 optionalDependencies: - '@emotion/react': 11.14.0(@types/react@19.1.10)(react@18.3.1) - '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.1.10)(react@18.3.1))(@types/react@19.1.10)(react@18.3.1) + '@emotion/react': 11.14.0(@types/react@19.1.10)(react@19.1.1) + '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react@19.1.1) '@types/react': 19.1.10 '@mui/types@7.2.15(@types/react@19.1.10)': optionalDependencies: '@types/react': 19.1.10 - '@mui/utils@5.16.6(@types/react@19.1.10)(react@18.3.1)': + '@mui/utils@5.16.6(@types/react@19.1.10)(react@19.1.1)': dependencies: '@babel/runtime': 7.24.6 '@mui/types': 7.2.15(@types/react@19.1.10) '@types/prop-types': 15.7.12 clsx: 2.1.1 prop-types: 15.8.1 - react: 18.3.1 + react: 19.1.1 react-is: 18.3.1 optionalDependencies: '@types/react': 19.1.10 - '@mui/x-data-grid@6.20.4(@mui/material@5.16.4(@emotion/react@11.14.0(@types/react@19.1.10)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.10)(react@18.3.1))(@types/react@19.1.10)(react@18.3.1))(@types/react@19.1.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mui/system@5.16.4(@emotion/react@11.14.0(@types/react@19.1.10)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.10)(react@18.3.1))(@types/react@19.1.10)(react@18.3.1))(@types/react@19.1.10)(react@18.3.1))(@types/react@19.1.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@mui/x-data-grid@6.20.4(@mui/material@5.16.4(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@mui/system@5.16.4(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: '@babel/runtime': 7.24.6 - '@mui/material': 5.16.4(@emotion/react@11.14.0(@types/react@19.1.10)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.10)(react@18.3.1))(@types/react@19.1.10)(react@18.3.1))(@types/react@19.1.10)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@mui/system': 5.16.4(@emotion/react@11.14.0(@types/react@19.1.10)(react@18.3.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.10)(react@18.3.1))(@types/react@19.1.10)(react@18.3.1))(@types/react@19.1.10)(react@18.3.1) - '@mui/utils': 5.16.6(@types/react@19.1.10)(react@18.3.1) + '@mui/material': 5.16.4(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@mui/system': 5.16.4(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react@19.1.1) + '@mui/utils': 5.16.6(@types/react@19.1.10)(react@19.1.1) clsx: 2.1.1 prop-types: 15.8.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react: 19.1.1 + react-dom: 19.1.1(react@19.1.1) reselect: 4.1.8 transitivePeerDependencies: - '@types/react' @@ -11416,10 +11082,10 @@ snapshots: minimatch: 9.0.5 read-pkg: 7.1.0 semver: 7.7.2 - yaml: 2.6.1 + yaml: 2.8.1 yargs: 17.7.2 - '@netlify/build@32.1.4(@opentelemetry/api@1.8.0)(@types/node@24.2.1)(picomatch@4.0.3)(rollup@4.46.2)': + '@netlify/build@32.1.4(@opentelemetry/api@1.8.0)(@types/node@24.3.0)(picomatch@4.0.3)(rollup@4.46.2)': dependencies: '@bugsnag/js': 7.25.0 '@netlify/blobs': 8.2.0 @@ -11476,8 +11142,8 @@ snapshots: strip-ansi: 7.1.0 supports-color: 9.4.0 terminal-link: 3.0.0 - ts-node: 10.9.2(@types/node@24.2.1)(typescript@5.8.3) - typescript: 5.8.3 + ts-node: 10.9.2(@types/node@24.3.0)(typescript@5.9.2) + typescript: 5.9.2 uuid: 9.0.1 yargs: 17.7.2 transitivePeerDependencies: @@ -11734,7 +11400,7 @@ snapshots: es-module-lexer: 1.7.0 esbuild: 0.25.4 execa: 7.2.0 - fast-glob: 3.3.2 + fast-glob: 3.3.3 filter-obj: 5.1.0 find-up: 6.3.0 glob: 8.1.0 @@ -11790,7 +11456,7 @@ snapshots: '@octokit/auth-action@4.1.0': dependencies: '@octokit/auth-token': 4.0.0 - '@octokit/types': 13.5.0 + '@octokit/types': 13.10.0 '@octokit/auth-token@4.0.0': {} @@ -11802,7 +11468,7 @@ snapshots: '@octokit/graphql': 7.1.0 '@octokit/request': 8.4.0 '@octokit/request-error': 5.1.0 - '@octokit/types': 13.5.0 + '@octokit/types': 13.10.0 before-after-hook: 2.2.3 universal-user-agent: 6.0.1 @@ -11823,13 +11489,13 @@ snapshots: '@octokit/endpoint@9.0.5': dependencies: - '@octokit/types': 13.5.0 + '@octokit/types': 13.10.0 universal-user-agent: 6.0.1 '@octokit/graphql@7.1.0': dependencies: '@octokit/request': 8.4.0 - '@octokit/types': 13.5.0 + '@octokit/types': 13.10.0 universal-user-agent: 6.0.1 '@octokit/graphql@8.2.2': @@ -11840,8 +11506,6 @@ snapshots: '@octokit/openapi-types@20.0.0': {} - '@octokit/openapi-types@22.2.0': {} - '@octokit/openapi-types@24.2.0': {} '@octokit/openapi-types@25.1.0': {} @@ -11872,7 +11536,7 @@ snapshots: '@octokit/request-error@5.1.0': dependencies: - '@octokit/types': 13.5.0 + '@octokit/types': 13.10.0 deprecation: 2.3.1 once: 1.4.0 @@ -11884,7 +11548,7 @@ snapshots: dependencies: '@octokit/endpoint': 9.0.5 '@octokit/request-error': 5.1.0 - '@octokit/types': 13.5.0 + '@octokit/types': 13.10.0 universal-user-agent: 6.0.1 '@octokit/request@9.2.4': @@ -11910,10 +11574,6 @@ snapshots: dependencies: '@octokit/openapi-types': 24.2.0 - '@octokit/types@13.5.0': - dependencies: - '@octokit/openapi-types': 22.2.0 - '@octokit/types@14.1.0': dependencies: '@octokit/openapi-types': 25.1.0 @@ -12008,7 +11668,7 @@ snapshots: '@pnpm/tabtab@0.5.4': dependencies: - debug: 4.4.1 + debug: 4.4.1(supports-color@9.4.0) enquirer: 2.4.1 minimist: 1.2.8 untildify: 4.0.0 @@ -12021,7 +11681,7 @@ snapshots: '@puppeteer/browsers@2.2.4': dependencies: - debug: 4.4.1 + debug: 4.4.1(supports-color@9.4.0) extract-zip: 2.0.1 progress: 2.0.3 proxy-agent: 6.4.0 @@ -12032,167 +11692,99 @@ snapshots: transitivePeerDependencies: - supports-color - '@qwik-ui/headless@0.6.7(@qwik.dev/core@2.0.0-beta.7(prettier@3.6.2)(vite@7.1.0(@types/node@24.2.1)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1))(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.2.1)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1)))': + '@qwik-ui/headless@0.6.7(@qwik.dev/core@2.0.0-beta.7(prettier@3.6.2)(vite@7.1.2(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.4)(yaml@2.8.1))(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.4)(yaml@2.8.1)))': dependencies: - '@builder.io/qwik': '@qwik.dev/core@2.0.0-beta.7(prettier@3.6.2)(vite@7.1.0(@types/node@24.2.1)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1))(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.2.1)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1))' + '@builder.io/qwik': '@qwik.dev/core@2.0.0-beta.7(prettier@3.6.2)(vite@7.1.2(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.4)(yaml@2.8.1))(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.4)(yaml@2.8.1))' '@floating-ui/core': 1.6.2 '@floating-ui/dom': 1.6.5 '@oddbird/popover-polyfill': 0.4.3 body-scroll-lock-upgrade: 1.1.0 focus-trap: 7.5.4 - '@qwik.dev/core@2.0.0-beta.7(prettier@3.6.2)(vite@7.1.0(@types/node@24.2.1)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1))(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.2.1)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1))': + '@qwik.dev/core@2.0.0-beta.7(prettier@3.6.2)(vite@7.1.2(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.4)(yaml@2.8.1))(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.4)(yaml@2.8.1))': dependencies: csstype: 3.1.3 rollup: 4.46.2 - vite: 7.1.0(@types/node@24.2.1)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1) + vite: 7.1.2(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.4)(yaml@2.8.1) optionalDependencies: prettier: 3.6.2 - vitest: 3.2.4(@types/debug@4.1.12)(@types/node@24.2.1)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1) + vitest: 3.2.4(@types/debug@4.1.12)(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.4)(yaml@2.8.1) '@qwik.dev/partytown@0.11.2': dependencies: dotenv: 16.5.0 - '@rollup/pluginutils@5.2.0(rollup@4.44.0)': - dependencies: - '@types/estree': 1.0.8 - estree-walker: 2.0.2 - picomatch: 4.0.2 - optionalDependencies: - rollup: 4.44.0 - '@rollup/pluginutils@5.2.0(rollup@4.46.2)': dependencies: '@types/estree': 1.0.8 estree-walker: 2.0.2 - picomatch: 4.0.2 + picomatch: 4.0.3 optionalDependencies: rollup: 4.46.2 - '@rollup/rollup-android-arm-eabi@4.44.0': - optional: true - '@rollup/rollup-android-arm-eabi@4.46.2': optional: true - '@rollup/rollup-android-arm64@4.44.0': - optional: true - '@rollup/rollup-android-arm64@4.46.2': optional: true - '@rollup/rollup-darwin-arm64@4.44.0': - optional: true - '@rollup/rollup-darwin-arm64@4.46.2': optional: true - '@rollup/rollup-darwin-x64@4.44.0': - optional: true - '@rollup/rollup-darwin-x64@4.46.2': optional: true - '@rollup/rollup-freebsd-arm64@4.44.0': - optional: true - '@rollup/rollup-freebsd-arm64@4.46.2': optional: true - '@rollup/rollup-freebsd-x64@4.44.0': - optional: true - '@rollup/rollup-freebsd-x64@4.46.2': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.44.0': - optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.46.2': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.44.0': - optional: true - '@rollup/rollup-linux-arm-musleabihf@4.46.2': optional: true - '@rollup/rollup-linux-arm64-gnu@4.44.0': - optional: true - '@rollup/rollup-linux-arm64-gnu@4.46.2': optional: true - '@rollup/rollup-linux-arm64-musl@4.44.0': - optional: true - '@rollup/rollup-linux-arm64-musl@4.46.2': optional: true - '@rollup/rollup-linux-loongarch64-gnu@4.44.0': - optional: true - '@rollup/rollup-linux-loongarch64-gnu@4.46.2': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.44.0': - optional: true - '@rollup/rollup-linux-ppc64-gnu@4.46.2': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.44.0': - optional: true - '@rollup/rollup-linux-riscv64-gnu@4.46.2': optional: true - '@rollup/rollup-linux-riscv64-musl@4.44.0': - optional: true - '@rollup/rollup-linux-riscv64-musl@4.46.2': optional: true - '@rollup/rollup-linux-s390x-gnu@4.44.0': - optional: true - '@rollup/rollup-linux-s390x-gnu@4.46.2': optional: true - '@rollup/rollup-linux-x64-gnu@4.44.0': - optional: true - '@rollup/rollup-linux-x64-gnu@4.46.2': optional: true - '@rollup/rollup-linux-x64-musl@4.44.0': - optional: true - '@rollup/rollup-linux-x64-musl@4.46.2': optional: true - '@rollup/rollup-win32-arm64-msvc@4.44.0': - optional: true - '@rollup/rollup-win32-arm64-msvc@4.46.2': optional: true - '@rollup/rollup-win32-ia32-msvc@4.44.0': - optional: true - '@rollup/rollup-win32-ia32-msvc@4.46.2': optional: true - '@rollup/rollup-win32-x64-msvc@4.44.0': - optional: true - '@rollup/rollup-win32-x64-msvc@4.46.2': optional: true '@rtsao/scc@1.1.0': {} - '@rushstack/node-core-library@5.14.0(@types/node@24.2.1)': + '@rushstack/node-core-library@5.14.0(@types/node@24.3.0)': dependencies: ajv: 8.13.0 ajv-draft-04: 1.0.0(ajv@8.13.0) @@ -12203,74 +11795,74 @@ snapshots: resolve: 1.22.10 semver: 7.5.4 optionalDependencies: - '@types/node': 24.2.1 + '@types/node': 24.3.0 '@rushstack/rig-package@0.5.3': dependencies: resolve: 1.22.10 strip-json-comments: 3.1.1 - '@rushstack/terminal@0.15.4(@types/node@24.2.1)': + '@rushstack/terminal@0.15.4(@types/node@24.3.0)': dependencies: - '@rushstack/node-core-library': 5.14.0(@types/node@24.2.1) + '@rushstack/node-core-library': 5.14.0(@types/node@24.3.0) supports-color: 8.1.1 optionalDependencies: - '@types/node': 24.2.1 + '@types/node': 24.3.0 - '@rushstack/ts-command-line@5.0.2(@types/node@24.2.1)': + '@rushstack/ts-command-line@5.0.2(@types/node@24.3.0)': dependencies: - '@rushstack/terminal': 0.15.4(@types/node@24.2.1) + '@rushstack/terminal': 0.15.4(@types/node@24.3.0) '@types/argparse': 1.0.38 argparse: 1.0.10 string-argv: 0.3.2 transitivePeerDependencies: - '@types/node' - '@shikijs/colorized-brackets@3.9.1': + '@shikijs/colorized-brackets@3.9.2': dependencies: - shiki: 3.9.1 + shiki: 3.9.2 - '@shikijs/core@3.9.1': + '@shikijs/core@3.9.2': dependencies: - '@shikijs/types': 3.9.1 + '@shikijs/types': 3.9.2 '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 hast-util-to-html: 9.0.5 - '@shikijs/engine-javascript@3.9.1': + '@shikijs/engine-javascript@3.9.2': dependencies: - '@shikijs/types': 3.9.1 + '@shikijs/types': 3.9.2 '@shikijs/vscode-textmate': 10.0.2 oniguruma-to-es: 4.3.3 - '@shikijs/engine-oniguruma@3.9.1': + '@shikijs/engine-oniguruma@3.9.2': dependencies: - '@shikijs/types': 3.9.1 + '@shikijs/types': 3.9.2 '@shikijs/vscode-textmate': 10.0.2 - '@shikijs/langs@3.9.1': + '@shikijs/langs@3.9.2': dependencies: - '@shikijs/types': 3.9.1 + '@shikijs/types': 3.9.2 - '@shikijs/rehype@3.9.1': + '@shikijs/rehype@3.9.2': dependencies: - '@shikijs/types': 3.9.1 + '@shikijs/types': 3.9.2 '@types/hast': 3.0.4 hast-util-to-string: 3.0.1 - shiki: 3.9.1 + shiki: 3.9.2 unified: 11.0.5 unist-util-visit: 5.0.0 - '@shikijs/themes@3.9.1': + '@shikijs/themes@3.9.2': dependencies: - '@shikijs/types': 3.9.1 + '@shikijs/types': 3.9.2 - '@shikijs/transformers@3.9.1': + '@shikijs/transformers@3.9.2': dependencies: - '@shikijs/core': 3.9.1 - '@shikijs/types': 3.9.1 + '@shikijs/core': 3.9.2 + '@shikijs/types': 3.9.2 - '@shikijs/types@3.9.1': + '@shikijs/types@3.9.2': dependencies: '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 @@ -12344,76 +11936,76 @@ snapshots: dependencies: defer-to-connect: 2.0.1 - '@tailwindcss/node@4.1.11': + '@tailwindcss/node@4.1.12': dependencies: - '@ampproject/remapping': 2.3.0 - enhanced-resolve: 5.18.1 - jiti: 2.4.2 + '@jridgewell/remapping': 2.3.5 + enhanced-resolve: 5.18.3 + jiti: 2.5.1 lightningcss: 1.30.1 magic-string: 0.30.17 source-map-js: 1.2.1 - tailwindcss: 4.1.11 + tailwindcss: 4.1.12 - '@tailwindcss/oxide-android-arm64@4.1.11': + '@tailwindcss/oxide-android-arm64@4.1.12': optional: true - '@tailwindcss/oxide-darwin-arm64@4.1.11': + '@tailwindcss/oxide-darwin-arm64@4.1.12': optional: true - '@tailwindcss/oxide-darwin-x64@4.1.11': + '@tailwindcss/oxide-darwin-x64@4.1.12': optional: true - '@tailwindcss/oxide-freebsd-x64@4.1.11': + '@tailwindcss/oxide-freebsd-x64@4.1.12': optional: true - '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.11': + '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.12': optional: true - '@tailwindcss/oxide-linux-arm64-gnu@4.1.11': + '@tailwindcss/oxide-linux-arm64-gnu@4.1.12': optional: true - '@tailwindcss/oxide-linux-arm64-musl@4.1.11': + '@tailwindcss/oxide-linux-arm64-musl@4.1.12': optional: true - '@tailwindcss/oxide-linux-x64-gnu@4.1.11': + '@tailwindcss/oxide-linux-x64-gnu@4.1.12': optional: true - '@tailwindcss/oxide-linux-x64-musl@4.1.11': + '@tailwindcss/oxide-linux-x64-musl@4.1.12': optional: true - '@tailwindcss/oxide-wasm32-wasi@4.1.11': + '@tailwindcss/oxide-wasm32-wasi@4.1.12': optional: true - '@tailwindcss/oxide-win32-arm64-msvc@4.1.11': + '@tailwindcss/oxide-win32-arm64-msvc@4.1.12': optional: true - '@tailwindcss/oxide-win32-x64-msvc@4.1.11': + '@tailwindcss/oxide-win32-x64-msvc@4.1.12': optional: true - '@tailwindcss/oxide@4.1.11': + '@tailwindcss/oxide@4.1.12': dependencies: detect-libc: 2.0.4 tar: 7.4.3 optionalDependencies: - '@tailwindcss/oxide-android-arm64': 4.1.11 - '@tailwindcss/oxide-darwin-arm64': 4.1.11 - '@tailwindcss/oxide-darwin-x64': 4.1.11 - '@tailwindcss/oxide-freebsd-x64': 4.1.11 - '@tailwindcss/oxide-linux-arm-gnueabihf': 4.1.11 - '@tailwindcss/oxide-linux-arm64-gnu': 4.1.11 - '@tailwindcss/oxide-linux-arm64-musl': 4.1.11 - '@tailwindcss/oxide-linux-x64-gnu': 4.1.11 - '@tailwindcss/oxide-linux-x64-musl': 4.1.11 - '@tailwindcss/oxide-wasm32-wasi': 4.1.11 - '@tailwindcss/oxide-win32-arm64-msvc': 4.1.11 - '@tailwindcss/oxide-win32-x64-msvc': 4.1.11 - - '@tailwindcss/vite@4.1.11(vite@7.1.0(@types/node@24.2.1)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1))': - dependencies: - '@tailwindcss/node': 4.1.11 - '@tailwindcss/oxide': 4.1.11 - tailwindcss: 4.1.11 - vite: 7.1.0(@types/node@24.2.1)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1) + '@tailwindcss/oxide-android-arm64': 4.1.12 + '@tailwindcss/oxide-darwin-arm64': 4.1.12 + '@tailwindcss/oxide-darwin-x64': 4.1.12 + '@tailwindcss/oxide-freebsd-x64': 4.1.12 + '@tailwindcss/oxide-linux-arm-gnueabihf': 4.1.12 + '@tailwindcss/oxide-linux-arm64-gnu': 4.1.12 + '@tailwindcss/oxide-linux-arm64-musl': 4.1.12 + '@tailwindcss/oxide-linux-x64-gnu': 4.1.12 + '@tailwindcss/oxide-linux-x64-musl': 4.1.12 + '@tailwindcss/oxide-wasm32-wasi': 4.1.12 + '@tailwindcss/oxide-win32-arm64-msvc': 4.1.12 + '@tailwindcss/oxide-win32-x64-msvc': 4.1.12 + + '@tailwindcss/vite@4.1.12(vite@7.1.2(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.4)(yaml@2.8.1))': + dependencies: + '@tailwindcss/node': 4.1.12 + '@tailwindcss/oxide': 4.1.12 + tailwindcss: 4.1.12 + vite: 7.1.2(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.4)(yaml@2.8.1) '@tokenizer/token@0.3.0': {} @@ -12423,7 +12015,7 @@ snapshots: '@ts-morph/common@0.24.0': dependencies: - fast-glob: 3.3.2 + fast-glob: 3.3.3 minimatch: 9.0.5 mkdirp: 3.0.1 path-browserify: 1.0.1 @@ -12445,11 +12037,11 @@ snapshots: '@types/body-parser@1.19.6': dependencies: '@types/connect': 3.4.38 - '@types/node': 24.2.1 + '@types/node': 24.3.0 '@types/brotli@1.3.4': dependencies: - '@types/node': 24.2.1 + '@types/node': 24.3.0 '@types/bun@1.2.20(@types/react@19.1.10)': dependencies: @@ -12463,11 +12055,11 @@ snapshots: '@types/connect@3.4.38': dependencies: - '@types/node': 24.2.1 + '@types/node': 24.3.0 '@types/cross-spawn@6.0.6': dependencies: - '@types/node': 24.2.1 + '@types/node': 24.3.0 '@types/debug@4.1.12': dependencies: @@ -12485,7 +12077,7 @@ snapshots: '@types/express-serve-static-core@5.0.7': dependencies: - '@types/node': 24.2.1 + '@types/node': 24.3.0 '@types/qs': 6.14.0 '@types/range-parser': 1.2.7 '@types/send': 0.17.5 @@ -12512,7 +12104,7 @@ snapshots: '@types/http-proxy@1.17.14': dependencies: - '@types/node': 24.2.1 + '@types/node': 24.3.0 '@types/istanbul-lib-coverage@2.0.6': {} @@ -12544,11 +12136,11 @@ snapshots: '@types/node-forge@1.3.11': dependencies: - '@types/node': 24.2.1 + '@types/node': 24.3.0 '@types/node@12.20.55': {} - '@types/node@24.2.1': + '@types/node@24.3.0': dependencies: undici-types: 7.10.0 @@ -12560,13 +12152,11 @@ snapshots: '@types/phoenix@1.6.6': {} - '@types/prismjs@1.26.4': {} - '@types/prismjs@1.26.5': {} '@types/prompts@2.4.9': dependencies: - '@types/node': 24.2.1 + '@types/node': 24.3.0 kleur: 3.0.3 '@types/prop-types@15.7.12': {} @@ -12575,7 +12165,7 @@ snapshots: '@types/range-parser@1.2.7': {} - '@types/react-dom@18.3.0': + '@types/react-dom@19.1.7(@types/react@19.1.10)': dependencies: '@types/react': 19.1.10 @@ -12587,9 +12177,9 @@ snapshots: dependencies: csstype: 3.1.3 - '@types/refractor@3.4.1': + '@types/refractor@4.0.0': dependencies: - '@types/prismjs': 1.26.4 + refractor: 4.8.1 '@types/retry@0.12.1': {} @@ -12600,17 +12190,17 @@ snapshots: '@types/send@0.17.5': dependencies: '@types/mime': 1.3.5 - '@types/node': 24.2.1 + '@types/node': 24.3.0 '@types/serve-static@1.15.8': dependencies: '@types/http-errors': 2.0.5 - '@types/node': 24.2.1 + '@types/node': 24.3.0 '@types/send': 0.17.5 '@types/set-cookie-parser@2.4.10': dependencies: - '@types/node': 24.2.1 + '@types/node': 24.3.0 '@types/tmp@0.2.6': {} @@ -12624,11 +12214,7 @@ snapshots: '@types/ws@8.18.1': dependencies: - '@types/node': 24.2.1 - - '@types/ws@8.5.10': - dependencies: - '@types/node': 24.2.1 + '@types/node': 24.3.0 '@types/yargs-parser@21.0.3': {} @@ -12642,75 +12228,75 @@ snapshots: '@types/yauzl@2.10.3': dependencies: - '@types/node': 24.2.1 + '@types/node': 24.3.0 optional: true - '@typescript-eslint/eslint-plugin@8.39.1(@typescript-eslint/parser@8.39.1(eslint@9.33.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.33.0(jiti@2.4.2))(typescript@5.8.3)': + '@typescript-eslint/eslint-plugin@8.39.1(@typescript-eslint/parser@8.39.1(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.39.1(eslint@9.33.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/parser': 8.39.1(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2) '@typescript-eslint/scope-manager': 8.39.1 - '@typescript-eslint/type-utils': 8.39.1(eslint@9.33.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/utils': 8.39.1(eslint@9.33.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/type-utils': 8.39.1(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/utils': 8.39.1(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2) '@typescript-eslint/visitor-keys': 8.39.1 - eslint: 9.33.0(jiti@2.4.2) + eslint: 9.33.0(jiti@2.5.1) graphemer: 1.4.0 ignore: 7.0.5 natural-compare: 1.4.0 - ts-api-utils: 2.1.0(typescript@5.8.3) - typescript: 5.8.3 + ts-api-utils: 2.1.0(typescript@5.9.2) + typescript: 5.9.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.38.0(eslint@9.33.0(jiti@2.4.2))(typescript@5.8.3)': + '@typescript-eslint/parser@8.38.0(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2)': dependencies: '@typescript-eslint/scope-manager': 8.38.0 '@typescript-eslint/types': 8.38.0 - '@typescript-eslint/typescript-estree': 8.38.0(typescript@5.8.3) + '@typescript-eslint/typescript-estree': 8.38.0(typescript@5.9.2) '@typescript-eslint/visitor-keys': 8.38.0 - debug: 4.4.1 - eslint: 9.33.0(jiti@2.4.2) - typescript: 5.8.3 + debug: 4.4.1(supports-color@9.4.0) + eslint: 9.33.0(jiti@2.5.1) + typescript: 5.9.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.39.1(eslint@9.33.0(jiti@2.4.2))(typescript@5.8.3)': + '@typescript-eslint/parser@8.39.1(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2)': dependencies: '@typescript-eslint/scope-manager': 8.39.1 '@typescript-eslint/types': 8.39.1 - '@typescript-eslint/typescript-estree': 8.39.1(typescript@5.8.3) + '@typescript-eslint/typescript-estree': 8.39.1(typescript@5.9.2) '@typescript-eslint/visitor-keys': 8.39.1 - debug: 4.4.1 - eslint: 9.33.0(jiti@2.4.2) - typescript: 5.8.3 + debug: 4.4.1(supports-color@9.4.0) + eslint: 9.33.0(jiti@2.5.1) + typescript: 5.9.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.38.0(typescript@5.8.3)': + '@typescript-eslint/project-service@8.38.0(typescript@5.9.2)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.38.0(typescript@5.8.3) - '@typescript-eslint/types': 8.38.0 - debug: 4.4.1 - typescript: 5.8.3 + '@typescript-eslint/tsconfig-utils': 8.39.1(typescript@5.9.2) + '@typescript-eslint/types': 8.39.1 + debug: 4.4.1(supports-color@9.4.0) + typescript: 5.9.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.39.1(typescript@5.8.3)': + '@typescript-eslint/project-service@8.39.1(typescript@5.9.2)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.39.1(typescript@5.8.3) + '@typescript-eslint/tsconfig-utils': 8.39.1(typescript@5.9.2) '@typescript-eslint/types': 8.39.1 - debug: 4.4.1 - typescript: 5.8.3 + debug: 4.4.1(supports-color@9.4.0) + typescript: 5.9.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/rule-tester@8.38.0(eslint@9.33.0(jiti@2.4.2))(typescript@5.8.3)': + '@typescript-eslint/rule-tester@8.38.0(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2)': dependencies: - '@typescript-eslint/parser': 8.38.0(eslint@9.33.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/typescript-estree': 8.38.0(typescript@5.8.3) - '@typescript-eslint/utils': 8.38.0(eslint@9.33.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/parser': 8.38.0(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/typescript-estree': 8.38.0(typescript@5.9.2) + '@typescript-eslint/utils': 8.38.0(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2) ajv: 6.12.6 - eslint: 9.33.0(jiti@2.4.2) + eslint: 9.33.0(jiti@2.5.1) json-stable-stringify-without-jsonify: 1.0.1 lodash.merge: 4.6.2 semver: 7.7.2 @@ -12728,23 +12314,23 @@ snapshots: '@typescript-eslint/types': 8.39.1 '@typescript-eslint/visitor-keys': 8.39.1 - '@typescript-eslint/tsconfig-utils@8.38.0(typescript@5.8.3)': + '@typescript-eslint/tsconfig-utils@8.38.0(typescript@5.9.2)': dependencies: - typescript: 5.8.3 + typescript: 5.9.2 - '@typescript-eslint/tsconfig-utils@8.39.1(typescript@5.8.3)': + '@typescript-eslint/tsconfig-utils@8.39.1(typescript@5.9.2)': dependencies: - typescript: 5.8.3 + typescript: 5.9.2 - '@typescript-eslint/type-utils@8.39.1(eslint@9.33.0(jiti@2.4.2))(typescript@5.8.3)': + '@typescript-eslint/type-utils@8.39.1(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2)': dependencies: '@typescript-eslint/types': 8.39.1 - '@typescript-eslint/typescript-estree': 8.39.1(typescript@5.8.3) - '@typescript-eslint/utils': 8.39.1(eslint@9.33.0(jiti@2.4.2))(typescript@5.8.3) - debug: 4.4.1 - eslint: 9.33.0(jiti@2.4.2) - ts-api-utils: 2.1.0(typescript@5.8.3) - typescript: 5.8.3 + '@typescript-eslint/typescript-estree': 8.39.1(typescript@5.9.2) + '@typescript-eslint/utils': 8.39.1(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2) + debug: 4.4.1(supports-color@9.4.0) + eslint: 9.33.0(jiti@2.5.1) + ts-api-utils: 2.1.0(typescript@5.9.2) + typescript: 5.9.2 transitivePeerDependencies: - supports-color @@ -12754,71 +12340,71 @@ snapshots: '@typescript-eslint/types@8.39.1': {} - '@typescript-eslint/typescript-estree@5.62.0(supports-color@9.4.0)(typescript@5.8.3)': + '@typescript-eslint/typescript-estree@5.62.0(supports-color@9.4.0)(typescript@5.9.2)': dependencies: '@typescript-eslint/types': 5.62.0 '@typescript-eslint/visitor-keys': 5.62.0 - debug: 4.4.0(supports-color@9.4.0) + debug: 4.4.1(supports-color@9.4.0) globby: 11.1.0 is-glob: 4.0.3 semver: 7.7.2 - tsutils: 3.21.0(typescript@5.8.3) + tsutils: 3.21.0(typescript@5.9.2) optionalDependencies: - typescript: 5.8.3 + typescript: 5.9.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.38.0(typescript@5.8.3)': + '@typescript-eslint/typescript-estree@8.38.0(typescript@5.9.2)': dependencies: - '@typescript-eslint/project-service': 8.38.0(typescript@5.8.3) - '@typescript-eslint/tsconfig-utils': 8.38.0(typescript@5.8.3) + '@typescript-eslint/project-service': 8.38.0(typescript@5.9.2) + '@typescript-eslint/tsconfig-utils': 8.38.0(typescript@5.9.2) '@typescript-eslint/types': 8.38.0 '@typescript-eslint/visitor-keys': 8.38.0 - debug: 4.4.1 - fast-glob: 3.3.2 + debug: 4.4.1(supports-color@9.4.0) + fast-glob: 3.3.3 is-glob: 4.0.3 minimatch: 9.0.5 semver: 7.7.2 - ts-api-utils: 2.1.0(typescript@5.8.3) - typescript: 5.8.3 + ts-api-utils: 2.1.0(typescript@5.9.2) + typescript: 5.9.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.39.1(typescript@5.8.3)': + '@typescript-eslint/typescript-estree@8.39.1(typescript@5.9.2)': dependencies: - '@typescript-eslint/project-service': 8.39.1(typescript@5.8.3) - '@typescript-eslint/tsconfig-utils': 8.39.1(typescript@5.8.3) + '@typescript-eslint/project-service': 8.39.1(typescript@5.9.2) + '@typescript-eslint/tsconfig-utils': 8.39.1(typescript@5.9.2) '@typescript-eslint/types': 8.39.1 '@typescript-eslint/visitor-keys': 8.39.1 - debug: 4.4.1 + debug: 4.4.1(supports-color@9.4.0) fast-glob: 3.3.3 is-glob: 4.0.3 minimatch: 9.0.5 semver: 7.7.2 - ts-api-utils: 2.1.0(typescript@5.8.3) - typescript: 5.8.3 + ts-api-utils: 2.1.0(typescript@5.9.2) + typescript: 5.9.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.38.0(eslint@9.33.0(jiti@2.4.2))(typescript@5.8.3)': + '@typescript-eslint/utils@8.38.0(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2)': dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.33.0(jiti@2.4.2)) + '@eslint-community/eslint-utils': 4.7.0(eslint@9.33.0(jiti@2.5.1)) '@typescript-eslint/scope-manager': 8.38.0 '@typescript-eslint/types': 8.38.0 - '@typescript-eslint/typescript-estree': 8.38.0(typescript@5.8.3) - eslint: 9.33.0(jiti@2.4.2) - typescript: 5.8.3 + '@typescript-eslint/typescript-estree': 8.38.0(typescript@5.9.2) + eslint: 9.33.0(jiti@2.5.1) + typescript: 5.9.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.39.1(eslint@9.33.0(jiti@2.4.2))(typescript@5.8.3)': + '@typescript-eslint/utils@8.39.1(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2)': dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.33.0(jiti@2.4.2)) + '@eslint-community/eslint-utils': 4.7.0(eslint@9.33.0(jiti@2.5.1)) '@typescript-eslint/scope-manager': 8.39.1 '@typescript-eslint/types': 8.39.1 - '@typescript-eslint/typescript-estree': 8.39.1(typescript@5.8.3) - eslint: 9.33.0(jiti@2.4.2) - typescript: 5.8.3 + '@typescript-eslint/typescript-estree': 8.39.1(typescript@5.9.2) + eslint: 9.33.0(jiti@2.5.1) + typescript: 5.9.2 transitivePeerDependencies: - supports-color @@ -12848,15 +12434,15 @@ snapshots: treeify: 1.1.0 yargs: 16.2.0 - '@ungap/structured-clone@1.2.0': {} + '@ungap/structured-clone@1.3.0': {} '@unpic/core@0.0.42': dependencies: unpic: 3.18.0 - '@unpic/qwik@0.0.38(@qwik.dev/core@2.0.0-beta.7(prettier@3.6.2)(vite@7.1.0(@types/node@24.2.1)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1))(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.2.1)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1)))': + '@unpic/qwik@0.0.38(@qwik.dev/core@2.0.0-beta.7(prettier@3.6.2)(vite@7.1.2(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.4)(yaml@2.8.1))(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.4)(yaml@2.8.1)))': dependencies: - '@builder.io/qwik': '@qwik.dev/core@2.0.0-beta.7(prettier@3.6.2)(vite@7.1.0(@types/node@24.2.1)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1))(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.2.1)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1))' + '@builder.io/qwik': '@qwik.dev/core@2.0.0-beta.7(prettier@3.6.2)(vite@7.1.2(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.4)(yaml@2.8.1))(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.4)(yaml@2.8.1))' '@vercel/nft@0.27.7(rollup@4.46.2)(supports-color@9.4.0)': dependencies: @@ -12877,16 +12463,16 @@ snapshots: - rollup - supports-color - '@vitejs/plugin-basic-ssl@2.1.0(vite@7.1.0(@types/node@24.2.1)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1))': + '@vitejs/plugin-basic-ssl@2.1.0(vite@7.1.2(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.4)(yaml@2.8.1))': dependencies: - vite: 7.1.0(@types/node@24.2.1)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1) + vite: 7.1.2(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.4)(yaml@2.8.1) - '@vitest/coverage-v8@3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.2.1)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1))': + '@vitest/coverage-v8@3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.4)(yaml@2.8.1))': dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 1.0.2 ast-v8-to-istanbul: 0.3.3 - debug: 4.4.1 + debug: 4.4.1(supports-color@9.4.0) istanbul-lib-coverage: 3.2.2 istanbul-lib-report: 3.0.1 istanbul-lib-source-maps: 5.0.6 @@ -12896,7 +12482,7 @@ snapshots: std-env: 3.9.0 test-exclude: 7.0.1 tinyrainbow: 2.0.0 - vitest: 3.2.4(@types/debug@4.1.12)(@types/node@24.2.1)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1) + vitest: 3.2.4(@types/debug@4.1.12)(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.4)(yaml@2.8.1) transitivePeerDependencies: - supports-color @@ -12908,13 +12494,13 @@ snapshots: chai: 5.2.0 tinyrainbow: 2.0.0 - '@vitest/mocker@3.2.4(vite@7.0.0(@types/node@24.2.1)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1))': + '@vitest/mocker@3.2.4(vite@7.1.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.4)(yaml@2.8.1))': dependencies: '@vitest/spy': 3.2.4 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 7.0.0(@types/node@24.2.1)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1) + vite: 7.1.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.4)(yaml@2.8.1) '@vitest/pretty-format@3.2.4': dependencies: @@ -12972,7 +12558,7 @@ snapshots: de-indent: 1.0.2 he: 1.2.0 - '@vue/language-core@2.2.0(typescript@5.8.3)': + '@vue/language-core@2.2.0(typescript@5.9.2)': dependencies: '@volar/language-core': 2.4.15 '@vue/compiler-dom': 3.5.17 @@ -12983,7 +12569,7 @@ snapshots: muggle-string: 0.4.1 path-browserify: 1.0.1 optionalDependencies: - typescript: 5.8.3 + typescript: 5.9.2 '@vue/shared@3.5.17': {} @@ -13096,13 +12682,7 @@ snapshots: agent-base@6.0.2(supports-color@9.4.0): dependencies: - debug: 4.4.0(supports-color@9.4.0) - transitivePeerDependencies: - - supports-color - - agent-base@7.1.1: - dependencies: - debug: 4.4.1 + debug: 4.4.1(supports-color@9.4.0) transitivePeerDependencies: - supports-color @@ -13217,10 +12797,6 @@ snapshots: ansi-regex@6.0.1: {} - ansi-styles@3.2.1: - dependencies: - color-convert: 1.9.3 - ansi-styles@4.3.0: dependencies: color-convert: 2.0.1 @@ -13291,11 +12867,6 @@ snapshots: argparse@2.0.1: {} - array-buffer-byte-length@1.0.1: - dependencies: - call-bind: 1.0.7 - is-array-buffer: 3.0.4 - array-buffer-byte-length@1.0.2: dependencies: call-bound: 1.0.4 @@ -13303,15 +12874,6 @@ snapshots: array-flatten@1.1.1: {} - array-includes@3.1.8: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 - es-object-atoms: 1.0.0 - get-intrinsic: 1.2.4 - is-string: 1.0.7 - array-includes@3.1.9: dependencies: call-bind: 1.0.8 @@ -13337,13 +12899,6 @@ snapshots: es-object-atoms: 1.1.1 es-shim-unscopables: 1.1.0 - array.prototype.flat@1.3.2: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 - es-shim-unscopables: 1.0.2 - array.prototype.flat@1.3.3: dependencies: call-bind: 1.0.8 @@ -13358,17 +12913,6 @@ snapshots: es-abstract: 1.24.0 es-shim-unscopables: 1.1.0 - arraybuffer.prototype.slice@1.0.3: - dependencies: - array-buffer-byte-length: 1.0.1 - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 - es-errors: 1.3.0 - get-intrinsic: 1.2.4 - is-array-buffer: 3.0.4 - is-shared-array-buffer: 1.0.3 - arraybuffer.prototype.slice@1.0.4: dependencies: array-buffer-byte-length: 1.0.2 @@ -13492,7 +13036,7 @@ snapshots: better-ajv-errors@1.2.0(ajv@8.16.0): dependencies: - '@babel/code-frame': 7.24.6 + '@babel/code-frame': 7.27.1 '@humanwhocodes/momoa': 2.0.4 ajv: 8.16.0 chalk: 4.1.2 @@ -13597,11 +13141,11 @@ snapshots: builtins@5.1.0: dependencies: - semver: 7.7.1 + semver: 7.7.2 bun-types@1.2.20(@types/react@19.1.10): dependencies: - '@types/node': 24.2.1 + '@types/node': 24.3.0 '@types/react': 19.1.10 bundle-name@4.1.0: @@ -13631,14 +13175,6 @@ snapshots: es-errors: 1.3.0 function-bind: 1.1.2 - call-bind@1.0.7: - dependencies: - es-define-property: 1.0.0 - es-errors: 1.3.0 - function-bind: 1.1.2 - get-intrinsic: 1.2.4 - set-function-length: 1.2.2 - call-bind@1.0.8: dependencies: call-bind-apply-helpers: 1.0.2 @@ -13665,7 +13201,7 @@ snapshots: capnp-ts@0.7.0: dependencies: - debug: 4.4.1 + debug: 4.4.1(supports-color@9.4.0) tslib: 2.8.1 transitivePeerDependencies: - supports-color @@ -13684,12 +13220,6 @@ snapshots: dependencies: chalk: 5.5.0 - chalk@2.4.2: - dependencies: - ansi-styles: 3.2.1 - escape-string-regexp: 1.0.5 - supports-color: 5.5.0 - chalk@4.1.2: dependencies: ansi-styles: 4.3.0 @@ -13942,14 +13472,14 @@ snapshots: path-type: 4.0.0 yaml: 1.10.2 - cosmiconfig@9.0.0(typescript@5.8.3): + cosmiconfig@9.0.0(typescript@5.9.2): dependencies: env-paths: 2.2.1 import-fresh: 3.3.1 js-yaml: 4.1.0 parse-json: 5.2.0 optionalDependencies: - typescript: 5.8.3 + typescript: 5.9.2 cp-file@10.0.0: dependencies: @@ -14032,36 +13562,18 @@ snapshots: data-uri-to-buffer@6.0.2: {} - data-view-buffer@1.0.1: - dependencies: - call-bind: 1.0.7 - es-errors: 1.3.0 - is-data-view: 1.0.1 - data-view-buffer@1.0.2: dependencies: call-bound: 1.0.4 es-errors: 1.3.0 is-data-view: 1.0.2 - data-view-byte-length@1.0.1: - dependencies: - call-bind: 1.0.7 - es-errors: 1.3.0 - is-data-view: 1.0.1 - data-view-byte-length@1.0.2: dependencies: call-bound: 1.0.4 es-errors: 1.3.0 is-data-view: 1.0.2 - data-view-byte-offset@1.0.0: - dependencies: - call-bind: 1.0.7 - es-errors: 1.3.0 - is-data-view: 1.0.1 - data-view-byte-offset@1.0.1: dependencies: call-bound: 1.0.4 @@ -14082,15 +13594,15 @@ snapshots: dependencies: ms: 2.1.3 - debug@4.4.0(supports-color@9.4.0): + debug@4.4.0: dependencies: ms: 2.1.3 - optionalDependencies: - supports-color: 9.4.0 - debug@4.4.1: + debug@4.4.1(supports-color@9.4.0): dependencies: ms: 2.1.3 + optionalDependencies: + supports-color: 9.4.0 decache@4.6.2: dependencies: @@ -14213,10 +13725,10 @@ snapshots: detective-typescript@11.2.0(supports-color@9.4.0): dependencies: - '@typescript-eslint/typescript-estree': 5.62.0(supports-color@9.4.0)(typescript@5.8.3) + '@typescript-eslint/typescript-estree': 5.62.0(supports-color@9.4.0)(typescript@5.9.2) ast-module-types: 5.0.0 node-source-walk: 6.0.2 - typescript: 5.8.3 + typescript: 5.9.2 transitivePeerDependencies: - supports-color @@ -14277,14 +13789,14 @@ snapshots: dependencies: '@drizzle-team/brocli': 0.10.2 '@esbuild-kit/esm-loader': 2.6.5 - esbuild: 0.25.8 - esbuild-register: 3.5.0(esbuild@0.25.8) + esbuild: 0.25.9 + esbuild-register: 3.5.0(esbuild@0.25.9) transitivePeerDependencies: - supports-color - drizzle-orm@0.44.4(@libsql/client@0.15.10)(@opentelemetry/api@1.8.0)(bun-types@1.2.20(@types/react@19.1.10)): + drizzle-orm@0.44.4(@libsql/client@0.15.11)(@opentelemetry/api@1.8.0)(bun-types@1.2.20(@types/react@19.1.10)): optionalDependencies: - '@libsql/client': 0.15.10 + '@libsql/client': 0.15.11 '@opentelemetry/api': 1.8.0 bun-types: 1.2.20(@types/react@19.1.10) @@ -14327,10 +13839,10 @@ snapshots: dependencies: once: 1.4.0 - enhanced-resolve@5.18.1: + enhanced-resolve@5.18.3: dependencies: graceful-fs: 4.2.11 - tapable: 2.2.1 + tapable: 2.2.2 enquirer@2.4.1: dependencies: @@ -14359,55 +13871,6 @@ snapshots: dependencies: stackframe: 1.3.4 - es-abstract@1.23.3: - dependencies: - array-buffer-byte-length: 1.0.1 - arraybuffer.prototype.slice: 1.0.3 - available-typed-arrays: 1.0.7 - call-bind: 1.0.7 - data-view-buffer: 1.0.1 - data-view-byte-length: 1.0.1 - data-view-byte-offset: 1.0.0 - es-define-property: 1.0.0 - es-errors: 1.3.0 - es-object-atoms: 1.0.0 - es-set-tostringtag: 2.0.3 - es-to-primitive: 1.2.1 - function.prototype.name: 1.1.6 - get-intrinsic: 1.2.4 - get-symbol-description: 1.0.2 - globalthis: 1.0.4 - gopd: 1.0.1 - has-property-descriptors: 1.0.2 - has-proto: 1.0.3 - has-symbols: 1.0.3 - hasown: 2.0.2 - internal-slot: 1.0.7 - is-array-buffer: 3.0.4 - is-callable: 1.2.7 - is-data-view: 1.0.1 - is-negative-zero: 2.0.3 - is-regex: 1.1.4 - is-shared-array-buffer: 1.0.3 - is-string: 1.0.7 - is-typed-array: 1.1.13 - is-weakref: 1.0.2 - object-inspect: 1.13.1 - object-keys: 1.1.1 - object.assign: 4.1.5 - regexp.prototype.flags: 1.5.2 - safe-array-concat: 1.1.2 - safe-regex-test: 1.0.3 - string.prototype.trim: 1.2.9 - string.prototype.trimend: 1.0.9 - string.prototype.trimstart: 1.0.8 - typed-array-buffer: 1.0.2 - typed-array-byte-length: 1.0.1 - typed-array-byte-offset: 1.0.2 - typed-array-length: 1.0.6 - unbox-primitive: 1.0.2 - which-typed-array: 1.1.15 - es-abstract@1.24.0: dependencies: array-buffer-byte-length: 1.0.2 @@ -14465,30 +13928,16 @@ snapshots: unbox-primitive: 1.1.0 which-typed-array: 1.1.19 - es-define-property@1.0.0: - dependencies: - get-intrinsic: 1.2.4 - es-define-property@1.0.1: {} es-errors@1.3.0: {} es-module-lexer@1.7.0: {} - es-object-atoms@1.0.0: - dependencies: - es-errors: 1.3.0 - es-object-atoms@1.1.1: dependencies: es-errors: 1.3.0 - es-set-tostringtag@2.0.3: - dependencies: - get-intrinsic: 1.2.4 - has-tostringtag: 1.0.2 - hasown: 2.0.2 - es-set-tostringtag@2.1.0: dependencies: es-errors: 1.3.0 @@ -14496,20 +13945,10 @@ snapshots: has-tostringtag: 1.0.2 hasown: 2.0.2 - es-shim-unscopables@1.0.2: - dependencies: - hasown: 2.0.2 - es-shim-unscopables@1.1.0: dependencies: hasown: 2.0.2 - es-to-primitive@1.2.1: - dependencies: - is-callable: 1.2.7 - is-date-object: 1.0.5 - is-symbol: 1.0.4 - es-to-primitive@1.3.0: dependencies: is-callable: 1.2.7 @@ -14578,14 +14017,14 @@ snapshots: esbuild-openbsd-64@0.15.18: optional: true - esbuild-plugin-raw@0.2.0(esbuild@0.25.8): + esbuild-plugin-raw@0.2.0(esbuild@0.25.9): dependencies: - esbuild: 0.25.8 + esbuild: 0.25.9 - esbuild-register@3.5.0(esbuild@0.25.8): + esbuild-register@3.5.0(esbuild@0.25.9): dependencies: - debug: 4.4.1 - esbuild: 0.25.8 + debug: 4.4.1(supports-color@9.4.0) + esbuild: 0.25.9 transitivePeerDependencies: - supports-color @@ -14733,36 +14172,34 @@ snapshots: '@esbuild/win32-ia32': 0.25.6 '@esbuild/win32-x64': 0.25.6 - esbuild@0.25.8: + esbuild@0.25.9: optionalDependencies: - '@esbuild/aix-ppc64': 0.25.8 - '@esbuild/android-arm': 0.25.8 - '@esbuild/android-arm64': 0.25.8 - '@esbuild/android-x64': 0.25.8 - '@esbuild/darwin-arm64': 0.25.8 - '@esbuild/darwin-x64': 0.25.8 - '@esbuild/freebsd-arm64': 0.25.8 - '@esbuild/freebsd-x64': 0.25.8 - '@esbuild/linux-arm': 0.25.8 - '@esbuild/linux-arm64': 0.25.8 - '@esbuild/linux-ia32': 0.25.8 - '@esbuild/linux-loong64': 0.25.8 - '@esbuild/linux-mips64el': 0.25.8 - '@esbuild/linux-ppc64': 0.25.8 - '@esbuild/linux-riscv64': 0.25.8 - '@esbuild/linux-s390x': 0.25.8 - '@esbuild/linux-x64': 0.25.8 - '@esbuild/netbsd-arm64': 0.25.8 - '@esbuild/netbsd-x64': 0.25.8 - '@esbuild/openbsd-arm64': 0.25.8 - '@esbuild/openbsd-x64': 0.25.8 - '@esbuild/openharmony-arm64': 0.25.8 - '@esbuild/sunos-x64': 0.25.8 - '@esbuild/win32-arm64': 0.25.8 - '@esbuild/win32-ia32': 0.25.8 - '@esbuild/win32-x64': 0.25.8 - - escalade@3.1.2: {} + '@esbuild/aix-ppc64': 0.25.9 + '@esbuild/android-arm': 0.25.9 + '@esbuild/android-arm64': 0.25.9 + '@esbuild/android-x64': 0.25.9 + '@esbuild/darwin-arm64': 0.25.9 + '@esbuild/darwin-x64': 0.25.9 + '@esbuild/freebsd-arm64': 0.25.9 + '@esbuild/freebsd-x64': 0.25.9 + '@esbuild/linux-arm': 0.25.9 + '@esbuild/linux-arm64': 0.25.9 + '@esbuild/linux-ia32': 0.25.9 + '@esbuild/linux-loong64': 0.25.9 + '@esbuild/linux-mips64el': 0.25.9 + '@esbuild/linux-ppc64': 0.25.9 + '@esbuild/linux-riscv64': 0.25.9 + '@esbuild/linux-s390x': 0.25.9 + '@esbuild/linux-x64': 0.25.9 + '@esbuild/netbsd-arm64': 0.25.9 + '@esbuild/netbsd-x64': 0.25.9 + '@esbuild/openbsd-arm64': 0.25.9 + '@esbuild/openbsd-x64': 0.25.9 + '@esbuild/openharmony-arm64': 0.25.9 + '@esbuild/sunos-x64': 0.25.9 + '@esbuild/win32-arm64': 0.25.9 + '@esbuild/win32-ia32': 0.25.9 + '@esbuild/win32-x64': 0.25.9 escalade@3.2.0: {} @@ -14792,16 +14229,16 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.1(eslint-import-resolver-node@0.3.9)(eslint@9.33.0(jiti@2.4.2)): + eslint-module-utils@2.12.1(eslint-import-resolver-node@0.3.9)(eslint@9.33.0(jiti@2.5.1)): dependencies: debug: 3.2.7 optionalDependencies: - eslint: 9.33.0(jiti@2.4.2) + eslint: 9.33.0(jiti@2.5.1) eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color - eslint-plugin-import@2.32.0(eslint@9.33.0(jiti@2.4.2)): + eslint-plugin-import@2.32.0(eslint@9.33.0(jiti@2.5.1)): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.9 @@ -14810,9 +14247,9 @@ snapshots: array.prototype.flatmap: 1.3.3 debug: 3.2.7 doctrine: 2.1.0 - eslint: 9.33.0(jiti@2.4.2) + eslint: 9.33.0(jiti@2.5.1) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1(eslint-import-resolver-node@0.3.9)(eslint@9.33.0(jiti@2.4.2)) + eslint-module-utils: 2.12.1(eslint-import-resolver-node@0.3.9)(eslint@9.33.0(jiti@2.5.1)) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -14839,9 +14276,9 @@ snapshots: eslint-visitor-keys@4.2.1: {} - eslint@9.33.0(jiti@2.4.2): + eslint@9.33.0(jiti@2.5.1): dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.33.0(jiti@2.4.2)) + '@eslint-community/eslint-utils': 4.7.0(eslint@9.33.0(jiti@2.5.1)) '@eslint-community/regexpp': 4.12.1 '@eslint/config-array': 0.21.0 '@eslint/config-helpers': 0.3.1 @@ -14857,7 +14294,7 @@ snapshots: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.6 - debug: 4.4.1 + debug: 4.4.1(supports-color@9.4.0) escape-string-regexp: 4.0.0 eslint-scope: 8.4.0 eslint-visitor-keys: 4.2.1 @@ -14877,7 +14314,7 @@ snapshots: natural-compare: 1.4.0 optionator: 0.9.4 optionalDependencies: - jiti: 2.4.2 + jiti: 2.5.1 transitivePeerDependencies: - supports-color @@ -14921,7 +14358,7 @@ snapshots: dependencies: '@types/estree-jsx': 1.0.5 astring: 1.8.6 - source-map: 0.7.4 + source-map: 0.7.6 estree-util-value-to-estree@3.4.0: dependencies: @@ -15109,7 +14546,7 @@ snapshots: extract-zip@2.0.1: dependencies: - debug: 4.4.1 + debug: 4.4.1(supports-color@9.4.0) get-stream: 5.2.0 yauzl: 2.10.0 optionalDependencies: @@ -15133,14 +14570,6 @@ snapshots: fast-fifo@1.3.2: {} - fast-glob@3.3.2: - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.8 - fast-glob@3.3.3: dependencies: '@nodelib/fs.stat': 2.0.5 @@ -15208,11 +14637,11 @@ snapshots: dependencies: pend: 1.2.0 - fdir@6.4.6(picomatch@4.0.2): + fdir@6.4.6(picomatch@4.0.3): optionalDependencies: - picomatch: 4.0.2 + picomatch: 4.0.3 - fdir@6.4.6(picomatch@4.0.3): + fdir@6.5.0(picomatch@4.0.3): optionalDependencies: picomatch: 4.0.3 @@ -15341,11 +14770,7 @@ snapshots: follow-redirects@1.15.6(debug@4.4.0): optionalDependencies: - debug: 4.4.0(supports-color@9.4.0) - - for-each@0.3.3: - dependencies: - is-callable: 1.2.7 + debug: 4.4.0 for-each@0.3.5: dependencies: @@ -15415,13 +14840,6 @@ snapshots: function-bind@1.1.2: {} - function.prototype.name@1.1.6: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 - functions-have-names: 1.2.3 - function.prototype.name@1.1.8: dependencies: call-bind: 1.0.8 @@ -15456,14 +14874,6 @@ snapshots: get-east-asian-width@1.2.0: {} - get-intrinsic@1.2.4: - dependencies: - es-errors: 1.3.0 - function-bind: 1.1.2 - has-proto: 1.0.3 - has-symbols: 1.0.3 - hasown: 2.0.2 - get-intrinsic@1.3.0: dependencies: call-bind-apply-helpers: 1.0.2 @@ -15505,19 +14915,13 @@ snapshots: get-stream@8.0.1: {} - get-symbol-description@1.0.2: - dependencies: - call-bind: 1.0.7 - es-errors: 1.3.0 - get-intrinsic: 1.2.4 - get-symbol-description@1.1.0: dependencies: call-bound: 1.0.4 es-errors: 1.3.0 get-intrinsic: 1.3.0 - get-tsconfig@4.10.0: + get-tsconfig@4.10.1: dependencies: resolve-pkg-maps: 1.0.0 @@ -15525,7 +14929,7 @@ snapshots: dependencies: basic-ftp: 5.0.5 data-uri-to-buffer: 6.0.2 - debug: 4.4.1 + debug: 4.4.1(supports-color@9.4.0) fs-extra: 11.3.0 transitivePeerDependencies: - supports-color @@ -15599,8 +15003,8 @@ snapshots: dependencies: array-union: 2.1.0 dir-glob: 3.0.1 - fast-glob: 3.3.2 - ignore: 5.3.2 + fast-glob: 3.3.3 + ignore: 5.3.1 merge2: 1.4.1 slash: 3.0.0 @@ -15608,7 +15012,7 @@ snapshots: dependencies: dir-glob: 3.0.1 fast-glob: 3.3.3 - ignore: 5.3.2 + ignore: 5.3.1 merge2: 1.4.1 slash: 4.0.0 @@ -15627,10 +15031,6 @@ snapshots: dependencies: minimist: 1.2.8 - gopd@1.0.1: - dependencies: - get-intrinsic: 1.2.4 - gopd@1.2.0: {} got@12.6.1: @@ -15675,12 +15075,8 @@ snapshots: transitivePeerDependencies: - uWebSockets.js - has-bigints@1.0.2: {} - has-bigints@1.1.0: {} - has-flag@3.0.0: {} - has-flag@4.0.0: {} has-own-prop@2.0.0: {} @@ -15689,14 +15085,10 @@ snapshots: dependencies: es-define-property: 1.0.1 - has-proto@1.0.3: {} - has-proto@1.2.0: dependencies: dunder-proto: 1.0.1 - has-symbols@1.0.3: {} - has-symbols@1.1.0: {} has-tostringtag@1.0.2: @@ -15754,8 +15146,8 @@ snapshots: comma-separated-tokens: 2.0.3 hast-util-whitespace: 3.0.0 html-void-elements: 3.0.0 - mdast-util-to-hast: 13.1.0 - property-information: 7.0.0 + mdast-util-to-hast: 13.2.0 + property-information: 7.1.0 space-separated-tokens: 2.0.2 stringify-entities: 4.0.4 zwitch: 2.0.4 @@ -15812,7 +15204,7 @@ snapshots: hosted-git-info@7.0.2: dependencies: - lru-cache: 10.2.2 + lru-cache: 10.4.3 hosted-git-info@8.1.0: dependencies: @@ -15846,8 +15238,8 @@ snapshots: http-proxy-agent@7.0.2: dependencies: - agent-base: 7.1.1 - debug: 4.4.1 + agent-base: 7.1.4 + debug: 4.4.1(supports-color@9.4.0) transitivePeerDependencies: - supports-color @@ -15881,21 +15273,14 @@ snapshots: https-proxy-agent@5.0.1(supports-color@9.4.0): dependencies: agent-base: 6.0.2(supports-color@9.4.0) - debug: 4.4.0(supports-color@9.4.0) - transitivePeerDependencies: - - supports-color - - https-proxy-agent@7.0.5: - dependencies: - agent-base: 7.1.1 - debug: 4.4.1 + debug: 4.4.1(supports-color@9.4.0) transitivePeerDependencies: - supports-color https-proxy-agent@7.0.6: dependencies: agent-base: 7.1.4 - debug: 4.4.1 + debug: 4.4.1(supports-color@9.4.0) transitivePeerDependencies: - supports-color @@ -15923,8 +15308,6 @@ snapshots: ignore@5.3.1: {} - ignore@5.3.2: {} - ignore@7.0.5: {} image-meta@0.2.0: {} @@ -16014,12 +15397,6 @@ snapshots: install@0.13.0: {} - internal-slot@1.0.7: - dependencies: - es-errors: 1.3.0 - hasown: 2.0.2 - side-channel: 1.0.6 - internal-slot@1.1.0: dependencies: es-errors: 1.3.0 @@ -16076,11 +15453,6 @@ snapshots: is-alphabetical: 2.0.1 is-decimal: 2.0.1 - is-array-buffer@3.0.4: - dependencies: - call-bind: 1.0.7 - get-intrinsic: 1.2.4 - is-array-buffer@3.0.5: dependencies: call-bind: 1.0.8 @@ -16099,10 +15471,6 @@ snapshots: has-tostringtag: 1.0.2 safe-regex-test: 1.1.0 - is-bigint@1.0.4: - dependencies: - has-bigints: 1.0.2 - is-bigint@1.1.0: dependencies: has-bigints: 1.1.0 @@ -16111,11 +15479,6 @@ snapshots: dependencies: binary-extensions: 2.3.0 - is-boolean-object@1.1.2: - dependencies: - call-bind: 1.0.7 - has-tostringtag: 1.0.2 - is-boolean-object@1.2.2: dependencies: call-bound: 1.0.4 @@ -16131,20 +15494,12 @@ snapshots: dependencies: hasown: 2.0.2 - is-data-view@1.0.1: - dependencies: - is-typed-array: 1.1.13 - is-data-view@1.0.2: dependencies: call-bound: 1.0.4 get-intrinsic: 1.3.0 is-typed-array: 1.1.15 - is-date-object@1.0.5: - dependencies: - has-tostringtag: 1.0.2 - is-date-object@1.1.0: dependencies: call-bound: 1.0.4 @@ -16204,10 +15559,6 @@ snapshots: is-npm@6.0.0: {} - is-number-object@1.0.7: - dependencies: - has-tostringtag: 1.0.2 - is-number-object@1.1.1: dependencies: call-bound: 1.0.4 @@ -16225,11 +15576,6 @@ snapshots: is-plain-obj@4.1.0: {} - is-regex@1.1.4: - dependencies: - call-bind: 1.0.7 - has-tostringtag: 1.0.2 - is-regex@1.2.1: dependencies: call-bound: 1.0.4 @@ -16239,10 +15585,6 @@ snapshots: is-set@2.0.3: {} - is-shared-array-buffer@1.0.3: - dependencies: - call-bind: 1.0.7 - is-shared-array-buffer@1.0.4: dependencies: call-bound: 1.0.4 @@ -16253,10 +15595,6 @@ snapshots: is-stream@4.0.1: {} - is-string@1.0.7: - dependencies: - has-tostringtag: 1.0.2 - is-string@1.1.1: dependencies: call-bound: 1.0.4 @@ -16266,20 +15604,12 @@ snapshots: dependencies: better-path-resolve: 1.0.0 - is-symbol@1.0.4: - dependencies: - has-symbols: 1.0.3 - is-symbol@1.1.1: dependencies: call-bound: 1.0.4 has-symbols: 1.1.0 safe-regex-test: 1.1.0 - is-typed-array@1.1.13: - dependencies: - which-typed-array: 1.1.15 - is-typed-array@1.1.15: dependencies: which-typed-array: 1.1.19 @@ -16296,10 +15626,6 @@ snapshots: is-weakmap@2.0.2: {} - is-weakref@1.0.2: - dependencies: - call-bind: 1.0.7 - is-weakref@1.1.1: dependencies: call-bound: 1.0.4 @@ -16344,7 +15670,7 @@ snapshots: istanbul-lib-source-maps@5.0.6: dependencies: '@jridgewell/trace-mapping': 0.3.25 - debug: 4.4.1 + debug: 4.4.1(supports-color@9.4.0) istanbul-lib-coverage: 3.2.2 transitivePeerDependencies: - supports-color @@ -16373,7 +15699,7 @@ snapshots: jiti@1.21.0: {} - jiti@2.4.2: {} + jiti@2.5.1: {} jju@1.4.0: {} @@ -16381,7 +15707,7 @@ snapshots: jpeg-js@0.4.4: {} - js-base64@3.7.7: {} + js-base64@3.7.8: {} js-image-generator@1.0.4: dependencies: @@ -16467,10 +15793,10 @@ snapshots: jsx-ast-utils@3.3.5: dependencies: - array-includes: 3.1.8 - array.prototype.flat: 1.3.2 - object.assign: 4.1.5 - object.values: 1.2.0 + array-includes: 3.1.9 + array.prototype.flat: 1.3.3 + object.assign: 4.1.7 + object.values: 1.2.1 junk@4.0.1: {} @@ -16724,8 +16050,6 @@ snapshots: lowercase-keys@3.0.0: {} - lru-cache@10.2.2: {} - lru-cache@10.4.3: {} lru-cache@6.0.0: @@ -16928,11 +16252,11 @@ snapshots: '@types/mdast': 4.0.4 unist-util-is: 6.0.0 - mdast-util-to-hast@13.1.0: + mdast-util-to-hast@13.2.0: dependencies: '@types/hast': 3.0.4 '@types/mdast': 4.0.4 - '@ungap/structured-clone': 1.2.0 + '@ungap/structured-clone': 1.3.0 devlop: 1.1.0 micromark-util-sanitize-uri: 2.0.1 trim-lines: 3.0.1 @@ -16961,11 +16285,11 @@ snapshots: media-typer@0.3.0: {} - memfs@4.34.0: + memfs@4.36.0: dependencies: - '@jsonjoy.com/json-pack': 1.1.0(tslib@2.8.1) - '@jsonjoy.com/util': 1.5.0(tslib@2.8.1) - tree-dump: 1.0.2(tslib@2.8.1) + '@jsonjoy.com/json-pack': 1.10.1(tslib@2.8.1) + '@jsonjoy.com/util': 1.9.0(tslib@2.8.1) + tree-dump: 1.0.3(tslib@2.8.1) tslib: 2.8.1 memoize-one@6.0.0: {} @@ -17238,7 +16562,7 @@ snapshots: micromark@4.0.1: dependencies: '@types/debug': 4.1.12 - debug: 4.4.1 + debug: 4.4.1(supports-color@9.4.0) decode-named-character-reference: 1.0.2 devlop: 1.1.0 micromark-core-commonmark: 2.0.2 @@ -17295,7 +16619,7 @@ snapshots: stoppable: 1.1.0 undici: 5.28.4 workerd: 1.20240718.0 - ws: 8.18.0 + ws: 8.18.3 youch: 3.3.3 zod: 3.25.48 transitivePeerDependencies: @@ -17363,7 +16687,7 @@ snapshots: fast-equals: 3.0.3 micro-memoize: 4.1.2 - monaco-editor@0.45.0: {} + monaco-editor@0.52.2: {} move-file@3.1.0: dependencies: @@ -17406,12 +16730,12 @@ snapshots: nested-error-stacks@2.1.1: {} - netlify-cli@21.5.0(@types/express@5.0.3)(@types/node@24.2.1)(picomatch@4.0.3)(rollup@4.46.2): + netlify-cli@21.5.0(@types/express@5.0.3)(@types/node@24.3.0)(picomatch@4.0.3)(rollup@4.46.2): dependencies: '@fastify/static': 7.0.4 '@netlify/api': 13.4.0 '@netlify/blobs': 8.2.0 - '@netlify/build': 32.1.4(@opentelemetry/api@1.8.0)(@types/node@24.2.1)(picomatch@4.0.3)(rollup@4.46.2) + '@netlify/build': 32.1.4(@opentelemetry/api@1.8.0)(@types/node@24.3.0)(picomatch@4.0.3)(rollup@4.46.2) '@netlify/build-info': 9.0.4 '@netlify/config': 22.2.0 '@netlify/edge-bundler': 13.0.3 @@ -17437,7 +16761,7 @@ snapshots: content-type: 1.0.5 cookie: 1.0.2 cron-parser: 4.9.0 - debug: 4.4.0(supports-color@9.4.0) + debug: 4.4.0 decache: 4.6.2 dot-prop: 9.0.0 dotenv: 16.5.0 @@ -17534,7 +16858,7 @@ snapshots: node-abi@3.63.0: dependencies: - semver: 7.7.1 + semver: 7.7.2 node-addon-api@6.1.0: {} @@ -17623,19 +16947,10 @@ snapshots: object-assign@4.1.1: {} - object-inspect@1.13.1: {} - object-inspect@1.13.4: {} object-keys@1.1.1: {} - object.assign@4.1.5: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - has-symbols: 1.0.3 - object-keys: 1.1.1 - object.assign@4.1.7: dependencies: call-bind: 1.0.8 @@ -17658,12 +16973,6 @@ snapshots: define-properties: 1.2.1 es-abstract: 1.24.0 - object.values@1.2.0: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-object-atoms: 1.0.0 - object.values@1.2.1: dependencies: call-bind: 1.0.8 @@ -17882,11 +17191,11 @@ snapshots: pac-proxy-agent@7.0.1: dependencies: '@tootallnate/quickjs-emscripten': 0.23.0 - agent-base: 7.1.1 - debug: 4.4.1 + agent-base: 7.1.4 + debug: 4.4.1(supports-color@9.4.0) get-uri: 6.0.3 http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.5 + https-proxy-agent: 7.0.6 pac-resolver: 7.0.1 socks-proxy-agent: 8.0.3 transitivePeerDependencies: @@ -17949,7 +17258,7 @@ snapshots: parse-json@8.1.0: dependencies: - '@babel/code-frame': 7.24.6 + '@babel/code-frame': 7.27.1 index-to-position: 0.1.2 type-fest: 4.30.0 @@ -17973,7 +17282,7 @@ snapshots: path-scurry@1.11.1: dependencies: - lru-cache: 10.2.2 + lru-cache: 10.4.3 minipass: 7.1.2 path-to-regexp@0.1.10: {} @@ -18006,8 +17315,6 @@ snapshots: picomatch@2.3.1: {} - picomatch@4.0.2: {} - picomatch@4.0.3: {} pify@4.0.1: {} @@ -18059,8 +17366,6 @@ snapshots: optionalDependencies: fsevents: 2.3.2 - possible-typed-array-names@1.0.0: {} - possible-typed-array-names@1.1.0: {} postcss-value-parser@4.2.0: {} @@ -18153,7 +17458,7 @@ snapshots: ignore: 7.0.5 mri: 1.2.0 picocolors: 1.1.1 - picomatch: 4.0.2 + picomatch: 4.0.3 prettier: 3.6.2 tinyexec: 0.3.2 tslib: 2.8.1 @@ -18194,7 +17499,7 @@ snapshots: property-information@6.5.0: {} - property-information@7.0.0: {} + property-information@7.1.0: {} proto-list@1.2.4: {} @@ -18205,10 +17510,10 @@ snapshots: proxy-agent@6.4.0: dependencies: - agent-base: 7.1.1 - debug: 4.4.1 + agent-base: 7.1.4 + debug: 4.4.1(supports-color@9.4.0) http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.5 + https-proxy-agent: 7.0.6 lru-cache: 7.18.3 pac-proxy-agent: 7.0.1 proxy-from-env: 1.1.0 @@ -18240,18 +17545,18 @@ snapshots: dependencies: '@puppeteer/browsers': 2.2.4 chromium-bidi: 0.6.1(devtools-protocol@0.0.1299070) - debug: 4.4.1 + debug: 4.4.1(supports-color@9.4.0) devtools-protocol: 0.0.1299070 - ws: 8.18.0 + ws: 8.18.3 transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate - puppeteer@22.13.1(typescript@5.8.3): + puppeteer@22.13.1(typescript@5.9.2): dependencies: '@puppeteer/browsers': 2.2.4 - cosmiconfig: 9.0.0(typescript@5.8.3) + cosmiconfig: 9.0.0(typescript@5.9.2) devtools-protocol: 0.0.1299070 puppeteer-core: 22.13.1 transitivePeerDependencies: @@ -18264,11 +17569,11 @@ snapshots: qs@6.11.0: dependencies: - side-channel: 1.0.6 + side-channel: 1.1.0 qs@6.13.0: dependencies: - side-channel: 1.0.6 + side-channel: 1.1.0 quansync@0.2.10: {} @@ -18315,11 +17620,10 @@ snapshots: minimist: 1.2.8 strip-json-comments: 2.0.1 - react-dom@18.3.1(react@18.3.1): + react-dom@19.1.1(react@19.1.1): dependencies: - loose-envify: 1.4.0 - react: 18.3.1 - scheduler: 0.23.2 + react: 19.1.1 + scheduler: 0.26.0 react-is@16.13.1: {} @@ -18327,18 +17631,16 @@ snapshots: react-is@18.3.1: {} - react-transition-group@4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + react-transition-group@4.4.5(react-dom@19.1.1(react@19.1.1))(react@19.1.1): dependencies: '@babel/runtime': 7.24.6 dom-helpers: 5.2.1 loose-envify: 1.4.0 prop-types: 15.8.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react: 19.1.1 + react-dom: 19.1.1(react@19.1.1) - react@18.3.1: - dependencies: - loose-envify: 1.4.0 + react@19.1.1: {} read-package-up@11.0.0: dependencies: @@ -18467,7 +17769,7 @@ snapshots: refractor@4.8.1: dependencies: '@types/hast': 2.3.10 - '@types/prismjs': 1.26.4 + '@types/prismjs': 1.26.5 hastscript: 7.2.0 parse-entities: 4.0.1 @@ -18483,13 +17785,6 @@ snapshots: dependencies: regex-utilities: 2.3.0 - regexp.prototype.flags@1.5.2: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-errors: 1.3.0 - set-function-name: 2.0.2 - regexp.prototype.flags@1.5.4: dependencies: call-bind: 1.0.8 @@ -18510,7 +17805,7 @@ snapshots: rehype-autolink-headings@7.1.0: dependencies: '@types/hast': 3.0.4 - '@ungap/structured-clone': 1.2.0 + '@ungap/structured-clone': 1.3.0 hast-util-heading-rank: 3.0.0 hast-util-is-element: 3.0.0 unified: 11.0.5 @@ -18564,7 +17859,7 @@ snapshots: dependencies: '@types/hast': 3.0.4 '@types/mdast': 4.0.4 - mdast-util-to-hast: 13.1.0 + mdast-util-to-hast: 13.2.0 unified: 11.0.5 vfile: 6.0.3 @@ -18656,32 +17951,6 @@ snapshots: optionalDependencies: fsevents: 2.3.3 - rollup@4.44.0: - dependencies: - '@types/estree': 1.0.8 - optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.44.0 - '@rollup/rollup-android-arm64': 4.44.0 - '@rollup/rollup-darwin-arm64': 4.44.0 - '@rollup/rollup-darwin-x64': 4.44.0 - '@rollup/rollup-freebsd-arm64': 4.44.0 - '@rollup/rollup-freebsd-x64': 4.44.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.44.0 - '@rollup/rollup-linux-arm-musleabihf': 4.44.0 - '@rollup/rollup-linux-arm64-gnu': 4.44.0 - '@rollup/rollup-linux-arm64-musl': 4.44.0 - '@rollup/rollup-linux-loongarch64-gnu': 4.44.0 - '@rollup/rollup-linux-powerpc64le-gnu': 4.44.0 - '@rollup/rollup-linux-riscv64-gnu': 4.44.0 - '@rollup/rollup-linux-riscv64-musl': 4.44.0 - '@rollup/rollup-linux-s390x-gnu': 4.44.0 - '@rollup/rollup-linux-x64-gnu': 4.44.0 - '@rollup/rollup-linux-x64-musl': 4.44.0 - '@rollup/rollup-win32-arm64-msvc': 4.44.0 - '@rollup/rollup-win32-ia32-msvc': 4.44.0 - '@rollup/rollup-win32-x64-msvc': 4.44.0 - fsevents: 2.3.3 - rollup@4.46.2: dependencies: '@types/estree': 1.0.8 @@ -18728,13 +17997,6 @@ snapshots: dependencies: mri: 1.2.0 - safe-array-concat@1.1.2: - dependencies: - call-bind: 1.0.7 - get-intrinsic: 1.2.4 - has-symbols: 1.0.3 - isarray: 2.0.5 - safe-array-concat@1.1.3: dependencies: call-bind: 1.0.8 @@ -18754,12 +18016,6 @@ snapshots: es-errors: 1.3.0 isarray: 2.0.5 - safe-regex-test@1.0.3: - dependencies: - call-bind: 1.0.7 - es-errors: 1.3.0 - is-regex: 1.1.4 - safe-regex-test@1.1.0: dependencies: call-bound: 1.0.4 @@ -18774,9 +18030,7 @@ snapshots: safer-buffer@2.1.2: {} - scheduler@0.23.2: - dependencies: - loose-envify: 1.4.0 + scheduler@0.26.0: {} section-matter@1.0.0: dependencies: @@ -18892,7 +18146,7 @@ snapshots: detect-libc: 2.0.4 node-addon-api: 6.1.0 prebuild-install: 7.1.2 - semver: 7.7.1 + semver: 7.7.2 simple-get: 4.0.1 tar-fs: 3.0.6 tunnel-agent: 0.6.0 @@ -18931,14 +18185,14 @@ snapshots: shebang-regex@3.0.0: {} - shiki@3.9.1: + shiki@3.9.2: dependencies: - '@shikijs/core': 3.9.1 - '@shikijs/engine-javascript': 3.9.1 - '@shikijs/engine-oniguruma': 3.9.1 - '@shikijs/langs': 3.9.1 - '@shikijs/themes': 3.9.1 - '@shikijs/types': 3.9.1 + '@shikijs/core': 3.9.2 + '@shikijs/engine-javascript': 3.9.2 + '@shikijs/engine-oniguruma': 3.9.2 + '@shikijs/langs': 3.9.2 + '@shikijs/themes': 3.9.2 + '@shikijs/types': 3.9.2 '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 @@ -18962,13 +18216,6 @@ snapshots: object-inspect: 1.13.4 side-channel-map: 1.0.1 - side-channel@1.0.6: - dependencies: - call-bind: 1.0.8 - es-errors: 1.3.0 - get-intrinsic: 1.3.0 - object-inspect: 1.13.1 - side-channel@1.1.0: dependencies: es-errors: 1.3.0 @@ -19026,8 +18273,8 @@ snapshots: socks-proxy-agent@8.0.3: dependencies: - agent-base: 7.1.1 - debug: 4.4.1 + agent-base: 7.1.4 + debug: 4.4.1(supports-color@9.4.0) socks: 2.8.3 transitivePeerDependencies: - supports-color @@ -19060,7 +18307,7 @@ snapshots: source-map@0.6.1: {} - source-map@0.7.4: {} + source-map@0.7.6: {} sourcemap-codec@1.4.8: {} @@ -19167,13 +18414,6 @@ snapshots: es-object-atoms: 1.1.1 has-property-descriptors: 1.0.2 - string.prototype.trim@1.2.9: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 - es-object-atoms: 1.0.0 - string.prototype.trimend@1.0.9: dependencies: call-bind: 1.0.8 @@ -19254,10 +18494,6 @@ snapshots: stylis@4.2.0: {} - supports-color@5.5.0: - dependencies: - has-flag: 3.0.0 - supports-color@7.2.0: dependencies: has-flag: 4.0.0 @@ -19290,12 +18526,12 @@ snapshots: csso: 5.0.5 picocolors: 1.1.1 - syncpack@13.0.4(typescript@5.8.3): + syncpack@13.0.4(typescript@5.9.2): dependencies: chalk: 5.5.0 chalk-template: 1.1.0 commander: 13.1.0 - cosmiconfig: 9.0.0(typescript@5.8.3) + cosmiconfig: 9.0.0(typescript@5.9.2) effect: 3.17.7 enquirer: 2.4.1 fast-check: 3.23.2 @@ -19316,9 +18552,9 @@ snapshots: tabbable@6.2.0: {} - tailwindcss@4.1.11: {} + tailwindcss@4.1.12: {} - tapable@2.2.1: {} + tapable@2.2.2: {} tar-fs@2.1.1: dependencies: @@ -19398,7 +18634,7 @@ snapshots: text-hex@1.0.0: {} - thingies@1.21.0(tslib@2.8.1): + thingies@2.5.0(tslib@2.8.1): dependencies: tslib: 2.8.1 @@ -19425,8 +18661,8 @@ snapshots: tinyglobby@0.2.14: dependencies: - fdir: 6.4.6(picomatch@4.0.2) - picomatch: 4.0.2 + fdir: 6.4.6(picomatch@4.0.3) + picomatch: 4.0.3 tinypool@1.1.1: {} @@ -19436,13 +18672,13 @@ snapshots: tmp-promise@3.0.3: dependencies: - tmp: 0.2.3 + tmp: 0.2.5 tmp@0.0.33: dependencies: os-tmpdir: 1.0.2 - tmp@0.2.3: {} + tmp@0.2.5: {} to-regex-range@5.0.1: dependencies: @@ -19465,7 +18701,7 @@ snapshots: tr46@0.0.3: {} - tree-dump@1.0.2(tslib@2.8.1): + tree-dump@1.0.3(tslib@2.8.1): dependencies: tslib: 2.8.1 @@ -19483,38 +18719,38 @@ snapshots: trough@2.2.0: {} - ts-api-utils@2.1.0(typescript@5.8.3): + ts-api-utils@2.1.0(typescript@5.9.2): dependencies: - typescript: 5.8.3 + typescript: 5.9.2 ts-morph@23.0.0: dependencies: '@ts-morph/common': 0.24.0 code-block-writer: 13.0.3 - ts-node@10.9.2(@types/node@24.2.1)(typescript@5.8.3): + ts-node@10.9.2(@types/node@24.3.0)(typescript@5.9.2): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 24.2.1 + '@types/node': 24.3.0 acorn: 8.15.0 acorn-walk: 8.3.2 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 5.8.3 + typescript: 5.9.2 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 ts-toolbelt@9.6.0: {} - tsconfck@3.1.5(typescript@5.8.3): + tsconfck@3.1.5(typescript@5.9.2): optionalDependencies: - typescript: 5.8.3 + typescript: 5.9.2 tsconfig-paths@3.15.0: dependencies: @@ -19531,15 +18767,15 @@ snapshots: dependencies: esbuild: 0.15.18 - tsutils@3.21.0(typescript@5.8.3): + tsutils@3.21.0(typescript@5.9.2): dependencies: tslib: 1.14.1 - typescript: 5.8.3 + typescript: 5.9.2 - tsx@4.20.3: + tsx@4.20.4: dependencies: - esbuild: 0.25.8 - get-tsconfig: 4.10.0 + esbuild: 0.25.9 + get-tsconfig: 4.10.1 optionalDependencies: fsevents: 2.3.3 @@ -19564,26 +18800,12 @@ snapshots: media-typer: 0.3.0 mime-types: 2.1.35 - typed-array-buffer@1.0.2: - dependencies: - call-bind: 1.0.7 - es-errors: 1.3.0 - is-typed-array: 1.1.13 - typed-array-buffer@1.0.3: dependencies: call-bound: 1.0.4 es-errors: 1.3.0 is-typed-array: 1.1.15 - typed-array-byte-length@1.0.1: - dependencies: - call-bind: 1.0.7 - for-each: 0.3.3 - gopd: 1.0.1 - has-proto: 1.0.3 - is-typed-array: 1.1.13 - typed-array-byte-length@1.0.3: dependencies: call-bind: 1.0.8 @@ -19592,15 +18814,6 @@ snapshots: has-proto: 1.2.0 is-typed-array: 1.1.15 - typed-array-byte-offset@1.0.2: - dependencies: - available-typed-arrays: 1.0.7 - call-bind: 1.0.7 - for-each: 0.3.3 - gopd: 1.0.1 - has-proto: 1.0.3 - is-typed-array: 1.1.13 - typed-array-byte-offset@1.0.4: dependencies: available-typed-arrays: 1.0.7 @@ -19611,15 +18824,6 @@ snapshots: is-typed-array: 1.1.15 reflect.getprototypeof: 1.0.10 - typed-array-length@1.0.6: - dependencies: - call-bind: 1.0.7 - for-each: 0.3.3 - gopd: 1.0.1 - has-proto: 1.0.3 - is-typed-array: 1.1.13 - possible-typed-array-names: 1.0.0 - typed-array-length@1.0.7: dependencies: call-bind: 1.0.8 @@ -19629,18 +18833,18 @@ snapshots: possible-typed-array-names: 1.1.0 reflect.getprototypeof: 1.0.10 - typescript-eslint@8.39.1(eslint@9.33.0(jiti@2.4.2))(typescript@5.8.3): + typescript-eslint@8.39.1(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2): dependencies: - '@typescript-eslint/eslint-plugin': 8.39.1(@typescript-eslint/parser@8.39.1(eslint@9.33.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.33.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/parser': 8.39.1(eslint@9.33.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/typescript-estree': 8.39.1(typescript@5.8.3) - '@typescript-eslint/utils': 8.39.1(eslint@9.33.0(jiti@2.4.2))(typescript@5.8.3) - eslint: 9.33.0(jiti@2.4.2) - typescript: 5.8.3 + '@typescript-eslint/eslint-plugin': 8.39.1(@typescript-eslint/parser@8.39.1(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/parser': 8.39.1(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/typescript-estree': 8.39.1(typescript@5.9.2) + '@typescript-eslint/utils': 8.39.1(eslint@9.33.0(jiti@2.5.1))(typescript@5.9.2) + eslint: 9.33.0(jiti@2.5.1) + typescript: 5.9.2 transitivePeerDependencies: - supports-color - typescript@5.8.3: {} + typescript@5.9.2: {} ufo@1.6.1: {} @@ -19650,13 +18854,6 @@ snapshots: ulid@3.0.0: {} - unbox-primitive@1.0.2: - dependencies: - call-bind: 1.0.7 - has-bigints: 1.0.2 - has-symbols: 1.0.3 - which-boxed-primitive: 1.0.2 - unbox-primitive@1.1.0: dependencies: call-bound: 1.0.4 @@ -19776,7 +18973,7 @@ snapshots: destr: 2.0.3 h3: 1.11.1 listhen: 1.7.2 - lru-cache: 10.2.2 + lru-cache: 10.4.3 mri: 1.2.0 node-fetch-native: 1.6.7 ofetch: 1.3.4 @@ -19844,9 +19041,9 @@ snapshots: valibot@0.33.3: {} - valibot@0.42.1(typescript@5.8.3): + valibot@0.42.1(typescript@5.9.2): optionalDependencies: - typescript: 5.8.3 + typescript: 5.9.2 validate-npm-package-license@3.0.4: dependencies: @@ -19871,23 +19068,15 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.2 - vite-dev-rpc@1.1.0(vite@7.1.0(@types/node@24.2.1)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1)): + vite-dev-rpc@1.1.0(vite@7.1.2(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.4)(yaml@2.8.1)): dependencies: birpc: 2.5.0 - vite: 7.1.0(@types/node@24.2.1)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1) - vite-hot-client: 2.1.0(vite@7.1.0(@types/node@24.2.1)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1)) - - vite-hot-client@2.1.0(vite@7.1.0(@types/node@24.2.1)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1)): - dependencies: - vite: 7.1.0(@types/node@24.2.1)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1) + vite: 7.1.2(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.4)(yaml@2.8.1) + vite-hot-client: 2.1.0(vite@7.1.2(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.4)(yaml@2.8.1)) - vite-imagetools@7.1.0(rollup@4.44.0): + vite-hot-client@2.1.0(vite@7.1.2(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.4)(yaml@2.8.1)): dependencies: - '@rollup/pluginutils': 5.2.0(rollup@4.44.0) - imagetools-core: 7.1.0 - sharp: 0.34.2 - transitivePeerDependencies: - - rollup + vite: 7.1.2(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.4)(yaml@2.8.1) vite-imagetools@7.1.0(rollup@4.46.2): dependencies: @@ -19897,14 +19086,14 @@ snapshots: transitivePeerDependencies: - rollup - vite-node@0.32.4(@types/node@24.2.1)(lightningcss@1.30.1)(terser@5.43.1): + vite-node@0.32.4(@types/node@24.3.0)(lightningcss@1.30.1)(terser@5.43.1): dependencies: cac: 6.7.14 - debug: 4.4.1 + debug: 4.4.1(supports-color@9.4.0) mlly: 1.7.4 pathe: 1.1.2 picocolors: 1.1.1 - vite: 4.5.14(@types/node@24.2.1)(lightningcss@1.30.1)(terser@5.43.1) + vite: 4.5.14(@types/node@24.3.0)(lightningcss@1.30.1)(terser@5.43.1) transitivePeerDependencies: - '@types/node' - less @@ -19915,13 +19104,13 @@ snapshots: - supports-color - terser - vite-node@3.2.4(@types/node@24.2.1)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1): + vite-node@3.2.4(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.4)(yaml@2.8.1): dependencies: cac: 6.7.14 - debug: 4.4.1 + debug: 4.4.1(supports-color@9.4.0) es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 7.1.0(@types/node@24.2.1)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1) + vite: 7.1.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.4)(yaml@2.8.1) transitivePeerDependencies: - '@types/node' - jiti @@ -19936,124 +19125,124 @@ snapshots: - tsx - yaml - vite-plugin-dts@4.5.4(@types/node@24.2.1)(rollup@4.44.0)(typescript@5.8.3)(vite@7.1.0(@types/node@24.2.1)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1)): + vite-plugin-dts@4.5.4(@types/node@24.3.0)(rollup@4.46.2)(typescript@5.9.2)(vite@7.1.2(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.4)(yaml@2.8.1)): dependencies: - '@microsoft/api-extractor': 7.52.10(@types/node@24.2.1) - '@rollup/pluginutils': 5.2.0(rollup@4.44.0) + '@microsoft/api-extractor': 7.52.10(@types/node@24.3.0) + '@rollup/pluginutils': 5.2.0(rollup@4.46.2) '@volar/typescript': 2.4.15 - '@vue/language-core': 2.2.0(typescript@5.8.3) + '@vue/language-core': 2.2.0(typescript@5.9.2) compare-versions: 6.1.1 - debug: 4.4.1 + debug: 4.4.1(supports-color@9.4.0) kolorist: 1.8.0 local-pkg: 1.1.1 magic-string: 0.30.17 - typescript: 5.8.3 + typescript: 5.9.2 optionalDependencies: - vite: 7.1.0(@types/node@24.2.1)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1) + vite: 7.1.2(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.4)(yaml@2.8.1) transitivePeerDependencies: - '@types/node' - rollup - supports-color - vite-plugin-inspect@11.3.2(vite@7.1.0(@types/node@24.2.1)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1)): + vite-plugin-inspect@11.3.2(vite@7.1.2(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.4)(yaml@2.8.1)): dependencies: ansis: 4.1.0 - debug: 4.4.1 + debug: 4.4.1(supports-color@9.4.0) error-stack-parser-es: 1.0.5 ohash: 2.0.11 open: 10.2.0 perfect-debounce: 1.0.0 sirv: 3.0.1 unplugin-utils: 0.2.5 - vite: 7.1.0(@types/node@24.2.1)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1) - vite-dev-rpc: 1.1.0(vite@7.1.0(@types/node@24.2.1)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1)) + vite: 7.1.2(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.4)(yaml@2.8.1) + vite-dev-rpc: 1.1.0(vite@7.1.2(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.4)(yaml@2.8.1)) transitivePeerDependencies: - supports-color - vite-tsconfig-paths@5.1.4(typescript@5.8.3)(vite@7.1.0(@types/node@24.2.1)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1)): + vite-tsconfig-paths@5.1.4(typescript@5.9.2)(vite@7.1.2(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.4)(yaml@2.8.1)): dependencies: - debug: 4.4.1 + debug: 4.4.1(supports-color@9.4.0) globrex: 0.1.2 - tsconfck: 3.1.5(typescript@5.8.3) + tsconfck: 3.1.5(typescript@5.9.2) optionalDependencies: - vite: 7.1.0(@types/node@24.2.1)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1) + vite: 7.1.2(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.4)(yaml@2.8.1) transitivePeerDependencies: - supports-color - typescript - vite@4.5.14(@types/node@24.2.1)(lightningcss@1.30.1)(terser@5.43.1): + vite@4.5.14(@types/node@24.3.0)(lightningcss@1.30.1)(terser@5.43.1): dependencies: esbuild: 0.18.20 postcss: 8.5.6 rollup: 3.29.5 optionalDependencies: - '@types/node': 24.2.1 + '@types/node': 24.3.0 fsevents: 2.3.3 lightningcss: 1.30.1 terser: 5.43.1 - vite@7.0.0(@types/node@24.2.1)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1): + vite@7.1.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.4)(yaml@2.8.1): dependencies: - esbuild: 0.25.8 - fdir: 6.4.6(picomatch@4.0.2) - picomatch: 4.0.2 + esbuild: 0.25.9 + fdir: 6.4.6(picomatch@4.0.3) + picomatch: 4.0.3 postcss: 8.5.6 - rollup: 4.44.0 + rollup: 4.46.2 tinyglobby: 0.2.14 optionalDependencies: - '@types/node': 24.2.1 + '@types/node': 24.3.0 fsevents: 2.3.3 - jiti: 2.4.2 + jiti: 2.5.1 lightningcss: 1.30.1 terser: 5.43.1 - tsx: 4.20.3 - yaml: 2.6.1 + tsx: 4.20.4 + yaml: 2.8.1 - vite@7.1.0(@types/node@24.2.1)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1): + vite@7.1.2(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.4)(yaml@2.8.1): dependencies: - esbuild: 0.25.8 - fdir: 6.4.6(picomatch@4.0.3) + esbuild: 0.25.9 + fdir: 6.5.0(picomatch@4.0.3) picomatch: 4.0.3 postcss: 8.5.6 - rollup: 4.44.0 + rollup: 4.46.2 tinyglobby: 0.2.14 optionalDependencies: - '@types/node': 24.2.1 + '@types/node': 24.3.0 fsevents: 2.3.3 - jiti: 2.4.2 + jiti: 2.5.1 lightningcss: 1.30.1 terser: 5.43.1 - tsx: 4.20.3 - yaml: 2.6.1 + tsx: 4.20.4 + yaml: 2.8.1 - vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.2.1)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1): + vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.4)(yaml@2.8.1): dependencies: '@types/chai': 5.2.2 '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(vite@7.0.0(@types/node@24.2.1)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1)) + '@vitest/mocker': 3.2.4(vite@7.1.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.4)(yaml@2.8.1)) '@vitest/pretty-format': 3.2.4 '@vitest/runner': 3.2.4 '@vitest/snapshot': 3.2.4 '@vitest/spy': 3.2.4 '@vitest/utils': 3.2.4 chai: 5.2.0 - debug: 4.4.1 + debug: 4.4.1(supports-color@9.4.0) expect-type: 1.2.1 magic-string: 0.30.17 pathe: 2.0.3 - picomatch: 4.0.2 + picomatch: 4.0.3 std-env: 3.9.0 tinybench: 2.9.0 tinyexec: 0.3.2 tinyglobby: 0.2.14 tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: 7.0.0(@types/node@24.2.1)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1) - vite-node: 3.2.4(@types/node@24.2.1)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.6.1) + vite: 7.1.0(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.4)(yaml@2.8.1) + vite-node: 3.2.4(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.4)(yaml@2.8.1) why-is-node-running: 2.3.0 optionalDependencies: '@types/debug': 4.1.12 - '@types/node': 24.2.1 + '@types/node': 24.3.0 transitivePeerDependencies: - jiti - less @@ -20074,7 +19263,7 @@ snapshots: dependencies: chalk: 4.1.2 commander: 9.5.0 - debug: 4.4.1 + debug: 4.4.1(supports-color@9.4.0) transitivePeerDependencies: - supports-color @@ -20097,14 +19286,6 @@ snapshots: when-exit@2.1.3: {} - which-boxed-primitive@1.0.2: - dependencies: - is-bigint: 1.0.4 - is-boolean-object: 1.1.2 - is-number-object: 1.0.7 - is-string: 1.0.7 - is-symbol: 1.1.1 - which-boxed-primitive@1.1.1: dependencies: is-bigint: 1.1.0 @@ -20140,14 +19321,6 @@ snapshots: which-pm-runs@1.1.0: {} - which-typed-array@1.1.15: - dependencies: - available-typed-arrays: 1.0.7 - call-bind: 1.0.7 - for-each: 0.3.3 - gopd: 1.0.1 - has-tostringtag: 1.0.2 - which-typed-array@1.1.19: dependencies: available-typed-arrays: 1.0.7 @@ -20265,8 +19438,6 @@ snapshots: imurmurhash: 0.1.4 signal-exit: 4.1.0 - ws@8.18.0: {} - ws@8.18.2: {} ws@8.18.3: {} @@ -20296,7 +19467,7 @@ snapshots: yaml@1.10.2: {} - yaml@2.6.1: {} + yaml@2.8.1: {} yargs-parser@18.1.3: dependencies: @@ -20324,7 +19495,7 @@ snapshots: yargs@16.2.0: dependencies: cliui: 7.0.4 - escalade: 3.1.2 + escalade: 3.2.0 get-caller-file: 2.0.5 require-directory: 2.1.1 string-width: 4.2.3 @@ -20334,7 +19505,7 @@ snapshots: yargs@17.7.2: dependencies: cliui: 8.0.1 - escalade: 3.1.2 + escalade: 3.2.0 get-caller-file: 2.0.5 require-directory: 2.1.1 string-width: 4.2.3 diff --git a/scripts/qwik-router.ts b/scripts/qwik-router.ts index 9512e006073..4aa0e9fa6ba 100644 --- a/scripts/qwik-router.ts +++ b/scripts/qwik-router.ts @@ -1,9 +1,13 @@ -import { build, type Plugin, transform } from 'esbuild'; import { execa } from 'execa'; import { readFile } from 'node:fs/promises'; import { join } from 'node:path'; -import { rollup } from 'rollup'; -import { type BuildConfig, emptyDir, importPath, nodeTarget, panic } from './util'; +import { build as viteBuild } from 'vite'; +import pkg from '../packages/qwik-router/package.json' with { type: 'json' }; +import { emptyDir, importPath, panic, type BuildConfig } from './util'; + +const externalsRegex = new RegExp( + `^(node:.*|@qwik-router-config|@qwik.dev|${[...Object.keys(pkg.dependencies), ...Object.keys(pkg.peerDependencies)].join('|')})($|[/\\\\])` +); export async function buildQwikRouter(config: BuildConfig) { if (!config.dev) { @@ -13,29 +17,9 @@ export async function buildQwikRouter(config: BuildConfig) { await Promise.all([ buildServiceWorker(config), buildVite(config), - buildAdapterAzureSwaVite(config), - buildAdapterCloudflarePagesVite(config), - buildAdapterCloudRunVite(config), - buildAdapterDenoVite(config), - buildAdapterBunVite(config), - buildAdapterNodeServerVite(config), - buildAdapterNetlifyEdgeVite(config), - buildAdapterSharedVite(config), - buildAdapterSsgVite(config), - buildAdapterVercelEdgeVite(config), - buildMiddlewareCloudflarePages(config), - buildMiddlewareNetlifyEdge(config), - buildMiddlewareAzureSwa(config), - buildMiddlewareAwsLambda(config), - buildMiddlewareDeno(config), - buildMiddlewareBun(config), - buildMiddlewareNode(config), - buildMiddlewareRequestHandler(config), - buildMiddlewareVercelEdge(config), - buildMiddlewareFirebase(config), + buildAdapters(config), + buildMiddleware(config), buildSsg(config), - buildSsgNode(config), - buildSsgDeno(config), ]); await buildRuntime(config); @@ -69,635 +53,281 @@ async function buildRuntime(config: BuildConfig) { async function buildVite(config: BuildConfig) { const entryPoints = [join(config.srcQwikRouterDir, 'buildtime', 'vite', 'index.ts')]; - const external = [ - 'fs', - 'path', - 'url', - 'vite', - 'source-map', - 'vfile', - '@mdx-js/mdx', - 'node-fetch', - 'undici', - 'typescript', - 'vite-imagetools', - 'svgo', - '@qwik.dev/core', - '@qwik.dev/router/middleware/request-handler', - ]; - const swRegisterPath = join(config.srcQwikRouterDir, 'runtime', 'src', 'sw-register.ts'); let swRegisterCode = await readFile(swRegisterPath, 'utf-8'); - const swResult = await transform(swRegisterCode, { loader: 'ts', minify: true }); - swRegisterCode = swResult.code.trim(); + // Minify the service worker register code + const { minify } = await import('terser'); + const swResult = await minify(swRegisterCode, { + compress: true, + mangle: true, + }); + swRegisterCode = swResult.code?.trim() || swRegisterCode.trim(); if (swRegisterCode.endsWith(';')) { swRegisterCode = swRegisterCode.slice(0, swRegisterCode.length - 1); } - await build({ - entryPoints, - outfile: join(config.distQwikRouterPkgDir, 'vite', 'index.mjs'), - bundle: true, - platform: 'node', - target: nodeTarget, - format: 'esm', - external, + await buildWithVite({ + entry: entryPoints[0], + outDir: join(config.distQwikRouterPkgDir, 'vite'), + fileName: 'index', alias: { - '@qwik.dev/core/optimizer': 'noop', + '@qwik.dev/core': 'do-not-import-qwik-core', + '@qwik.dev/core/optimizer': 'do-not-import-qwik-core', }, plugins: [serviceWorkerRegisterBuild(swRegisterCode)], }); - - await build({ - entryPoints, - outfile: join(config.distQwikRouterPkgDir, 'vite', 'index.cjs'), - bundle: true, - platform: 'node', - target: nodeTarget, - format: 'cjs', - external, - plugins: [serviceWorkerRegisterBuild(swRegisterCode)], - }); } function serviceWorkerRegisterBuild(swRegisterCode: string) { - const filter = /\@qwik-router-sw-register-build/; - - const plugin: Plugin = { + return { name: 'serviceWorkerRegisterBuild', - setup(build) { - build.onResolve({ filter }, (args) => ({ - path: args.path, - namespace: 'sw-reg', - })); - build.onLoad({ filter: /.*/, namespace: 'sw-reg' }, () => ({ - contents: swRegisterCode, - loader: 'text', - })); + resolveId(id: string) { + if (id === '@qwik-router-sw-register-build') { + return id; + } + return null; + }, + load(id: string) { + if (id === '@qwik-router-sw-register-build') { + return `export default ${JSON.stringify(swRegisterCode)};`; + } + return null; }, }; - return plugin; } async function buildServiceWorker(config: BuildConfig) { - const build = await rollup({ - input: join( - config.tscDir, - 'packages', - 'qwik-router', - 'src', - 'runtime', - 'src', - 'service-worker', - 'index.js' - ), - }); - - await build.write({ - file: join(config.distQwikRouterPkgDir, 'service-worker.mjs'), - format: 'es', - }); - - await build.write({ - file: join(config.distQwikRouterPkgDir, 'service-worker.cjs'), - format: 'cjs', - }); -} - -async function buildAdapterAzureSwaVite(config: BuildConfig) { - const entryPoints = [join(config.srcQwikRouterDir, 'adapters', 'azure-swa', 'vite', 'index.ts')]; - - const external = ['vite', 'fs', 'path', '@qwik.dev/router/ssg']; - - await build({ - entryPoints, - outfile: join(config.distQwikRouterPkgDir, 'adapters', 'azure-swa', 'vite', 'index.mjs'), - bundle: true, - platform: 'node', - target: nodeTarget, - format: 'esm', - external, - plugins: [resolveAdapterShared('../../shared/vite/index.mjs')], - }); - - await build({ - entryPoints, - outfile: join(config.distQwikRouterPkgDir, 'adapters', 'azure-swa', 'vite', 'index.cjs'), - bundle: true, - platform: 'node', - target: nodeTarget, - format: 'cjs', - external, - plugins: [resolveAdapterShared('../../shared/vite/index.cjs')], + await buildWithVite({ + entry: join(config.srcQwikRouterDir, 'runtime', 'src', 'service-worker', 'index.ts'), + outDir: config.distQwikRouterPkgDir, + fileName: 'service-worker', }); } -async function buildAdapterCloudflarePagesVite(config: BuildConfig) { - const entryPoints = [ - join(config.srcQwikRouterDir, 'adapters', 'cloudflare-pages', 'vite', 'index.ts'), - ]; - - await build({ - entryPoints, - outfile: join(config.distQwikRouterPkgDir, 'adapters', 'cloudflare-pages', 'vite', 'index.mjs'), - bundle: true, - platform: 'node', - target: nodeTarget, - format: 'esm', - external: ADAPTER_EXTERNALS, - plugins: [resolveAdapterShared('../../shared/vite/index.mjs')], - }); - - await build({ - entryPoints, - outfile: join(config.distQwikRouterPkgDir, 'adapters', 'cloudflare-pages', 'vite', 'index.cjs'), - bundle: true, - platform: 'node', - target: nodeTarget, - format: 'cjs', - external: ADAPTER_EXTERNALS, - plugins: [resolveAdapterShared('../../shared/vite/index.cjs')], - }); -} - -async function buildAdapterCloudRunVite(config: BuildConfig) { - const entryPoints = [join(config.srcQwikRouterDir, 'adapters', 'cloud-run', 'vite', 'index.ts')]; - - await build({ - entryPoints, - outfile: join(config.distQwikRouterPkgDir, 'adapters', 'cloud-run', 'vite', 'index.mjs'), - bundle: true, - platform: 'node', - target: nodeTarget, - format: 'esm', - external: ADAPTER_EXTERNALS, - plugins: [resolveAdapterShared('../../shared/vite/index.mjs')], - }); - - await build({ - entryPoints, - outfile: join(config.distQwikRouterPkgDir, 'adapters', 'cloud-run', 'vite', 'index.cjs'), - bundle: true, - platform: 'node', - target: nodeTarget, - format: 'cjs', - external: ADAPTER_EXTERNALS, - plugins: [resolveAdapterShared('../../shared/vite/index.cjs')], - }); -} - -async function buildAdapterBunVite(config: BuildConfig) { - const entryPoints = [join(config.srcQwikRouterDir, 'adapters', 'bun-server', 'vite', 'index.ts')]; - - await build({ - entryPoints, - outfile: join(config.distQwikRouterPkgDir, 'adapters', 'bun-server', 'vite', 'index.mjs'), - bundle: true, - platform: 'node', - target: nodeTarget, - format: 'esm', - external: ADAPTER_EXTERNALS, - plugins: [resolveAdapterShared('../../shared/vite/index.mjs')], - }); - - await build({ - entryPoints, - outfile: join(config.distQwikRouterPkgDir, 'adapters', 'bun-server', 'vite', 'index.cjs'), - bundle: true, - platform: 'node', - target: nodeTarget, - format: 'cjs', - external: ADAPTER_EXTERNALS, - plugins: [ - resolveAdapterShared('../../shared/vite/index.cjs'), - resolveRequestHandler('../../../middleware/request-handler/index.cjs'), - ], - }); -} - -async function buildAdapterDenoVite(config: BuildConfig) { - const entryPoints = [ - join(config.srcQwikRouterDir, 'adapters', 'deno-server', 'vite', 'index.ts'), - ]; - - await build({ - entryPoints, - outfile: join(config.distQwikRouterPkgDir, 'adapters', 'deno-server', 'vite', 'index.mjs'), - bundle: true, - platform: 'node', - target: nodeTarget, - format: 'esm', - external: ADAPTER_EXTERNALS, - plugins: [resolveAdapterShared('../../shared/vite/index.mjs')], - }); - - await build({ - entryPoints, - outfile: join(config.distQwikRouterPkgDir, 'adapters', 'deno-server', 'vite', 'index.cjs'), - bundle: true, - platform: 'node', - target: nodeTarget, - format: 'cjs', - external: ADAPTER_EXTERNALS, - plugins: [ - resolveAdapterShared('../../shared/vite/index.cjs'), - resolveRequestHandler('../../../middleware/request-handler/index.cjs'), - ], - }); -} - -async function buildAdapterNodeServerVite(config: BuildConfig) { - const entryPoints = [ - join(config.srcQwikRouterDir, 'adapters', 'node-server', 'vite', 'index.ts'), - ]; - - await build({ - entryPoints, - outfile: join(config.distQwikRouterPkgDir, 'adapters', 'node-server', 'vite', 'index.mjs'), - bundle: true, - platform: 'node', - target: nodeTarget, - format: 'esm', - external: ADAPTER_EXTERNALS, - plugins: [resolveAdapterShared('../../shared/vite/index.mjs')], - }); - - await build({ - entryPoints, - outfile: join(config.distQwikRouterPkgDir, 'adapters', 'node-server', 'vite', 'index.cjs'), - bundle: true, - platform: 'node', - target: nodeTarget, - format: 'cjs', - external: ADAPTER_EXTERNALS, - plugins: [resolveAdapterShared('../../shared/vite/index.cjs')], - }); -} - -async function buildAdapterNetlifyEdgeVite(config: BuildConfig) { - const entryPoints = [ - join(config.srcQwikRouterDir, 'adapters', 'netlify-edge', 'vite', 'index.ts'), +async function buildAdapters(config: BuildConfig) { + const adapters = [ + { + name: 'azure-swa', + entry: join(config.srcQwikRouterDir, 'adapters', 'azure-swa', 'vite', 'index.ts'), + plugins: [resolveAdapterShared('../../shared/vite/index')], + }, + { + name: 'cloudflare-pages', + entry: join(config.srcQwikRouterDir, 'adapters', 'cloudflare-pages', 'vite', 'index.ts'), + plugins: [resolveAdapterShared('../../shared/vite/index')], + }, + { + name: 'cloud-run', + entry: join(config.srcQwikRouterDir, 'adapters', 'cloud-run', 'vite', 'index.ts'), + plugins: [resolveAdapterShared('../../shared/vite/index')], + }, + { + name: 'bun-server', + entry: join(config.srcQwikRouterDir, 'adapters', 'bun-server', 'vite', 'index.ts'), + plugins: [ + resolveAdapterShared('../../shared/vite/index'), + resolveRequestHandler('../../../middleware/request-handler/index'), + ], + }, + { + name: 'deno-server', + entry: join(config.srcQwikRouterDir, 'adapters', 'deno-server', 'vite', 'index.ts'), + plugins: [ + resolveAdapterShared('../../shared/vite/index'), + resolveRequestHandler('../../../middleware/request-handler/index'), + ], + }, + { + name: 'node-server', + entry: join(config.srcQwikRouterDir, 'adapters', 'node-server', 'vite', 'index.ts'), + plugins: [resolveAdapterShared('../../shared/vite/index')], + }, + { + name: 'netlify-edge', + entry: join(config.srcQwikRouterDir, 'adapters', 'netlify-edge', 'vite', 'index.ts'), + plugins: [ + resolveAdapterShared('../../shared/vite/index'), + resolveRequestHandler('../../../middleware/request-handler/index'), + ], + }, + { + name: 'vercel-edge', + entry: join(config.srcQwikRouterDir, 'adapters', 'vercel-edge', 'vite', 'index.ts'), + plugins: [resolveAdapterShared('../../shared/vite/index')], + }, ]; - await build({ - entryPoints, - outfile: join(config.distQwikRouterPkgDir, 'adapters', 'netlify-edge', 'vite', 'index.mjs'), - bundle: true, - platform: 'node', - target: nodeTarget, - format: 'esm', - external: ADAPTER_EXTERNALS, - plugins: [resolveAdapterShared('../../shared/vite/index.mjs')], - }); - - await build({ - entryPoints, - outfile: join(config.distQwikRouterPkgDir, 'adapters', 'netlify-edge', 'vite', 'index.cjs'), - bundle: true, - platform: 'node', - target: nodeTarget, - format: 'cjs', - external: ADAPTER_EXTERNALS, + // Build shared adapter + await buildWithVite({ + entry: join(config.srcQwikRouterDir, 'adapters', 'shared', 'vite', 'index.ts'), + outDir: join(config.distQwikRouterPkgDir, 'adapters', 'shared', 'vite'), + fileName: 'index', plugins: [ - resolveAdapterShared('../../shared/vite/index.cjs'), - resolveRequestHandler('../../../middleware/request-handler/index.cjs'), + resolveSsg('../../../ssg/index'), + resolveRequestHandler('../../../middleware/request-handler/index'), ], }); -} -async function buildAdapterSharedVite(config: BuildConfig) { - const entryPoints = [join(config.srcQwikRouterDir, 'adapters', 'shared', 'vite', 'index.ts')]; - - await build({ - entryPoints, - outfile: join(config.distQwikRouterPkgDir, 'adapters', 'shared', 'vite', 'index.mjs'), - bundle: true, - platform: 'node', - target: nodeTarget, - format: 'esm', - external: ADAPTER_EXTERNALS, - plugins: [ - resolveSsg('../../../ssg/index.mjs'), - resolveRequestHandler('../../../middleware/request-handler/index.mjs'), - ], - }); - - await build({ - entryPoints, - outfile: join(config.distQwikRouterPkgDir, 'adapters', 'shared', 'vite', 'index.cjs'), - bundle: true, - platform: 'node', - target: nodeTarget, - format: 'cjs', - external: ADAPTER_EXTERNALS, - plugins: [ - resolveSsg('../../../ssg/index.cjs'), - resolveRequestHandler('../../../middleware/request-handler/index.cjs'), - ], - }); + // Build SSG adapter + await buildWithVite({ + entry: join(config.srcQwikRouterDir, 'adapters', 'ssg', 'vite', 'index.ts'), + outDir: join(config.distQwikRouterPkgDir, 'adapters', 'ssg', 'vite'), + fileName: 'index', + plugins: [resolveSsg('../../../ssg/index')], + }); + + // Build all other adapters + await Promise.all( + adapters.map((adapter) => + buildWithVite({ + entry: adapter.entry, + outDir: join(config.distQwikRouterPkgDir, 'adapters', adapter.name, 'vite'), + fileName: 'index', + plugins: adapter.plugins, + }) + ) + ); } -async function buildAdapterSsgVite(config: BuildConfig) { - const entryPoints = [join(config.srcQwikRouterDir, 'adapters', 'ssg', 'vite', 'index.ts')]; - - await build({ - entryPoints, - outfile: join(config.distQwikRouterPkgDir, 'adapters', 'ssg', 'vite', 'index.mjs'), - bundle: true, - platform: 'node', - target: nodeTarget, - format: 'esm', - external: ADAPTER_EXTERNALS, - plugins: [resolveSsg('../../../ssg/index.mjs')], - }); - - await build({ - entryPoints, - outfile: join(config.distQwikRouterPkgDir, 'adapters', 'ssg', 'vite', 'index.cjs'), - bundle: true, - platform: 'node', - target: nodeTarget, - format: 'cjs', - external: ADAPTER_EXTERNALS, - plugins: [resolveSsg('../../../ssg/index.cjs')], - }); -} - -async function buildAdapterVercelEdgeVite(config: BuildConfig) { - const entryPoints = [ - join(config.srcQwikRouterDir, 'adapters', 'vercel-edge', 'vite', 'index.ts'), +async function buildMiddleware(config: BuildConfig) { + const middleware = [ + { + name: 'azure-swa', + entry: join(config.srcQwikRouterDir, 'middleware', 'azure-swa', 'index.ts'), + plugins: [resolveRequestHandler('../request-handler/index')], + }, + { + name: 'aws-lambda', + entry: join(config.srcQwikRouterDir, 'middleware', 'aws-lambda', 'index.ts'), + plugins: [resolveRequestHandler('../request-handler/index')], + }, + { + name: 'cloudflare-pages', + entry: join(config.srcQwikRouterDir, 'middleware', 'cloudflare-pages', 'index.ts'), + plugins: [resolveRequestHandler('../request-handler/index')], + }, + { + name: 'bun', + entry: join(config.srcQwikRouterDir, 'middleware', 'bun', 'index.ts'), + plugins: [resolveRequestHandler('../request-handler/index')], + }, + { + name: 'deno', + entry: join(config.srcQwikRouterDir, 'middleware', 'deno', 'index.ts'), + plugins: [resolveRequestHandler('../request-handler/index')], + }, + { + name: 'netlify-edge', + entry: join(config.srcQwikRouterDir, 'middleware', 'netlify-edge', 'index.ts'), + plugins: [resolveRequestHandler('../request-handler/index')], + }, + { + name: 'vercel-edge', + entry: join(config.srcQwikRouterDir, 'middleware', 'vercel-edge', 'index.ts'), + plugins: [resolveRequestHandler('../request-handler/index')], + }, + { + name: 'firebase', + entry: join(config.srcQwikRouterDir, 'middleware', 'firebase', 'index.ts'), + plugins: [resolveRequestHandler('../request-handler/index')], + }, ]; - await build({ - entryPoints, - outfile: join(config.distQwikRouterPkgDir, 'adapters', 'vercel-edge', 'vite', 'index.mjs'), - bundle: true, - platform: 'node', - target: nodeTarget, - format: 'esm', - external: ADAPTER_EXTERNALS, - plugins: [resolveAdapterShared('../../shared/vite/index.mjs')], - }); - - await build({ - entryPoints, - outfile: join(config.distQwikRouterPkgDir, 'adapters', 'vercel-edge', 'vite', 'index.cjs'), - bundle: true, - platform: 'node', - target: nodeTarget, - format: 'cjs', - external: ADAPTER_EXTERNALS, - plugins: [resolveAdapterShared('../../shared/vite/index.cjs')], - }); -} - -async function buildMiddlewareAzureSwa(config: BuildConfig) { - const entryPoints = [join(config.srcQwikRouterDir, 'middleware', 'azure-swa', 'index.ts')]; - - await build({ - entryPoints, - outfile: join(config.distQwikRouterPkgDir, 'middleware', 'azure-swa', 'index.mjs'), - bundle: true, - platform: 'node', - target: nodeTarget, - format: 'esm', - external: MIDDLEWARE_EXTERNALS, - plugins: [resolveRequestHandler('../request-handler/index.mjs')], - }); -} - -async function buildMiddlewareAwsLambda(config: BuildConfig) { - const entryPoints = [join(config.srcQwikRouterDir, 'middleware', 'aws-lambda', 'index.ts')]; - - await build({ - entryPoints, - outfile: join(config.distQwikRouterPkgDir, 'middleware', 'aws-lambda', 'index.mjs'), - bundle: true, - platform: 'node', - target: nodeTarget, - format: 'esm', - external: MIDDLEWARE_EXTERNALS, - plugins: [resolveRequestHandler('../request-handler/index.mjs')], - }); -} - -async function buildMiddlewareCloudflarePages(config: BuildConfig) { - const entryPoints = [join(config.srcQwikRouterDir, 'middleware', 'cloudflare-pages', 'index.ts')]; - - await build({ - entryPoints, - outfile: join(config.distQwikRouterPkgDir, 'middleware', 'cloudflare-pages', 'index.mjs'), - bundle: true, - platform: 'node', - target: nodeTarget, - format: 'esm', - external: MIDDLEWARE_EXTERNALS, - plugins: [resolveRequestHandler('../request-handler/index.mjs')], - }); -} - -async function buildMiddlewareBun(config: BuildConfig) { - const entryPoints = [join(config.srcQwikRouterDir, 'middleware', 'bun', 'index.ts')]; - - await build({ - entryPoints, - outfile: join(config.distQwikRouterPkgDir, 'middleware', 'bun', 'index.mjs'), - bundle: true, - platform: 'node', - target: nodeTarget, - format: 'esm', - external: MIDDLEWARE_EXTERNALS, - plugins: [resolveRequestHandler('../request-handler/index.mjs')], - }); -} - -async function buildMiddlewareDeno(config: BuildConfig) { - const entryPoints = [join(config.srcQwikRouterDir, 'middleware', 'deno', 'index.ts')]; - - await build({ - entryPoints, - outfile: join(config.distQwikRouterPkgDir, 'middleware', 'deno', 'index.mjs'), - bundle: true, - platform: 'node', - target: nodeTarget, - format: 'esm', - external: MIDDLEWARE_EXTERNALS, - plugins: [resolveRequestHandler('../request-handler/index.mjs')], - }); -} - -async function buildMiddlewareNetlifyEdge(config: BuildConfig) { - const entryPoints = [join(config.srcQwikRouterDir, 'middleware', 'netlify-edge', 'index.ts')]; - - await build({ - entryPoints, - outfile: join(config.distQwikRouterPkgDir, 'middleware', 'netlify-edge', 'index.mjs'), - bundle: true, - platform: 'node', - target: nodeTarget, - format: 'esm', - external: MIDDLEWARE_EXTERNALS, - plugins: [resolveRequestHandler('../request-handler/index.mjs')], - }); -} - -async function buildMiddlewareNode(config: BuildConfig) { - const entryPoints = [join(config.srcQwikRouterDir, 'middleware', 'node', 'index.ts')]; - - const external = ['node-fetch', 'undici', 'path', 'os', 'fs', 'url', ...MIDDLEWARE_EXTERNALS]; - - await build({ - entryPoints, - outfile: join(config.distQwikRouterPkgDir, 'middleware', 'node', 'index.mjs'), - bundle: true, - platform: 'node', - target: nodeTarget, - format: 'esm', - external, - plugins: [resolveRequestHandler('../request-handler/index.mjs')], - }); - - await build({ - entryPoints, - outfile: join(config.distQwikRouterPkgDir, 'middleware', 'node', 'index.cjs'), - bundle: true, - platform: 'node', - target: nodeTarget, - format: 'cjs', - external, - plugins: [resolveRequestHandler('../request-handler/index.cjs')], - }); -} - -async function buildMiddlewareRequestHandler(config: BuildConfig) { - const entryPoints = [join(config.srcQwikRouterDir, 'middleware', 'request-handler', 'index.ts')]; - - await build({ - entryPoints, - outfile: join(config.distQwikRouterPkgDir, 'middleware', 'request-handler', 'index.mjs'), - bundle: true, - platform: 'node', - target: nodeTarget, - format: 'esm', - external: MIDDLEWARE_EXTERNALS, - }); - - await build({ - entryPoints, - outfile: join(config.distQwikRouterPkgDir, 'middleware', 'request-handler', 'index.cjs'), - bundle: true, - platform: 'node', - target: nodeTarget, - format: 'cjs', - external: MIDDLEWARE_EXTERNALS, - }); -} - -async function buildMiddlewareVercelEdge(config: BuildConfig) { - const entryPoints = [join(config.srcQwikRouterDir, 'middleware', 'vercel-edge', 'index.ts')]; - - await build({ - entryPoints, - outfile: join(config.distQwikRouterPkgDir, 'middleware', 'vercel-edge', 'index.mjs'), - bundle: true, - platform: 'node', - target: nodeTarget, - format: 'esm', - external: MIDDLEWARE_EXTERNALS, - plugins: [resolveRequestHandler('../request-handler/index.mjs')], - }); -} - -async function buildMiddlewareFirebase(config: BuildConfig) { - const entryPoints = [join(config.srcQwikRouterDir, 'middleware', 'firebase', 'index.ts')]; - - await build({ - entryPoints, - outfile: join(config.distQwikRouterPkgDir, 'middleware', 'firebase', 'index.mjs'), - bundle: true, - platform: 'node', - target: nodeTarget, - format: 'esm', - external: MIDDLEWARE_EXTERNALS, - plugins: [resolveRequestHandler('../request-handler/index.mjs')], - }); + // Build request handler middleware + await buildWithVite({ + entry: join(config.srcQwikRouterDir, 'middleware', 'request-handler', 'index.ts'), + outDir: join(config.distQwikRouterPkgDir, 'middleware', 'request-handler'), + fileName: 'index', + }); + + // Build node middleware + await buildWithVite({ + entry: join(config.srcQwikRouterDir, 'middleware', 'node', 'index.ts'), + outDir: join(config.distQwikRouterPkgDir, 'middleware', 'node'), + fileName: 'index', + plugins: [resolveRequestHandler('../request-handler/index')], + }); + + // Build all other middleware + await Promise.all( + middleware.map((mw) => + buildWithVite({ + entry: mw.entry, + outDir: join(config.distQwikRouterPkgDir, 'middleware', mw.name), + fileName: 'index', + plugins: mw.plugins, + }) + ) + ); } async function buildSsg(config: BuildConfig) { - const entryPoints = [join(config.srcQwikRouterDir, 'ssg', 'index.ts')]; - - await build({ - entryPoints, - outfile: join(config.distQwikRouterPkgDir, 'ssg', 'index.mjs'), - bundle: true, + // Build main SSG + await buildWithVite({ + entry: join(config.srcQwikRouterDir, 'ssg', 'index.ts'), + outDir: join(config.distQwikRouterPkgDir, 'ssg'), + fileName: 'index', platform: 'neutral', - format: 'esm', }); - await build({ - entryPoints, - outfile: join(config.distQwikRouterPkgDir, 'ssg', 'index.cjs'), - bundle: true, - platform: 'node', - target: nodeTarget, - format: 'cjs', - }); -} - -async function buildSsgDeno(config: BuildConfig) { - const entryPoints = [join(config.srcQwikRouterDir, 'ssg', 'deno', 'index.ts')]; - - await build({ - entryPoints, - outfile: join(config.distQwikRouterPkgDir, 'ssg', 'deno.mjs'), - bundle: true, + // Build SSG Deno + await buildWithVite({ + entry: join(config.srcQwikRouterDir, 'ssg', 'deno', 'index.ts'), + outDir: join(config.distQwikRouterPkgDir, 'ssg'), + fileName: 'deno', platform: 'neutral', - format: 'esm', - plugins: [resolveRequestHandler('../middleware/request-handler/index.mjs')], + plugins: [resolveRequestHandler('../middleware/request-handler/index')], }); -} -async function buildSsgNode(config: BuildConfig) { - const entryPoints = [join(config.srcQwikRouterDir, 'ssg', 'node', 'index.ts')]; - - const external = [ - '@qwik.dev/core', - '@qwik.dev/core/optimizer', - '@qwik.dev/router', - 'fs', - 'http', - 'https', - 'node-fetch', - 'undici', - 'os', - 'path', - 'stream/web', - 'url', - 'worker_threads', - 'vite', - ]; - - await build({ - entryPoints, - outfile: join(config.distQwikRouterPkgDir, 'ssg', 'node.mjs'), - bundle: true, - platform: 'node', - target: nodeTarget, - format: 'esm', - external, - plugins: [resolveRequestHandler('../middleware/request-handler/index.mjs')], + await buildWithVite({ + entry: join(config.srcQwikRouterDir, 'ssg', 'node', 'index.ts'), + outDir: join(config.distQwikRouterPkgDir, 'ssg'), + fileName: 'node', + plugins: [resolveRequestHandler('../middleware/request-handler/index')], }); +} - await build({ - entryPoints, - outfile: join(config.distQwikRouterPkgDir, 'ssg', 'node.cjs'), - bundle: true, - platform: 'node', - target: nodeTarget, - format: 'cjs', - external, - plugins: [resolveRequestHandler('../middleware/request-handler/index.cjs')], +async function buildWithVite(options: { + entry: string; + outDir: string; + fileName: string; + plugins?: any[]; + alias?: Record; + platform?: 'node' | 'neutral'; +}) { + const { entry, outDir, fileName, plugins = [], alias = {}, platform = 'node' } = options; + + await viteBuild({ + build: { + manifest: false, + target: platform === 'node' ? 'node20' : undefined, + lib: { + entry, + name: fileName, + formats: ['es', 'cjs'], + fileName: (format) => `${fileName}.${format === 'es' ? 'mjs' : 'cjs'}`, + }, + outDir, + rollupOptions: { + external: externalsRegex, + output: { + globals: {}, + }, + }, + sourcemap: false, + emptyOutDir: false, + }, + environments: + platform === 'node' ? { ssr: { consumer: 'server' } } : { client: { consumer: 'client' } }, + plugins, + resolve: { + alias, + }, + define: { + 'process.env.NODE_ENV': '"production"', + }, + clearScreen: false, }); } @@ -712,24 +342,3 @@ function resolveSsg(path: string) { function resolveAdapterShared(path: string) { return importPath(/shared\/vite$/, path); } - -const ADAPTER_EXTERNALS = [ - 'vite', - 'fs', - 'path', - '@qwik.dev/core', - '@qwik.dev/core/server', - '@qwik.dev/core/optimizer', - '@qwik.dev/router', - '@qwik.dev/router/ssg', - '@qwik.dev/router/middleware/request-handler', -]; - -const MIDDLEWARE_EXTERNALS = [ - '@qwik.dev/core', - '@qwik.dev/core/optimizer', - '@qwik.dev/core/server', - '@qwik.dev/router', - '@qwik.dev/router/ssg', - '@qwik-router-config', -]; diff --git a/starters/dev-server.ts b/starters/dev-server.ts index d8f99d1024e..27be97ac716 100644 --- a/starters/dev-server.ts +++ b/starters/dev-server.ts @@ -43,10 +43,6 @@ const appNames = readdirSync(startersAppsDir).filter( (p) => statSync(join(startersAppsDir, p)).isDirectory() && p !== "base", ); -const rootDir = resolve(__dirname, ".."); -const packagesDir = resolve(rootDir, "packages"); -const qwikRouterMjs = join(packagesDir, "qwik-router", "lib", "index.qwik.mjs"); - /** Used when qwik-router server is enabled */ const qwikRouterVirtualEntry = "@router-ssr-entry"; const entrySsrFileName = "entry.ssr.tsx"; @@ -198,16 +194,7 @@ export { plugins: [ ...plugins, optimizer.qwikVite({ - /** - * normally qwik finds qwik-router via package.json but we don't want that - * because it causes it to try to lookup the special qwik router imports - * even when we're not actually importing qwik-router - */ - disableVendorScan: true, - vendorRoots: enableRouterServer ? [qwikRouterMjs] : [], - entryStrategy: { - type: "segment", - }, + entryStrategy: { type: "segment" }, client: { manifestOutput(manifest) { clientManifest = manifest; @@ -271,7 +258,8 @@ async function routerApp( appDir: string, ) { const ssrPath = join(appDir, "server", `${qwikRouterVirtualEntry}.js`); - + // it's ok in the devserver to import core multiple times + (globalThis as any).__qwik = null; const mod = await import(file(ssrPath)); const router: any = mod.router; router(req, res, () => { @@ -289,6 +277,8 @@ async function ssrApp( manifest: QwikManifest, ) { const ssrPath = join(appDir, "server", "entry.ssr.js"); + // it's ok in the devserver to import core multiple times + (globalThis as any).__qwik = null; const mod = await import(file(ssrPath)); const render: Render = mod.default ?? mod.render; diff --git a/starters/e2e/e2e.use-id.e2e.ts b/starters/e2e/e2e.use-id.e2e.ts index d98e732b749..70a8ceedf3d 100644 --- a/starters/e2e/e2e.use-id.e2e.ts +++ b/starters/e2e/e2e.use-id.e2e.ts @@ -1,4 +1,4 @@ -import { test, expect, Locator } from "@playwright/test"; +import { test, expect } from "@playwright/test"; test.describe("use-id", () => { test.beforeEach(async ({ page }) => { diff --git a/syncpack-release-conf.json b/syncpack-release-conf.json index 077730aed7a..5dd25581dbf 100644 --- a/syncpack-release-conf.json +++ b/syncpack-release-conf.json @@ -12,11 +12,6 @@ "dependencies": ["@playwright/test"], "pinVersion": "1.47.0" }, - { - "label": "Undici should always be * until we remove it", - "dependencies": ["undici"], - "range": "*" - }, { "label": "use exact version numbers for devDependencies", "dependencyTypes": ["dev"],