diff --git a/e2e/adapters-e2e/adapters/express/vite.config.ts b/e2e/adapters-e2e/adapters/express/vite.config.ts index 5c0ac664b36..a08e8dc531a 100644 --- a/e2e/adapters-e2e/adapters/express/vite.config.ts +++ b/e2e/adapters-e2e/adapters/express/vite.config.ts @@ -6,7 +6,7 @@ export default extendConfig(baseConfig, () => { return { build: { ssr: true, - rollupOptions: { + rolldownOptions: { input: ['src/entry.express.tsx'], }, }, diff --git a/e2e/qwik-e2e/apps/preloader-test/vite.config.ts b/e2e/qwik-e2e/apps/preloader-test/vite.config.ts index 944f0579b63..d4c702fc557 100644 --- a/e2e/qwik-e2e/apps/preloader-test/vite.config.ts +++ b/e2e/qwik-e2e/apps/preloader-test/vite.config.ts @@ -75,14 +75,23 @@ export default defineConfig((): UserConfig => { ], build: { minify: false, - rollupOptions: { + rolldownOptions: { output: { - manualChunks: (id) => { - // Put library code in separate chunks - if (id.includes('vendor-lib')) { - return id; - } + codeSplitting: { + groups: [ + { + name: (id) => { + if (id.includes('vendor-lib')) { + return 'vendor'; + } + }, + }, + ], }, + comments: true, + }, + experimental: { + attachDebugInfo: 'full', }, }, }, diff --git a/e2e/qwik-e2e/tests/style.e2e.ts b/e2e/qwik-e2e/tests/style.e2e.ts index a463f5acef2..187e743770e 100644 --- a/e2e/qwik-e2e/tests/style.e2e.ts +++ b/e2e/qwik-e2e/tests/style.e2e.ts @@ -1,6 +1,6 @@ import { test, expect } from '@playwright/test'; -const USE_STYLES_DEDUPE_MARKER = '--use-styles-dedupe-marker: dedupe-ok'; +const USE_STYLES_DEDUPE_MARKER = '--use-styles-dedupe-marker:dedupe-ok'; test.describe('styles', () => { test.beforeEach(async ({ page }) => { diff --git a/e2e/qwik-react-e2e/adapters/express/vite.config.ts b/e2e/qwik-react-e2e/adapters/express/vite.config.ts index 5c0ac664b36..a08e8dc531a 100644 --- a/e2e/qwik-react-e2e/adapters/express/vite.config.ts +++ b/e2e/qwik-react-e2e/adapters/express/vite.config.ts @@ -6,7 +6,7 @@ export default extendConfig(baseConfig, () => { return { build: { ssr: true, - rollupOptions: { + rolldownOptions: { input: ['src/entry.express.tsx'], }, }, diff --git a/package.json b/package.json index f961639736e..156fbc23399 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ "syncpack": { "versionGroups": [ { - "label": "Be lenient in vite versions for prod. v4 is broken, v5 is good", + "label": "Only accept vite 5 or higher", "dependencyTypes": [ "prod", "peer" @@ -129,7 +129,7 @@ "@types/semver": "7.7.1", "@types/tmp": "0.2.6", "@types/which-pm-runs": "1.0.2", - "@vitejs/plugin-basic-ssl": "2.1.4", + "@vitejs/plugin-basic-ssl": "2.2.0", "@vitest/coverage-v8": "4.0.18", "all-contributors-cli": "6.26.1", "brotli": "1.3.3", @@ -169,7 +169,7 @@ "typescript": "5.9.3", "typescript-eslint": "8.56.1", "vfile": "6.0.3", - "vite": "7.3.1", + "vite": "8.0.6", "vite-imagetools": "10.0.0", "vite-plugin-dts": "4.5.4", "vite-tsconfig-paths": "6.0.4", diff --git a/packages/docs/adapters/cloudflare-pages/vite.config.ts b/packages/docs/adapters/cloudflare-pages/vite.config.ts index 09178a42746..ea38d64e89d 100644 --- a/packages/docs/adapters/cloudflare-pages/vite.config.ts +++ b/packages/docs/adapters/cloudflare-pages/vite.config.ts @@ -6,7 +6,7 @@ export default extendConfig(baseConfig, () => { return { build: { ssr: true, - rollupOptions: { + rolldownOptions: { input: ['src/entry.cloudflare-pages.tsx'], }, minify: false, diff --git a/packages/docs/package.json b/packages/docs/package.json index 7a0534f89c7..b13b5f7466c 100644 --- a/packages/docs/package.json +++ b/packages/docs/package.json @@ -22,7 +22,7 @@ "@qwik.dev/partytown": "0.11.2", "@qwik.dev/react": "workspace:*", "@qwik.dev/router": "workspace:*", - "@rolldown/browser": "1.0.0-beta.59", + "@rolldown/browser": "1.0.0-rc.12", "@shikijs/colorized-brackets": "3.21.0", "@shikijs/langs": "3.21.0", "@shikijs/rehype": "3.21.0", @@ -30,7 +30,8 @@ "@shikijs/transformers": "3.21.0", "@shikijs/types": "3.21.0", "@supabase/supabase-js": "2.53.0", - "@tailwindcss/vite": "4.1.18", + "@tailwindcss/postcss": "4.2.2", + "@tailwindcss/vite": "4.2.2", "@types/leaflet": "1.9.21", "@types/prismjs": "1.26.5", "@types/react": "19.2.7", @@ -46,21 +47,23 @@ "playwright": "1.57.0", "prettier": "3.7.4", "prism-themes": "1.9.0", - "prismjs": "1.30.0", "qwik-image": "0.0.16", "react": "19.2.3", "react-dom": "19.2.3", "shiki": "3.21.0", "snarkdown": "2.0.0", - "tailwindcss": "4.1.18", + "tailwindcss": "4.2.1", "terser": "5.46.0", "tsm": "2.3.0", "typescript": "5.9.3", "valibot": "1.2.0", - "vite": "7.3.1", + "vite": "8.0.6", "vite-tsconfig-paths": "6.0.4", "wrangler": "3.114.17" }, + "dependencies": { + "prismjs": "1.30.0" + }, "engines": { "node": "^18.17.0 || ^20.3.0 || >=21.0.0", "npm": "please-use-pnpm", diff --git a/packages/docs/src/routes/docs/deployments/cloudflare-pages/index.mdx b/packages/docs/src/routes/docs/deployments/cloudflare-pages/index.mdx index 9689f213f3e..0244d5f8ac8 100644 --- a/packages/docs/src/routes/docs/deployments/cloudflare-pages/index.mdx +++ b/packages/docs/src/routes/docs/deployments/cloudflare-pages/index.mdx @@ -151,7 +151,7 @@ export default extendConfig(baseConfig, () => { return { build: { ssr: true, - rollupOptions: { + rolldownOptions: { input: [ 'src/entry.cloudflare-pages.tsx', // This ensures that the SSG can read the routes from the config diff --git a/packages/docs/src/routes/docs/deployments/static/index.mdx b/packages/docs/src/routes/docs/deployments/static/index.mdx index c360b9969e8..cb7448dc60d 100644 --- a/packages/docs/src/routes/docs/deployments/static/index.mdx +++ b/packages/docs/src/routes/docs/deployments/static/index.mdx @@ -53,7 +53,7 @@ export default extendConfig(baseConfig, () => { return { build: { ssr: true, - rollupOptions: { + rolldownOptions: { input: ['@qwik-router-config'], }, }, diff --git a/packages/docs/vite.config.ts b/packages/docs/vite.config.ts index ce50b740d78..165109dcdff 100644 --- a/packages/docs/vite.config.ts +++ b/packages/docs/vite.config.ts @@ -12,7 +12,7 @@ import type { ShikiTransformer } from '@shikijs/types'; import tailwindcss from '@tailwindcss/vite'; import path, { resolve } from 'node:path'; // import { qwikDevtools } from '@qwik.dev/devtools'; -import { defineConfig, loadEnv, type Plugin, type Rollup, type UserConfig } from 'vite'; +import { defineConfig, loadEnv, type Plugin, type UserConfig } from 'vite'; import { compiledStringPlugin } from '../../scripts/compiled-string-plugin.js'; import { examplesData, playgroundData, rawSource, tutorialData } from './vite.repl-apps'; import { sourceResolver } from './vite.source-resolver'; @@ -27,10 +27,10 @@ const muteWarningsPlugin = (warningsToIgnore: string[][]): Plugin => { name: 'mute-warnings', enforce: 'pre', config: (userConfig) => { - const origOnLog = userConfig.build?.rollupOptions?.onLog; + const origOnLog = userConfig.build?.rolldownOptions?.onLog; return { build: { - rollupOptions: { + rolldownOptions: { onLog(type, warning, defaultHandler) { if (type === 'warn') { if (warning.code) { @@ -98,42 +98,6 @@ function transformerMetaShowTitle(): ShikiTransformer { }; } -function overrideManualChunksForRepl(): Plugin { - return { - name: 'override-manual-chunks-for-repl', - enforce: 'post', - config(userConfig) { - const prevOutput = userConfig.build?.rollupOptions?.output; - const prevManualChunks: Rollup.ManualChunksOption | undefined = - prevOutput && !Array.isArray(prevOutput) - ? (prevOutput as Rollup.OutputOptions).manualChunks - : undefined; - - return { - build: { - rollupOptions: { - output: { - manualChunks: (id, meta) => { - const moduleInfo = meta.getModuleInfo(id); - if (moduleInfo) { - // Prevent the similar optimizer plugin logic from running on the repl - if (id.includes('repl') && (moduleInfo as any).meta?.qwikdeps?.length === 0) { - return null; - } - } - - if (typeof prevManualChunks === 'function') { - return prevManualChunks(id, meta); - } - }, - }, - }, - }, - }; - }, - }; -} - export default defineConfig(({ mode }) => { const routesDir = resolve('src', 'routes'); const isProd = mode === 'production'; @@ -265,12 +229,12 @@ export default defineConfig(({ mode }) => { qwikReact(), qwikInsights({ publicApiKey: insightsApiKey }), tailwindcss(), - overrideManualChunksForRepl(), // qwikDevtools(), ], build: { sourcemap: true, - rollupOptions: { + rolldownOptions: { + makeAbsoluteExternalsRelative: true, output: { assetFileNames: 'assets/[hash]-[name].[ext]', }, diff --git a/packages/insights/adapters/netlify-edge/vite.config.ts b/packages/insights/adapters/netlify-edge/vite.config.ts index 42f7ec4061a..4818da43b87 100644 --- a/packages/insights/adapters/netlify-edge/vite.config.ts +++ b/packages/insights/adapters/netlify-edge/vite.config.ts @@ -6,7 +6,7 @@ export default extendConfig(baseConfig, () => { return { build: { ssr: true, - rollupOptions: { + rolldownOptions: { input: ['src/entry.netlify-edge.tsx'], }, outDir: '.netlify/edge-functions/entry.netlify-edge', diff --git a/packages/insights/package.json b/packages/insights/package.json index fa476e1c9c9..6310181676c 100644 --- a/packages/insights/package.json +++ b/packages/insights/package.json @@ -19,7 +19,7 @@ "@netlify/edge-functions": "3.0.6", "@qwik.dev/core": "workspace:*", "@qwik.dev/router": "workspace:*", - "@tailwindcss/vite": "4.1.18", + "@tailwindcss/vite": "4.2.2", "@types/density-clustering": "1.3.3", "@types/node": "24.10.0", "autoprefixer": "10.4.23", @@ -30,10 +30,10 @@ "postcss": "8.5.6", "prettier": "3.7.4", "prettier-plugin-tailwindcss": "0.7.2", - "tailwindcss": "4.1.18", + "tailwindcss": "4.2.1", "typescript": "5.9.3", "typescript-eslint": "8.56.1", - "vite": "7.3.1", + "vite": "8.0.6", "vite-tsconfig-paths": "6.0.4", "vitest": "4.0.18", "zod": "3.25.48" diff --git a/packages/optimizer/vite.config.ts b/packages/optimizer/vite.config.ts index afd46ba5304..293a887d027 100644 --- a/packages/optimizer/vite.config.ts +++ b/packages/optimizer/vite.config.ts @@ -22,7 +22,7 @@ export default defineConfig(({ mode }) => ({ fileName: () => 'index.mjs', formats: ['es'], }, - rollupOptions: { + rolldownOptions: { output: { banner: getBanner('@qwik.dev/optimizer', version) }, }, }, diff --git a/packages/qwik-react/package.json b/packages/qwik-react/package.json index 5e4c7d08984..4ea8e51fe0f 100644 --- a/packages/qwik-react/package.json +++ b/packages/qwik-react/package.json @@ -10,7 +10,7 @@ "react": "19.2.3", "react-dom": "19.2.3", "typescript": "5.9.3", - "vite": "7.3.1" + "vite": "8.0.6" }, "engines": { "node": "^18.17.0 || ^20.3.0 || >=21.0.0" diff --git a/packages/qwik-react/vite.config.ts b/packages/qwik-react/vite.config.ts index a2c2ba1eb63..a2dbe689ed7 100644 --- a/packages/qwik-react/vite.config.ts +++ b/packages/qwik-react/vite.config.ts @@ -11,7 +11,7 @@ export default defineConfig(() => { formats: ['es'], fileName: (format, entryName) => `${entryName}.mjs`, }, - rollupOptions: { + rolldownOptions: { external: [ 'react', 'react/jsx-runtime', diff --git a/packages/qwik-router/src/adapters/cloudflare-pages/vite/index.ts b/packages/qwik-router/src/adapters/cloudflare-pages/vite/index.ts index ed0fed99c06..bdfa3602098 100644 --- a/packages/qwik-router/src/adapters/cloudflare-pages/vite/index.ts +++ b/packages/qwik-router/src/adapters/cloudflare-pages/vite/index.ts @@ -26,7 +26,7 @@ export function cloudflarePagesAdapter(opts: CloudflarePagesAdapterOptions = {}) }, build: { ssr: true, - rollupOptions: { + rolldownOptions: { output: { format: 'es', hoistTransitiveImports: false, diff --git a/packages/qwik-router/src/adapters/deno-server/vite/index.ts b/packages/qwik-router/src/adapters/deno-server/vite/index.ts index aba61a974b5..da99c27f2b7 100644 --- a/packages/qwik-router/src/adapters/deno-server/vite/index.ts +++ b/packages/qwik-router/src/adapters/deno-server/vite/index.ts @@ -23,7 +23,7 @@ export function denoServerAdapter(opts: DenoServerAdapterOptions = {}): any { build: { ssr: true, target: 'esnext', - rollupOptions: { + rolldownOptions: { output: { format: 'es', hoistTransitiveImports: false, 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 26dbade0b40..0cb35eac95e 100644 --- a/packages/qwik-router/src/adapters/netlify-edge/vite/index.ts +++ b/packages/qwik-router/src/adapters/netlify-edge/vite/index.ts @@ -27,7 +27,7 @@ export function netlifyEdgeAdapter(opts: NetlifyEdgeAdapterOptions = {}): any { build: { ssr: true, outDir, - rollupOptions: { + rolldownOptions: { output: { format: 'es', hoistTransitiveImports: false, diff --git a/packages/qwik-router/src/adapters/vercel-edge/vite/index.ts b/packages/qwik-router/src/adapters/vercel-edge/vite/index.ts index 5ee9116505f..d5c9ae9b24b 100644 --- a/packages/qwik-router/src/adapters/vercel-edge/vite/index.ts +++ b/packages/qwik-router/src/adapters/vercel-edge/vite/index.ts @@ -29,7 +29,7 @@ export function vercelEdgeAdapter(opts: VercelEdgeAdapterOptions = {}): any { build: { ssr: true, outDir, - rollupOptions: { + rolldownOptions: { output: { format: 'es', hoistTransitiveImports: false, diff --git a/packages/qwik-router/src/ssg/bundle-isolation.unit.ts b/packages/qwik-router/src/ssg/bundle-isolation.unit.ts index 69f81f9fe83..bb4cc09826d 100644 --- a/packages/qwik-router/src/ssg/bundle-isolation.unit.ts +++ b/packages/qwik-router/src/ssg/bundle-isolation.unit.ts @@ -65,7 +65,7 @@ describe('SSG worker bundle isolation', () => { minify: false, outDir, ssr: true, - rollupOptions: { + rolldownOptions: { input: join(appDir, 'run-ssg.ts'), }, }, diff --git a/packages/qwik-router/vite.config.ts b/packages/qwik-router/vite.config.ts index 4ab77e10c19..9916fbaccee 100644 --- a/packages/qwik-router/vite.config.ts +++ b/packages/qwik-router/vite.config.ts @@ -3,8 +3,9 @@ import { defineConfig } from 'vite'; import { compiledStringPlugin } from '../../scripts/compiled-string-plugin.js'; import { ssgWorkerImportPlugin } from './src/buildtime/vite/ssg-worker-imports'; import pkg from './package.json' with { type: 'json' }; +import type { UserConfig } from 'vite'; -export default defineConfig(() => { +export default defineConfig((): UserConfig => { return { build: { emptyOutDir: false, @@ -13,7 +14,7 @@ export default defineConfig(() => { target: 'esnext', outDir: 'lib', minify: false, - rollupOptions: { + rolldownOptions: { input: { index: './src/runtime/src/', 'adapters/azure-swa/vite': './src/adapters/azure-swa/vite', diff --git a/packages/qwik-vite/package.json b/packages/qwik-vite/package.json index 682243843b7..f8d13dea5dc 100644 --- a/packages/qwik-vite/package.json +++ b/packages/qwik-vite/package.json @@ -2,6 +2,7 @@ "name": "@qwik.dev/qwik-vite", "private": true, "devDependencies": { - "image-size": "1.2.1" + "image-size": "1.2.1", + "rolldown": "1.0.0-rc.13" } } diff --git a/packages/qwik-vite/src/manifest.ts b/packages/qwik-vite/src/manifest.ts index 121b90598b8..c2cdeef2709 100644 --- a/packages/qwik-vite/src/manifest.ts +++ b/packages/qwik-vite/src/manifest.ts @@ -395,6 +395,7 @@ export function computeTotals(graph: QwikManifest['bundles']): void { const preloaderRegex = /[/\\](core|qwik)[/\\]dist[/\\]preloader\.(|c|m)js$/; const coreRegex = /[/\\](core|qwik)[/\\]dist[/\\]core(\.min|\.prod)?\.(|c|m)js$/; const qwikLoaderRegex = /[/\\](core|qwik)[/\\](dist[/\\])?qwikloader(\.debug)?\.[^/]*js$/; +const handlersRegex = /[/\\](core|qwik)[/\\]handlers\.(|c|m)js$/; /** * Generates the Qwik build manifest from the Rollup output bundles. It also figures out the bundle * files for the preloader, core, qwikloader and handlers. This information is used during SSR. @@ -486,8 +487,6 @@ export function generateManifestFromBundles( } } const bundleImports = outputBundle.imports - // Tree shaking might remove imports - .filter((i) => outputBundle.code.includes(path.basename(i))) .map((i) => getBundleName(i)) .filter((i) => i !== preloaderBundleName && i !== coreBundleName && i !== qwikHandlersName) .filter(Boolean) as string[]; @@ -495,7 +494,6 @@ export function generateManifestFromBundles( bundle.imports = bundleImports; } const bundleDynamicImports = outputBundle.dynamicImports - .filter((i) => outputBundle.code.includes(path.basename(i))) .map((i) => getBundleName(i)) .filter(Boolean) as string[]; if (bundleDynamicImports.length > 0) { @@ -510,6 +508,8 @@ export function generateManifestFromBundles( manifest.core = bundleFileName; } else if (qwikLoaderRegex.test(outputBundle.facadeModuleId)) { manifest.qwikLoader = bundleFileName; + } else if (handlersRegex.test(outputBundle.facadeModuleId)) { + qwikHandlersName = bundleFileName; } } // Rollup doesn't provide the moduleIds in the outputBundle but Vite does @@ -529,6 +529,9 @@ export function generateManifestFromBundles( if (!manifest.qwikLoader && modulePaths.some((m) => qwikLoaderRegex.test(m))) { manifest.qwikLoader = bundleFileName; } + if (!qwikHandlersName && modulePaths.some((m) => handlersRegex.test(m))) { + qwikHandlersName = bundleFileName; + } } manifest.bundles[bundleFileName] = bundle; diff --git a/packages/qwik-vite/src/plugins/bundle-graph.ts b/packages/qwik-vite/src/plugins/bundle-graph.ts index 94117adcfec..0677995bd5b 100644 --- a/packages/qwik-vite/src/plugins/bundle-graph.ts +++ b/packages/qwik-vite/src/plugins/bundle-graph.ts @@ -115,22 +115,6 @@ export function convertManifestToBundleGraph( const names = Object.keys(graph); const map = new Map }>(); - const clearTransitiveDeps = ( - parentDeps: Set, - bundleName: string, - seen: Set = new Set() - ) => { - const bundle = graph[bundleName]; - for (const dep of bundle.imports!) { - if (parentDeps.has(dep)) { - parentDeps.delete(dep); - } - if (!seen.has(dep)) { - seen.add(dep); - clearTransitiveDeps(parentDeps, dep, seen); - } - } - }; /** * First pass to collect minimal dependency lists and allocate space for dependencies. Minimal @@ -141,13 +125,9 @@ export function convertManifestToBundleGraph( const bundle = graph[bundleName]; // external dependencies are not included in `graph` const deps = new Set(bundle.imports!); - for (const depName of deps) { - clearTransitiveDeps(deps, depName); - } const dynDeps = new Set(bundle.dynamicImports!); const depProbability = new Map(); for (const depName of dynDeps) { - clearTransitiveDeps(dynDeps, depName); const dep = graph[depName]; // Calculate the probability of the dependency diff --git a/packages/qwik-vite/src/plugins/bundle-graph.unit.ts b/packages/qwik-vite/src/plugins/bundle-graph.unit.ts index 0bca11d533f..5e1bfd4a3b6 100644 --- a/packages/qwik-vite/src/plugins/bundle-graph.unit.ts +++ b/packages/qwik-vite/src/plugins/bundle-graph.unit.ts @@ -51,30 +51,30 @@ describe('convertManifestToBundleGraph', () => { 2, 'static-dep.js', // 2 -7, - 5, - // doesn't list 13 because it's also statically imported by dynamic-dep.js - 'dynamic-dep.js', // 5 + 13, + 6, + 'dynamic-dep.js', // 6 2, - 12, - -9, 13, + -9, + 14, -7, - 16, - 'transitive-dep.js', // 12 - 'has-a-symbol.js', // 13 - -5, 17, - 'boring-dep.js', // 16 - 'large-file.js', // 17 - 'sym1', // 18 + 'transitive-dep.js', // 13 + 'has-a-symbol.js', // 14 + -5, + 18, + 'boring-dep.js', // 17 + 'large-file.js', // 18 + 'sym1', // 19 -7, - 5, - 'sym2', // 21 + 6, + 'sym2', // 22 -7, - 13, - 'sym3', // 24 + 14, + 'sym3', // 25 -5, - 17, + 18, ]); }); @@ -130,28 +130,29 @@ describe('convertManifestToBundleGraph', () => { 2, 'static-dep.js', // 2 -7, - 5, - 'dynamic-dep.js', // 5 + 9, + 6, + 'dynamic-dep.js', // 6 2, - 8, - 'transitive-dep.js', // 8 - 'has-a-symbol.js', // 9 + 9, + 'transitive-dep.js', // 9 + 'has-a-symbol.js', // 10 -5, - 12, - 'large-file.js', // 12 - 'sym1', // 13 + 13, + 'large-file.js', // 13 + 'sym1', // 14 -7, - 5, - 'sym2', // 16 + 6, + 'sym2', // 17 -7, - 9, - 'sym3', // 19 + 10, + 'sym3', // 20 -5, - 12, - 'dashboard/', // 22 + 13, + 'dashboard/', // 23 2, -7, - 8, + 9, ]); }); @@ -208,127 +209,146 @@ describe('convertManifestToBundleGraph', () => { [ "index.js", -9, - 18, + 26, "index.qwik.mjs_ErrorBoundary_component_6VMZkqoH00Q.js", "index.qwik.mjs_Form_form_onSubmit_5DbAsQLGGo4.js", "index.qwik.mjs_Link_component_handlePrefetch_0xCNPioszTk.js", - 27, + 38, "index.qwik.mjs_QwikRouterMockProvider_component_goto_dNtHVLGwESE.js", - 27, + 38, "index.qwik.mjs_QwikRouterProvider_component_useStyles_BMutFDNOKhc.js", + 38, + -9, + 29, + -7, 27, + -6, + 0, + -5, + 33, "index.qwik.mjs_routeActionQrl_action_submit_rufUrhffR5k.js", "index.qwik.mjs_RouterOutlet_component_q56DrQcc9VE.js", - 27, + 38, "index.qwik.mjs_serverQrl_rpc_Nhj4Mq4ilm8.js", - 27, + 38, "index.qwik.mjs_spaInit_event_3mjmVvTlJqo.js", "index.qwik.mjs_usePreventNavigateQrl_useVisibleTask_VjDx6RO4Kis.js", "index.tsx_about_component_useStyles_WOcPLNnm2is.js", "index.tsx_form_component_useStyles_0pasaG6nmEA.js", - 27, + 38, "index.tsx_routes_component_vG0UuU4cNCg.js", + -5, + 57, + 59, "layout.js", -9, - 25, + 36, "layout.tsx_layout_component_useStyles_MOLFIZOhXmE.js", - 27, + 38, "qwik-router.js", + -10, + 4, + 9, + -9, + 5, + 20, + 19, + 24, "root.js", -9, - 31, + 50, "root.tsx_root_component_9PcKHFjikV0.js", - 27, + 38, -9, - 35, + 54, "router-head.tsx_RouterHead_component_dAo05yeFq1I.js", - 27, + 38, "src-vendor-lib-helper.ts.js", "src-vendor-lib-libA.ts.js", - 37, + 56, "src-vendor-lib-libB.ts.js", - 37, + 56, "BjxcCeNQ9ak", -9, - 21, + 29, "eevMxFvmCM8", -7, - 25, + 36, "99K9SAWjPFQ", -9, - 21, + 29, "LopIayqLfMo", -8, 9, "VjDx6RO4Kis", -9, - 17, + 25, "HEFxKy9cwuk", -9, - 21, + 29, "6VMZkqoH00Q", -7, 3, "9PcKHFjikV0", -7, - 31, + 50, "9fcUDoGM9Wo", -8, 9, "SHtFir1Ia94", -7, - 25, + 36, "cH9twROgaEg", -7, 7, "dAo05yeFq1I", -7, - 35, + 54, "ds9jIPT1g9s", -7, - 19, + 27, "lTNqDDf58lI", -7, 5, "m7u9ARcfDGU", -7, - 18, + 26, "q56DrQcc9VE", -7, - 12, + 20, "vG0UuU4cNCg", -9, - 21, + 29, "vXTAPbOW0Ig", -7, - 27, + 38, "0pasaG6nmEA", -7, - 19, + 27, "BMutFDNOKhc", -8, 9, "Iyy38y0K3Hw", -9, - 21, + 29, "MOLFIZOhXmE", -7, - 25, + 36, "WOcPLNnm2is", -7, - 18, + 26, "3mjmVvTlJqo", -6, - 16, + 24, "5DbAsQLGGo4", -8, 4, "Nhj4Mq4ilm8", -6, - 14, + 22, "rufUrhffR5k", -6, - 11, + 19, "0xCNPioszTk", -7, 5, @@ -337,19 +357,19 @@ describe('convertManifestToBundleGraph', () => { 3, "ANY7TPAnAd8", -7, - 27, + 38, "BdwdOv10pp0", -8, 9, "YCi2vDzuhns", -7, - 27, + 38, "dNtHVLGwESE", -7, 7, "ep3t0fF0SDA", -9, - 21, + 29, "lWJp5Z4VtFs", -7, 5, diff --git a/packages/qwik-vite/src/plugins/dev/image-size-server.ts b/packages/qwik-vite/src/plugins/dev/image-size-server.ts index 5bebc462529..13ad28bf61e 100644 --- a/packages/qwik-vite/src/plugins/dev/image-size-server.ts +++ b/packages/qwik-vite/src/plugins/dev/image-size-server.ts @@ -1,20 +1,20 @@ -import bmp_1 from 'image-size/dist/types/bmp.js'; -import cur_1 from 'image-size/dist/types/cur.js'; -import dds_1 from 'image-size/dist/types/dds.js'; -import gif_1 from 'image-size/dist/types/gif.js'; -import icns_1 from 'image-size/dist/types/icns.js'; -import ico_1 from 'image-size/dist/types/ico.js'; -import j2c_1 from 'image-size/dist/types/j2c.js'; -import jp2_1 from 'image-size/dist/types/jp2.js'; -import jpg_1 from 'image-size/dist/types/jpg.js'; -import ktx_1 from 'image-size/dist/types/ktx.js'; -import png_1 from 'image-size/dist/types/png.js'; -import pnm_1 from 'image-size/dist/types/pnm.js'; -import psd_1 from 'image-size/dist/types/psd.js'; -import svg_1 from 'image-size/dist/types/svg.js'; -import tga_1 from 'image-size/dist/types/tga.js'; -import webp_1 from 'image-size/dist/types/webp.js'; -import heif_1 from 'image-size/dist/types/heif.js'; +import { BMP } from 'image-size/dist/types/bmp.js'; +import { CUR } from 'image-size/dist/types/cur.js'; +import { DDS } from 'image-size/dist/types/dds.js'; +import { GIF } from 'image-size/dist/types/gif.js'; +import { ICNS } from 'image-size/dist/types/icns.js'; +import { ICO } from 'image-size/dist/types/ico.js'; +import { J2C } from 'image-size/dist/types/j2c.js'; +import { JP2 } from 'image-size/dist/types/jp2.js'; +import { JPG } from 'image-size/dist/types/jpg.js'; +import { KTX } from 'image-size/dist/types/ktx.js'; +import { PNG } from 'image-size/dist/types/png.js'; +import { PNM } from 'image-size/dist/types/pnm.js'; +import { PSD } from 'image-size/dist/types/psd.js'; +import { SVG } from 'image-size/dist/types/svg.js'; +import { TGA } from 'image-size/dist/types/tga.js'; +import { WEBP } from 'image-size/dist/types/webp.js'; +import { HEIF } from 'image-size/dist/types/heif.js'; import type { Connect } from 'vite'; import type { OptimizerSystem } from '../../types'; @@ -34,23 +34,23 @@ const firstBytes: Record = { // Put in order of most common to least common const types = { - webp: webp_1.WEBP, - jpg: jpg_1.JPG, - png: png_1.PNG, - svg: svg_1.SVG, - gif: gif_1.GIF, - avif: heif_1.HEIF, - bmp: bmp_1.BMP, - cur: cur_1.CUR, - dds: dds_1.DDS, - icns: icns_1.ICNS, - ico: ico_1.ICO, - j2c: j2c_1.J2C, - jp2: jp2_1.JP2, - ktx: ktx_1.KTX, - pnm: pnm_1.PNM, - psd: psd_1.PSD, - tga: tga_1.TGA, + webp: WEBP, + jpg: JPG, + png: PNG, + svg: SVG, + gif: GIF, + avif: HEIF, + bmp: BMP, + cur: CUR, + dds: DDS, + icns: ICNS, + ico: ICO, + j2c: J2C, + jp2: JP2, + ktx: KTX, + pnm: PNM, + psd: PSD, + tga: TGA, }; const keys = Object.keys(types) as (keyof typeof types)[]; diff --git a/packages/qwik-vite/src/plugins/eslint-plugin.ts b/packages/qwik-vite/src/plugins/eslint-plugin.ts index 87c11c50876..78e44a00924 100644 --- a/packages/qwik-vite/src/plugins/eslint-plugin.ts +++ b/packages/qwik-vite/src/plugins/eslint-plugin.ts @@ -54,7 +54,7 @@ export async function createLinter( if (message.ruleId != null && !message.ruleId.startsWith('qwik/')) { continue; } - const err = createRollupError(file.filePath, message); + const err = createBundlerError(file.filePath, message); ctx.warn(err); } }); @@ -69,7 +69,7 @@ function parseRequest(id: string) { return id.split('?', 2)[0]; } -function createRollupError(id: string, reportMessage: Linter.LintMessage) { +function createBundlerError(id: string, reportMessage: Linter.LintMessage) { const err: Rollup.RollupError = Object.assign(new Error(reportMessage.message), { id, plugin: 'vite-plugin-eslint', diff --git a/packages/qwik-vite/src/plugins/plugin.ts b/packages/qwik-vite/src/plugins/plugin.ts index 24e046755f5..3cf9108fc2c 100644 --- a/packages/qwik-vite/src/plugins/plugin.ts +++ b/packages/qwik-vite/src/plugins/plugin.ts @@ -1,3 +1,4 @@ +import type { ChunkingContext, CodeSplittingOptions } from 'rolldown'; import type { DevEnvironment, HotUpdateOptions, Plugin, Rollup, ViteDevServer } from 'vite'; import { hashCode } from '../../../qwik/src/core/shared/utils/hash_code'; import { generateManifestFromBundles, getValidManifest } from '../manifest'; @@ -89,6 +90,9 @@ export function createQwikPlugin(optimizerOptions: OptimizerOptions = {}) { const clientResults = new Map(); const clientTransformedOutputs = new Map(); + // Maintaing our own map of segments because Rolldown doesn't retain module.meta information (https://github.com/rolldown/rolldown/issues/8924) + const clientSegments = new Map(); + const clientChunkNames = new Map(); const serverTransformedOutputs = new Map(); const parentIds = new Map(); @@ -378,35 +382,38 @@ export function createQwikPlugin(optimizerOptions: OptimizerOptions = {}) { } } - const out = { ...opts }; // Make sure to know what the actual input is opts.input ||= updatedOpts.input as string[]; if (opts.input && typeof opts.input === 'string') { opts.input = [opts.input]; } + // Normalize relative input paths to absolute (consistent with rootDir/srcDir/outDir) + if (Array.isArray(opts.input)) { + opts.input = opts.input.map((inp) => + inp.startsWith('@') || inp.startsWith('\0') || path.isAbsolute(inp) + ? inp + : normalizePath(path.resolve(opts.rootDir, inp)) + ); + } + + const out = { ...opts }; return out; }; - let hasValidatedSource = false; - const validateSource = async (resolver: (id: string) => Promise) => { - if (!hasValidatedSource) { - hasValidatedSource = true; - - const sys = getSys(); - if (sys.env === 'node') { - const fs: typeof import('fs') = await sys.dynamicImport('node:fs'); - if (!fs.existsSync(opts.rootDir)) { - throw new Error(`Qwik rootDir "${opts.rootDir}" not found.`); - } - if (typeof opts.srcDir === 'string' && !fs.existsSync(opts.srcDir)) { - throw new Error(`Qwik srcDir "${opts.srcDir}" not found.`); - } - for (const [_, input] of Object.entries(opts.input || {})) { - const resolved = await resolver(input); - if (!resolved) { - throw new Error(`Qwik input "${input}" not found.`); - } + const sys = getSys(); + if (sys.env === 'node') { + const fs: typeof import('fs') = await sys.dynamicImport('node:fs'); + if (!fs.existsSync(opts.rootDir)) { + throw new Error(`Qwik rootDir "${opts.rootDir}" not found.`); + } + if (typeof opts.srcDir === 'string' && !fs.existsSync(opts.srcDir)) { + throw new Error(`Qwik srcDir "${opts.srcDir}" not found.`); + } + for (const [_, input] of Object.entries(opts.input || {})) { + const resolved = await resolver(input); + if (!resolved) { + throw new Error(`Qwik input "${input}" not found.`); } } } @@ -427,8 +434,12 @@ export function createQwikPlugin(optimizerOptions: OptimizerOptions = {}) { } debug(`transformedOutputs.clear()`); + clientResults.clear(); clientTransformedOutputs.clear(); + clientSegments.clear(); + clientChunkNames.clear(); serverTransformedOutputs.clear(); + parentIds.clear(); if (opts.target === 'client' && !devServer) { // emitFile() is only supported during build, not in Vite serve mode @@ -454,6 +465,55 @@ export function createQwikPlugin(optimizerOptions: OptimizerOptions = {}) { : opts.target === 'ssr' || opts.target === 'test'; }; + const normalizeId = (id: string) => normalizePath(parseId(id).pathId); + + const setCachedSegment = (id: string, segment: SegmentAnalysis | null) => { + if (!segment) { + return; + } + clientSegments.set(normalizeId(id), segment); + }; + + /** Rolldown drops module.meta.segment during codeSplitting, so we cache it ourselves. */ + const getCachedSegment = (id: string): SegmentAnalysis | undefined => { + return clientSegments.get(normalizeId(id)); + }; + + const sanitizeChunkGroupName = (name: string | null | undefined) => { + if (!name) { + return null; + } + if (!/^(\.\.?([/\\]|$)|[/\\]|[A-Za-z]:[/\\])/.test(name)) { + return name; + } + + const normalizedName = name + .replace(/^[A-Za-z]:/, '') + .replace(/^(\.\.[/\\])+/, '') + .replace(/^\.[/\\]/, '') + .replace(/^[/\\]+/, '') + .replace(/[/\\]+/g, '-'); + + return normalizedName || null; + }; + + const normalizeChunkGroupName = (entry: string | null | undefined, srcDir: string) => { + if (!entry) { + return null; + } + const path = getPath(); + const normalizedEntry = normalizePath(entry); + const absoluteEntry = path.isAbsolute(normalizedEntry) + ? normalizedEntry + : normalizePath(path.resolve(srcDir, normalizedEntry)); + const rootRelativeEntry = normalizePath(path.relative(opts.rootDir, absoluteEntry)); + const preferredName = + !rootRelativeEntry.startsWith('../') && !path.isAbsolute(rootRelativeEntry) + ? rootRelativeEntry + : absoluteEntry; + return sanitizeChunkGroupName(preferredName); + }; + let resolveIdCount = 0; let doNotEdit = false; /** @@ -862,7 +922,6 @@ export function createQwikPlugin(optimizerOptions: OptimizerOptions = {}) { const newOutput = await optimizer.transformModules(transformOpts); debug(`transform(${count})`, `done in ${Date.now() - now}ms`); const module = newOutput.modules.find((mod) => !isAdditionalFile(mod))!; - // uncomment to show transform results // debug({ isServer, strip }, transformOpts, newOutput); diagnosticsCallback(newOutput.diagnostics, optimizer, srcDir); @@ -876,12 +935,22 @@ export function createQwikPlugin(optimizerOptions: OptimizerOptions = {}) { } const deps = new Set(); for (const mod of newOutput.modules) { + if (mod.segment) { + mod.segment.entry = normalizeChunkGroupName(mod.segment.entry, srcDir); + } + if (!isServer && mod.segment) { + const chunkName = mod.segment.entry; + if (chunkName) { + clientChunkNames.set(mod.segment.hash, chunkName); + } + } // TODO handle noop modules if (mod !== module) { const key = normalizePath(path.join(srcDir, mod.path)); debug(`transform(${count})`, `segment ${key}`, mod.segment!.displayName); parentIds.set(key, id); currentOutputs.set(key, [mod, id]); + setCachedSegment(key, mod.segment); deps.add(key); if (devServer) { const mod = devServer.moduleGraph.getModuleById(key); @@ -1078,9 +1147,14 @@ export const manifest = ${serverManifest ? JSON.stringify(serverManifest) : 'glo if (id) { debug('hotUpdate()', `invalidate ${id}`); clientResults.delete(id); + clientChunkNames.clear(); + clientSegments.delete(id); + clientSegments.delete(normalizePath(parseId(id).pathId)); for (const [key, [_, parentId]] of outputs) { if (parentId === id) { debug('hotUpdate()', `invalidate ${id} segment ${key}`); + clientSegments.delete(key); + clientSegments.delete(normalizePath(parseId(key).pathId)); outputs.delete(key); const segMod = environment.moduleGraph.getModuleById(key); if (segMod) { @@ -1092,7 +1166,7 @@ export const manifest = ${serverManifest ? JSON.stringify(serverManifest) : 'glo } } - const manualChunks: Rollup.ManualChunksOption = (id: string, { getModuleInfo }) => { + const manualChunks = (id: string, ctx: ChunkingContext) => { if (opts.target === 'client') { if ( // The preloader has to stay in a separate chunk if it's a client build @@ -1111,10 +1185,39 @@ export const manifest = ${serverManifest ? JSON.stringify(serverManifest) : 'glo return 'qwik-loader'; } } + return mergeRelatedSegments(id, ctx); + }; + + const codeSplitting: CodeSplittingOptions = { + includeDependenciesRecursively: false, + groups: [ + { + name: 'qwik-core', + test: /[/\\](core|qwik)[/\\](handlers|dist[/\\]core(\.prod|\.min)?)\.[cm]js$/, + }, + { + name: 'qwik-loader', + test: /[/\\](core|qwik)[/\\]dist[/\\]qwikloader\.js$/, + }, + { + name: 'qwik-preloader', + test: (id: string) => + id.endsWith('@qwik.dev/core/build') || + id === '\0vite/preload-helper.js' || + /[/\\](core|qwik)[/\\]dist[/\\]preloader\.[cm]js$/.test(id), + }, + { + name: (id: string, ctx: ChunkingContext) => { + return mergeRelatedSegments(id, ctx); + }, + }, + ], + }; - const module = getModuleInfo(id); + const mergeRelatedSegments = (id: string, ctx: ChunkingContext) => { + const module = ctx?.getModuleInfo(id); if (module) { - const segment = module.meta.segment as SegmentAnalysis | undefined; + const segment = (module.meta.segment as SegmentAnalysis | undefined) ?? getCachedSegment(id); if (segment) { // TODO: Remove useComputed$ once we don't need to eagerly load them anymore if (['qwikify$', 'useVisibleTask$', 'useComputed$'].includes(segment.ctxName)) { @@ -1133,7 +1236,6 @@ export const manifest = ${serverManifest ? JSON.stringify(serverManifest) : 'glo } } - // The rest is non-qwik code. We let rollup handle it. return null; }; @@ -1209,6 +1311,7 @@ export const manifest = ${serverManifest ? JSON.stringify(serverManifest) : 'glo configureServer, hotUpdate, manualChunks, + codeSplitting, generateManifest, }; } diff --git a/packages/qwik-vite/src/plugins/plugin.unit.ts b/packages/qwik-vite/src/plugins/plugin.unit.ts index add2eec29e6..23873bd4bc9 100644 --- a/packages/qwik-vite/src/plugins/plugin.unit.ts +++ b/packages/qwik-vite/src/plugins/plugin.unit.ts @@ -165,8 +165,7 @@ test('tsconfigFileNames, empty array fallback to default', async () => { test('input string', async () => { const plugin = await mockPlugin(); const opts = await plugin.normalizeOptions({ input: 'src/cmps/main.tsx' }); - // we don't provide input so that we don't override the vite input - assert.deepEqual(opts.input, undefined); + assert.deepEqual(opts.input, [normalizePath(resolve(cwd, 'src/cmps/main.tsx'))]); }); test('input array', async () => { @@ -174,8 +173,23 @@ test('input array', async () => { const opts = await plugin.normalizeOptions({ input: ['src/cmps/a.tsx', 'src/cmps/b.tsx'], }); - // we don't provide input so that we don't override the vite input - assert.deepEqual(opts.input, undefined); + assert.deepEqual(opts.input, [ + normalizePath(resolve(cwd, 'src/cmps/a.tsx')), + normalizePath(resolve(cwd, 'src/cmps/b.tsx')), + ]); +}); + +test('input with absolute path is not double-resolved', async () => { + const plugin = await mockPlugin(); + const absPath = normalizePath(resolve(cwd, 'src/entry.preview.tsx')); + const opts = await plugin.normalizeOptions({ input: [absPath] }); + assert.deepEqual(opts.input, [absPath]); +}); + +test('input with @ prefix is not resolved', async () => { + const plugin = await mockPlugin(); + const opts = await plugin.normalizeOptions({ input: ['@some/virtual-entry'] }); + assert.deepEqual(opts.input, ['@some/virtual-entry']); }); test('outDir', async () => { @@ -227,6 +241,188 @@ test('experimental[]', async () => { assert.deepEqual(opts.experimental, { [flag]: true } as any); }); +test('manualChunks falls back to cached segment metadata', async () => { + const segment = { + origin: 'routes/index.tsx', + name: 's_test', + entry: 'routes/index', + displayName: 'useTask$', + hash: 'test-hash', + canonicalFilename: 'q-test', + extension: 'js', + parent: null, + ctxKind: 'function', + ctxName: 'useTask$', + captures: false, + loc: [0, 0], + } as const; + + const plugin = createQwikPlugin({ + sys: { + cwd: () => process.cwd(), + env: 'node', + os: process.platform, + dynamicImport: async (path) => import(path), + strictDynamicImport: async (path) => import(path), + path: path as any, + }, + binding: { + transform_modules: async () => ({ + modules: [ + { + path: 'routes/index.tsx', + isEntry: false, + code: 'export default 1;', + map: null, + segment: null, + origPath: null, + }, + { + path: 'routes/index.tsx_s_test.js', + isEntry: false, + code: 'export const s_test = () => {};', + map: null, + segment, + origPath: null, + }, + ], + diagnostics: [], + isTypeScript: true, + isJsx: true, + }), + }, + }); + await plugin.init(); + await plugin.normalizeOptions({ + target: 'client', + buildMode: 'production', + }); + await plugin.buildStart({ + resolve: async () => null, + emitFile: () => '0', + } as any); + + const id = normalizePath(resolve(cwd, 'src', 'routes', 'index.tsx')); + const transformResult = (await plugin.transform( + { + addWatchFile: () => {}, + emitFile: () => '0', + load: async () => null, + } as any, + ` + import { component$, useTask$ } from '@qwik.dev/core'; + export default component$(() => { + useTask$(() => {}); + return
Hello
; + }); + `, + id + )) as { meta?: { qwikdeps?: string[] } }; + + const depId = transformResult.meta?.qwikdeps?.[0]; + expect(depId).toBeTruthy(); + + const withMeta = plugin.manualChunks(depId!, { + getModuleInfo: () => ({ id: depId, meta: { segment } }), + } as any); + const withoutMeta = plugin.manualChunks(depId!, { + getModuleInfo: () => ({ id: depId, meta: {} }), + } as any); + + assert.deepEqual(withoutMeta, withMeta); +}); + +test('manualChunks normalizes cached segment entry', async () => { + const segment = { + origin: 'routing.qwik.mjs', + name: 'entry_createLoaderSignal', + entry: + '../node_modules/.pnpm/@qwik.dev_router@x/node_modules/@qwik.dev/router/lib/chunks/routing.qwik.mjs_entry_createLoaderSignal', + displayName: 'createLoaderSignal', + hash: 'hash', + canonicalFilename: 'q-file', + extension: 'js', + parent: null, + ctxKind: 'function', + ctxName: 'routeLoader$', + captures: false, + loc: [0, 0], + } as const; + const plugin = createQwikPlugin({ + sys: { + cwd: () => process.cwd(), + env: 'node', + os: process.platform, + dynamicImport: async (path) => import(path), + strictDynamicImport: async (path) => import(path), + path: path as any, + }, + binding: { + transform_modules: async () => ({ + modules: [ + { + path: 'routes/index.tsx', + isEntry: false, + code: 'export default 1;', + map: null, + segment: null, + origPath: null, + }, + { + path: 'routing.qwik.mjs_entry_createLoaderSignal.js', + isEntry: false, + code: 'export const x = 1;', + map: null, + segment, + origPath: null, + }, + ], + diagnostics: [], + isTypeScript: true, + isJsx: true, + }), + }, + }); + await plugin.init(); + await plugin.normalizeOptions({ + target: 'client', + buildMode: 'production', + }); + await plugin.buildStart({ + resolve: async () => null, + emitFile: () => '0', + } as any); + + const id = normalizePath(resolve(cwd, 'src', 'routes', 'index.tsx')); + const transformResult = (await plugin.transform( + { + addWatchFile: () => {}, + emitFile: () => '0', + load: async () => null, + } as any, + ` + import { component$, useTask$ } from '@qwik.dev/core'; + export default component$(() => { + useTask$(() => {}); + return
Hello
; + }); + `, + id + )) as { meta?: { qwikdeps?: string[] } }; + + const depId = transformResult.meta?.qwikdeps?.[0]; + expect(depId).toBeTruthy(); + + const chunkName = plugin.manualChunks(depId!, { + getModuleInfo: () => ({ id: depId, meta: {} }), + } as any); + + assert.deepEqual( + chunkName, + 'node_modules/.pnpm/@qwik.dev_router@x/node_modules/@qwik.dev/router/lib/chunks/routing.qwik.mjs_entry_createLoaderSignal' + ); +}); + describe('resolveId', () => { test('qrls', async () => { const plugin = await mockPlugin(); diff --git a/packages/qwik-vite/src/plugins/rollup.ts b/packages/qwik-vite/src/plugins/rollup.ts index 4ddf5b368ce..f4a5918362a 100644 --- a/packages/qwik-vite/src/plugins/rollup.ts +++ b/packages/qwik-vite/src/plugins/rollup.ts @@ -19,6 +19,7 @@ import { } from './plugin'; import { findDepPkgJsonPath } from './utils'; import { isVirtualId } from './vite-utils'; +import type { OutputOptions } from 'rolldown'; type QwikRollupPluginApi = { getOptimizer: () => Optimizer; @@ -76,7 +77,7 @@ export function qwikRollup(qwikRollupOpts: QwikRollupPluginOptions = {}): any { }, outputOptions(rollupOutputOpts) { - return normalizeRollupOutputOptionsObject(qwikPlugin, rollupOutputOpts, false) as any; + return normalizeRollupOutputObject(qwikPlugin, rollupOutputOpts, false) as any; }, async buildStart() { @@ -84,9 +85,9 @@ export function qwikRollup(qwikRollupOpts: QwikRollupPluginOptions = {}): any { diagnostics.forEach((d) => { const id = qwikPlugin.normalizePath(optimizer.sys.path.join(srcDir, d.file)); if (d.category === 'error') { - this.error(createRollupError(id, d)); + this.error(createBundlerError(id, d)); } else { - this.warn(createRollupError(id, d)); + this.warn(createBundlerError(id, d)); } }); }); @@ -127,32 +128,70 @@ export function qwikRollup(qwikRollupOpts: QwikRollupPluginOptions = {}): any { return rollupPlugin; } -export async function normalizeRollupOutputOptions( +// `outputOptions.onlyExplicitManualChunks` is a new option in Rollup 4.52 that is not present in Rolldown yet so we need to add it manually. +type ExtendedOutputOptions = OutputOptions & { onlyExplicitManualChunks?: boolean }; + +async function normalizeOutputOptions( qwikPlugin: QwikPlugin, - rollupOutputOpts: Rollup.OutputOptions | Rollup.OutputOptions[] | undefined, + outputOpts: ExtendedOutputOptions | ExtendedOutputOptions[] | undefined, useAssetsDir: boolean, - outDir?: string -): Promise { - if (Array.isArray(rollupOutputOpts)) { + outDir: string | undefined, + normalizeObject: ( + qwikPlugin: QwikPlugin, + outputOptions: ExtendedOutputOptions | undefined, + useAssetsDir: boolean + ) => Promise +): Promise { + if (Array.isArray(outputOpts)) { // make sure at least one output is present in every case - if (!rollupOutputOpts.length) { - rollupOutputOpts.push({}); + if (!outputOpts.length) { + outputOpts.push({}); } return await Promise.all( - rollupOutputOpts.map(async (outputOptsObj) => ({ - ...(await normalizeRollupOutputOptionsObject(qwikPlugin, outputOptsObj, useAssetsDir)), + outputOpts.map(async (outputOptsObj) => ({ + ...(await normalizeObject(qwikPlugin, outputOptsObj, useAssetsDir)), dir: outDir || outputOptsObj.dir, })) ); } return { - ...(await normalizeRollupOutputOptionsObject(qwikPlugin, rollupOutputOpts, useAssetsDir)), - dir: outDir || rollupOutputOpts?.dir, + ...(await normalizeObject(qwikPlugin, outputOpts, useAssetsDir)), + dir: outDir || outputOpts?.dir, }; } +export function normalizeRollupOutputOptions( + qwikPlugin: QwikPlugin, + outputOpts: ExtendedOutputOptions | ExtendedOutputOptions[] | undefined, + useAssetsDir: boolean, + outDir?: string +) { + return normalizeOutputOptions( + qwikPlugin, + outputOpts, + useAssetsDir, + outDir, + normalizeRollupOutputObject + ); +} + +export function normalizeRolldownOutputOptions( + qwikPlugin: QwikPlugin, + outputOpts: ExtendedOutputOptions | ExtendedOutputOptions[] | undefined, + useAssetsDir: boolean, + outDir?: string +) { + return normalizeOutputOptions( + qwikPlugin, + outputOpts, + useAssetsDir, + outDir, + normalizeRolldownOutputObject + ); +} + const getChunkFileName = ( prefix: string, opts: NormalizedQwikPluginOptions, @@ -172,8 +211,13 @@ const getChunkFileName = ( // The chunk name can often be a path. We sanitize it to use dashes instead of slashes, to keep the same folder structure as without debug:true. // Besides, Rollup doesn't accept absolute or relative paths as inputs for the [name] placeholder for the same reason. - const relativePath = optimizer.sys.path.relative(optimizer.sys.cwd(), chunkInfo.name); - const sanitized = relativePath + let name = optimizer.sys.path.relative(optimizer.sys.cwd(), chunkInfo.name); + // Strip everything up to the last node_modules/ to get the meaningful package path + const lastNodeModules = name.lastIndexOf('node_modules-'); + if (lastNodeModules !== -1) { + name = name.slice(lastNodeModules + 'node_modules-'.length); + } + const sanitized = name .replace(/^(\.\.\/)+/, '') .replace(/^\/+/, '') .replace(/\//g, '-'); @@ -182,15 +226,14 @@ const getChunkFileName = ( } }; -export async function normalizeRollupOutputOptionsObject( +async function normalizeSharedOutputOptions( qwikPlugin: QwikPlugin, - rollupOutputOptsObj: Rollup.OutputOptions | undefined, + outputOptions: ExtendedOutputOptions | undefined, useAssetsDir: boolean -): Promise { - const outputOpts: Rollup.OutputOptions = { ...rollupOutputOptsObj }; +): Promise { + const outputOpts = { ...outputOptions }; const opts = qwikPlugin.getOptions(); const optimizer = qwikPlugin.getOptimizer(); - const manualChunks = qwikPlugin.manualChunks; if (!outputOpts.assetFileNames) { // SEO likes readable asset names @@ -211,18 +254,6 @@ export async function normalizeRollupOutputOptionsObject( // client should always be es outputOpts.format = 'es'; - const prevManualChunks = outputOpts.manualChunks; - if (prevManualChunks && typeof prevManualChunks !== 'function') { - throw new Error('manualChunks must be a function'); - } - // Casts bridge Rollup vs Rolldown ManualChunkMeta type differences - type ManualChunkFn = (id: string, meta: unknown) => string | void | null; - - // We need custom chunking for the client build - outputOpts.manualChunks = prevManualChunks - ? (id, meta) => - (prevManualChunks as ManualChunkFn)(id, meta) || (manualChunks as ManualChunkFn)(id, meta) - : (manualChunks as Rollup.OutputOptions['manualChunks']); } else { // server production output, try to be similar to client if (!outputOpts.chunkFileNames) { @@ -238,10 +269,52 @@ export async function normalizeRollupOutputOptionsObject( outputOpts.exports = 'auto'; } + return outputOpts; +} + +/* + * The Vite 8 types override the Rollup types to use the Rolldown ones. + * This is why manualChunks appears as deprecated. + * Using the Rollup types directly leads to type errors in normalizeSharedOutputOptions because the functions are about the same but the types signatures have been changed in Rolldown. + */ + +export async function normalizeRollupOutputObject( + qwikPlugin: QwikPlugin, + outputOptions: ExtendedOutputOptions | undefined, + useAssetsDir: boolean +): Promise { + const outputOpts: ExtendedOutputOptions = await normalizeSharedOutputOptions( + qwikPlugin, + outputOptions, + useAssetsDir + ); + const opts = qwikPlugin.getOptions(); + const optimizer = qwikPlugin.getOptimizer(); + const internalManualChunks = qwikPlugin.manualChunks; + + if (opts.target === 'client') { + const userManualChunks = outputOptions?.manualChunks; + if (userManualChunks && typeof userManualChunks !== 'function') { + throw new Error( + 'manualChunks must be a function for Qwik to group qrl segments back together' + ); + } + + // We need custom chunking for the client build + outputOpts.manualChunks = userManualChunks + ? (id, meta) => userManualChunks(id, meta) || internalManualChunks(id, meta) + : internalManualChunks; + } + /** * Transitive imports must not be hoisted. Otherwise, the bundle-graph static imports will be * incorrect; leading to over-preloading. */ + if (outputOpts.hoistTransitiveImports) { + throw new Error( + 'hoistTransitiveImports must be false for Qwik to ensure the bundle graph is correct for proper preloading. Please set it to false in your Rollup output configuration.' + ); + } outputOpts.hoistTransitiveImports = false; // V2 official release TODO: remove below checks and just keep `outputOpts.onlyExplicitManualChunks = true;` @@ -277,7 +350,44 @@ export async function normalizeRollupOutputOptionsObject( return outputOpts; } -export function createRollupError(id: string, diagnostic: Diagnostic) { +export async function normalizeRolldownOutputObject( + qwikPlugin: QwikPlugin, + outputOptions: ExtendedOutputOptions | undefined, + useAssetsDir: boolean +): Promise { + const outputOpts = await normalizeSharedOutputOptions(qwikPlugin, outputOptions, useAssetsDir); + const opts = qwikPlugin.getOptions(); + const internalCodeSplitting = qwikPlugin.codeSplitting; + + if (opts.target === 'client') { + // User config: only object form is merged (boolean is never passed through) + const userCodeSplitting = outputOptions?.codeSplitting; + if (typeof userCodeSplitting === 'boolean') { + throw new Error( + "codeSplitting must be a `codeSplitting: { groups: [...] }` object for Qwik's chunking and preloading to work without causing network waterfalls issues." + ); + } + + outputOpts.codeSplitting = { + includeDependenciesRecursively: internalCodeSplitting.includeDependenciesRecursively, + groups: [...(internalCodeSplitting.groups ?? []), ...(userCodeSplitting?.groups ?? [])], + }; + } else if (internalCodeSplitting) { + outputOpts.codeSplitting = internalCodeSplitting; + } + + const userComments = outputOptions?.comments; + if (userComments) { + console.warn( + `⚠️ You enabled the "comments" option in your Rollup output configuration. This can lead to larger bundle sizes and slower load times. Disable this option for optimal performance.` + ); + } + outputOpts.comments = userComments ?? false; + + return outputOpts; +} + +export function createBundlerError(id: string, diagnostic: Diagnostic) { const loc = diagnostic.highlights?.[0]; const err: Rollup.RollupError = Object.assign(new Error(diagnostic.message), { id, diff --git a/packages/qwik-vite/src/plugins/vite.ts b/packages/qwik-vite/src/plugins/vite.ts index 1382c21f2b8..2333899a83b 100644 --- a/packages/qwik-vite/src/plugins/vite.ts +++ b/packages/qwik-vite/src/plugins/vite.ts @@ -1,6 +1,4 @@ -import type { ResolvedId } from 'rollup'; import type { - BuildOptions, ConfigEnv, EnvironmentOptions, UserConfig, @@ -35,8 +33,14 @@ import { type QwikPluginDevTools, type QwikPluginOptions, } from './plugin'; -import { createRollupError, normalizeRollupOutputOptions } from './rollup'; +import { + createBundlerError, + normalizeRolldownOutputOptions, + normalizeRollupOutputOptions, +} from './rollup'; import { isVirtualId } from './vite-utils'; +import type { BuildOptions, ResolvedId } from 'rolldown'; +import type { RollupOptions } from 'rollup'; const DEDUPE = [ QWIK_CORE_ID, @@ -106,7 +110,6 @@ export function qwikVite(qwikViteOpts: QwikVitePluginOptions = {}): any { let viteAssetsDir: string | undefined; let srcDir: string | null = null; let rootDir: string | null = null; - let ssrOutDir: string | null = null; let buildMode: QwikBuildMode = 'development'; let viteServer: ViteDevServer | undefined; @@ -147,6 +150,8 @@ export function qwikVite(qwikViteOpts: QwikVitePluginOptions = {}): any { async config(viteConfig, viteEnv) { await qwikPlugin.init(); + const bundlerOptionsKey = this.meta.rolldownVersion ? 'rolldownOptions' : 'rollupOptions'; + let target: QwikBuildTarget; if (viteEnv.mode === 'lib') { target = 'lib'; @@ -191,7 +196,7 @@ export function qwikVite(qwikViteOpts: QwikVitePluginOptions = {}): any { : qwikViteOpts.ssr?.input : undefined; const clientInput = target === 'client' ? qwikViteOpts.client?.input : undefined; - let input = viteConfig.build?.rollupOptions?.input || clientInput || ssrInput; + let input = viteConfig.build?.[bundlerOptionsKey]?.input || clientInput || ssrInput; if (input && typeof input === 'string') { input = [input]; } @@ -252,6 +257,26 @@ export function qwikVite(qwikViteOpts: QwikVitePluginOptions = {}): any { const qDev = viteConfig?.define?.[qDevKey] ?? isDevelopment; const qInspector = viteConfig?.define?.[qInspectorKey] ?? isDevelopment; + const sharedBuildOptions: BuildOptions & RollupOptions = { + external: ['node:async_hooks'], + input, + }; + const rolldownBuildOptions: BuildOptions = { + ...sharedBuildOptions, + experimental: { + attachDebugInfo: + viteConfig.build?.rolldownOptions?.experimental?.attachDebugInfo ?? 'none', + }, + }; + const rollupBuildOptions: RollupOptions = { + ...sharedBuildOptions, + /** + * This is a workaround to have predictable chunk hashes between builds. It doesn't seem to + * impact the build time. + * https://github.com/QwikDev/qwik/issues/7226#issuecomment-2647122505 + */ + maxParallelFileOps: 1, + }; const updatedViteConfig: UserConfig = { // Duplicated in configEnvironment to support legacy vite build --ssr compatibility ssr: { @@ -301,12 +326,9 @@ export function qwikVite(qwikViteOpts: QwikVitePluginOptions = {}): any { dynamicImportVarsOptions: { exclude: [/./], }, - rollupOptions: { - external: ['node:async_hooks'], - // This will amend the existing input - input, - // temporary fix for rolldown-vite types - } as BuildOptions['rollupOptions'], + [bundlerOptionsKey]: this.meta.rolldownVersion + ? rolldownBuildOptions + : rollupBuildOptions, }, define: { [qDevKey]: qDev, @@ -315,21 +337,39 @@ export function qwikVite(qwikViteOpts: QwikVitePluginOptions = {}): any { }, }; + if (this.meta.rolldownVersion) { + updatedViteConfig.oxc = + viteCommand === 'serve' + ? false + : { + jsx: { + runtime: 'automatic', + }, + }; + } else { + updatedViteConfig.esbuild = + viteCommand === 'serve' + ? false + : { + logLevel: 'error', + jsx: 'automatic', + }; + } + if (!qwikViteOpts.csr) { updatedViteConfig.build!.cssCodeSplit = false; if (opts.outDir) { updatedViteConfig.build!.outDir = opts.outDir; } - const origOnwarn = updatedViteConfig.build!.rollupOptions?.onwarn; - updatedViteConfig.build!.rollupOptions = { - ...updatedViteConfig.build!.rollupOptions, - output: await normalizeRollupOutputOptions( - qwikPlugin, - viteConfig.build?.rollupOptions?.output, - useAssetsDir, - opts.outDir - ), - preserveEntrySignatures: 'exports-only', + const origOnwarn = updatedViteConfig.build![bundlerOptionsKey]?.onwarn; + updatedViteConfig.build![bundlerOptionsKey] = { + ...updatedViteConfig.build![bundlerOptionsKey], + output: await ( + this.meta.rolldownVersion + ? normalizeRolldownOutputOptions + : normalizeRollupOutputOptions + )(qwikPlugin, viteConfig.build?.[bundlerOptionsKey]?.output, useAssetsDir, opts.outDir), + preserveEntrySignatures: 'allow-extension', onwarn: (warning, warn) => { if (warning.plugin === 'typescript' && warning.message.includes('outputToFilesystem')) { return; @@ -352,7 +392,7 @@ export function qwikVite(qwikViteOpts: QwikVitePluginOptions = {}): any { } else if (opts.target === 'lib') { // Library Build updatedViteConfig.build!.minify = false; - updatedViteConfig.build!.rollupOptions.external = [ + updatedViteConfig.build![bundlerOptionsKey]!.external = [ QWIK_CORE_ID, QWIK_CORE_INTERNAL_ID, QWIK_CORE_SERVER, @@ -431,9 +471,9 @@ export function qwikVite(qwikViteOpts: QwikVitePluginOptions = {}): any { diagnostics.forEach((d) => { const id = qwikPlugin.normalizePath(optimizer.sys.path.join(srcDir, d.file)); if (d.category === 'error') { - this.error(createRollupError(id, d)); + this.error(createBundlerError(id, d)); } else { - this.warn(createRollupError(id, d)); + this.warn(createBundlerError(id, d)); } }); }); diff --git a/packages/qwik-vite/src/plugins/vite.unit.ts b/packages/qwik-vite/src/plugins/vite.unit.ts index d117f44ed29..4e953520fd4 100644 --- a/packages/qwik-vite/src/plugins/vite.unit.ts +++ b/packages/qwik-vite/src/plugins/vite.unit.ts @@ -58,691 +58,787 @@ const excludeDeps = [ const getPlugin = (opts: QwikVitePluginOptions | undefined) => (qwikVite(opts) as any)[0] as QwikVitePlugin; -// undefined for Vite 5 - 6, an object for Vite 7 -const configHookPluginContext = undefined as any; - -test('command: serve, mode: development', async () => { - const initOpts = { - optimizerOptions: mockOptimizerOptions(), - }; - const plugin = getPlugin(initOpts); - const c = (await plugin.config.call( - configHookPluginContext, - {}, - { command: 'serve', mode: 'development' } - ))!; - const opts = await plugin.api?.getOptions(); - const build = c.build!; - const rollupOptions = build!.rollupOptions!; - const outputOptions = rollupOptions.output as Rollup.OutputOptions; - const chunkFileNames = outputOptions.chunkFileNames as ( - chunkInfo: Rollup.PreRenderedChunk - ) => string; - const entryFileNames = outputOptions.entryFileNames as ( - chunkInfo: Rollup.PreRenderedChunk - ) => string; - - assert.deepEqual(opts.target, 'client'); - assert.deepEqual(opts.buildMode, 'development'); - assert.deepEqual(opts.entryStrategy, { type: 'segment' }); - assert.deepEqual(opts.debug, false); - - assert.deepEqual(build.outDir, normalizePath(resolve(cwd, 'dist'))); - assert.deepEqual(rollupOptions.input, [normalizePath(resolve(cwd, 'src', 'root'))]); - - assert.deepEqual(outputOptions.assetFileNames, 'assets/[hash]-[name].[ext]'); - assert.deepEqual(chunkFileNames(chunkInfoMocks[0]), `build/chunk.tsx.js`); - assert.deepEqual(entryFileNames(chunkInfoMocks[0]), `build/chunk.tsx.js`); - const relDev = path.relative(cwd, chunkInfoMocks[1].name); - const sanitizedDev = relDev - .replace(/^\(\.\.\/\)+/, '') - .replace(/^\/+/, '') - .replace(/\//g, '-'); - const expectedDevChunk = `build/${sanitizedDev}.js`; - assert.deepEqual(chunkFileNames(chunkInfoMocks[1]), expectedDevChunk); - assert.deepEqual(entryFileNames(chunkInfoMocks[1]), expectedDevChunk); - assert.deepEqual(outputOptions.format, 'es'); - - assert.deepEqual(build.dynamicImportVarsOptions?.exclude, [/./]); - assert.deepEqual(build.ssr, undefined); - assert.deepEqual(c.optimizeDeps?.include, includeDeps); - assert.deepEqual(c.optimizeDeps?.exclude, excludeDeps); - - assert.deepEqual(c.ssr?.noExternal, noExternal); -}); - -test('command: serve, mode: production', async () => { - const initOpts = { - optimizerOptions: mockOptimizerOptions(), - }; - const plugin = getPlugin(initOpts); - const c = (await plugin.config.call( - configHookPluginContext, - {}, - { command: 'serve', mode: 'production' } - ))!; - const opts = await plugin.api?.getOptions(); - const build = c.build!; - const rollupOptions = build!.rollupOptions!; - const outputOptions = rollupOptions.output as Rollup.OutputOptions; - - assert.deepEqual(opts.target, 'client'); - assert.deepEqual(opts.buildMode, 'production'); - assert.deepEqual(opts.entryStrategy, { type: 'segment' }); - assert.deepEqual(opts.debug, false); - assert.deepEqual(opts.resolveQwikBuild, true); - - assert.deepEqual(build.outDir, normalizePath(resolve(cwd, 'dist'))); - assert.deepEqual(build.emptyOutDir, undefined); - assert.deepEqual(rollupOptions.input, [normalizePath(resolve(cwd, 'src', 'root'))]); - assert.deepEqual(outputOptions.assetFileNames, 'assets/[hash]-[name].[ext]'); - assert.deepEqual(outputOptions.chunkFileNames, 'build/q-[hash].js'); - assert.deepEqual(outputOptions.entryFileNames, 'build/q-[hash].js'); - assert.deepEqual(outputOptions.format, 'es'); - - assert.deepEqual(build.dynamicImportVarsOptions?.exclude, [/./]); - assert.deepEqual(build.ssr, undefined); - assert.deepEqual(c.optimizeDeps?.include, includeDeps); - assert.deepEqual(c.optimizeDeps?.exclude, excludeDeps); - assert.deepEqual(c.ssr?.noExternal, noExternal); -}); - -test('command: build, mode: development', async () => { - const initOpts = { - optimizerOptions: mockOptimizerOptions(), - }; - const plugin = getPlugin(initOpts); - const c = (await plugin.config.call( - configHookPluginContext, - {}, - { command: 'build', mode: 'development' } - ))!; - const opts = await plugin.api?.getOptions(); - const build = c.build!; - const rollupOptions = build!.rollupOptions!; - const outputOptions = rollupOptions.output as Rollup.OutputOptions; - const chunkFileNames = outputOptions.chunkFileNames as ( - chunkInfo: Rollup.PreRenderedChunk - ) => string; - const entryFileNames = outputOptions.entryFileNames as ( - chunkInfo: Rollup.PreRenderedChunk - ) => string; - - assert.deepEqual(opts.target, 'client'); - assert.deepEqual(opts.buildMode, 'development'); - assert.deepEqual(opts.entryStrategy, { type: 'segment' }); - assert.deepEqual(opts.debug, false); - assert.deepEqual(opts.resolveQwikBuild, true); - - assert.deepEqual(plugin.enforce, 'pre'); - assert.deepEqual(build.outDir, normalizePath(resolve(cwd, 'dist'))); - assert.deepEqual(build.emptyOutDir, undefined); - assert.deepEqual((rollupOptions.input as string[]).map(normalizePath), [ - normalizePath(resolve(cwd, 'src', 'root')), - ]); - - assert.deepEqual(outputOptions.assetFileNames, 'assets/[hash]-[name].[ext]'); - assert.deepEqual(chunkFileNames(chunkInfoMocks[0]), `build/chunk.tsx.js`); - assert.deepEqual(entryFileNames(chunkInfoMocks[0]), `build/chunk.tsx.js`); - const relBuildDev = path.relative(cwd, chunkInfoMocks[1].name); - const sanitizedBuildDev = relBuildDev - .replace(/^\(\.\.\/\)+/, '') - .replace(/^\/+/, '') - .replace(/\//g, '-'); - const expectedBuildDevChunk = `build/${sanitizedBuildDev}.js`; - assert.deepEqual(chunkFileNames(chunkInfoMocks[1]), expectedBuildDevChunk); - assert.deepEqual(entryFileNames(chunkInfoMocks[1]), expectedBuildDevChunk); - - assert.deepEqual(build.dynamicImportVarsOptions?.exclude, [/./]); - assert.deepEqual(build.ssr, undefined); - assert.deepEqual(c.optimizeDeps?.include, includeDeps); - assert.deepEqual(c.optimizeDeps?.exclude, excludeDeps); - assert.deepEqual(c.ssr?.noExternal, noExternal); -}); - -test('command: build, mode: production', async () => { - const initOpts = { - optimizerOptions: mockOptimizerOptions(), - }; - const plugin = getPlugin(initOpts); - const c = (await plugin.config.call( - configHookPluginContext, - {}, - { command: 'build', mode: 'production' } - ))!; - const opts = await plugin.api?.getOptions(); - const build = c.build!; - const rollupOptions = build!.rollupOptions!; - const outputOptions = rollupOptions.output as Rollup.OutputOptions; - - assert.deepEqual(opts.target, 'client'); - assert.deepEqual(opts.buildMode, 'production'); - assert.deepEqual(opts.entryStrategy, { type: 'smart' }); - assert.deepEqual(opts.debug, false); - assert.deepEqual(opts.resolveQwikBuild, true); - - assert.deepEqual(plugin.enforce, 'pre'); - assert.deepEqual(build.outDir, normalizePath(resolve(cwd, 'dist'))); - assert.deepEqual(build.emptyOutDir, undefined); - assert.deepEqual((rollupOptions.input as string[]).map(normalizePath), [ - normalizePath(resolve(cwd, 'src', 'root')), - ]); - - assert.deepEqual(outputOptions.assetFileNames, 'assets/[hash]-[name].[ext]'); - assert.deepEqual(outputOptions.chunkFileNames, 'build/q-[hash].js'); - assert.deepEqual(outputOptions.entryFileNames, 'build/q-[hash].js'); - - assert.deepEqual(build.outDir, normalizePath(resolve(cwd, 'dist'))); - assert.deepEqual(build.dynamicImportVarsOptions?.exclude, [/./]); - assert.deepEqual(build.ssr, undefined); - assert.deepEqual(c.optimizeDeps?.include, includeDeps); - assert.deepEqual(c.optimizeDeps?.exclude, excludeDeps); - assert.deepEqual(c.ssr?.noExternal, noExternal); -}); - -test('command: build, --mode production (client)', async () => { - const initOpts = { - optimizerOptions: mockOptimizerOptions(), - client: { - devInput: resolve(cwd, 'src', 'dev.entry.tsx'), - outDir: resolve(cwd, 'client-dist'), - }, - }; - - const plugin = getPlugin(initOpts); - const c: any = (await plugin.config.call( - configHookPluginContext, - {}, - { command: 'build', mode: 'production' } - ))!; - const opts = await plugin.api?.getOptions(); - const build = c.build!; - const rollupOptions = build!.rollupOptions!; - assert.deepEqual(opts.resolveQwikBuild, true); - - assert.deepEqual(opts.target, 'client'); - assert.deepEqual(opts.buildMode, 'production'); - assert.deepEqual((rollupOptions.input as string[]).map(normalizePath), [ - normalizePath(resolve(cwd, 'src', 'root')), - ]); - assert.deepEqual(build.outDir, normalizePath(resolve(cwd, 'client-dist'))); - assert.deepEqual(build.emptyOutDir, undefined); -}); - -test('command: build, --ssr entry.server.tsx', async () => { - const initOpts = { - optimizerOptions: mockOptimizerOptions(), - }; - const plugin = getPlugin(initOpts); - const c = (await plugin.config.call( - configHookPluginContext, - { build: { ssr: resolve(cwd, 'src', 'entry.server.tsx') } }, - { command: 'build', mode: '' } - ))!; - const opts = await plugin.api?.getOptions(); - const build = c.build!; - const rollupOptions = build!.rollupOptions!; - const outputOptions = rollupOptions.output as Rollup.OutputOptions; - - assert.deepEqual(opts.target, 'ssr'); - assert.deepEqual(opts.buildMode, 'development'); - assert.deepEqual(opts.entryStrategy, { type: 'hoist' }); - assert.deepEqual(opts.debug, false); - assert.deepEqual(opts.resolveQwikBuild, true); - - assert.deepEqual(plugin.enforce, 'pre'); - assert.deepEqual(build.outDir, normalizePath(resolve(cwd, 'server'))); - assert.deepEqual(build.emptyOutDir, undefined); - assert.deepEqual((rollupOptions.input as string[]).map(normalizePath), [ - normalizePath(resolve(cwd, 'src', 'entry.server.tsx')), - ]); - - assert.deepEqual(outputOptions.assetFileNames, 'assets/[hash]-[name].[ext]'); - assert.isFunction(outputOptions.chunkFileNames); - assert.deepEqual((outputOptions.chunkFileNames as any)({ name: 'hello' }), 'build/hello.js'); - assert.deepEqual(outputOptions.entryFileNames, undefined); - - assert.deepEqual(build.outDir, normalizePath(resolve(cwd, 'server'))); - assert.deepEqual(build.dynamicImportVarsOptions?.exclude, [/./]); - assert.deepEqual(build.ssr, true); - assert.deepEqual(c.optimizeDeps?.include, includeDeps); - assert.deepEqual(c.optimizeDeps?.exclude, excludeDeps); - assert.deepEqual(c.publicDir, false); -}); - -test('command: serve, --mode ssr', async () => { - const initOpts = { - optimizerOptions: mockOptimizerOptions(), - ssr: { - input: resolve(cwd, 'src', 'renderz.tsx'), - outDir: resolve(cwd, 'ssr-dist'), - }, - }; - const plugin = getPlugin(initOpts); - const c: any = (await plugin.config.call( - configHookPluginContext, - { build: { emptyOutDir: true } }, - { command: 'serve', mode: 'ssr' } - ))!; - const opts = await plugin.api?.getOptions(); - const build = c.build!; - const rollupOptions = build!.rollupOptions!; - - assert.deepEqual(opts.target, 'ssr'); - assert.deepEqual(opts.buildMode, 'development'); - assert.deepEqual(build.minify, undefined); - assert.deepEqual(build.ssr, undefined); - assert.deepEqual((rollupOptions.input as string[]).map(normalizePath), [ - normalizePath(resolve(cwd, 'src', 'renderz.tsx')), - ]); - assert.deepEqual(c.build.outDir, normalizePath(resolve(cwd, 'ssr-dist'))); - assert.deepEqual(build.emptyOutDir, undefined); - assert.deepEqual(c.publicDir, undefined); - assert.deepEqual(opts.resolveQwikBuild, true); -}); - -test('command: serve, --mode ssr with build.assetsDir', async () => { - const initOpts = { - optimizerOptions: mockOptimizerOptions(), - ssr: { - input: resolve(cwd, 'src', 'renderz.tsx'), - outDir: resolve(cwd, 'ssr-dist'), - }, - }; - const plugin = getPlugin(initOpts); - const c: any = (await plugin.config.call( - configHookPluginContext, - { build: { emptyOutDir: true, assetsDir: 'my-assets-dir' } }, - { command: 'serve', mode: 'ssr' } - ))!; - const opts = plugin.api?.getOptions(); - const build = c.build!; - const rollupOptions = build!.rollupOptions!; - - assert.deepEqual(opts.target, 'ssr'); - assert.deepEqual(opts.buildMode, 'development'); - assert.deepEqual(build.minify, undefined); - assert.deepEqual(build.ssr, undefined); - assert.deepEqual((rollupOptions.input as string[]).map(normalizePath), [ - normalizePath(resolve(cwd, 'src', 'renderz.tsx')), - ]); - assert.deepEqual(c.build.outDir, normalizePath(resolve(cwd, 'ssr-dist'))); - assert.deepEqual(build.emptyOutDir, undefined); - assert.deepEqual(c.publicDir, undefined); - assert.deepEqual(opts.resolveQwikBuild, true); -}); - -test('should use the dist/ fallback with client target', async () => { - const initOpts = { - optimizerOptions: mockOptimizerOptions(), - }; - const plugin = getPlugin(initOpts); - const c: any = (await plugin.config.call( - configHookPluginContext, - { build: { assetsDir: 'my-assets-dir/' } }, - { command: 'serve', mode: 'development' } - ))!; - - assert.equal(c.build.outDir, normalizePath(resolve(cwd, `dist`))); -}); - -test('should use build.outDir config with client target', async () => { - const initOpts = { - optimizerOptions: mockOptimizerOptions(), - }; - const plugin = getPlugin(initOpts); - const c: any = (await plugin.config.call( - configHookPluginContext, - { build: { outDir: 'my-dist/', assetsDir: 'my-assets-dir' } }, - { command: 'serve', mode: 'development' } - ))!; - - assert.equal(c.build.outDir, normalizePath(resolve(cwd, `my-dist`))); -}); - -test('should use build.outDir config when assetsDir is _astro', async () => { - const initOpts = { - optimizerOptions: mockOptimizerOptions(), - }; - - const plugin = getPlugin(initOpts); - - // Astro sets a build.assetsDir of _astro, but we don't want to change that - const c: any = (await plugin.config.call( - configHookPluginContext, - { build: { assetsDir: '_astro' } }, - { command: 'serve', mode: 'development' } - ))!; - - assert.equal(c.build.outDir, normalizePath(resolve(cwd, `dist/`))); -}); - -test('command: build, mode: production (deno)', async () => { - const initOpts = { - optimizerOptions: mockOptimizerOptions('deno'), - }; - const plugin = getPlugin(initOpts); - const c = (await plugin.config.call( - configHookPluginContext, - {}, - { command: 'build', mode: 'production' } - ))!; - const opts = await plugin.api?.getOptions(); - - assert.deepEqual(opts.target, 'client'); - assert.deepEqual(opts.buildMode, 'production'); - assert.deepEqual(opts.resolveQwikBuild, true); - - // Deno should produce the same config shape as Node - const build = c.build!; - assert.deepEqual(build.outDir, normalizePath(resolve(cwd, 'dist'))); - assert.deepEqual(build.dynamicImportVarsOptions?.exclude, [/./]); - assert.deepEqual(build.ssr, undefined); -}); - -test('command: build, --ssr entry.server.tsx (deno)', async () => { - const initOpts = { - optimizerOptions: mockOptimizerOptions('deno'), - }; - const plugin = getPlugin(initOpts); - const c = (await plugin.config.call( - configHookPluginContext, - { build: { ssr: resolve(cwd, 'src', 'entry.server.tsx') } }, - { command: 'build', mode: '' } - ))!; - const opts = await plugin.api?.getOptions(); - - assert.deepEqual(opts.target, 'ssr'); - assert.deepEqual(opts.buildMode, 'development'); - assert.deepEqual(opts.entryStrategy, { type: 'hoist' }); - - const build = c.build!; - assert.deepEqual(build.outDir, normalizePath(resolve(cwd, 'server'))); - assert.deepEqual(build.ssr, true); - assert.deepEqual(c.publicDir, false); -}); - -test('command: build, --mode lib', async () => { - const initOpts = { - optimizerOptions: mockOptimizerOptions(), - }; - const plugin = getPlugin(initOpts); - const c: any = (await plugin.config.call( - configHookPluginContext, - { - build: { - lib: { - entry: './src/index.ts', - formats: ['es', 'cjs'], - }, +const bundlerMatrix = [ + { + name: 'rollup', + configHookPluginContext: { + meta: { + rollupVersion: '4.0.0', }, - }, - { command: 'build', mode: 'lib' } - ))!; - const opts = await plugin.api?.getOptions(); - const build = c.build!; - const rollupOptions = build!.rollupOptions!; - const outputOptions = rollupOptions.output as Rollup.OutputOptions; - - assert.deepEqual(opts.target, 'lib'); - assert.deepEqual(opts.buildMode, 'development'); - assert.deepEqual(build.minify, false); - assert.deepEqual(build.ssr, undefined); - assert.deepEqual(rollupOptions.input, undefined); - - assert.deepEqual(outputOptions.assetFileNames, 'assets/[hash]-[name].[ext]'); - assert.isFunction(outputOptions.chunkFileNames); - assert.deepEqual((outputOptions.chunkFileNames as any)({ name: 'hello' }), 'build/hello.js'); - - assert.deepEqual(c.build.outDir, normalizePath(resolve(cwd, 'lib'))); - assert.deepEqual(build.emptyOutDir, undefined); - assert.deepEqual(opts.resolveQwikBuild, true); -}); + } as any, + bundlerOptionsKey: 'rollupOptions' as const, + }, + { + name: 'rolldown', + configHookPluginContext: { + meta: { + rollupVersion: '4.0.0', + rolldownVersion: '1.0.0', + }, + } as any, + bundlerOptionsKey: 'rolldownOptions' as const, + }, +]; -test('command: build, --mode lib with multiple outputs', async () => { - const initOpts = { - optimizerOptions: mockOptimizerOptions(), - }; - const plugin = getPlugin(initOpts); - const c: any = (await plugin.config.call( - configHookPluginContext, - { - build: { - lib: { - entry: './src/index.ts', - }, - rollupOptions: { - output: [ - { - format: 'es', - entryFileNames: 'index.esm.js', - }, - { - format: 'es', - entryFileNames: 'index.mjs', - }, - { - format: 'cjs', - entryFileNames: 'index.cjs.js', - }, - { - format: 'cjs', - entryFileNames: 'index.cjs', +type BundlerOptionsKey = (typeof bundlerMatrix)[number]['bundlerOptionsKey']; + +const getBundlerOptions = (build: any, bundlerOptionsKey: BundlerOptionsKey) => { + const bundlerOptions = build[bundlerOptionsKey]; + assert.ok(bundlerOptions, `Missing ${bundlerOptionsKey}`); + if (bundlerOptionsKey === 'rolldownOptions') { + assert.equal(build.rollupOptions, undefined); + } else { + assert.equal(build.rolldownOptions, undefined); + } + return bundlerOptions; +}; + +const expectTransformEngine = ( + c: any, + bundlerOptionsKey: BundlerOptionsKey, + command: 'serve' | 'build' +) => { + if (bundlerOptionsKey === 'rolldownOptions') { + assert.deepEqual( + c.oxc, + command === 'serve' + ? false + : { + jsx: { + runtime: 'automatic', }, - ], - }, - }, - }, - { command: 'build', mode: 'lib' } - ))!; - const opts = await plugin.api?.getOptions(); - const build = c.build!; - const rollupOptions = build!.rollupOptions!; - const outputOptions = rollupOptions.output as Rollup.OutputOptions[]; - - assert.deepEqual(opts.target, 'lib'); - assert.deepEqual(opts.buildMode, 'development'); - assert.deepEqual(build.minify, false); - assert.deepEqual(build.ssr, undefined); - assert.deepEqual(rollupOptions.input, undefined); - - assert.ok(Array.isArray(outputOptions)); - assert.lengthOf(outputOptions, 4); - - outputOptions.forEach((outputOptionsObj) => { - assert.deepEqual(outputOptionsObj.assetFileNames, 'assets/[hash]-[name].[ext]'); - assert.isFunction(outputOptionsObj.chunkFileNames); - assert.deepEqual((outputOptionsObj.chunkFileNames as any)({ name: 'hello' }), 'build/hello.js'); + } + ); + assert.equal(c.esbuild, undefined); + } else { + assert.deepEqual( + c.esbuild, + command === 'serve' + ? false + : { + logLevel: 'error', + jsx: 'automatic', + } + ); + assert.equal(c.oxc, undefined); + } +}; + +describe.each(bundlerMatrix)('$name', ({ configHookPluginContext, bundlerOptionsKey }) => { + test('command: serve, mode: development', async () => { + const initOpts = { + optimizerOptions: mockOptimizerOptions(), + }; + const plugin = getPlugin(initOpts); + const c = (await plugin.config.call( + configHookPluginContext, + {}, + { command: 'serve', mode: 'development' } + ))!; + const opts = await plugin.api?.getOptions(); + const build = c.build!; + const bundlerOptions = getBundlerOptions(build, bundlerOptionsKey); + const outputOptions = bundlerOptions.output as Rollup.OutputOptions; + const chunkFileNames = outputOptions.chunkFileNames as ( + chunkInfo: Rollup.PreRenderedChunk + ) => string; + const entryFileNames = outputOptions.entryFileNames as ( + chunkInfo: Rollup.PreRenderedChunk + ) => string; + + assert.deepEqual(opts.target, 'client'); + assert.deepEqual(opts.buildMode, 'development'); + assert.deepEqual(opts.entryStrategy, { type: 'segment' }); + assert.deepEqual(opts.debug, false); + + assert.deepEqual(build.outDir, normalizePath(resolve(cwd, 'dist'))); + assert.deepEqual(bundlerOptions.input, [normalizePath(resolve(cwd, 'src', 'root'))]); + + assert.deepEqual(outputOptions.assetFileNames, 'assets/[hash]-[name].[ext]'); + assert.deepEqual(chunkFileNames(chunkInfoMocks[0]), `build/chunk.tsx.js`); + assert.deepEqual(entryFileNames(chunkInfoMocks[0]), `build/chunk.tsx.js`); + const relDev = path.relative(cwd, chunkInfoMocks[1].name); + const sanitizedDev = relDev + .replace(/^\(\.\.\/\)+/, '') + .replace(/^\/+/, '') + .replace(/\//g, '-'); + const expectedDevChunk = `build/${sanitizedDev}.js`; + assert.deepEqual(chunkFileNames(chunkInfoMocks[1]), expectedDevChunk); + assert.deepEqual(entryFileNames(chunkInfoMocks[1]), expectedDevChunk); + assert.deepEqual(outputOptions.format, 'es'); + + assert.deepEqual(build.dynamicImportVarsOptions?.exclude, [/./]); + assert.deepEqual(build.ssr, undefined); + assert.deepEqual(c.optimizeDeps?.include, includeDeps); + assert.deepEqual(c.optimizeDeps?.exclude, excludeDeps); + + expectTransformEngine(c, bundlerOptionsKey, 'serve'); + assert.deepEqual(c.ssr, { + noExternal, + }); }); - assert.deepEqual(c.build.outDir, normalizePath(resolve(cwd, 'lib'))); - assert.deepEqual(build.emptyOutDir, undefined); - assert.deepEqual(opts.resolveQwikBuild, true); -}); + test('command: serve, mode: production', async () => { + const initOpts = { + optimizerOptions: mockOptimizerOptions(), + }; + const plugin = getPlugin(initOpts); + const c = (await plugin.config.call( + configHookPluginContext, + {}, + { command: 'serve', mode: 'production' } + ))!; + const opts = await plugin.api?.getOptions(); + const build = c.build!; + const bundlerOptions = getBundlerOptions(build, bundlerOptionsKey); + const outputOptions = bundlerOptions.output as Rollup.OutputOptions; + + assert.deepEqual(opts.target, 'client'); + assert.deepEqual(opts.buildMode, 'production'); + assert.deepEqual(opts.entryStrategy, { type: 'segment' }); + assert.deepEqual(opts.debug, false); + assert.deepEqual(opts.resolveQwikBuild, true); + + assert.deepEqual(build.outDir, normalizePath(resolve(cwd, 'dist'))); + assert.deepEqual(build.emptyOutDir, undefined); + assert.deepEqual(bundlerOptions.input, [normalizePath(resolve(cwd, 'src', 'root'))]); + assert.deepEqual(outputOptions.assetFileNames, 'assets/[hash]-[name].[ext]'); + assert.deepEqual(outputOptions.chunkFileNames, 'build/q-[hash].js'); + assert.deepEqual(outputOptions.entryFileNames, 'build/q-[hash].js'); + assert.deepEqual(outputOptions.format, 'es'); + + assert.deepEqual(build.dynamicImportVarsOptions?.exclude, [/./]); + assert.deepEqual(build.ssr, undefined); + assert.deepEqual(c.optimizeDeps?.include, includeDeps); + assert.deepEqual(c.optimizeDeps?.exclude, excludeDeps); + expectTransformEngine(c, bundlerOptionsKey, 'serve'); + assert.deepEqual(c.ssr, { + noExternal, + }); + }); -describe('input config', () => { - const initOpts = { - optimizerOptions: mockOptimizerOptions(), - client: { - input: './src/widget/counter.tsx', - outDir: './dist/client', - }, - ssr: { - input: './src/widget/ssr.tsx', - outDir: './dist/server', - }, - } as QwikVitePluginOptions; - test('should handle client target', async () => { + test('command: build, mode: development', async () => { + const initOpts = { + optimizerOptions: mockOptimizerOptions(), + }; const plugin = getPlugin(initOpts); - const c: any = (await plugin.config.call( + const c = (await plugin.config.call( configHookPluginContext, {}, { command: 'build', mode: 'development' } ))!; - assert.deepEqual(c.build.rollupOptions.input, ['./src/widget/counter.tsx']); + const opts = await plugin.api?.getOptions(); + const build = c.build!; + const bundlerOptions = getBundlerOptions(build, bundlerOptionsKey); + const outputOptions = bundlerOptions.output as Rollup.OutputOptions; + const chunkFileNames = outputOptions.chunkFileNames as ( + chunkInfo: Rollup.PreRenderedChunk + ) => string; + const entryFileNames = outputOptions.entryFileNames as ( + chunkInfo: Rollup.PreRenderedChunk + ) => string; + + assert.deepEqual(opts.target, 'client'); + assert.deepEqual(opts.buildMode, 'development'); + assert.deepEqual(opts.entryStrategy, { type: 'segment' }); + assert.deepEqual(opts.debug, false); + assert.deepEqual(opts.resolveQwikBuild, true); + + assert.deepEqual(plugin.enforce, 'pre'); + assert.deepEqual(build.outDir, normalizePath(resolve(cwd, 'dist'))); + assert.deepEqual(build.emptyOutDir, undefined); + assert.deepEqual((bundlerOptions.input as string[]).map(normalizePath), [ + normalizePath(resolve(cwd, 'src', 'root')), + ]); + + assert.deepEqual(outputOptions.assetFileNames, 'assets/[hash]-[name].[ext]'); + assert.deepEqual(chunkFileNames(chunkInfoMocks[0]), `build/chunk.tsx.js`); + assert.deepEqual(entryFileNames(chunkInfoMocks[0]), `build/chunk.tsx.js`); + const relBuildDev = path.relative(cwd, chunkInfoMocks[1].name); + const sanitizedBuildDev = relBuildDev + .replace(/^\(\.\.\/\)+/, '') + .replace(/^\/+/, '') + .replace(/\//g, '-'); + const expectedBuildDevChunk = `build/${sanitizedBuildDev}.js`; + assert.deepEqual(chunkFileNames(chunkInfoMocks[1]), expectedBuildDevChunk); + assert.deepEqual(entryFileNames(chunkInfoMocks[1]), expectedBuildDevChunk); + + assert.deepEqual(build.dynamicImportVarsOptions?.exclude, [/./]); + assert.deepEqual(build.ssr, undefined); + assert.deepEqual(c.optimizeDeps?.include, includeDeps); + assert.deepEqual(c.optimizeDeps?.exclude, excludeDeps); + expectTransformEngine(c, bundlerOptionsKey, 'build'); + assert.deepEqual(c.ssr?.noExternal, noExternal); }); - test('should handle ssr target', async () => { + + test('command: build, mode: production', async () => { + const initOpts = { + optimizerOptions: mockOptimizerOptions(), + }; + const plugin = getPlugin(initOpts); + const c = (await plugin.config.call( + configHookPluginContext, + {}, + { command: 'build', mode: 'production' } + ))!; + const opts = await plugin.api?.getOptions(); + const build = c.build!; + const bundlerOptions = getBundlerOptions(build, bundlerOptionsKey); + const outputOptions = bundlerOptions.output as Rollup.OutputOptions; + + assert.deepEqual(opts.target, 'client'); + assert.deepEqual(opts.buildMode, 'production'); + assert.deepEqual(opts.entryStrategy, { type: 'smart' }); + assert.deepEqual(opts.debug, false); + assert.deepEqual(opts.resolveQwikBuild, true); + + assert.deepEqual(plugin.enforce, 'pre'); + assert.deepEqual(build.outDir, normalizePath(resolve(cwd, 'dist'))); + assert.deepEqual(build.emptyOutDir, undefined); + assert.deepEqual((bundlerOptions.input as string[]).map(normalizePath), [ + normalizePath(resolve(cwd, 'src', 'root')), + ]); + + assert.deepEqual(outputOptions.assetFileNames, 'assets/[hash]-[name].[ext]'); + assert.deepEqual(outputOptions.chunkFileNames, 'build/q-[hash].js'); + assert.deepEqual(outputOptions.entryFileNames, 'build/q-[hash].js'); + + assert.deepEqual(build.outDir, normalizePath(resolve(cwd, 'dist'))); + assert.deepEqual(build.dynamicImportVarsOptions?.exclude, [/./]); + assert.deepEqual(build.ssr, undefined); + assert.deepEqual(c.optimizeDeps?.include, includeDeps); + assert.deepEqual(c.optimizeDeps?.exclude, excludeDeps); + expectTransformEngine(c, bundlerOptionsKey, 'build'); + assert.deepEqual(c.ssr, { + noExternal, + }); + }); + + test('command: build, --mode production (client)', async () => { + const initOpts = { + optimizerOptions: mockOptimizerOptions(), + client: { + devInput: resolve(cwd, 'src', 'dev.entry.tsx'), + outDir: resolve(cwd, 'client-dist'), + }, + }; + const plugin = getPlugin(initOpts); const c: any = (await plugin.config.call( configHookPluginContext, {}, - { command: 'build', mode: 'ssr' } + { command: 'build', mode: 'production' } ))!; - assert.deepEqual(c.build.rollupOptions.input, ['./src/widget/ssr.tsx']); + const opts = await plugin.api?.getOptions(); + const build = c.build!; + const bundlerOptions = getBundlerOptions(build, bundlerOptionsKey); + assert.deepEqual(opts.resolveQwikBuild, true); + + assert.deepEqual(opts.target, 'client'); + assert.deepEqual(opts.buildMode, 'production'); + assert.deepEqual((bundlerOptions.input as string[]).map(normalizePath), [ + normalizePath(resolve(cwd, 'src', 'root')), + ]); + assert.deepEqual(build.outDir, normalizePath(resolve(cwd, 'client-dist'))); + assert.deepEqual(build.emptyOutDir, undefined); }); -}); -describe('clientPublicOutDir', () => { - test('clientPublicOutDir should equal clientOutDir when base is set', async () => { + test('command: build, --ssr entry.server.tsx', async () => { const initOpts = { optimizerOptions: mockOptimizerOptions(), }; const plugin = getPlugin(initOpts); + const c = (await plugin.config.call( + configHookPluginContext, + { build: { ssr: resolve(cwd, 'src', 'entry.server.tsx') } }, + { command: 'build', mode: '' } + ))!; + const opts = await plugin.api?.getOptions(); + const build = c.build!; + const bundlerOptions = getBundlerOptions(build, bundlerOptionsKey); + const outputOptions = bundlerOptions.output as Rollup.OutputOptions; + + assert.deepEqual(opts.target, 'ssr'); + assert.deepEqual(opts.buildMode, 'development'); + assert.deepEqual(opts.entryStrategy, { type: 'hoist' }); + assert.deepEqual(opts.debug, false); + assert.deepEqual(opts.resolveQwikBuild, true); + + assert.deepEqual(plugin.enforce, 'pre'); + assert.deepEqual(build.outDir, normalizePath(resolve(cwd, 'server'))); + assert.deepEqual(build.emptyOutDir, undefined); + assert.deepEqual((bundlerOptions.input as string[]).map(normalizePath), [ + normalizePath(resolve(cwd, 'src', 'entry.server.tsx')), + ]); + + assert.deepEqual(outputOptions.assetFileNames, 'assets/[hash]-[name].[ext]'); + assert.isFunction(outputOptions.chunkFileNames); + assert.deepEqual((outputOptions.chunkFileNames as any)({ name: 'hello' }), 'build/hello.js'); + assert.deepEqual(outputOptions.entryFileNames, undefined); + + assert.deepEqual(build.outDir, normalizePath(resolve(cwd, 'server'))); + assert.deepEqual(build.dynamicImportVarsOptions?.exclude, [/./]); + assert.deepEqual(build.ssr, true); + assert.deepEqual(c.optimizeDeps?.include, includeDeps); + assert.deepEqual(c.optimizeDeps?.exclude, excludeDeps); + expectTransformEngine(c, bundlerOptionsKey, 'build'); + assert.deepEqual(c.publicDir, false); + }); - // Simulate a config with a base path that might cause duplication - const viteConfig = { - base: '/frameworks/keyed/qwik2/', - build: { - outDir: 'dist', + test('command: serve, --mode ssr', async () => { + const initOpts = { + optimizerOptions: mockOptimizerOptions(), + ssr: { + input: resolve(cwd, 'src', 'renderz.tsx'), + outDir: resolve(cwd, 'ssr-dist'), }, }; + const plugin = getPlugin(initOpts); + const c: any = (await plugin.config.call( + configHookPluginContext, + { build: { emptyOutDir: true } }, + { command: 'serve', mode: 'ssr' } + ))!; + const opts = await plugin.api?.getOptions(); + const build = c.build!; + const bundlerOptions = getBundlerOptions(build, bundlerOptionsKey); + + assert.deepEqual(opts.target, 'ssr'); + assert.deepEqual(opts.buildMode, 'development'); + assert.deepEqual(build.minify, undefined); + assert.deepEqual(build.ssr, undefined); + assert.deepEqual((bundlerOptions.input as string[]).map(normalizePath), [ + normalizePath(resolve(cwd, 'src', 'renderz.tsx')), + ]); + assert.deepEqual(c.build.outDir, normalizePath(resolve(cwd, 'ssr-dist'))); + assert.deepEqual(build.emptyOutDir, undefined); + assert.deepEqual(c.publicDir, undefined); + assert.deepEqual(opts.resolveQwikBuild, true); + }); - await plugin.config.call(configHookPluginContext, viteConfig, { - command: 'build', - mode: 'production', - }); + test('command: serve, --mode ssr with build.assetsDir', async () => { + const initOpts = { + optimizerOptions: mockOptimizerOptions(), + ssr: { + input: resolve(cwd, 'src', 'renderz.tsx'), + outDir: resolve(cwd, 'ssr-dist'), + }, + }; + const plugin = getPlugin(initOpts); + const c: any = (await plugin.config.call( + configHookPluginContext, + { build: { emptyOutDir: true, assetsDir: 'my-assets-dir' } }, + { command: 'serve', mode: 'ssr' } + ))!; + const opts = plugin.api?.getOptions(); + const build = c.build!; + const bundlerOptions = getBundlerOptions(build, bundlerOptionsKey); + + assert.deepEqual(opts.target, 'ssr'); + assert.deepEqual(opts.buildMode, 'development'); + assert.deepEqual(build.minify, undefined); + assert.deepEqual(build.ssr, undefined); + assert.deepEqual((bundlerOptions.input as string[]).map(normalizePath), [ + normalizePath(resolve(cwd, 'src', 'renderz.tsx')), + ]); + assert.deepEqual(c.build.outDir, normalizePath(resolve(cwd, 'ssr-dist'))); + assert.deepEqual(build.emptyOutDir, undefined); + assert.deepEqual(c.publicDir, undefined); + assert.deepEqual(opts.resolveQwikBuild, true); + }); - const clientOutDir = plugin.api.getClientOutDir(); - const clientPublicOutDir = plugin.api.getClientPublicOutDir(); + test('should use the dist/ fallback with client target', async () => { + const initOpts = { + optimizerOptions: mockOptimizerOptions(), + }; + const plugin = getPlugin(initOpts); + const c: any = (await plugin.config.call( + configHookPluginContext, + { build: { assetsDir: 'my-assets-dir/' } }, + { command: 'serve', mode: 'development' } + ))!; - // clientPublicOutDir should be the same as clientOutDir - // The base path should NOT be appended to the filesystem path - assert.equal(clientPublicOutDir, clientOutDir); + assert.equal(c.build.outDir, normalizePath(resolve(cwd, `dist`))); }); - test('clientPublicOutDir should equal clientOutDir without base', async () => { + test('should use build.outDir config with client target', async () => { const initOpts = { optimizerOptions: mockOptimizerOptions(), }; const plugin = getPlugin(initOpts); + const c: any = (await plugin.config.call( + configHookPluginContext, + { build: { outDir: 'my-dist/', assetsDir: 'my-assets-dir' } }, + { command: 'serve', mode: 'development' } + ))!; - const viteConfig = { - build: { - outDir: 'dist', - }, + assert.equal(c.build.outDir, normalizePath(resolve(cwd, `my-dist`))); + }); + + test('should use build.outDir config when assetsDir is _astro', async () => { + const initOpts = { + optimizerOptions: mockOptimizerOptions(), }; - await plugin.config.call(configHookPluginContext, viteConfig, { - command: 'build', - mode: 'production', - }); + const plugin = getPlugin(initOpts); - const clientOutDir = plugin.api.getClientOutDir(); - const clientPublicOutDir = plugin.api.getClientPublicOutDir(); + // Astro sets a build.assetsDir of _astro, but we don't want to change that + const c: any = (await plugin.config.call( + configHookPluginContext, + { build: { assetsDir: '_astro' } }, + { command: 'serve', mode: 'development' } + ))!; - assert.equal(clientPublicOutDir, clientOutDir); + assert.equal(c.build.outDir, normalizePath(resolve(cwd, `dist/`))); }); - test('clientPublicOutDir should equal clientOutDir with base="/"', async () => { + test('command: build, --mode lib', async () => { const initOpts = { optimizerOptions: mockOptimizerOptions(), }; const plugin = getPlugin(initOpts); - - const viteConfig = { - base: '/', - build: { - outDir: 'dist', + const c: any = (await plugin.config.call( + configHookPluginContext, + { + build: { + lib: { + entry: './src/index.ts', + formats: ['es', 'cjs'], + }, + }, }, - }; + { command: 'build', mode: 'lib' } + ))!; + const opts = await plugin.api?.getOptions(); + const build = c.build!; + const bundlerOptions = getBundlerOptions(build, bundlerOptionsKey); + const outputOptions = bundlerOptions.output as Rollup.OutputOptions; + + assert.deepEqual(opts.target, 'lib'); + assert.deepEqual(opts.buildMode, 'development'); + assert.deepEqual(build.minify, false); + assert.deepEqual(build.ssr, undefined); + assert.deepEqual(bundlerOptions.input, undefined); + + assert.deepEqual(outputOptions.assetFileNames, 'assets/[hash]-[name].[ext]'); + assert.isFunction(outputOptions.chunkFileNames); + assert.deepEqual((outputOptions.chunkFileNames as any)({ name: 'hello' }), 'build/hello.js'); + + assert.deepEqual(c.build.outDir, normalizePath(resolve(cwd, 'lib'))); + assert.deepEqual(build.emptyOutDir, undefined); + assert.deepEqual(opts.resolveQwikBuild, true); + }); - await plugin.config.call(configHookPluginContext, viteConfig, { - command: 'build', - mode: 'production', + test('command: build, --mode lib with multiple outputs', async () => { + const initOpts = { + optimizerOptions: mockOptimizerOptions(), + }; + const plugin = getPlugin(initOpts); + const c: any = (await plugin.config.call( + configHookPluginContext, + { + build: { + lib: { + entry: './src/index.ts', + }, + [bundlerOptionsKey]: { + output: [ + { + format: 'es', + entryFileNames: 'index.esm.js', + }, + { + format: 'es', + entryFileNames: 'index.mjs', + }, + { + format: 'cjs', + entryFileNames: 'index.cjs.js', + }, + { + format: 'cjs', + entryFileNames: 'index.cjs', + }, + ], + }, + }, + }, + { command: 'build', mode: 'lib' } + ))!; + const opts = await plugin.api?.getOptions(); + const build = c.build!; + const bundlerOptions = getBundlerOptions(build, bundlerOptionsKey); + const outputOptions = bundlerOptions.output as Rollup.OutputOptions[]; + + assert.deepEqual(opts.target, 'lib'); + assert.deepEqual(opts.buildMode, 'development'); + assert.deepEqual(build.minify, false); + assert.deepEqual(build.ssr, undefined); + assert.deepEqual(bundlerOptions.input, undefined); + + assert.ok(Array.isArray(outputOptions)); + assert.lengthOf(outputOptions, 4); + + outputOptions.forEach((outputOptionsObj) => { + assert.deepEqual(outputOptionsObj.assetFileNames, 'assets/[hash]-[name].[ext]'); + assert.isFunction(outputOptionsObj.chunkFileNames); + assert.deepEqual( + (outputOptionsObj.chunkFileNames as any)({ name: 'hello' }), + 'build/hello.js' + ); }); - const clientOutDir = plugin.api.getClientOutDir(); - const clientPublicOutDir = plugin.api.getClientPublicOutDir(); - - assert.equal(clientPublicOutDir, clientOutDir); + assert.deepEqual(c.build.outDir, normalizePath(resolve(cwd, 'lib'))); + assert.deepEqual(build.emptyOutDir, undefined); + assert.deepEqual(opts.resolveQwikBuild, true); }); - test('clientPublicOutDir should not duplicate custom outDir with nested base path', async () => { + describe('input config', () => { const initOpts = { optimizerOptions: mockOptimizerOptions(), client: { - outDir: 'frameworks/keyed/qwik2/dist', + input: './src/widget/counter.tsx', + outDir: './dist/client', }, - }; - const plugin = getPlugin(initOpts); - - const viteConfig = { - base: '/frameworks/keyed/qwik2/', - build: { - outDir: 'frameworks/keyed/qwik2/dist', + ssr: { + input: './src/widget/ssr.tsx', + outDir: './dist/server', }, - }; + } as QwikVitePluginOptions; + test('should handle client target', async () => { + const plugin = getPlugin(initOpts); + const c: any = (await plugin.config.call( + configHookPluginContext, + {}, + { command: 'build', mode: 'development' } + ))!; + assert.deepEqual(c.build[bundlerOptionsKey].input, ['./src/widget/counter.tsx']); + }); + test('should handle ssr target', async () => { + const plugin = getPlugin(initOpts); + const c: any = (await plugin.config.call( + configHookPluginContext, + {}, + { command: 'build', mode: 'ssr' } + ))!; + assert.deepEqual(c.build[bundlerOptionsKey].input, ['./src/widget/ssr.tsx']); + }); + }); + + describe('clientPublicOutDir', () => { + test('clientPublicOutDir should equal clientOutDir when base is set', async () => { + const initOpts = { + optimizerOptions: mockOptimizerOptions(), + }; + const plugin = getPlugin(initOpts); + + // Simulate a config with a base path that might cause duplication + const viteConfig = { + base: '/frameworks/keyed/qwik2/', + build: { + outDir: 'dist', + }, + }; + + await plugin.config.call(configHookPluginContext, viteConfig, { + command: 'build', + mode: 'production', + }); - await plugin.config.call(configHookPluginContext, viteConfig, { - command: 'build', - mode: 'production', + const clientOutDir = plugin.api.getClientOutDir(); + const clientPublicOutDir = plugin.api.getClientPublicOutDir(); + + // clientPublicOutDir should be the same as clientOutDir + // The base path should NOT be appended to the filesystem path + assert.equal(clientPublicOutDir, clientOutDir); }); - const clientPublicOutDir = plugin.api.getClientPublicOutDir(); + test('clientPublicOutDir should equal clientOutDir without base', async () => { + const initOpts = { + optimizerOptions: mockOptimizerOptions(), + }; + const plugin = getPlugin(initOpts); - // Should be the outDir, not outDir + base - assert.equal( - normalizePath(clientPublicOutDir!), - normalizePath(resolve(cwd, 'frameworks/keyed/qwik2/dist')) - ); + const viteConfig = { + build: { + outDir: 'dist', + }, + }; - // Should NOT be duplicated like: frameworks/keyed/qwik2/dist/frameworks/keyed/qwik2 - assert.notMatch(clientPublicOutDir!, /frameworks.*frameworks/); - }); -}); + await plugin.config.call(configHookPluginContext, viteConfig, { + command: 'build', + mode: 'production', + }); -describe('configEnvironment', () => { - test('should set noExternal for server environments', async () => { - const plugin = getPlugin({ optimizerOptions: mockOptimizerOptions() }); - // Initialize the plugin first - await plugin.config.call( - configHookPluginContext, - {}, - { command: 'serve', mode: 'development' } - ); + const clientOutDir = plugin.api.getClientOutDir(); + const clientPublicOutDir = plugin.api.getClientPublicOutDir(); - const hook = (plugin as any).configEnvironment; - assert.isFunction(hook); + assert.equal(clientPublicOutDir, clientOutDir); + }); + + test('clientPublicOutDir should equal clientOutDir with base="/"', async () => { + const initOpts = { + optimizerOptions: mockOptimizerOptions(), + }; + const plugin = getPlugin(initOpts); - const result = hook('ssr', { consumer: 'server' }, { command: 'serve', mode: 'development' }); - assert.deepEqual(result.resolve.noExternal, noExternal); + const viteConfig = { + base: '/', + build: { + outDir: 'dist', + }, + }; + + await plugin.config.call(configHookPluginContext, viteConfig, { + command: 'build', + mode: 'production', + }); + + const clientOutDir = plugin.api.getClientOutDir(); + const clientPublicOutDir = plugin.api.getClientPublicOutDir(); + + assert.equal(clientPublicOutDir, clientOutDir); + }); + + test('clientPublicOutDir should not duplicate custom outDir with nested base path', async () => { + const initOpts = { + optimizerOptions: mockOptimizerOptions(), + client: { + outDir: 'frameworks/keyed/qwik2/dist', + }, + }; + const plugin = getPlugin(initOpts); + + const viteConfig = { + base: '/frameworks/keyed/qwik2/', + build: { + outDir: 'frameworks/keyed/qwik2/dist', + }, + }; + + await plugin.config.call(configHookPluginContext, viteConfig, { + command: 'build', + mode: 'production', + }); + + const clientPublicOutDir = plugin.api.getClientPublicOutDir(); + + // Should be the outDir, not outDir + base + assert.equal( + normalizePath(clientPublicOutDir!), + normalizePath(resolve(cwd, 'frameworks/keyed/qwik2/dist')) + ); + + // Should NOT be duplicated like: frameworks/keyed/qwik2/dist/frameworks/keyed/qwik2 + assert.notMatch(clientPublicOutDir!, /frameworks.*frameworks/); + }); }); - test('should set resolve conditions for client environments in production', async () => { - const plugin = getPlugin({ optimizerOptions: mockOptimizerOptions() }); - await plugin.config.call(configHookPluginContext, {}, { command: 'build', mode: 'production' }); + describe('configEnvironment', () => { + test('should set noExternal for server environments', async () => { + const plugin = getPlugin({ optimizerOptions: mockOptimizerOptions() }); + // Initialize the plugin first + await plugin.config.call( + configHookPluginContext, + {}, + { command: 'serve', mode: 'development' } + ); + + const hook = (plugin as any).configEnvironment; + assert.isFunction(hook); + + const result = hook('ssr', { consumer: 'server' }, { command: 'serve', mode: 'development' }); + assert.deepEqual(result.resolve.noExternal, noExternal); + }); - const hook = (plugin as any).configEnvironment; - const result = hook('client', { consumer: 'client' }, { command: 'build', mode: 'production' }); - assert.deepEqual(result.resolve.conditions, ['min']); + test('should set resolve conditions for client environments in production', async () => { + const plugin = getPlugin({ optimizerOptions: mockOptimizerOptions() }); + await plugin.config.call( + configHookPluginContext, + {}, + { command: 'build', mode: 'production' } + ); + + const hook = (plugin as any).configEnvironment; + const result = hook( + 'client', + { consumer: 'client' }, + { command: 'build', mode: 'production' } + ); + assert.deepEqual(result.resolve.conditions, ['min']); + }); + + test('should return empty config for client environments in development', async () => { + const plugin = getPlugin({ optimizerOptions: mockOptimizerOptions() }); + await plugin.config.call( + configHookPluginContext, + {}, + { command: 'serve', mode: 'development' } + ); + + const hook = (plugin as any).configEnvironment; + const result = hook( + 'client', + { consumer: 'client' }, + { command: 'serve', mode: 'development' } + ); + // In development, we don't set conditions to avoid overriding adapter-provided conditions + // (e.g. ['webworker', 'worker'] for edge adapters). Empty object is the correct result. + assert.deepEqual(result, {}); + }); }); - test('should return empty config for client environments in development', async () => { - const plugin = getPlugin({ optimizerOptions: mockOptimizerOptions() }); - await plugin.config.call( - configHookPluginContext, - {}, - { command: 'serve', mode: 'development' } - ); + describe('configEnvironment', () => { + test('should set noExternal for server environments', async () => { + const plugin = getPlugin({ optimizerOptions: mockOptimizerOptions() }); + // Initialize the plugin first + await plugin.config.call( + configHookPluginContext, + {}, + { command: 'serve', mode: 'development' } + ); + + const hook = (plugin as any).configEnvironment; + assert.isFunction(hook); + + const result = hook('ssr', { consumer: 'server' }, { command: 'serve', mode: 'development' }); + assert.deepEqual(result.resolve.noExternal, noExternal); + }); - const hook = (plugin as any).configEnvironment; - const result = hook( - 'client', - { consumer: 'client' }, - { command: 'serve', mode: 'development' } - ); - // In development, we don't set conditions to avoid overriding adapter-provided conditions - // (e.g. ['webworker', 'worker'] for edge adapters). Empty object is the correct result. - assert.deepEqual(result, {}); + test('should set resolve conditions for client environments in production', async () => { + const plugin = getPlugin({ optimizerOptions: mockOptimizerOptions() }); + await plugin.config.call( + configHookPluginContext, + {}, + { command: 'build', mode: 'production' } + ); + + const hook = (plugin as any).configEnvironment; + const result = hook( + 'client', + { consumer: 'client' }, + { command: 'build', mode: 'production' } + ); + assert.deepEqual(result.resolve.conditions, ['min']); + }); + + test('should return empty config for client environments in development', async () => { + const plugin = getPlugin({ optimizerOptions: mockOptimizerOptions() }); + await plugin.config.call( + configHookPluginContext, + {}, + { command: 'serve', mode: 'development' } + ); + + const hook = (plugin as any).configEnvironment; + const result = hook( + 'client', + { consumer: 'client' }, + { command: 'serve', mode: 'development' } + ); + // In development, we don't set conditions to avoid overriding adapter-provided conditions + // (e.g. ['webworker', 'worker'] for edge adapters). Empty object is the correct result. + assert.deepEqual(result, {}); + }); }); }); diff --git a/packages/qwik/package.json b/packages/qwik/package.json index 8b55ea02951..aad6f8ba38a 100644 --- a/packages/qwik/package.json +++ b/packages/qwik/package.json @@ -14,6 +14,7 @@ "rollup": "^4.59.0" }, "devDependencies": { + "rolldown": "1.0.0-rc.13", "@croct/json5-parser": "0.2.2", "@qwik.dev/core": "workspace:*", "@qwik.dev/dom": "workspace:*", @@ -156,7 +157,7 @@ "peerDependencies": { "prettier": "*", "vite": ">=6 <9", - "vitest": ">=2 <4" + "vitest": ">=2 <5" }, "peerDependenciesMeta": { "vitest": { diff --git a/packages/qwik/src/core/preloader/preloader.unit.ts b/packages/qwik/src/core/preloader/preloader.unit.ts index e4774293070..96fbf3ea9dc 100644 --- a/packages/qwik/src/core/preloader/preloader.unit.ts +++ b/packages/qwik/src/core/preloader/preloader.unit.ts @@ -33,8 +33,8 @@ test('preloader script', async () => { const compressed = compress(Buffer.from(code), { mode: 1, quality: 11 }); expect({ brotli: compressed.length, minified: code.length }).toMatchInlineSnapshot(` { - "brotli": 1691, - "minified": 3588, + "brotli": 1676, + "minified": 3532, } `); }); diff --git a/packages/qwik/src/qwikloader.unit.ts b/packages/qwik/src/qwikloader.unit.ts index 1a85adfa0cd..f3f11f2fa81 100644 --- a/packages/qwik/src/qwikloader.unit.ts +++ b/packages/qwik/src/qwikloader.unit.ts @@ -23,13 +23,13 @@ test('qwikloader script', () => { const compressed = compress(Buffer.from(qwikLoader), { mode: 1, quality: 11 }); expect([compressed.length, qwikLoader.length]).toMatchInlineSnapshot(` [ - 1789, - 4218, + 1764, + 4195, ] `); expect(qwikLoader).toMatchInlineSnapshot( - `"const e=document,t=window,n="w",o="wp",r="d",s="dp",i="e",a="ep",c="capture:",l=new Set,q=new Set([e]),d=new Map;let p,f;const b=(e,t)=>Array.from(e.querySelectorAll(t)),h=e=>{const t=[];return q.forEach(n=>t.push(...b(n,e))),t},u=(e,t,n,o=!1,r=!1)=>e.addEventListener(t,n,{capture:o,passive:r}),g=e=>{D(e);const t=b(e,"[q\\\\:shadowroot]");for(let e=0;ee&&"function"==typeof e.then,v=t=>{if(void 0===t._qwikjson_){let n=(t===e.documentElement?e.body:t).lastElementChild;for(;n;){if("SCRIPT"===n.tagName&&"qwik/json"===n.getAttribute("type")){t._qwikjson_=JSON.parse(n.textContent.replace(/\\\\x3C(\\/?script)/gi,"<$1"));break}n=n.previousElementSibling}}},w=(e,t)=>new CustomEvent(e,{detail:t}),y=(t,n)=>{e.dispatchEvent(w(t,n))},A=e=>e.replace(/([A-Z-])/g,e=>"-"+e.toLowerCase()),E=e=>e.replace(/-./g,e=>e[1].toUpperCase()),C=e=>{const t=e.indexOf(":");return{scope:e.slice(0,t),eventName:E(e.slice(t+1))}},_=e=>2===e.length,k=e=>e.charAt(0),S=e=>!!e&&1===e.nodeType,I=(e,t,n)=>e.hasAttribute(n)&&(!!e._qDispatch?.[t]||e.hasAttribute("q-"+t)),N=async(t,n,o,r,s=!0)=>{r&&(s&&t.hasAttribute("preventdefault:"+r)&&n.preventDefault(),t.hasAttribute("stoppropagation:"+r)&&n.stopPropagation());const i=t._qDispatch?.[o];if(i){if("function"==typeof i){const e=i(n,t);m(e)&&await e}else if(i.length)for(let e=0;e{const o=A(e.type),r=t+":"+o,s=c+o,a=[],l=[];let q=e.target;for(;q;)S(q)?(a.push(q),l.push(I(q,r,s)),q=q.parentElement):q=q.parentElement;for(let t=a.length-1;t>=0;t--)if(l[t]){const s=N(a[t],e,r,o,n),i=!e.cancelBubble;if(m(s)&&await s,!i||e.cancelBubble)return}for(let t=0;t$(e,a,!1),R=(e,t,n=!0)=>{const o=A(t.type),r=e+":"+o,s=h("[q-"+e+"\\\\:"+o+"]");for(let e=0;e{R(r,e)},L=async e=>{R(s,e,!1)},T=e=>{R(n,e)},U=e=>{R(o,e,!1)},j=()=>{const n=e.readyState;if("interactive"==n||"complete"==n){if(f=1,q.forEach(g),l.has("d:qinit")){l.delete("d:qinit");const e=w("qinit"),t=h("[q-d\\\\:qinit]");for(let n=0;n{const e=w("qidle"),t=h("[q-d\\\\:qidle]");for(let n=0;n{for(let t=0;t{for(let o=0;ou(e,o,a===r?i?L:x:i?B:$,!0,i)),1!==f||"e:qvisible"!==s&&"d:qinit"!==s&&"d:qidle"!==s||j()}}else q.has(s)||(l.forEach(e=>{const{scope:t,eventName:o}=C(e),i=_(t),a=k(t);a!==n&&u(s,o,a===r?i?L:x:i?B:$,!0,i)}),q.add(s))}},O=t._qwikEv;O?.roots||(Array.isArray(O)?D(...O):D("e:click","e:input"),t._qwikEv={events:l,roots:q,push:D},u(e,"readystatechange",j),j());"` + `"var e,t,n=document,r=window,o="w",s="wp",i="d",a="dp",c="e",l="ep",q="capture:",d=new Set,p=new Set([n]),f=new Map,b=(e,t)=>Array.from(e.querySelectorAll(t)),h=e=>{const t=[];return p.forEach(n=>t.push(...b(n,e))),t},u=(e,t,n,r=!1,o=!1)=>e.addEventListener(t,n,{capture:r,passive:o}),g=e=>{D(e);const t=b(e,"[q\\\\:shadowroot]");for(let e=0;ee&&"function"==typeof e.then,v=e=>{if(void 0===e._qwikjson_){let t=(e===n.documentElement?n.body:e).lastElementChild;for(;t;){if("SCRIPT"===t.tagName&&"qwik/json"===t.getAttribute("type")){e._qwikjson_=JSON.parse(t.textContent.replace(/\\\\x3C(\\/?script)/gi,"<$1"));break}t=t.previousElementSibling}}},w=(e,t)=>new CustomEvent(e,{detail:t}),y=(e,t)=>{n.dispatchEvent(w(e,t))},A=e=>e.replace(/([A-Z-])/g,e=>"-"+e.toLowerCase()),E=e=>e.replace(/-./g,e=>e[1].toUpperCase()),C=e=>{const t=e.indexOf(":");return{scope:e.slice(0,t),eventName:E(e.slice(t+1))}},_=e=>2===e.length,k=e=>e.charAt(0),S=e=>!!e&&1===e.nodeType,I=(e,t,n)=>e.hasAttribute(n)&&(!!e._qDispatch?.[t]||e.hasAttribute("q-"+t)),N=async(e,t,r,o,s=!0)=>{o&&(s&&e.hasAttribute("preventdefault:"+o)&&t.preventDefault(),e.hasAttribute("stoppropagation:"+o)&&t.stopPropagation());const i=e._qDispatch?.[r];if(i){if("function"==typeof i){const n=i(t,e);m(n)&&await n}else if(i.length)for(let n=0;n{const r=A(e.type),o=t+":"+r,s=q+r,i=[],a=[];let l=e.target;for(;l;)S(l)?(i.push(l),a.push(I(l,o,s)),l=l.parentElement):l=l.parentElement;for(let t=i.length-1;t>=0;t--)if(a[t]){const s=N(i[t],e,o,r,n),a=!e.cancelBubble;if(m(s)&&await s,!a||e.cancelBubble)return}for(let t=0;t$(e,l,!1),R=(e,t,n=!0)=>{const r=A(t.type),o=e+":"+r,s=h("[q-"+e+"\\\\:"+r+"]");for(let e=0;e{R(i,e)},L=async e=>{R(a,e,!1)},T=e=>{R(o,e)},U=e=>{R(s,e,!1)},j=()=>{const o=n.readyState;if("interactive"==o||"complete"==o){if(t=1,p.forEach(g),d.has("d:qinit")){d.delete("d:qinit");const e=w("qinit"),t=h("[q-d\\\\:qinit]");for(let n=0;n{const e=w("qidle"),t=h("[q-d\\\\:qidle]");for(let n=0;n{for(let n=0;n{for(let n=0;nu(e,n,c===i?a?L:x:a?B:$,!0,a)),1!==t||"e:qvisible"!==s&&"d:qinit"!==s&&"d:qidle"!==s||j()}}else p.has(s)||(d.forEach(e=>{const{scope:t,eventName:n}=C(e),r=_(t),a=k(t);a!==o&&u(s,n,a===i?r?L:x:r?B:$,!0,r)}),p.add(s))}},O=r._qwikEv;O?.roots||(Array.isArray(O)?D(...O):D("e:click","e:input"),r._qwikEv={events:d,roots:p,push:D},u(n,"readystatechange",j),j());"` ); }); diff --git a/packages/supabase-auth-helpers-qwik/vite.config.ts b/packages/supabase-auth-helpers-qwik/vite.config.ts index 9fc503607a9..2c774117f94 100644 --- a/packages/supabase-auth-helpers-qwik/vite.config.ts +++ b/packages/supabase-auth-helpers-qwik/vite.config.ts @@ -13,7 +13,7 @@ export default defineConfig((config) => { formats: ['es'], fileName: () => `index.qwik.mjs`, }, - rollupOptions: { + rolldownOptions: { external: [ '@qwik.dev/core', '@qwik.dev/router', diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bdc1c2e300f..6c1394d258b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -107,11 +107,11 @@ importers: specifier: 1.0.2 version: 1.0.2 '@vitejs/plugin-basic-ssl': - specifier: 2.1.4 - version: 2.1.4(vite@7.3.1(@types/node@24.10.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(yaml@2.8.2)) + specifier: 2.2.0 + version: 2.2.0(vite@8.0.6(@types/node@24.10.0)(esbuild@0.27.2)(jiti@2.6.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.3)) '@vitest/coverage-v8': specifier: 4.0.18 - version: 4.0.18(vitest@4.0.18(@opentelemetry/api@1.9.0)(@types/node@24.10.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(yaml@2.8.2)) + version: 4.0.18(vitest@4.0.18(@opentelemetry/api@1.9.0)(@types/node@24.10.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.3)) all-contributors-cli: specifier: 6.26.1 version: 6.26.1 @@ -227,20 +227,20 @@ importers: specifier: 6.0.3 version: 6.0.3 vite: - specifier: 7.3.1 - version: 7.3.1(@types/node@24.10.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(yaml@2.8.2) + specifier: 8.0.6 + version: 8.0.6(@types/node@24.10.0)(esbuild@0.27.2)(jiti@2.6.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.3) vite-imagetools: specifier: 10.0.0 - version: 10.0.0(rollup@4.59.0)(vite@7.3.1(@types/node@24.10.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(yaml@2.8.2)) + version: 10.0.0(rollup@4.59.0)(vite@8.0.6(@types/node@24.10.0)(esbuild@0.27.2)(jiti@2.6.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.3)) vite-plugin-dts: specifier: 4.5.4 - version: 4.5.4(@types/node@24.10.0)(rollup@4.59.0)(typescript@5.9.3)(vite@7.3.1(@types/node@24.10.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(yaml@2.8.2)) + version: 4.5.4(@types/node@24.10.0)(rollup@4.59.0)(typescript@5.9.3)(vite@8.0.6(@types/node@24.10.0)(esbuild@0.27.2)(jiti@2.6.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.3)) vite-tsconfig-paths: specifier: 6.0.4 - version: 6.0.4(typescript@5.9.3)(vite@7.3.1(@types/node@24.10.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(yaml@2.8.2)) + version: 6.0.4(typescript@5.9.3)(vite@8.0.6(@types/node@24.10.0)(esbuild@0.27.2)(jiti@2.6.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.3)) vitest: specifier: 4.0.18 - version: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@24.10.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(yaml@2.8.2) + version: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@24.10.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.3) watchlist: specifier: 0.3.1 version: 0.3.1 @@ -311,6 +311,10 @@ importers: version: 17.7.2 packages/docs: + dependencies: + prismjs: + specifier: 1.30.0 + version: 1.30.0 devDependencies: '@algolia/autocomplete-core': specifier: 1.7.4 @@ -338,7 +342,7 @@ importers: version: 8.11.3(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react@19.2.3))(@mui/material@7.3.2(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@mui/system@7.3.2(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@qds.dev/tools': specifier: 0.14.3 - version: 0.14.3 + version: 0.14.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1) '@qds.dev/ui': specifier: 0.14.3 version: 0.14.3(@qwik.dev/core@packages+qwik) @@ -350,7 +354,7 @@ importers: version: link:../qwik '@qwik.dev/devtools': specifier: 0.2.5 - version: 0.2.5(@qwik.dev/core@packages+qwik)(@qwik.dev/router@packages+qwik-router)(@tailwindcss/vite@4.1.18(vite@7.3.1(@types/node@24.10.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(yaml@2.8.2)))(tailwindcss@4.1.18)(vite@7.3.1(@types/node@24.10.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(yaml@2.8.2)) + version: 0.2.5(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@qwik.dev/core@packages+qwik)(@qwik.dev/router@packages+qwik-router)(@tailwindcss/postcss@4.2.2)(@tailwindcss/vite@4.2.2(vite@8.0.6(@types/node@24.10.0)(esbuild@0.27.3)(jiti@2.6.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.3)))(tailwindcss@4.2.1)(vite@8.0.6(@types/node@24.10.0)(esbuild@0.27.3)(jiti@2.6.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.3)) '@qwik.dev/optimizer': specifier: workspace:* version: link:../optimizer @@ -364,8 +368,8 @@ importers: specifier: workspace:* version: link:../qwik-router '@rolldown/browser': - specifier: 1.0.0-beta.59 - version: 1.0.0-beta.59 + specifier: 1.0.0-rc.12 + version: 1.0.0-rc.12(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1) '@shikijs/colorized-brackets': specifier: 3.21.0 version: 3.21.0 @@ -387,9 +391,12 @@ importers: '@supabase/supabase-js': specifier: 2.53.0 version: 2.53.0 + '@tailwindcss/postcss': + specifier: 4.2.2 + version: 4.2.2 '@tailwindcss/vite': - specifier: 4.1.18 - version: 4.1.18(vite@7.3.1(@types/node@24.10.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(yaml@2.8.2)) + specifier: 4.2.2 + version: 4.2.2(vite@8.0.6(@types/node@24.10.0)(esbuild@0.27.3)(jiti@2.6.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.3)) '@types/leaflet': specifier: 1.9.21 version: 1.9.21 @@ -435,9 +442,6 @@ importers: prism-themes: specifier: 1.9.0 version: 1.9.0 - prismjs: - specifier: 1.30.0 - version: 1.30.0 qwik-image: specifier: 0.0.16 version: 0.0.16 @@ -454,8 +458,8 @@ importers: specifier: 2.0.0 version: 2.0.0 tailwindcss: - specifier: 4.1.18 - version: 4.1.18 + specifier: 4.2.1 + version: 4.2.1 terser: specifier: 5.46.0 version: 5.46.0 @@ -469,11 +473,11 @@ importers: specifier: 1.2.0 version: 1.2.0(typescript@5.9.3) vite: - specifier: 7.3.1 - version: 7.3.1(@types/node@24.10.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(yaml@2.8.2) + specifier: 8.0.6 + version: 8.0.6(@types/node@24.10.0)(esbuild@0.27.3)(jiti@2.6.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.3) vite-tsconfig-paths: specifier: 6.0.4 - version: 6.0.4(typescript@5.9.3)(vite@7.3.1(@types/node@24.10.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(yaml@2.8.2)) + version: 6.0.4(typescript@5.9.3)(vite@8.0.6(@types/node@24.10.0)(esbuild@0.27.3)(jiti@2.6.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.3)) wrangler: specifier: 3.114.17 version: 3.114.17 @@ -482,7 +486,7 @@ importers: dependencies: '@typescript-eslint/utils': specifier: ^8.56.1 - version: 8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + version: 8.57.2(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) jsx-ast-utils: specifier: ^3.3.5 version: 3.3.5 @@ -525,7 +529,7 @@ importers: version: 17.2.3 drizzle-kit: specifier: ^0.31.4 - version: 0.31.5 + version: 0.31.10 drizzle-orm: specifier: 0.44.4 version: 0.44.4(@electric-sql/pglite@0.3.16)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(bun-types@1.3.10)(pg@8.20.0) @@ -549,8 +553,8 @@ importers: specifier: workspace:* version: link:../qwik-router '@tailwindcss/vite': - specifier: 4.1.18 - version: 4.1.18(vite@7.3.1(@types/node@24.10.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(yaml@2.8.2)) + specifier: 4.2.2 + version: 4.2.2(vite@8.0.6(@types/node@24.10.0)(esbuild@0.27.3)(jiti@2.6.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.3)) '@types/density-clustering': specifier: 1.3.3 version: 1.3.3 @@ -571,7 +575,7 @@ importers: version: 17.0.0 netlify-cli: specifier: 24.5.1 - version: 24.5.1(@types/node@24.10.0)(picomatch@4.0.3)(rollup@4.59.0) + version: 24.5.1(@types/node@24.10.0)(picomatch@4.0.4)(rollup@4.59.0) postcss: specifier: 8.5.6 version: 8.5.6 @@ -582,8 +586,8 @@ importers: specifier: 0.7.2 version: 0.7.2(prettier-plugin-jsdoc@1.8.0(prettier@3.7.4))(prettier@3.7.4) tailwindcss: - specifier: 4.1.18 - version: 4.1.18 + specifier: 4.2.1 + version: 4.2.1 typescript: specifier: 5.9.3 version: 5.9.3 @@ -591,14 +595,14 @@ importers: specifier: 8.56.1 version: 8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) vite: - specifier: 7.3.1 - version: 7.3.1(@types/node@24.10.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(yaml@2.8.2) + specifier: 8.0.6 + version: 8.0.6(@types/node@24.10.0)(esbuild@0.27.3)(jiti@2.6.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.3) vite-tsconfig-paths: specifier: 6.0.4 - version: 6.0.4(typescript@5.9.3)(vite@7.3.1(@types/node@24.10.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(yaml@2.8.2)) + version: 6.0.4(typescript@5.9.3)(vite@8.0.6(@types/node@24.10.0)(esbuild@0.27.3)(jiti@2.6.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.3)) vitest: specifier: 4.0.18 - version: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@24.10.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(yaml@2.8.2) + version: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@24.10.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.3) zod: specifier: 3.25.48 version: 3.25.48 @@ -615,7 +619,7 @@ importers: version: 3.2.3 launch-editor: specifier: ^2.12.0 - version: 2.12.0 + version: 2.13.2 rollup: specifier: ^4.59.0 version: 4.59.0 @@ -644,9 +648,12 @@ importers: prettier: specifier: 3.7.4 version: 3.7.4 + rolldown: + specifier: 1.0.0-rc.13 + version: 1.0.0-rc.13 vitest: specifier: 4.0.18 - version: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@24.10.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(yaml@2.8.2) + version: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@24.10.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.3) packages/qwik-dom: {} @@ -671,8 +678,8 @@ importers: specifier: 5.9.3 version: 5.9.3 vite: - specifier: 7.3.1 - version: 7.3.1(@types/node@24.10.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(yaml@2.8.2) + specifier: 8.0.6 + version: 8.0.6(@types/node@24.10.0)(esbuild@0.27.3)(jiti@2.6.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.3) packages/qwik-router: dependencies: @@ -735,7 +742,7 @@ importers: version: 11.0.5 unist-util-visit: specifier: ^5.0.0 - version: 5.0.0 + version: 5.1.0 valibot: specifier: '>=0.36.0 <2' version: 1.2.0(typescript@5.9.3) @@ -744,13 +751,13 @@ importers: version: 6.0.3 vite: specifier: '>=6 <9' - version: 7.3.1(@types/node@24.10.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(yaml@2.8.2) + version: 8.0.6(@types/node@24.10.0)(esbuild@0.27.3)(jiti@2.6.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.3) vite-imagetools: specifier: 10.0.0 - version: 10.0.0(rollup@4.59.0)(vite@7.3.1(@types/node@24.10.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(yaml@2.8.2)) + version: 10.0.0(rollup@4.59.0)(vite@8.0.6(@types/node@24.10.0)(esbuild@0.27.3)(jiti@2.6.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.3)) yaml: specifier: ^2.8.2 - version: 2.8.2 + version: 2.8.3 zod: specifier: ^3.25.48 version: 3.25.48 @@ -788,6 +795,9 @@ importers: image-size: specifier: 1.2.1 version: 1.2.1 + rolldown: + specifier: 1.0.0-rc.13 + version: 1.0.0-rc.13 packages/supabase-auth-helpers-qwik: devDependencies: @@ -872,6 +882,10 @@ packages: '@algolia/transporter@4.16.0': resolution: {integrity: sha512-H9BVB2EAjT65w7XGBNf5drpsW39x2aSZ942j4boSAAJPPlLmjtj5IpAP7UAtsV8g9Beslonh0bLa1XGmE/P0BA==} + '@alloc/quick-lru@5.2.0': + resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} + engines: {node: '>=10'} + '@antfu/install-pkg@1.1.0': resolution: {integrity: sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==} @@ -896,42 +910,20 @@ packages: '@azure/functions@3.5.1': resolution: {integrity: sha512-6UltvJiuVpvHSwLcK/Zc6NfUwlkDLOFFx97BHCJzlWNsfiWwzwmTsxJXg4kE/LemKTHxPpfoPE+kOJ8hAdiKFQ==} - '@babel/code-frame@7.27.1': - resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} - engines: {node: '>=6.9.0'} - - '@babel/compat-data@7.28.4': - resolution: {integrity: sha512-YsmSKC29MJwf0gF8Rjjrg5LQCmyh+j/nD8/eP7f+BeoQTKYqs9RoWbjGOdy0+1Ekr68RJZMUOPVQaQisnIo4Rw==} + '@babel/code-frame@7.29.0': + resolution: {integrity: sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==} engines: {node: '>=6.9.0'} - '@babel/core@7.28.4': - resolution: {integrity: sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA==} - engines: {node: '>=6.9.0'} - - '@babel/generator@7.28.3': - resolution: {integrity: sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-compilation-targets@7.27.2': - resolution: {integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==} + '@babel/generator@7.29.1': + resolution: {integrity: sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==} engines: {node: '>=6.9.0'} '@babel/helper-globals@7.28.0': resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==} engines: {node: '>=6.9.0'} - '@babel/helper-module-imports@7.27.1': - resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==} - engines: {node: '>=6.9.0'} - - '@babel/helper-module-transforms@7.28.3': - resolution: {integrity: sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-plugin-utils@7.27.1': - resolution: {integrity: sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==} + '@babel/helper-module-imports@7.28.6': + resolution: {integrity: sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==} engines: {node: '>=6.9.0'} '@babel/helper-string-parser@7.27.1': @@ -942,47 +934,21 @@ packages: resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-option@7.27.1': - resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} - engines: {node: '>=6.9.0'} - - '@babel/helpers@7.28.4': - resolution: {integrity: sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==} - engines: {node: '>=6.9.0'} - - '@babel/parser@7.29.0': - resolution: {integrity: sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==} + '@babel/parser@7.29.2': + resolution: {integrity: sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA==} engines: {node: '>=6.0.0'} hasBin: true - '@babel/plugin-proposal-export-namespace-from@7.18.9': - resolution: {integrity: sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==} - engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-export-namespace-from instead. - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-export-namespace-from@7.8.3': - resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-modules-commonjs@7.27.1': - resolution: {integrity: sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/runtime@7.28.4': - resolution: {integrity: sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==} + '@babel/runtime@7.29.2': + resolution: {integrity: sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==} engines: {node: '>=6.9.0'} - '@babel/template@7.27.2': - resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} + '@babel/template@7.28.6': + resolution: {integrity: sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.28.4': - resolution: {integrity: sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ==} + '@babel/traverse@7.29.0': + resolution: {integrity: sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==} engines: {node: '>=6.9.0'} '@babel/types@7.29.0': @@ -993,26 +959,26 @@ packages: resolution: {integrity: sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==} engines: {node: '>=18'} - '@bugsnag/browser@8.6.0': - resolution: {integrity: sha512-7UGqTGnQqXUQ09gOlWbDTFUSbeLIIrP+hML3kTOq8Zdc8nP/iuOEflXGLV2TxWBWW8xIUPc928caFPr9EcaDuw==} + '@bugsnag/browser@8.8.1': + resolution: {integrity: sha512-wdDFZQtZBKlVkNWx57VWuOf+NKF3Pp+INn8E2SdYNwN42PQdsgsx7NliSMqY5MPiW0GeE9mgc7QMIMixOWp8Lw==} - '@bugsnag/core@8.6.0': - resolution: {integrity: sha512-94Jo443JegaiKV8z8NXMFdyTGubiUnwppWhq3kG2ldlYKtEvrmIaO5+JA58B6oveySvoRu3cCe2W9ysY7G7mDw==} + '@bugsnag/core@8.8.0': + resolution: {integrity: sha512-N9Z1znQ2EnhKlGNrxYx0XZ87IhcJ0V9NO9lmxOmOq0g8XMMaEnnqFj5f/YSO5H/NPFF/eVAyzDGDeuxsDWdK+w==} '@bugsnag/cuid@3.2.1': resolution: {integrity: sha512-zpvN8xQ5rdRWakMd/BcVkdn2F8HKlDSbM3l7duueK590WmI1T0ObTLc1V/1e55r14WNjPd5AJTYX4yPEAFVi+Q==} - '@bugsnag/js@8.6.0': - resolution: {integrity: sha512-U+ofNTTMA2Z6tCrOhK/QhHBhLoQHoalk8Y82WWc7FAcVSoJZYadND/QuXUriNRZpC4YgJ/s/AxPeQ2y+WvMxzw==} + '@bugsnag/js@8.8.1': + resolution: {integrity: sha512-qjio+9OxHXXG75ywWy156kUmqcqqyLBzOIKs+kFgLK4znx8pXBjtpFBo8e1Y/IXrbCJjFetn+TdFy+P4yYZM5Q==} - '@bugsnag/node@8.6.0': - resolution: {integrity: sha512-O91sELo6zBjflVeP3roRC9l68iYaafVs5lz2N0FDkrT08mP2UljtNWpjjoR/0h1so5Ny1OxHgnZ1IrsXhz5SMQ==} + '@bugsnag/node@8.8.0': + resolution: {integrity: sha512-ODajeAIRAICO8JXnrWkjzBmA0Qslt6n7aMEZQ3OJXDTsgXgdK1qoLjlScJqOoeQNR/kXUXl2allvJdrB4u2pdg==} '@bugsnag/safe-json-stringify@6.1.0': resolution: {integrity: sha512-ImA35rnM7bGr+J30R979FQ95BhRB4UO1KfJA0J2sVqc8nwnrS9hhE5mkTmQWMs8Vh1Da+hkLKs5jJB4JjNZp4A==} - '@changesets/apply-release-plan@7.0.13': - resolution: {integrity: sha512-BIW7bofD2yAWoE8H4V40FikC+1nNFEKBisMECccS16W1rt6qqhNTBDmIw5HaqmMgtLNz9e7oiALiEUuKrQ4oHg==} + '@changesets/apply-release-plan@7.1.0': + resolution: {integrity: sha512-yq8ML3YS7koKQ/9bk1PqO0HMzApIFNwjlwCnwFEXMzNe8NpzeeYYKCmnhWJGkN8g7E51MnWaSbqRcTcdIxUgnQ==} '@changesets/assemble-release-plan@6.0.9': resolution: {integrity: sha512-tPgeeqCHIwNo8sypKlS3gOPmsS3wP0zHt67JDuL20P4QcXiw/O4Hl7oXiuLnP9yg+rXLQ2sScdV1Kkzde61iSQ==} @@ -1024,8 +990,8 @@ packages: resolution: {integrity: sha512-0j0cPq3fgxt2dPdFsg4XvO+6L66RC0pZybT9F4dG5TBrLA3jA/1pNkdTXH9IBBVHkgsKrNKenI3n1mPyPlIydg==} hasBin: true - '@changesets/config@3.1.1': - resolution: {integrity: sha512-bd+3Ap2TKXxljCggI0mKPfzCQKeV/TU4yO2h2C6vAihIo8tzseAn2e7klSuiyYYXvgu53zMN1OeYMIQkaQoWnA==} + '@changesets/config@3.1.3': + resolution: {integrity: sha512-vnXjcey8YgBn2L1OPWd3ORs0bGC4LoYcK/ubpgvzNVr53JXV5GiTVj7fWdMRsoKUH7hhhMAQnsJUqLr21EncNw==} '@changesets/errors@0.2.0': resolution: {integrity: sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow==} @@ -1036,8 +1002,8 @@ packages: '@changesets/get-github-info@0.6.0': resolution: {integrity: sha512-v/TSnFVXI8vzX9/w3DU2Ol+UlTZcu3m0kXTjTT4KlAdwSvwutcByYwyYn9hwerPWfPkT2JfpoX0KgvCEi8Q/SA==} - '@changesets/get-release-plan@4.0.13': - resolution: {integrity: sha512-DWG1pus72FcNeXkM12tx+xtExyH/c9I1z+2aXlObH3i9YA7+WZEVaiHzHl03thpvAgWTRaH64MpfHxozfF7Dvg==} + '@changesets/get-release-plan@4.0.15': + resolution: {integrity: sha512-Q04ZaRPuEVZtA+auOYgFaVQQSA98dXiVe/yFaZfY7hoSmQICHGvP0TF4u3EDNHWmmCS4ekA/XSpKlSM2PyTS2g==} '@changesets/get-version-range-type@0.4.0': resolution: {integrity: sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ==} @@ -1048,14 +1014,14 @@ packages: '@changesets/logger@0.1.1': resolution: {integrity: sha512-OQtR36ZlnuTxKqoW4Sv6x5YIhOmClRd5pWsjZsddYxpWs517R0HkyiefQPIytCVh4ZcC5x9XaG8KTdd5iRQUfg==} - '@changesets/parse@0.4.1': - resolution: {integrity: sha512-iwksMs5Bf/wUItfcg+OXrEpravm5rEd9Bf4oyIPL4kVTmJQ7PNDSd6MDYkpSJR1pn7tz/k8Zf2DhTCqX08Ou+Q==} + '@changesets/parse@0.4.3': + resolution: {integrity: sha512-ZDmNc53+dXdWEv7fqIUSgRQOLYoUom5Z40gmLgmATmYR9NbL6FJJHwakcCpzaeCy+1D0m0n7mT4jj2B/MQPl7A==} '@changesets/pre@2.0.2': resolution: {integrity: sha512-HaL/gEyFVvkf9KFg6484wR9s0qjAXlZ8qWPDkTyKF6+zqjBe/I2mygg3MbpZ++hdi0ToqNUF8cjj7fBy0dg8Ug==} - '@changesets/read@0.6.5': - resolution: {integrity: sha512-UPzNGhsSjHD3Veb0xO/MwvasGe8eMyNrR/sT9gR8Q3DhOQZirgKhhXv/8hVsI0QpPjR004Z9iFxoJU6in3uGMg==} + '@changesets/read@0.6.7': + resolution: {integrity: sha512-D1G4AUYGrBEk8vj8MGwf75k9GpN6XL3wg8i42P2jZZwFLXnlr2Pn7r9yuQNbaMCarP7ZQWNJbV6XLeysAIMhTA==} '@changesets/should-skip-package@0.1.2': resolution: {integrity: sha512-qAK/WrqWLNCP22UDdBTMPH5f41elVDlsNyat180A33dWxuUDyNpg6fPi/FyTZwRriVjg0L8gnjJn2F9XAoF0qw==} @@ -1132,8 +1098,8 @@ packages: resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} - '@dabh/diagnostics@2.0.6': - resolution: {integrity: sha512-fuB2/plPknb9zp6TyJpnvEXYJddd4xEGoOMraVdK2bq99xpECHuTpqKJ+N40DGHLx1i4jiFzmX9Ti7hh6KLIbw==} + '@dabh/diagnostics@2.0.8': + resolution: {integrity: sha512-R4MSXTVnuMzGD7bzHdW2ZhhdPC/igELENcq5IjEverBvq5hn1SXCWcsi6eSsdWP0/Ur+SItRRjAktmdoX/8R/Q==} '@dependents/detective-less@5.0.1': resolution: {integrity: sha512-Y6+WUMsTFWE5jb20IFP4YGa5IrGY/+a/FbOSjDF/wz9gepU2hwCYSXRHP/vPwBvwcY3SVMASt4yXxbXNXigmZQ==} @@ -1145,14 +1111,14 @@ packages: '@electric-sql/pglite@0.3.16': resolution: {integrity: sha512-mZkZfOd9OqTMHsK+1cje8OSzfAQcpD7JmILXTl5ahdempjUDdmg4euf1biDex5/LfQIDJ3gvCu6qDgdnDxfJmA==} - '@emnapi/core@1.8.1': - resolution: {integrity: sha512-AvT9QFpxK0Zd8J0jopedNm+w/2fIzvtPKPjqyw9jwvBaReTTqPBk9Hixaz7KbjimP+QNz605/XnjFcDAL2pqBg==} + '@emnapi/core@1.9.1': + resolution: {integrity: sha512-mukuNALVsoix/w1BJwFzwXBN/dHeejQtuVzcDsfOEsdpCumXb/E9j8w11h5S54tT1xhifGfbbSm/ICrObRb3KA==} - '@emnapi/runtime@1.8.1': - resolution: {integrity: sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg==} + '@emnapi/runtime@1.9.1': + resolution: {integrity: sha512-VYi5+ZVLhpgK4hQ0TAjiQiZ6ol0oe4mBx7mVv7IflsiEp0OWoVsp/+f9Vc1hOhE0TtkORVrI1GvzyreqpgWtkA==} - '@emnapi/wasi-threads@1.1.0': - resolution: {integrity: sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==} + '@emnapi/wasi-threads@1.2.0': + resolution: {integrity: sha512-N10dEJNSsUx41Z6pZsXU8FjPjpBEplgH24sfkmITrBED1/U2Esum9F3lfLrMjKHHjmi557zQn7kR9R+XWXu5Rg==} '@emotion/babel-plugin@11.13.5': resolution: {integrity: sha512-pxHCpT2ex+0q+HH91/zsdHkw/lXd468DIN2zvfvLtPKLLMo6gQj7oLObq8PhkrxOZb/gGCq03S3Z7PDhS8pduQ==} @@ -1984,28 +1950,28 @@ packages: resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint/config-array@0.23.2': - resolution: {integrity: sha512-YF+fE6LV4v5MGWRGj7G404/OZzGNepVF8fxk7jqmqo3lrza7a0uUcDnROGRBG1WFC1omYUS/Wp1f42i0M+3Q3A==} + '@eslint/config-array@0.23.3': + resolution: {integrity: sha512-j+eEWmB6YYLwcNOdlwQ6L2OsptI/LO6lNBuLIqe5R7RetD658HLoF+Mn7LzYmAWWNNzdC6cqP+L6r8ujeYXWLw==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@eslint/config-helpers@0.5.2': - resolution: {integrity: sha512-a5MxrdDXEvqnIq+LisyCX6tQMPF/dSJpCfBgBauY+pNZ28yCtSsTvyTYrMhaI+LK26bVyCJfJkT0u8KIj2i1dQ==} + '@eslint/config-helpers@0.5.3': + resolution: {integrity: sha512-lzGN0onllOZCGroKJmRwY6QcEHxbjBw1gwB8SgRSqK8YbbtEXMvKynsXc3553ckIEBxsbMBU7oOZXKIPGZNeZw==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@eslint/core@1.1.0': - resolution: {integrity: sha512-/nr9K9wkr3P1EzFTdFdMoLuo1PmIxjmwvPozwoSodjNBdefGujXQUF93u1DDZpEaTuDvMsIQddsd35BwtrW9Xw==} + '@eslint/core@1.1.1': + resolution: {integrity: sha512-QUPblTtE51/7/Zhfv8BDwO0qkkzQL7P/aWWbqcf4xWLEYn1oKjdO0gglQBB4GAsu7u6wjijbCmzsUTy6mnk6oQ==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} '@eslint/js@9.39.2': resolution: {integrity: sha512-q1mjIoW1VX4IvSocvM/vbTiveKC4k9eLrajNEuSsmjymSDEbpGddtpfOoN7YGAqBK3NG+uqo8ia4PDTt8buCYA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/object-schema@3.0.2': - resolution: {integrity: sha512-HOy56KJt48Bx8KmJ+XGQNSUMT/6dZee/M54XyUyuvTvPXJmsERRvBchsUVx1UMe1WwIH49XLAczNC7V2INsuUw==} + '@eslint/object-schema@3.0.3': + resolution: {integrity: sha512-iM869Pugn9Nsxbh/YHRqYiqd23AmIbxJOcpUMOuWCVNdoQJ5ZtwL6h3t0bcZzJUlC3Dq9jCFCESBZnX0GTv7iQ==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@eslint/plugin-kit@0.6.0': - resolution: {integrity: sha512-bIZEUzOI1jkhviX2cp5vNyXQc6olzb2ohewQubuYlMXZ2Q/XjBO0x0XhGPvc9fjSIiUN0vw+0hq53BJ4eQSJKQ==} + '@eslint/plugin-kit@0.6.1': + resolution: {integrity: sha512-iH1B076HoAshH1mLpHMgwdGeTs0CYwL0SPMkGuSebZrwBp16v415e9NZXg2jtrqPVQjf6IANe2Vtlr5KswtcZQ==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} '@fastify/accept-negotiator@2.0.1': @@ -2042,14 +2008,14 @@ packages: '@fastify/static@9.0.0': resolution: {integrity: sha512-r64H8Woe/vfilg5RTy7lwWlE8ZZcTrc3kebYFMEUBrMqlydhQyoiExQXdYAy2REVpST/G35+stAM8WYp1WGmMA==} - '@floating-ui/core@1.7.3': - resolution: {integrity: sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w==} + '@floating-ui/core@1.7.5': + resolution: {integrity: sha512-1Ih4WTWyw0+lKyFMcBHGbb5U5FtuHJuujoyyr5zTaWS5EYMeT6Jb2AuDeftsCsEuchO+mM2ij5+q9crhydzLhQ==} - '@floating-ui/dom@1.7.4': - resolution: {integrity: sha512-OOchDgh4F2CchOX94cRVqhvy7b3AFb+/rQXyswmzmGakRfkMgoWVjfnLWkRirfLEfuD4ysVW16eXzwt3jHIzKA==} + '@floating-ui/dom@1.7.6': + resolution: {integrity: sha512-9gZSAI5XM36880PPMm//9dfiEngYoC6Am2izES1FF406YFsjvyBMmeJ2g4SAju3xWwtuynNRFL2s9hgxpLI5SQ==} - '@floating-ui/utils@0.2.10': - resolution: {integrity: sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==} + '@floating-ui/utils@0.2.11': + resolution: {integrity: sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg==} '@humanfs/core@0.19.1': resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} @@ -2074,8 +2040,8 @@ packages: '@iarna/toml@2.2.5': resolution: {integrity: sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==} - '@iconify/json@2.2.449': - resolution: {integrity: sha512-23uDJsjBeUXqK66dchHDN/YulLeXxUDvAKLwYVKzL0UDT7A9UyHtHPwcOUNf0rbA452ZQMVqk8jsyDtg+xcheg==} + '@iconify/json@2.2.454': + resolution: {integrity: sha512-U1c0+LBtcF4YDQGOVZpoA4w96hBcIVHFjBcg60pFdnF+CApRjnlIp27Jf1g7BaZlJ+vYcExyc/1EjUyZrY8MFQ==} '@iconify/types@2.0.0': resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} @@ -2083,8 +2049,8 @@ packages: '@iconify/utils@3.1.0': resolution: {integrity: sha512-Zlzem1ZXhI1iHeeERabLNzBHdOa4VhQbqAcOQaMKuTuyZCpwKbC2R4Dd0Zo3g9EAc+Y4fiarO8HIHRAth7+skw==} - '@img/colour@1.0.0': - resolution: {integrity: sha512-A5P/LfWGFSl6nsckYtjw9da+19jB8hkJ6ACTGcDfEJ0aE+l2n2El7dsVM7UVHZQ9s2lmYMWlrS21YLy2IR1LUw==} + '@img/colour@1.1.0': + resolution: {integrity: sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==} engines: {node: '>=18'} '@img/sharp-darwin-arm64@0.33.5': @@ -2328,8 +2294,8 @@ packages: '@import-maps/resolve@2.0.0': resolution: {integrity: sha512-RwzRTpmrrS6Q1ZhQExwuxJGK1Wqhv4stt+OF2JzS+uawewpwNyU7EJL1WpBex7aDiiGLs4FsXGkfUBdYuX7xiQ==} - '@inquirer/external-editor@1.0.2': - resolution: {integrity: sha512-yy9cOoBnx58TlsPrIxauKIFQTiyH+0MK4e97y4sV9ERbI+zDxw7i2hxHLCIEGIE/8PPvDxGhgzIOTSOWcs6/MQ==} + '@inquirer/external-editor@1.0.3': + resolution: {integrity: sha512-RWbSrDiYmO4LbejWY7ttpxczuwQyZLBUyygsA9Nsv95hpzUWwnNTVQmAq3xuh7vNwCp07UTmE5i11XAEExx4RA==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -2409,13 +2375,13 @@ packages: '@libsql/core@0.15.15': resolution: {integrity: sha512-C88Z6UKl+OyuKKPwz224riz02ih/zHYI3Ho/LAcVOgjsunIRZoBw7fjRfaH9oPMmSNeQfhGklSG2il1URoOIsA==} - '@libsql/darwin-arm64@0.5.22': - resolution: {integrity: sha512-4B8ZlX3nIDPndfct7GNe0nI3Yw6ibocEicWdC4fvQbSs/jdq/RC2oCsoJxJ4NzXkvktX70C1J4FcmmoBy069UA==} + '@libsql/darwin-arm64@0.5.29': + resolution: {integrity: sha512-K+2RIB1OGFPYQbfay48GakLhqf3ArcbHqPFu7EZiaUcRgFcdw8RoltsMyvbj5ix2fY0HV3Q3Ioa/ByvQdaSM0A==} cpu: [arm64] os: [darwin] - '@libsql/darwin-x64@0.5.22': - resolution: {integrity: sha512-ny2HYWt6lFSIdNFzUFIJ04uiW6finXfMNJ7wypkAD8Pqdm6nAByO+Fdqu8t7sD0sqJGeUCiOg480icjyQ2/8VA==} + '@libsql/darwin-x64@0.5.29': + resolution: {integrity: sha512-OtT+KFHsKFy1R5FVadr8FJ2Bb1mghtXTyJkxv0trocq7NuHntSki1eUbxpO5ezJesDvBlqFjnWaYYY516QNLhQ==} cpu: [x64] os: [darwin] @@ -2429,38 +2395,38 @@ packages: '@libsql/isomorphic-ws@0.1.5': resolution: {integrity: sha512-DtLWIH29onUYR00i0GlQ3UdcTRC6EP4u9w/h9LxpUZJWRMARk6dQwZ6Jkd+QdwVpuAOrdxt18v0K2uIYR3fwFg==} - '@libsql/linux-arm-gnueabihf@0.5.22': - resolution: {integrity: sha512-3Uo3SoDPJe/zBnyZKosziRGtszXaEtv57raWrZIahtQDsjxBVjuzYQinCm9LRCJCUT5t2r5Z5nLDPJi2CwZVoA==} + '@libsql/linux-arm-gnueabihf@0.5.29': + resolution: {integrity: sha512-CD4n4zj7SJTHso4nf5cuMoWoMSS7asn5hHygsDuhRl8jjjCTT3yE+xdUvI4J7zsyb53VO5ISh4cwwOtf6k2UhQ==} cpu: [arm] os: [linux] - '@libsql/linux-arm-musleabihf@0.5.22': - resolution: {integrity: sha512-LCsXh07jvSojTNJptT9CowOzwITznD+YFGGW+1XxUr7fS+7/ydUrpDfsMX7UqTqjm7xG17eq86VkWJgHJfvpNg==} + '@libsql/linux-arm-musleabihf@0.5.29': + resolution: {integrity: sha512-2Z9qBVpEJV7OeflzIR3+l5yAd4uTOLxklScYTwpZnkm2vDSGlC1PRlueLaufc4EFITkLKXK2MWBpexuNJfMVcg==} cpu: [arm] os: [linux] - '@libsql/linux-arm64-gnu@0.5.22': - resolution: {integrity: sha512-KSdnOMy88c9mpOFKUEzPskSaF3VLflfSUCBwas/pn1/sV3pEhtMF6H8VUCd2rsedwoukeeCSEONqX7LLnQwRMA==} + '@libsql/linux-arm64-gnu@0.5.29': + resolution: {integrity: sha512-gURBqaiXIGGwFNEaUj8Ldk7Hps4STtG+31aEidCk5evMMdtsdfL3HPCpvys+ZF/tkOs2MWlRWoSq7SOuCE9k3w==} cpu: [arm64] os: [linux] - '@libsql/linux-arm64-musl@0.5.22': - resolution: {integrity: sha512-mCHSMAsDTLK5YH//lcV3eFEgiR23Ym0U9oEvgZA0667gqRZg/2px+7LshDvErEKv2XZ8ixzw3p1IrBzLQHGSsw==} + '@libsql/linux-arm64-musl@0.5.29': + resolution: {integrity: sha512-fwgYZ0H8mUkyVqXZHF3mT/92iIh1N94Owi/f66cPVNsk9BdGKq5gVpoKO+7UxaNzuEH1roJp2QEwsCZMvBLpqg==} cpu: [arm64] os: [linux] - '@libsql/linux-x64-gnu@0.5.22': - resolution: {integrity: sha512-kNBHaIkSg78Y4BqAdgjcR2mBilZXs4HYkAmi58J+4GRwDQZh5fIUWbnQvB9f95DkWUIGVeenqLRFY2pcTmlsew==} + '@libsql/linux-x64-gnu@0.5.29': + resolution: {integrity: sha512-y14V0vY0nmMC6G0pHeJcEarcnGU2H6cm21ZceRkacWHvQAEhAG0latQkCtoS2njFOXiYIg+JYPfAoWKbi82rkg==} cpu: [x64] os: [linux] - '@libsql/linux-x64-musl@0.5.22': - resolution: {integrity: sha512-UZ4Xdxm4pu3pQXjvfJiyCzZop/9j/eA2JjmhMaAhe3EVLH2g11Fy4fwyUp9sT1QJYR1kpc2JLuybPM0kuXv/Tg==} + '@libsql/linux-x64-musl@0.5.29': + resolution: {integrity: sha512-gquqwA/39tH4pFl+J9n3SOMSymjX+6kZ3kWgY3b94nXFTwac9bnFNMffIomgvlFaC4ArVqMnOZD3nuJ3H3VO1w==} cpu: [x64] os: [linux] - '@libsql/win32-x64-msvc@0.5.22': - resolution: {integrity: sha512-Fj0j8RnBpo43tVZUVoNK6BV/9AtDUM5S7DF3LB4qTYg1LMSZqi3yeCneUTLJD6XomQJlZzbI4mst89yspVSAnA==} + '@libsql/win32-x64-msvc@0.5.29': + resolution: {integrity: sha512-4/0CvEdhi6+KjMxMaVbFM2n2Z44escBRoEYpR+gZg64DdetzGnYm8mcNLcoySaDJZNaBd6wz5DNdgRmcI4hXcg==} cpu: [x64] os: [win32] @@ -2474,8 +2440,8 @@ packages: '@manypkg/get-packages@1.1.3': resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==} - '@mapbox/node-pre-gyp@2.0.0': - resolution: {integrity: sha512-llMXd39jtP0HpQLVI37Bf1m2ADlEb35GYSh1SDSLsBhR+5iCxiNGlT31yqbNtVHygHAtMy6dWFERpU2JgufhPg==} + '@mapbox/node-pre-gyp@2.0.3': + resolution: {integrity: sha512-uwPAhccfFJlsfCxMYTwOdVfOz3xqyj8xYL3zJj8f0pb30tLohnnFPhLuqp4/qoEz8sNxe4SESZedcBojRefIzg==} engines: {node: '>=18'} hasBin: true @@ -2502,8 +2468,8 @@ packages: '@modular-forms/qwik@0.29.1': resolution: {integrity: sha512-xJb8wZXHEL0ioM5TlDpHUrXE4VKDf5OZbSoMtzmew9aHUGMDfsIGzSim408LaHHXa233YB76RhQZZAmO5Pgitg==} - '@mui/core-downloads-tracker@7.3.2': - resolution: {integrity: sha512-AOyfHjyDKVPGJJFtxOlept3EYEdLoar/RvssBTWVAvDJGIE676dLi2oT/Kx+FoVXFoA/JdV7DEMq/BVWV3KHRw==} + '@mui/core-downloads-tracker@7.3.9': + resolution: {integrity: sha512-MOkOCTfbMJwLshlBCKJ59V2F/uaLYfmKnN76kksj6jlGUVdI25A9Hzs08m+zjBRdLv+sK7Rqdsefe8X7h/6PCw==} '@mui/material@7.3.2': resolution: {integrity: sha512-qXvbnawQhqUVfH1LMgMaiytP+ZpGoYhnGl7yYq2x57GYzcFL/iPzSZ3L30tlbwEjSVKNYcbiKO8tANR1tadjUg==} @@ -2525,8 +2491,8 @@ packages: '@types/react': optional: true - '@mui/private-theming@7.3.2': - resolution: {integrity: sha512-ha7mFoOyZGJr75xeiO9lugS3joRROjc8tG1u4P50dH0KR7bwhHznVMcYg7MouochUy0OxooJm/OOSpJ7gKcMvg==} + '@mui/private-theming@7.3.9': + resolution: {integrity: sha512-ErIyRQvsiQEq7Yvcvfw9UDHngaqjMy9P3JDPnRAaKG5qhpl2C4tX/W1S4zJvpu+feihmZJStjIyvnv6KDbIrlw==} engines: {node: '>=14.0.0'} peerDependencies: '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 @@ -2535,8 +2501,8 @@ packages: '@types/react': optional: true - '@mui/styled-engine@7.3.2': - resolution: {integrity: sha512-PkJzW+mTaek4e0nPYZ6qLnW5RGa0KN+eRTf5FA2nc7cFZTeM+qebmGibaTLrgQBy3UpcpemaqfzToBNkzuxqew==} + '@mui/styled-engine@7.3.9': + resolution: {integrity: sha512-JqujWt5bX4okjUPGpVof/7pvgClqh7HvIbsIBIOOlCh2u3wG/Bwp4+E1bc1dXSwkrkp9WUAoNdI5HEC+5HKvMw==} engines: {node: '>=14.0.0'} peerDependencies: '@emotion/react': ^11.4.1 @@ -2564,16 +2530,16 @@ packages: '@types/react': optional: true - '@mui/types@7.4.6': - resolution: {integrity: sha512-NVBbIw+4CDMMppNamVxyTccNv0WxtDb7motWDlMeSC8Oy95saj1TIZMGynPpFLePt3yOD8TskzumeqORCgRGWw==} + '@mui/types@7.4.12': + resolution: {integrity: sha512-iKNAF2u9PzSIj40CjvKJWxFXJo122jXVdrmdh0hMYd+FR+NuJMkr/L88XwWLCRiJ5P1j+uyac25+Kp6YC4hu6w==} peerDependencies: '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 peerDependenciesMeta: '@types/react': optional: true - '@mui/utils@7.3.2': - resolution: {integrity: sha512-4DMWQGenOdLnM3y/SdFQFwKsCLM+mqxzvoWp9+x2XdEzXapkznauHLiXtSohHs/mc0+5/9UACt1GdugCX2te5g==} + '@mui/utils@7.3.9': + resolution: {integrity: sha512-U6SdZaGbfb65fqTsH3V5oJdFj9uYwyLE2WVuNvmbggTSDBb8QHrFsqY8BN3taK9t3yJ8/BPHD/kNvLNyjwM7Yw==} engines: {node: '>=14.0.0'} peerDependencies: '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 @@ -2619,8 +2585,11 @@ packages: '@napi-rs/triples@1.2.0': resolution: {integrity: sha512-HAPjR3bnCsdXBsATpDIP5WCrw0JcACwhhrwIAQhiR46n+jm+a2F8kBsfseAuWtSyQ+H3Yebt2k43B5dy+04yMA==} - '@napi-rs/wasm-runtime@1.1.1': - resolution: {integrity: sha512-p64ah1M1ld8xjWv3qbvFwHiFVWrq1yFvV4f7w+mzaqiR4IlSgkqhcRdHwsGgomwzBH51sRY4NEowLxnaBjcW/A==} + '@napi-rs/wasm-runtime@1.1.2': + resolution: {integrity: sha512-sNXv5oLJ7ob93xkZ1XnxisYhGYXfaG9f65/ZgYuAu3qt7b3NadcOEhLvx28hv31PgX8SZJRYrAIPQilQmFpLVw==} + peerDependencies: + '@emnapi/core': ^1.7.1 + '@emnapi/runtime': ^1.7.1 '@neon-rs/load@0.0.4': resolution: {integrity: sha512-kTPhdZyTQxB+2wpiRcFWrDcejc4JI6tkPuS7UZCG4l6Zvc5kU/gGQ/ozvHTh1XR5tS+UlfAfGuPajjzQjCiHCw==} @@ -3395,6 +3364,9 @@ packages: '@oxc-project/types@0.115.0': resolution: {integrity: sha512-4n91DKnebUS4yjUHl2g3/b2T+IUdCfmoZGhmwsovZCDaJSs+QkVAM+0AqqTxHSsHfeiMuueT75cZaZcT/m0pSw==} + '@oxc-project/types@0.123.0': + resolution: {integrity: sha512-YtECP/y8Mj1lSHiUWGSRzy/C6teUKlS87dEfuVKT09LgQbUsBW1rNg+MiJ4buGu3yuADV60gbIvo9/HplA56Ew==} + '@oxc-project/types@0.82.3': resolution: {integrity: sha512-6nCUxBnGX0c6qfZW5MaF6/fmu5dHJDMiMPaioKHKs5mi5+8/FHQ7WGjgQIz1zxpmceMYfdIXkOaLYE+ejbuOtA==} @@ -3520,92 +3492,92 @@ packages: '@panva/hkdf@1.2.1': resolution: {integrity: sha512-6oclG6Y3PiDFcoyk8srjLfVKyMfVCKJ27JwNPViuXziFpmdz+MZnZN/aKY0JGXgYuO/VghU0jcOAZgWXZ1Dmrw==} - '@parcel/watcher-android-arm64@2.5.1': - resolution: {integrity: sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==} + '@parcel/watcher-android-arm64@2.5.6': + resolution: {integrity: sha512-YQxSS34tPF/6ZG7r/Ih9xy+kP/WwediEUsqmtf0cuCV5TPPKw/PQHRhueUo6JdeFJaqV3pyjm0GdYjZotbRt/A==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [android] - '@parcel/watcher-darwin-arm64@2.5.1': - resolution: {integrity: sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==} + '@parcel/watcher-darwin-arm64@2.5.6': + resolution: {integrity: sha512-Z2ZdrnwyXvvvdtRHLmM4knydIdU9adO3D4n/0cVipF3rRiwP+3/sfzpAwA/qKFL6i1ModaabkU7IbpeMBgiVEA==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [darwin] - '@parcel/watcher-darwin-x64@2.5.1': - resolution: {integrity: sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==} + '@parcel/watcher-darwin-x64@2.5.6': + resolution: {integrity: sha512-HgvOf3W9dhithcwOWX9uDZyn1lW9R+7tPZ4sug+NGrGIo4Rk1hAXLEbcH1TQSqxts0NYXXlOWqVpvS1SFS4fRg==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [darwin] - '@parcel/watcher-freebsd-x64@2.5.1': - resolution: {integrity: sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==} + '@parcel/watcher-freebsd-x64@2.5.6': + resolution: {integrity: sha512-vJVi8yd/qzJxEKHkeemh7w3YAn6RJCtYlE4HPMoVnCpIXEzSrxErBW5SJBgKLbXU3WdIpkjBTeUNtyBVn8TRng==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [freebsd] - '@parcel/watcher-linux-arm-glibc@2.5.1': - resolution: {integrity: sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==} + '@parcel/watcher-linux-arm-glibc@2.5.6': + resolution: {integrity: sha512-9JiYfB6h6BgV50CCfasfLf/uvOcJskMSwcdH1PHH9rvS1IrNy8zad6IUVPVUfmXr+u+Km9IxcfMLzgdOudz9EQ==} engines: {node: '>= 10.0.0'} cpu: [arm] os: [linux] - '@parcel/watcher-linux-arm-musl@2.5.1': - resolution: {integrity: sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==} + '@parcel/watcher-linux-arm-musl@2.5.6': + resolution: {integrity: sha512-Ve3gUCG57nuUUSyjBq/MAM0CzArtuIOxsBdQ+ftz6ho8n7s1i9E1Nmk/xmP323r2YL0SONs1EuwqBp2u1k5fxg==} engines: {node: '>= 10.0.0'} cpu: [arm] os: [linux] - '@parcel/watcher-linux-arm64-glibc@2.5.1': - resolution: {integrity: sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==} + '@parcel/watcher-linux-arm64-glibc@2.5.6': + resolution: {integrity: sha512-f2g/DT3NhGPdBmMWYoxixqYr3v/UXcmLOYy16Bx0TM20Tchduwr4EaCbmxh1321TABqPGDpS8D/ggOTaljijOA==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [linux] - '@parcel/watcher-linux-arm64-musl@2.5.1': - resolution: {integrity: sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==} + '@parcel/watcher-linux-arm64-musl@2.5.6': + resolution: {integrity: sha512-qb6naMDGlbCwdhLj6hgoVKJl2odL34z2sqkC7Z6kzir8b5W65WYDpLB6R06KabvZdgoHI/zxke4b3zR0wAbDTA==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [linux] - '@parcel/watcher-linux-x64-glibc@2.5.1': - resolution: {integrity: sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==} + '@parcel/watcher-linux-x64-glibc@2.5.6': + resolution: {integrity: sha512-kbT5wvNQlx7NaGjzPFu8nVIW1rWqV780O7ZtkjuWaPUgpv2NMFpjYERVi0UYj1msZNyCzGlaCWEtzc+exjMGbQ==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [linux] - '@parcel/watcher-linux-x64-musl@2.5.1': - resolution: {integrity: sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==} + '@parcel/watcher-linux-x64-musl@2.5.6': + resolution: {integrity: sha512-1JRFeC+h7RdXwldHzTsmdtYR/Ku8SylLgTU/reMuqdVD7CtLwf0VR1FqeprZ0eHQkO0vqsbvFLXUmYm/uNKJBg==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [linux] - '@parcel/watcher-wasm@2.5.1': - resolution: {integrity: sha512-RJxlQQLkaMMIuWRozy+z2vEqbaQlCuaCgVZIUCzQLYggY22LZbP5Y1+ia+FD724Ids9e+XIyOLXLrLgQSHIthw==} + '@parcel/watcher-wasm@2.5.6': + resolution: {integrity: sha512-byAiBZ1t3tXQvc8dMD/eoyE7lTXYorhn+6uVW5AC+JGI1KtJC/LvDche5cfUE+qiefH+Ybq0bUCJU0aB1cSHUA==} engines: {node: '>= 10.0.0'} bundledDependencies: - napi-wasm - '@parcel/watcher-win32-arm64@2.5.1': - resolution: {integrity: sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==} + '@parcel/watcher-win32-arm64@2.5.6': + resolution: {integrity: sha512-3ukyebjc6eGlw9yRt678DxVF7rjXatWiHvTXqphZLvo7aC5NdEgFufVwjFfY51ijYEWpXbqF5jtrK275z52D4Q==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [win32] - '@parcel/watcher-win32-ia32@2.5.1': - resolution: {integrity: sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==} + '@parcel/watcher-win32-ia32@2.5.6': + resolution: {integrity: sha512-k35yLp1ZMwwee3Ez/pxBi5cf4AoBKYXj00CZ80jUz5h8prpiaQsiRPKQMxoLstNuqe2vR4RNPEAEcjEFzhEz/g==} engines: {node: '>= 10.0.0'} cpu: [ia32] os: [win32] - '@parcel/watcher-win32-x64@2.5.1': - resolution: {integrity: sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==} + '@parcel/watcher-win32-x64@2.5.6': + resolution: {integrity: sha512-hbQlYcCq5dlAX9Qx+kFb0FHue6vbjlf0FrNzSKdYK2APUf7tGfGxQCk2ihEREmbR6ZMc0MVAD5RIX/41gpUzTw==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [win32] - '@parcel/watcher@2.5.1': - resolution: {integrity: sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==} + '@parcel/watcher@2.5.6': + resolution: {integrity: sha512-tmmZ3lQxAe/k/+rNnXQRawJ4NjxO2hqiOLTHvWchtGZULp4RyFeh6aU4XdOYBFe2KE1oShQTv4AblOs2iOrNnQ==} engines: {node: '>= 10.0.0'} '@pinojs/redact@0.4.0': @@ -3632,8 +3604,8 @@ packages: resolution: {integrity: sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==} engines: {node: '>=12.22.0'} - '@pnpm/npm-conf@2.3.1': - resolution: {integrity: sha512-c83qWb22rNRuB0UaVCI0uRPNRr8Z0FWnEIvT47jiHAmOIUHbBOg5XvV7pM5x+rKn9HRpjxquDbXYSXr3fAKFcw==} + '@pnpm/npm-conf@3.0.2': + resolution: {integrity: sha512-h104Kh26rR8tm+a3Qkc5S4VLYint3FE48as7+/5oCEcKR2idC/pF1G6AhIXKI+eHPJa/3J9i5z0Al47IeGHPkA==} engines: {node: '>=12'} '@pnpm/tabtab@0.5.4': @@ -3677,10 +3649,102 @@ packages: resolution: {integrity: sha512-e0wY8vmx0nDSUiuCATlk+ojTvdBV4txIGHHWjZW5SRkv4XB8H9+3WSDcLPz0ItUdRyzcrohE9k2jtQI/98aRPA==} engines: {node: '>=15.0.0'} - '@rolldown/browser@1.0.0-beta.59': - resolution: {integrity: sha512-4mPCTcp0HHFOfaQTz+Qb7bFHovQFWadTAX+GgbGwGXGUi41xMv6epDtIBpC+O/+odX2n0z1nXyOPGvra4ufW4Q==} + '@rolldown/binding-android-arm64@1.0.0-rc.13': + resolution: {integrity: sha512-5ZiiecKH2DXAVJTNN13gNMUcCDg4Jy8ZjbXEsPnqa248wgOVeYRX0iqXXD5Jz4bI9BFHgKsI2qmyJynstbmr+g==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [android] + + '@rolldown/binding-darwin-arm64@1.0.0-rc.13': + resolution: {integrity: sha512-tz/v/8G77seu8zAB3A5sK3UFoOl06zcshEzhUO62sAEtrEuW/H1CcyoupOrD+NbQJytYgA4CppXPzlrmp4JZKA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [darwin] + + '@rolldown/binding-darwin-x64@1.0.0-rc.13': + resolution: {integrity: sha512-8DakphqOz8JrMYWTJmWA+vDJxut6LijZ8Xcdc4flOlAhU7PNVwo2MaWBF9iXjJAPo5rC/IxEFZDhJ3GC7NHvug==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [darwin] + + '@rolldown/binding-freebsd-x64@1.0.0-rc.13': + resolution: {integrity: sha512-4wBQFfjDuXYN/SVI8inBF3Aa+isq40rc6VMFbk5jcpolUBTe5cYnMsHZ51nFWsx3PVyyNN3vgoESki0Hmr/4BA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [freebsd] + + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.13': + resolution: {integrity: sha512-JW/e4yPIXLms+jmnbwwy5LA/LxVwZUWLN8xug+V200wzaVi5TEGIWQlh8o91gWYFxW609euI98OCCemmWGuPrw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + + '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.13': + resolution: {integrity: sha512-ZfKWpXiUymDnavepCaM6KG/uGydJ4l2nBmMxg60Ci4CbeefpqjPWpfaZM7PThOhk2dssqBAcwLc6rAyr0uTdXg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + + '@rolldown/binding-linux-arm64-musl@1.0.0-rc.13': + resolution: {integrity: sha512-bmRg3O6Z0gq9yodKKWCIpnlH051sEfdVwt+6m5UDffAQMUUqU0xjnQqqAUm+Gu7ofAAly9DqiQDtKu2nPDEABA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + + '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.13': + resolution: {integrity: sha512-8Wtnbw4k7pMYN9B/mOEAsQ8HOiq7AZ31Ig4M9BKn2So4xRaFEhtCSa4ZJaOutOWq50zpgR4N5+L/opnlaCx8wQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ppc64] + os: [linux] + + '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.13': + resolution: {integrity: sha512-D/0Nlo8mQuxSMohNJUF2lDXWRsFDsHldfRRgD9bRgktj+EndGPj4DOV37LqDKPYS+osdyhZEH7fTakTAEcW7qg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [s390x] + os: [linux] + + '@rolldown/binding-linux-x64-gnu@1.0.0-rc.13': + resolution: {integrity: sha512-eRrPvat2YaVQcwwKi/JzOP6MKf1WRnOCr+VaI3cTWz3ZoLcP/654z90lVCJ4dAuMEpPdke0n+qyAqXDZdIC4rA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + + '@rolldown/binding-linux-x64-musl@1.0.0-rc.13': + resolution: {integrity: sha512-PsdONiFRp8hR8KgVjTWjZ9s7uA3uueWL0t74/cKHfM4dR5zXYv4AjB8BvA+QDToqxAFg4ZkcVEqeu5F7inoz5w==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + + '@rolldown/binding-openharmony-arm64@1.0.0-rc.13': + resolution: {integrity: sha512-hCNXgC5dI3TVOLrPT++PKFNZ+1EtS0mLQwfXXXSUD/+rGlB65gZDwN/IDuxLpQP4x8RYYHqGomlUXzpO8aVI2w==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [openharmony] + + '@rolldown/binding-wasm32-wasi@1.0.0-rc.13': + resolution: {integrity: sha512-viLS5C5et8NFtLWw9Sw3M/w4vvnVkbWkO7wSNh3C+7G1+uCkGpr6PcjNDSFcNtmXY/4trjPBqUfcOL+P3sWy/g==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + + '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.13': + resolution: {integrity: sha512-Fqa3Tlt1xL4wzmAYxGNFV36Hb+VfPc9PYU+E25DAnswXv3ODDu/yyWjQDbXMo5AGWkQVjLgQExuVu8I/UaZhPQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [win32] + + '@rolldown/binding-win32-x64-msvc@1.0.0-rc.13': + resolution: {integrity: sha512-/pLI5kPkGEi44TDlnbio3St/5gUFeN51YWNAk/Gnv6mEQBOahRBh52qVFVBpmrnU01n2yysvBML9Ynu7K4kGAQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [win32] + + '@rolldown/browser@1.0.0-rc.12': + resolution: {integrity: sha512-E6XVYtkrEiHE2JzKr4Bntzi/yvYDXZi9RNCYtgoZ7i9fqn9W8sTlReV2KO2H8nc2mN+0YHZeKmeuKf8ct4r1CQ==} hasBin: true + '@rolldown/pluginutils@1.0.0-rc.13': + resolution: {integrity: sha512-3ngTAv6F/Py35BsYbeeLeecvhMKdsKm4AoOETVhAA+Qc8nrA2I0kF7oa93mE9qnIurngOSpMnQ0x2nQY2FPviA==} + '@rollup/pluginutils@5.3.0': resolution: {integrity: sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==} engines: {node: '>=14.0.0'} @@ -3924,8 +3988,8 @@ packages: peerDependencies: '@supabase/supabase-js': ^2.43.4 - '@supabase/storage-js@2.90.0': - resolution: {integrity: sha512-50XiDACfHXhibm20J94TEdOYMLXm4fZCHTdAAs9xBDJTBA4RXVN52Bx1MVW34pu3S72rAgObQxVyAFaZ+7+7Tg==} + '@supabase/storage-js@2.100.0': + resolution: {integrity: sha512-d4EeuK6RNIgYNA2MU9kj8lQrLm5AzZ+WwpWjGkii6SADQNIGTC/uiaTRu02XJ5AmFALQfo8fLl9xuCkO6Xw+iQ==} engines: {node: '>=20.0.0'} '@supabase/supabase-js@2.53.0': @@ -3936,65 +4000,65 @@ packages: peerDependencies: acorn: ^8.9.0 - '@tailwindcss/node@4.1.18': - resolution: {integrity: sha512-DoR7U1P7iYhw16qJ49fgXUlry1t4CpXeErJHnQ44JgTSKMaZUdf17cfn5mHchfJ4KRBZRFA/Coo+MUF5+gOaCQ==} + '@tailwindcss/node@4.2.2': + resolution: {integrity: sha512-pXS+wJ2gZpVXqFaUEjojq7jzMpTGf8rU6ipJz5ovJV6PUGmlJ+jvIwGrzdHdQ80Sg+wmQxUFuoW1UAAwHNEdFA==} - '@tailwindcss/oxide-android-arm64@4.1.18': - resolution: {integrity: sha512-dJHz7+Ugr9U/diKJA0W6N/6/cjI+ZTAoxPf9Iz9BFRF2GzEX8IvXxFIi/dZBloVJX/MZGvRuFA9rqwdiIEZQ0Q==} - engines: {node: '>= 10'} + '@tailwindcss/oxide-android-arm64@4.2.2': + resolution: {integrity: sha512-dXGR1n+P3B6748jZO/SvHZq7qBOqqzQ+yFrXpoOWWALWndF9MoSKAT3Q0fYgAzYzGhxNYOoysRvYlpixRBBoDg==} + engines: {node: '>= 20'} cpu: [arm64] os: [android] - '@tailwindcss/oxide-darwin-arm64@4.1.18': - resolution: {integrity: sha512-Gc2q4Qhs660bhjyBSKgq6BYvwDz4G+BuyJ5H1xfhmDR3D8HnHCmT/BSkvSL0vQLy/nkMLY20PQ2OoYMO15Jd0A==} - engines: {node: '>= 10'} + '@tailwindcss/oxide-darwin-arm64@4.2.2': + resolution: {integrity: sha512-iq9Qjr6knfMpZHj55/37ouZeykwbDqF21gPFtfnhCCKGDcPI/21FKC9XdMO/XyBM7qKORx6UIhGgg6jLl7BZlg==} + engines: {node: '>= 20'} cpu: [arm64] os: [darwin] - '@tailwindcss/oxide-darwin-x64@4.1.18': - resolution: {integrity: sha512-FL5oxr2xQsFrc3X9o1fjHKBYBMD1QZNyc1Xzw/h5Qu4XnEBi3dZn96HcHm41c/euGV+GRiXFfh2hUCyKi/e+yw==} - engines: {node: '>= 10'} + '@tailwindcss/oxide-darwin-x64@4.2.2': + resolution: {integrity: sha512-BlR+2c3nzc8f2G639LpL89YY4bdcIdUmiOOkv2GQv4/4M0vJlpXEa0JXNHhCHU7VWOKWT/CjqHdTP8aUuDJkuw==} + engines: {node: '>= 20'} cpu: [x64] os: [darwin] - '@tailwindcss/oxide-freebsd-x64@4.1.18': - resolution: {integrity: sha512-Fj+RHgu5bDodmV1dM9yAxlfJwkkWvLiRjbhuO2LEtwtlYlBgiAT4x/j5wQr1tC3SANAgD+0YcmWVrj8R9trVMA==} - engines: {node: '>= 10'} + '@tailwindcss/oxide-freebsd-x64@4.2.2': + resolution: {integrity: sha512-YUqUgrGMSu2CDO82hzlQ5qSb5xmx3RUrke/QgnoEx7KvmRJHQuZHZmZTLSuuHwFf0DJPybFMXMYf+WJdxHy/nQ==} + engines: {node: '>= 20'} cpu: [x64] os: [freebsd] - '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.18': - resolution: {integrity: sha512-Fp+Wzk/Ws4dZn+LV2Nqx3IilnhH51YZoRaYHQsVq3RQvEl+71VGKFpkfHrLM/Li+kt5c0DJe/bHXK1eHgDmdiA==} - engines: {node: '>= 10'} + '@tailwindcss/oxide-linux-arm-gnueabihf@4.2.2': + resolution: {integrity: sha512-FPdhvsW6g06T9BWT0qTwiVZYE2WIFo2dY5aCSpjG/S/u1tby+wXoslXS0kl3/KXnULlLr1E3NPRRw0g7t2kgaQ==} + engines: {node: '>= 20'} cpu: [arm] os: [linux] - '@tailwindcss/oxide-linux-arm64-gnu@4.1.18': - resolution: {integrity: sha512-S0n3jboLysNbh55Vrt7pk9wgpyTTPD0fdQeh7wQfMqLPM/Hrxi+dVsLsPrycQjGKEQk85Kgbx+6+QnYNiHalnw==} - engines: {node: '>= 10'} + '@tailwindcss/oxide-linux-arm64-gnu@4.2.2': + resolution: {integrity: sha512-4og1V+ftEPXGttOO7eCmW7VICmzzJWgMx+QXAJRAhjrSjumCwWqMfkDrNu1LXEQzNAwz28NCUpucgQPrR4S2yw==} + engines: {node: '>= 20'} cpu: [arm64] os: [linux] - '@tailwindcss/oxide-linux-arm64-musl@4.1.18': - resolution: {integrity: sha512-1px92582HkPQlaaCkdRcio71p8bc8i/ap5807tPRDK/uw953cauQBT8c5tVGkOwrHMfc2Yh6UuxaH4vtTjGvHg==} - engines: {node: '>= 10'} + '@tailwindcss/oxide-linux-arm64-musl@4.2.2': + resolution: {integrity: sha512-oCfG/mS+/+XRlwNjnsNLVwnMWYH7tn/kYPsNPh+JSOMlnt93mYNCKHYzylRhI51X+TbR+ufNhhKKzm6QkqX8ag==} + engines: {node: '>= 20'} cpu: [arm64] os: [linux] - '@tailwindcss/oxide-linux-x64-gnu@4.1.18': - resolution: {integrity: sha512-v3gyT0ivkfBLoZGF9LyHmts0Isc8jHZyVcbzio6Wpzifg/+5ZJpDiRiUhDLkcr7f/r38SWNe7ucxmGW3j3Kb/g==} - engines: {node: '>= 10'} + '@tailwindcss/oxide-linux-x64-gnu@4.2.2': + resolution: {integrity: sha512-rTAGAkDgqbXHNp/xW0iugLVmX62wOp2PoE39BTCGKjv3Iocf6AFbRP/wZT/kuCxC9QBh9Pu8XPkv/zCZB2mcMg==} + engines: {node: '>= 20'} cpu: [x64] os: [linux] - '@tailwindcss/oxide-linux-x64-musl@4.1.18': - resolution: {integrity: sha512-bhJ2y2OQNlcRwwgOAGMY0xTFStt4/wyU6pvI6LSuZpRgKQwxTec0/3Scu91O8ir7qCR3AuepQKLU/kX99FouqQ==} - engines: {node: '>= 10'} + '@tailwindcss/oxide-linux-x64-musl@4.2.2': + resolution: {integrity: sha512-XW3t3qwbIwiSyRCggeO2zxe3KWaEbM0/kW9e8+0XpBgyKU4ATYzcVSMKteZJ1iukJ3HgHBjbg9P5YPRCVUxlnQ==} + engines: {node: '>= 20'} cpu: [x64] os: [linux] - '@tailwindcss/oxide-wasm32-wasi@4.1.18': - resolution: {integrity: sha512-LffYTvPjODiP6PT16oNeUQJzNVyJl1cjIebq/rWWBF+3eDst5JGEFSc5cWxyRCJ0Mxl+KyIkqRxk1XPEs9x8TA==} + '@tailwindcss/oxide-wasm32-wasi@4.2.2': + resolution: {integrity: sha512-eKSztKsmEsn1O5lJ4ZAfyn41NfG7vzCg496YiGtMDV86jz1q/irhms5O0VrY6ZwTUkFy/EKG3RfWgxSI3VbZ8Q==} engines: {node: '>=14.0.0'} cpu: [wasm32] bundledDependencies: @@ -4005,32 +4069,35 @@ packages: - '@emnapi/wasi-threads' - tslib - '@tailwindcss/oxide-win32-arm64-msvc@4.1.18': - resolution: {integrity: sha512-HjSA7mr9HmC8fu6bdsZvZ+dhjyGCLdotjVOgLA2vEqxEBZaQo9YTX4kwgEvPCpRh8o4uWc4J/wEoFzhEmjvPbA==} - engines: {node: '>= 10'} + '@tailwindcss/oxide-win32-arm64-msvc@4.2.2': + resolution: {integrity: sha512-qPmaQM4iKu5mxpsrWZMOZRgZv1tOZpUm+zdhhQP0VhJfyGGO3aUKdbh3gDZc/dPLQwW4eSqWGrrcWNBZWUWaXQ==} + engines: {node: '>= 20'} cpu: [arm64] os: [win32] - '@tailwindcss/oxide-win32-x64-msvc@4.1.18': - resolution: {integrity: sha512-bJWbyYpUlqamC8dpR7pfjA0I7vdF6t5VpUGMWRkXVE3AXgIZjYUYAK7II1GNaxR8J1SSrSrppRar8G++JekE3Q==} - engines: {node: '>= 10'} + '@tailwindcss/oxide-win32-x64-msvc@4.2.2': + resolution: {integrity: sha512-1T/37VvI7WyH66b+vqHj/cLwnCxt7Qt3WFu5Q8hk65aOvlwAhs7rAp1VkulBJw/N4tMirXjVnylTR72uI0HGcA==} + engines: {node: '>= 20'} cpu: [x64] os: [win32] - '@tailwindcss/oxide@4.1.18': - resolution: {integrity: sha512-EgCR5tTS5bUSKQgzeMClT6iCY3ToqE1y+ZB0AKldj809QXk1Y+3jB0upOYZrn9aGIzPtUsP7sX4QQ4XtjBB95A==} - engines: {node: '>= 10'} + '@tailwindcss/oxide@4.2.2': + resolution: {integrity: sha512-qEUA07+E5kehxYp9BVMpq9E8vnJuBHfJEC0vPC5e7iL/hw7HR61aDKoVoKzrG+QKp56vhNZe4qwkRmMC0zDLvg==} + engines: {node: '>= 20'} + + '@tailwindcss/postcss@4.2.2': + resolution: {integrity: sha512-n4goKQbW8RVXIbNKRB/45LzyUqN451deQK0nzIeauVEqjlI49slUlgKYJM2QyUzap/PcpnS7kzSUmPb1sCRvYQ==} - '@tailwindcss/vite@4.1.18': - resolution: {integrity: sha512-jVA+/UpKL1vRLg6Hkao5jldawNmRo7mQYrZtNHMIVpLfLhDml5nMRUo/8MwoX2vNXvnaXNNMedrMfMugAVX1nA==} + '@tailwindcss/vite@4.2.2': + resolution: {integrity: sha512-mEiF5HO1QqCLXoNEfXVA1Tzo+cYsrqV7w9Juj2wdUFyW07JRenqMG225MvPwr3ZD9N1bFQj46X7r33iHxLUW0w==} peerDependencies: - vite: ^5.2.0 || ^6 || ^7 + vite: ^5.2.0 || ^6 || ^7 || ^8 '@ts-morph/common@0.28.1': resolution: {integrity: sha512-W74iWf7ILp1ZKNYXY5qbddNaml7e9Sedv5lvU1V8lftlitkc9Pq1A+jlH23ltDgWYeZFFEqGCD1Ies9hqu3O+g==} - '@tsconfig/node10@1.0.11': - resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} + '@tsconfig/node10@1.0.12': + resolution: {integrity: sha512-UCYBaeFvM11aU2y3YPZ//O5Rhj+xKyzy7mvcIoAjASbigy8mHMryP5cK7dgjlz2hWxh1g5pLw084E0a/wlUSFQ==} '@tsconfig/node12@1.0.11': resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} @@ -4065,8 +4132,8 @@ packages: '@types/css-tree@2.3.11': resolution: {integrity: sha512-aEokibJOI77uIlqoBOkVbaQGC9zII0A+JH1kcTNKW2CwyYWD8KM6qdo+4c77wD3wZOQfJuNWAr9M4hdk+YhDIg==} - '@types/debug@4.1.12': - resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} + '@types/debug@4.1.13': + resolution: {integrity: sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw==} '@types/deep-eql@4.0.2': resolution: {integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==} @@ -4083,8 +4150,8 @@ packages: '@types/estree@1.0.8': resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} - '@types/express-serve-static-core@5.1.0': - resolution: {integrity: sha512-jnHMsrd0Mwa9Cf4IdOzbz543y4XJepXrbia2T4b6+spXC2We3t1y6K44D3mR8XMFSXMCf3/l7rCgddfx7UNVBA==} + '@types/express-serve-static-core@5.1.1': + resolution: {integrity: sha512-v4zIMr/cX7/d2BpAEX3KNKL/JrT1s43s96lLvvdTmza1oEvDudCqK9aF/djc/SWgy8Yh0h30TZx5VpzqFCxk5A==} '@types/express@5.0.6': resolution: {integrity: sha512-sKYVuV7Sv9fbPIt/442koC7+IIwK5olP1KWeD88e/idgoJqDm3JV/YUiPwkoKK92ylff2MGxSz1CSjsXelx0YA==} @@ -4101,8 +4168,8 @@ packages: '@types/http-errors@2.0.5': resolution: {integrity: sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==} - '@types/http-proxy@1.17.16': - resolution: {integrity: sha512-sdWoUajOB1cd0A8cRRQ1cfyWNbmFKLAqBB89Y8x5iYyG/mkJHc0YUH8pdWBy2omi9qtCpiIgGjuwO0dQST2l5w==} + '@types/http-proxy@1.17.17': + resolution: {integrity: sha512-ED6LB+Z1AVylNTu7hdzuBqOgMnvG/ld6wGCG8wFnAzKX5uyW2K3WD52v0gnLCTK/VLpXtKckgWuyScYK6cSPaw==} '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} @@ -4149,8 +4216,8 @@ packages: '@types/prop-types@15.7.15': resolution: {integrity: sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==} - '@types/qs@6.14.0': - resolution: {integrity: sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==} + '@types/qs@6.15.0': + resolution: {integrity: sha512-JawvT8iBVWpzTrz3EGw9BTQFg3BQNmwERdKE22vlTxawwtbyUSlMppvZYKLZzB5zgACXdXxbD3m1bXaMqP/9ow==} '@types/range-parser@1.2.7': resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} @@ -4235,6 +4302,12 @@ packages: peerDependencies: typescript: 5.9.3 + '@typescript-eslint/project-service@8.57.2': + resolution: {integrity: sha512-FuH0wipFywXRTHf+bTTjNyuNQQsQC3qh/dYzaM4I4W0jrCqjCVuUh99+xd9KamUfmCGPvbO8NDngo/vsnNVqgw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: 5.9.3 + '@typescript-eslint/rule-tester@8.56.1': resolution: {integrity: sha512-EWuV5Vq1EFYJEOVcILyWPO35PjnT0c6tv99PCpD12PgfZae5/Jo+F17hGjsEs2Moe+Dy1J7KIr8y037cK8+/rQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -4245,12 +4318,22 @@ packages: resolution: {integrity: sha512-YAi4VDKcIZp0O4tz/haYKhmIDZFEUPOreKbfdAN3SzUDMcPhJ8QI99xQXqX+HoUVq8cs85eRKnD+rne2UAnj2w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/scope-manager@8.57.2': + resolution: {integrity: sha512-snZKH+W4WbWkrBqj4gUNRIGb/jipDW3qMqVJ4C9rzdFc+wLwruxk+2a5D+uoFcKPAqyqEnSb4l2ULuZf95eSkw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/tsconfig-utils@8.56.1': resolution: {integrity: sha512-qOtCYzKEeyr3aR9f28mPJqBty7+DBqsdd63eO0yyDwc6vgThj2UjWfJIcsFeSucYydqcuudMOprZ+x1SpF3ZuQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: 5.9.3 + '@typescript-eslint/tsconfig-utils@8.57.2': + resolution: {integrity: sha512-3Lm5DSM+DCowsUOJC+YqHHnKEfFh5CoGkj5Z31NQSNF4l5wdOwqGn99wmwN/LImhfY3KJnmordBq/4+VDe2eKw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: 5.9.3 + '@typescript-eslint/type-utils@8.56.1': resolution: {integrity: sha512-yB/7dxi7MgTtGhZdaHCemf7PuwrHMenHjmzgUW1aJpO+bBU43OycnM3Wn+DdvDO/8zzA9HlhaJ0AUGuvri4oGg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -4262,12 +4345,22 @@ packages: resolution: {integrity: sha512-dbMkdIUkIkchgGDIv7KLUpa0Mda4IYjo4IAMJUZ+3xNoUXxMsk9YtKpTHSChRS85o+H9ftm51gsK1dZReY9CVw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/types@8.57.2': + resolution: {integrity: sha512-/iZM6FnM4tnx9csuTxspMW4BOSegshwX5oBDznJ7S4WggL7Vczz5d2W11ecc4vRrQMQHXRSxzrCsyG5EsPPTbA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/typescript-estree@8.56.1': resolution: {integrity: sha512-qzUL1qgalIvKWAf9C1HpvBjif+Vm6rcT5wZd4VoMb9+Km3iS3Cv9DY6dMRMDtPnwRAFyAi7YXJpTIEXLvdfPxg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: 5.9.3 + '@typescript-eslint/typescript-estree@8.57.2': + resolution: {integrity: sha512-2MKM+I6g8tJxfSmFKOnHv2t8Sk3T6rF20A1Puk0svLK+uVapDZB/4pfAeB7nE83uAZrU6OxW+HmOd5wHVdXwXA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: 5.9.3 + '@typescript-eslint/utils@8.56.1': resolution: {integrity: sha512-HPAVNIME3tABJ61siYlHzSWCGtOoeP2RTIaHXFMPqjrQKCGB9OgUVdiNgH7TJS2JNIQ5qQ4RsAUDuGaGme/KOA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -4275,10 +4368,21 @@ packages: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: 5.9.3 + '@typescript-eslint/utils@8.57.2': + resolution: {integrity: sha512-krRIbvPK1ju1WBKIefiX+bngPs+odIQUtR7kymzPfo1POVw3jlF+nLkmexdSSd4UCbDcQn+wMBATOOmpBbqgKg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: 5.9.3 + '@typescript-eslint/visitor-keys@8.56.1': resolution: {integrity: sha512-KiROIzYdEV85YygXw6BI/Dx4fnBlFQu6Mq4QE4MOH9fFnhohw6wX/OAvDY2/C+ut0I3RSPKenvZJIVYqJNkhEw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/visitor-keys@8.57.2': + resolution: {integrity: sha512-zhahknjobV2FiD6Ee9iLbS7OV9zi10rG26odsQdfBO/hjSzUQbkIYgda+iNKK1zNiW2ey+Lf8MU5btN17V3dUw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript/analyze-trace@0.10.1': resolution: {integrity: sha512-RnlSOPh14QbopGCApgkSx5UBgGda5MX1cHqp2fsqfiDyCwGL/m1jaeB9fzu7didVS81LQqGZZuxFBcg8YU8EVw==} hasBin: true @@ -4298,11 +4402,11 @@ packages: engines: {node: '>=18'} hasBin: true - '@vitejs/plugin-basic-ssl@2.1.4': - resolution: {integrity: sha512-HXciTXN/sDBYWgeAD4V4s0DN0g72x5mlxQhHxtYu3Tt8BLa6MzcJZUyDVFCdtjNs3bfENVHVzOsmooTVuNgAAw==} + '@vitejs/plugin-basic-ssl@2.2.0': + resolution: {integrity: sha512-nmyQ1HGRkfUxjsv3jw0+hMhEdZdrtkvMTdkzRUaRWfiO6PCWw2V2Pz3gldCq96Tn9S8htcgdTxw/gmbLLEbfYw==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} peerDependencies: - vite: ^6.0.0 || ^7.0.0 + vite: ^6.0.0 || ^7.0.0 || ^8.0.0 '@vitest/coverage-v8@4.0.18': resolution: {integrity: sha512-7i+N2i0+ME+2JFZhfuz7Tg/FqKtilHjGyGvoHYQ6iLV0zahbsJ9sljC9OcFcPDbhYKCet+sG8SsVqlyGvPflZg==} @@ -4342,26 +4446,26 @@ packages: '@vitest/utils@4.0.18': resolution: {integrity: sha512-msMRKLMVLWygpK3u2Hybgi4MNjcYJvwTb0Ru09+fOyCXIgT5raYP041DRRdiJiI3k/2U6SEbAETB3YtBrUkCFA==} - '@volar/language-core@2.4.23': - resolution: {integrity: sha512-hEEd5ET/oSmBC6pi1j6NaNYRWoAiDhINbT8rmwtINugR39loROSlufGdYMF9TaKGfz+ViGs1Idi3mAhnuPcoGQ==} + '@volar/language-core@2.4.28': + resolution: {integrity: sha512-w4qhIJ8ZSitgLAkVay6AbcnC7gP3glYM3fYwKV3srj8m494E3xtrCv6E+bWviiK/8hs6e6t1ij1s2Endql7vzQ==} - '@volar/source-map@2.4.23': - resolution: {integrity: sha512-Z1Uc8IB57Lm6k7q6KIDu/p+JWtf3xsXJqAX/5r18hYOTpJyBn0KXUR8oTJ4WFYOcDzWC9n3IflGgHowx6U6z9Q==} + '@volar/source-map@2.4.28': + resolution: {integrity: sha512-yX2BDBqJkRXfKw8my8VarTyjv48QwxdJtvRgUpNE5erCsgEUdI2DsLbpa+rOQVAJYshY99szEcRDmyHbF10ggQ==} - '@volar/typescript@2.4.23': - resolution: {integrity: sha512-lAB5zJghWxVPqfcStmAP1ZqQacMpe90UrP5RJ3arDyrhy4aCUQqmxPPLB2PWDKugvylmO41ljK7vZ+t6INMTag==} + '@volar/typescript@2.4.28': + resolution: {integrity: sha512-Ja6yvWrbis2QtN4ClAKreeUZPVYMARDYZl9LMEv1iQ1QdepB6wn0jTRxA9MftYmYa4DQ4k/DaSZpFPUfxl8giw==} - '@vue/compiler-core@3.5.22': - resolution: {integrity: sha512-jQ0pFPmZwTEiRNSb+i9Ow/I/cHv2tXYqsnHKKyCQ08irI2kdF5qmYedmF8si8mA7zepUFmJ2hqzS8CQmNOWOkQ==} + '@vue/compiler-core@3.5.31': + resolution: {integrity: sha512-k/ueL14aNIEy5Onf0OVzR8kiqF/WThgLdFhxwa4e/KF/0qe38IwIdofoSWBTvvxQOesaz6riAFAUaYjoF9fLLQ==} - '@vue/compiler-dom@3.5.22': - resolution: {integrity: sha512-W8RknzUM1BLkypvdz10OVsGxnMAuSIZs9Wdx1vzA3mL5fNMN15rhrSCLiTm6blWeACwUwizzPVqGJgOGBEN/hA==} + '@vue/compiler-dom@3.5.31': + resolution: {integrity: sha512-BMY/ozS/xxjYqRFL+tKdRpATJYDTTgWSo0+AJvJNg4ig+Hgb0dOsHPXvloHQ5hmlivUqw1Yt2pPIqp4e0v1GUw==} - '@vue/compiler-sfc@3.5.22': - resolution: {integrity: sha512-tbTR1zKGce4Lj+JLzFXDq36K4vcSZbJ1RBu8FxcDv1IGRz//Dh2EBqksyGVypz3kXpshIfWKGOCcqpSbyGWRJQ==} + '@vue/compiler-sfc@3.5.31': + resolution: {integrity: sha512-M8wpPgR9UJ8MiRGjppvx9uWJfLV7A/T+/rL8s/y3QG3u0c2/YZgff3d6SuimKRIhcYnWg5fTfDMlz2E6seUW8Q==} - '@vue/compiler-ssr@3.5.22': - resolution: {integrity: sha512-GdgyLvg4R+7T8Nk2Mlighx7XGxq/fJf9jaVofc3IL0EPesTE86cP/8DD1lT3h1JeZr2ySBvyqKQJgbS54IX1Ww==} + '@vue/compiler-ssr@3.5.31': + resolution: {integrity: sha512-h0xIMxrt/LHOvJKMri+vdYT92BrK3HFLtDqq9Pr/lVVfE4IyKZKvWf0vJFW10Yr6nX02OR4MkJwI0c1HDa1hog==} '@vue/compiler-vue2@2.7.16': resolution: {integrity: sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==} @@ -4374,27 +4478,27 @@ packages: typescript: optional: true - '@vue/shared@3.5.22': - resolution: {integrity: sha512-F4yc6palwq3TT0u+FYf0Ns4Tfl9GRFURDN2gWG7L1ecIaS/4fCIuFOjMTnCyjsu/OK6vaDKLCrGAa+KvvH+h4w==} + '@vue/shared@3.5.31': + resolution: {integrity: sha512-nBxuiuS9Lj5bPkPbWogPUnjxxWpkRniX7e5UBQDWl6Fsf4roq9wwV+cR7ezQ4zXswNvPIlsdj1slcLB7XCsRAw==} '@whatwg-node/disposablestack@0.0.6': resolution: {integrity: sha512-LOtTn+JgJvX8WfBVJtF08TGrdjuFzGJc4mkP8EdDI8ADbvO7kiexYep1o8dwnt0okb0jYclCDXF13xU7Ge4zSw==} engines: {node: '>=18.0.0'} - '@whatwg-node/fetch@0.10.11': - resolution: {integrity: sha512-eR8SYtf9Nem1Tnl0IWrY33qJ5wCtIWlt3Fs3c6V4aAaTFLtkEQErXu3SSZg/XCHrj9hXSJ8/8t+CdMk5Qec/ZA==} + '@whatwg-node/fetch@0.10.13': + resolution: {integrity: sha512-b4PhJ+zYj4357zwk4TTuF2nEe0vVtOrwdsrNo5hL+u1ojXNhh1FgJ6pg1jzDlwlT4oBdzfSwaBwMCtFCsIWg8Q==} engines: {node: '>=18.0.0'} - '@whatwg-node/node-fetch@0.8.0': - resolution: {integrity: sha512-+z00GpWxKV/q8eMETwbdi80TcOoVEVZ4xSRkxYOZpn3kbV3nej5iViNzXVke/j3v4y1YpO5zMS/CVDIASvJnZQ==} + '@whatwg-node/node-fetch@0.8.5': + resolution: {integrity: sha512-4xzCl/zphPqlp9tASLVeUhB5+WJHbuWGYpfoC2q1qh5dw0AqZBW7L27V5roxYWijPxj4sspRAAoOH3d2ztaHUQ==} engines: {node: '>=18.0.0'} '@whatwg-node/promise-helpers@1.3.2': resolution: {integrity: sha512-Nst5JdK47VIl9UcGwtv2Rcgyn5lWtZ0/mhRQ4G8NN2isxpq2TO30iqHzmwoJycjWuyUfg3GFXqP/gFHXeV57IA==} engines: {node: '>=16.0.0'} - '@whatwg-node/server@0.10.12': - resolution: {integrity: sha512-MQIvvQyPvKGna586MzXhgwnEbGtbm7QtOgJ/KPd/tC70M/jbhd1xHdIQQbh3okBw+MrDF/EvaC2vB5oRC7QdlQ==} + '@whatwg-node/server@0.10.18': + resolution: {integrity: sha512-kMwLlxUbduttIgaPdSkmEarFpP+mSY8FEm+QWMBRJwxOHWkri+cxd8KZHO9EMrB9vgUuz+5WEaCawaL5wGVoXg==} engines: {node: '>=18.0.0'} abbrev@3.0.1: @@ -4430,8 +4534,8 @@ packages: resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} engines: {node: '>=0.4.0'} - acorn-walk@8.3.4: - resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} + acorn-walk@8.3.5: + resolution: {integrity: sha512-HEHNfbars9v4pgpW6SO1KSPkfoS0xVOM/9UzkJltjlsHZmJasxg8aXkuZa7SMf8vKGIBhpUsPluQSqhJFCqebw==} engines: {node: '>=0.4.0'} acorn@8.14.0: @@ -4605,10 +4709,6 @@ packages: resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==} engines: {node: '>= 0.4'} - async-generator-function@1.0.0: - resolution: {integrity: sha512-+NAXNqgCrB95ya4Sr66i1CL2hqLVckAk7xwRYWdcm39/ELQ6YNn1aw5r0bdQtqNZgQpEWzc5yc/igXc7aL5SLA==} - engines: {node: '>= 0.4'} - async-sema@3.1.1: resolution: {integrity: sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==} @@ -4622,8 +4722,8 @@ packages: resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==} engines: {node: '>=8.0.0'} - atomically@2.0.3: - resolution: {integrity: sha512-kU6FmrwZ3Lx7/7y3hPS5QnbJfaohcIul5fGqf7ok+4KklIEk9tJ0C2IQPdacSbVUWv6zVHXEBWoWd6NrVMT7Cw==} + atomically@2.1.1: + resolution: {integrity: sha512-P4w9o2dqARji6P7MHprklbfiArZAWvo07yW7qs3pdljb3BWr12FIB7W+p0zJiuiVsUpRO0iZn1kFFcpPegg0tQ==} autoprefixer@10.4.23: resolution: {integrity: sha512-YYTXSFulfwytnjAPlw8QHncHJmlvFKtczb8InXaAx9Q0LbfDnfEYDE55omerIJKihhmU61Ft+cAOSzQVaBUmeA==} @@ -4642,8 +4742,8 @@ packages: axios@0.26.1: resolution: {integrity: sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==} - b4a@1.7.3: - resolution: {integrity: sha512-5Q2mfq2WfGuFp3uS//0s6baOJLMoVduPYVeNmDYxu5OUA1/cBfvr2RIS7vi62LdNj/urk1hfmj867I3qt6uZ7Q==} + b4a@1.8.0: + resolution: {integrity: sha512-qRuSmNSkGQaHwNbM7J78Wwy+ghLEYF1zNrSeMxj4Kgw6y33O3mXcQ6Ie9fRvfU/YnxWkOchPXbaLb73TkIsfdg==} peerDependencies: react-native-b4a: '*' peerDependenciesMeta: @@ -4668,14 +4768,53 @@ packages: resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} engines: {node: 18 || 20 || >=22} - bare-events@2.7.0: - resolution: {integrity: sha512-b3N5eTW1g7vXkw+0CXh/HazGTcO5KYuu/RCNaJbDMPI6LHDi+7qe8EmxKUVe1sUbY2KZOVZFyj62x0OEz9qyAA==} + bare-events@2.8.2: + resolution: {integrity: sha512-riJjyv1/mHLIPX4RwiK+oW9/4c3TEUeORHKefKAKnZ5kyslbN+HXowtbaVEqt4IMUB7OXlfixcs6gsFeo/jhiQ==} + peerDependencies: + bare-abort-controller: '*' + peerDependenciesMeta: + bare-abort-controller: + optional: true + + bare-fs@4.5.6: + resolution: {integrity: sha512-1QovqDrR80Pmt5HPAsMsXTCFcDYr+NSUKW6nd6WO5v0JBmnItc/irNRzm2KOQ5oZ69P37y+AMujNyNtG+1Rggw==} + engines: {bare: '>=1.16.0'} + peerDependencies: + bare-buffer: '*' + peerDependenciesMeta: + bare-buffer: + optional: true + + bare-os@3.8.0: + resolution: {integrity: sha512-Dc9/SlwfxkXIGYhvMQNUtKaXCaGkZYGcd1vuNUUADVqzu4/vQfvnMkYYOUnt2VwQ2AqKr/8qAVFRtwETljgeFg==} + engines: {bare: '>=1.14.0'} + + bare-path@3.0.0: + resolution: {integrity: sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==} + + bare-stream@2.11.0: + resolution: {integrity: sha512-Y/+iQ49fL3rIn6w/AVxI/2+BRrpmzJvdWt5Jv8Za6Ngqc6V227c+pYjYYgLdpR3MwQ9ObVXD0ZrqoBztakM0rw==} + peerDependencies: + bare-abort-controller: '*' + bare-buffer: '*' + bare-events: '*' + peerDependenciesMeta: + bare-abort-controller: + optional: true + bare-buffer: + optional: true + bare-events: + optional: true + + bare-url@2.4.0: + resolution: {integrity: sha512-NSTU5WN+fy/L0DDenfE8SXQna4voXuW0FHM7wH8i3/q9khUSchfPbPezO4zSFMnDGIf9YE+mt/RWhZgNRKRIXA==} base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - baseline-browser-mapping@2.9.11: - resolution: {integrity: sha512-Sg0xJUNDU1sJNGdfGWhVHX0kkZ+HWcvmVymJbj6NSgZZmW/8S9Y2HQ5euytnIgakgxN6papOAWiwDo1ctFDcoQ==} + baseline-browser-mapping@2.10.10: + resolution: {integrity: sha512-sUoJ3IMxx4AyRqO4MLeHlnGDkyXRoUG0/AI9fjK+vS72ekpV0yWVY7O0BVjmBcRtkNcsAO2QDZ4tdKKGoI6YaQ==} + engines: {node: '>=6.0.0'} hasBin: true before-after-hook@2.2.3: @@ -4712,8 +4851,8 @@ packages: blake3-wasm@2.1.5: resolution: {integrity: sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==} - body-parser@1.20.3: - resolution: {integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==} + body-parser@1.20.4: + resolution: {integrity: sha512-ZTgYYLMOXY9qKU/57FAo8F+HA2dGX7bqGc71txDRC1rS4frdFI5R7NhluHxH6M0YItAP0sHB4uqAOcYKxO6uGA==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} body-parser@2.2.2: @@ -4736,8 +4875,8 @@ packages: brace-expansion@2.0.2: resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} - brace-expansion@5.0.4: - resolution: {integrity: sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==} + brace-expansion@5.0.5: + resolution: {integrity: sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==} engines: {node: 18 || 20 || >=22} braces@3.0.3: @@ -4813,8 +4952,8 @@ packages: resolution: {integrity: sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==} engines: {node: '>=16'} - caniuse-lite@1.0.30001762: - resolution: {integrity: sha512-PxZwGNvH7Ak8WX5iXzoK1KPZttBXNPuaOvI2ZYU7NrlM+d9Ov+TUvlLOBNGzVXAntMSMMlJPd+jY6ovrVjSmUw==} + caniuse-lite@1.0.30001781: + resolution: {integrity: sha512-RdwNCyMsNBftLjW6w01z8bKEvT6e/5tpPVEgtn22TiLGlstHOVecsX2KHFkD5e/vRnIE4EGzpuIODb3mtswtkw==} ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} @@ -4850,13 +4989,17 @@ packages: chardet@0.7.0: resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} - chardet@2.1.0: - resolution: {integrity: sha512-bNFETTG/pM5ryzQ9Ad0lJOTa6HWD/YsScAR3EnCPZRPlQh77JocYktSHOUHelyhm8IARL+o4c4F1bP5KVOjiRA==} + chardet@2.1.1: + resolution: {integrity: sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ==} chokidar@4.0.3: resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} engines: {node: '>= 14.16.0'} + chokidar@5.0.0: + resolution: {integrity: sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==} + engines: {node: '>= 20.19.0'} + chownr@3.0.0: resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==} engines: {node: '>=18'} @@ -4935,30 +5078,30 @@ packages: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} - color-convert@3.1.2: - resolution: {integrity: sha512-UNqkvCDXstVck3kdowtOTWROIJQwafjOfXSmddoDrXo4cewMKmusCeF22Q24zvjR8nwWib/3S/dfyzPItPEiJg==} + color-convert@3.1.3: + resolution: {integrity: sha512-fasDH2ont2GqF5HpyO4w0+BcewlhHEZOFn9c1ckZdHpJ56Qb7MHhH/IcJZbBGgvdtwdwNbLvxiBEdg336iA9Sg==} engines: {node: '>=14.6'} color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - color-name@2.0.2: - resolution: {integrity: sha512-9vEt7gE16EW7Eu7pvZnR0abW9z6ufzhXxGXZEVU9IqPdlsUiMwJeJfRtq0zePUmnbHGT9zajca7mX8zgoayo4A==} + color-name@2.1.0: + resolution: {integrity: sha512-1bPaDNFm0axzE4MEAzKPuqKWeRaT43U/hyxKPBdqTfmPF+d6n7FSoTFxLVULUJOmiLp01KjhIPPH+HrXZJN4Rg==} engines: {node: '>=12.20'} color-string@1.9.1: resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} - color-string@2.1.2: - resolution: {integrity: sha512-RxmjYxbWemV9gKu4zPgiZagUxbH3RQpEIO77XoSSX0ivgABDZ+h8Zuash/EMFLTI4N9QgFPOJ6JQpPZKFxa+dA==} + color-string@2.1.4: + resolution: {integrity: sha512-Bb6Cq8oq0IjDOe8wJmi4JeNn763Xs9cfrBcaylK1tPypWzyoy2G3l90v9k64kjphl/ZJjPIShFztenRomi8WTg==} engines: {node: '>=18'} color@4.2.3: resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} engines: {node: '>=12.5.0'} - color@5.0.2: - resolution: {integrity: sha512-e2hz5BzbUPcYlIRHo8ieAhYgoajrJr+hWoceg6E345TPsATMUKqDgzt8fSXZJJbxfpiPzkWyphz8yn8At7q3fA==} + color@5.0.3: + resolution: {integrity: sha512-ezmVcLR3xAVp8kYOm4GS45ZLLgIE6SPAFoduLr6hTDajwb3KZ2F46gulK3XpcwRFb5KKGCSezCBAY4Dw4HsyXA==} engines: {node: '>=18'} colors@1.4.0: @@ -4999,8 +5142,8 @@ packages: resolution: {integrity: sha512-R2rze/hDX30uul4NZoIZ76ImSJLFxn/1/ZxtKC1L77y2X1k+yYu1joKbAtMA2Fg3hZrTOiw0I5mwVMo0cf250w==} engines: {node: '>= 6'} - comment-parser@1.4.1: - resolution: {integrity: sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==} + comment-parser@1.4.5: + resolution: {integrity: sha512-aRDkn3uyIlCFfk5NUA+VdwMmMsh8JGhc4hapfV4yxymHGQ3BVskMQfoXGpCo5IoBuQ9tS5iiVKhCpTcB4pW4qw==} engines: {node: '>= 12.0.0'} common-path-prefix@3.0.0: @@ -5019,8 +5162,8 @@ packages: confbox@0.1.8: resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} - confbox@0.2.2: - resolution: {integrity: sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==} + confbox@0.2.4: + resolution: {integrity: sha512-ysOGlgTFbN2/Y6Cg3Iye8YKulHw+R2fNXHrgSmXISQdMnomY6eNDprVdW9R5xBguEqI954+S6709UyiO7B+6OQ==} config-chain@1.1.13: resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} @@ -5048,14 +5191,11 @@ packages: convert-source-map@1.9.0: resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} - convert-source-map@2.0.0: - resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - cookie-es@1.2.2: resolution: {integrity: sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg==} - cookie-signature@1.0.6: - resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} + cookie-signature@1.0.7: + resolution: {integrity: sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA==} cookie-signature@1.2.2: resolution: {integrity: sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==} @@ -5084,8 +5224,8 @@ packages: resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} engines: {node: '>=10'} - cosmiconfig@9.0.0: - resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} + cosmiconfig@9.0.1: + resolution: {integrity: sha512-hr4ihw+DBqcvrsEDioRO31Z17x71pUYoNe/4h6Z0wB72p7MU7/9gH8Q3s12NFhHPfYBBOV3qyfUxmr/Yn3shnQ==} engines: {node: '>=14'} peerDependencies: typescript: 5.9.3 @@ -5131,8 +5271,8 @@ packages: resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} - css-tree@3.1.0: - resolution: {integrity: sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==} + css-tree@3.2.1: + resolution: {integrity: sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA==} engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} css-what@6.2.2: @@ -5212,8 +5352,8 @@ packages: decode-formdata@0.8.0: resolution: {integrity: sha512-iUzDgnWsw5ToSkFY7VPFA5Gfph6ROoOxOB7Ybna4miUSzLZ4KaSJk6IAB2AdW6+C9vCVWhjjNA4gjT6wF3eZHQ==} - decode-named-character-reference@1.2.0: - resolution: {integrity: sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q==} + decode-named-character-reference@1.3.0: + resolution: {integrity: sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q==} deep-extend@0.6.0: resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} @@ -5226,8 +5366,8 @@ packages: resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} engines: {node: '>=0.10.0'} - default-browser-id@5.0.0: - resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==} + default-browser-id@5.0.1: + resolution: {integrity: sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==} engines: {node: '>=18'} default-browser@5.5.0: @@ -5285,11 +5425,6 @@ packages: resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} engines: {node: '>=8'} - detect-libc@1.0.3: - resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} - engines: {node: '>=0.10'} - hasBin: true - detect-libc@2.0.2: resolution: {integrity: sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==} engines: {node: '>=8'} @@ -5303,8 +5438,8 @@ packages: engines: {node: '>=18'} hasBin: true - detective-cjs@6.0.1: - resolution: {integrity: sha512-tLTQsWvd2WMcmn/60T2inEJNhJoi7a//PQ7DwRKEj1yEeiQs4mrONgsUtEJKnZmrGWBBmE0kJ1vqOG/NAxwaJw==} + detective-cjs@6.1.0: + resolution: {integrity: sha512-Qt3S4IddVNDb+71lm+jmt5NznIsgcKlibTnrw9Zr91rT9vRwKp+73+ImqLTNrQj4YuOxnzrC7GwIAVwF7136XQ==} engines: {node: '>=18'} detective-es6@5.0.1: @@ -5350,16 +5485,16 @@ packages: didyoumean@1.2.2: resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} - diff@4.0.2: - resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} + diff@4.0.4: + resolution: {integrity: sha512-X07nttJQkwkfKfvTPG/KSnE2OMdcUCao6+eXF3wmnIQRn2aPAHH3VxDbDOdegkd6JbPsXqShpvEOHfAT+nCNwQ==} engines: {node: '>=0.3.1'} - diff@5.2.0: - resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} + diff@5.2.2: + resolution: {integrity: sha512-vtcDfH3TOjP8UekytvnHH1o1P4FcUdt4eQ1Y+Abap1tk/OB2MWQvcwS2ClCd1zuIhc3JKOx6p3kod8Vfys3E+A==} engines: {node: '>=0.3.1'} - diff@8.0.3: - resolution: {integrity: sha512-qejHi7bcSD4hQAZE0tNAawRK1ZtafHDmMTMkrrIGgSLl7hTnQHmKCeB45xAcbfTqK2zowkM3j3bHt/4b/ARbYQ==} + diff@8.0.4: + resolution: {integrity: sha512-DPi0FmjiSU5EvQV0++GFDOJ9ASQUVFh5kD+OzOnYdi7n3Wpm9hWWGfB/O2blfHcMVTL5WkQXSnRiK9makhrcnw==} engines: {node: '>=0.3.1'} dir-glob@3.0.1: @@ -5416,8 +5551,8 @@ packages: resolution: {integrity: sha512-4VZ5m1EgV+467S2LdTUxCE1L98ikzGFW7PTE8FlPSk7jvkbqeKQN1vCfwQ6w1vYVgAZMSooyvoae5F/LQWozhw==} hasBin: true - drizzle-kit@0.31.5: - resolution: {integrity: sha512-+CHgPFzuoTQTt7cOYCV6MOw2w8vqEn/ap1yv4bpZOWL03u7rlVRQhUY0WYT3rHsgVTXwYQDZaSUJSQrMBUKuWg==} + drizzle-kit@0.31.10: + resolution: {integrity: sha512-7OZcmQUrdGI+DUNNsKBn1aW8qSoKuTH7d0mYgSP8bAzdFzKoovxEFnoGQp2dVs82EOJeYycqRtciopszwUf8bw==} hasBin: true drizzle-orm@0.44.4: @@ -5525,14 +5660,14 @@ packages: ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - effect@3.18.0: - resolution: {integrity: sha512-Hr0hVrnibYbheOUnbTwaV88NyyMTW7CrLCiOSJxMWns73pEiT29HJcsEx7pgs9E8rUa6z20775byVzXw0omPjw==} + effect@3.21.0: + resolution: {integrity: sha512-PPN80qRokCd1f015IANNhrwOnLO7GrrMQfk4/lnZRE/8j7UPWrNNjPV0uBrZutI/nHzernbW+J0hdqQysHiSnQ==} - electron-to-chromium@1.5.267: - resolution: {integrity: sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw==} + electron-to-chromium@1.5.325: + resolution: {integrity: sha512-PwfIw7WQSt3xX7yOf5OE/unLzsK9CaN2f/FvV3WjPR1Knoc1T9vePRVV4W1EM301JzzysK51K7FNKcusCr0zYA==} - emoji-regex@10.5.0: - resolution: {integrity: sha512-lb49vf1Xzfx080OKA0o6l8DQQpV+6Vg95zyCJX9VB/BqKYlhG7N4wgROUUHRA+ZPUefLnteQOad7z1kT2bV7bg==} + emoji-regex@10.6.0: + resolution: {integrity: sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==} emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -5547,10 +5682,6 @@ packages: enabled@2.0.0: resolution: {integrity: sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==} - encodeurl@1.0.2: - resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} - engines: {node: '>= 0.8'} - encodeurl@2.0.0: resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} engines: {node: '>= 0.8'} @@ -5558,8 +5689,8 @@ packages: end-of-stream@1.4.5: resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==} - enhanced-resolve@5.18.4: - resolution: {integrity: sha512-LgQMM4WXU3QI+SYgEc2liRgznaD5ojbmY3sb8LxyguVkIg5FxdpTkvk72te2R38/TGKxH634oLxXRGY6d7AP+Q==} + enhanced-resolve@5.20.1: + resolution: {integrity: sha512-Qohcme7V1inbAfvjItgw0EaxVX5q2rdVEZHRBrEQdRZTssLDGsL8Lwrznl8oQ/6kuTJONLaDcGjkNP247XEhcA==} engines: {node: '>=10.13.0'} enquirer@2.4.1: @@ -5573,6 +5704,10 @@ packages: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} + entities@7.0.1: + resolution: {integrity: sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==} + engines: {node: '>=0.12'} + env-paths@2.2.1: resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} engines: {node: '>=6'} @@ -5603,8 +5738,8 @@ packages: error-stack-parser@2.1.4: resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==} - es-abstract@1.24.0: - resolution: {integrity: sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==} + es-abstract@1.24.1: + resolution: {integrity: sha512-zHXBLhP+QehSSbsS9Pt23Gg964240DPd6QCf8WpkqEXxQ7fhdZzYsocOr5u7apWonsS5EjZDmTF+/slGMyasvw==} engines: {node: '>= 0.4'} es-define-property@1.0.1: @@ -5741,11 +5876,6 @@ packages: peerDependencies: esbuild: ^0.14.36 || ^0.15.0 || ^0.16.0 || ^0.17.0 || ^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.23.0 || ^0.24.0 || ^0.25.0 - esbuild-register@3.6.0: - resolution: {integrity: sha512-H2/S7Pm8a9CL1uhp9OvjwrBh5Pvx0H8qVOxNu8Wed9Y7qv56MPtq+GGM8RJpq6glYJn9Wspr8uw7l55uyinNeg==} - peerDependencies: - esbuild: '>=0.12 <1' - esbuild-sunos-64@0.15.18: resolution: {integrity: sha512-On22LLFlBeLNj/YF3FT+cXcyKPEI263nflYlAhz5crxtp3yRG1Ugfr7ITyxmCmjm4vbN/dGrb/B7w7U8yJR9yw==} engines: {node: '>=12'} @@ -5866,8 +5996,8 @@ packages: resolution: {integrity: sha512-brcKcxGnISN2CcVhXJ/kEQlNa0MEfGRtwKtWA16SkqXHKitaKIMrfemJKLKX1YqDU5C/5JY3PvZXd5jEW04e0Q==} engines: {node: '>=5.0.0'} - eslint-scope@9.1.1: - resolution: {integrity: sha512-GaUN0sWim5qc8KVErfPBWmc31LEsOkrUJbvJZV+xuL3u2phMUK4HIvXlWAakfC8W4nzlK+chPEAkYOYb5ZScIw==} + eslint-scope@9.1.2: + resolution: {integrity: sha512-xS90H51cKw0jltxmvmHy2Iai1LIqrfbw57b79w/J7MfvDfkIkFZ+kj6zC3BjtUwh150HsSSdxXZcsuv72miDFQ==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} eslint-visitor-keys@3.4.3: @@ -5888,8 +6018,8 @@ packages: jiti: optional: true - espree@11.1.1: - resolution: {integrity: sha512-AVHPqQoZYc+RUM4/3Ly5udlZY/U4LS8pIG05jEjWM2lQMU/oaZ7qshzAl2YP1tfNmXfftH3ohurfwNAug+MnsQ==} + espree@11.2.0: + resolution: {integrity: sha512-7p3DrVEIopW1B1avAGLuCSh1jubc01H2JHc8B4qqGblmg5gI9yumBgACjWo4JlIc04ufug4xJ3SQI8HkS/Rgzw==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} esprima@4.0.1: @@ -5997,8 +6127,8 @@ packages: resolution: {integrity: sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==} engines: {node: '>= 18'} - exsolve@1.0.7: - resolution: {integrity: sha512-VO5fQUzZtI6C+vx4w/4BWJpg3s/5l+6pRQEHzFRM8WFi4XffSP1Z+4qi7GbjWbvRQEbdIco5mIMq+zX4rPuLrw==} + exsolve@1.0.8: + resolution: {integrity: sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA==} extend-shallow@2.0.1: resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} @@ -6074,8 +6204,8 @@ packages: fastify@5.8.2: resolution: {integrity: sha512-lZmt3navvZG915IE+f7/TIVamxIwmBd+OMB+O9WBzcpIwOo6F0LTh0sluoMFk5VkrKTvvrwIaoJPkir4Z+jtAg==} - fastq@1.19.1: - resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} + fastq@1.20.1: + resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==} fault@2.0.1: resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==} @@ -6125,8 +6255,8 @@ packages: resolution: {integrity: sha512-xdMtCAODmPloU9qtmPcdBV9Kd27NtMse+4ayThxqIHUES5Z2S6bGpap5PpdmNM56ub7y3i1eyr+vJJIIgWGKmA==} engines: {node: '>=18'} - finalhandler@1.3.1: - resolution: {integrity: sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==} + finalhandler@1.3.2: + resolution: {integrity: sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg==} engines: {node: '>= 0.8'} finalhandler@2.1.1: @@ -6160,15 +6290,12 @@ packages: resolution: {integrity: sha512-JGG8pvDi2C+JxidYdIwQDyS/CgcrIdh18cvgxcBge3wSHRQOrooMD3GlFBcmMJAN9M42SAZjDp5zv1dglJjwww==} engines: {node: '>=20'} - fix-esm@1.0.1: - resolution: {integrity: sha512-EZtb7wPXZS54GaGxaWxMlhd1DUDCnAg5srlYdu/1ZVeW+7wwR3Tp59nu52dXByFs3MBRq+SByx1wDOJpRvLEXw==} - flat-cache@4.0.1: resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} engines: {node: '>=16'} - flatted@3.3.3: - resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} + flatted@3.4.2: + resolution: {integrity: sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==} fn.name@1.1.0: resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==} @@ -6196,8 +6323,8 @@ packages: resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} engines: {node: '>=14'} - form-data@4.0.4: - resolution: {integrity: sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==} + form-data@4.0.5: + resolution: {integrity: sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==} engines: {node: '>= 6'} format@0.2.2: @@ -6262,14 +6389,10 @@ packages: resolution: {integrity: sha512-/gZffu4ykarLrCiP3Ygsa86UAo1E5vEVlvTrpkKywXSbP9Xhln3oSp9QSV57gEq3JFFpGJ4GZ+5zdEp3FcUh4w==} engines: {node: '>= 0.6.0'} - generator-function@2.0.0: - resolution: {integrity: sha512-xPypGGincdfyl/AiSGa7GjXLkvld9V7GjZlowup9SHIJnQnHLFiLODCd/DqKOp0PBagbHJ68r1KJI9Mut7m4sA==} + generator-function@2.0.1: + resolution: {integrity: sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==} engines: {node: '>= 0.4'} - gensync@1.0.0-beta.2: - resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} - engines: {node: '>=6.9.0'} - get-amd-module-type@6.0.1: resolution: {integrity: sha512-MtjsmYiCXcYDDrGqtNbeIYdAl85n+5mSv2r3FbzER/YV3ZILw4HNNIw34HuV5pyl0jzs6GFYU1VHVEefhgcNHQ==} engines: {node: '>=18'} @@ -6282,8 +6405,8 @@ packages: resolution: {integrity: sha512-CQ+bEO+Tva/qlmw24dCejulK5pMzVnUOFOijVogd3KQs07HnRIgp8TGipvCCRT06xeYEbpbgwaCxglFyiuIcmA==} engines: {node: '>=18'} - get-intrinsic@1.3.1: - resolution: {integrity: sha512-fk1ZVEeOX9hVZ6QzoBNEC55+Ucqg4sTVwrVuigZhuRPESVFpMyXnd3sbXvPOwp7Y9riVyANiqhEuRF0G1aVSeQ==} + get-intrinsic@1.3.0: + resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} engines: {node: '>= 0.4'} get-port-please@3.2.0: @@ -6293,8 +6416,8 @@ packages: resolution: {integrity: sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==} engines: {node: '>=8'} - get-port@7.1.0: - resolution: {integrity: sha512-QB9NKEeDg3xxVwCCwJQ9+xycaz6pBB6iQ76wiWMl1927n0Kir6alPiP+yuiICLLU4jpMe08dXfpebuQppFA2zw==} + get-port@7.2.0: + resolution: {integrity: sha512-afP4W205ONCuMoPBqcR6PSXnzX35KTcJygfJfcp+QY+uwm3p20p1YczWXhlICIzGMCxYBQcySEcOgsJcrkyobg==} engines: {node: '>=16'} get-proto@1.0.1: @@ -6324,8 +6447,8 @@ packages: resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} engines: {node: '>= 0.4'} - get-tsconfig@4.10.1: - resolution: {integrity: sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==} + get-tsconfig@4.13.7: + resolution: {integrity: sha512-7tN6rFgBlMgpBML5j8typ92BKFi2sFQvIdpAqLA2beia5avZDrMs0FLZiM5etShWq5irVyGcGMEA1jcDaK7A/Q==} git-repo-info@2.1.1: resolution: {integrity: sha512-8aCohiDo4jwjOwma4FmYFd3i97urZulL8XL24nIPxuE+GZnfsAyy/g2Shqx6OjUiFKUXZM+Yy+KHnOmmA3FVcg==} @@ -6354,8 +6477,8 @@ packages: glob-to-regexp@0.4.1: resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} - glob@10.4.5: - resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} + glob@10.5.0: + resolution: {integrity: sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==} deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me hasBin: true @@ -6405,8 +6528,8 @@ packages: resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} engines: {node: '>=6.0'} - h3@1.15.4: - resolution: {integrity: sha512-z5cFQWDffyOe4vQ9xIqNfCZdV4p//vy6fBnr8Q1AWnVZ0teurKMG66rLj++TKwKPUP3u7iMUvrvKaEUiQw2QWQ==} + h3@1.15.10: + resolution: {integrity: sha512-YzJeWSkDZxAhvmp8dexjRK5hxziRO7I9m0N53WhvYL5NiWfkUkzssVzY9jvGu0HBoLFW6+duYmNSn6MaZBCCtg==} has-bigints@1.1.0: resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} @@ -6533,8 +6656,8 @@ packages: resolution: {integrity: sha512-YYeW+iCnAS3xhvj2dvVoWgsbca3RfQy/IlaNHHOtDmU0jMqPI9euIq3Y9BJETdxk16h9NHHCKqp/KB9nIMStCQ==} engines: {node: '>= 14'} - human-id@4.1.1: - resolution: {integrity: sha512-3gKm/gCSUipeLsRYZbbdA1BD83lBoWUkZ7G9VFrhWPAU76KwYo5KR8V28bpoPm/ygy0x5/GCbpRQdY7VLYCoIg==} + human-id@4.1.3: + resolution: {integrity: sha512-tsYlhAYpjCKa//8rXZ9DqKEawhPoSytweBC2eNvcaDK+57RZLHGqNs3PZTQO6yekLFSuvA6AlnAfrw1uBvtb+Q==} hasBin: true human-signals@2.1.0: @@ -6569,6 +6692,10 @@ packages: resolution: {integrity: sha512-cf6L2Ds3h57VVmkZe+Pn+5APsT7FpqJtEhhieDCvrE2MK5Qk9MyffgQyuxQTm6BChfeZNtcOLHp9IcWRVcIcBQ==} engines: {node: '>=0.10.0'} + iconv-lite@0.7.2: + resolution: {integrity: sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==} + engines: {node: '>=0.10.0'} + ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} @@ -6580,8 +6707,8 @@ packages: resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} engines: {node: '>= 4'} - image-meta@0.2.1: - resolution: {integrity: sha512-K6acvFaelNxx8wc2VjbIzXKDVB0Khs0QT35U6NkGfTdCmjLNcO2945m7RFNR9/RPVFm48hq7QPzK8uGH18HCGw==} + image-meta@0.2.2: + resolution: {integrity: sha512-3MOLanc3sb3LNGWQl1RlQlNWURE5g32aUphrDyFeCsxBTk08iE3VNe4CwsUZ0Qs1X+EfX0+r29Sxdpza4B+yRA==} image-size@1.2.1: resolution: {integrity: sha512-rH+46sQJ2dlwfjfhCyNx5thzrv+dtmBIhPHk0zgRUukHzZ/kRueTJXoYYsclBaKcSMBWuGbOFXtioLpzTb5euw==} @@ -6630,8 +6757,8 @@ packages: resolution: {integrity: sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - inline-style-parser@0.2.4: - resolution: {integrity: sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==} + inline-style-parser@0.2.7: + resolution: {integrity: sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA==} inquirer-autocomplete-prompt@1.4.0: resolution: {integrity: sha512-qHgHyJmbULt4hI+kCmwX92MnSxDs/Yhdt4wPA30qnoa01OF6uTXV8yvH4hKXgdaTNmkZ9D01MHjqKYEuJN+ONw==} @@ -6751,8 +6878,8 @@ packages: resolution: {integrity: sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ==} engines: {node: '>=18'} - is-generator-function@1.1.0: - resolution: {integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==} + is-generator-function@1.1.2: + resolution: {integrity: sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==} engines: {node: '>= 0.4'} is-glob@4.0.3: @@ -6796,8 +6923,8 @@ packages: resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} engines: {node: '>= 0.4'} - is-network-error@1.3.0: - resolution: {integrity: sha512-6oIwpsgRfnDiyEDLMay/GqCl3HoAtH5+RUKW29gYkL0QA+ipzpDLA16yQs7/RHCSu+BwgbJaOUqa4A99qNVQVw==} + is-network-error@1.3.1: + resolution: {integrity: sha512-6QCxa49rQbmUWLfk0nuGqzql9U8uaV2H6279bRErPBHe/109hCzsLUBUHfbEtvLIHBd6hyXbgedBSHevm43Edw==} engines: {node: '>=16'} is-npm@6.1.0: @@ -6918,6 +7045,10 @@ packages: resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} engines: {node: '>=16'} + is-wsl@3.1.1: + resolution: {integrity: sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==} + engines: {node: '>=16'} + is64bit@2.0.0: resolution: {integrity: sha512-jv+8jaWCl0g2lSBkNSVXdzfBA0npK1HGC2KtWM9FumFRoGS94g3NbCCLVnCYHLjp4GrW2KZeeSTMo5ddtznmGw==} engines: {node: '>=18'} @@ -6965,8 +7096,8 @@ packages: jju@1.4.0: resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} - jose@6.1.3: - resolution: {integrity: sha512-0TpaTfihd4QMNwrz/ob2Bp7X04yuxJkjRGi4aKmOqwhov54i6u79oCv7T+C7lo70MKH6BesI3vscD1yb/yzKXQ==} + jose@6.2.2: + resolution: {integrity: sha512-d7kPDd34KO/YnzaDOlikGpOurfF0ByC2sEV4cANCtdqLlTfBlw2p14O/5d/zv40gJPbIQxfES3nSx1/oYNyuZQ==} jpeg-js@0.4.4: resolution: {integrity: sha512-WZzeDOEtTOBK4Mdsar0IqEU5sMr3vSV2RqkAIzUEV2BHnUfKGyswWFPFwK5EeDo93K3FohSHbLAjj0s1Wzd+dg==} @@ -7025,11 +7156,6 @@ packages: resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} hasBin: true - json5@2.2.3: - resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} - engines: {node: '>=6'} - hasBin: true - jsonc-parser@3.3.1: resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==} @@ -7099,8 +7225,8 @@ packages: kuler@2.0.0: resolution: {integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==} - ky@1.11.0: - resolution: {integrity: sha512-NEyo0ICpS0cqSuyoJFMCnHOZJILqXsKhIZlHJGDYaH8OB5IFrGzuBpEwyoMZG6gUKMPrazH30Ax5XKaujvD8ag==} + ky@1.14.3: + resolution: {integrity: sha512-9zy9lkjac+TR1c2tG+mkNSVlyOpInnWdSMiue4F+kq8TwJSgv6o8jhLRg8Ho6SnZ9wOYUq/yozts9qQCfk7bIw==} engines: {node: '>=18'} lambda-local@2.2.0: @@ -7112,8 +7238,8 @@ packages: resolution: {integrity: sha512-7W0vV3rqv5tokqkBAFV1LbR7HPOWzXQDpDgEuib/aJ1jsZZx6x3c2mBI+TJhJzOhkGeaLbCKEHXEXLfirtG2JA==} engines: {node: '>=18'} - launch-editor@2.12.0: - resolution: {integrity: sha512-giOHXoOtifjdHqUamwKq6c49GzBdLjvxrd2D+Q4V6uOHopJv7p9VJxikDsQ/CBXZbEITgUqSVHXLTG3VhPP1Dg==} + launch-editor@2.13.2: + resolution: {integrity: sha512-4VVDnbOpLXy/s8rdRCSXb+zfMeFR0WlJWpET1iA9CQdlZDfwyLjUuGQzXU4VeOoey6AicSAluWan7Etga6Kcmg==} lazystream@1.0.1: resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} @@ -7130,82 +7256,82 @@ packages: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} - libsql@0.5.22: - resolution: {integrity: sha512-NscWthMQt7fpU8lqd7LXMvT9pi+KhhmTHAJWUB/Lj6MWa0MKFv0F2V4C6WKKpjCVZl0VwcDz4nOI3CyaT1DDiA==} + libsql@0.5.29: + resolution: {integrity: sha512-8lMP8iMgiBzzoNbAPQ59qdVcj6UaE/Vnm+fiwX4doX4Narook0a4GPKWBEv+CR8a1OwbfkgL18uBfBjWdF0Fzg==} cpu: [x64, arm64, wasm32, arm] os: [darwin, linux, win32] light-my-request@6.6.0: resolution: {integrity: sha512-CHYbu8RtboSIoVsHZ6Ye4cj4Aw/yg2oAFimlF7mNvfDV192LR7nDiKtSIfCuLT7KokPSTn/9kfVLm5OGN0A28A==} - lightningcss-android-arm64@1.30.2: - resolution: {integrity: sha512-BH9sEdOCahSgmkVhBLeU7Hc9DWeZ1Eb6wNS6Da8igvUwAe0sqROHddIlvU06q3WyXVEOYDZ6ykBZQnjTbmo4+A==} + lightningcss-android-arm64@1.32.0: + resolution: {integrity: sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [android] - lightningcss-darwin-arm64@1.30.2: - resolution: {integrity: sha512-ylTcDJBN3Hp21TdhRT5zBOIi73P6/W0qwvlFEk22fkdXchtNTOU4Qc37SkzV+EKYxLouZ6M4LG9NfZ1qkhhBWA==} + lightningcss-darwin-arm64@1.32.0: + resolution: {integrity: sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [darwin] - lightningcss-darwin-x64@1.30.2: - resolution: {integrity: sha512-oBZgKchomuDYxr7ilwLcyms6BCyLn0z8J0+ZZmfpjwg9fRVZIR5/GMXd7r9RH94iDhld3UmSjBM6nXWM2TfZTQ==} + lightningcss-darwin-x64@1.32.0: + resolution: {integrity: sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [darwin] - lightningcss-freebsd-x64@1.30.2: - resolution: {integrity: sha512-c2bH6xTrf4BDpK8MoGG4Bd6zAMZDAXS569UxCAGcA7IKbHNMlhGQ89eRmvpIUGfKWNVdbhSbkQaWhEoMGmGslA==} + lightningcss-freebsd-x64@1.32.0: + resolution: {integrity: sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [freebsd] - lightningcss-linux-arm-gnueabihf@1.30.2: - resolution: {integrity: sha512-eVdpxh4wYcm0PofJIZVuYuLiqBIakQ9uFZmipf6LF/HRj5Bgm0eb3qL/mr1smyXIS1twwOxNWndd8z0E374hiA==} + lightningcss-linux-arm-gnueabihf@1.32.0: + resolution: {integrity: sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==} engines: {node: '>= 12.0.0'} cpu: [arm] os: [linux] - lightningcss-linux-arm64-gnu@1.30.2: - resolution: {integrity: sha512-UK65WJAbwIJbiBFXpxrbTNArtfuznvxAJw4Q2ZGlU8kPeDIWEX1dg3rn2veBVUylA2Ezg89ktszWbaQnxD/e3A==} + lightningcss-linux-arm64-gnu@1.32.0: + resolution: {integrity: sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] - lightningcss-linux-arm64-musl@1.30.2: - resolution: {integrity: sha512-5Vh9dGeblpTxWHpOx8iauV02popZDsCYMPIgiuw97OJ5uaDsL86cnqSFs5LZkG3ghHoX5isLgWzMs+eD1YzrnA==} + lightningcss-linux-arm64-musl@1.32.0: + resolution: {integrity: sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] - lightningcss-linux-x64-gnu@1.30.2: - resolution: {integrity: sha512-Cfd46gdmj1vQ+lR6VRTTadNHu6ALuw2pKR9lYq4FnhvgBc4zWY1EtZcAc6EffShbb1MFrIPfLDXD6Xprbnni4w==} + lightningcss-linux-x64-gnu@1.32.0: + resolution: {integrity: sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] - lightningcss-linux-x64-musl@1.30.2: - resolution: {integrity: sha512-XJaLUUFXb6/QG2lGIW6aIk6jKdtjtcffUT0NKvIqhSBY3hh9Ch+1LCeH80dR9q9LBjG3ewbDjnumefsLsP6aiA==} + lightningcss-linux-x64-musl@1.32.0: + resolution: {integrity: sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] - lightningcss-win32-arm64-msvc@1.30.2: - resolution: {integrity: sha512-FZn+vaj7zLv//D/192WFFVA0RgHawIcHqLX9xuWiQt7P0PtdFEVaxgF9rjM/IRYHQXNnk61/H/gb2Ei+kUQ4xQ==} + lightningcss-win32-arm64-msvc@1.32.0: + resolution: {integrity: sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [win32] - lightningcss-win32-x64-msvc@1.30.2: - resolution: {integrity: sha512-5g1yc73p+iAkid5phb4oVFMB45417DkRevRbt/El/gKXJk4jid+vPFF/AXbxn05Aky8PapwzZrdJShv5C0avjw==} + lightningcss-win32-x64-msvc@1.32.0: + resolution: {integrity: sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [win32] - lightningcss@1.30.2: - resolution: {integrity: sha512-utfs7Pr5uJyyvDETitgsaqSyjCb2qNRAtuqUeWIAKztsOYdcACf2KtARYXg2pSvhkt+9NfoaNY7fxjl6nuMjIQ==} + lightningcss@1.32.0: + resolution: {integrity: sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==} engines: {node: '>= 12.0.0'} lines-and-columns@1.2.4: @@ -7308,9 +7434,6 @@ packages: resolution: {integrity: sha512-aY/R+aEsRelme17KGQa/1ZSIpLpNYYrhcrepKTZgE+W3WM16YMCaPwOHLHsmopZHELU0Ojin1lPVxKR0MihncA==} engines: {node: 20 || >=22} - lru-cache@5.1.1: - resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - lru-cache@6.0.0: resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} engines: {node: '>=10'} @@ -7376,8 +7499,8 @@ packages: mdast-util-find-and-replace@3.0.2: resolution: {integrity: sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==} - mdast-util-from-markdown@2.0.2: - resolution: {integrity: sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==} + mdast-util-from-markdown@2.0.3: + resolution: {integrity: sha512-W4mAWTvSlKvf8L6J+VN9yLSqQ9AOAAvHuoDAmPkz4dHf553m5gVj2ejadHJhoJmcmxEnOv6Pa8XJhpxE93kb8Q==} mdast-util-frontmatter@2.0.1: resolution: {integrity: sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==} @@ -7430,8 +7553,8 @@ packages: mdn-data@2.0.30: resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} - mdn-data@2.12.2: - resolution: {integrity: sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==} + mdn-data@2.27.1: + resolution: {integrity: sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==} media-typer@0.3.0: resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} @@ -7635,17 +7758,21 @@ packages: resolution: {integrity: sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==} engines: {node: 18 || 20 || >=22} - minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + minimatch@3.1.5: + resolution: {integrity: sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==} - minimatch@5.1.6: - resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} + minimatch@5.1.9: + resolution: {integrity: sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==} engines: {node: '>=10'} minimatch@9.0.5: resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} engines: {node: '>=16 || 14 >=14.17'} + minimatch@9.0.9: + resolution: {integrity: sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==} + engines: {node: '>=16 || 14 >=14.17'} + minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} @@ -7657,8 +7784,8 @@ packages: resolution: {integrity: sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==} engines: {node: '>= 18'} - mlly@1.8.0: - resolution: {integrity: sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g==} + mlly@1.8.2: + resolution: {integrity: sha512-d+ObxMQFmbt10sretNDytwt85VrbkhhUA/JBGm1MPaWJ65Cl4wOgLaB1NYvJSZ0Ef03MMEU/0xpPMXUIQ29UfA==} modern-tar@0.7.5: resolution: {integrity: sha512-YTefgdpKKFgoTDbEUqXqgUJct2OG6/4hs4XWLsxcHkDLj/x/V8WmKIRppPnXP5feQ7d1vuYWSp3qKkxfwaFaxA==} @@ -7707,16 +7834,16 @@ packages: mute-stream@0.0.8: resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} - nan@2.23.0: - resolution: {integrity: sha512-1UxuyYGdoQHcGg87Lkqm3FzefucTa0NAiOcuRsDmysep3c1LVCRK2krrUDafMWtjSG04htvAmvg96+SDknOmgQ==} + nan@2.26.2: + resolution: {integrity: sha512-0tTvBTYkt3tdGw22nrAy50x7gpbGCCFH3AFcyS5WiUu7Eu4vWlri1woE6qHBSfy11vksDqkiwjOnlR7WV8G1Hw==} nanoid@3.3.11: resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - nanoid@5.1.6: - resolution: {integrity: sha512-c7+7RQ+dMB5dPwwCp4ee1/iV/q2P6aK1mTZcfr1BTuVlyW9hJYiMPybJCcnBlQtuSmTIWNeazm/zqNoZSSElBg==} + nanoid@5.1.7: + resolution: {integrity: sha512-ua3NDgISf6jdwezAheMOk4mbE1LXjm1DfMUDMuJf4AqxLFK3ccGpgWizwa5YV7Yz9EpXwEaWoRXSb/BnV0t5dQ==} engines: {node: ^18 || >=20} hasBin: true @@ -7750,6 +7877,10 @@ packages: engines: {node: '>=10.5.0'} deprecated: Use your platform's native DOMException instead + node-exports-info@1.6.0: + resolution: {integrity: sha512-pyFS63ptit/P5WqUkt+UUfe+4oevH+bFeIiPPdfb0pFeYEu/1ELnJu5l+5EcTKYL5M7zaAa7S8ddywgXypqKCw==} + engines: {node: '>= 0.4'} + node-fetch-native@1.6.7: resolution: {integrity: sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==} @@ -7766,19 +7897,19 @@ packages: resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - node-forge@1.3.1: - resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} + node-forge@1.4.0: + resolution: {integrity: sha512-LarFH0+6VfriEhqMMcLX2F7SwSXeWwnEAJEsYm5QKWchiVYVvJyV9v7UDvUv+w5HO23ZpQTXDv/GxdDdMyOuoQ==} engines: {node: '>= 6.13.0'} node-gyp-build@4.8.4: resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} hasBin: true - node-mock-http@1.0.3: - resolution: {integrity: sha512-jN8dK25fsfnMrVsEhluUTPkBFY+6ybu7jSB1n+ri/vOGjJxU8J9CZhpSGkHXSkFjtUhbmoncG/YG9ta5Ludqog==} + node-mock-http@1.0.4: + resolution: {integrity: sha512-8DY+kFsDkNXy1sJglUfuODx1/opAGJGyrTuFqEoN90oRc2Vk0ZbD4K2qmKXBBEhZQzdKHIVfEJpDU8Ak2NJEvQ==} - node-releases@2.0.27: - resolution: {integrity: sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==} + node-releases@2.0.36: + resolution: {integrity: sha512-TdC8FSgHz8Mwtw9g5L4gR/Sh9XhSP/0DEkQxfEFXOpiul5IiHgHan2VhYYb6agDSfp4KuvltmGApc8HMgUrIkA==} node-source-walk@7.0.1: resolution: {integrity: sha512-3VW/8JpPqPvnJvseXowjZcirPisssnBuDikk6JIZ8jQzF7KJQX52iPFX4RYYxLycYH7IbMRSPUOga/esVjy5Yg==} @@ -7836,8 +7967,8 @@ packages: nth-check@2.1.1: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} - oauth4webapi@3.8.3: - resolution: {integrity: sha512-pQ5BsX3QRTgnt5HxgHwgunIRaDXBdkT23tf8dfzmtTIL2LTpdmxgbpbBm0VgFWAIDlezQvQCTgnVIUmHupXHxw==} + oauth4webapi@3.8.5: + resolution: {integrity: sha512-A8jmyUckVhRJj5lspguklcl90Ydqk61H3dcU0oLhH3Yv13KpAliKTt5hknpGGPZSSfOwGyraNEFmofDYH+1kSg==} object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} @@ -7855,6 +7986,10 @@ packages: resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} engines: {node: '>= 0.4'} + object.entries@1.1.9: + resolution: {integrity: sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==} + engines: {node: '>= 0.4'} + object.fromentries@2.0.8: resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} engines: {node: '>= 0.4'} @@ -7870,8 +8005,8 @@ packages: obug@2.1.1: resolution: {integrity: sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==} - ofetch@1.4.1: - resolution: {integrity: sha512-QZj2DfGplQAr2oj9KzceK9Hwz6Whxazmn85yYeVuS3u9XTMOGMRx0kO95MQ+vLsj/S/NwBDMMLU5hpxvI6Tklw==} + ofetch@1.5.1: + resolution: {integrity: sha512-2W4oUZlVaqAPAil6FUg/difl6YhqhUR7x2eZY4bQCko22UXg3hptq9KLQdqFClV+Wu85UX7hNtdGTngi/1BxcA==} ohash@2.0.11: resolution: {integrity: sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==} @@ -7912,8 +8047,8 @@ packages: oniguruma-parser@0.12.1: resolution: {integrity: sha512-8Unqkvk1RYc6yq2WBYRj4hdnsAxVze8i7iPfQr8e4uSP3tRv0rpZcbGUDvxfQQcdwHt/e9PrMvGCsa8OqG9X3w==} - oniguruma-to-es@4.3.4: - resolution: {integrity: sha512-3VhUGN3w2eYxnTzHn+ikMI+fp/96KoRSVK9/kMTcFqj1NRDh2IhQCKvYxDnWePKRXY/AqH+Fuiyb7VHSzBjHfA==} + oniguruma-to-es@4.3.5: + resolution: {integrity: sha512-Zjygswjpsewa0NLTsiizVuMQZbp0MDyM6lIt66OxsF21npUDlzpHi1Mgb/qhQdkb+dWFTzJmFbEWdvZgRho8eQ==} open@10.2.0: resolution: {integrity: sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==} @@ -8042,8 +8177,8 @@ packages: resolution: {integrity: sha512-2kKzMtjS8TVcpCOU/gr3vZ4K/WIyS1AsEFXFWapM/0lERCdyTbB6ZeuCIp+cL1aeLZfQoMdZFCBTHiK4I9UtOw==} engines: {node: '>=20'} - package-directory@8.1.0: - resolution: {integrity: sha512-qHKRW0pw3lYdZMQVkjDBqh8HlamH/LCww2PH7OWEp4Qrt3SFeYMNpnJrQzlSnGrDD5zGR51XqBh7FnNCdVNEHA==} + package-directory@8.2.0: + resolution: {integrity: sha512-qJSu5Mo6tHmRxCy2KCYYKYgcfBdUpy9dwReaZD/xwf608AUk/MoRtIOWzgDtUeGeC7n/55yC3MI1Q+MbSoektw==} engines: {node: '>=18'} package-json-from-dist@1.0.1: @@ -8159,8 +8294,8 @@ packages: pend@1.2.0: resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} - perfect-debounce@2.0.0: - resolution: {integrity: sha512-fkEH/OBiKrqqI/yIgjR92lMfs2K8105zt/VT6+7eTjNwisrsh47CeIED9z58zI7DfKdH3uHAn25ziRZn3kgAow==} + perfect-debounce@2.1.0: + resolution: {integrity: sha512-LjgdTytVFXeUgtHZr9WYViYSM/g8MkcTPYDlPa3cDqMirHjKiSZPYd6DoL7pK8AJQr+uWkQvCjHNdiMqsrJs+g==} pg-cloudflare@1.3.0: resolution: {integrity: sha512-6lswVVSztmHiRtD6I8hw4qP/nDm1EJbKMRhf3HCYaqud7frGysPv7FYJ5noZQdhQtN2xJnimfMtvQq21pdbzyQ==} @@ -8202,12 +8337,12 @@ packages: picocolors@1.1.1: resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} - picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + picomatch@2.3.2: + resolution: {integrity: sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==} engines: {node: '>=8.6'} - picomatch@4.0.3: - resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} + picomatch@4.0.4: + resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==} engines: {node: '>=12'} picoquery@2.5.0: @@ -8224,8 +8359,8 @@ packages: pino-abstract-transport@3.0.0: resolution: {integrity: sha512-wlfUczU+n7Hy/Ha5j9a/gZNy7We5+cXp8YL+X+PG8S0KXxw7n/JXA3c46Y0zQznIJ83URJiwy7Lh56WLokNuxg==} - pino-std-serializers@7.0.0: - resolution: {integrity: sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==} + pino-std-serializers@7.1.0: + resolution: {integrity: sha512-BndPH67/JxGExRgiX1dX0w1FvZck5Wa4aal9198SrRhZjH3GxKQUKIBnYJTdj2HDN3UQAS06HlfcSbQj2OHmaw==} pino@10.3.1: resolution: {integrity: sha512-r34yH/GlQpKZbU1BvFFqOjhISRo1MNx1tWYsYvmj6KIRHSPMT2+yHOEb1SG6NMvRoHRF0a07kCOox/9yakl1vg==} @@ -8264,6 +8399,10 @@ packages: resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} engines: {node: ^10 || ^12 || >=14} + postcss@8.5.8: + resolution: {integrity: sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg==} + engines: {node: ^10 || ^12 || >=14} + postgres-array@2.0.0: resolution: {integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==} engines: {node: '>=4'} @@ -8448,8 +8587,8 @@ packages: pump@1.0.3: resolution: {integrity: sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==} - pump@3.0.3: - resolution: {integrity: sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==} + pump@3.0.4: + resolution: {integrity: sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==} punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} @@ -8462,12 +8601,12 @@ packages: pure-rand@6.1.0: resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==} - qs@6.13.0: - resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} + qs@6.14.2: + resolution: {integrity: sha512-V/yCWTTF7VJ9hIh18Ugr2zhJMP01MY7c5kh4J870L7imm6/DIzBsNLTXzMwUA3yZ5b/KBqLx8Kp3uRvd7xSe3Q==} engines: {node: '>=0.6'} - qs@6.14.1: - resolution: {integrity: sha512-4EK3+xJl8Ts67nLYNwqw/dsFVnCf+qR7RgXSK9jEEm9unao3njwMDdmsdvoKBKHzxd7tCYz5e5M+SnMjdtXGQQ==} + qs@6.15.0: + resolution: {integrity: sha512-mAZTtNCeetKMH+pSjrb76NAM8V9a05I9aBZOHztWy/UqcJdQYNsf59vrRKWnojAT9Y+GbIvoTBC++CPHqpDBhQ==} engines: {node: '>=0.6'} quansync@0.2.11: @@ -8499,8 +8638,8 @@ packages: resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} engines: {node: '>= 0.6'} - raw-body@2.5.2: - resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} + raw-body@2.5.3: + resolution: {integrity: sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==} engines: {node: '>= 0.8'} raw-body@3.0.1: @@ -8519,8 +8658,8 @@ packages: react-is@16.13.1: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} - react-is@19.1.1: - resolution: {integrity: sha512-tr41fA15Vn8p4X9ntI+yCyeGSf1TlYaY5vlTZfQmeLBrFo3psOPX6HhTDnFNL9uj3EhP0KAQ80cugCl4b4BERA==} + react-is@19.2.4: + resolution: {integrity: sha512-W+EWGn2v0ApPKgKKCy/7s7WHXkboGcsrXE+2joLyVxkbyVQfO3MUEaUQDHoSmb8TFFrSKYa9mw64WZHNHSDzYA==} react-transition-group@4.4.5: resolution: {integrity: sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==} @@ -8574,6 +8713,10 @@ packages: resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} engines: {node: '>= 14.18.0'} + readdirp@5.0.0: + resolution: {integrity: sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==} + engines: {node: '>= 20.19.0'} + real-require@0.2.0: resolution: {integrity: sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==} engines: {node: '>= 12.13.0'} @@ -8620,8 +8763,8 @@ packages: resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} engines: {node: '>= 0.4'} - registry-auth-token@5.1.0: - resolution: {integrity: sha512-GdekYuwLXLxMuFTwAPg5UKGLW/UXzQrZvH/Zj791BQif5T05T0RsaLfHc9q3ZOKi7n+BoprPD9mJ0O0k4xzUlw==} + registry-auth-token@5.1.1: + resolution: {integrity: sha512-P7B4+jq8DeD2nMsAcdfaqHbssgHtZ7Z5+++a5ask90fvmJ8p5je4mOa+wzu+DB4vQ5tdJV/xywY+UnVFeQLV5Q==} engines: {node: '>=14'} registry-url@6.0.1: @@ -8698,8 +8841,9 @@ packages: engines: {node: '>= 0.4'} hasBin: true - resolve@2.0.0-next.5: - resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} + resolve@2.0.0-next.6: + resolution: {integrity: sha512-3JmVl5hMGtJ3kMmB3zi3DL25KfkCEyy3Tw7Gmw7z5w8M9WlwoPFnIvwChzu1+cF3iaK3sp18hhPz8ANeimdJfA==} + engines: {node: '>= 0.4'} hasBin: true restore-cursor@3.1.0: @@ -8725,6 +8869,11 @@ packages: rfdc@1.4.1: resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} + rolldown@1.0.0-rc.13: + resolution: {integrity: sha512-bvVj8YJmf0rq4pSFmH7laLa6pYrhghv3PRzrCdRAr23g66zOKVJ4wkvFtgohtPLWmthgg8/rkaqRHrpUEh0Zbw==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + rollup-plugin-inject@3.0.2: resolution: {integrity: sha512-ptg9PQwzs3orn4jkgXJ74bfs5vYz1NCZlSQMBUA0wKcGp5i5pA1AO3fOUEte8enhGUC+iapTCzEWw2jEFFUO/w==} deprecated: This package has been deprecated and is no longer maintained. Please use @rollup/plugin-inject. @@ -8798,8 +8947,8 @@ packages: safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - sax@1.5.0: - resolution: {integrity: sha512-21IYA3Q5cQf089Z6tgaUTr7lDAyzoTPx5HRtbhsME8Udispad8dC/+sziTNugOEx54ilvatQ9YCzl4KQLPcRHA==} + sax@1.6.0: + resolution: {integrity: sha512-6R3J5M4AcbtLUdZmRv2SygeVaM7IhrLXu9BmnOGmmACak8fiUtOsYNWUS4uK7upbmHIBbLBeFeI//477BKLBzA==} engines: {node: '>=11.0.0'} scheduler@0.27.0: @@ -8831,16 +8980,16 @@ packages: engines: {node: '>=10'} hasBin: true - send@0.19.0: - resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==} + send@0.19.2: + resolution: {integrity: sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==} engines: {node: '>= 0.8.0'} send@1.2.1: resolution: {integrity: sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==} engines: {node: '>= 18'} - serve-static@1.16.2: - resolution: {integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==} + serve-static@1.16.3: + resolution: {integrity: sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==} engines: {node: '>= 0.8.0'} serve-static@2.2.1: @@ -8956,8 +9105,8 @@ packages: snoop@1.0.4: resolution: {integrity: sha512-VgTDhcpNDEf63CMPWh/J/kr2mTKDYsonG6Kpd9kXCpoMyUMZoe+3NkkbMKIcu7dUwmX4OeeQQ0m/uQfTjMY8bw==} - sonic-boom@4.2.0: - resolution: {integrity: sha512-INb7TM37/mAcsGmc9hyyI6+QR3rR1zVRu36B0NeGXKnOOLiZOfER5SA+N7X7k3yUYRzLWafduTDvJAfDswwEww==} + sonic-boom@4.2.1: + resolution: {integrity: sha512-w6AxtubXa2wTXAUsZMMWERrsIRAdrK0Sc+FUytWvYAhBJLyuI4llrMIC1DtlNSdI99EI86KZum2MMq3EAZlF9Q==} source-map-js@1.2.1: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} @@ -8997,8 +9146,8 @@ packages: spdx-expression-parse@3.0.1: resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} - spdx-license-ids@3.0.22: - resolution: {integrity: sha512-4PRT4nh1EImPbt2jASOKHX7PB7I+e4IWNLvkKFDxNhJlfjbYlleYQh285Z/3mPTHSAK/AvdMmw5BNNuYH8ShgQ==} + spdx-license-ids@3.0.23: + resolution: {integrity: sha512-CWLcCCH7VLu13TgOH+r8p1O/Znwhqv/dbb6lqWy67G+pT1kHmeD/+V36AVb/vq8QMIQwVShJ6Ssl5FPh0fuSdw==} split2@1.1.1: resolution: {integrity: sha512-cfurE2q8LamExY+lJ9Ex3ZfBwqAPduzOKVscPDXNCLLMvyaeD3DTz1yk7fVIs6Chco+12XeD0BB6HEoYzPYbXA==} @@ -9025,8 +9174,8 @@ packages: stackframe@1.3.4: resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==} - stacktracey@2.1.8: - resolution: {integrity: sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==} + stacktracey@2.2.0: + resolution: {integrity: sha512-ETyQEz+CzXiLjEbyJqpbp+/T79RQD/6wqFucRBIlVNZfYq2Ay7wbretD4cxpbymZlaPWx58aIhPEY1Cr8DlVvg==} statuses@1.5.0: resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} @@ -9055,8 +9204,8 @@ packages: resolution: {integrity: sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==} engines: {node: '>=4', npm: '>=6'} - streamx@2.23.0: - resolution: {integrity: sha512-kn+e44esVfn2Fa/O0CPFcex27fjIL6MkVae0Mm6q+E6f0hWv578YCERbv+4m02cjxvDsPKLnmxral/rR6lBMAg==} + streamx@2.25.0: + resolution: {integrity: sha512-0nQuG6jf1w+wddNEEXCF4nTg3LtufWINB5eFEN+5TNZW7KWJp6x87+JFL43vaAUPyCfH1wID+mNVyW6OHtFamg==} string-argv@0.3.2: resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} @@ -9131,8 +9280,8 @@ packages: resolution: {integrity: sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==} engines: {node: '>=18'} - strip-indent@4.1.0: - resolution: {integrity: sha512-OA95x+JPmL7kc7zCu+e+TeYxEiaIyndRx0OrBcK2QPPH09oAndr2ALvymxWA+Lx1PYYvFUm4O63pRkdJAaW96w==} + strip-indent@4.1.1: + resolution: {integrity: sha512-SlyRoSkdh1dYP0PzclLE7r0M9sgbFKKMFXpFRUMNuKhQSbC6VQIGzq3E0qsfvGJaUFJPGv6Ws1NZ/haTAjfbMA==} engines: {node: '>=12'} strip-json-comments@2.0.1: @@ -9143,14 +9292,17 @@ packages: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} - stubborn-fs@1.2.5: - resolution: {integrity: sha512-H2N9c26eXjzL/S/K+i/RHHcFanE74dptvvjM8iwzwbVcWY/zjBbgRqF3K0DY4+OD+uTTASTBvDoxPDaPN02D7g==} + stubborn-fs@2.0.0: + resolution: {integrity: sha512-Y0AvSwDw8y+nlSNFXMm2g6L51rBGdAQT20J3YSOqxC53Lo3bjWRtr2BKcfYoAf352WYpsZSTURrA0tqhfgudPA==} + + stubborn-utils@1.0.2: + resolution: {integrity: sha512-zOh9jPYI+xrNOyisSelgym4tolKTJCQd5GBhK0+0xJvcYDcwlOoxF/rnFKQ2KRZknXSG9jWAp66fwP6AxN9STg==} - style-to-js@1.1.17: - resolution: {integrity: sha512-xQcBGDxJb6jjFCTzvQtfiPn6YvvP2O8U1MDIPNfJQlWMYfktPy+iGsHE7cssjs7y84d9fQaK4UF3RIJaAHSoYA==} + style-to-js@1.1.21: + resolution: {integrity: sha512-RjQetxJrrUJLQPHbLku6U/ocGtzyjbJMP9lCNK7Ag0CNh690nSH8woqWH9u16nMjYBAok+i7JO1NP2pOy8IsPQ==} - style-to-object@1.0.9: - resolution: {integrity: sha512-G4qppLgKu/k6FwRpHiGiKPaPTFcG3g4wNVX/Qsfu+RqQM30E7Tyu/TEgxcL9PNLF5pdRLwQdE3YKKf+KF2Dzlw==} + style-to-object@1.0.14: + resolution: {integrity: sha512-LIN7rULI0jBscWQYaSswptyderlarFkjQ+t79nzty8tcIAceVomEVlLzH5VP4Cmsv6MtKhs7qaAiwlcp+Mgaxw==} stylis@4.2.0: resolution: {integrity: sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==} @@ -9188,8 +9340,8 @@ packages: engines: {node: '>=14.0.0'} hasBin: true - svgo@4.0.0: - resolution: {integrity: sha512-VvrHQ+9uniE+Mvx3+C9IEe/lWasXCU0nXMY2kZeLrHNICuRiC8uMPyM14UEaMOFA5mhyQqEkB02VoQ16n3DLaw==} + svgo@4.0.1: + resolution: {integrity: sha512-XDpWUOPC6FEibaLzjfe0ucaV0YrOjYotGJO1WpF0Zd+n6ZGEQUsSugaoLq9QkEZtAfQIxT42UChcssDVPP3+/w==} engines: {node: '>=16'} hasBin: true @@ -9202,27 +9354,33 @@ packages: resolution: {integrity: sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA==} engines: {node: '>=18'} - tabbable@6.2.0: - resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==} + tabbable@6.4.0: + resolution: {integrity: sha512-05PUHKSNE8ou2dwIxTngl4EzcnsCDZGJ/iCLtDflR/SHB/ny14rXc+qU5P4mG9JkusiV7EivzY9Mhm55AzAvCg==} tagged-tag@1.0.0: resolution: {integrity: sha512-yEFYrVhod+hdNyx7g5Bnkkb0G6si8HJurOoOEgC8B/O0uXLHlaey/65KRv6cuWBNhBgHKAROVpc7QyYqE5gFng==} engines: {node: '>=20'} - tailwindcss@4.1.18: - resolution: {integrity: sha512-4+Z+0yiYyEtUVCScyfHCxOYP06L5Ne+JiHhY2IjR2KWMIWhJOYZKLSGZaP5HkZ8+bY0cxfzwDE5uOmzFXyIwxw==} + tailwindcss@4.2.1: + resolution: {integrity: sha512-/tBrSQ36vCleJkAOsy9kbNTgaxvGbyOamC30PRePTQe/o1MFwEKHQk4Cn7BNGaPtjp+PuUrByJehM1hgxfq4sw==} - tapable@2.3.0: - resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==} + tailwindcss@4.2.2: + resolution: {integrity: sha512-KWBIxs1Xb6NoLdMVqhbhgwZf2PGBpPEiwOqgI4pFIYbNTfBXiKYyWoTsXgBQ9WFg/OlhnvHaY+AEpW7wSmFo2Q==} + + tapable@2.3.2: + resolution: {integrity: sha512-1MOpMXuhGzGL5TTCZFItxCc0AARf1EZFQkGqMm7ERKj8+Hgr5oLvJOVFcC+lRmR8hCe2S3jC4T5D7Vg/d7/fhA==} engines: {node: '>=6'} - tar-stream@3.1.7: - resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==} + tar-stream@3.1.8: + resolution: {integrity: sha512-U6QpVRyCGHva435KoNWy9PRoi2IFYCgtEhq9nmrPPpbRacPs9IH4aJ3gbrFC8dPcXvdSZ4XXfXT5Fshbp2MtlQ==} tar@7.5.13: resolution: {integrity: sha512-tOG/7GyXpFevhXVh8jOPJrmtRpOTsYqUIkVdVooZYJS/z8WhfQUX8RJILmeuJNinGAMSu1veBr4asSHFt5/hng==} engines: {node: '>=18'} + teex@1.0.1: + resolution: {integrity: sha512-eYE6iEI62Ni1H8oIa7KlDU6uQBtqr4Eajni3wX7rpfXD8ysFx8z0+dri+KWEPWpBsxXfxu58x/0jvTVT1ekOSg==} + temporal-polyfill@0.3.2: resolution: {integrity: sha512-TzHthD/heRK947GNiSu3Y5gSPpeUDH34+LESnfsq8bqpFhsB79HFBX8+Z834IVX68P3EUyRPZK5bL/1fh437Eg==} @@ -9246,14 +9404,14 @@ packages: engines: {node: '>=10'} hasBin: true - text-decoder@1.2.3: - resolution: {integrity: sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==} + text-decoder@1.2.7: + resolution: {integrity: sha512-vlLytXkeP4xvEq2otHeJfSQIRyWxo/oZGEbXrtEEF9Hnmrdly59sUbzZ/QgyWuLYHctCHxFF4tRQZNQ9k60ExQ==} text-hex@1.0.0: resolution: {integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==} - thingies@2.5.0: - resolution: {integrity: sha512-s+2Bwztg6PhWUD7XMfeYm5qliDdSiZm7M7n8KjTkIsm3l/2lgVRc2/Gx/v+ZX8lT4FMA+i8aQvhcWylldc+ZNw==} + thingies@2.6.0: + resolution: {integrity: sha512-rMHRjmlFLM1R96UYPvpmnc3LYtdFrT33JIB7L9hetGue1qAPfn1N2LJeEjxUSidu1Iku+haLZXDuEXUHNGO/lg==} engines: {node: '>=10.18'} peerDependencies: tslib: ^2 @@ -9281,16 +9439,16 @@ packages: tinyexec@0.3.2: resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} - tinyexec@1.0.2: - resolution: {integrity: sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==} + tinyexec@1.0.4: + resolution: {integrity: sha512-u9r3uZC0bdpGOXtlxUIdwf9pkmvhqJdrVCH9fapQtgy/OeTTMZ1nqH7agtvEfmGui6e1XxjcdrlxvxJvc3sMqw==} engines: {node: '>=18'} tinyglobby@0.2.15: resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} engines: {node: '>=12.0.0'} - tinyrainbow@3.0.3: - resolution: {integrity: sha512-PSkbLUoxOFRzJYjjxHJt9xro7D+iilgMX/C9lawzVuYiIdcihh9DXmVibBe8lmcFrRi/VzlPjBxbN7rH24q8/Q==} + tinyrainbow@3.1.0: + resolution: {integrity: sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw==} engines: {node: '>=14.0.0'} tmp-promise@3.0.3: @@ -9353,8 +9511,8 @@ packages: trough@2.2.0: resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} - ts-api-utils@2.4.0: - resolution: {integrity: sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==} + ts-api-utils@2.5.0: + resolution: {integrity: sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==} engines: {node: '>=18.12'} peerDependencies: typescript: 5.9.3 @@ -9403,6 +9561,11 @@ packages: engines: {node: '>=12'} hasBin: true + tsx@4.21.0: + resolution: {integrity: sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw==} + engines: {node: '>=18.0.0'} + hasBin: true + type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} @@ -9458,8 +9621,8 @@ packages: engines: {node: '>=14.17'} hasBin: true - ufo@1.6.2: - resolution: {integrity: sha512-heMioaxBcG9+Znsda5Q8sQbWnLJSl98AFDXTO80wELWEzX3hordXsTdxrIfMQoO9IY1MEnoGoPjpoKpMj+Yx0Q==} + ufo@1.6.3: + resolution: {integrity: sha512-yDJTmhydvl5lJzBmy/hyOAA0d+aqCBuwl818haVdYCRrWV84o7YyeVm4QlVHStqNrrJSTb6jKuFAVqAFsr+K3Q==} uid-safe@2.1.5: resolution: {integrity: sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==} @@ -9483,8 +9646,8 @@ packages: resolution: {integrity: sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg==} engines: {node: '>=14.0'} - undici@6.21.3: - resolution: {integrity: sha512-gBLkYIlEnSp8pFbT64yFgGE6UIB9tAkhukC23PmMDCe5Nd+cRqKxSjw5y54MK2AZMgZfJWMaNE4nYUHgi1XEOw==} + undici@6.24.1: + resolution: {integrity: sha512-sC+b0tB1whOCzbtlx20fx3WgCXwkW627p4EA9uM+/tNNPkSS+eSEld6pAs9nDv7WbY1UUljBMYPtu9BCOrCWKA==} engines: {node: '>=18.17'} unenv@2.0.0-rc.14: @@ -9505,8 +9668,8 @@ packages: unified@11.0.5: resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} - unist-util-is@6.0.0: - resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} + unist-util-is@6.0.1: + resolution: {integrity: sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==} unist-util-position-from-estree@2.0.0: resolution: {integrity: sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==} @@ -9517,11 +9680,11 @@ packages: unist-util-stringify-position@4.0.0: resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} - unist-util-visit-parents@6.0.1: - resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} + unist-util-visit-parents@6.0.2: + resolution: {integrity: sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==} - unist-util-visit@5.0.0: - resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} + unist-util-visit@5.1.0: + resolution: {integrity: sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==} universal-user-agent@6.0.1: resolution: {integrity: sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==} @@ -9560,8 +9723,8 @@ packages: resolution: {integrity: sha512-5uKD0nqiYVzlmCRs01Fhs2BdkEgBS3SAVP6ndrBsuK42iC2+JHyxM05Rm9G8+5mkmRtzMZGY8Ct5+mliZxU/Ww==} engines: {node: '>=18.12.0'} - unstorage@1.17.1: - resolution: {integrity: sha512-KKGwRTT0iVBCErKemkJCLs7JdxNVfqTPc/85ae1XES0+bsHbc/sFBfVi5kJp156cc51BHinIH2l3k0EZ24vOBQ==} + unstorage@1.17.4: + resolution: {integrity: sha512-fHK0yNg38tBiJKp/Vgsq4j0JEsCmgqH58HAn707S7zGkArbZsVr/CwINoi+nh3h98BRCwKvx1K3Xg9u3VV83sw==} peerDependencies: '@azure/app-configuration': ^1.8.0 '@azure/cosmos': ^4.2.0 @@ -9569,14 +9732,14 @@ packages: '@azure/identity': ^4.6.0 '@azure/keyvault-secrets': ^4.9.0 '@azure/storage-blob': ^12.26.0 - '@capacitor/preferences': ^6.0.3 || ^7.0.0 + '@capacitor/preferences': ^6 || ^7 || ^8 '@deno/kv': '>=0.9.0' '@netlify/blobs': ^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0 '@planetscale/database': ^1.19.0 '@upstash/redis': ^1.34.3 '@vercel/blob': '>=0.27.1' '@vercel/functions': ^2.2.12 || ^3.0.0 - '@vercel/kv': ^1.0.1 + '@vercel/kv': ^1 || ^2 || ^3 aws4fetch: ^1.0.20 db0: '>=0.2.1' idb-keyval: ^6.2.1 @@ -9652,8 +9815,8 @@ packages: urlpattern-polyfill@8.0.2: resolution: {integrity: sha512-Qp95D4TPJl1kC9SKigDcqgyM2VDVO4RiJc2d4qe5GrYm+zbIQCWWKAFaJNQ4BhdFeDGwBmAxqJBwWSJDb9T3BQ==} - use-sync-external-store@1.5.0: - resolution: {integrity: sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==} + use-sync-external-store@1.6.0: + resolution: {integrity: sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 @@ -9801,6 +9964,49 @@ packages: yaml: optional: true + vite@8.0.6: + resolution: {integrity: sha512-jeOXoY6N8rOfit/mZADMd0misLqjRdWBB3/S23ZQNuPcbVsfMBJutWD8b4ftdczMOsNyMBnKro0Z1Kt0HIqq5Q==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + peerDependencies: + '@types/node': ^20.19.0 || >=22.12.0 + '@vitejs/devtools': ^0.1.0 + esbuild: ^0.27.0 || ^0.28.0 + jiti: '>=1.21.0' + less: ^4.0.0 + sass: ^1.70.0 + sass-embedded: ^1.70.0 + stylus: '>=0.54.8' + sugarss: ^5.0.0 + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + '@types/node': + optional: true + '@vitejs/devtools': + optional: true + esbuild: + optional: true + jiti: + optional: true + less: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + vitest@4.0.18: resolution: {integrity: sha512-hOQuK7h0FGKgBAas7v0mSAsnvrIgAvWmRFjmzpJ7SwFHH3g1k2u37JtYwOwmEKhK6ZO3v9ggDBBm0La1LCK4uQ==} engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0} @@ -9859,8 +10065,8 @@ packages: whatwg-url@5.0.0: resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} - when-exit@2.1.4: - resolution: {integrity: sha512-4rnvd3A1t16PWzrBUcSDZqcAmsUIy4minDXT/CZ8F2mVDgd65i4Aalimgz1aQkRGU0iH5eT5+6Rx2TK8o443Pg==} + when-exit@2.1.5: + resolution: {integrity: sha512-VGkKJ564kzt6Ms1dbgPP/yuIoQCrsFAnRbptpC5wOEsDaNsbCB2bnfnaA8i/vRs5tjUSEOtIuvl9/MyVsvQZCg==} which-boxed-primitive@1.1.1: resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} @@ -9881,8 +10087,8 @@ packages: resolution: {integrity: sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==} engines: {node: '>=4'} - which-typed-array@1.1.19: - resolution: {integrity: sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==} + which-typed-array@1.1.20: + resolution: {integrity: sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==} engines: {node: '>= 0.4'} which@2.0.2: @@ -9907,8 +10113,8 @@ packages: resolution: {integrity: sha512-8drMJ4rkgaPo1Me4zD/3WLfI/zPdA9o2IipKODunnGDcuqbHwjsbB79ylv04LCGGzU0xQ6vTznOMpQGaLhhm6A==} engines: {node: '>= 12.0.0'} - winston@3.18.1: - resolution: {integrity: sha512-EaQ6y7b9h6q7UJQn4/xlOsiu0I8844FfMdbN6V2I2i4528qeEWqRUcHzhvkseckAb1QxMhwX5V2YYiABkOfGfg==} + winston@3.19.0: + resolution: {integrity: sha512-LZNJgPzfKR+/J3cHkxcpHKpKKvGfDZVPS4hfJCc4cCG0CgYzvlD6yE/S3CIL/Yt91ak327YCpiF/0MyeZHEHKA==} engines: {node: '>= 12.0.0'} word-wrap@1.2.5: @@ -9981,6 +10187,18 @@ packages: utf-8-validate: optional: true + ws@8.20.0: + resolution: {integrity: sha512-sAt8BhgNbzCtgGbt2OxmpuryO63ZoDk/sqaB/znQm94T4fCEsy/yV+7CdC1kJhOU9lboAEU7R3kquuycDoibVA==} + 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 + wsl-utils@0.1.0: resolution: {integrity: sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==} engines: {node: '>=18'} @@ -10009,9 +10227,6 @@ packages: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} - yallist@3.1.1: - resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} @@ -10019,12 +10234,12 @@ packages: resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==} engines: {node: '>=18'} - yaml@1.10.2: - resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} + yaml@1.10.3: + resolution: {integrity: sha512-vIYeF1u3CjlhAFekPPAk2h/Kv4T3mAkMox5OymRiJQB0spDP10LHvt+K7G9Ny6NuuMAb25/6n1qyUjAcGNf/AA==} engines: {node: '>= 6'} - yaml@2.8.2: - resolution: {integrity: sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==} + yaml@2.8.3: + resolution: {integrity: sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg==} engines: {node: '>= 14.6'} hasBin: true @@ -10063,8 +10278,8 @@ packages: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} - yocto-queue@1.2.1: - resolution: {integrity: sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==} + yocto-queue@1.2.2: + resolution: {integrity: sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==} engines: {node: '>=12.20'} yoctocolors@2.1.2: @@ -10087,8 +10302,8 @@ packages: zod@3.25.76: resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} - zod@4.1.11: - resolution: {integrity: sha512-WPsqwxITS2tzx1bzhIKsEs19ABD5vmCVa4xBo2tq/SrV4RNZtfws1EnCWQXM6yh8bD08a1idvkB5MZSBiZsjwg==} + zod@4.3.6: + resolution: {integrity: sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==} zwitch@2.0.4: resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} @@ -10186,16 +10401,18 @@ snapshots: '@algolia/logger-common': 4.16.0 '@algolia/requester-common': 4.16.0 + '@alloc/quick-lru@5.2.0': {} + '@antfu/install-pkg@1.1.0': dependencies: package-manager-detector: 1.6.0 - tinyexec: 1.0.2 + tinyexec: 1.0.4 '@auth/core@0.41.1': dependencies: '@panva/hkdf': 1.2.1 - jose: 6.1.3 - oauth4webapi: 3.8.3 + jose: 6.2.2 + oauth4webapi: 3.8.5 preact: 10.24.3 preact-render-to-string: 6.5.11(preact@10.24.3) @@ -10214,119 +10431,52 @@ snapshots: long: 4.0.0 uuid: 8.3.2 - '@babel/code-frame@7.27.1': + '@babel/code-frame@7.29.0': dependencies: '@babel/helper-validator-identifier': 7.28.5 js-tokens: 4.0.0 picocolors: 1.1.1 - '@babel/compat-data@7.28.4': {} - - '@babel/core@7.28.4': - dependencies: - '@babel/code-frame': 7.27.1 - '@babel/generator': 7.28.3 - '@babel/helper-compilation-targets': 7.27.2 - '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.4) - '@babel/helpers': 7.28.4 - '@babel/parser': 7.29.0 - '@babel/template': 7.27.2 - '@babel/traverse': 7.28.4 - '@babel/types': 7.29.0 - '@jridgewell/remapping': 2.3.5 - convert-source-map: 2.0.0 - debug: 4.4.3(supports-color@10.2.2) - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - '@babel/generator@7.28.3': + '@babel/generator@7.29.1': dependencies: - '@babel/parser': 7.29.0 + '@babel/parser': 7.29.2 '@babel/types': 7.29.0 '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 jsesc: 3.1.0 - '@babel/helper-compilation-targets@7.27.2': - dependencies: - '@babel/compat-data': 7.28.4 - '@babel/helper-validator-option': 7.27.1 - browserslist: 4.28.1 - lru-cache: 5.1.1 - semver: 6.3.1 - '@babel/helper-globals@7.28.0': {} - '@babel/helper-module-imports@7.27.1': + '@babel/helper-module-imports@7.28.6': dependencies: - '@babel/traverse': 7.28.4 + '@babel/traverse': 7.29.0 '@babel/types': 7.29.0 transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.28.3(@babel/core@7.28.4)': - dependencies: - '@babel/core': 7.28.4 - '@babel/helper-module-imports': 7.27.1 - '@babel/helper-validator-identifier': 7.28.5 - '@babel/traverse': 7.28.4 - transitivePeerDependencies: - - supports-color - - '@babel/helper-plugin-utils@7.27.1': {} - '@babel/helper-string-parser@7.27.1': {} '@babel/helper-validator-identifier@7.28.5': {} - '@babel/helper-validator-option@7.27.1': {} - - '@babel/helpers@7.28.4': - dependencies: - '@babel/template': 7.27.2 - '@babel/types': 7.29.0 - - '@babel/parser@7.29.0': + '@babel/parser@7.29.2': dependencies: '@babel/types': 7.29.0 - '@babel/plugin-proposal-export-namespace-from@7.18.9(@babel/core@7.28.4)': - dependencies: - '@babel/core': 7.28.4 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.28.4) - - '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.28.4)': - dependencies: - '@babel/core': 7.28.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/runtime@7.29.2': {} - '@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.28.4)': + '@babel/template@7.28.6': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.4) - '@babel/helper-plugin-utils': 7.27.1 - transitivePeerDependencies: - - supports-color - - '@babel/runtime@7.28.4': {} - - '@babel/template@7.27.2': - dependencies: - '@babel/code-frame': 7.27.1 - '@babel/parser': 7.29.0 + '@babel/code-frame': 7.29.0 + '@babel/parser': 7.29.2 '@babel/types': 7.29.0 - '@babel/traverse@7.28.4': + '@babel/traverse@7.29.0': dependencies: - '@babel/code-frame': 7.27.1 - '@babel/generator': 7.28.3 + '@babel/code-frame': 7.29.0 + '@babel/generator': 7.29.1 '@babel/helper-globals': 7.28.0 - '@babel/parser': 7.29.0 - '@babel/template': 7.27.2 + '@babel/parser': 7.29.2 + '@babel/template': 7.28.6 '@babel/types': 7.29.0 debug: 4.4.3(supports-color@10.2.2) transitivePeerDependencies: @@ -10339,11 +10489,11 @@ snapshots: '@bcoe/v8-coverage@1.0.2': {} - '@bugsnag/browser@8.6.0': + '@bugsnag/browser@8.8.1': dependencies: - '@bugsnag/core': 8.6.0 + '@bugsnag/core': 8.8.0 - '@bugsnag/core@8.6.0': + '@bugsnag/core@8.8.0': dependencies: '@bugsnag/cuid': 3.2.1 '@bugsnag/safe-json-stringify': 6.1.0 @@ -10353,25 +10503,25 @@ snapshots: '@bugsnag/cuid@3.2.1': {} - '@bugsnag/js@8.6.0': + '@bugsnag/js@8.8.1': dependencies: - '@bugsnag/browser': 8.6.0 - '@bugsnag/node': 8.6.0 + '@bugsnag/browser': 8.8.1 + '@bugsnag/node': 8.8.0 - '@bugsnag/node@8.6.0': + '@bugsnag/node@8.8.0': dependencies: - '@bugsnag/core': 8.6.0 + '@bugsnag/core': 8.8.0 byline: 5.0.0 error-stack-parser: 2.1.4 iserror: 0.0.2 - pump: 3.0.3 + pump: 3.0.4 stack-generator: 2.0.10 '@bugsnag/safe-json-stringify@6.1.0': {} - '@changesets/apply-release-plan@7.0.13': + '@changesets/apply-release-plan@7.1.0': dependencies: - '@changesets/config': 3.1.1 + '@changesets/config': 3.1.3 '@changesets/get-version-range-type': 0.4.0 '@changesets/git': 3.0.4 '@changesets/should-skip-package': 0.1.2 @@ -10400,17 +10550,17 @@ snapshots: '@changesets/cli@2.29.5': dependencies: - '@changesets/apply-release-plan': 7.0.13 + '@changesets/apply-release-plan': 7.1.0 '@changesets/assemble-release-plan': 6.0.9 '@changesets/changelog-git': 0.2.1 - '@changesets/config': 3.1.1 + '@changesets/config': 3.1.3 '@changesets/errors': 0.2.0 '@changesets/get-dependents-graph': 2.1.3 - '@changesets/get-release-plan': 4.0.13 + '@changesets/get-release-plan': 4.0.15 '@changesets/git': 3.0.4 '@changesets/logger': 0.1.1 '@changesets/pre': 2.0.2 - '@changesets/read': 0.6.5 + '@changesets/read': 0.6.7 '@changesets/should-skip-package': 0.1.2 '@changesets/types': 6.1.0 '@changesets/write': 0.4.0 @@ -10429,11 +10579,12 @@ snapshots: spawndamnit: 3.0.1 term-size: 2.2.1 - '@changesets/config@3.1.1': + '@changesets/config@3.1.3': dependencies: '@changesets/errors': 0.2.0 '@changesets/get-dependents-graph': 2.1.3 '@changesets/logger': 0.1.1 + '@changesets/should-skip-package': 0.1.2 '@changesets/types': 6.1.0 '@manypkg/get-packages': 1.1.3 fs-extra: 7.0.1 @@ -10457,12 +10608,12 @@ snapshots: transitivePeerDependencies: - encoding - '@changesets/get-release-plan@4.0.13': + '@changesets/get-release-plan@4.0.15': dependencies: '@changesets/assemble-release-plan': 6.0.9 - '@changesets/config': 3.1.1 + '@changesets/config': 3.1.3 '@changesets/pre': 2.0.2 - '@changesets/read': 0.6.5 + '@changesets/read': 0.6.7 '@changesets/types': 6.1.0 '@manypkg/get-packages': 1.1.3 @@ -10480,10 +10631,10 @@ snapshots: dependencies: picocolors: 1.1.1 - '@changesets/parse@0.4.1': + '@changesets/parse@0.4.3': dependencies: '@changesets/types': 6.1.0 - js-yaml: 3.14.2 + js-yaml: 4.1.1 '@changesets/pre@2.0.2': dependencies: @@ -10492,11 +10643,11 @@ snapshots: '@manypkg/get-packages': 1.1.3 fs-extra: 7.0.1 - '@changesets/read@0.6.5': + '@changesets/read@0.6.7': dependencies: '@changesets/git': 3.0.4 '@changesets/logger': 0.1.1 - '@changesets/parse': 0.4.1 + '@changesets/parse': 0.4.3 '@changesets/types': 6.1.0 fs-extra: 7.0.1 p-filter: 2.1.0 @@ -10515,7 +10666,7 @@ snapshots: dependencies: '@changesets/types': 6.1.0 fs-extra: 7.0.1 - human-id: 4.1.1 + human-id: 4.1.3 prettier: 2.8.8 '@clack/core@0.5.0': @@ -10566,14 +10717,11 @@ snapshots: dependencies: '@jridgewell/trace-mapping': 0.3.9 - '@dabh/diagnostics@2.0.6': + '@dabh/diagnostics@2.0.8': dependencies: '@so-ric/colorspace': 1.1.6 enabled: 2.0.0 - fix-esm: 1.0.1 kuler: 2.0.0 - transitivePeerDependencies: - - supports-color '@dependents/detective-less@5.0.1': dependencies: @@ -10584,23 +10732,23 @@ snapshots: '@electric-sql/pglite@0.3.16': {} - '@emnapi/core@1.8.1': + '@emnapi/core@1.9.1': dependencies: - '@emnapi/wasi-threads': 1.1.0 + '@emnapi/wasi-threads': 1.2.0 tslib: 2.8.1 - '@emnapi/runtime@1.8.1': + '@emnapi/runtime@1.9.1': dependencies: tslib: 2.8.1 - '@emnapi/wasi-threads@1.1.0': + '@emnapi/wasi-threads@1.2.0': dependencies: tslib: 2.8.1 '@emotion/babel-plugin@11.13.5': dependencies: - '@babel/helper-module-imports': 7.27.1 - '@babel/runtime': 7.28.4 + '@babel/helper-module-imports': 7.28.6 + '@babel/runtime': 7.29.2 '@emotion/hash': 0.9.2 '@emotion/memoize': 0.9.0 '@emotion/serialize': 1.3.3 @@ -10631,7 +10779,7 @@ snapshots: '@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3)': dependencies: - '@babel/runtime': 7.28.4 + '@babel/runtime': 7.29.2 '@emotion/babel-plugin': 11.13.5 '@emotion/cache': 11.14.0 '@emotion/serialize': 1.3.3 @@ -10657,7 +10805,7 @@ snapshots: '@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react@19.2.3)': dependencies: - '@babel/runtime': 7.28.4 + '@babel/runtime': 7.29.2 '@emotion/babel-plugin': 11.13.5 '@emotion/is-prop-valid': 1.4.0 '@emotion/react': 11.14.0(@types/react@19.2.7)(react@19.2.3) @@ -10693,7 +10841,7 @@ snapshots: '@esbuild-kit/esm-loader@2.6.5': dependencies: '@esbuild-kit/core-utils': 3.3.2 - get-tsconfig: 4.10.1 + get-tsconfig: 4.13.7 '@esbuild-plugins/node-globals-polyfill@0.2.3(esbuild@0.17.19)': dependencies: @@ -11084,29 +11232,29 @@ snapshots: '@eslint-community/regexpp@4.12.2': {} - '@eslint/config-array@0.23.2': + '@eslint/config-array@0.23.3': dependencies: - '@eslint/object-schema': 3.0.2 + '@eslint/object-schema': 3.0.3 debug: 4.4.3(supports-color@10.2.2) minimatch: 10.2.4 transitivePeerDependencies: - supports-color - '@eslint/config-helpers@0.5.2': + '@eslint/config-helpers@0.5.3': dependencies: - '@eslint/core': 1.1.0 + '@eslint/core': 1.1.1 - '@eslint/core@1.1.0': + '@eslint/core@1.1.1': dependencies: '@types/json-schema': 7.0.15 '@eslint/js@9.39.2': {} - '@eslint/object-schema@3.0.2': {} + '@eslint/object-schema@3.0.3': {} - '@eslint/plugin-kit@0.6.0': + '@eslint/plugin-kit@0.6.1': dependencies: - '@eslint/core': 1.1.0 + '@eslint/core': 1.1.1 levn: 0.4.1 '@fastify/accept-negotiator@2.0.1': {} @@ -11152,19 +11300,19 @@ snapshots: '@fastify/send': 4.1.0 content-disposition: 1.0.1 fastify-plugin: 5.1.0 - fastq: 1.19.1 + fastq: 1.20.1 glob: 13.0.6 - '@floating-ui/core@1.7.3': + '@floating-ui/core@1.7.5': dependencies: - '@floating-ui/utils': 0.2.10 + '@floating-ui/utils': 0.2.11 - '@floating-ui/dom@1.7.4': + '@floating-ui/dom@1.7.6': dependencies: - '@floating-ui/core': 1.7.3 - '@floating-ui/utils': 0.2.10 + '@floating-ui/core': 1.7.5 + '@floating-ui/utils': 0.2.11 - '@floating-ui/utils@0.2.10': {} + '@floating-ui/utils@0.2.11': {} '@humanfs/core@0.19.1': {} @@ -11181,7 +11329,7 @@ snapshots: '@iarna/toml@2.2.5': {} - '@iconify/json@2.2.449': + '@iconify/json@2.2.454': dependencies: '@iconify/types': 2.0.0 pathe: 2.0.3 @@ -11192,9 +11340,9 @@ snapshots: dependencies: '@antfu/install-pkg': 1.1.0 '@iconify/types': 2.0.0 - mlly: 1.8.0 + mlly: 1.8.2 - '@img/colour@1.0.0': {} + '@img/colour@1.1.0': {} '@img/sharp-darwin-arm64@0.33.5': optionalDependencies: @@ -11342,12 +11490,12 @@ snapshots: '@img/sharp-wasm32@0.33.5': dependencies: - '@emnapi/runtime': 1.8.1 + '@emnapi/runtime': 1.9.1 optional: true '@img/sharp-wasm32@0.34.5': dependencies: - '@emnapi/runtime': 1.8.1 + '@emnapi/runtime': 1.9.1 optional: true '@img/sharp-win32-arm64@0.34.5': @@ -11367,10 +11515,10 @@ snapshots: '@import-maps/resolve@2.0.0': {} - '@inquirer/external-editor@1.0.2(@types/node@24.10.0)': + '@inquirer/external-editor@1.0.3(@types/node@24.10.0)': dependencies: - chardet: 2.1.0 - iconv-lite: 0.7.0 + chardet: 2.1.1 + iconv-lite: 0.7.2 optionalDependencies: '@types/node': 24.10.0 @@ -11436,7 +11584,7 @@ snapshots: '@jsonjoy.com/json-pointer': 1.0.2(tslib@2.8.1) '@jsonjoy.com/util': 1.9.0(tslib@2.8.1) hyperdyperid: 1.2.0 - thingies: 2.5.0(tslib@2.8.1) + thingies: 2.6.0(tslib@2.8.1) tree-dump: 1.1.0(tslib@2.8.1) tslib: 2.8.1 @@ -11457,7 +11605,7 @@ snapshots: '@libsql/core': 0.15.15 '@libsql/hrana-client': 0.7.0 js-base64: 3.7.8 - libsql: 0.5.22 + libsql: 0.5.29 promise-limit: 2.7.0 transitivePeerDependencies: - bufferutil @@ -11467,10 +11615,10 @@ snapshots: dependencies: js-base64: 3.7.8 - '@libsql/darwin-arm64@0.5.22': + '@libsql/darwin-arm64@0.5.29': optional: true - '@libsql/darwin-x64@0.5.22': + '@libsql/darwin-x64@0.5.29': optional: true '@libsql/hrana-client@0.7.0': @@ -11488,51 +11636,51 @@ snapshots: '@libsql/isomorphic-ws@0.1.5': dependencies: '@types/ws': 8.18.1 - ws: 8.19.0 + ws: 8.20.0 transitivePeerDependencies: - bufferutil - utf-8-validate - '@libsql/linux-arm-gnueabihf@0.5.22': + '@libsql/linux-arm-gnueabihf@0.5.29': optional: true - '@libsql/linux-arm-musleabihf@0.5.22': + '@libsql/linux-arm-musleabihf@0.5.29': optional: true - '@libsql/linux-arm64-gnu@0.5.22': + '@libsql/linux-arm64-gnu@0.5.29': optional: true - '@libsql/linux-arm64-musl@0.5.22': + '@libsql/linux-arm64-musl@0.5.29': optional: true - '@libsql/linux-x64-gnu@0.5.22': + '@libsql/linux-x64-gnu@0.5.29': optional: true - '@libsql/linux-x64-musl@0.5.22': + '@libsql/linux-x64-musl@0.5.29': optional: true - '@libsql/win32-x64-msvc@0.5.22': + '@libsql/win32-x64-msvc@0.5.29': optional: true '@lukeed/ms@2.0.2': {} '@manypkg/find-root@1.1.0': dependencies: - '@babel/runtime': 7.28.4 + '@babel/runtime': 7.29.2 '@types/node': 12.20.55 find-up: 4.1.0 fs-extra: 8.1.0 '@manypkg/get-packages@1.1.3': dependencies: - '@babel/runtime': 7.28.4 + '@babel/runtime': 7.29.2 '@changesets/types': 4.1.0 '@manypkg/find-root': 1.1.0 fs-extra: 8.1.0 globby: 11.1.0 read-yaml-file: 1.1.0 - '@mapbox/node-pre-gyp@2.0.0(supports-color@10.2.2)': + '@mapbox/node-pre-gyp@2.0.3(supports-color@10.2.2)': dependencies: consola: 3.4.2 detect-libc: 2.1.2 @@ -11570,7 +11718,7 @@ snapshots: unified: 11.0.5 unist-util-position-from-estree: 2.0.0 unist-util-stringify-position: 4.0.0 - unist-util-visit: 5.0.0 + unist-util-visit: 5.1.0 vfile: 6.0.3 transitivePeerDependencies: - supports-color @@ -11604,7 +11752,7 @@ snapshots: '@rushstack/rig-package': 0.7.2 '@rushstack/terminal': 0.22.3(@types/node@24.10.0) '@rushstack/ts-command-line': 5.3.3(@types/node@24.10.0) - diff: 8.0.3 + diff: 8.0.4 lodash: 4.17.23 minimatch: 10.2.1 resolve: 1.22.11 @@ -11632,15 +11780,15 @@ snapshots: transitivePeerDependencies: - typescript - '@mui/core-downloads-tracker@7.3.2': {} + '@mui/core-downloads-tracker@7.3.9': {} '@mui/material@7.3.2(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: - '@babel/runtime': 7.28.4 - '@mui/core-downloads-tracker': 7.3.2 + '@babel/runtime': 7.29.2 + '@mui/core-downloads-tracker': 7.3.9 '@mui/system': 7.3.2(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react@19.2.3) - '@mui/types': 7.4.6(@types/react@19.2.7) - '@mui/utils': 7.3.2(@types/react@19.2.7)(react@19.2.3) + '@mui/types': 7.4.12(@types/react@19.2.7) + '@mui/utils': 7.3.9(@types/react@19.2.7)(react@19.2.3) '@popperjs/core': 2.11.8 '@types/react-transition-group': 4.4.12(@types/react@19.2.7) clsx: 2.1.1 @@ -11648,25 +11796,25 @@ snapshots: prop-types: 15.8.1 react: 19.2.3 react-dom: 19.2.3(react@19.2.3) - react-is: 19.1.1 + react-is: 19.2.4 react-transition-group: 4.4.5(react-dom@19.2.3(react@19.2.3))(react@19.2.3) optionalDependencies: '@emotion/react': 11.14.0(@types/react@19.2.7)(react@19.2.3) '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react@19.2.3) '@types/react': 19.2.7 - '@mui/private-theming@7.3.2(@types/react@19.2.7)(react@19.2.3)': + '@mui/private-theming@7.3.9(@types/react@19.2.7)(react@19.2.3)': dependencies: - '@babel/runtime': 7.28.4 - '@mui/utils': 7.3.2(@types/react@19.2.7)(react@19.2.3) + '@babel/runtime': 7.29.2 + '@mui/utils': 7.3.9(@types/react@19.2.7)(react@19.2.3) prop-types: 15.8.1 react: 19.2.3 optionalDependencies: '@types/react': 19.2.7 - '@mui/styled-engine@7.3.2(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react@19.2.3))(react@19.2.3)': + '@mui/styled-engine@7.3.9(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react@19.2.3))(react@19.2.3)': dependencies: - '@babel/runtime': 7.28.4 + '@babel/runtime': 7.29.2 '@emotion/cache': 11.14.0 '@emotion/serialize': 1.3.3 '@emotion/sheet': 1.4.0 @@ -11679,11 +11827,11 @@ snapshots: '@mui/system@7.3.2(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react@19.2.3)': dependencies: - '@babel/runtime': 7.28.4 - '@mui/private-theming': 7.3.2(@types/react@19.2.7)(react@19.2.3) - '@mui/styled-engine': 7.3.2(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react@19.2.3))(react@19.2.3) - '@mui/types': 7.4.6(@types/react@19.2.7) - '@mui/utils': 7.3.2(@types/react@19.2.7)(react@19.2.3) + '@babel/runtime': 7.29.2 + '@mui/private-theming': 7.3.9(@types/react@19.2.7)(react@19.2.3) + '@mui/styled-engine': 7.3.9(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react@19.2.3))(react@19.2.3) + '@mui/types': 7.4.12(@types/react@19.2.7) + '@mui/utils': 7.3.9(@types/react@19.2.7)(react@19.2.3) clsx: 2.1.1 csstype: 3.2.3 prop-types: 15.8.1 @@ -11693,37 +11841,37 @@ snapshots: '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react@19.2.3) '@types/react': 19.2.7 - '@mui/types@7.4.6(@types/react@19.2.7)': + '@mui/types@7.4.12(@types/react@19.2.7)': dependencies: - '@babel/runtime': 7.28.4 + '@babel/runtime': 7.29.2 optionalDependencies: '@types/react': 19.2.7 - '@mui/utils@7.3.2(@types/react@19.2.7)(react@19.2.3)': + '@mui/utils@7.3.9(@types/react@19.2.7)(react@19.2.3)': dependencies: - '@babel/runtime': 7.28.4 - '@mui/types': 7.4.6(@types/react@19.2.7) + '@babel/runtime': 7.29.2 + '@mui/types': 7.4.12(@types/react@19.2.7) '@types/prop-types': 15.7.15 clsx: 2.1.1 prop-types: 15.8.1 react: 19.2.3 - react-is: 19.1.1 + react-is: 19.2.4 optionalDependencies: '@types/react': 19.2.7 '@mui/x-data-grid@8.11.3(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react@19.2.3))(@mui/material@7.3.2(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@mui/system@7.3.2(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: - '@babel/runtime': 7.28.4 + '@babel/runtime': 7.29.2 '@mui/material': 7.3.2(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@mui/system': 7.3.2(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react@19.2.3) - '@mui/utils': 7.3.2(@types/react@19.2.7)(react@19.2.3) + '@mui/utils': 7.3.9(@types/react@19.2.7)(react@19.2.3) '@mui/x-internals': 8.11.3(@types/react@19.2.7)(react@19.2.3) '@mui/x-virtualizer': 0.1.7(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) clsx: 2.1.1 prop-types: 15.8.1 react: 19.2.3 react-dom: 19.2.3(react@19.2.3) - use-sync-external-store: 1.5.0(react@19.2.3) + use-sync-external-store: 1.6.0(react@19.2.3) optionalDependencies: '@emotion/react': 11.14.0(@types/react@19.2.7)(react@19.2.3) '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react@19.2.3) @@ -11732,18 +11880,18 @@ snapshots: '@mui/x-internals@8.11.3(@types/react@19.2.7)(react@19.2.3)': dependencies: - '@babel/runtime': 7.28.4 - '@mui/utils': 7.3.2(@types/react@19.2.7)(react@19.2.3) + '@babel/runtime': 7.29.2 + '@mui/utils': 7.3.9(@types/react@19.2.7)(react@19.2.3) react: 19.2.3 reselect: 5.1.1 - use-sync-external-store: 1.5.0(react@19.2.3) + use-sync-external-store: 1.6.0(react@19.2.3) transitivePeerDependencies: - '@types/react' '@mui/x-virtualizer@0.1.7(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: - '@babel/runtime': 7.28.4 - '@mui/utils': 7.3.2(@types/react@19.2.7)(react@19.2.3) + '@babel/runtime': 7.29.2 + '@mui/utils': 7.3.9(@types/react@19.2.7)(react@19.2.3) '@mui/x-internals': 8.11.3(@types/react@19.2.7)(react@19.2.3) react: 19.2.3 react-dom: 19.2.3(react@19.2.3) @@ -11754,10 +11902,10 @@ snapshots: '@napi-rs/triples@1.2.0': {} - '@napi-rs/wasm-runtime@1.1.1': + '@napi-rs/wasm-runtime@1.1.2(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)': dependencies: - '@emnapi/core': 1.8.1 - '@emnapi/runtime': 1.8.1 + '@emnapi/core': 1.9.1 + '@emnapi/runtime': 1.9.1 '@tybys/wasm-util': 0.10.1 '@neon-rs/load@0.0.4': {} @@ -11793,19 +11941,19 @@ snapshots: '@netlify/build-info@10.4.0': dependencies: - '@bugsnag/js': 8.6.0 + '@bugsnag/js': 8.8.1 '@iarna/toml': 2.2.5 dot-prop: 9.0.0 find-up: 7.0.0 minimatch: 10.2.4 read-pkg: 9.0.1 semver: 7.7.3 - yaml: 2.8.2 + yaml: 2.8.3 yargs: 17.7.2 - '@netlify/build@35.11.1(@opentelemetry/api@1.8.0)(@types/node@24.10.0)(picomatch@4.0.3)(rollup@4.59.0)': + '@netlify/build@35.11.1(@opentelemetry/api@1.8.0)(@types/node@24.10.0)(picomatch@4.0.4)(rollup@4.59.0)': dependencies: - '@bugsnag/js': 8.6.0 + '@bugsnag/js': 8.8.1 '@netlify/blobs': 10.7.4(supports-color@10.2.2) '@netlify/cache-utils': 6.0.5 '@netlify/config': 24.4.4 @@ -11822,7 +11970,7 @@ snapshots: ansis: 4.2.0 clean-stack: 5.3.0 execa: 8.0.1 - fdir: 6.5.0(picomatch@4.0.3) + fdir: 6.5.0(picomatch@4.0.4) figures: 6.1.0 filter-obj: 6.1.0 hot-shots: 11.4.0 @@ -11838,13 +11986,13 @@ snapshots: p-locate: 6.0.0 p-map: 7.0.3 p-reduce: 3.0.0 - package-directory: 8.1.0 + package-directory: 8.2.0 path-exists: 5.0.0 pretty-ms: 9.3.0 ps-list: 8.1.1 read-package-up: 11.0.0 readdirp: 4.1.2 - resolve: 2.0.0-next.5 + resolve: 2.0.0-next.6 rfdc: 1.4.1 safe-json-stringify: 1.2.0 semver: 7.7.3 @@ -11854,13 +12002,15 @@ snapshots: ts-node: 10.9.2(@types/node@24.10.0)(typescript@5.9.3) typescript: 5.9.3 uuid: 11.1.0 - yaml: 2.8.2 + yaml: 2.8.3 yargs: 17.7.2 zod: 3.25.76 transitivePeerDependencies: - '@swc/core' - '@swc/wasm' - '@types/node' + - bare-abort-controller + - bare-buffer - encoding - picomatch - react-native-b4a @@ -11904,9 +12054,9 @@ snapshots: read-package-up: 11.0.0 tomlify-j0.4: 3.0.0 validate-npm-package-name: 5.0.1 - yaml: 2.8.2 + yaml: 2.8.3 yargs: 17.7.2 - zod: 4.1.11 + zod: 4.3.6 '@netlify/db-dev@0.7.0': dependencies: @@ -11915,7 +12065,7 @@ snapshots: '@netlify/dev-utils@4.3.3': dependencies: - '@whatwg-node/server': 0.10.12 + '@whatwg-node/server': 0.10.18 ansis: 4.2.0 chokidar: 4.0.3 decache: 4.6.2 @@ -11933,7 +12083,7 @@ snapshots: '@netlify/dev-utils@4.4.3': dependencies: - '@whatwg-node/server': 0.10.12 + '@whatwg-node/server': 0.10.18 ansis: 4.2.0 chokidar: 4.0.3 decache: 4.6.2 @@ -11979,6 +12129,8 @@ snapshots: - '@vercel/functions' - '@vercel/kv' - aws4fetch + - bare-abort-controller + - bare-buffer - db0 - encoding - idb-keyval @@ -12001,7 +12153,7 @@ snapshots: esbuild: 0.27.3 execa: 8.0.1 find-up: 7.0.0 - get-port: 7.1.0 + get-port: 7.2.0 node-stream-zip: 1.15.0 p-retry: 6.2.1 p-wait-for: 5.0.2 @@ -12024,7 +12176,7 @@ snapshots: '@netlify/edge-functions': 3.0.6 '@netlify/edge-functions-bootstrap': 2.16.0 '@netlify/runtime-utils': 2.3.0 - get-port: 7.1.0 + get-port: 7.2.0 '@netlify/edge-functions@3.0.6': dependencies: @@ -12046,6 +12198,8 @@ snapshots: semver: 7.7.3 source-map-support: 0.5.21 transitivePeerDependencies: + - bare-abort-controller + - bare-buffer - encoding - react-native-b4a - rollup @@ -12057,6 +12211,8 @@ snapshots: cpy: 11.1.0 path-exists: 5.0.0 transitivePeerDependencies: + - bare-abort-controller + - bare-buffer - encoding - react-native-b4a - rollup @@ -12245,7 +12401,7 @@ snapshots: '@netlify/zip-it-and-ship-it@14.5.2(rollup@4.59.0)(supports-color@10.2.2)': dependencies: - '@babel/parser': 7.29.0 + '@babel/parser': 7.29.2 '@babel/types': 7.29.0 '@netlify/binary-info': 1.0.0 '@netlify/serverless-functions-api': 2.13.0 @@ -12269,7 +12425,7 @@ snapshots: path-exists: 5.0.0 precinct: 12.2.0(supports-color@10.2.2) require-package-name: 2.0.1 - resolve: 2.0.0-next.5 + resolve: 2.0.0-next.6 semver: 7.7.3 tmp-promise: 3.0.3 toml: 3.0.0 @@ -12278,6 +12434,8 @@ snapshots: yargs: 17.7.2 zod: 3.25.48 transitivePeerDependencies: + - bare-abort-controller + - bare-buffer - encoding - react-native-b4a - rollup @@ -12297,7 +12455,7 @@ snapshots: '@nodelib/fs.walk@1.2.8': dependencies: '@nodelib/fs.scandir': 2.1.5 - fastq: 1.19.1 + fastq: 1.20.1 '@octokit/action@6.1.0': dependencies: @@ -12306,7 +12464,7 @@ snapshots: '@octokit/plugin-paginate-rest': 9.2.2(@octokit/core@5.2.2) '@octokit/plugin-rest-endpoint-methods': 10.4.1(@octokit/core@5.2.2) '@octokit/types': 12.6.0 - undici: 6.21.3 + undici: 6.24.1 '@octokit/auth-action@4.1.0': dependencies: @@ -12442,10 +12600,10 @@ snapshots: '@oddbird/css-anchor-positioning@0.6.1': dependencies: - '@floating-ui/dom': 1.7.4 + '@floating-ui/dom': 1.7.6 '@types/css-tree': 2.3.11 - css-tree: 3.1.0 - nanoid: 5.1.6 + css-tree: 3.2.1 + nanoid: 5.1.7 '@oddbird/popover-polyfill@0.4.3': {} @@ -12558,9 +12716,12 @@ snapshots: '@oxc-minify/binding-openharmony-arm64@0.115.0': optional: true - '@oxc-minify/binding-wasm32-wasi@0.115.0': + '@oxc-minify/binding-wasm32-wasi@0.115.0(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)': dependencies: - '@napi-rs/wasm-runtime': 1.1.1 + '@napi-rs/wasm-runtime': 1.1.2(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1) + transitivePeerDependencies: + - '@emnapi/core' + - '@emnapi/runtime' optional: true '@oxc-minify/binding-win32-arm64-msvc@0.115.0': @@ -12656,14 +12817,20 @@ snapshots: '@oxc-parser/binding-openharmony-arm64@0.115.0': optional: true - '@oxc-parser/binding-wasm32-wasi@0.115.0': + '@oxc-parser/binding-wasm32-wasi@0.115.0(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)': dependencies: - '@napi-rs/wasm-runtime': 1.1.1 + '@napi-rs/wasm-runtime': 1.1.2(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1) + transitivePeerDependencies: + - '@emnapi/core' + - '@emnapi/runtime' optional: true - '@oxc-parser/binding-wasm32-wasi@0.82.3': + '@oxc-parser/binding-wasm32-wasi@0.82.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)': dependencies: - '@napi-rs/wasm-runtime': 1.1.1 + '@napi-rs/wasm-runtime': 1.1.2(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1) + transitivePeerDependencies: + - '@emnapi/core' + - '@emnapi/runtime' optional: true '@oxc-parser/binding-win32-arm64-msvc@0.115.0': @@ -12683,6 +12850,8 @@ snapshots: '@oxc-project/types@0.115.0': {} + '@oxc-project/types@0.123.0': {} + '@oxc-project/types@0.82.3': {} '@oxc-transform/binding-android-arm-eabi@0.115.0': @@ -12733,9 +12902,12 @@ snapshots: '@oxc-transform/binding-openharmony-arm64@0.115.0': optional: true - '@oxc-transform/binding-wasm32-wasi@0.115.0': + '@oxc-transform/binding-wasm32-wasi@0.115.0(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)': dependencies: - '@napi-rs/wasm-runtime': 1.1.1 + '@napi-rs/wasm-runtime': 1.1.2(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1) + transitivePeerDependencies: + - '@emnapi/core' + - '@emnapi/runtime' optional: true '@oxc-transform/binding-win32-arm64-msvc@0.115.0': @@ -12749,70 +12921,70 @@ snapshots: '@panva/hkdf@1.2.1': {} - '@parcel/watcher-android-arm64@2.5.1': + '@parcel/watcher-android-arm64@2.5.6': optional: true - '@parcel/watcher-darwin-arm64@2.5.1': + '@parcel/watcher-darwin-arm64@2.5.6': optional: true - '@parcel/watcher-darwin-x64@2.5.1': + '@parcel/watcher-darwin-x64@2.5.6': optional: true - '@parcel/watcher-freebsd-x64@2.5.1': + '@parcel/watcher-freebsd-x64@2.5.6': optional: true - '@parcel/watcher-linux-arm-glibc@2.5.1': + '@parcel/watcher-linux-arm-glibc@2.5.6': optional: true - '@parcel/watcher-linux-arm-musl@2.5.1': + '@parcel/watcher-linux-arm-musl@2.5.6': optional: true - '@parcel/watcher-linux-arm64-glibc@2.5.1': + '@parcel/watcher-linux-arm64-glibc@2.5.6': optional: true - '@parcel/watcher-linux-arm64-musl@2.5.1': + '@parcel/watcher-linux-arm64-musl@2.5.6': optional: true - '@parcel/watcher-linux-x64-glibc@2.5.1': + '@parcel/watcher-linux-x64-glibc@2.5.6': optional: true - '@parcel/watcher-linux-x64-musl@2.5.1': + '@parcel/watcher-linux-x64-musl@2.5.6': optional: true - '@parcel/watcher-wasm@2.5.1': + '@parcel/watcher-wasm@2.5.6': dependencies: is-glob: 4.0.3 - micromatch: 4.0.8 + picomatch: 4.0.4 - '@parcel/watcher-win32-arm64@2.5.1': + '@parcel/watcher-win32-arm64@2.5.6': optional: true - '@parcel/watcher-win32-ia32@2.5.1': + '@parcel/watcher-win32-ia32@2.5.6': optional: true - '@parcel/watcher-win32-x64@2.5.1': + '@parcel/watcher-win32-x64@2.5.6': optional: true - '@parcel/watcher@2.5.1': + '@parcel/watcher@2.5.6': dependencies: - detect-libc: 1.0.3 + detect-libc: 2.1.2 is-glob: 4.0.3 - micromatch: 4.0.8 node-addon-api: 7.1.1 + picomatch: 4.0.4 optionalDependencies: - '@parcel/watcher-android-arm64': 2.5.1 - '@parcel/watcher-darwin-arm64': 2.5.1 - '@parcel/watcher-darwin-x64': 2.5.1 - '@parcel/watcher-freebsd-x64': 2.5.1 - '@parcel/watcher-linux-arm-glibc': 2.5.1 - '@parcel/watcher-linux-arm-musl': 2.5.1 - '@parcel/watcher-linux-arm64-glibc': 2.5.1 - '@parcel/watcher-linux-arm64-musl': 2.5.1 - '@parcel/watcher-linux-x64-glibc': 2.5.1 - '@parcel/watcher-linux-x64-musl': 2.5.1 - '@parcel/watcher-win32-arm64': 2.5.1 - '@parcel/watcher-win32-ia32': 2.5.1 - '@parcel/watcher-win32-x64': 2.5.1 + '@parcel/watcher-android-arm64': 2.5.6 + '@parcel/watcher-darwin-arm64': 2.5.6 + '@parcel/watcher-darwin-x64': 2.5.6 + '@parcel/watcher-freebsd-x64': 2.5.6 + '@parcel/watcher-linux-arm-glibc': 2.5.6 + '@parcel/watcher-linux-arm-musl': 2.5.6 + '@parcel/watcher-linux-arm64-glibc': 2.5.6 + '@parcel/watcher-linux-arm64-musl': 2.5.6 + '@parcel/watcher-linux-x64-glibc': 2.5.6 + '@parcel/watcher-linux-x64-musl': 2.5.6 + '@parcel/watcher-win32-arm64': 2.5.6 + '@parcel/watcher-win32-ia32': 2.5.6 + '@parcel/watcher-win32-x64': 2.5.6 '@pinojs/redact@0.4.0': {} @@ -12831,7 +13003,7 @@ snapshots: dependencies: graceful-fs: 4.2.10 - '@pnpm/npm-conf@2.3.1': + '@pnpm/npm-conf@3.0.2': dependencies: '@pnpm/config.env-replace': 1.1.0 '@pnpm/network.ca-file': 1.0.2 @@ -12850,19 +13022,21 @@ snapshots: '@popperjs/core@2.11.8': {} - '@qds.dev/tools@0.14.3': + '@qds.dev/tools@0.14.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)': dependencies: - '@iconify/json': 2.2.449 + '@iconify/json': 2.2.454 '@iconify/utils': 3.1.0 '@oxc-project/types': 0.115.0 magic-regexp: 0.10.0 - oxc-minify: 0.115.0 - oxc-parser: 0.115.0 - oxc-transform: 0.115.0 - oxc-walker: 0.7.0(oxc-parser@0.115.0) + oxc-minify: 0.115.0(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1) + oxc-parser: 0.115.0(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1) + oxc-transform: 0.115.0(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1) + oxc-walker: 0.7.0(oxc-parser@0.115.0(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)) remark: 15.0.1 remark-mdx: 3.1.1 transitivePeerDependencies: + - '@emnapi/core' + - '@emnapi/runtime' - supports-color '@qds.dev/ui@0.14.3(@qwik.dev/core@packages+qwik)': @@ -12874,27 +13048,30 @@ snapshots: '@qwik-ui/headless@0.6.7': dependencies: '@builder.io/qwik': link:packages/qwik - '@floating-ui/core': 1.7.3 - '@floating-ui/dom': 1.7.4 + '@floating-ui/core': 1.7.5 + '@floating-ui/dom': 1.7.6 '@oddbird/popover-polyfill': 0.4.3 body-scroll-lock-upgrade: 1.1.0 focus-trap: 7.5.4 - '@qwik.dev/devtools@0.2.5(@qwik.dev/core@packages+qwik)(@qwik.dev/router@packages+qwik-router)(@tailwindcss/vite@4.1.18(vite@7.3.1(@types/node@24.10.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(yaml@2.8.2)))(tailwindcss@4.1.18)(vite@7.3.1(@types/node@24.10.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(yaml@2.8.2))': + '@qwik.dev/devtools@0.2.5(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@qwik.dev/core@packages+qwik)(@qwik.dev/router@packages+qwik-router)(@tailwindcss/postcss@4.2.2)(@tailwindcss/vite@4.2.2(vite@8.0.6(@types/node@24.10.0)(esbuild@0.27.3)(jiti@2.6.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.3)))(tailwindcss@4.2.1)(vite@8.0.6(@types/node@24.10.0)(esbuild@0.27.3)(jiti@2.6.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.3))': dependencies: '@qwik.dev/core': link:packages/qwik '@qwik.dev/router': link:packages/qwik-router '@qwikest/icons': 0.0.13 - '@tailwindcss/vite': 4.1.18(vite@7.3.1(@types/node@24.10.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(yaml@2.8.2)) + '@tailwindcss/postcss': 4.2.2 + '@tailwindcss/vite': 4.2.2(vite@8.0.6(@types/node@24.10.0)(esbuild@0.27.3)(jiti@2.6.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.3)) birpc: 0.2.19 dree: 5.1.5 - oxc-parser: 0.82.3 + oxc-parser: 0.82.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1) superjson: 2.2.6 - tailwindcss: 4.1.18 - vite: 7.3.1(@types/node@24.10.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(yaml@2.8.2) - vite-hot-client: 0.2.4(vite@7.3.1(@types/node@24.10.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(yaml@2.8.2)) - vite-plugin-inspect: 11.3.3(vite@7.3.1(@types/node@24.10.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(yaml@2.8.2)) + tailwindcss: 4.2.1 + vite: 8.0.6(@types/node@24.10.0)(esbuild@0.27.3)(jiti@2.6.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.3) + vite-hot-client: 0.2.4(vite@8.0.6(@types/node@24.10.0)(esbuild@0.27.3)(jiti@2.6.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.3)) + vite-plugin-inspect: 11.3.3(vite@8.0.6(@types/node@24.10.0)(esbuild@0.27.3)(jiti@2.6.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.3)) transitivePeerDependencies: + - '@emnapi/core' + - '@emnapi/runtime' - '@nuxt/kit' - supports-color @@ -12906,15 +13083,69 @@ snapshots: dependencies: '@builder.io/qwik': link:packages/qwik - '@rolldown/browser@1.0.0-beta.59': + '@rolldown/binding-android-arm64@1.0.0-rc.13': + optional: true + + '@rolldown/binding-darwin-arm64@1.0.0-rc.13': + optional: true + + '@rolldown/binding-darwin-x64@1.0.0-rc.13': + optional: true + + '@rolldown/binding-freebsd-x64@1.0.0-rc.13': + optional: true + + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.13': + optional: true + + '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.13': + optional: true + + '@rolldown/binding-linux-arm64-musl@1.0.0-rc.13': + optional: true + + '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.13': + optional: true + + '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.13': + optional: true + + '@rolldown/binding-linux-x64-gnu@1.0.0-rc.13': + optional: true + + '@rolldown/binding-linux-x64-musl@1.0.0-rc.13': + optional: true + + '@rolldown/binding-openharmony-arm64@1.0.0-rc.13': + optional: true + + '@rolldown/binding-wasm32-wasi@1.0.0-rc.13': + dependencies: + '@emnapi/core': 1.9.1 + '@emnapi/runtime': 1.9.1 + '@napi-rs/wasm-runtime': 1.1.2(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1) + optional: true + + '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.13': + optional: true + + '@rolldown/binding-win32-x64-msvc@1.0.0-rc.13': + optional: true + + '@rolldown/browser@1.0.0-rc.12(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)': dependencies: - '@napi-rs/wasm-runtime': 1.1.1 + '@napi-rs/wasm-runtime': 1.1.2(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1) + transitivePeerDependencies: + - '@emnapi/core' + - '@emnapi/runtime' + + '@rolldown/pluginutils@1.0.0-rc.13': {} '@rollup/pluginutils@5.3.0(rollup@4.59.0)': dependencies: '@types/estree': 1.0.8 estree-walker: 2.0.2 - picomatch: 4.0.3 + picomatch: 4.0.4 optionalDependencies: rollup: 4.59.0 @@ -13051,7 +13282,7 @@ snapshots: dependencies: '@shikijs/types': 3.21.0 '@shikijs/vscode-textmate': 10.0.2 - oniguruma-to-es: 4.3.4 + oniguruma-to-es: 4.3.5 '@shikijs/engine-oniguruma@3.21.0': dependencies: @@ -13069,7 +13300,7 @@ snapshots: hast-util-to-string: 3.0.1 shiki: 3.21.0 unified: 11.0.5 - unist-util-visit: 5.0.0 + unist-util-visit: 5.1.0 '@shikijs/themes@3.21.0': dependencies: @@ -13102,7 +13333,7 @@ snapshots: '@so-ric/colorspace@1.1.6': dependencies: - color: 5.0.2 + color: 5.0.3 text-hex: 1.0.0 '@standard-schema/spec@1.1.0': {} @@ -13128,8 +13359,8 @@ snapshots: '@supabase/node-fetch': 2.6.15 '@types/phoenix': 1.6.7 '@types/ws': 8.18.1 - isows: 1.0.7(ws@8.19.0) - ws: 8.19.0 + isows: 1.0.7(ws@8.20.0) + ws: 8.20.0 transitivePeerDependencies: - bufferutil - utf-8-validate @@ -13139,7 +13370,7 @@ snapshots: '@supabase/supabase-js': 2.53.0 cookie: 1.1.1 - '@supabase/storage-js@2.90.0': + '@supabase/storage-js@2.100.0': dependencies: iceberg-js: 0.8.1 tslib: 2.8.1 @@ -13151,7 +13382,7 @@ snapshots: '@supabase/node-fetch': 2.6.15 '@supabase/postgrest-js': 1.19.4 '@supabase/realtime-js': 2.11.15 - '@supabase/storage-js': 2.90.0 + '@supabase/storage-js': 2.100.0 transitivePeerDependencies: - bufferutil - utf-8-validate @@ -13160,73 +13391,81 @@ snapshots: dependencies: acorn: 8.16.0 - '@tailwindcss/node@4.1.18': + '@tailwindcss/node@4.2.2': dependencies: '@jridgewell/remapping': 2.3.5 - enhanced-resolve: 5.18.4 + enhanced-resolve: 5.20.1 jiti: 2.6.1 - lightningcss: 1.30.2 + lightningcss: 1.32.0 magic-string: 0.30.21 source-map-js: 1.2.1 - tailwindcss: 4.1.18 + tailwindcss: 4.2.2 - '@tailwindcss/oxide-android-arm64@4.1.18': + '@tailwindcss/oxide-android-arm64@4.2.2': optional: true - '@tailwindcss/oxide-darwin-arm64@4.1.18': + '@tailwindcss/oxide-darwin-arm64@4.2.2': optional: true - '@tailwindcss/oxide-darwin-x64@4.1.18': + '@tailwindcss/oxide-darwin-x64@4.2.2': optional: true - '@tailwindcss/oxide-freebsd-x64@4.1.18': + '@tailwindcss/oxide-freebsd-x64@4.2.2': optional: true - '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.18': + '@tailwindcss/oxide-linux-arm-gnueabihf@4.2.2': optional: true - '@tailwindcss/oxide-linux-arm64-gnu@4.1.18': + '@tailwindcss/oxide-linux-arm64-gnu@4.2.2': optional: true - '@tailwindcss/oxide-linux-arm64-musl@4.1.18': + '@tailwindcss/oxide-linux-arm64-musl@4.2.2': optional: true - '@tailwindcss/oxide-linux-x64-gnu@4.1.18': + '@tailwindcss/oxide-linux-x64-gnu@4.2.2': optional: true - '@tailwindcss/oxide-linux-x64-musl@4.1.18': + '@tailwindcss/oxide-linux-x64-musl@4.2.2': optional: true - '@tailwindcss/oxide-wasm32-wasi@4.1.18': + '@tailwindcss/oxide-wasm32-wasi@4.2.2': optional: true - '@tailwindcss/oxide-win32-arm64-msvc@4.1.18': + '@tailwindcss/oxide-win32-arm64-msvc@4.2.2': optional: true - '@tailwindcss/oxide-win32-x64-msvc@4.1.18': + '@tailwindcss/oxide-win32-x64-msvc@4.2.2': optional: true - '@tailwindcss/oxide@4.1.18': + '@tailwindcss/oxide@4.2.2': optionalDependencies: - '@tailwindcss/oxide-android-arm64': 4.1.18 - '@tailwindcss/oxide-darwin-arm64': 4.1.18 - '@tailwindcss/oxide-darwin-x64': 4.1.18 - '@tailwindcss/oxide-freebsd-x64': 4.1.18 - '@tailwindcss/oxide-linux-arm-gnueabihf': 4.1.18 - '@tailwindcss/oxide-linux-arm64-gnu': 4.1.18 - '@tailwindcss/oxide-linux-arm64-musl': 4.1.18 - '@tailwindcss/oxide-linux-x64-gnu': 4.1.18 - '@tailwindcss/oxide-linux-x64-musl': 4.1.18 - '@tailwindcss/oxide-wasm32-wasi': 4.1.18 - '@tailwindcss/oxide-win32-arm64-msvc': 4.1.18 - '@tailwindcss/oxide-win32-x64-msvc': 4.1.18 - - '@tailwindcss/vite@4.1.18(vite@7.3.1(@types/node@24.10.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(yaml@2.8.2))': - dependencies: - '@tailwindcss/node': 4.1.18 - '@tailwindcss/oxide': 4.1.18 - tailwindcss: 4.1.18 - vite: 7.3.1(@types/node@24.10.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(yaml@2.8.2) + '@tailwindcss/oxide-android-arm64': 4.2.2 + '@tailwindcss/oxide-darwin-arm64': 4.2.2 + '@tailwindcss/oxide-darwin-x64': 4.2.2 + '@tailwindcss/oxide-freebsd-x64': 4.2.2 + '@tailwindcss/oxide-linux-arm-gnueabihf': 4.2.2 + '@tailwindcss/oxide-linux-arm64-gnu': 4.2.2 + '@tailwindcss/oxide-linux-arm64-musl': 4.2.2 + '@tailwindcss/oxide-linux-x64-gnu': 4.2.2 + '@tailwindcss/oxide-linux-x64-musl': 4.2.2 + '@tailwindcss/oxide-wasm32-wasi': 4.2.2 + '@tailwindcss/oxide-win32-arm64-msvc': 4.2.2 + '@tailwindcss/oxide-win32-x64-msvc': 4.2.2 + + '@tailwindcss/postcss@4.2.2': + dependencies: + '@alloc/quick-lru': 5.2.0 + '@tailwindcss/node': 4.2.2 + '@tailwindcss/oxide': 4.2.2 + postcss: 8.5.6 + tailwindcss: 4.2.2 + + '@tailwindcss/vite@4.2.2(vite@8.0.6(@types/node@24.10.0)(esbuild@0.27.3)(jiti@2.6.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.3))': + dependencies: + '@tailwindcss/node': 4.2.2 + '@tailwindcss/oxide': 4.2.2 + tailwindcss: 4.2.2 + vite: 8.0.6(@types/node@24.10.0)(esbuild@0.27.3)(jiti@2.6.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.3) '@ts-morph/common@0.28.1': dependencies: @@ -13234,7 +13473,7 @@ snapshots: path-browserify: 1.0.1 tinyglobby: 0.2.15 - '@tsconfig/node10@1.0.11': {} + '@tsconfig/node10@1.0.12': {} '@tsconfig/node12@1.0.11': {} @@ -13272,7 +13511,7 @@ snapshots: '@types/css-tree@2.3.11': {} - '@types/debug@4.1.12': + '@types/debug@4.1.13': dependencies: '@types/ms': 2.1.0 @@ -13288,17 +13527,17 @@ snapshots: '@types/estree@1.0.8': {} - '@types/express-serve-static-core@5.1.0': + '@types/express-serve-static-core@5.1.1': dependencies: '@types/node': 24.10.0 - '@types/qs': 6.14.0 + '@types/qs': 6.15.0 '@types/range-parser': 1.2.7 '@types/send': 1.2.1 '@types/express@5.0.6': dependencies: '@types/body-parser': 1.19.6 - '@types/express-serve-static-core': 5.1.0 + '@types/express-serve-static-core': 5.1.1 '@types/serve-static': 2.2.0 '@types/geojson@7946.0.16': {} @@ -13313,7 +13552,7 @@ snapshots: '@types/http-errors@2.0.5': {} - '@types/http-proxy@1.17.16': + '@types/http-proxy@1.17.17': dependencies: '@types/node': 24.10.0 @@ -13356,7 +13595,7 @@ snapshots: '@types/prop-types@15.7.15': {} - '@types/qs@6.14.0': {} + '@types/qs@6.15.0': {} '@types/range-parser@1.2.7': {} @@ -13429,7 +13668,7 @@ snapshots: eslint: 10.0.2(jiti@2.6.1) ignore: 7.0.5 natural-compare: 1.4.0 - ts-api-utils: 2.4.0(typescript@5.9.3) + ts-api-utils: 2.5.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: - supports-color @@ -13438,7 +13677,7 @@ snapshots: dependencies: '@typescript-eslint/scope-manager': 8.56.1 '@typescript-eslint/types': 8.56.1 - '@typescript-eslint/typescript-estree': 8.56.1(supports-color@10.2.2)(typescript@5.9.3) + '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.9.3) '@typescript-eslint/visitor-keys': 8.56.1 debug: 4.4.3(supports-color@10.2.2) eslint: 10.0.2(jiti@2.6.1) @@ -13446,10 +13685,19 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.56.1(supports-color@10.2.2)(typescript@5.9.3)': + '@typescript-eslint/project-service@8.56.1(typescript@5.9.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.56.1(typescript@5.9.3) - '@typescript-eslint/types': 8.56.1 + '@typescript-eslint/tsconfig-utils': 8.57.2(typescript@5.9.3) + '@typescript-eslint/types': 8.57.2 + debug: 4.4.3(supports-color@10.2.2) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/project-service@8.57.2(supports-color@10.2.2)(typescript@5.9.3)': + dependencies: + '@typescript-eslint/tsconfig-utils': 8.57.2(typescript@5.9.3) + '@typescript-eslint/types': 8.57.2 debug: 4.4.3(supports-color@10.2.2) typescript: 5.9.3 transitivePeerDependencies: @@ -13458,7 +13706,7 @@ snapshots: '@typescript-eslint/rule-tester@8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@typescript-eslint/parser': 8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/typescript-estree': 8.56.1(supports-color@10.2.2)(typescript@5.9.3) + '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.9.3) '@typescript-eslint/utils': 8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) ajv: 6.14.0 eslint: 10.0.2(jiti@2.6.1) @@ -13474,27 +13722,38 @@ snapshots: '@typescript-eslint/types': 8.56.1 '@typescript-eslint/visitor-keys': 8.56.1 + '@typescript-eslint/scope-manager@8.57.2': + dependencies: + '@typescript-eslint/types': 8.57.2 + '@typescript-eslint/visitor-keys': 8.57.2 + '@typescript-eslint/tsconfig-utils@8.56.1(typescript@5.9.3)': dependencies: typescript: 5.9.3 + '@typescript-eslint/tsconfig-utils@8.57.2(typescript@5.9.3)': + dependencies: + typescript: 5.9.3 + '@typescript-eslint/type-utils@8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@typescript-eslint/types': 8.56.1 - '@typescript-eslint/typescript-estree': 8.56.1(supports-color@10.2.2)(typescript@5.9.3) + '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.9.3) '@typescript-eslint/utils': 8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) debug: 4.4.3(supports-color@10.2.2) eslint: 10.0.2(jiti@2.6.1) - ts-api-utils: 2.4.0(typescript@5.9.3) + ts-api-utils: 2.5.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: - supports-color '@typescript-eslint/types@8.56.1': {} - '@typescript-eslint/typescript-estree@8.56.1(supports-color@10.2.2)(typescript@5.9.3)': + '@typescript-eslint/types@8.57.2': {} + + '@typescript-eslint/typescript-estree@8.56.1(typescript@5.9.3)': dependencies: - '@typescript-eslint/project-service': 8.56.1(supports-color@10.2.2)(typescript@5.9.3) + '@typescript-eslint/project-service': 8.56.1(typescript@5.9.3) '@typescript-eslint/tsconfig-utils': 8.56.1(typescript@5.9.3) '@typescript-eslint/types': 8.56.1 '@typescript-eslint/visitor-keys': 8.56.1 @@ -13502,7 +13761,22 @@ snapshots: minimatch: 10.2.4 semver: 7.7.3 tinyglobby: 0.2.15 - ts-api-utils: 2.4.0(typescript@5.9.3) + ts-api-utils: 2.5.0(typescript@5.9.3) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/typescript-estree@8.57.2(supports-color@10.2.2)(typescript@5.9.3)': + dependencies: + '@typescript-eslint/project-service': 8.57.2(supports-color@10.2.2)(typescript@5.9.3) + '@typescript-eslint/tsconfig-utils': 8.57.2(typescript@5.9.3) + '@typescript-eslint/types': 8.57.2 + '@typescript-eslint/visitor-keys': 8.57.2 + debug: 4.4.3(supports-color@10.2.2) + minimatch: 10.2.4 + semver: 7.7.3 + tinyglobby: 0.2.15 + ts-api-utils: 2.5.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: - supports-color @@ -13512,7 +13786,18 @@ snapshots: '@eslint-community/eslint-utils': 4.9.1(eslint@10.0.2(jiti@2.6.1)) '@typescript-eslint/scope-manager': 8.56.1 '@typescript-eslint/types': 8.56.1 - '@typescript-eslint/typescript-estree': 8.56.1(supports-color@10.2.2)(typescript@5.9.3) + '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.9.3) + eslint: 10.0.2(jiti@2.6.1) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@8.57.2(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3)': + dependencies: + '@eslint-community/eslint-utils': 4.9.1(eslint@10.0.2(jiti@2.6.1)) + '@typescript-eslint/scope-manager': 8.57.2 + '@typescript-eslint/types': 8.57.2 + '@typescript-eslint/typescript-estree': 8.57.2(supports-color@10.2.2)(typescript@5.9.3) eslint: 10.0.2(jiti@2.6.1) typescript: 5.9.3 transitivePeerDependencies: @@ -13523,6 +13808,11 @@ snapshots: '@typescript-eslint/types': 8.56.1 eslint-visitor-keys: 5.0.1 + '@typescript-eslint/visitor-keys@8.57.2': + dependencies: + '@typescript-eslint/types': 8.57.2 + eslint-visitor-keys: 5.0.1 + '@typescript/analyze-trace@0.10.1': dependencies: chalk: 4.1.2 @@ -13546,28 +13836,28 @@ snapshots: '@vercel/nft@0.29.4(rollup@4.59.0)(supports-color@10.2.2)': dependencies: - '@mapbox/node-pre-gyp': 2.0.0(supports-color@10.2.2) + '@mapbox/node-pre-gyp': 2.0.3(supports-color@10.2.2) '@rollup/pluginutils': 5.3.0(rollup@4.59.0) acorn: 8.16.0 acorn-import-attributes: 1.9.5(acorn@8.16.0) async-sema: 3.1.1 bindings: 1.5.0 estree-walker: 2.0.2 - glob: 10.4.5 + glob: 10.5.0 graceful-fs: 4.2.11 node-gyp-build: 4.8.4 - picomatch: 4.0.3 + picomatch: 4.0.4 resolve-from: 5.0.0 transitivePeerDependencies: - encoding - rollup - supports-color - '@vitejs/plugin-basic-ssl@2.1.4(vite@7.3.1(@types/node@24.10.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(yaml@2.8.2))': + '@vitejs/plugin-basic-ssl@2.2.0(vite@8.0.6(@types/node@24.10.0)(esbuild@0.27.2)(jiti@2.6.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.3))': dependencies: - vite: 7.3.1(@types/node@24.10.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(yaml@2.8.2) + vite: 8.0.6(@types/node@24.10.0)(esbuild@0.27.2)(jiti@2.6.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.3) - '@vitest/coverage-v8@4.0.18(vitest@4.0.18(@opentelemetry/api@1.9.0)(@types/node@24.10.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(yaml@2.8.2))': + '@vitest/coverage-v8@4.0.18(vitest@4.0.18(@opentelemetry/api@1.9.0)(@types/node@24.10.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.3))': dependencies: '@bcoe/v8-coverage': 1.0.2 '@vitest/utils': 4.0.18 @@ -13578,8 +13868,8 @@ snapshots: magicast: 0.5.2 obug: 2.1.1 std-env: 3.10.0 - tinyrainbow: 3.0.3 - vitest: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@24.10.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(yaml@2.8.2) + tinyrainbow: 3.1.0 + vitest: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@24.10.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.3) '@vitest/expect@4.0.18': dependencies: @@ -13588,19 +13878,19 @@ snapshots: '@vitest/spy': 4.0.18 '@vitest/utils': 4.0.18 chai: 6.2.2 - tinyrainbow: 3.0.3 + tinyrainbow: 3.1.0 - '@vitest/mocker@4.0.18(vite@7.3.1(@types/node@24.10.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(yaml@2.8.2))': + '@vitest/mocker@4.0.18(vite@7.3.1(@types/node@24.10.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.3))': dependencies: '@vitest/spy': 4.0.18 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 7.3.1(@types/node@24.10.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(yaml@2.8.2) + vite: 7.3.1(@types/node@24.10.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.3) '@vitest/pretty-format@4.0.18': dependencies: - tinyrainbow: 3.0.3 + tinyrainbow: 3.1.0 '@vitest/runner@4.0.18': dependencies: @@ -13618,49 +13908,49 @@ snapshots: '@vitest/utils@4.0.18': dependencies: '@vitest/pretty-format': 4.0.18 - tinyrainbow: 3.0.3 + tinyrainbow: 3.1.0 - '@volar/language-core@2.4.23': + '@volar/language-core@2.4.28': dependencies: - '@volar/source-map': 2.4.23 + '@volar/source-map': 2.4.28 - '@volar/source-map@2.4.23': {} + '@volar/source-map@2.4.28': {} - '@volar/typescript@2.4.23': + '@volar/typescript@2.4.28': dependencies: - '@volar/language-core': 2.4.23 + '@volar/language-core': 2.4.28 path-browserify: 1.0.1 vscode-uri: 3.1.0 - '@vue/compiler-core@3.5.22': + '@vue/compiler-core@3.5.31': dependencies: - '@babel/parser': 7.29.0 - '@vue/shared': 3.5.22 - entities: 4.5.0 + '@babel/parser': 7.29.2 + '@vue/shared': 3.5.31 + entities: 7.0.1 estree-walker: 2.0.2 source-map-js: 1.2.1 - '@vue/compiler-dom@3.5.22': + '@vue/compiler-dom@3.5.31': dependencies: - '@vue/compiler-core': 3.5.22 - '@vue/shared': 3.5.22 + '@vue/compiler-core': 3.5.31 + '@vue/shared': 3.5.31 - '@vue/compiler-sfc@3.5.22': + '@vue/compiler-sfc@3.5.31': dependencies: - '@babel/parser': 7.29.0 - '@vue/compiler-core': 3.5.22 - '@vue/compiler-dom': 3.5.22 - '@vue/compiler-ssr': 3.5.22 - '@vue/shared': 3.5.22 + '@babel/parser': 7.29.2 + '@vue/compiler-core': 3.5.31 + '@vue/compiler-dom': 3.5.31 + '@vue/compiler-ssr': 3.5.31 + '@vue/shared': 3.5.31 estree-walker: 2.0.2 magic-string: 0.30.21 - postcss: 8.5.6 + postcss: 8.5.8 source-map-js: 1.2.1 - '@vue/compiler-ssr@3.5.22': + '@vue/compiler-ssr@3.5.31': dependencies: - '@vue/compiler-dom': 3.5.22 - '@vue/shared': 3.5.22 + '@vue/compiler-dom': 3.5.31 + '@vue/shared': 3.5.31 '@vue/compiler-vue2@2.7.16': dependencies: @@ -13669,30 +13959,30 @@ snapshots: '@vue/language-core@2.2.0(typescript@5.9.3)': dependencies: - '@volar/language-core': 2.4.23 - '@vue/compiler-dom': 3.5.22 + '@volar/language-core': 2.4.28 + '@vue/compiler-dom': 3.5.31 '@vue/compiler-vue2': 2.7.16 - '@vue/shared': 3.5.22 + '@vue/shared': 3.5.31 alien-signals: 0.4.14 - minimatch: 9.0.5 + minimatch: 9.0.9 muggle-string: 0.4.1 path-browserify: 1.0.1 optionalDependencies: typescript: 5.9.3 - '@vue/shared@3.5.22': {} + '@vue/shared@3.5.31': {} '@whatwg-node/disposablestack@0.0.6': dependencies: '@whatwg-node/promise-helpers': 1.3.2 tslib: 2.8.1 - '@whatwg-node/fetch@0.10.11': + '@whatwg-node/fetch@0.10.13': dependencies: - '@whatwg-node/node-fetch': 0.8.0 + '@whatwg-node/node-fetch': 0.8.5 urlpattern-polyfill: 10.1.0 - '@whatwg-node/node-fetch@0.8.0': + '@whatwg-node/node-fetch@0.8.5': dependencies: '@fastify/busboy': 3.2.0 '@whatwg-node/disposablestack': 0.0.6 @@ -13703,11 +13993,11 @@ snapshots: dependencies: tslib: 2.8.1 - '@whatwg-node/server@0.10.12': + '@whatwg-node/server@0.10.18': dependencies: '@envelop/instrumentation': 1.0.0 '@whatwg-node/disposablestack': 0.0.6 - '@whatwg-node/fetch': 0.10.11 + '@whatwg-node/fetch': 0.10.13 '@whatwg-node/promise-helpers': 1.3.2 tslib: 2.8.1 @@ -13739,7 +14029,7 @@ snapshots: acorn-walk@8.3.2: {} - acorn-walk@8.3.4: + acorn-walk@8.3.5: dependencies: acorn: 8.16.0 @@ -13798,7 +14088,7 @@ snapshots: all-contributors-cli@6.26.1: dependencies: - '@babel/runtime': 7.28.4 + '@babel/runtime': 7.29.2 async: 3.2.6 chalk: 4.1.2 didyoumean: 1.2.2 @@ -13846,11 +14136,11 @@ snapshots: anymatch@3.1.3: dependencies: normalize-path: 3.0.0 - picomatch: 2.3.1 + picomatch: 2.3.2 archiver-utils@5.0.2: dependencies: - glob: 10.4.5 + glob: 10.5.0 graceful-fs: 4.2.11 is-stream: 2.0.1 lazystream: 1.0.1 @@ -13865,9 +14155,11 @@ snapshots: buffer-crc32: 1.0.0 readable-stream: 4.7.0 readdir-glob: 1.1.3 - tar-stream: 3.1.7 + tar-stream: 3.1.8 zip-stream: 6.0.1 transitivePeerDependencies: + - bare-abort-controller + - bare-buffer - react-native-b4a arg@4.1.3: {} @@ -13890,9 +14182,9 @@ snapshots: call-bind: 1.0.8 call-bound: 1.0.4 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.24.1 es-object-atoms: 1.1.1 - get-intrinsic: 1.3.1 + get-intrinsic: 1.3.0 is-string: 1.1.1 math-intrinsics: 1.1.0 @@ -13905,7 +14197,7 @@ snapshots: call-bind: 1.0.8 call-bound: 1.0.4 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.24.1 es-errors: 1.3.0 es-object-atoms: 1.1.1 es-shim-unscopables: 1.1.0 @@ -13914,14 +14206,14 @@ snapshots: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.24.1 es-shim-unscopables: 1.1.0 array.prototype.flatmap@1.3.3: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.24.1 es-shim-unscopables: 1.1.0 arraybuffer.prototype.slice@1.0.4: @@ -13929,9 +14221,9 @@ snapshots: array-buffer-byte-length: 1.0.2 call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.24.1 es-errors: 1.3.0 - get-intrinsic: 1.3.1 + get-intrinsic: 1.3.0 is-array-buffer: 3.0.5 as-table@1.0.55: @@ -13954,8 +14246,6 @@ snapshots: async-function@1.0.0: {} - async-generator-function@1.0.0: {} - async-sema@3.1.1: {} async@3.2.6: {} @@ -13964,15 +14254,15 @@ snapshots: atomic-sleep@1.0.0: {} - atomically@2.0.3: + atomically@2.1.1: dependencies: - stubborn-fs: 1.2.5 - when-exit: 2.1.4 + stubborn-fs: 2.0.0 + when-exit: 2.1.5 autoprefixer@10.4.23(postcss@8.5.6): dependencies: browserslist: 4.28.1 - caniuse-lite: 1.0.30001762 + caniuse-lite: 1.0.30001781 fraction.js: 5.3.4 picocolors: 1.1.1 postcss: 8.5.6 @@ -13985,7 +14275,7 @@ snapshots: avvio@9.2.0: dependencies: '@fastify/error': 4.2.0 - fastq: 1.19.1 + fastq: 1.20.1 axios@0.26.1: dependencies: @@ -13993,11 +14283,11 @@ snapshots: transitivePeerDependencies: - debug - b4a@1.7.3: {} + b4a@1.8.0: {} babel-plugin-macros@3.1.0: dependencies: - '@babel/runtime': 7.28.4 + '@babel/runtime': 7.29.2 cosmiconfig: 7.1.0 resolve: 1.22.11 @@ -14011,11 +14301,41 @@ snapshots: balanced-match@4.0.4: {} - bare-events@2.7.0: {} + bare-events@2.8.2: {} + + bare-fs@4.5.6: + dependencies: + bare-events: 2.8.2 + bare-path: 3.0.0 + bare-stream: 2.11.0(bare-events@2.8.2) + bare-url: 2.4.0 + fast-fifo: 1.3.2 + transitivePeerDependencies: + - bare-abort-controller + - react-native-b4a + + bare-os@3.8.0: {} + + bare-path@3.0.0: + dependencies: + bare-os: 3.8.0 + + bare-stream@2.11.0(bare-events@2.8.2): + dependencies: + streamx: 2.25.0 + teex: 1.0.1 + optionalDependencies: + bare-events: 2.8.2 + transitivePeerDependencies: + - react-native-b4a + + bare-url@2.4.0: + dependencies: + bare-path: 3.0.0 base64-js@1.5.1: {} - baseline-browser-mapping@2.9.11: {} + baseline-browser-mapping@2.10.10: {} before-after-hook@2.2.3: {} @@ -14023,7 +14343,7 @@ snapshots: better-ajv-errors@1.2.0(ajv@8.18.0): dependencies: - '@babel/code-frame': 7.27.1 + '@babel/code-frame': 7.29.0 '@humanwhocodes/momoa': 2.0.4 ajv: 8.18.0 chalk: 4.1.2 @@ -14052,18 +14372,18 @@ snapshots: blake3-wasm@2.1.5: {} - body-parser@1.20.3: + body-parser@1.20.4: dependencies: bytes: 3.1.2 content-type: 1.0.5 debug: 2.6.9 depd: 2.0.0 destroy: 1.2.0 - http-errors: 2.0.0 + http-errors: 2.0.1 iconv-lite: 0.4.24 on-finished: 2.4.1 - qs: 6.13.0 - raw-body: 2.5.2 + qs: 6.14.2 + raw-body: 2.5.3 type-is: 1.6.18 unpipe: 1.0.0 transitivePeerDependencies: @@ -14075,9 +14395,9 @@ snapshots: content-type: 1.0.5 debug: 4.4.3(supports-color@10.2.2) http-errors: 2.0.1 - iconv-lite: 0.7.0 + iconv-lite: 0.7.2 on-finished: 2.4.1 - qs: 6.14.1 + qs: 6.15.0 raw-body: 3.0.1 type-is: 2.0.1 transitivePeerDependencies: @@ -14107,7 +14427,7 @@ snapshots: dependencies: balanced-match: 1.0.2 - brace-expansion@5.0.4: + brace-expansion@5.0.5: dependencies: balanced-match: 4.0.4 @@ -14121,10 +14441,10 @@ snapshots: browserslist@4.28.1: dependencies: - baseline-browser-mapping: 2.9.11 - caniuse-lite: 1.0.30001762 - electron-to-chromium: 1.5.267 - node-releases: 2.0.27 + baseline-browser-mapping: 2.10.10 + caniuse-lite: 1.0.30001781 + electron-to-chromium: 1.5.325 + node-releases: 2.0.36 update-browserslist-db: 1.2.3(browserslist@4.28.1) buffer-crc32@0.2.13: {} @@ -14166,13 +14486,13 @@ snapshots: dependencies: call-bind-apply-helpers: 1.0.2 es-define-property: 1.0.1 - get-intrinsic: 1.3.1 + get-intrinsic: 1.3.0 set-function-length: 1.2.2 call-bound@1.0.4: dependencies: call-bind-apply-helpers: 1.0.2 - get-intrinsic: 1.3.1 + get-intrinsic: 1.3.0 callsite@1.0.0: {} @@ -14182,7 +14502,7 @@ snapshots: camelcase@8.0.0: {} - caniuse-lite@1.0.30001762: {} + caniuse-lite@1.0.30001781: {} ccount@2.0.1: {} @@ -14209,12 +14529,16 @@ snapshots: chardet@0.7.0: {} - chardet@2.1.0: {} + chardet@2.1.1: {} chokidar@4.0.3: dependencies: readdirp: 4.1.2 + chokidar@5.0.0: + dependencies: + readdirp: 5.0.0 + chownr@3.0.0: {} ci-info@3.9.0: {} @@ -14254,7 +14578,7 @@ snapshots: clipboardy@4.0.0: dependencies: execa: 8.0.1 - is-wsl: 3.1.0 + is-wsl: 3.1.1 is64bit: 2.0.0 cliui@6.0.0: @@ -14287,13 +14611,13 @@ snapshots: dependencies: color-name: 1.1.4 - color-convert@3.1.2: + color-convert@3.1.3: dependencies: - color-name: 2.0.2 + color-name: 2.1.0 color-name@1.1.4: {} - color-name@2.0.2: {} + color-name@2.1.0: {} color-string@1.9.1: dependencies: @@ -14301,9 +14625,9 @@ snapshots: simple-swizzle: 0.2.4 optional: true - color-string@2.1.2: + color-string@2.1.4: dependencies: - color-name: 2.0.2 + color-name: 2.1.0 color@4.2.3: dependencies: @@ -14311,10 +14635,10 @@ snapshots: color-string: 1.9.1 optional: true - color@5.0.2: + color@5.0.3: dependencies: - color-convert: 3.1.2 - color-string: 2.1.2 + color-convert: 3.1.3 + color-string: 2.1.4 colors@1.4.0: {} @@ -14341,7 +14665,7 @@ snapshots: array-timsort: 1.0.3 esprima: 4.0.1 - comment-parser@1.4.1: {} + comment-parser@1.4.5: {} common-path-prefix@3.0.0: {} @@ -14359,7 +14683,7 @@ snapshots: confbox@0.1.8: {} - confbox@0.2.2: {} + confbox@0.2.4: {} config-chain@1.1.13: dependencies: @@ -14368,7 +14692,7 @@ snapshots: configstore@7.1.0: dependencies: - atomically: 2.0.3 + atomically: 2.1.1 dot-prop: 9.0.0 graceful-fs: 4.2.11 xdg-basedir: 5.1.0 @@ -14385,11 +14709,9 @@ snapshots: convert-source-map@1.9.0: {} - convert-source-map@2.0.0: {} - cookie-es@1.2.2: {} - cookie-signature@1.0.6: {} + cookie-signature@1.0.7: {} cookie-signature@1.2.2: {} @@ -14414,9 +14736,9 @@ snapshots: import-fresh: 3.3.1 parse-json: 5.2.0 path-type: 4.0.0 - yaml: 1.10.2 + yaml: 1.10.3 - cosmiconfig@9.0.0(typescript@5.9.3): + cosmiconfig@9.0.1(typescript@5.9.3): dependencies: env-paths: 2.2.1 import-fresh: 3.3.1 @@ -14475,9 +14797,9 @@ snapshots: mdn-data: 2.0.30 source-map-js: 1.2.1 - css-tree@3.1.0: + css-tree@3.2.1: dependencies: - mdn-data: 2.12.2 + mdn-data: 2.27.1 source-map-js: 1.2.1 css-what@6.2.2: {} @@ -14540,7 +14862,7 @@ snapshots: decode-formdata@0.8.0: {} - decode-named-character-reference@1.2.0: + decode-named-character-reference@1.3.0: dependencies: character-entities: 2.0.2 @@ -14550,12 +14872,12 @@ snapshots: deepmerge@4.3.1: {} - default-browser-id@5.0.0: {} + default-browser-id@5.0.1: {} default-browser@5.5.0: dependencies: bundle-name: 4.1.0 - default-browser-id: 5.0.0 + default-browser-id: 5.0.1 defaults@1.0.4: dependencies: @@ -14595,8 +14917,6 @@ snapshots: detect-indent@6.1.0: {} - detect-libc@1.0.3: {} - detect-libc@2.0.2: {} detect-libc@2.1.2: {} @@ -14608,7 +14928,7 @@ snapshots: get-amd-module-type: 6.0.1 node-source-walk: 7.0.1 - detective-cjs@6.0.1: + detective-cjs@6.1.0: dependencies: ast-module-types: 6.0.1 node-source-walk: 7.0.1 @@ -14637,7 +14957,7 @@ snapshots: detective-typescript@14.0.0(supports-color@10.2.2)(typescript@5.9.3): dependencies: - '@typescript-eslint/typescript-estree': 8.56.1(supports-color@10.2.2)(typescript@5.9.3) + '@typescript-eslint/typescript-estree': 8.57.2(supports-color@10.2.2)(typescript@5.9.3) ast-module-types: 6.0.1 node-source-walk: 7.0.1 typescript: 5.9.3 @@ -14647,7 +14967,7 @@ snapshots: detective-vue2@2.2.0(supports-color@10.2.2)(typescript@5.9.3): dependencies: '@dependents/detective-less': 5.0.1 - '@vue/compiler-sfc': 3.5.22 + '@vue/compiler-sfc': 3.5.31 detective-es6: 5.0.1 detective-sass: 6.0.1 detective-scss: 5.0.1 @@ -14665,11 +14985,11 @@ snapshots: didyoumean@1.2.2: {} - diff@4.0.2: {} + diff@4.0.4: {} - diff@5.2.0: {} + diff@5.2.2: {} - diff@8.0.3: {} + diff@8.0.4: {} dir-glob@3.0.1: dependencies: @@ -14681,7 +15001,7 @@ snapshots: dom-helpers@5.2.1: dependencies: - '@babel/runtime': 7.28.4 + '@babel/runtime': 7.29.2 csstype: 3.2.3 dom-serializer@2.0.0: @@ -14725,14 +15045,12 @@ snapshots: minimatch: 10.2.4 yargs: 17.7.2 - drizzle-kit@0.31.5: + drizzle-kit@0.31.10: dependencies: '@drizzle-team/brocli': 0.10.2 '@esbuild-kit/esm-loader': 2.6.5 esbuild: 0.25.12 - esbuild-register: 3.6.0(esbuild@0.25.12) - transitivePeerDependencies: - - supports-color + tsx: 4.21.0 drizzle-orm@0.44.4(@electric-sql/pglite@0.3.16)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(bun-types@1.3.10)(pg@8.20.0): optionalDependencies: @@ -14756,14 +15074,14 @@ snapshots: ee-first@1.1.1: {} - effect@3.18.0: + effect@3.21.0: dependencies: '@standard-schema/spec': 1.1.0 fast-check: 3.23.2 - electron-to-chromium@1.5.267: {} + electron-to-chromium@1.5.325: {} - emoji-regex@10.5.0: {} + emoji-regex@10.6.0: {} emoji-regex@8.0.0: {} @@ -14773,18 +15091,16 @@ snapshots: enabled@2.0.0: {} - encodeurl@1.0.2: {} - encodeurl@2.0.0: {} end-of-stream@1.4.5: dependencies: once: 1.4.0 - enhanced-resolve@5.18.4: + enhanced-resolve@5.20.1: dependencies: graceful-fs: 4.2.11 - tapable: 2.3.0 + tapable: 2.3.2 enquirer@2.4.1: dependencies: @@ -14795,6 +15111,8 @@ snapshots: entities@4.5.0: {} + entities@7.0.1: {} + env-paths@2.2.1: {} env-paths@3.0.0: {} @@ -14817,7 +15135,7 @@ snapshots: dependencies: stackframe: 1.3.4 - es-abstract@1.24.0: + es-abstract@1.24.1: dependencies: array-buffer-byte-length: 1.0.2 arraybuffer.prototype.slice: 1.0.4 @@ -14833,7 +15151,7 @@ snapshots: es-set-tostringtag: 2.1.0 es-to-primitive: 1.3.0 function.prototype.name: 1.1.8 - get-intrinsic: 1.3.1 + get-intrinsic: 1.3.0 get-proto: 1.0.1 get-symbol-description: 1.1.0 globalthis: 1.0.4 @@ -14872,7 +15190,7 @@ snapshots: typed-array-byte-offset: 1.0.4 typed-array-length: 1.0.7 unbox-primitive: 1.1.0 - which-typed-array: 1.1.19 + which-typed-array: 1.1.20 es-define-property@1.0.1: {} @@ -14887,7 +15205,7 @@ snapshots: es-set-tostringtag@2.1.0: dependencies: es-errors: 1.3.0 - get-intrinsic: 1.3.1 + get-intrinsic: 1.3.0 has-tostringtag: 1.0.2 hasown: 2.0.2 @@ -14967,13 +15285,6 @@ snapshots: dependencies: esbuild: 0.27.2 - esbuild-register@3.6.0(esbuild@0.25.12): - dependencies: - debug: 4.4.3(supports-color@10.2.2) - esbuild: 0.25.12 - transitivePeerDependencies: - - supports-color - esbuild-sunos-64@0.15.18: optional: true @@ -15200,7 +15511,7 @@ snapshots: hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 - minimatch: 3.1.2 + minimatch: 3.1.5 object.fromentries: 2.0.8 object.groupby: 1.0.3 object.values: 1.2.1 @@ -15214,7 +15525,7 @@ snapshots: eslint-plugin-no-only-tests@3.3.0: {} - eslint-scope@9.1.1: + eslint-scope@9.1.2: dependencies: '@types/esrecurse': 4.3.1 '@types/estree': 1.0.8 @@ -15229,10 +15540,10 @@ snapshots: dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@10.0.2(jiti@2.6.1)) '@eslint-community/regexpp': 4.12.2 - '@eslint/config-array': 0.23.2 - '@eslint/config-helpers': 0.5.2 - '@eslint/core': 1.1.0 - '@eslint/plugin-kit': 0.6.0 + '@eslint/config-array': 0.23.3 + '@eslint/config-helpers': 0.5.3 + '@eslint/core': 1.1.1 + '@eslint/plugin-kit': 0.6.1 '@humanfs/node': 0.16.7 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.4.3 @@ -15241,9 +15552,9 @@ snapshots: cross-spawn: 7.0.6 debug: 4.4.3(supports-color@10.2.2) escape-string-regexp: 4.0.0 - eslint-scope: 9.1.1 + eslint-scope: 9.1.2 eslint-visitor-keys: 5.0.1 - espree: 11.1.1 + espree: 11.2.0 esquery: 1.7.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 @@ -15262,7 +15573,7 @@ snapshots: transitivePeerDependencies: - supports-color - espree@11.1.1: + espree@11.2.0: dependencies: acorn: 8.16.0 acorn-jsx: 5.3.2(acorn@8.16.0) @@ -15331,7 +15642,9 @@ snapshots: events-universal@1.0.1: dependencies: - bare-events: 2.7.0 + bare-events: 2.8.2 + transitivePeerDependencies: + - bare-abort-controller events@3.3.0: {} @@ -15388,17 +15701,17 @@ snapshots: dependencies: accepts: 1.3.8 array-flatten: 1.1.1 - body-parser: 1.20.3 + body-parser: 1.20.4 content-disposition: 0.5.4 content-type: 1.0.5 cookie: 0.7.2 - cookie-signature: 1.0.6 + cookie-signature: 1.0.7 debug: 2.6.9 depd: 2.0.0 encodeurl: 2.0.0 escape-html: 1.0.3 etag: 1.8.1 - finalhandler: 1.3.1 + finalhandler: 1.3.2 fresh: 0.5.2 http-errors: 2.0.1 merge-descriptors: 1.0.3 @@ -15407,11 +15720,11 @@ snapshots: parseurl: 1.3.3 path-to-regexp: 0.1.12 proxy-addr: 2.0.7 - qs: 6.14.1 + qs: 6.14.2 range-parser: 1.2.1 safe-buffer: 5.2.1 - send: 0.19.0 - serve-static: 1.16.2 + send: 0.19.2 + serve-static: 1.16.3 setprototypeof: 1.2.0 statuses: 2.0.2 type-is: 1.6.18 @@ -15442,7 +15755,7 @@ snapshots: once: 1.4.0 parseurl: 1.3.3 proxy-addr: 2.0.7 - qs: 6.14.1 + qs: 6.15.0 range-parser: 1.2.1 router: 2.2.0 send: 1.2.1 @@ -15453,7 +15766,7 @@ snapshots: transitivePeerDependencies: - supports-color - exsolve@1.0.7: {} + exsolve@1.0.8: {} extend-shallow@2.0.1: dependencies: @@ -15546,7 +15859,7 @@ snapshots: semver: 7.7.3 toad-cache: 3.7.0 - fastq@1.19.1: + fastq@1.20.1: dependencies: reusify: 1.1.0 @@ -15558,9 +15871,9 @@ snapshots: dependencies: pend: 1.2.0 - fdir@6.5.0(picomatch@4.0.3): + fdir@6.5.0(picomatch@4.0.4): optionalDependencies: - picomatch: 4.0.3 + picomatch: 4.0.4 fecha@4.2.3: {} @@ -15591,14 +15904,14 @@ snapshots: filter-obj@6.1.0: {} - finalhandler@1.3.1: + finalhandler@1.3.2: dependencies: debug: 2.6.9 encodeurl: 2.0.0 escape-html: 1.0.3 on-finished: 2.4.1 parseurl: 1.3.3 - statuses: 2.0.1 + statuses: 2.0.2 unpipe: 1.0.0 transitivePeerDependencies: - supports-color @@ -15645,26 +15958,18 @@ snapshots: locate-path: 8.0.0 unicorn-magic: 0.3.0 - fix-esm@1.0.1: - dependencies: - '@babel/core': 7.28.4 - '@babel/plugin-proposal-export-namespace-from': 7.18.9(@babel/core@7.28.4) - '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.28.4) - transitivePeerDependencies: - - supports-color - flat-cache@4.0.1: dependencies: - flatted: 3.3.3 + flatted: 3.4.2 keyv: 4.5.4 - flatted@3.3.3: {} + flatted@3.4.2: {} fn.name@1.1.0: {} focus-trap@7.5.4: dependencies: - tabbable: 6.2.0 + tabbable: 6.4.0 folder-walker@3.2.0: dependencies: @@ -15683,7 +15988,7 @@ snapshots: cross-spawn: 7.0.6 signal-exit: 4.1.0 - form-data@4.0.4: + form-data@4.0.5: dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 @@ -15749,9 +16054,7 @@ snapshots: fuzzy@0.1.3: {} - generator-function@2.0.0: {} - - gensync@1.0.0-beta.2: {} + generator-function@2.0.1: {} get-amd-module-type@6.0.1: dependencies: @@ -15762,16 +16065,13 @@ snapshots: get-east-asian-width@1.5.0: {} - get-intrinsic@1.3.1: + get-intrinsic@1.3.0: dependencies: - async-function: 1.0.0 - async-generator-function: 1.0.0 call-bind-apply-helpers: 1.0.2 es-define-property: 1.0.1 es-errors: 1.3.0 es-object-atoms: 1.1.1 function-bind: 1.1.2 - generator-function: 2.0.0 get-proto: 1.0.1 gopd: 1.2.0 has-symbols: 1.1.0 @@ -15782,7 +16082,7 @@ snapshots: get-port@5.1.1: {} - get-port@7.1.0: {} + get-port@7.2.0: {} get-proto@1.0.1: dependencies: @@ -15796,7 +16096,7 @@ snapshots: get-stream@5.2.0: dependencies: - pump: 3.0.3 + pump: 3.0.4 get-stream@6.0.1: {} @@ -15811,9 +16111,9 @@ snapshots: dependencies: call-bound: 1.0.4 es-errors: 1.3.0 - get-intrinsic: 1.3.1 + get-intrinsic: 1.3.0 - get-tsconfig@4.10.1: + get-tsconfig@4.13.7: dependencies: resolve-pkg-maps: 1.0.0 @@ -15839,11 +16139,11 @@ snapshots: glob-to-regexp@0.4.1: {} - glob@10.4.5: + glob@10.5.0: dependencies: foreground-child: 3.3.1 jackspeak: 3.4.3 - minimatch: 9.0.5 + minimatch: 9.0.9 minipass: 7.1.3 package-json-from-dist: 1.0.1 path-scurry: 1.11.1 @@ -15902,16 +16202,16 @@ snapshots: section-matter: 1.0.0 strip-bom-string: 1.0.0 - h3@1.15.4: + h3@1.15.10: dependencies: cookie-es: 1.2.2 crossws: 0.3.5 defu: 6.1.4 destr: 2.0.5 iron-webcrypto: 1.2.1 - node-mock-http: 1.0.3 + node-mock-http: 1.0.4 radix3: 1.1.2 - ufo: 1.6.2 + ufo: 1.6.3 uncrypto: 0.1.3 has-bigints@1.1.0: {} @@ -15969,7 +16269,7 @@ snapshots: mdast-util-mdxjs-esm: 2.0.1 property-information: 7.1.0 space-separated-tokens: 2.0.2 - style-to-js: 1.1.17 + style-to-js: 1.1.21 unist-util-position: 5.0.0 zwitch: 2.0.4 transitivePeerDependencies: @@ -16003,7 +16303,7 @@ snapshots: mdast-util-mdxjs-esm: 2.0.1 property-information: 7.1.0 space-separated-tokens: 2.0.2 - style-to-js: 1.1.17 + style-to-js: 1.1.21 unist-util-position: 5.0.0 vfile-message: 4.0.3 transitivePeerDependencies: @@ -16081,7 +16381,7 @@ snapshots: http-proxy-middleware@3.0.5: dependencies: - '@types/http-proxy': 1.17.16 + '@types/http-proxy': 1.17.17 debug: 4.4.3(supports-color@10.2.2) http-proxy: 1.18.1(debug@4.4.3) is-glob: 4.0.3 @@ -16114,7 +16414,7 @@ snapshots: transitivePeerDependencies: - supports-color - human-id@4.1.1: {} + human-id@4.1.3: {} human-signals@2.1.0: {} @@ -16138,13 +16438,17 @@ snapshots: dependencies: safer-buffer: 2.1.2 + iconv-lite@0.7.2: + dependencies: + safer-buffer: 2.1.2 + ieee754@1.2.1: {} ignore@5.3.1: {} ignore@7.0.5: {} - image-meta@0.2.1: {} + image-meta@0.2.2: {} image-size@1.2.1: dependencies: @@ -16180,7 +16484,7 @@ snapshots: ini@4.1.1: {} - inline-style-parser@0.2.4: {} + inline-style-parser@0.2.7: {} inquirer-autocomplete-prompt@1.4.0(inquirer@8.2.7(@types/node@24.10.0)): dependencies: @@ -16209,7 +16513,7 @@ snapshots: inquirer@8.2.7(@types/node@24.10.0): dependencies: - '@inquirer/external-editor': 1.0.2(@types/node@24.10.0) + '@inquirer/external-editor': 1.0.3(@types/node@24.10.0) ansi-escapes: 4.3.2 chalk: 4.1.2 cli-cursor: 3.1.0 @@ -16247,15 +16551,15 @@ snapshots: defu: 6.1.4 destr: 2.0.5 etag: 1.8.1 - h3: 1.15.4 - image-meta: 0.2.1 + h3: 1.15.10 + image-meta: 0.2.2 listhen: 1.9.0 - ofetch: 1.4.1 + ofetch: 1.5.1 pathe: 2.0.3 sharp: 0.34.5 - svgo: 4.0.0 - ufo: 1.6.2 - unstorage: 1.17.1(@netlify/blobs@10.7.0) + svgo: 4.0.1 + ufo: 1.6.3 + unstorage: 1.17.4(@netlify/blobs@10.7.0) xss: 1.0.15 transitivePeerDependencies: - '@azure/app-configuration' @@ -16286,15 +16590,15 @@ snapshots: defu: 6.1.4 destr: 2.0.5 etag: 1.8.1 - h3: 1.15.4 - image-meta: 0.2.1 + h3: 1.15.10 + image-meta: 0.2.2 listhen: 1.9.0 - ofetch: 1.4.1 + ofetch: 1.5.1 pathe: 2.0.3 sharp: 0.34.5 - svgo: 4.0.0 - ufo: 1.6.2 - unstorage: 1.17.1(@netlify/blobs@10.7.4) + svgo: 4.0.1 + ufo: 1.6.3 + unstorage: 1.17.4(@netlify/blobs@10.7.4) xss: 1.0.15 transitivePeerDependencies: - '@azure/app-configuration' @@ -16330,7 +16634,7 @@ snapshots: dependencies: call-bind: 1.0.8 call-bound: 1.0.4 - get-intrinsic: 1.3.1 + get-intrinsic: 1.3.0 is-arrayish@0.2.1: {} @@ -16363,7 +16667,7 @@ snapshots: is-data-view@1.0.2: dependencies: call-bound: 1.0.4 - get-intrinsic: 1.3.1 + get-intrinsic: 1.3.0 is-typed-array: 1.1.15 is-date-object@1.1.0: @@ -16393,9 +16697,10 @@ snapshots: dependencies: get-east-asian-width: 1.5.0 - is-generator-function@1.1.0: + is-generator-function@1.1.2: dependencies: call-bound: 1.0.4 + generator-function: 2.0.1 get-proto: 1.0.1 has-tostringtag: 1.0.2 safe-regex-test: 1.1.0 @@ -16427,7 +16732,7 @@ snapshots: is-negative-zero@2.0.3: {} - is-network-error@1.3.0: {} + is-network-error@1.3.1: {} is-npm@6.1.0: {} @@ -16486,7 +16791,7 @@ snapshots: is-typed-array@1.1.15: dependencies: - which-typed-array: 1.1.19 + which-typed-array: 1.1.20 is-unicode-supported@0.1.0: {} @@ -16507,7 +16812,7 @@ snapshots: is-weakset@2.0.4: dependencies: call-bound: 1.0.4 - get-intrinsic: 1.3.1 + get-intrinsic: 1.3.0 is-what@5.5.0: {} @@ -16517,6 +16822,10 @@ snapshots: dependencies: is-inside-container: 1.0.0 + is-wsl@3.1.1: + dependencies: + is-inside-container: 1.0.0 + is64bit@2.0.0: dependencies: system-architecture: 0.1.0 @@ -16531,9 +16840,9 @@ snapshots: isexe@4.0.0: {} - isows@1.0.7(ws@8.19.0): + isows@1.0.7(ws@8.20.0): dependencies: - ws: 8.19.0 + ws: 8.20.0 istanbul-lib-coverage@3.2.2: {} @@ -16558,7 +16867,7 @@ snapshots: jju@1.4.0: {} - jose@6.1.3: {} + jose@6.2.2: {} jpeg-js@0.4.4: {} @@ -16587,7 +16896,7 @@ snapshots: json-fixer@1.6.15: dependencies: - '@babel/runtime': 7.28.4 + '@babel/runtime': 7.29.2 chalk: 4.1.2 pegjs: 0.10.0 @@ -16609,8 +16918,6 @@ snapshots: dependencies: minimist: 1.2.8 - json5@2.2.3: {} - jsonc-parser@3.3.1: {} jsonfile@4.0.0: @@ -16685,21 +16992,19 @@ snapshots: kuler@2.0.0: {} - ky@1.11.0: {} + ky@1.14.3: {} lambda-local@2.2.0: dependencies: commander: 10.0.1 dotenv: 16.6.1 - winston: 3.18.1 - transitivePeerDependencies: - - supports-color + winston: 3.19.0 latest-version@9.0.0: dependencies: package-json: 10.0.1 - launch-editor@2.12.0: + launch-editor@2.13.2: dependencies: picocolors: 1.1.1 shell-quote: 1.8.3 @@ -16717,20 +17022,20 @@ snapshots: prelude-ls: 1.2.1 type-check: 0.4.0 - libsql@0.5.22: + libsql@0.5.29: dependencies: '@neon-rs/load': 0.0.4 detect-libc: 2.0.2 optionalDependencies: - '@libsql/darwin-arm64': 0.5.22 - '@libsql/darwin-x64': 0.5.22 - '@libsql/linux-arm-gnueabihf': 0.5.22 - '@libsql/linux-arm-musleabihf': 0.5.22 - '@libsql/linux-arm64-gnu': 0.5.22 - '@libsql/linux-arm64-musl': 0.5.22 - '@libsql/linux-x64-gnu': 0.5.22 - '@libsql/linux-x64-musl': 0.5.22 - '@libsql/win32-x64-msvc': 0.5.22 + '@libsql/darwin-arm64': 0.5.29 + '@libsql/darwin-x64': 0.5.29 + '@libsql/linux-arm-gnueabihf': 0.5.29 + '@libsql/linux-arm-musleabihf': 0.5.29 + '@libsql/linux-arm64-gnu': 0.5.29 + '@libsql/linux-arm64-musl': 0.5.29 + '@libsql/linux-x64-gnu': 0.5.29 + '@libsql/linux-x64-musl': 0.5.29 + '@libsql/win32-x64-msvc': 0.5.29 light-my-request@6.6.0: dependencies: @@ -16738,81 +17043,81 @@ snapshots: process-warning: 4.0.1 set-cookie-parser: 2.7.2 - lightningcss-android-arm64@1.30.2: + lightningcss-android-arm64@1.32.0: optional: true - lightningcss-darwin-arm64@1.30.2: + lightningcss-darwin-arm64@1.32.0: optional: true - lightningcss-darwin-x64@1.30.2: + lightningcss-darwin-x64@1.32.0: optional: true - lightningcss-freebsd-x64@1.30.2: + lightningcss-freebsd-x64@1.32.0: optional: true - lightningcss-linux-arm-gnueabihf@1.30.2: + lightningcss-linux-arm-gnueabihf@1.32.0: optional: true - lightningcss-linux-arm64-gnu@1.30.2: + lightningcss-linux-arm64-gnu@1.32.0: optional: true - lightningcss-linux-arm64-musl@1.30.2: + lightningcss-linux-arm64-musl@1.32.0: optional: true - lightningcss-linux-x64-gnu@1.30.2: + lightningcss-linux-x64-gnu@1.32.0: optional: true - lightningcss-linux-x64-musl@1.30.2: + lightningcss-linux-x64-musl@1.32.0: optional: true - lightningcss-win32-arm64-msvc@1.30.2: + lightningcss-win32-arm64-msvc@1.32.0: optional: true - lightningcss-win32-x64-msvc@1.30.2: + lightningcss-win32-x64-msvc@1.32.0: optional: true - lightningcss@1.30.2: + lightningcss@1.32.0: dependencies: detect-libc: 2.1.2 optionalDependencies: - lightningcss-android-arm64: 1.30.2 - lightningcss-darwin-arm64: 1.30.2 - lightningcss-darwin-x64: 1.30.2 - lightningcss-freebsd-x64: 1.30.2 - lightningcss-linux-arm-gnueabihf: 1.30.2 - lightningcss-linux-arm64-gnu: 1.30.2 - lightningcss-linux-arm64-musl: 1.30.2 - lightningcss-linux-x64-gnu: 1.30.2 - lightningcss-linux-x64-musl: 1.30.2 - lightningcss-win32-arm64-msvc: 1.30.2 - lightningcss-win32-x64-msvc: 1.30.2 + lightningcss-android-arm64: 1.32.0 + lightningcss-darwin-arm64: 1.32.0 + lightningcss-darwin-x64: 1.32.0 + lightningcss-freebsd-x64: 1.32.0 + lightningcss-linux-arm-gnueabihf: 1.32.0 + lightningcss-linux-arm64-gnu: 1.32.0 + lightningcss-linux-arm64-musl: 1.32.0 + lightningcss-linux-x64-gnu: 1.32.0 + lightningcss-linux-x64-musl: 1.32.0 + lightningcss-win32-arm64-msvc: 1.32.0 + lightningcss-win32-x64-msvc: 1.32.0 lines-and-columns@1.2.4: {} listhen@1.9.0: dependencies: - '@parcel/watcher': 2.5.1 - '@parcel/watcher-wasm': 2.5.1 + '@parcel/watcher': 2.5.6 + '@parcel/watcher-wasm': 2.5.6 citty: 0.1.6 clipboardy: 4.0.0 consola: 3.4.2 crossws: 0.3.5 defu: 6.1.4 get-port-please: 3.2.0 - h3: 1.15.4 + h3: 1.15.10 http-shutdown: 1.2.2 jiti: 2.6.1 - mlly: 1.8.0 - node-forge: 1.3.1 + mlly: 1.8.2 + node-forge: 1.4.0 pathe: 1.1.2 std-env: 3.10.0 - ufo: 1.6.2 + ufo: 1.6.3 untun: 0.1.3 uqr: 0.1.2 local-pkg@1.1.2: dependencies: - mlly: 1.8.0 + mlly: 1.8.2 pkg-types: 2.3.0 quansync: 0.2.11 @@ -16902,10 +17207,6 @@ snapshots: lru-cache@11.2.7: {} - lru-cache@5.1.1: - dependencies: - yallist: 3.1.1 - lru-cache@6.0.0: dependencies: yallist: 4.0.0 @@ -16918,10 +17219,10 @@ snapshots: dependencies: estree-walker: 3.0.3 magic-string: 0.30.21 - mlly: 1.8.0 + mlly: 1.8.2 regexp-tree: 0.1.27 type-level-regexp: 0.1.17 - ufo: 1.6.2 + ufo: 1.6.3 unplugin: 2.3.11 magic-string@0.25.9: @@ -16934,7 +17235,7 @@ snapshots: magicast@0.5.2: dependencies: - '@babel/parser': 7.29.0 + '@babel/parser': 7.29.2 '@babel/types': 7.29.0 source-map-js: 1.2.1 @@ -16969,14 +17270,14 @@ snapshots: dependencies: '@types/mdast': 4.0.4 escape-string-regexp: 5.0.0 - unist-util-is: 6.0.0 - unist-util-visit-parents: 6.0.1 + unist-util-is: 6.0.1 + unist-util-visit-parents: 6.0.2 - mdast-util-from-markdown@2.0.2: + mdast-util-from-markdown@2.0.3: dependencies: '@types/mdast': 4.0.4 '@types/unist': 3.0.3 - decode-named-character-reference: 1.2.0 + decode-named-character-reference: 1.3.0 devlop: 1.1.0 mdast-util-to-string: 4.0.0 micromark: 4.0.2 @@ -16994,7 +17295,7 @@ snapshots: '@types/mdast': 4.0.4 devlop: 1.1.0 escape-string-regexp: 5.0.0 - mdast-util-from-markdown: 2.0.2 + mdast-util-from-markdown: 2.0.3 mdast-util-to-markdown: 2.1.2 micromark-extension-frontmatter: 2.0.0 transitivePeerDependencies: @@ -17012,7 +17313,7 @@ snapshots: dependencies: '@types/mdast': 4.0.4 devlop: 1.1.0 - mdast-util-from-markdown: 2.0.2 + mdast-util-from-markdown: 2.0.3 mdast-util-to-markdown: 2.1.2 micromark-util-normalize-identifier: 2.0.1 transitivePeerDependencies: @@ -17021,7 +17322,7 @@ snapshots: mdast-util-gfm-strikethrough@2.0.0: dependencies: '@types/mdast': 4.0.4 - mdast-util-from-markdown: 2.0.2 + mdast-util-from-markdown: 2.0.3 mdast-util-to-markdown: 2.1.2 transitivePeerDependencies: - supports-color @@ -17031,7 +17332,7 @@ snapshots: '@types/mdast': 4.0.4 devlop: 1.1.0 markdown-table: 3.0.4 - mdast-util-from-markdown: 2.0.2 + mdast-util-from-markdown: 2.0.3 mdast-util-to-markdown: 2.1.2 transitivePeerDependencies: - supports-color @@ -17040,14 +17341,14 @@ snapshots: dependencies: '@types/mdast': 4.0.4 devlop: 1.1.0 - mdast-util-from-markdown: 2.0.2 + mdast-util-from-markdown: 2.0.3 mdast-util-to-markdown: 2.1.2 transitivePeerDependencies: - supports-color mdast-util-gfm@3.1.0: dependencies: - mdast-util-from-markdown: 2.0.2 + mdast-util-from-markdown: 2.0.3 mdast-util-gfm-autolink-literal: 2.0.1 mdast-util-gfm-footnote: 2.1.0 mdast-util-gfm-strikethrough: 2.0.0 @@ -17063,7 +17364,7 @@ snapshots: '@types/hast': 3.0.4 '@types/mdast': 4.0.4 devlop: 1.1.0 - mdast-util-from-markdown: 2.0.2 + mdast-util-from-markdown: 2.0.3 mdast-util-to-markdown: 2.1.2 transitivePeerDependencies: - supports-color @@ -17076,7 +17377,7 @@ snapshots: '@types/unist': 3.0.3 ccount: 2.0.1 devlop: 1.1.0 - mdast-util-from-markdown: 2.0.2 + mdast-util-from-markdown: 2.0.3 mdast-util-to-markdown: 2.1.2 parse-entities: 4.0.2 stringify-entities: 4.0.4 @@ -17087,7 +17388,7 @@ snapshots: mdast-util-mdx@3.0.0: dependencies: - mdast-util-from-markdown: 2.0.2 + mdast-util-from-markdown: 2.0.3 mdast-util-mdx-expression: 2.0.1 mdast-util-mdx-jsx: 3.2.0 mdast-util-mdxjs-esm: 2.0.1 @@ -17101,7 +17402,7 @@ snapshots: '@types/hast': 3.0.4 '@types/mdast': 4.0.4 devlop: 1.1.0 - mdast-util-from-markdown: 2.0.2 + mdast-util-from-markdown: 2.0.3 mdast-util-to-markdown: 2.1.2 transitivePeerDependencies: - supports-color @@ -17109,7 +17410,7 @@ snapshots: mdast-util-phrasing@4.1.0: dependencies: '@types/mdast': 4.0.4 - unist-util-is: 6.0.0 + unist-util-is: 6.0.1 mdast-util-to-hast@13.2.1: dependencies: @@ -17120,7 +17421,7 @@ snapshots: micromark-util-sanitize-uri: 2.0.1 trim-lines: 3.0.1 unist-util-position: 5.0.0 - unist-util-visit: 5.0.0 + unist-util-visit: 5.1.0 vfile: 6.0.3 mdast-util-to-markdown@2.1.2: @@ -17132,7 +17433,7 @@ snapshots: mdast-util-to-string: 4.0.0 micromark-util-classify-character: 2.0.1 micromark-util-decode-string: 2.0.1 - unist-util-visit: 5.0.0 + unist-util-visit: 5.1.0 zwitch: 2.0.4 mdast-util-to-string@4.0.0: @@ -17143,7 +17444,7 @@ snapshots: mdn-data@2.0.30: {} - mdn-data@2.12.2: {} + mdn-data@2.27.1: {} media-typer@0.3.0: {} @@ -17154,7 +17455,7 @@ snapshots: '@jsonjoy.com/json-pack': 1.21.0(tslib@2.8.1) '@jsonjoy.com/util': 1.9.0(tslib@2.8.1) glob-to-regex.js: 1.2.0(tslib@2.8.1) - thingies: 2.5.0(tslib@2.8.1) + thingies: 2.6.0(tslib@2.8.1) tree-dump: 1.1.0(tslib@2.8.1) tslib: 2.8.1 @@ -17181,7 +17482,7 @@ snapshots: micromark-core-commonmark@2.0.3: dependencies: - decode-named-character-reference: 1.2.0 + decode-named-character-reference: 1.3.0 devlop: 1.1.0 micromark-factory-destination: 2.0.1 micromark-factory-label: 2.0.1 @@ -17384,7 +17685,7 @@ snapshots: micromark-util-decode-string@2.0.1: dependencies: - decode-named-character-reference: 1.2.0 + decode-named-character-reference: 1.3.0 micromark-util-character: 2.1.1 micromark-util-decode-numeric-character-reference: 2.0.2 micromark-util-symbol: 2.0.1 @@ -17430,9 +17731,9 @@ snapshots: micromark@4.0.2: dependencies: - '@types/debug': 4.1.12 + '@types/debug': 4.1.13 debug: 4.4.3(supports-color@10.2.2) - decode-named-character-reference: 1.2.0 + decode-named-character-reference: 1.3.0 devlop: 1.1.0 micromark-core-commonmark: 2.0.3 micromark-factory-space: 2.0.1 @@ -17453,7 +17754,7 @@ snapshots: micromatch@4.0.8: dependencies: braces: 3.0.3 - picomatch: 2.3.1 + picomatch: 2.3.2 mime-db@1.52.0: {} @@ -17496,17 +17797,17 @@ snapshots: minimatch@10.2.1: dependencies: - brace-expansion: 5.0.4 + brace-expansion: 5.0.5 minimatch@10.2.4: dependencies: - brace-expansion: 5.0.4 + brace-expansion: 5.0.5 - minimatch@3.1.2: + minimatch@3.1.5: dependencies: brace-expansion: 1.1.12 - minimatch@5.1.6: + minimatch@5.1.9: dependencies: brace-expansion: 2.0.2 @@ -17514,6 +17815,10 @@ snapshots: dependencies: brace-expansion: 2.0.2 + minimatch@9.0.9: + dependencies: + brace-expansion: 2.0.2 + minimist@1.2.8: {} minipass@7.1.3: {} @@ -17522,12 +17827,12 @@ snapshots: dependencies: minipass: 7.1.3 - mlly@1.8.0: + mlly@1.8.2: dependencies: acorn: 8.16.0 pathe: 2.0.3 pkg-types: 1.3.1 - ufo: 1.6.2 + ufo: 1.6.3 modern-tar@0.7.5: {} @@ -17567,12 +17872,12 @@ snapshots: mute-stream@0.0.8: {} - nan@2.23.0: + nan@2.26.2: optional: true nanoid@3.3.11: {} - nanoid@5.1.6: {} + nanoid@5.1.7: {} nanospinner@1.2.2: dependencies: @@ -17584,13 +17889,13 @@ snapshots: negotiator@1.0.0: {} - netlify-cli@24.5.1(@types/node@24.10.0)(picomatch@4.0.3)(rollup@4.59.0): + netlify-cli@24.5.1(@types/node@24.10.0)(picomatch@4.0.4)(rollup@4.59.0): dependencies: '@fastify/static': 9.0.0 '@netlify/ai': 0.4.1 '@netlify/api': 14.0.18 '@netlify/blobs': 10.7.0 - '@netlify/build': 35.11.1(@opentelemetry/api@1.8.0)(@types/node@24.10.0)(picomatch@4.0.3)(rollup@4.59.0) + '@netlify/build': 35.11.1(@opentelemetry/api@1.8.0)(@types/node@24.10.0)(picomatch@4.0.4)(rollup@4.59.0) '@netlify/build-info': 10.4.0 '@netlify/config': 24.4.4 '@netlify/dev': 4.16.4(rollup@4.59.0) @@ -17702,6 +18007,8 @@ snapshots: - '@vercel/functions' - '@vercel/kv' - aws4fetch + - bare-abort-controller + - bare-buffer - bufferutil - db0 - encoding @@ -17721,6 +18028,13 @@ snapshots: node-domexception@1.0.0: {} + node-exports-info@1.6.0: + dependencies: + array.prototype.flatmap: 1.3.3 + es-errors: 1.3.0 + object.entries: 1.1.9 + semver: 6.3.1 + node-fetch-native@1.6.7: {} node-fetch@2.7.0: @@ -17733,17 +18047,17 @@ snapshots: fetch-blob: 3.2.0 formdata-polyfill: 4.0.10 - node-forge@1.3.1: {} + node-forge@1.4.0: {} node-gyp-build@4.8.4: {} - node-mock-http@1.0.3: {} + node-mock-http@1.0.4: {} - node-releases@2.0.27: {} + node-releases@2.0.36: {} node-source-walk@7.0.1: dependencies: - '@babel/parser': 7.29.0 + '@babel/parser': 7.29.2 node-stream-zip@1.15.0: {} @@ -17804,7 +18118,7 @@ snapshots: dependencies: boolbase: 1.0.0 - oauth4webapi@3.8.3: {} + oauth4webapi@3.8.5: {} object-assign@4.1.1: {} @@ -17821,18 +18135,25 @@ snapshots: has-symbols: 1.1.0 object-keys: 1.1.1 + object.entries@1.1.9: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-object-atoms: 1.1.1 + object.fromentries@2.0.8: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.24.1 es-object-atoms: 1.1.1 object.groupby@1.0.3: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.24.1 object.values@1.2.1: dependencies: @@ -17843,11 +18164,11 @@ snapshots: obug@2.1.1: {} - ofetch@1.4.1: + ofetch@1.5.1: dependencies: destr: 2.0.5 node-fetch-native: 1.6.7 - ufo: 1.6.2 + ufo: 1.6.3 ohash@2.0.11: {} @@ -17883,7 +18204,7 @@ snapshots: oniguruma-parser@0.12.1: {} - oniguruma-to-es@4.3.4: + oniguruma-to-es@4.3.5: dependencies: oniguruma-parser: 0.12.1 regex: 6.1.0 @@ -17908,7 +18229,7 @@ snapshots: openai@3.3.0: dependencies: axios: 0.26.1 - form-data: 4.0.4 + form-data: 4.0.5 transitivePeerDependencies: - debug @@ -17956,11 +18277,11 @@ snapshots: own-keys@1.0.1: dependencies: - get-intrinsic: 1.3.1 + get-intrinsic: 1.3.0 object-keys: 1.1.1 safe-push-apply: 1.0.0 - oxc-minify@0.115.0: + oxc-minify@0.115.0(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1): optionalDependencies: '@oxc-minify/binding-android-arm-eabi': 0.115.0 '@oxc-minify/binding-android-arm64': 0.115.0 @@ -17978,12 +18299,15 @@ snapshots: '@oxc-minify/binding-linux-x64-gnu': 0.115.0 '@oxc-minify/binding-linux-x64-musl': 0.115.0 '@oxc-minify/binding-openharmony-arm64': 0.115.0 - '@oxc-minify/binding-wasm32-wasi': 0.115.0 + '@oxc-minify/binding-wasm32-wasi': 0.115.0(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1) '@oxc-minify/binding-win32-arm64-msvc': 0.115.0 '@oxc-minify/binding-win32-ia32-msvc': 0.115.0 '@oxc-minify/binding-win32-x64-msvc': 0.115.0 + transitivePeerDependencies: + - '@emnapi/core' + - '@emnapi/runtime' - oxc-parser@0.115.0: + oxc-parser@0.115.0(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1): dependencies: '@oxc-project/types': 0.115.0 optionalDependencies: @@ -18003,12 +18327,15 @@ snapshots: '@oxc-parser/binding-linux-x64-gnu': 0.115.0 '@oxc-parser/binding-linux-x64-musl': 0.115.0 '@oxc-parser/binding-openharmony-arm64': 0.115.0 - '@oxc-parser/binding-wasm32-wasi': 0.115.0 + '@oxc-parser/binding-wasm32-wasi': 0.115.0(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1) '@oxc-parser/binding-win32-arm64-msvc': 0.115.0 '@oxc-parser/binding-win32-ia32-msvc': 0.115.0 '@oxc-parser/binding-win32-x64-msvc': 0.115.0 + transitivePeerDependencies: + - '@emnapi/core' + - '@emnapi/runtime' - oxc-parser@0.82.3: + oxc-parser@0.82.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1): dependencies: '@oxc-project/types': 0.82.3 optionalDependencies: @@ -18024,11 +18351,14 @@ snapshots: '@oxc-parser/binding-linux-s390x-gnu': 0.82.3 '@oxc-parser/binding-linux-x64-gnu': 0.82.3 '@oxc-parser/binding-linux-x64-musl': 0.82.3 - '@oxc-parser/binding-wasm32-wasi': 0.82.3 + '@oxc-parser/binding-wasm32-wasi': 0.82.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1) '@oxc-parser/binding-win32-arm64-msvc': 0.82.3 '@oxc-parser/binding-win32-x64-msvc': 0.82.3 + transitivePeerDependencies: + - '@emnapi/core' + - '@emnapi/runtime' - oxc-transform@0.115.0: + oxc-transform@0.115.0(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1): optionalDependencies: '@oxc-transform/binding-android-arm-eabi': 0.115.0 '@oxc-transform/binding-android-arm64': 0.115.0 @@ -18046,15 +18376,18 @@ snapshots: '@oxc-transform/binding-linux-x64-gnu': 0.115.0 '@oxc-transform/binding-linux-x64-musl': 0.115.0 '@oxc-transform/binding-openharmony-arm64': 0.115.0 - '@oxc-transform/binding-wasm32-wasi': 0.115.0 + '@oxc-transform/binding-wasm32-wasi': 0.115.0(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1) '@oxc-transform/binding-win32-arm64-msvc': 0.115.0 '@oxc-transform/binding-win32-ia32-msvc': 0.115.0 '@oxc-transform/binding-win32-x64-msvc': 0.115.0 + transitivePeerDependencies: + - '@emnapi/core' + - '@emnapi/runtime' - oxc-walker@0.7.0(oxc-parser@0.115.0): + oxc-walker@0.7.0(oxc-parser@0.115.0(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)): dependencies: magic-regexp: 0.10.0 - oxc-parser: 0.115.0 + oxc-parser: 0.115.0(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1) p-event@6.0.1: dependencies: @@ -18078,7 +18411,7 @@ snapshots: p-limit@4.0.0: dependencies: - yocto-queue: 1.2.1 + yocto-queue: 1.2.2 p-locate@4.1.0: dependencies: @@ -18101,7 +18434,7 @@ snapshots: p-retry@6.2.1: dependencies: '@types/retry': 0.12.2 - is-network-error: 1.3.0 + is-network-error: 1.3.1 retry: 0.13.1 p-timeout@6.1.4: {} @@ -18114,7 +18447,7 @@ snapshots: p-wait-for@6.0.0: {} - package-directory@8.1.0: + package-directory@8.2.0: dependencies: find-up-simple: 1.0.1 @@ -18122,8 +18455,8 @@ snapshots: package-json@10.0.1: dependencies: - ky: 1.11.0 - registry-auth-token: 5.1.0 + ky: 1.14.3 + registry-auth-token: 5.1.1 registry-url: 6.0.1 semver: 7.7.3 @@ -18148,7 +18481,7 @@ snapshots: '@types/unist': 2.0.11 character-entities-legacy: 3.0.0 character-reference-invalid: 2.0.1 - decode-named-character-reference: 1.2.0 + decode-named-character-reference: 1.3.0 is-alphanumerical: 2.0.1 is-decimal: 2.0.1 is-hexadecimal: 2.0.1 @@ -18164,14 +18497,14 @@ snapshots: parse-json@5.2.0: dependencies: - '@babel/code-frame': 7.27.1 + '@babel/code-frame': 7.29.0 error-ex: 1.3.4 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 parse-json@8.3.0: dependencies: - '@babel/code-frame': 7.27.1 + '@babel/code-frame': 7.29.0 index-to-position: 1.2.0 type-fest: 4.41.0 @@ -18219,7 +18552,7 @@ snapshots: pend@1.2.0: {} - perfect-debounce@2.0.0: {} + perfect-debounce@2.1.0: {} pg-cloudflare@1.3.0: optional: true @@ -18260,9 +18593,9 @@ snapshots: picocolors@1.1.1: {} - picomatch@2.3.1: {} + picomatch@2.3.2: {} - picomatch@4.0.3: {} + picomatch@4.0.4: {} picoquery@2.5.0: {} @@ -18274,7 +18607,7 @@ snapshots: dependencies: split2: 4.2.0 - pino-std-serializers@7.0.0: {} + pino-std-serializers@7.1.0: {} pino@10.3.1: dependencies: @@ -18282,24 +18615,24 @@ snapshots: atomic-sleep: 1.0.0 on-exit-leak-free: 2.1.2 pino-abstract-transport: 3.0.0 - pino-std-serializers: 7.0.0 + pino-std-serializers: 7.1.0 process-warning: 5.0.0 quick-format-unescaped: 4.0.4 real-require: 0.2.0 safe-stable-stringify: 2.5.0 - sonic-boom: 4.2.0 + sonic-boom: 4.2.1 thread-stream: 4.0.0 pkg-types@1.3.1: dependencies: confbox: 0.1.8 - mlly: 1.8.0 + mlly: 1.8.2 pathe: 2.0.3 pkg-types@2.3.0: dependencies: - confbox: 0.2.2 - exsolve: 1.0.7 + confbox: 0.2.4 + exsolve: 1.0.8 pathe: 2.0.3 playwright-core@1.57.0: {} @@ -18327,6 +18660,12 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 + postcss@8.5.8: + dependencies: + nanoid: 3.3.11 + picocolors: 1.1.1 + source-map-js: 1.2.1 + postgres-array@2.0.0: {} postgres-bytea@1.0.1: {} @@ -18350,7 +18689,7 @@ snapshots: '@dependents/detective-less': 5.0.1 commander: 12.1.0 detective-amd: 6.0.1 - detective-cjs: 6.0.1 + detective-cjs: 6.1.0 detective-es6: 5.0.1 detective-postcss: 7.0.1(postcss@8.5.6) detective-sass: 6.0.1 @@ -18372,8 +18711,8 @@ snapshots: prettier-plugin-jsdoc@1.8.0(prettier@3.7.4): dependencies: binary-searching: 2.0.5 - comment-parser: 1.4.1 - mdast-util-from-markdown: 2.0.2 + comment-parser: 1.4.5 + mdast-util-from-markdown: 2.0.3 prettier: 3.7.4 transitivePeerDependencies: - supports-color @@ -18398,7 +18737,7 @@ snapshots: ignore: 7.0.5 mri: 1.2.0 picocolors: 1.1.1 - picomatch: 4.0.3 + picomatch: 4.0.4 prettier: 3.7.4 tinyexec: 0.3.2 tslib: 2.8.1 @@ -18455,7 +18794,7 @@ snapshots: end-of-stream: 1.4.5 once: 1.4.0 - pump@3.0.3: + pump@3.0.4: dependencies: end-of-stream: 1.4.5 once: 1.4.0 @@ -18468,11 +18807,11 @@ snapshots: pure-rand@6.1.0: {} - qs@6.13.0: + qs@6.14.2: dependencies: side-channel: 1.1.0 - qs@6.14.1: + qs@6.15.0: dependencies: side-channel: 1.1.0 @@ -18496,10 +18835,10 @@ snapshots: range-parser@1.2.1: {} - raw-body@2.5.2: + raw-body@2.5.3: dependencies: bytes: 3.1.2 - http-errors: 2.0.0 + http-errors: 2.0.1 iconv-lite: 0.4.24 unpipe: 1.0.0 @@ -18524,11 +18863,11 @@ snapshots: react-is@16.13.1: {} - react-is@19.1.1: {} + react-is@19.2.4: {} react-transition-group@4.4.5(react-dom@19.2.3(react@19.2.3))(react@19.2.3): dependencies: - '@babel/runtime': 7.28.4 + '@babel/runtime': 7.29.2 dom-helpers: 5.2.1 loose-envify: 1.4.0 prop-types: 15.8.1 @@ -18603,10 +18942,12 @@ snapshots: readdir-glob@1.1.3: dependencies: - minimatch: 5.1.6 + minimatch: 5.1.9 readdirp@4.1.2: {} + readdirp@5.0.0: {} + real-require@0.2.0: {} recma-build-jsx@1.0.0: @@ -18641,16 +18982,16 @@ snapshots: redent@4.0.0: dependencies: indent-string: 5.0.0 - strip-indent: 4.1.0 + strip-indent: 4.1.1 reflect.getprototypeof@1.0.10: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.24.1 es-errors: 1.3.0 es-object-atoms: 1.1.1 - get-intrinsic: 1.3.1 + get-intrinsic: 1.3.0 get-proto: 1.0.1 which-builtin-type: 1.2.1 @@ -18682,9 +19023,9 @@ snapshots: gopd: 1.2.0 set-function-name: 2.0.2 - registry-auth-token@5.1.0: + registry-auth-token@5.1.1: dependencies: - '@pnpm/npm-conf': 2.3.1 + '@pnpm/npm-conf': 3.0.2 registry-url@6.0.1: dependencies: @@ -18697,7 +19038,7 @@ snapshots: hast-util-heading-rank: 3.0.0 hast-util-is-element: 3.0.0 unified: 11.0.5 - unist-util-visit: 5.0.0 + unist-util-visit: 5.1.0 rehype-recma@1.0.0: dependencies: @@ -18737,7 +19078,7 @@ snapshots: remark-parse@11.0.0: dependencies: '@types/mdast': 4.0.4 - mdast-util-from-markdown: 2.0.2 + mdast-util-from-markdown: 2.0.3 micromark-util-types: 2.0.2 unified: 11.0.5 transitivePeerDependencies: @@ -18800,9 +19141,12 @@ snapshots: path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - resolve@2.0.0-next.5: + resolve@2.0.0-next.6: dependencies: + es-errors: 1.3.0 is-core-module: 2.16.1 + node-exports-info: 1.6.0 + object-keys: 1.1.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 @@ -18824,6 +19168,27 @@ snapshots: rfdc@1.4.1: {} + rolldown@1.0.0-rc.13: + dependencies: + '@oxc-project/types': 0.123.0 + '@rolldown/pluginutils': 1.0.0-rc.13 + optionalDependencies: + '@rolldown/binding-android-arm64': 1.0.0-rc.13 + '@rolldown/binding-darwin-arm64': 1.0.0-rc.13 + '@rolldown/binding-darwin-x64': 1.0.0-rc.13 + '@rolldown/binding-freebsd-x64': 1.0.0-rc.13 + '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-rc.13 + '@rolldown/binding-linux-arm64-gnu': 1.0.0-rc.13 + '@rolldown/binding-linux-arm64-musl': 1.0.0-rc.13 + '@rolldown/binding-linux-ppc64-gnu': 1.0.0-rc.13 + '@rolldown/binding-linux-s390x-gnu': 1.0.0-rc.13 + '@rolldown/binding-linux-x64-gnu': 1.0.0-rc.13 + '@rolldown/binding-linux-x64-musl': 1.0.0-rc.13 + '@rolldown/binding-openharmony-arm64': 1.0.0-rc.13 + '@rolldown/binding-wasm32-wasi': 1.0.0-rc.13 + '@rolldown/binding-win32-arm64-msvc': 1.0.0-rc.13 + '@rolldown/binding-win32-x64-msvc': 1.0.0-rc.13 + rollup-plugin-inject@3.0.2: dependencies: estree-walker: 0.6.1 @@ -18903,7 +19268,7 @@ snapshots: dependencies: call-bind: 1.0.8 call-bound: 1.0.4 - get-intrinsic: 1.3.1 + get-intrinsic: 1.3.0 has-symbols: 1.1.0 isarray: 2.0.5 @@ -18932,7 +19297,7 @@ snapshots: safer-buffer@2.1.2: {} - sax@1.5.0: {} + sax@1.6.0: {} scheduler@0.27.0: {} @@ -18953,21 +19318,21 @@ snapshots: semver@7.7.3: {} - send@0.19.0: + send@0.19.2: dependencies: debug: 2.6.9 depd: 2.0.0 destroy: 1.2.0 - encodeurl: 1.0.2 + encodeurl: 2.0.0 escape-html: 1.0.3 etag: 1.8.1 fresh: 0.5.2 - http-errors: 2.0.0 + http-errors: 2.0.1 mime: 1.6.0 ms: 2.1.3 on-finished: 2.4.1 range-parser: 1.2.1 - statuses: 2.0.1 + statuses: 2.0.2 transitivePeerDependencies: - supports-color @@ -18987,12 +19352,12 @@ snapshots: transitivePeerDependencies: - supports-color - serve-static@1.16.2: + serve-static@1.16.3: dependencies: encodeurl: 2.0.0 escape-html: 1.0.3 parseurl: 1.3.3 - send: 0.19.0 + send: 0.19.2 transitivePeerDependencies: - supports-color @@ -19018,7 +19383,7 @@ snapshots: define-data-property: 1.1.4 es-errors: 1.3.0 function-bind: 1.1.2 - get-intrinsic: 1.3.1 + get-intrinsic: 1.3.0 gopd: 1.2.0 has-property-descriptors: 1.0.2 @@ -19066,7 +19431,7 @@ snapshots: sharp@0.34.5: dependencies: - '@img/colour': 1.0.0 + '@img/colour': 1.1.0 detect-libc: 2.1.2 semver: 7.7.3 optionalDependencies: @@ -19123,14 +19488,14 @@ snapshots: dependencies: call-bound: 1.0.4 es-errors: 1.3.0 - get-intrinsic: 1.3.1 + get-intrinsic: 1.3.0 object-inspect: 1.13.4 side-channel-weakmap@1.0.2: dependencies: call-bound: 1.0.4 es-errors: 1.3.0 - get-intrinsic: 1.3.1 + get-intrinsic: 1.3.0 object-inspect: 1.13.4 side-channel-map: 1.0.1 @@ -19178,7 +19543,7 @@ snapshots: snoop@1.0.4: {} - sonic-boom@4.2.0: + sonic-boom@4.2.1: dependencies: atomic-sleep: 1.0.0 @@ -19207,16 +19572,16 @@ snapshots: spdx-correct@3.2.0: dependencies: spdx-expression-parse: 3.0.1 - spdx-license-ids: 3.0.22 + spdx-license-ids: 3.0.23 spdx-exceptions@2.5.0: {} spdx-expression-parse@3.0.1: dependencies: spdx-exceptions: 2.5.0 - spdx-license-ids: 3.0.22 + spdx-license-ids: 3.0.23 - spdx-license-ids@3.0.22: {} + spdx-license-ids@3.0.23: {} split2@1.1.1: dependencies: @@ -19240,7 +19605,7 @@ snapshots: stackframe@1.3.4: {} - stacktracey@2.1.8: + stacktracey@2.2.0: dependencies: as-table: 1.0.55 get-source: 2.0.12 @@ -19262,12 +19627,13 @@ snapshots: stoppable@1.1.0: {} - streamx@2.23.0: + streamx@2.25.0: dependencies: events-universal: 1.0.1 fast-fifo: 1.3.2 - text-decoder: 1.2.3 + text-decoder: 1.2.7 transitivePeerDependencies: + - bare-abort-controller - react-native-b4a string-argv@0.3.2: {} @@ -19286,7 +19652,7 @@ snapshots: string-width@7.2.0: dependencies: - emoji-regex: 10.5.0 + emoji-regex: 10.6.0 get-east-asian-width: 1.5.0 strip-ansi: 7.2.0 @@ -19301,7 +19667,7 @@ snapshots: call-bound: 1.0.4 define-data-property: 1.1.4 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.24.1 es-object-atoms: 1.1.1 has-property-descriptors: 1.0.2 @@ -19351,21 +19717,25 @@ snapshots: strip-final-newline@4.0.0: {} - strip-indent@4.1.0: {} + strip-indent@4.1.1: {} strip-json-comments@2.0.1: {} strip-json-comments@3.1.1: {} - stubborn-fs@1.2.5: {} + stubborn-fs@2.0.0: + dependencies: + stubborn-utils: 1.0.2 + + stubborn-utils@1.0.2: {} - style-to-js@1.1.17: + style-to-js@1.1.21: dependencies: - style-to-object: 1.0.9 + style-to-object: 1.0.14 - style-to-object@1.0.9: + style-to-object@1.0.14: dependencies: - inline-style-parser: 0.2.4 + inline-style-parser: 0.2.7 stylis@4.2.0: {} @@ -19403,25 +19773,25 @@ snapshots: css-what: 6.2.2 csso: 5.0.5 picocolors: 1.1.1 - sax: 1.5.0 + sax: 1.6.0 - svgo@4.0.0: + svgo@4.0.1: dependencies: commander: 11.1.0 css-select: 5.2.2 - css-tree: 3.1.0 + css-tree: 3.2.1 css-what: 6.2.2 csso: 5.0.5 picocolors: 1.1.1 - sax: 1.5.0 + sax: 1.6.0 syncpack@13.0.4(typescript@5.9.3): dependencies: chalk: 5.6.2 chalk-template: 1.1.2 commander: 13.1.0 - cosmiconfig: 9.0.0(typescript@5.9.3) - effect: 3.18.0 + cosmiconfig: 9.0.1(typescript@5.9.3) + effect: 3.21.0 enquirer: 2.4.1 fast-check: 3.23.2 globby: 14.1.0 @@ -19439,20 +19809,25 @@ snapshots: system-architecture@0.1.0: {} - tabbable@6.2.0: {} + tabbable@6.4.0: {} tagged-tag@1.0.0: {} - tailwindcss@4.1.18: {} + tailwindcss@4.2.1: {} - tapable@2.3.0: {} + tailwindcss@4.2.2: {} - tar-stream@3.1.7: + tapable@2.3.2: {} + + tar-stream@3.1.8: dependencies: - b4a: 1.7.3 + b4a: 1.8.0 + bare-fs: 4.5.6 fast-fifo: 1.3.2 - streamx: 2.23.0 + streamx: 2.25.0 transitivePeerDependencies: + - bare-abort-controller + - bare-buffer - react-native-b4a tar@7.5.13: @@ -19463,6 +19838,13 @@ snapshots: minizlib: 3.1.0 yallist: 5.0.0 + teex@1.0.1: + dependencies: + streamx: 2.25.0 + transitivePeerDependencies: + - bare-abort-controller + - react-native-b4a + temporal-polyfill@0.3.2: dependencies: temporal-spec: 0.3.1 @@ -19488,15 +19870,15 @@ snapshots: commander: 2.20.3 source-map-support: 0.5.21 - text-decoder@1.2.3: + text-decoder@1.2.7: dependencies: - b4a: 1.7.3 + b4a: 1.8.0 transitivePeerDependencies: - react-native-b4a text-hex@1.0.0: {} - thingies@2.5.0(tslib@2.8.1): + thingies@2.6.0(tslib@2.8.1): dependencies: tslib: 2.8.1 @@ -19521,14 +19903,14 @@ snapshots: tinyexec@0.3.2: {} - tinyexec@1.0.2: {} + tinyexec@1.0.4: {} tinyglobby@0.2.15: dependencies: - fdir: 6.5.0(picomatch@4.0.3) - picomatch: 4.0.3 + fdir: 6.5.0(picomatch@4.0.4) + picomatch: 4.0.4 - tinyrainbow@3.0.3: {} + tinyrainbow@3.1.0: {} tmp-promise@3.0.3: dependencies: @@ -19570,7 +19952,7 @@ snapshots: trough@2.2.0: {} - ts-api-utils@2.4.0(typescript@5.9.3): + ts-api-utils@2.5.0(typescript@5.9.3): dependencies: typescript: 5.9.3 @@ -19582,16 +19964,16 @@ snapshots: ts-node@10.9.2(@types/node@24.10.0)(typescript@5.9.3): dependencies: '@cspotcode/source-map-support': 0.8.1 - '@tsconfig/node10': 1.0.11 + '@tsconfig/node10': 1.0.12 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 '@types/node': 24.10.0 acorn: 8.16.0 - acorn-walk: 8.3.4 + acorn-walk: 8.3.5 arg: 4.1.3 create-require: 1.1.1 - diff: 4.0.2 + diff: 4.0.4 make-error: 1.3.6 typescript: 5.9.3 v8-compile-cache-lib: 3.0.1 @@ -19618,6 +20000,13 @@ snapshots: dependencies: esbuild: 0.15.18 + tsx@4.21.0: + dependencies: + esbuild: 0.27.2 + get-tsconfig: 4.13.7 + optionalDependencies: + fsevents: 2.3.3 + type-check@0.4.0: dependencies: prelude-ls: 1.2.1 @@ -19680,7 +20069,7 @@ snapshots: dependencies: '@typescript-eslint/eslint-plugin': 8.56.1(@typescript-eslint/parser@8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) '@typescript-eslint/parser': 8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/typescript-estree': 8.56.1(supports-color@10.2.2)(typescript@5.9.3) + '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.9.3) '@typescript-eslint/utils': 8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) eslint: 10.0.2(jiti@2.6.1) typescript: 5.9.3 @@ -19689,7 +20078,7 @@ snapshots: typescript@5.9.3: {} - ufo@1.6.2: {} + ufo@1.6.3: {} uid-safe@2.1.5: dependencies: @@ -19712,15 +20101,15 @@ snapshots: dependencies: '@fastify/busboy': 2.1.1 - undici@6.21.3: {} + undici@6.24.1: {} unenv@2.0.0-rc.14: dependencies: defu: 6.1.4 - exsolve: 1.0.7 + exsolve: 1.0.8 ohash: 2.0.11 pathe: 2.0.3 - ufo: 1.6.2 + ufo: 1.6.3 unicorn-magic@0.1.0: {} @@ -19738,7 +20127,7 @@ snapshots: trough: 2.2.0 vfile: 6.0.3 - unist-util-is@6.0.0: + unist-util-is@6.0.1: dependencies: '@types/unist': 3.0.3 @@ -19754,16 +20143,16 @@ snapshots: dependencies: '@types/unist': 3.0.3 - unist-util-visit-parents@6.0.1: + unist-util-visit-parents@6.0.2: dependencies: '@types/unist': 3.0.3 - unist-util-is: 6.0.0 + unist-util-is: 6.0.1 - unist-util-visit@5.0.0: + unist-util-visit@5.1.0: dependencies: '@types/unist': 3.0.3 - unist-util-is: 6.0.0 - unist-util-visit-parents: 6.0.1 + unist-util-is: 6.0.1 + unist-util-visit-parents: 6.0.2 universal-user-agent@6.0.1: {} @@ -19776,7 +20165,7 @@ snapshots: unix-dgram@2.0.7: dependencies: bindings: 1.5.0 - nan: 2.23.0 + nan: 2.26.2 optional: true unixify@1.0.0: @@ -19790,38 +20179,38 @@ snapshots: unplugin-utils@0.3.1: dependencies: pathe: 2.0.3 - picomatch: 4.0.3 + picomatch: 4.0.4 unplugin@2.3.11: dependencies: '@jridgewell/remapping': 2.3.5 acorn: 8.16.0 - picomatch: 4.0.3 + picomatch: 4.0.4 webpack-virtual-modules: 0.6.2 - unstorage@1.17.1(@netlify/blobs@10.7.0): + unstorage@1.17.4(@netlify/blobs@10.7.0): dependencies: anymatch: 3.1.3 - chokidar: 4.0.3 + chokidar: 5.0.0 destr: 2.0.5 - h3: 1.15.4 - lru-cache: 10.4.3 + h3: 1.15.10 + lru-cache: 11.2.7 node-fetch-native: 1.6.7 - ofetch: 1.4.1 - ufo: 1.6.2 + ofetch: 1.5.1 + ufo: 1.6.3 optionalDependencies: '@netlify/blobs': 10.7.0 - unstorage@1.17.1(@netlify/blobs@10.7.4): + unstorage@1.17.4(@netlify/blobs@10.7.4): dependencies: anymatch: 3.1.3 - chokidar: 4.0.3 + chokidar: 5.0.0 destr: 2.0.5 - h3: 1.15.4 - lru-cache: 10.4.3 + h3: 1.15.10 + lru-cache: 11.2.7 node-fetch-native: 1.6.7 - ofetch: 1.4.1 - ufo: 1.6.2 + ofetch: 1.5.1 + ufo: 1.6.3 optionalDependencies: '@netlify/blobs': 10.7.4(supports-color@10.2.2) @@ -19862,7 +20251,7 @@ snapshots: urlpattern-polyfill@8.0.2: {} - use-sync-external-store@1.5.0(react@19.2.3): + use-sync-external-store@1.6.0(react@19.2.3): dependencies: react: 19.2.3 @@ -19879,7 +20268,7 @@ snapshots: uvu@0.5.6: dependencies: dequal: 2.0.3 - diff: 5.2.0 + diff: 5.2.2 kleur: 4.1.5 sade: 1.8.1 @@ -19910,34 +20299,43 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.3 - vite-dev-rpc@1.1.0(vite@7.3.1(@types/node@24.10.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(yaml@2.8.2)): + vite-dev-rpc@1.1.0(vite@8.0.6(@types/node@24.10.0)(esbuild@0.27.3)(jiti@2.6.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.3)): dependencies: birpc: 2.9.0 - vite: 7.3.1(@types/node@24.10.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(yaml@2.8.2) - vite-hot-client: 2.1.0(vite@7.3.1(@types/node@24.10.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(yaml@2.8.2)) + vite: 8.0.6(@types/node@24.10.0)(esbuild@0.27.3)(jiti@2.6.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.3) + vite-hot-client: 2.1.0(vite@8.0.6(@types/node@24.10.0)(esbuild@0.27.3)(jiti@2.6.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.3)) - vite-hot-client@0.2.4(vite@7.3.1(@types/node@24.10.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(yaml@2.8.2)): + vite-hot-client@0.2.4(vite@8.0.6(@types/node@24.10.0)(esbuild@0.27.3)(jiti@2.6.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.3)): dependencies: - vite: 7.3.1(@types/node@24.10.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(yaml@2.8.2) + vite: 8.0.6(@types/node@24.10.0)(esbuild@0.27.3)(jiti@2.6.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.3) - vite-hot-client@2.1.0(vite@7.3.1(@types/node@24.10.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(yaml@2.8.2)): + vite-hot-client@2.1.0(vite@8.0.6(@types/node@24.10.0)(esbuild@0.27.3)(jiti@2.6.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.3)): dependencies: - vite: 7.3.1(@types/node@24.10.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(yaml@2.8.2) + vite: 8.0.6(@types/node@24.10.0)(esbuild@0.27.3)(jiti@2.6.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.3) - vite-imagetools@10.0.0(rollup@4.59.0)(vite@7.3.1(@types/node@24.10.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(yaml@2.8.2)): + vite-imagetools@10.0.0(rollup@4.59.0)(vite@8.0.6(@types/node@24.10.0)(esbuild@0.27.2)(jiti@2.6.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.3)): dependencies: '@rollup/pluginutils': 5.3.0(rollup@4.59.0) imagetools-core: 9.1.0 sharp: 0.34.5 - vite: 7.3.1(@types/node@24.10.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(yaml@2.8.2) + vite: 8.0.6(@types/node@24.10.0)(esbuild@0.27.2)(jiti@2.6.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.3) transitivePeerDependencies: - rollup - vite-plugin-dts@4.5.4(@types/node@24.10.0)(rollup@4.59.0)(typescript@5.9.3)(vite@7.3.1(@types/node@24.10.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(yaml@2.8.2)): + vite-imagetools@10.0.0(rollup@4.59.0)(vite@8.0.6(@types/node@24.10.0)(esbuild@0.27.3)(jiti@2.6.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.3)): + dependencies: + '@rollup/pluginutils': 5.3.0(rollup@4.59.0) + imagetools-core: 9.1.0 + sharp: 0.34.5 + vite: 8.0.6(@types/node@24.10.0)(esbuild@0.27.3)(jiti@2.6.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.3) + transitivePeerDependencies: + - rollup + + vite-plugin-dts@4.5.4(@types/node@24.10.0)(rollup@4.59.0)(typescript@5.9.3)(vite@8.0.6(@types/node@24.10.0)(esbuild@0.27.2)(jiti@2.6.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.3)): dependencies: '@microsoft/api-extractor': 7.57.6(@types/node@24.10.0) '@rollup/pluginutils': 5.3.0(rollup@4.59.0) - '@volar/typescript': 2.4.23 + '@volar/typescript': 2.4.28 '@vue/language-core': 2.2.0(typescript@5.9.3) compare-versions: 6.1.1 debug: 4.4.3(supports-color@10.2.2) @@ -19946,43 +20344,54 @@ snapshots: magic-string: 0.30.21 typescript: 5.9.3 optionalDependencies: - vite: 7.3.1(@types/node@24.10.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(yaml@2.8.2) + vite: 8.0.6(@types/node@24.10.0)(esbuild@0.27.2)(jiti@2.6.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.3) transitivePeerDependencies: - '@types/node' - rollup - supports-color - vite-plugin-inspect@11.3.3(vite@7.3.1(@types/node@24.10.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(yaml@2.8.2)): + vite-plugin-inspect@11.3.3(vite@8.0.6(@types/node@24.10.0)(esbuild@0.27.3)(jiti@2.6.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.3)): dependencies: ansis: 4.2.0 debug: 4.4.3(supports-color@10.2.2) error-stack-parser-es: 1.0.5 ohash: 2.0.11 open: 10.2.0 - perfect-debounce: 2.0.0 + perfect-debounce: 2.1.0 sirv: 3.0.2 unplugin-utils: 0.3.1 - vite: 7.3.1(@types/node@24.10.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(yaml@2.8.2) - vite-dev-rpc: 1.1.0(vite@7.3.1(@types/node@24.10.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(yaml@2.8.2)) + vite: 8.0.6(@types/node@24.10.0)(esbuild@0.27.3)(jiti@2.6.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.3) + vite-dev-rpc: 1.1.0(vite@8.0.6(@types/node@24.10.0)(esbuild@0.27.3)(jiti@2.6.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.3)) transitivePeerDependencies: - supports-color - vite-tsconfig-paths@6.0.4(typescript@5.9.3)(vite@7.3.1(@types/node@24.10.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(yaml@2.8.2)): + vite-tsconfig-paths@6.0.4(typescript@5.9.3)(vite@8.0.6(@types/node@24.10.0)(esbuild@0.27.2)(jiti@2.6.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.3)): dependencies: debug: 4.4.3(supports-color@10.2.2) globrex: 0.1.2 tsconfck: 3.1.6(typescript@5.9.3) optionalDependencies: - vite: 7.3.1(@types/node@24.10.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(yaml@2.8.2) + vite: 8.0.6(@types/node@24.10.0)(esbuild@0.27.2)(jiti@2.6.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.3) transitivePeerDependencies: - supports-color - typescript - vite@7.3.1(@types/node@24.10.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(yaml@2.8.2): + vite-tsconfig-paths@6.0.4(typescript@5.9.3)(vite@8.0.6(@types/node@24.10.0)(esbuild@0.27.3)(jiti@2.6.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.3)): + dependencies: + debug: 4.4.3(supports-color@10.2.2) + globrex: 0.1.2 + tsconfck: 3.1.6(typescript@5.9.3) + optionalDependencies: + vite: 8.0.6(@types/node@24.10.0)(esbuild@0.27.3)(jiti@2.6.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.3) + transitivePeerDependencies: + - supports-color + - typescript + + vite@7.3.1(@types/node@24.10.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.3): dependencies: esbuild: 0.27.2 - fdir: 6.5.0(picomatch@4.0.3) - picomatch: 4.0.3 + fdir: 6.5.0(picomatch@4.0.4) + picomatch: 4.0.4 postcss: 8.5.6 rollup: 4.59.0 tinyglobby: 0.2.15 @@ -19990,14 +20399,47 @@ snapshots: '@types/node': 24.10.0 fsevents: 2.3.3 jiti: 2.6.1 - lightningcss: 1.30.2 + lightningcss: 1.32.0 terser: 5.46.0 - yaml: 2.8.2 + tsx: 4.21.0 + yaml: 2.8.3 - vitest@4.0.18(@opentelemetry/api@1.9.0)(@types/node@24.10.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(yaml@2.8.2): + vite@8.0.6(@types/node@24.10.0)(esbuild@0.27.2)(jiti@2.6.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.3): + dependencies: + lightningcss: 1.32.0 + picomatch: 4.0.4 + postcss: 8.5.8 + rolldown: 1.0.0-rc.13 + tinyglobby: 0.2.15 + optionalDependencies: + '@types/node': 24.10.0 + esbuild: 0.27.2 + fsevents: 2.3.3 + jiti: 2.6.1 + terser: 5.46.0 + tsx: 4.21.0 + yaml: 2.8.3 + + vite@8.0.6(@types/node@24.10.0)(esbuild@0.27.3)(jiti@2.6.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.3): + dependencies: + lightningcss: 1.32.0 + picomatch: 4.0.4 + postcss: 8.5.8 + rolldown: 1.0.0-rc.13 + tinyglobby: 0.2.15 + optionalDependencies: + '@types/node': 24.10.0 + esbuild: 0.27.3 + fsevents: 2.3.3 + jiti: 2.6.1 + terser: 5.46.0 + tsx: 4.21.0 + yaml: 2.8.3 + + vitest@4.0.18(@opentelemetry/api@1.9.0)(@types/node@24.10.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.3): dependencies: '@vitest/expect': 4.0.18 - '@vitest/mocker': 4.0.18(vite@7.3.1(@types/node@24.10.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(yaml@2.8.2)) + '@vitest/mocker': 4.0.18(vite@7.3.1(@types/node@24.10.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.3)) '@vitest/pretty-format': 4.0.18 '@vitest/runner': 4.0.18 '@vitest/snapshot': 4.0.18 @@ -20008,13 +20450,13 @@ snapshots: magic-string: 0.30.21 obug: 2.1.1 pathe: 2.0.3 - picomatch: 4.0.3 + picomatch: 4.0.4 std-env: 3.10.0 tinybench: 2.9.0 - tinyexec: 1.0.2 + tinyexec: 1.0.4 tinyglobby: 0.2.15 - tinyrainbow: 3.0.3 - vite: 7.3.1(@types/node@24.10.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(yaml@2.8.2) + tinyrainbow: 3.1.0 + vite: 7.3.1(@types/node@24.10.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.3) why-is-node-running: 2.3.0 optionalDependencies: '@opentelemetry/api': 1.9.0 @@ -20053,7 +20495,7 @@ snapshots: tr46: 0.0.3 webidl-conversions: 3.0.1 - when-exit@2.1.4: {} + when-exit@2.1.5: {} which-boxed-primitive@1.1.1: dependencies: @@ -20071,13 +20513,13 @@ snapshots: is-async-function: 2.1.1 is-date-object: 1.1.0 is-finalizationregistry: 1.1.1 - is-generator-function: 1.1.0 + is-generator-function: 1.1.2 is-regex: 1.2.1 is-weakref: 1.1.1 isarray: 2.0.5 which-boxed-primitive: 1.1.1 which-collection: 1.0.2 - which-typed-array: 1.1.19 + which-typed-array: 1.1.20 which-collection@1.0.2: dependencies: @@ -20090,7 +20532,7 @@ snapshots: which-pm-runs@1.1.0: {} - which-typed-array@1.1.19: + which-typed-array@1.1.20: dependencies: available-typed-arrays: 1.0.7 call-bind: 1.0.8 @@ -20123,10 +20565,10 @@ snapshots: readable-stream: 3.6.2 triple-beam: 1.4.1 - winston@3.18.1: + winston@3.19.0: dependencies: '@colors/colors': 1.6.0 - '@dabh/diagnostics': 2.0.6 + '@dabh/diagnostics': 2.0.8 async: 3.2.6 is-stream: 2.0.1 logform: 2.7.0 @@ -20136,8 +20578,6 @@ snapshots: stack-trace: 0.0.10 triple-beam: 1.4.1 winston-transport: 4.9.0 - transitivePeerDependencies: - - supports-color word-wrap@1.2.5: {} @@ -20209,13 +20649,15 @@ snapshots: ws@8.19.0: {} + ws@8.20.0: {} + wsl-utils@0.1.0: dependencies: - is-wsl: 3.1.0 + is-wsl: 3.1.1 wsl-utils@0.3.1: dependencies: - is-wsl: 3.1.0 + is-wsl: 3.1.1 powershell-utils: 0.1.0 xdg-basedir@5.1.0: {} @@ -20231,15 +20673,13 @@ snapshots: y18n@5.0.8: {} - yallist@3.1.1: {} - yallist@4.0.0: {} yallist@5.0.0: {} - yaml@1.10.2: {} + yaml@1.10.3: {} - yaml@2.8.2: {} + yaml@2.8.3: {} yargs-parser@18.1.3: dependencies: @@ -20293,7 +20733,7 @@ snapshots: yocto-queue@0.1.0: {} - yocto-queue@1.2.1: {} + yocto-queue@1.2.2: {} yoctocolors@2.1.2: {} @@ -20301,7 +20741,7 @@ snapshots: dependencies: cookie: 0.7.2 mustache: 4.2.0 - stacktracey: 2.1.8 + stacktracey: 2.2.0 zip-stream@6.0.1: dependencies: @@ -20315,6 +20755,6 @@ snapshots: zod@3.25.76: {} - zod@4.1.11: {} + zod@4.3.6: {} zwitch@2.0.4: {} diff --git a/scripts/docs-size-results.json b/scripts/docs-size-results.json index 4644e027b4d..584813c1ce3 100644 --- a/scripts/docs-size-results.json +++ b/scripts/docs-size-results.json @@ -1,14 +1,14 @@ { "version": 1, - "generatedAt": "2026-04-08T17:38:01.244Z", + "generatedAt": "2026-04-09T07:29:12.991Z", "routes": { "/": { - "rawBytes": 217472, - "gzipBytes": 45020 + "rawBytes": 217474, + "gzipBytes": 45291 }, "/docs": { - "rawBytes": 1064047, - "gzipBytes": 179707 + "rawBytes": 1064049, + "gzipBytes": 178460 } } } diff --git a/scripts/submodule-insights.ts b/scripts/submodule-insights.ts index 8700c34ae24..22dd74f4718 100644 --- a/scripts/submodule-insights.ts +++ b/scripts/submodule-insights.ts @@ -24,7 +24,7 @@ async function buildComponents(config: BuildConfig) { emptyOutDir: false, target: 'es2022', minify: false, - rollupOptions: { + rolldownOptions: { external: (id) => /^(@|node:)/i.test(id), }, }, @@ -44,7 +44,7 @@ async function buildVite(config: BuildConfig) { }, outDir: distBase, emptyOutDir: false, - rollupOptions: { + rolldownOptions: { external: (id) => /^(@|node:)/i.test(id), }, }, diff --git a/scripts/submodule-optimizer.ts b/scripts/submodule-optimizer.ts index 6130a7e8e3a..3c3336b5829 100644 --- a/scripts/submodule-optimizer.ts +++ b/scripts/submodule-optimizer.ts @@ -37,7 +37,7 @@ export async function submoduleOptimizer(config: BuildConfig) { sourcemap: false, target: target, minify: !config.dev, - rollupOptions: { + rolldownOptions: { external: ['node:fs', 'node:path', 'launch-editor', '@qwik.dev/optimizer'], output: { banner: getBanner('@qwik.dev/core/optimizer', config.distVersion), diff --git a/scripts/submodule-preloader.ts b/scripts/submodule-preloader.ts index a5981bc349a..34a869aab33 100644 --- a/scripts/submodule-preloader.ts +++ b/scripts/submodule-preloader.ts @@ -34,9 +34,6 @@ function customTerserPlugin(): Plugin { regex: MANGLE_PROPS_REGEX, }, }, - format: { - comments: true, - }, }); return result.code || null; @@ -59,7 +56,7 @@ export async function submodulePreloader(config: BuildConfig): Promise { formats: ['es'], fileName: () => 'preloader.mjs', }, - rollupOptions: { + rolldownOptions: { external: ['@qwik.dev/core/build'], }, minify: false, // This is the default, just to be explicit diff --git a/scripts/submodule-qwikloader.ts b/scripts/submodule-qwikloader.ts index 5db6b796f00..c261f031830 100644 --- a/scripts/submodule-qwikloader.ts +++ b/scripts/submodule-qwikloader.ts @@ -68,12 +68,8 @@ export const minifyClientScript = async (content: string) => { export const getLoaderJsonString = async (config: BuildConfig, name: string) => { const filePath = join(config.distQwikPkgDir, name); const content = await readFile(filePath, 'utf-8'); - // Remove vite comments and leading/trailing whitespace - let cleaned = content.trim().replace(/\n?\/\*\s*@vite[^*]+\*\/\n?/g, ''); - if (cleaned.endsWith(';')) { - cleaned = cleaned.slice(0, -1); - } - return JSON.stringify(cleaned); + + return JSON.stringify(content); }; /** Load each of the qwik scripts to be inlined with esbuild "define" as const variables. */ diff --git a/starters/adapters/aws-lambda/adapters/aws-lambda/vite.config.ts b/starters/adapters/aws-lambda/adapters/aws-lambda/vite.config.ts index 2d89c8f0d02..ce1326cc4d0 100755 --- a/starters/adapters/aws-lambda/adapters/aws-lambda/vite.config.ts +++ b/starters/adapters/aws-lambda/adapters/aws-lambda/vite.config.ts @@ -2,17 +2,18 @@ import { nodeServerAdapter } from "@qwik.dev/router/adapters/node-server/vite"; import { extendConfig } from "@qwik.dev/router/vite"; import { builtinModules } from "module"; import baseConfig from "../../vite.config.ts"; + export default extendConfig(baseConfig, () => { return { ssr: { // This configuration will bundle all dependencies, except the node builtins (path, fs, etc.) - external: builtinModules, + external: [...builtinModules], noExternal: /./, }, build: { minify: false, ssr: true, - rollupOptions: { + rolldownOptions: { input: ["./src/entry_aws-lambda.tsx"], }, }, diff --git a/starters/adapters/azure-swa/adapters/azure-swa/vite.config.ts b/starters/adapters/azure-swa/adapters/azure-swa/vite.config.ts index 574dd67768f..89914fbaba9 100644 --- a/starters/adapters/azure-swa/adapters/azure-swa/vite.config.ts +++ b/starters/adapters/azure-swa/adapters/azure-swa/vite.config.ts @@ -7,7 +7,7 @@ export default extendConfig(baseConfig, () => { build: { ssr: true, outDir: "azure-functions/render", - rollupOptions: { + rolldownOptions: { input: ["src/entry.azure-swa.tsx"], output: { entryFileNames: `[name].[hash].mjs`, diff --git a/starters/adapters/bun/adapters/bun/vite.config.ts b/starters/adapters/bun/adapters/bun/vite.config.ts index d3b70610629..387554983e7 100644 --- a/starters/adapters/bun/adapters/bun/vite.config.ts +++ b/starters/adapters/bun/adapters/bun/vite.config.ts @@ -10,7 +10,7 @@ export default extendConfig(baseConfig, () => { return { build: { ssr: true, - rollupOptions: { + rolldownOptions: { input: ["src/entry.bun.ts"], }, minify: false, diff --git a/starters/adapters/cloud-run/adapters/cloud-run/vite.config.ts b/starters/adapters/cloud-run/adapters/cloud-run/vite.config.ts index 158b31cdd09..63e1fd375ff 100644 --- a/starters/adapters/cloud-run/adapters/cloud-run/vite.config.ts +++ b/starters/adapters/cloud-run/adapters/cloud-run/vite.config.ts @@ -6,7 +6,7 @@ export default extendConfig(baseConfig, () => { return { build: { ssr: true, - rollupOptions: { + rolldownOptions: { input: ["src/entry.cloud-run.tsx"], }, }, diff --git a/starters/adapters/cloudflare-pages/adapters/cloudflare-pages/vite.config.ts b/starters/adapters/cloudflare-pages/adapters/cloudflare-pages/vite.config.ts index c89a2d7929f..f7968c0b6a0 100644 --- a/starters/adapters/cloudflare-pages/adapters/cloudflare-pages/vite.config.ts +++ b/starters/adapters/cloudflare-pages/adapters/cloudflare-pages/vite.config.ts @@ -6,7 +6,7 @@ export default extendConfig(baseConfig, () => { return { build: { ssr: true, - rollupOptions: { + rolldownOptions: { input: ["src/entry.cloudflare-pages.tsx"], }, }, diff --git a/starters/adapters/cloudflare-workers/adapters/cloudflare-workers/vite.config.ts b/starters/adapters/cloudflare-workers/adapters/cloudflare-workers/vite.config.ts index d25fb89668c..e9f6aef861a 100644 --- a/starters/adapters/cloudflare-workers/adapters/cloudflare-workers/vite.config.ts +++ b/starters/adapters/cloudflare-workers/adapters/cloudflare-workers/vite.config.ts @@ -6,7 +6,7 @@ export default extendConfig(baseConfig, () => { return { build: { ssr: true, - rollupOptions: { + rolldownOptions: { input: ["src/entry.cloudflare-pages.tsx", "@qwik-city-plan"], }, }, diff --git a/starters/adapters/deno/adapters/deno/vite.config.ts b/starters/adapters/deno/adapters/deno/vite.config.ts index dea4f679ff1..549d338ca3f 100644 --- a/starters/adapters/deno/adapters/deno/vite.config.ts +++ b/starters/adapters/deno/adapters/deno/vite.config.ts @@ -6,7 +6,7 @@ export default extendConfig(baseConfig, () => { return { build: { ssr: true, - rollupOptions: { + rolldownOptions: { input: ["src/entry.deno.ts"], }, minify: false, diff --git a/starters/adapters/express/adapters/express/vite.config.ts b/starters/adapters/express/adapters/express/vite.config.ts index f277be8a398..c3875283204 100644 --- a/starters/adapters/express/adapters/express/vite.config.ts +++ b/starters/adapters/express/adapters/express/vite.config.ts @@ -6,7 +6,7 @@ export default extendConfig(baseConfig, () => { return { build: { ssr: true, - rollupOptions: { + rolldownOptions: { input: ["src/entry.express.tsx"], }, }, diff --git a/starters/adapters/fastify/adapters/fastify/vite.config.ts b/starters/adapters/fastify/adapters/fastify/vite.config.ts index 3837c87ba23..f035c546e21 100644 --- a/starters/adapters/fastify/adapters/fastify/vite.config.ts +++ b/starters/adapters/fastify/adapters/fastify/vite.config.ts @@ -6,7 +6,7 @@ export default extendConfig(baseConfig, () => { return { build: { ssr: true, - rollupOptions: { + rolldownOptions: { input: ["src/entry.fastify.tsx"], }, }, diff --git a/starters/adapters/firebase/adapters/firebase/vite.config.ts b/starters/adapters/firebase/adapters/firebase/vite.config.ts index 51b4e830ad0..e34ded92fa9 100755 --- a/starters/adapters/firebase/adapters/firebase/vite.config.ts +++ b/starters/adapters/firebase/adapters/firebase/vite.config.ts @@ -2,16 +2,17 @@ import { nodeServerAdapter } from "@qwik.dev/router/adapters/node-server/vite"; import { extendConfig } from "@qwik.dev/router/vite"; import { builtinModules } from "module"; import baseConfig from "../../vite.config.ts"; + export default extendConfig(baseConfig, () => { return { ssr: { - external: builtinModules, + external: [...builtinModules], noExternal: /./, }, build: { minify: false, ssr: true, - rollupOptions: { + rolldownOptions: { input: ["./src/entry-firebase.tsx"], }, outDir: "./functions/server", diff --git a/starters/adapters/netlify-edge/adapters/netlify-edge/vite.config.ts b/starters/adapters/netlify-edge/adapters/netlify-edge/vite.config.ts index 41577ea2d44..daffed1391b 100644 --- a/starters/adapters/netlify-edge/adapters/netlify-edge/vite.config.ts +++ b/starters/adapters/netlify-edge/adapters/netlify-edge/vite.config.ts @@ -6,7 +6,7 @@ export default extendConfig(baseConfig, () => { return { build: { ssr: true, - rollupOptions: { + rolldownOptions: { input: ["src/entry.netlify-edge.tsx"], }, outDir: ".netlify/edge-functions/entry.netlify-edge", diff --git a/starters/adapters/node-server/adapters/node-server/vite.config.ts b/starters/adapters/node-server/adapters/node-server/vite.config.ts index 9934ff8addf..eb118243438 100644 --- a/starters/adapters/node-server/adapters/node-server/vite.config.ts +++ b/starters/adapters/node-server/adapters/node-server/vite.config.ts @@ -6,7 +6,7 @@ export default extendConfig(baseConfig, () => { return { build: { ssr: true, - rollupOptions: { + rolldownOptions: { input: ["src/entry.node-server.tsx"], }, }, diff --git a/starters/adapters/ssg/adapters/ssg/vite.config.ts b/starters/adapters/ssg/adapters/ssg/vite.config.ts index 7cc862948fc..657eef3beea 100644 --- a/starters/adapters/ssg/adapters/ssg/vite.config.ts +++ b/starters/adapters/ssg/adapters/ssg/vite.config.ts @@ -6,7 +6,7 @@ export default extendConfig(baseConfig, () => { return { build: { ssr: true, - rollupOptions: { + rolldownOptions: { input: ["@qwik-router-config"], }, }, diff --git a/starters/adapters/vercel-edge/adapters/vercel-edge/vite.config.ts b/starters/adapters/vercel-edge/adapters/vercel-edge/vite.config.ts index f71383b9efb..e49bb65030b 100644 --- a/starters/adapters/vercel-edge/adapters/vercel-edge/vite.config.ts +++ b/starters/adapters/vercel-edge/adapters/vercel-edge/vite.config.ts @@ -6,7 +6,7 @@ export default extendConfig(baseConfig, () => { return { build: { ssr: true, - rollupOptions: { + rolldownOptions: { input: ["src/entry.vercel-edge.tsx"], }, outDir: ".vercel/output/functions/_qwik-router.func", diff --git a/starters/apps/library/vite.config.ts b/starters/apps/library/vite.config.ts index eea914de756..ee8b72bac21 100644 --- a/starters/apps/library/vite.config.ts +++ b/starters/apps/library/vite.config.ts @@ -20,7 +20,7 @@ export default defineConfig(() => { fileName: (format, entryName) => `${entryName}.qwik.${format === "es" ? "mjs" : "cjs"}`, }, - rollupOptions: { + rolldownOptions: { output: { preserveModules: true, preserveModulesRoot: "src", diff --git a/starters/features/tailwind/package.json b/starters/features/tailwind/package.json index 0eab8ccdf4e..1203ed1bb7e 100644 --- a/starters/features/tailwind/package.json +++ b/starters/features/tailwind/package.json @@ -22,7 +22,7 @@ "devDependencies": { "prettier-plugin-tailwindcss": "^0.6.11", "tailwindcss": "^4.1.4", - "@tailwindcss/vite": "^4.1.4" + "@tailwindcss/vite": "^4.2.0" }, "type": "module" } diff --git a/starters/features/vitest/package.json b/starters/features/vitest/package.json index bb7ac472e1f..a02b8f9d919 100644 --- a/starters/features/vitest/package.json +++ b/starters/features/vitest/package.json @@ -10,8 +10,8 @@ ] }, "devDependencies": { - "@vitest/ui": "^0.34.6", - "vitest": "^0.34.6" + "@vitest/ui": "^4.0.18", + "vitest": "^4.0.18" }, "scripts": { "test.unit": "vitest components",