From df2de752e147c9f725141423abb7c3963dc4558f Mon Sep 17 00:00:00 2001 From: Adam Skoufis Date: Wed, 11 Jun 2025 10:49:23 +1000 Subject: [PATCH] WIP inline CSS in SSR dev --- .changeset/cyan-bikes-relax.md | 5 + .changeset/shiny-emus-guess.md | 5 + fixtures/features/index.html | 3 +- fixtures/next-app-router/tsconfig.json | 7 +- fixtures/next-pages-router/tsconfig.json | 14 +- fixtures/vite-react-ssr/.gitignore | 24 + fixtures/vite-react-ssr/index.html | 14 + fixtures/vite-react-ssr/package.json | 34 + fixtures/vite-react-ssr/server.js | 71 + fixtures/vite-react-ssr/src/App.css.ts | 3 + fixtures/vite-react-ssr/src/App.tsx | 7 + fixtures/vite-react-ssr/src/entry-client.tsx | 10 + fixtures/vite-react-ssr/src/entry-server.tsx | 12 + fixtures/vite-react-ssr/src/vite-env.d.ts | 1 + fixtures/vite-react-ssr/tsconfig.json | 26 + fixtures/vite-react-ssr/tsconfig.node.json | 24 + fixtures/vite-react-ssr/vite.config.ts | 37 + package.json | 1 + packages/compiler/src/compiler.ts | 10 + packages/compiler/src/lock.ts | 6 +- packages/vite-plugin/src/index.ts | 304 +-- pnpm-lock.yaml | 1979 ++++++++++------- test-helpers/package.json | 5 + test-helpers/src/startFixture/index.ts | 53 +- test-helpers/src/startFixture/types.ts | 2 + test-helpers/src/startFixture/vite-ssr.ts | 117 + tests/compiler/compiler.test.ts | 26 +- tests/e2e/features.playwright.ts | 32 +- ...sInDev-true-Desktop---Chromium-darwin.html | 16 + ...ssInDev-true-Mobile---Chromium-darwin.html | 16 + ...sInDev-true-Desktop---Chromium-darwin.html | 13 + ...ssInDev-true-Mobile---Chromium-darwin.html | 13 + tests/e2e/testCases.ts | 31 +- 33 files changed, 1998 insertions(+), 923 deletions(-) create mode 100644 .changeset/cyan-bikes-relax.md create mode 100644 .changeset/shiny-emus-guess.md create mode 100644 fixtures/vite-react-ssr/.gitignore create mode 100644 fixtures/vite-react-ssr/index.html create mode 100644 fixtures/vite-react-ssr/package.json create mode 100644 fixtures/vite-react-ssr/server.js create mode 100644 fixtures/vite-react-ssr/src/App.css.ts create mode 100644 fixtures/vite-react-ssr/src/App.tsx create mode 100644 fixtures/vite-react-ssr/src/entry-client.tsx create mode 100644 fixtures/vite-react-ssr/src/entry-server.tsx create mode 100644 fixtures/vite-react-ssr/src/vite-env.d.ts create mode 100644 fixtures/vite-react-ssr/tsconfig.json create mode 100644 fixtures/vite-react-ssr/tsconfig.node.json create mode 100644 fixtures/vite-react-ssr/vite.config.ts create mode 100644 test-helpers/src/startFixture/vite-ssr.ts create mode 100644 tests/e2e/snapshots/features-vite--development-inlineCssInDev-true-Desktop---Chromium-darwin.html create mode 100644 tests/e2e/snapshots/features-vite--development-inlineCssInDev-true-Mobile---Chromium-darwin.html create mode 100644 tests/e2e/snapshots/features-vite--production-inlineCssInDev-true-Desktop---Chromium-darwin.html create mode 100644 tests/e2e/snapshots/features-vite--production-inlineCssInDev-true-Mobile---Chromium-darwin.html diff --git a/.changeset/cyan-bikes-relax.md b/.changeset/cyan-bikes-relax.md new file mode 100644 index 000000000..6728dccc3 --- /dev/null +++ b/.changeset/cyan-bikes-relax.md @@ -0,0 +1,5 @@ +--- +'@vanilla-extract/compiler': minor +--- + +WIP export `getAllCss` method from compiler diff --git a/.changeset/shiny-emus-guess.md b/.changeset/shiny-emus-guess.md new file mode 100644 index 000000000..e41eaa755 --- /dev/null +++ b/.changeset/shiny-emus-guess.md @@ -0,0 +1,5 @@ +--- +'@vanilla-extract/vite-plugin': minor +--- + +WIP inline CSS in SSR dev diff --git a/fixtures/features/index.html b/fixtures/features/index.html index 4ede1709c..04f1f87e3 100644 --- a/fixtures/features/index.html +++ b/fixtures/features/index.html @@ -4,9 +4,10 @@ Vite App + -
+
diff --git a/fixtures/next-app-router/tsconfig.json b/fixtures/next-app-router/tsconfig.json index d751428c7..fa462c208 100644 --- a/fixtures/next-app-router/tsconfig.json +++ b/fixtures/next-app-router/tsconfig.json @@ -8,7 +8,8 @@ "name": "next" } ], - "strictNullChecks": true + "strictNullChecks": true, + "module": "esnext" }, "include": [ "next-env.d.ts", @@ -17,5 +18,7 @@ ".next/types/**/*.ts", "dist/types/**/*.ts" ], - "exclude": ["node_modules"] + "exclude": [ + "node_modules" + ] } diff --git a/fixtures/next-pages-router/tsconfig.json b/fixtures/next-pages-router/tsconfig.json index f295fe6d3..26386dc26 100644 --- a/fixtures/next-pages-router/tsconfig.json +++ b/fixtures/next-pages-router/tsconfig.json @@ -3,8 +3,16 @@ "compilerOptions": { "forceConsistentCasingInFileNames": true, "jsx": "preserve", - "strictNullChecks": true + "strictNullChecks": true, + "module": "esnext", + "moduleResolution": "node" }, - "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"], - "exclude": ["node_modules"] + "include": [ + "next-env.d.ts", + "**/*.ts", + "**/*.tsx" + ], + "exclude": [ + "node_modules" + ] } diff --git a/fixtures/vite-react-ssr/.gitignore b/fixtures/vite-react-ssr/.gitignore new file mode 100644 index 000000000..a547bf36d --- /dev/null +++ b/fixtures/vite-react-ssr/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/fixtures/vite-react-ssr/index.html b/fixtures/vite-react-ssr/index.html new file mode 100644 index 000000000..481a76665 --- /dev/null +++ b/fixtures/vite-react-ssr/index.html @@ -0,0 +1,14 @@ + + + + + + + Vite + React + TS + + + +
+ + + diff --git a/fixtures/vite-react-ssr/package.json b/fixtures/vite-react-ssr/package.json new file mode 100644 index 000000000..415903d83 --- /dev/null +++ b/fixtures/vite-react-ssr/package.json @@ -0,0 +1,34 @@ +{ + "name": "@fixtures/vite-react-ssr", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "node server", + "build": "npm run build:client && npm run build:server", + "build:client": "vite build --outDir dist/client", + "build:server": "vite build --ssr src/entry-server.tsx --outDir dist/server", + "preview": "cross-env NODE_ENV=production node server" + }, + "dependencies": { + "compression": "^1.8.0", + "express": "^5.0.1", + "react": "^19.0.0", + "react-dom": "^19.0.0", + "sirv": "^3.0.1" + }, + "devDependencies": { + "@types/express": "^5.0.0", + "@types/node": "^22.13.4", + "@types/react": "^19.0.10", + "@types/react-dom": "^19.0.4", + "@vanilla-extract/css": "workspace:*", + "@vanilla-extract/integration": "workspace:*", + "@vanilla-extract/vite-plugin": "workspace:*", + "@vitejs/plugin-react-swc": "^3.8.0", + "cross-env": "^7.0.3", + "resolve-from": "^5.0.0", + "typescript": "~5.8.3", + "vite": "^6.1.1" + } +} diff --git a/fixtures/vite-react-ssr/server.js b/fixtures/vite-react-ssr/server.js new file mode 100644 index 000000000..84a3cba26 --- /dev/null +++ b/fixtures/vite-react-ssr/server.js @@ -0,0 +1,71 @@ +import fs from 'node:fs/promises'; +import express from 'express'; + +// Constants +const isProduction = process.env.NODE_ENV === 'production'; +const port = process.env.PORT || 5173; +const base = process.env.BASE || '/'; + +// Cached production assets +const templateHtml = isProduction + ? await fs.readFile('./dist/client/index.html', 'utf-8') + : ''; + +// Create http server +const app = express(); + +// Add Vite or respective production middlewares +/** @type {import('vite').ViteDevServer | undefined} */ +let vite; +if (!isProduction) { + const { createServer } = await import('vite'); + vite = await createServer({ + server: { middlewareMode: true }, + appType: 'custom', + base, + }); + app.use(vite.middlewares); +} else { + const compression = (await import('compression')).default; + const sirv = (await import('sirv')).default; + app.use(compression()); + app.use(base, sirv('./dist/client', { extensions: [] })); +} + +// Serve HTML +app.use('*all', async (req, res) => { + try { + const url = req.originalUrl.replace(base, ''); + + /** @type {string} */ + let template; + /** @type {import('./src/entry-server.ts').render} */ + let render; + if (!isProduction) { + // Always read fresh template in development + template = await fs.readFile('./index.html', 'utf-8'); + render = (await vite.ssrLoadModule('/src/entry-server.tsx')).render; + template = await vite.transformIndexHtml(url, template); + } else { + template = templateHtml; + render = (await import('./dist/server/entry-server.js')).render; + } + + const rendered = await render(url); + + const html = template + .replace(``, rendered.head ?? '') + .replace(``, rendered.html ?? ''); + + res.status(200).set({ 'Content-Type': 'text/html' }).send(html); + } catch (e) { + vite?.ssrFixStacktrace(e); + console.log(e.stack); + res.status(500).end(e.stack); + } +}); + +// Start http server +app.listen(port, () => { + console.log(`Server started at http://localhost:${port}`); +}); diff --git a/fixtures/vite-react-ssr/src/App.css.ts b/fixtures/vite-react-ssr/src/App.css.ts new file mode 100644 index 000000000..fa031a715 --- /dev/null +++ b/fixtures/vite-react-ssr/src/App.css.ts @@ -0,0 +1,3 @@ +import { style } from '@vanilla-extract/css'; + +export const redText = style({ color: 'red' }); diff --git a/fixtures/vite-react-ssr/src/App.tsx b/fixtures/vite-react-ssr/src/App.tsx new file mode 100644 index 000000000..326b9e400 --- /dev/null +++ b/fixtures/vite-react-ssr/src/App.tsx @@ -0,0 +1,7 @@ +import { redText } from './App.css.ts'; + +function App() { + return

Vite SSR + React + Vanilla Extract 🧁

; +} + +export default App; diff --git a/fixtures/vite-react-ssr/src/entry-client.tsx b/fixtures/vite-react-ssr/src/entry-client.tsx new file mode 100644 index 000000000..ab9e36c18 --- /dev/null +++ b/fixtures/vite-react-ssr/src/entry-client.tsx @@ -0,0 +1,10 @@ +import { StrictMode } from 'react'; +import { hydrateRoot } from 'react-dom/client'; +import App from './App'; + +hydrateRoot( + document.getElementById('root') as HTMLElement, + + + , +); diff --git a/fixtures/vite-react-ssr/src/entry-server.tsx b/fixtures/vite-react-ssr/src/entry-server.tsx new file mode 100644 index 000000000..8e6c2ae31 --- /dev/null +++ b/fixtures/vite-react-ssr/src/entry-server.tsx @@ -0,0 +1,12 @@ +import { StrictMode } from 'react'; +import { renderToString } from 'react-dom/server'; +import App from './App'; + +export function render(_url: string) { + const html = renderToString( + + + , + ); + return { html }; +} diff --git a/fixtures/vite-react-ssr/src/vite-env.d.ts b/fixtures/vite-react-ssr/src/vite-env.d.ts new file mode 100644 index 000000000..11f02fe2a --- /dev/null +++ b/fixtures/vite-react-ssr/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/fixtures/vite-react-ssr/tsconfig.json b/fixtures/vite-react-ssr/tsconfig.json new file mode 100644 index 000000000..086e0a1eb --- /dev/null +++ b/fixtures/vite-react-ssr/tsconfig.json @@ -0,0 +1,26 @@ +{ + "compilerOptions": { + "target": "ES2020", + "useDefineForClassFields": true, + "module": "ESNext", + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "isolatedModules": true, + "moduleDetection": "force", + "noEmit": true, + "jsx": "react-jsx", + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true, + "noUncheckedSideEffectImports": true + }, + "include": ["src"], + "references": [{ "path": "./tsconfig.node.json" }] +} diff --git a/fixtures/vite-react-ssr/tsconfig.node.json b/fixtures/vite-react-ssr/tsconfig.node.json new file mode 100644 index 000000000..71385d00f --- /dev/null +++ b/fixtures/vite-react-ssr/tsconfig.node.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "composite": true, + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo", + "target": "ES2022", + "lib": ["ES2023"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "isolatedModules": true, + "moduleDetection": "force", + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true, + "noUncheckedSideEffectImports": true + }, + "include": ["vite.config.ts"] +} diff --git a/fixtures/vite-react-ssr/vite.config.ts b/fixtures/vite-react-ssr/vite.config.ts new file mode 100644 index 000000000..c5ef711a2 --- /dev/null +++ b/fixtures/vite-react-ssr/vite.config.ts @@ -0,0 +1,37 @@ +import { defineConfig } from 'vite'; +import react from '@vitejs/plugin-react-swc'; +import ve from '@vanilla-extract/vite-plugin'; +import int from '@vanilla-extract/integration'; +import resolveFrom from 'resolve-from'; +import { dirname } from 'node:path'; + +// https://vite.dev/config/ +export default defineConfig({ + plugins: [ + react(), + ve.vanillaExtractPlugin({ unstable_mode: 'inlineCssInDev' }), + ], + optimizeDeps: { + esbuildOptions: { + plugins: [ + { + name: 'fix-vite-vanilla-extract-dep-scan', + setup(build) { + build.onResolve( + { filter: int.cssFileFilter }, + async ({ importer, path }) => ({ + path: resolveFrom(dirname(importer), path), + external: true, + }), + ); + }, + }, + ], + }, + }, + define: { + 'process.env.NODE_ENV': JSON.stringify( + process.env.NODE_ENV || 'development', + ), + }, +}); diff --git a/package.json b/package.json index 62eb0be15..e21af396b 100644 --- a/package.json +++ b/package.json @@ -18,6 +18,7 @@ "test:vitest": "vitest --watch=false", "test:playwright": "NODE_OPTIONS=--no-experimental-fetch pnpm test:build-next && playwright test", "test:build-next": "tsx scripts/copy-next-plugin && pnpm --filter=@fixtures/next-* clean-build", + "test:build-vite-ssr": "pnpm --filter=@fixtures/vite-react-ssr build", "format": "prettier --write .", "lint": "pnpm run '/^lint:.*/'", "lint:manypkg": "manypkg check", diff --git a/packages/compiler/src/compiler.ts b/packages/compiler/src/compiler.ts index 7592ce860..2cd02645d 100644 --- a/packages/compiler/src/compiler.ts +++ b/packages/compiler/src/compiler.ts @@ -240,6 +240,7 @@ export interface Compiler { ): Promise<{ source: string; watchFiles: Set }>; getCssForFile(virtualCssFilePath: string): { filePath: string; css: string }; close(): Promise; + getAllCss(): string; } interface ProcessedVanillaFile { @@ -499,5 +500,14 @@ export const createCompiler = ({ await server.close(); }, + getAllCss() { + let allCss = ''; + + for (const { css } of cssCache.values()) { + allCss += css + '\n'; + } + + return allCss; + }, }; }; diff --git a/packages/compiler/src/lock.ts b/packages/compiler/src/lock.ts index e55155097..ade97e4c8 100644 --- a/packages/compiler/src/lock.ts +++ b/packages/compiler/src/lock.ts @@ -1,6 +1,6 @@ type AsyncFunction = () => Promise; -const queue: Array<() => void> = []; +const queue: Array<() => Promise> = []; let isProcessingQueue = false; export async function lock(fn: AsyncFunction): Promise { @@ -31,7 +31,7 @@ async function processQueue() { } isProcessingQueue = true; - const fn = queue.shift()!; + const fn = queue.shift(); - await fn(); + await fn?.(); } diff --git a/packages/vite-plugin/src/index.ts b/packages/vite-plugin/src/index.ts index dc787ce28..09a40358a 100644 --- a/packages/vite-plugin/src/index.ts +++ b/packages/vite-plugin/src/index.ts @@ -18,7 +18,7 @@ import { normalizePath, } from '@vanilla-extract/integration'; -const PLUGIN_NAME = 'vite-plugin-vanilla-extract'; +const PLUGIN_NAMESPACE = 'vite-plugin-vanilla-extract'; const virtualExtCss = '.vanilla.css'; const isVirtualId = (id: string) => id.endsWith(virtualExtCss); @@ -42,7 +42,7 @@ type PluginFilter = (filterProps: { interface Options { identifiers?: IdentifierOption; unstable_pluginFilter?: PluginFilter; - unstable_mode?: 'transform' | 'emitCss'; + unstable_mode?: 'transform' | 'emitCss' | 'inlineCssInDev'; } // Plugins that we know are compatible with the `vite-node` compiler @@ -61,7 +61,7 @@ export function vanillaExtractPlugin({ identifiers, unstable_pluginFilter: pluginFilter = defaultPluginFilter, unstable_mode = 'emitCss', -}: Options = {}): Plugin { +}: Options = {}): Plugin[] { let config: ResolvedConfig; let configEnv: ConfigEnv; let server: ViteDevServer; @@ -109,162 +109,184 @@ export function vanillaExtractPlugin({ } } - return { - name: PLUGIN_NAME, - configureServer(_server) { - server = _server; + return [ + { + name: `${PLUGIN_NAMESPACE}-inline-dev-css`, + apply: (_, { command }) => { + return command === 'serve' && unstable_mode === 'inlineCssInDev'; + }, + transformIndexHtml: async () => { + const allCss = compiler?.getAllCss(); + + return [ + { + tag: 'style', + children: allCss, + attrs: { type: 'text/css' }, + injectTo: 'head-prepend', + }, + ]; + }, }, - config(_userConfig, _configEnv) { - configEnv = _configEnv; - return { - ssr: { - external: [ - '@vanilla-extract/css', - '@vanilla-extract/css/fileScope', - '@vanilla-extract/css/adapter', - ], - }, - }; - }, - async configResolved(_resolvedConfig) { - config = _resolvedConfig; - isBuild = config.command === 'build' && !config.build.watch; - packageName = getPackageInfo(config.root).name; - }, - async buildStart() { - // Ensure we re-use the compiler instance between builds, e.g. in watch mode - if (unstable_mode !== 'transform' && !compiler) { - const { loadConfigFromFile } = await vitePromise; - - let configForViteCompiler: UserConfig | undefined; - - // The user has a vite config file - if (config.configFile) { - const configFile = await loadConfigFromFile( - { - command: config.command, - mode: config.mode, - isSsrBuild: configEnv.isSsrBuild, - }, - config.configFile, - ); + { + name: PLUGIN_NAMESPACE, + configureServer(_server) { + server = _server; + }, + config(_userConfig, _configEnv) { + configEnv = _configEnv; + return { + ssr: { + external: [ + '@vanilla-extract/css', + '@vanilla-extract/css/fileScope', + '@vanilla-extract/css/adapter', + ], + }, + }; + }, + async configResolved(_resolvedConfig) { + config = _resolvedConfig; + isBuild = config.command === 'build' && !config.build.watch; + packageName = getPackageInfo(config.root).name; + }, + async buildStart() { + // Ensure we re-use the compiler instance between builds, e.g. in watch mode + if (unstable_mode !== 'transform' && !compiler) { + const { loadConfigFromFile } = await vitePromise; + + let configForViteCompiler: UserConfig | undefined; + + // The user has a vite config file + if (config.configFile) { + const configFile = await loadConfigFromFile( + { + command: config.command, + mode: config.mode, + isSsrBuild: configEnv.isSsrBuild, + }, + config.configFile, + ); + + configForViteCompiler = configFile?.config; + } + // The user is using a vite-based framework that has a custom config file + else { + configForViteCompiler = config.inlineConfig; + } - configForViteCompiler = configFile?.config; + const viteConfig = { + ...configForViteCompiler, + plugins: configForViteCompiler?.plugins + ?.flat() + .filter(isPluginObject) + .filter( + withUserPluginFilter({ mode: config.mode, pluginFilter }), + ), + }; + + compiler = createCompiler({ + root: config.root, + identifiers: getIdentOption(), + cssImportSpecifier: fileIdToVirtualId, + viteConfig, + enableFileWatcher: !isBuild, + }); } - // The user is using a vite-based framework that has a custom config file - else { - configForViteCompiler = config.inlineConfig; + }, + buildEnd() { + // When using the rollup watcher, we don't want to close the compiler after every build. + // Instead, we close it when the watcher is closed via the closeWatcher hook. + if (!config.build.watch) { + compiler?.close(); + } + }, + closeWatcher() { + return compiler?.close(); + }, + async transform(code, id) { + const [validId] = id.split('?'); + + if (!cssFileFilter.test(validId)) { + return null; } - const viteConfig = { - ...configForViteCompiler, - plugins: configForViteCompiler?.plugins - ?.flat() - .filter(isPluginObject) - .filter(withUserPluginFilter({ mode: config.mode, pluginFilter })), - }; - - compiler = createCompiler({ - root: config.root, - identifiers: getIdentOption(), - cssImportSpecifier: fileIdToVirtualId, - viteConfig, - enableFileWatcher: !isBuild, - }); - } - }, - buildEnd() { - // When using the rollup watcher, we don't want to close the compiler after every build. - // Instead, we close it when the watcher is closed via the closeWatcher hook. - if (!config.build.watch) { - compiler?.close(); - } - }, - closeWatcher() { - return compiler?.close(); - }, - async transform(code, id) { - const [validId] = id.split('?'); - - if (!cssFileFilter.test(validId)) { - return null; - } - - const identOption = getIdentOption(); - - if (unstable_mode === 'transform') { - return transform({ - source: code, - filePath: normalizePath(validId), - rootPath: config.root, - packageName, - identOption, - }); - } - - if (compiler) { - const absoluteId = getAbsoluteId(validId); + const identOption = getIdentOption(); - const { source, watchFiles } = await compiler.processVanillaFile( - absoluteId, - { outputCss: true }, - ); - const result: TransformResult = { - code: source, - map: { mappings: '' }, - }; - - // We don't need to watch files in build mode - if (isBuild) { - return result; + if (unstable_mode === 'transform') { + return transform({ + source: code, + filePath: normalizePath(validId), + rootPath: config.root, + packageName, + identOption, + }); } - for (const file of watchFiles) { - if ( - !file.includes('node_modules') && - normalizePath(file) !== absoluteId - ) { - this.addWatchFile(file); + if (compiler) { + const absoluteId = getAbsoluteId(validId); + + const { source, watchFiles } = await compiler.processVanillaFile( + absoluteId, + { outputCss: true }, + ); + const result: TransformResult = { + code: source, + map: { mappings: '' }, + }; + + // We don't need to watch files in build mode + if (isBuild) { + return result; } - // We have to invalidate the virtual module & deps, not the real one we just transformed - // The deps have to be invalidated in case one of them changing was the trigger causing - // the current transformation - if (cssFileFilter.test(file)) { - invalidateModule(fileIdToVirtualId(file)); + for (const file of watchFiles) { + if ( + !file.includes('node_modules') && + normalizePath(file) !== absoluteId + ) { + this.addWatchFile(file); + } + + // We have to invalidate the virtual module & deps, not the real one we just transformed + // The deps have to be invalidated in case one of them changing was the trigger causing + // the current transformation + if (cssFileFilter.test(file)) { + invalidateModule(fileIdToVirtualId(file)); + } } - } - return result; - } - }, - resolveId(source) { - const [validId, query] = source.split('?'); + return result; + } + }, + resolveId(source) { + const [validId, query] = source.split('?'); - if (!isVirtualId(validId)) return; + if (!isVirtualId(validId)) return; - const absoluteId = getAbsoluteId(validId); + const absoluteId = getAbsoluteId(validId); - if ( - // We should always have CSS for a file here. - // The only valid scenario for a missing one is if someone had written - // a file in their app using the .vanilla.js/.vanilla.css extension - compiler?.getCssForFile(virtualIdToFileId(absoluteId)) - ) { - // Keep the original query string for HMR. - return absoluteId + (query ? `?${query}` : ''); - } - }, - load(id) { - const [validId] = id.split('?'); + if ( + // We should always have CSS for a file here. + // The only valid scenario for a missing one is if someone had written + // a file in their app using the .vanilla.js/.vanilla.css extension + compiler?.getCssForFile(virtualIdToFileId(absoluteId)) + ) { + // Keep the original query string for HMR. + return absoluteId + (query ? `?${query}` : ''); + } + }, + load(id) { + const [validId] = id.split('?'); - if (!isVirtualId(validId) || !compiler) return; + if (!isVirtualId(validId) || !compiler) return; - const absoluteId = getAbsoluteId(validId); + const absoluteId = getAbsoluteId(validId); - const { css } = compiler.getCssForFile(virtualIdToFileId(absoluteId)); + const { css } = compiler.getCssForFile(virtualIdToFileId(absoluteId)); - return css; + return css; + }, }, - }; + ]; } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 174c1ff21..7c89d095f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -37,7 +37,7 @@ importers: version: 2.8.2 '@testing-library/jest-dom': specifier: ^6.4.2 - version: 6.4.2(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@22.15.3)(ts-node@10.9.1(@types/node@22.15.3)(typescript@5.8.3)))(vitest@3.0.2(@types/node@22.15.3)(jsdom@20.0.3)(terser@5.26.0)(tsx@4.17.0)) + version: 6.4.2(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@22.15.3)(ts-node@10.9.1(@swc/core@1.11.29)(@types/node@22.15.3)(typescript@5.8.3)))(vitest@3.0.2(@types/node@22.15.3)(jsdom@20.0.3)(terser@5.26.0)(tsx@4.17.0)) '@types/jest': specifier: ^29.5.12 version: 29.5.12 @@ -55,7 +55,7 @@ importers: version: 7.0.3 jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@22.15.3)(ts-node@10.9.1(@types/node@22.15.3)(typescript@5.8.3)) + version: 29.7.0(@types/node@22.15.3)(ts-node@10.9.1(@swc/core@1.11.29)(@types/node@22.15.3)(typescript@5.8.3)) jest-environment-jsdom: specifier: ^29.7.0 version: 29.7.0 @@ -135,7 +135,7 @@ importers: devDependencies: '@remix-run/dev': specifier: ^2.8.0 - version: 2.8.0(@remix-run/serve@2.8.0(typescript@5.8.3))(@types/node@22.15.3)(terser@5.26.0)(ts-node@10.9.1(@types/node@22.15.3)(typescript@5.8.3))(typescript@5.8.3)(vite@6.0.10(@types/node@22.15.3)(terser@5.26.0)(tsx@4.17.0)) + version: 2.8.0(@remix-run/serve@2.8.0(typescript@5.8.3))(@types/node@22.15.3)(terser@5.26.0)(ts-node@10.9.1(@swc/core@1.11.29)(@types/node@22.15.3)(typescript@5.8.3))(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.3)(terser@5.26.0)(tsx@4.17.0)) '@types/react': specifier: ^18.2.55 version: 18.2.55 @@ -144,7 +144,7 @@ importers: version: link:../../packages/vite-plugin vite: specifier: ^5.0.0 || ^6.0.0 - version: 6.0.10(@types/node@22.15.3)(terser@5.26.0)(tsx@4.17.0) + version: 6.3.5(@types/node@22.15.3)(terser@5.26.0)(tsx@4.17.0) examples/webpack-react: dependencies: @@ -189,10 +189,10 @@ importers: version: 18.2.0(react@18.2.0) tailwindcss: specifier: ^2.1.2 - version: 2.2.19(autoprefixer@10.4.17(postcss@8.5.1))(postcss@8.5.1)(ts-node@10.9.1(@types/node@22.15.3)(typescript@5.8.3)) + version: 2.2.19(autoprefixer@10.4.17(postcss@8.5.1))(postcss@8.5.1)(ts-node@10.9.1(@swc/core@1.11.29)(@types/node@22.15.3)(typescript@5.8.3)) webpack: specifier: ^5.90.0 - version: 5.90.0(webpack-cli@5.1.4) + version: 5.90.0(@swc/core@1.11.29)(webpack-cli@5.1.4) webpack-cli: specifier: ^5.1.4 version: 5.1.4(webpack-bundle-analyzer@4.5.0)(webpack-dev-server@5.0.4)(webpack@5.90.0) @@ -374,6 +374,61 @@ importers: specifier: workspace:^ version: link:../../packages/css + fixtures/vite-react-ssr: + dependencies: + compression: + specifier: ^1.8.0 + version: 1.8.0 + express: + specifier: ^5.0.1 + version: 5.1.0 + react: + specifier: ^19.0.0 + version: 19.1.0 + react-dom: + specifier: ^19.0.0 + version: 19.1.0(react@19.1.0) + sirv: + specifier: ^3.0.1 + version: 3.0.1 + devDependencies: + '@types/express': + specifier: ^5.0.0 + version: 5.0.2 + '@types/node': + specifier: ^22.13.4 + version: 22.15.3 + '@types/react': + specifier: ^19.0.10 + version: 19.1.5 + '@types/react-dom': + specifier: ^19.0.4 + version: 19.1.5(@types/react@19.1.5) + '@vanilla-extract/css': + specifier: workspace:* + version: link:../../packages/css + '@vanilla-extract/integration': + specifier: workspace:* + version: link:../../packages/integration + '@vanilla-extract/vite-plugin': + specifier: workspace:* + version: link:../../packages/vite-plugin + '@vitejs/plugin-react-swc': + specifier: ^3.8.0 + version: 3.10.0(vite@6.3.5(@types/node@22.15.3)(terser@5.26.0)(tsx@4.17.0)) + cross-env: + specifier: ^7.0.3 + version: 7.0.3 + resolve-from: + specifier: ^5.0.0 + version: 5.0.0 + typescript: + specifier: ~5.8.3 + version: 5.8.3 + vite: + specifier: ^6.1.1 + version: 6.3.5(@types/node@22.15.3)(terser@5.26.0)(tsx@4.17.0) + packages/babel-plugin-debug-ids: dependencies: '@babel/core': @@ -394,7 +449,7 @@ importers: version: link:../integration vite: specifier: ^5.0.0 || ^6.0.0 - version: 6.0.10(@types/node@22.15.3)(terser@5.26.0)(tsx@4.17.0) + version: 6.3.5(@types/node@22.15.3)(terser@5.26.0)(tsx@4.17.0) vite-node: specifier: ^3.2.2 version: 3.2.2(@types/node@22.15.3)(terser@5.26.0)(tsx@4.17.0) @@ -415,7 +470,7 @@ importers: version: 3.0.0 csstype: specifier: ^3.0.7 - version: 3.0.10 + version: 3.1.3 dedent: specifier: ^1.5.3 version: 1.5.3 @@ -533,10 +588,10 @@ importers: devDependencies: next: specifier: 12.3.4 - version: 12.3.4(@babel/core@7.23.9)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + version: 12.3.4(@babel/core@7.23.9)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) webpack: specifier: ^5.90.0 - version: 5.90.0(webpack-cli@5.1.4) + version: 5.90.0(@swc/core@1.11.29) packages/parcel-transformer: dependencies: @@ -566,7 +621,7 @@ importers: version: link:../../fixtures/themed '@rollup/plugin-json': specifier: ^6.1.0 - version: 6.1.0(rollup@4.30.1) + version: 6.1.0(rollup@4.41.0) '@vanilla-extract/css': specifier: workspace:^ version: link:../css @@ -575,10 +630,10 @@ importers: version: 0.25.0 rollup: specifier: ^4.20.0 - version: 4.30.1 + version: 4.41.0 rollup-plugin-esbuild: specifier: ^6.1.1 - version: 6.1.1(esbuild@0.25.0)(rollup@4.30.1) + version: 6.1.1(esbuild@0.25.0)(rollup@4.41.0) packages/sprinkles: devDependencies: @@ -599,7 +654,7 @@ importers: devDependencies: vite: specifier: ^5.0.0 || ^6.0.0 - version: 6.0.10(@types/node@22.15.3)(terser@5.26.0)(tsx@4.17.0) + version: 6.3.5(@types/node@22.15.3)(terser@5.26.0)(tsx@4.17.0) packages/webpack-plugin: dependencies: @@ -608,7 +663,7 @@ importers: version: link:../integration debug: specifier: ^4.3.1 - version: 4.4.0(supports-color@9.2.3) + version: 4.4.1(supports-color@9.2.3) loader-utils: specifier: ^2.0.0 version: 2.0.2 @@ -621,7 +676,7 @@ importers: version: 4.1.7 webpack: specifier: ^5.90.0 - version: 5.90.0(webpack-cli@5.1.4) + version: 5.90.0(@swc/core@1.11.29) scripts: devDependencies: @@ -630,13 +685,13 @@ importers: version: 2.0.2 rollup: specifier: ^4.20.0 - version: 4.30.1 + version: 4.41.0 rollup-plugin-dts: specifier: ^6.1.1 - version: 6.1.1(rollup@4.30.1)(typescript@5.8.3) + version: 6.1.1(rollup@4.41.0)(typescript@5.8.3) rollup-plugin-node-externals: specifier: ^7.1.3 - version: 7.1.3(rollup@4.30.1) + version: 7.1.3(rollup@4.41.0) tinyglobby: specifier: ^0.2.13 version: 0.2.13 @@ -715,7 +770,7 @@ importers: version: 2.2.4 '@types/webpack-bundle-analyzer': specifier: ^4 - version: 4.4.1(webpack-cli@5.1.4) + version: 4.4.1(@swc/core@1.11.29)(webpack-cli@5.1.4) '@vanilla-extract/css': specifier: workspace:* version: link:../packages/css @@ -748,7 +803,7 @@ importers: version: 7.1.2(webpack@5.90.0) csstype: specifier: ^3.0.7 - version: 3.0.10 + version: 3.1.3 eval: specifier: 0.1.8 version: 0.1.8 @@ -760,7 +815,7 @@ importers: version: 4.0.3 html-render-webpack-plugin: specifier: ^3.0.2 - version: 3.0.2(express@4.18.2) + version: 3.0.2(express@5.1.0) mdx-loader: specifier: ^3.0.2 version: 3.0.2(react@18.2.0) @@ -769,7 +824,7 @@ importers: version: 2.7.7(webpack@5.90.0) netlify-cli: specifier: ^11.8.3 - version: 11.8.3(@types/express@4.17.21) + version: 11.8.3(@swc/core@1.11.29)(@types/express@4.17.21) null-loader: specifier: ^4.0.1 version: 4.0.1(webpack@5.90.0) @@ -778,10 +833,10 @@ importers: version: 0.3.0 tailwindcss: specifier: ^2.1.2 - version: 2.2.19(autoprefixer@10.4.17(postcss@8.5.1))(postcss@8.5.1)(ts-node@10.9.1(@types/node@16.11.10)(typescript@4.9.4)) + version: 2.2.19(autoprefixer@10.4.17(postcss@8.5.3))(postcss@8.5.3)(ts-node@10.9.1(@swc/core@1.11.29)(@types/node@16.11.10)(typescript@4.9.4)) webpack: specifier: ^5.90.0 - version: 5.90.0(webpack-cli@5.1.4) + version: 5.90.0(@swc/core@1.11.29)(webpack-cli@5.1.4) webpack-bundle-analyzer: specifier: ^4.4.1 version: 4.5.0 @@ -835,13 +890,13 @@ importers: version: link:../fixtures/unused-modules '@parcel/config-default': specifier: ^2.7.0 - version: 2.8.3(@parcel/core@2.11.0)(cssnano@5.1.15(postcss@8.5.1))(postcss@8.5.1)(relateurl@0.2.7)(srcset@4.0.0)(terser@5.26.0) + version: 2.8.3(@parcel/core@2.11.0)(cssnano@5.1.15(postcss@8.5.3))(postcss@8.5.3)(relateurl@0.2.7)(srcset@4.0.0)(terser@5.26.0) '@parcel/core': specifier: ^2.7.0 version: 2.11.0 '@types/mini-css-extract-plugin': specifier: ^1.2.2 - version: 1.4.3(esbuild@0.25.0) + version: 1.4.3(@swc/core@1.11.29)(esbuild@0.25.0) '@types/webpack-dev-server': specifier: ^3.11.1 version: 3.11.6 @@ -862,28 +917,34 @@ importers: version: link:../packages/webpack-plugin babel-loader: specifier: ^9.1.3 - version: 9.1.3(@babel/core@7.23.9)(webpack@5.90.0(esbuild@0.25.0)) + version: 9.1.3(@babel/core@7.23.9)(webpack@5.90.0(@swc/core@1.11.29)(esbuild@0.25.0)) + compression: + specifier: ^1.8.0 + version: 1.8.0 css-loader: specifier: ^7.1.2 - version: 7.1.2(webpack@5.90.0(esbuild@0.25.0)) + version: 7.1.2(webpack@5.90.0(@swc/core@1.11.29)(esbuild@0.25.0)) cssnano: specifier: ^5.1.15 - version: 5.1.15(postcss@8.5.1) + version: 5.1.15(postcss@8.5.3) cssnano-preset-lite: specifier: ^2.1.3 - version: 2.1.3(postcss@8.5.1) + version: 2.1.3(postcss@8.5.3) esbuild: specifier: ~0.25.0 version: 0.25.0 + express: + specifier: ^5.1.0 + version: 5.1.0 got: specifier: ^11.8.2 version: 11.8.3 html-webpack-plugin: specifier: ^5.3.1 - version: 5.5.0(webpack@5.90.0(esbuild@0.25.0)) + version: 5.5.0(webpack@5.90.0(@swc/core@1.11.29)(esbuild@0.25.0)) mini-css-extract-plugin: specifier: ^2.7.7 - version: 2.7.7(webpack@5.90.0(esbuild@0.25.0)) + version: 2.7.7(webpack@5.90.0(@swc/core@1.11.29)(esbuild@0.25.0)) minimist: specifier: ^1.2.5 version: 1.2.8 @@ -895,32 +956,41 @@ importers: version: 1.0.28 postcss: specifier: ^8.4.32 - version: 8.5.1 + version: 8.5.3 prettier: specifier: ^2.8.8 version: 2.8.8 serve-handler: specifier: ^6.1.3 version: 6.1.3 + sirv: + specifier: ^3.0.1 + version: 3.0.1 style-loader: specifier: ^2.0.0 - version: 2.0.0(webpack@5.90.0(esbuild@0.25.0)) + version: 2.0.0(webpack@5.90.0(@swc/core@1.11.29)(esbuild@0.25.0)) vite: specifier: ^5.0.0 || ^6.0.0 - version: 6.0.10(@types/node@22.15.3)(terser@5.26.0)(tsx@4.17.0) + version: 6.3.5(@types/node@22.15.3)(terser@5.26.0)(tsx@4.17.0) vite-plugin-inspect: specifier: ^0.8.1 - version: 0.8.9(rollup@4.30.1)(vite@6.0.10(@types/node@22.15.3)(terser@5.26.0)(tsx@4.17.0)) + version: 0.8.9(rollup@4.41.0)(vite@6.3.5(@types/node@22.15.3)(terser@5.26.0)(tsx@4.17.0)) webpack: specifier: ^5.90.0 - version: 5.90.0(esbuild@0.25.0) + version: 5.90.0(@swc/core@1.11.29)(esbuild@0.25.0) webpack-dev-server: specifier: ^5.0.4 - version: 5.0.4(webpack@5.90.0(esbuild@0.25.0)) + version: 5.0.4(webpack@5.90.0(@swc/core@1.11.29)(esbuild@0.25.0)) webpack-merge: specifier: ^6.0.1 version: 6.0.1 devDependencies: + '@types/compression': + specifier: ^1.8.1 + version: 1.8.1 + '@types/express': + specifier: ^5.0.2 + version: 5.0.2 '@types/minimist': specifier: ^1 version: 1.2.2 @@ -941,7 +1011,7 @@ importers: version: 10.0.0 '@testing-library/jest-dom': specifier: ^6.4.2 - version: 6.4.2(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@22.15.3)(ts-node@10.9.1(@types/node@22.15.3)(typescript@5.8.3)))(vitest@3.0.2(@types/node@22.15.3)(jsdom@20.0.3)(terser@5.26.0)(tsx@4.17.0)) + version: 6.4.2(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@22.15.3)(ts-node@10.9.1(@swc/core@1.11.29)(@types/node@22.15.3)(typescript@5.8.3)))(vitest@3.0.2(@types/node@22.15.3)(jsdom@20.0.3)(terser@5.26.0)(tsx@4.17.0)) '@vanilla-extract-private/test-helpers': specifier: workspace:* version: link:../test-helpers @@ -968,7 +1038,7 @@ importers: version: link:../packages/sprinkles vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(typescript@5.8.3)(vite@6.0.10(@types/node@22.15.3)(terser@5.26.0)(tsx@4.17.0)) + version: 5.1.4(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.3)(terser@5.26.0)(tsx@4.17.0)) packages: @@ -1870,12 +1940,6 @@ packages: cpu: [ppc64] os: [aix] - '@esbuild/aix-ppc64@0.24.2': - resolution: {integrity: sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [aix] - '@esbuild/aix-ppc64@0.25.0': resolution: {integrity: sha512-O7vun9Sf8DFjH2UtqK8Ku3LkquL9SZL8OLY1T5NZkA34+wG3OQF7cl4Ql8vdNzM6fzBbYfLaiRLIOZ+2FOCgBQ==} engines: {node: '>=18'} @@ -1906,12 +1970,6 @@ packages: cpu: [arm64] os: [android] - '@esbuild/android-arm64@0.24.2': - resolution: {integrity: sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [android] - '@esbuild/android-arm64@0.25.0': resolution: {integrity: sha512-grvv8WncGjDSyUBjN9yHXNt+cq0snxXbDxy5pJtzMKGmmpPxeAmAhWxXI+01lU5rwZomDgD3kJwulEnhTRUd6g==} engines: {node: '>=18'} @@ -1942,12 +2000,6 @@ packages: cpu: [arm] os: [android] - '@esbuild/android-arm@0.24.2': - resolution: {integrity: sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==} - engines: {node: '>=18'} - cpu: [arm] - os: [android] - '@esbuild/android-arm@0.25.0': resolution: {integrity: sha512-PTyWCYYiU0+1eJKmw21lWtC+d08JDZPQ5g+kFyxP0V+es6VPPSUhM6zk8iImp2jbV6GwjX4pap0JFbUQN65X1g==} engines: {node: '>=18'} @@ -1978,12 +2030,6 @@ packages: cpu: [x64] os: [android] - '@esbuild/android-x64@0.24.2': - resolution: {integrity: sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==} - engines: {node: '>=18'} - cpu: [x64] - os: [android] - '@esbuild/android-x64@0.25.0': resolution: {integrity: sha512-m/ix7SfKG5buCnxasr52+LI78SQ+wgdENi9CqyCXwjVR2X4Jkz+BpC3le3AoBPYTC9NHklwngVXvbJ9/Akhrfg==} engines: {node: '>=18'} @@ -2014,12 +2060,6 @@ packages: cpu: [arm64] os: [darwin] - '@esbuild/darwin-arm64@0.24.2': - resolution: {integrity: sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==} - engines: {node: '>=18'} - cpu: [arm64] - os: [darwin] - '@esbuild/darwin-arm64@0.25.0': resolution: {integrity: sha512-mVwdUb5SRkPayVadIOI78K7aAnPamoeFR2bT5nszFUZ9P8UpK4ratOdYbZZXYSqPKMHfS1wdHCJk1P1EZpRdvw==} engines: {node: '>=18'} @@ -2050,12 +2090,6 @@ packages: cpu: [x64] os: [darwin] - '@esbuild/darwin-x64@0.24.2': - resolution: {integrity: sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==} - engines: {node: '>=18'} - cpu: [x64] - os: [darwin] - '@esbuild/darwin-x64@0.25.0': resolution: {integrity: sha512-DgDaYsPWFTS4S3nWpFcMn/33ZZwAAeAFKNHNa1QN0rI4pUjgqf0f7ONmXf6d22tqTY+H9FNdgeaAa+YIFUn2Rg==} engines: {node: '>=18'} @@ -2086,12 +2120,6 @@ packages: cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-arm64@0.24.2': - resolution: {integrity: sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [freebsd] - '@esbuild/freebsd-arm64@0.25.0': resolution: {integrity: sha512-VN4ocxy6dxefN1MepBx/iD1dH5K8qNtNe227I0mnTRjry8tj5MRk4zprLEdG8WPyAPb93/e4pSgi1SoHdgOa4w==} engines: {node: '>=18'} @@ -2122,12 +2150,6 @@ packages: cpu: [x64] os: [freebsd] - '@esbuild/freebsd-x64@0.24.2': - resolution: {integrity: sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==} - engines: {node: '>=18'} - cpu: [x64] - os: [freebsd] - '@esbuild/freebsd-x64@0.25.0': resolution: {integrity: sha512-mrSgt7lCh07FY+hDD1TxiTyIHyttn6vnjesnPoVDNmDfOmggTLXRv8Id5fNZey1gl/V2dyVK1VXXqVsQIiAk+A==} engines: {node: '>=18'} @@ -2158,12 +2180,6 @@ packages: cpu: [arm64] os: [linux] - '@esbuild/linux-arm64@0.24.2': - resolution: {integrity: sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [linux] - '@esbuild/linux-arm64@0.25.0': resolution: {integrity: sha512-9QAQjTWNDM/Vk2bgBl17yWuZxZNQIF0OUUuPZRKoDtqF2k4EtYbpyiG5/Dk7nqeK6kIJWPYldkOcBqjXjrUlmg==} engines: {node: '>=18'} @@ -2194,12 +2210,6 @@ packages: cpu: [arm] os: [linux] - '@esbuild/linux-arm@0.24.2': - resolution: {integrity: sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==} - engines: {node: '>=18'} - cpu: [arm] - os: [linux] - '@esbuild/linux-arm@0.25.0': resolution: {integrity: sha512-vkB3IYj2IDo3g9xX7HqhPYxVkNQe8qTK55fraQyTzTX/fxaDtXiEnavv9geOsonh2Fd2RMB+i5cbhu2zMNWJwg==} engines: {node: '>=18'} @@ -2230,12 +2240,6 @@ packages: cpu: [ia32] os: [linux] - '@esbuild/linux-ia32@0.24.2': - resolution: {integrity: sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==} - engines: {node: '>=18'} - cpu: [ia32] - os: [linux] - '@esbuild/linux-ia32@0.25.0': resolution: {integrity: sha512-43ET5bHbphBegyeqLb7I1eYn2P/JYGNmzzdidq/w0T8E2SsYL1U6un2NFROFRg1JZLTzdCoRomg8Rvf9M6W6Gg==} engines: {node: '>=18'} @@ -2266,12 +2270,6 @@ packages: cpu: [loong64] os: [linux] - '@esbuild/linux-loong64@0.24.2': - resolution: {integrity: sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==} - engines: {node: '>=18'} - cpu: [loong64] - os: [linux] - '@esbuild/linux-loong64@0.25.0': resolution: {integrity: sha512-fC95c/xyNFueMhClxJmeRIj2yrSMdDfmqJnyOY4ZqsALkDrrKJfIg5NTMSzVBr5YW1jf+l7/cndBfP3MSDpoHw==} engines: {node: '>=18'} @@ -2302,12 +2300,6 @@ packages: cpu: [mips64el] os: [linux] - '@esbuild/linux-mips64el@0.24.2': - resolution: {integrity: sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==} - engines: {node: '>=18'} - cpu: [mips64el] - os: [linux] - '@esbuild/linux-mips64el@0.25.0': resolution: {integrity: sha512-nkAMFju7KDW73T1DdH7glcyIptm95a7Le8irTQNO/qtkoyypZAnjchQgooFUDQhNAy4iu08N79W4T4pMBwhPwQ==} engines: {node: '>=18'} @@ -2338,12 +2330,6 @@ packages: cpu: [ppc64] os: [linux] - '@esbuild/linux-ppc64@0.24.2': - resolution: {integrity: sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [linux] - '@esbuild/linux-ppc64@0.25.0': resolution: {integrity: sha512-NhyOejdhRGS8Iwv+KKR2zTq2PpysF9XqY+Zk77vQHqNbo/PwZCzB5/h7VGuREZm1fixhs4Q/qWRSi5zmAiO4Fw==} engines: {node: '>=18'} @@ -2374,12 +2360,6 @@ packages: cpu: [riscv64] os: [linux] - '@esbuild/linux-riscv64@0.24.2': - resolution: {integrity: sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==} - engines: {node: '>=18'} - cpu: [riscv64] - os: [linux] - '@esbuild/linux-riscv64@0.25.0': resolution: {integrity: sha512-5S/rbP5OY+GHLC5qXp1y/Mx//e92L1YDqkiBbO9TQOvuFXM+iDqUNG5XopAnXoRH3FjIUDkeGcY1cgNvnXp/kA==} engines: {node: '>=18'} @@ -2410,12 +2390,6 @@ packages: cpu: [s390x] os: [linux] - '@esbuild/linux-s390x@0.24.2': - resolution: {integrity: sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==} - engines: {node: '>=18'} - cpu: [s390x] - os: [linux] - '@esbuild/linux-s390x@0.25.0': resolution: {integrity: sha512-XM2BFsEBz0Fw37V0zU4CXfcfuACMrppsMFKdYY2WuTS3yi8O1nFOhil/xhKTmE1nPmVyvQJjJivgDT+xh8pXJA==} engines: {node: '>=18'} @@ -2446,24 +2420,12 @@ packages: cpu: [x64] os: [linux] - '@esbuild/linux-x64@0.24.2': - resolution: {integrity: sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==} - engines: {node: '>=18'} - cpu: [x64] - os: [linux] - '@esbuild/linux-x64@0.25.0': resolution: {integrity: sha512-9yl91rHw/cpwMCNytUDxwj2XjFpxML0y9HAOH9pNVQDpQrBxHy01Dx+vaMu0N1CKa/RzBD2hB4u//nfc+Sd3Cw==} engines: {node: '>=18'} cpu: [x64] os: [linux] - '@esbuild/netbsd-arm64@0.24.2': - resolution: {integrity: sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==} - engines: {node: '>=18'} - cpu: [arm64] - os: [netbsd] - '@esbuild/netbsd-arm64@0.25.0': resolution: {integrity: sha512-RuG4PSMPFfrkH6UwCAqBzauBWTygTvb1nxWasEJooGSJ/NwRw7b2HOwyRTQIU97Hq37l3npXoZGYMy3b3xYvPw==} engines: {node: '>=18'} @@ -2494,12 +2456,6 @@ packages: cpu: [x64] os: [netbsd] - '@esbuild/netbsd-x64@0.24.2': - resolution: {integrity: sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==} - engines: {node: '>=18'} - cpu: [x64] - os: [netbsd] - '@esbuild/netbsd-x64@0.25.0': resolution: {integrity: sha512-jl+qisSB5jk01N5f7sPCsBENCOlPiS/xptD5yxOx2oqQfyourJwIKLRA2yqWdifj3owQZCL2sn6o08dBzZGQzA==} engines: {node: '>=18'} @@ -2512,12 +2468,6 @@ packages: cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-arm64@0.24.2': - resolution: {integrity: sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==} - engines: {node: '>=18'} - cpu: [arm64] - os: [openbsd] - '@esbuild/openbsd-arm64@0.25.0': resolution: {integrity: sha512-21sUNbq2r84YE+SJDfaQRvdgznTD8Xc0oc3p3iW/a1EVWeNj/SdUCbm5U0itZPQYRuRTW20fPMWMpcrciH2EJw==} engines: {node: '>=18'} @@ -2548,12 +2498,6 @@ packages: cpu: [x64] os: [openbsd] - '@esbuild/openbsd-x64@0.24.2': - resolution: {integrity: sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==} - engines: {node: '>=18'} - cpu: [x64] - os: [openbsd] - '@esbuild/openbsd-x64@0.25.0': resolution: {integrity: sha512-2gwwriSMPcCFRlPlKx3zLQhfN/2WjJ2NSlg5TKLQOJdV0mSxIcYNTMhk3H3ulL/cak+Xj0lY1Ym9ysDV1igceg==} engines: {node: '>=18'} @@ -2584,12 +2528,6 @@ packages: cpu: [x64] os: [sunos] - '@esbuild/sunos-x64@0.24.2': - resolution: {integrity: sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==} - engines: {node: '>=18'} - cpu: [x64] - os: [sunos] - '@esbuild/sunos-x64@0.25.0': resolution: {integrity: sha512-bxI7ThgLzPrPz484/S9jLlvUAHYMzy6I0XiU1ZMeAEOBcS0VePBFxh1JjTQt3Xiat5b6Oh4x7UC7IwKQKIJRIg==} engines: {node: '>=18'} @@ -2620,12 +2558,6 @@ packages: cpu: [arm64] os: [win32] - '@esbuild/win32-arm64@0.24.2': - resolution: {integrity: sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==} - engines: {node: '>=18'} - cpu: [arm64] - os: [win32] - '@esbuild/win32-arm64@0.25.0': resolution: {integrity: sha512-ZUAc2YK6JW89xTbXvftxdnYy3m4iHIkDtK3CLce8wg8M2L+YZhIvO1DKpxrd0Yr59AeNNkTiic9YLf6FTtXWMw==} engines: {node: '>=18'} @@ -2656,12 +2588,6 @@ packages: cpu: [ia32] os: [win32] - '@esbuild/win32-ia32@0.24.2': - resolution: {integrity: sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==} - engines: {node: '>=18'} - cpu: [ia32] - os: [win32] - '@esbuild/win32-ia32@0.25.0': resolution: {integrity: sha512-eSNxISBu8XweVEWG31/JzjkIGbGIJN/TrRoiSVZwZ6pkC6VX4Im/WV2cz559/TXLcYbcrDN8JtKgd9DJVIo8GA==} engines: {node: '>=18'} @@ -2692,12 +2618,6 @@ packages: cpu: [x64] os: [win32] - '@esbuild/win32-x64@0.24.2': - resolution: {integrity: sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==} - engines: {node: '>=18'} - cpu: [x64] - os: [win32] - '@esbuild/win32-x64@0.25.0': resolution: {integrity: sha512-ZENoHJBxA20C2zFzh6AI4fT6RraMzjYw4xKWemRTRmRVtN9c5DcH9r/f2ihEkMjOW5eGgrwCslG/+Y/3bL+DHQ==} engines: {node: '>=18'} @@ -3929,6 +3849,9 @@ packages: '@remix-run/web-stream@1.1.0': resolution: {integrity: sha512-KRJtwrjRV5Bb+pM7zxcTJkhIqWWSy+MYsIxHK+0m5atcznsf15YwUBWHWulZerV2+vvHH1Lp1DD7pw6qKW8SgA==} + '@rolldown/pluginutils@1.0.0-beta.9': + resolution: {integrity: sha512-e9MeMtVWo186sgvFFJOPGy7/d2j2mZhLJIdVW0C/xDluuOvymEATqz6zKsP0ZmXGzQtqlyjz5sC1sYQUoJG98w==} + '@rollup/plugin-alias@3.1.8': resolution: {integrity: sha512-tf7HeSs/06wO2LPqKNY3Ckbvy0JRe7Jyn98bXnt/gfrxbe+AJucoNJlsEVi9sdgbQtXemjbakCpO/76JVgnHpA==} engines: {node: '>=8.0.0'} @@ -3981,98 +3904,103 @@ packages: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.30.1': - resolution: {integrity: sha512-pSWY+EVt3rJ9fQ3IqlrEUtXh3cGqGtPDH1FQlNZehO2yYxCHEX1SPsz1M//NXwYfbTlcKr9WObLnJX9FsS9K1Q==} + '@rollup/rollup-android-arm-eabi@4.41.0': + resolution: {integrity: sha512-KxN+zCjOYHGwCl4UCtSfZ6jrq/qi88JDUtiEFk8LELEHq2Egfc/FgW+jItZiOLRuQfb/3xJSgFuNPC9jzggX+A==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.30.1': - resolution: {integrity: sha512-/NA2qXxE3D/BRjOJM8wQblmArQq1YoBVJjrjoTSBS09jgUisq7bqxNHJ8kjCHeV21W/9WDGwJEWSN0KQ2mtD/w==} + '@rollup/rollup-android-arm64@4.41.0': + resolution: {integrity: sha512-yDvqx3lWlcugozax3DItKJI5j05B0d4Kvnjx+5mwiUpWramVvmAByYigMplaoAQ3pvdprGCTCE03eduqE/8mPQ==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.30.1': - resolution: {integrity: sha512-r7FQIXD7gB0WJ5mokTUgUWPl0eYIH0wnxqeSAhuIwvnnpjdVB8cRRClyKLQr7lgzjctkbp5KmswWszlwYln03Q==} + '@rollup/rollup-darwin-arm64@4.41.0': + resolution: {integrity: sha512-2KOU574vD3gzcPSjxO0eyR5iWlnxxtmW1F5CkNOHmMlueKNCQkxR6+ekgWyVnz6zaZihpUNkGxjsYrkTJKhkaw==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.30.1': - resolution: {integrity: sha512-x78BavIwSH6sqfP2xeI1hd1GpHL8J4W2BXcVM/5KYKoAD3nNsfitQhvWSw+TFtQTLZ9OmlF+FEInEHyubut2OA==} + '@rollup/rollup-darwin-x64@4.41.0': + resolution: {integrity: sha512-gE5ACNSxHcEZyP2BA9TuTakfZvULEW4YAOtxl/A/YDbIir/wPKukde0BNPlnBiP88ecaN4BJI2TtAd+HKuZPQQ==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.30.1': - resolution: {integrity: sha512-HYTlUAjbO1z8ywxsDFWADfTRfTIIy/oUlfIDmlHYmjUP2QRDTzBuWXc9O4CXM+bo9qfiCclmHk1x4ogBjOUpUQ==} + '@rollup/rollup-freebsd-arm64@4.41.0': + resolution: {integrity: sha512-GSxU6r5HnWij7FoSo7cZg3l5GPg4HFLkzsFFh0N/b16q5buW1NAWuCJ+HMtIdUEi6XF0qH+hN0TEd78laRp7Dg==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.30.1': - resolution: {integrity: sha512-1MEdGqogQLccphhX5myCJqeGNYTNcmTyaic9S7CG3JhwuIByJ7J05vGbZxsizQthP1xpVx7kd3o31eOogfEirw==} + '@rollup/rollup-freebsd-x64@4.41.0': + resolution: {integrity: sha512-KGiGKGDg8qLRyOWmk6IeiHJzsN/OYxO6nSbT0Vj4MwjS2XQy/5emsmtoqLAabqrohbgLWJ5GV3s/ljdrIr8Qjg==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.30.1': - resolution: {integrity: sha512-PaMRNBSqCx7K3Wc9QZkFx5+CX27WFpAMxJNiYGAXfmMIKC7jstlr32UhTgK6T07OtqR+wYlWm9IxzennjnvdJg==} + '@rollup/rollup-linux-arm-gnueabihf@4.41.0': + resolution: {integrity: sha512-46OzWeqEVQyX3N2/QdiU/CMXYDH/lSHpgfBkuhl3igpZiaB3ZIfSjKuOnybFVBQzjsLwkus2mjaESy8H41SzvA==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.30.1': - resolution: {integrity: sha512-B8Rcyj9AV7ZlEFqvB5BubG5iO6ANDsRKlhIxySXcF1axXYUyqwBok+XZPgIYGBgs7LDXfWfifxhw0Ik57T0Yug==} + '@rollup/rollup-linux-arm-musleabihf@4.41.0': + resolution: {integrity: sha512-lfgW3KtQP4YauqdPpcUZHPcqQXmTmH4nYU0cplNeW583CMkAGjtImw4PKli09NFi2iQgChk4e9erkwlfYem6Lg==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.30.1': - resolution: {integrity: sha512-hqVyueGxAj3cBKrAI4aFHLV+h0Lv5VgWZs9CUGqr1z0fZtlADVV1YPOij6AhcK5An33EXaxnDLmJdQikcn5NEw==} + '@rollup/rollup-linux-arm64-gnu@4.41.0': + resolution: {integrity: sha512-nn8mEyzMbdEJzT7cwxgObuwviMx6kPRxzYiOl6o/o+ChQq23gfdlZcUNnt89lPhhz3BYsZ72rp0rxNqBSfqlqw==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.30.1': - resolution: {integrity: sha512-i4Ab2vnvS1AE1PyOIGp2kXni69gU2DAUVt6FSXeIqUCPIR3ZlheMW3oP2JkukDfu3PsexYRbOiJrY+yVNSk9oA==} + '@rollup/rollup-linux-arm64-musl@4.41.0': + resolution: {integrity: sha512-l+QK99je2zUKGd31Gh+45c4pGDAqZSuWQiuRFCdHYC2CSiO47qUWsCcenrI6p22hvHZrDje9QjwSMAFL3iwXwQ==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-loongarch64-gnu@4.30.1': - resolution: {integrity: sha512-fARcF5g296snX0oLGkVxPmysetwUk2zmHcca+e9ObOovBR++9ZPOhqFUM61UUZ2EYpXVPN1redgqVoBB34nTpQ==} + '@rollup/rollup-linux-loongarch64-gnu@4.41.0': + resolution: {integrity: sha512-WbnJaxPv1gPIm6S8O/Wg+wfE/OzGSXlBMbOe4ie+zMyykMOeqmgD1BhPxZQuDqwUN+0T/xOFtL2RUWBspnZj3w==} cpu: [loong64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.30.1': - resolution: {integrity: sha512-GLrZraoO3wVT4uFXh67ElpwQY0DIygxdv0BNW9Hkm3X34wu+BkqrDrkcsIapAY+N2ATEbvak0XQ9gxZtCIA5Rw==} + '@rollup/rollup-linux-powerpc64le-gnu@4.41.0': + resolution: {integrity: sha512-eRDWR5t67/b2g8Q/S8XPi0YdbKcCs4WQ8vklNnUYLaSWF+Cbv2axZsp4jni6/j7eKvMLYCYdcsv8dcU+a6QNFg==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.30.1': - resolution: {integrity: sha512-0WKLaAUUHKBtll0wvOmh6yh3S0wSU9+yas923JIChfxOaaBarmb/lBKPF0w/+jTVozFnOXJeRGZ8NvOxvk/jcw==} + '@rollup/rollup-linux-riscv64-gnu@4.41.0': + resolution: {integrity: sha512-TWrZb6GF5jsEKG7T1IHwlLMDRy2f3DPqYldmIhnA2DVqvvhY2Ai184vZGgahRrg8k9UBWoSlHv+suRfTN7Ua4A==} + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-riscv64-musl@4.41.0': + resolution: {integrity: sha512-ieQljaZKuJpmWvd8gW87ZmSFwid6AxMDk5bhONJ57U8zT77zpZ/TPKkU9HpnnFrM4zsgr4kiGuzbIbZTGi7u9A==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.30.1': - resolution: {integrity: sha512-GWFs97Ruxo5Bt+cvVTQkOJ6TIx0xJDD/bMAOXWJg8TCSTEK8RnFeOeiFTxKniTc4vMIaWvCplMAFBt9miGxgkA==} + '@rollup/rollup-linux-s390x-gnu@4.41.0': + resolution: {integrity: sha512-/L3pW48SxrWAlVsKCN0dGLB2bi8Nv8pr5S5ocSM+S0XCn5RCVCXqi8GVtHFsOBBCSeR+u9brV2zno5+mg3S4Aw==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.30.1': - resolution: {integrity: sha512-UtgGb7QGgXDIO+tqqJ5oZRGHsDLO8SlpE4MhqpY9Llpzi5rJMvrK6ZGhsRCST2abZdBqIBeXW6WPD5fGK5SDwg==} + '@rollup/rollup-linux-x64-gnu@4.41.0': + resolution: {integrity: sha512-XMLeKjyH8NsEDCRptf6LO8lJk23o9wvB+dJwcXMaH6ZQbbkHu2dbGIUindbMtRN6ux1xKi16iXWu6q9mu7gDhQ==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.30.1': - resolution: {integrity: sha512-V9U8Ey2UqmQsBT+xTOeMzPzwDzyXmnAoO4edZhL7INkwQcaW1Ckv3WJX3qrrp/VHaDkEWIBWhRwP47r8cdrOow==} + '@rollup/rollup-linux-x64-musl@4.41.0': + resolution: {integrity: sha512-m/P7LycHZTvSQeXhFmgmdqEiTqSV80zn6xHaQ1JSqwCtD1YGtwEK515Qmy9DcB2HK4dOUVypQxvhVSy06cJPEg==} cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.30.1': - resolution: {integrity: sha512-WabtHWiPaFF47W3PkHnjbmWawnX/aE57K47ZDT1BXTS5GgrBUEpvOzq0FI0V/UYzQJgdb8XlhVNH8/fwV8xDjw==} + '@rollup/rollup-win32-arm64-msvc@4.41.0': + resolution: {integrity: sha512-4yodtcOrFHpbomJGVEqZ8fzD4kfBeCbpsUy5Pqk4RluXOdsWdjLnjhiKy2w3qzcASWd04fp52Xz7JKarVJ5BTg==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.30.1': - resolution: {integrity: sha512-pxHAU+Zv39hLUTdQQHUVHf4P+0C47y/ZloorHpzs2SXMRqeAWmGghzAhfOlzFHHwjvgokdFAhC4V+6kC1lRRfw==} + '@rollup/rollup-win32-ia32-msvc@4.41.0': + resolution: {integrity: sha512-tmazCrAsKzdkXssEc65zIE1oC6xPHwfy9d5Ta25SRCDOZS+I6RypVVShWALNuU9bxIfGA0aqrmzlzoM5wO5SPQ==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.30.1': - resolution: {integrity: sha512-D6qjsXGcvhTjv0kI4fU8tUuBDF/Ueee4SVX79VfNDXZa64TfCW1Slkb6Z7O1p7vflqZjcmOVdZlqf8gvJxc6og==} + '@rollup/rollup-win32-x64-msvc@4.41.0': + resolution: {integrity: sha512-h1J+Yzjo/X+0EAvR2kIXJDuTuyT7drc+t2ALY0nIcGPbTatNOf0VWdhEA2Z4AAjv6X1NJV7SYo5oCTYRJhSlVA==} cpu: [x64] os: [win32] @@ -4137,6 +4065,78 @@ packages: '@sinonjs/fake-timers@10.0.2': resolution: {integrity: sha512-SwUDyjWnah1AaNl7kxsa7cfLhlTYoiyhDAIgyh+El30YvXs/o7OLXpYH88Zdhyx9JExKrmHDJ+10bwIcY80Jmw==} + '@swc/core-darwin-arm64@1.11.29': + resolution: {integrity: sha512-whsCX7URzbuS5aET58c75Dloby3Gtj/ITk2vc4WW6pSDQKSPDuONsIcZ7B2ng8oz0K6ttbi4p3H/PNPQLJ4maQ==} + engines: {node: '>=10'} + cpu: [arm64] + os: [darwin] + + '@swc/core-darwin-x64@1.11.29': + resolution: {integrity: sha512-S3eTo/KYFk+76cWJRgX30hylN5XkSmjYtCBnM4jPLYn7L6zWYEPajsFLmruQEiTEDUg0gBEWLMNyUeghtswouw==} + engines: {node: '>=10'} + cpu: [x64] + os: [darwin] + + '@swc/core-linux-arm-gnueabihf@1.11.29': + resolution: {integrity: sha512-o9gdshbzkUMG6azldHdmKklcfrcMx+a23d/2qHQHPDLUPAN+Trd+sDQUYArK5Fcm7TlpG4sczz95ghN0DMkM7g==} + engines: {node: '>=10'} + cpu: [arm] + os: [linux] + + '@swc/core-linux-arm64-gnu@1.11.29': + resolution: {integrity: sha512-sLoaciOgUKQF1KX9T6hPGzvhOQaJn+3DHy4LOHeXhQqvBgr+7QcZ+hl4uixPKTzxk6hy6Hb0QOvQEdBAAR1gXw==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + + '@swc/core-linux-arm64-musl@1.11.29': + resolution: {integrity: sha512-PwjB10BC0N+Ce7RU/L23eYch6lXFHz7r3NFavIcwDNa/AAqywfxyxh13OeRy+P0cg7NDpWEETWspXeI4Ek8otw==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + + '@swc/core-linux-x64-gnu@1.11.29': + resolution: {integrity: sha512-i62vBVoPaVe9A3mc6gJG07n0/e7FVeAvdD9uzZTtGLiuIfVfIBta8EMquzvf+POLycSk79Z6lRhGPZPJPYiQaA==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + + '@swc/core-linux-x64-musl@1.11.29': + resolution: {integrity: sha512-YER0XU1xqFdK0hKkfSVX1YIyCvMDI7K07GIpefPvcfyNGs38AXKhb2byySDjbVxkdl4dycaxxhRyhQ2gKSlsFQ==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + + '@swc/core-win32-arm64-msvc@1.11.29': + resolution: {integrity: sha512-po+WHw+k9g6FAg5IJ+sMwtA/fIUL3zPQ4m/uJgONBATCVnDDkyW6dBA49uHNVtSEvjvhuD8DVWdFP847YTcITw==} + engines: {node: '>=10'} + cpu: [arm64] + os: [win32] + + '@swc/core-win32-ia32-msvc@1.11.29': + resolution: {integrity: sha512-h+NjOrbqdRBYr5ItmStmQt6x3tnhqgwbj9YxdGPepbTDamFv7vFnhZR0YfB3jz3UKJ8H3uGJ65Zw1VsC+xpFkg==} + engines: {node: '>=10'} + cpu: [ia32] + os: [win32] + + '@swc/core-win32-x64-msvc@1.11.29': + resolution: {integrity: sha512-Q8cs2BDV9wqDvqobkXOYdC+pLUSEpX/KvI0Dgfun1F+LzuLotRFuDhrvkU9ETJA6OnD2+Fn/ieHgloiKA/Mn/g==} + engines: {node: '>=10'} + cpu: [x64] + os: [win32] + + '@swc/core@1.11.29': + resolution: {integrity: sha512-g4mThMIpWbNhV8G2rWp5a5/Igv8/2UFRJx2yImrLGMgrDDYZIopqZ/z0jZxDgqNA1QDx93rpwNF7jGsxVWcMlA==} + engines: {node: '>=10'} + peerDependencies: + '@swc/helpers': '>=0.5.17' + peerDependenciesMeta: + '@swc/helpers': + optional: true + + '@swc/counter@0.1.3': + resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} + '@swc/helpers@0.4.11': resolution: {integrity: sha512-rEUrBSGIoSFuYxwBYtlUFMlE2CwGhmW+w9355/5oduSw8e5h2+Tj4UrAGNNgP9915++wj5vkQo0UuOBqOAq4nw==} @@ -4146,6 +4146,9 @@ packages: '@swc/helpers@0.5.2': resolution: {integrity: sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==} + '@swc/types@0.1.21': + resolution: {integrity: sha512-2YEtj5HJVbKivud9N4bpPBAyZhj4S2Ipe5LkUG94alTpr7in/GU/EARgPAd3BwU+YOmFVJC2+kjqhGRi3r0ZpQ==} + '@szmarczak/http-timer@1.1.2': resolution: {integrity: sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==} engines: {node: '>=6'} @@ -4230,6 +4233,9 @@ packages: '@types/cacheable-request@6.0.2': resolution: {integrity: sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA==} + '@types/compression@1.8.1': + resolution: {integrity: sha512-kCFuWS0ebDbmxs0AXYn6e2r2nrGAb5KwQhknjSPSPgJcGd8+HVSILlUyFhGqML2gk39HcG7D1ydW9/qpYkN00Q==} + '@types/connect-history-api-fallback@1.5.4': resolution: {integrity: sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==} @@ -4266,12 +4272,21 @@ packages: '@types/estree@1.0.6': resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} + '@types/estree@1.0.7': + resolution: {integrity: sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==} + '@types/express-serve-static-core@4.19.5': resolution: {integrity: sha512-y6W03tvrACO72aijJ5uF02FRq5cgDR9lUxddQ8vyF+GvmjJQqbzDcJngEjURc+ZsG31VI3hODNZJ2URj86pzmg==} + '@types/express-serve-static-core@5.0.6': + resolution: {integrity: sha512-3xhRnjJPkULekpSzgtoNYYcTWgEZkp4myc+Saevii5JPnHNvHMRlBSHDbs7Bh1iPPoVTERHEZXyhyLbMEsExsA==} + '@types/express@4.17.21': resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} + '@types/express@5.0.2': + resolution: {integrity: sha512-BtjL3ZwbCQriyb0DGw+Rt12qAXPiBTPs815lsUvtt1Grk0vLRMZNMUZ741d5rjk+UQOxfDiBZ3dxpX00vSkK3g==} + '@types/glob@7.2.0': resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} @@ -4362,9 +4377,6 @@ packages: '@types/node@16.11.10': resolution: {integrity: sha512-3aRnHa1KlOEEhJ6+CvyHKK5vE9BcLGjtUpwvqYLRvYNQKMfabu3BwfJaA/SLW8dxe28LsNDjtHwePTuzn3gmOA==} - '@types/node@20.9.5': - resolution: {integrity: sha512-Uq2xbNq0chGg+/WQEU0LJTSs/1nKxz6u1iemLcGomkSnKokbW1fbLqc3HOqCf2JP7KjlL4QkS7oZZTrOQHQYgQ==} - '@types/node@22.15.3': resolution: {integrity: sha512-lX7HFZeHf4QG/J7tBZqrCAXwz9J5RD56Y6MpP0eJkka8p+K0RY/yBTW7CYFJ4VGCclxqOLKmiGP5juQc6MKgcw==} @@ -4392,6 +4404,11 @@ packages: '@types/react-dom@18.2.19': resolution: {integrity: sha512-aZvQL6uUbIJpjZk4U8JZGbau9KDeAwMfmhyWorxgBkqDIEf6ROjRozcmPIicqsUwPUjbkDfHKgGee1Lq65APcA==} + '@types/react-dom@19.1.5': + resolution: {integrity: sha512-CMCjrWucUBZvohgZxkjd6S9h0nZxXjzus6yDfUb+xLxYM7VvjKNH1tQrE9GWLql1XoOP4/Ds3bwFqShHUYraGg==} + peerDependencies: + '@types/react': ^19.0.0 + '@types/react-router-dom@5.3.2': resolution: {integrity: sha512-ELEYRUie2czuJzaZ5+ziIp9Hhw+juEw8b7C11YNA4QdLCVbQ3qLi2l4aq8XnlqM7V31LZX8dxUuFUCrzHm6sqQ==} @@ -4404,6 +4421,9 @@ packages: '@types/react@18.2.55': resolution: {integrity: sha512-Y2Tz5P4yz23brwm2d7jNon39qoAtMMmalOQv6+fEFt1mT+FcM3D841wDpoUvFXhaYenuROCy3FZYqdTjM7qVyA==} + '@types/react@19.1.5': + resolution: {integrity: sha512-piErsCVVbpMMT2r7wbawdZsq4xMvIAhQuac2gedQHysu1TZYEigE6pnFfgZT+/jQnrRuF5r+SHzuehFjfRjr4g==} + '@types/resolve@1.17.1': resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==} @@ -4530,6 +4550,11 @@ packages: resolution: {integrity: sha512-lYYZIoxRurqDOSoVIdBicGnpUIpfyaS5qVjdPq+EfI285WqtZK3NK/dyCkiyBul+X2U2OEhRyeMdXPCHGJbohw==} hasBin: true + '@vitejs/plugin-react-swc@3.10.0': + resolution: {integrity: sha512-ZmkdHw3wo/o/Rk05YsXZs/DJAfY2CdQ5DUAjoWji+PEr+hYADdGMCGgEAILbiKj+CjspBTuTACBcWDrmC8AUfw==} + peerDependencies: + vite: ^4 || ^5 || ^6 + '@vitest/expect@3.0.2': resolution: {integrity: sha512-dKSHLBcoZI+3pmP5hiZ7I5grNru2HRtEW8Z5Zp4IXog8QYcxhlox7JUPyIIFWfN53+3HW3KPLIl6nSzUGgKSuQ==} @@ -4659,6 +4684,10 @@ packages: resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} engines: {node: '>= 0.6'} + accepts@2.0.0: + resolution: {integrity: sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==} + engines: {node: '>= 0.6'} + acorn-globals@7.0.1: resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==} @@ -5085,6 +5114,10 @@ packages: resolution: {integrity: sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + body-parser@2.2.0: + resolution: {integrity: sha512-02qvAaxv8tp7fBa/mw1ga98OGm+eCbqzJOKoRt70sLmfEEi+jyBYVTDGfCL/k06/4EMk/z01gCe7HoCH/f2LTg==} + engines: {node: '>=18'} + bonjour-service@1.2.1: resolution: {integrity: sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==} @@ -5214,9 +5247,17 @@ packages: resolution: {integrity: sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==} engines: {node: '>=6'} + call-bind-apply-helpers@1.0.2: + resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} + engines: {node: '>= 0.4'} + call-bind@1.0.5: resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==} + call-bound@1.0.4: + resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} + engines: {node: '>= 0.4'} + call-me-maybe@1.0.1: resolution: {integrity: sha512-wCyFsDQkKPwwF8BDwOiWNx/9K45L/hvggQiDbve+viMNMQnWhrlYIuBk09offfwCRtCO9P6XwUttufzU11WCVw==} @@ -5539,8 +5580,8 @@ packages: resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} engines: {node: '>= 0.6'} - compression@1.7.4: - resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==} + compression@1.8.0: + resolution: {integrity: sha512-k6WLKfunuqCYD3t6AsuPGvQWaKwuLLh2/xHNcX4qE+vIfDNXpSqnrhwA7O53R7WVQUnt8dVAIW+YHr7xTgOgGA==} engines: {node: '>= 0.8.0'} concat-map@0.0.1: @@ -5575,10 +5616,18 @@ packages: resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} engines: {node: '>= 0.6'} + content-disposition@1.0.0: + resolution: {integrity: sha512-Au9nRL8VNUut/XSzbQA38+M78dzP4D+eqg3gfJHMIHHYa3bg067xj1KxMUWj+VULbiZMowKngFFbKczUrNJ1mg==} + engines: {node: '>= 0.6'} + content-type@1.0.4: resolution: {integrity: sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==} engines: {node: '>= 0.6'} + content-type@1.0.5: + resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} + engines: {node: '>= 0.6'} + convert-source-map@1.8.0: resolution: {integrity: sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==} @@ -5600,6 +5649,10 @@ packages: resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} engines: {node: '>= 0.6'} + cookie@0.7.2: + resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} + engines: {node: '>= 0.6'} + copy-descriptor@0.1.1: resolution: {integrity: sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==} engines: {node: '>=0.10.0'} @@ -5757,8 +5810,8 @@ packages: resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==} engines: {node: '>=8'} - csstype@3.0.10: - resolution: {integrity: sha512-2u44ZG2OcNUO9HDp/Jl8C07x6pU/eTR3ncV91SiK3dhG9TWvRVsCoJw14Ckx5DgWkzGA3waZWO3d7pgqpUI/XA==} + csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} cyclist@1.0.1: resolution: {integrity: sha512-NJGVKPS81XejHcLhaLJS7plab0fK3slPh11mESeeDq2W4ZI5kUKK/LRRdVDvjJseojbPB7ZwjnyOybg3Igea/A==} @@ -6139,6 +6192,10 @@ packages: resolution: {integrity: sha512-ASRY5QhDk7FK+XrQtQyvhpDKanLluEEQtWl/J7Lxuf/b+i8RYh997QeXvL85xitrmRKVlx9c7eTrcRdq2GS4eA==} engines: {node: '>=10'} + dunder-proto@1.0.1: + resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} + engines: {node: '>= 0.4'} + duplexer3@0.1.4: resolution: {integrity: sha512-CEj8FwwNA4cVH2uFCoHUrmojhYh1vmCdOaneKJXwkeY1i9jnlslVo9dx+hQ5Hl9GnH/Bwy/IjxAyOePyPKYnzA==} @@ -6188,6 +6245,10 @@ packages: resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} engines: {node: '>= 0.8'} + encodeurl@2.0.0: + resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} + engines: {node: '>= 0.8'} + end-of-stream@1.4.4: resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} @@ -6235,12 +6296,24 @@ packages: error-stack-parser@2.1.4: resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==} + es-define-property@1.0.1: + resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} + engines: {node: '>= 0.4'} + + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + es-module-lexer@1.6.0: resolution: {integrity: sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==} es-module-lexer@1.7.0: resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} + es-object-atoms@1.1.1: + resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} + engines: {node: '>= 0.4'} + es6-promisify@6.1.1: resolution: {integrity: sha512-HBL8I3mIki5C1Cc9QjKUenHtnG0A5/xA8Q/AllRcfiwl2CZFXGK7ddBiCoRwAix4i2KxcQfjtIVcrVbB3vbmwg==} @@ -6270,11 +6343,6 @@ packages: engines: {node: '>=18'} hasBin: true - esbuild@0.24.2: - resolution: {integrity: sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==} - engines: {node: '>=18'} - hasBin: true - esbuild@0.25.0: resolution: {integrity: sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw==} engines: {node: '>=18'} @@ -6434,6 +6502,10 @@ packages: resolution: {integrity: sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==} engines: {node: '>= 0.10.0'} + express@5.1.0: + resolution: {integrity: sha512-DT9ck5YIRU+8GYzzU5kT3eHGA5iL+1Zd0EutOmTE9Dtk+Tvuzd23VBU+ec7HPNSTxXYO55gPV/hq4pSBJDjFpA==} + engines: {node: '>= 18'} + ext-list@2.2.2: resolution: {integrity: sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA==} engines: {node: '>=0.10.0'} @@ -6607,6 +6679,10 @@ packages: resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} engines: {node: '>= 0.8'} + finalhandler@2.1.0: + resolution: {integrity: sha512-/t88Ty3d5JWQbWYgaOGCCYfXRwV1+be02WqYYlL6h0lEiUAMPM8o8qKGO01YIkOHzka2up08wvgYD0mDiI+q3Q==} + engines: {node: '>= 0.8'} + find-cache-dir@4.0.0: resolution: {integrity: sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==} engines: {node: '>=14.16'} @@ -6691,6 +6767,10 @@ packages: resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} engines: {node: '>= 0.6'} + fresh@2.0.0: + resolution: {integrity: sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==} + engines: {node: '>= 0.8'} + from2-array@0.0.4: resolution: {integrity: sha512-0G0cAp7sYLobH7ALsr835x98PU/YeVF7wlwxdWbCUaea7wsa7lJfKZUAo6p2YZGZ8F94luCuqHZS3JtFER6uPg==} @@ -6768,8 +6848,9 @@ packages: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} - get-intrinsic@1.2.2: - resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==} + get-intrinsic@1.3.0: + resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} + engines: {node: '>= 0.4'} get-package-type@0.1.0: resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} @@ -6783,6 +6864,10 @@ packages: resolution: {integrity: sha512-BrGGraKm2uPqurfGVj/z97/zv8dPleC6x9JBNRTrDNtCkkRF4rPwrQXFgL7+I+q8QSdU4ntLQX2D7KIxSy8nGw==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + get-proto@1.0.1: + resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} + engines: {node: '>= 0.4'} + get-stream@2.3.1: resolution: {integrity: sha512-AUGhbbemXxrZJRD5cDvKtQxLuYaIbNtDTK8YqupCI393Q2KSTreEsLUN3ZxAWFGiKTzL6nKuzfcIvieflUX9qA==} engines: {node: '>=0.10.0'} @@ -6902,8 +6987,9 @@ packages: engines: {node: '>=0.6.0'} hasBin: true - gopd@1.0.1: - resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + gopd@1.2.0: + resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} + engines: {node: '>= 0.4'} got@10.7.0: resolution: {integrity: sha512-aWTDeNw9g+XqEZNcTjMMZSy7B7yE9toWOFYip7ofFTLleJhvZwUxxTxkTpKvF+p1SAA4VHmuEy7PiHTHyq8tJg==} @@ -6975,15 +7061,11 @@ packages: has-property-descriptors@1.0.1: resolution: {integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==} - has-proto@1.0.1: - resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} - engines: {node: '>= 0.4'} - has-symbol-support-x@1.4.2: resolution: {integrity: sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==} - has-symbols@1.0.3: - resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + has-symbols@1.1.0: + resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} engines: {node: '>= 0.4'} has-to-string-tag-x@1.4.1: @@ -7028,6 +7110,10 @@ packages: resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} engines: {node: '>= 0.4'} + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + hast-to-hyperscript@9.0.1: resolution: {integrity: sha512-zQgLKqF+O2F72S1aa4y2ivxzSlko3MAvxkwG8ehGmNiqd98BIN3JM1rAJPmplEyLmGLO2QZYJtIneOSZ2YbJuA==} @@ -7593,6 +7679,9 @@ packages: is-promise@2.2.2: resolution: {integrity: sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==} + is-promise@4.0.0: + resolution: {integrity: sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==} + is-reference@1.2.1: resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} @@ -8387,6 +8476,10 @@ packages: resolution: {integrity: sha512-WWC0ZuMzCyDHYCasEGs4IPvLyTGftYwh6wIEOULOF0HXcqZlhwRzrK0w2VUlxWA98xnvb/jszw4ZSkJ6ADpM6Q==} engines: {node: '>=0.10.0'} + math-intrinsics@1.1.0: + resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} + engines: {node: '>= 0.4'} + maxstache-stream@1.0.4: resolution: {integrity: sha512-v8qlfPN0pSp7bdSoLo1NTjG43GXGqk5W2NWFnOCq2GlmFFqebGzPCjLKSbShuqIOVorOtZSAy7O/S1OCCRONUw==} @@ -8473,6 +8566,10 @@ packages: resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} engines: {node: '>= 0.6'} + media-typer@1.1.0: + resolution: {integrity: sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==} + engines: {node: '>= 0.8'} + memfs@4.11.1: resolution: {integrity: sha512-LZcMTBAgqUUKNXZagcZxvXXfgF1bHX7Y7nQ0QyEiNbRJgE29GhgPd8Yna1VQcLlPiHt/5RFJMWYN9Uv/VPNvjQ==} engines: {node: '>= 4.0.0'} @@ -8487,6 +8584,10 @@ packages: merge-descriptors@1.0.1: resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} + merge-descriptors@2.0.0: + resolution: {integrity: sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==} + engines: {node: '>=18'} + merge-options@3.0.4: resolution: {integrity: sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ==} engines: {node: '>=10'} @@ -8611,6 +8712,10 @@ packages: resolution: {integrity: sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==} engines: {node: '>= 0.6'} + mime-db@1.54.0: + resolution: {integrity: sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==} + engines: {node: '>= 0.6'} + mime-types@2.1.18: resolution: {integrity: sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==} engines: {node: '>= 0.6'} @@ -8619,6 +8724,10 @@ packages: resolution: {integrity: sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==} engines: {node: '>= 0.6'} + mime-types@3.0.1: + resolution: {integrity: sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==} + engines: {node: '>= 0.6'} + mime@1.6.0: resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} engines: {node: '>=4'} @@ -8806,6 +8915,14 @@ packages: resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} engines: {node: '>= 0.6'} + negotiator@0.6.4: + resolution: {integrity: sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==} + engines: {node: '>= 0.6'} + + negotiator@1.0.0: + resolution: {integrity: sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==} + engines: {node: '>= 0.6'} + neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} @@ -9068,8 +9185,9 @@ packages: resolution: {integrity: sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==} engines: {node: '>= 6'} - object-inspect@1.13.1: - resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} + object-inspect@1.13.4: + resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} + engines: {node: '>= 0.4'} object-visit@1.0.1: resolution: {integrity: sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==} @@ -9409,6 +9527,10 @@ packages: path-to-regexp@2.2.1: resolution: {integrity: sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==} + path-to-regexp@8.2.0: + resolution: {integrity: sha512-TdrF7fW9Rphjq4RjrW0Kp2AW0Ahwu9sRGTkS6bvDi0SCwZlEZYmcfDbEsTz8RVk0EHIS/Vd1bv3JhG+1xZuAyQ==} + engines: {node: '>=16'} + path-type@3.0.0: resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==} engines: {node: '>=4'} @@ -9772,6 +9894,10 @@ packages: resolution: {integrity: sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==} engines: {node: ^10 || ^12 || >=14} + postcss@8.5.3: + resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==} + engines: {node: ^10 || ^12 || >=14} + posthtml-parser@0.10.2: resolution: {integrity: sha512-PId6zZ/2lyJi9LiKfe+i2xv57oEjJgWbsHGGANwos5AvdQp98i6AtamAl8gzSVFGfQ43Glb5D614cvZf012VKg==} engines: {node: '>=12'} @@ -9928,6 +10054,10 @@ packages: resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} engines: {node: '>=0.6'} + qs@6.14.0: + resolution: {integrity: sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==} + engines: {node: '>=0.6'} + query-string@5.1.1: resolution: {integrity: sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==} engines: {node: '>=0.10.0'} @@ -9968,6 +10098,10 @@ packages: resolution: {integrity: sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==} engines: {node: '>= 0.8'} + raw-body@3.0.0: + resolution: {integrity: sha512-RmkhL8CAyCRPXCE28MMH0z2PNWQBNk2Q09ZdxM9IOOXwxwZbN+qbWaatPkdkWIKL2ZVDImrN/pK5HTRz2PcS4g==} + engines: {node: '>= 0.8'} + rc@1.2.8: resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} hasBin: true @@ -9977,7 +10111,12 @@ packages: peerDependencies: react: ^18.2.0 - react-error-overlay@6.0.9: + react-dom@19.1.0: + resolution: {integrity: sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==} + peerDependencies: + react: ^19.1.0 + + react-error-overlay@6.0.9: resolution: {integrity: sha512-nQTTcUu+ATDbrSD1BZHr5kgSD4oF8OFjxun8uAaL8RwPBacGBNPf/yAuVVdx17N8XNzRDMrZ9XcKZHCjPW+9ew==} react-head@3.4.2: @@ -10031,6 +10170,10 @@ packages: resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} engines: {node: '>=0.10.0'} + react@19.1.0: + resolution: {integrity: sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==} + engines: {node: '>=0.10.0'} + read-package-json-fast@2.0.3: resolution: {integrity: sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ==} engines: {node: '>=10'} @@ -10340,11 +10483,15 @@ packages: engines: {node: '>=10.0.0'} hasBin: true - rollup@4.30.1: - resolution: {integrity: sha512-mlJ4glW020fPuLi7DkM/lN97mYEZGWeqBnrljzN0gs7GLctqX3lNWxKQ7Gl712UAX+6fog/L3jh4gb7R6aVi3w==} + rollup@4.41.0: + resolution: {integrity: sha512-HqMFpUbWlf/tvcxBFNKnJyzc7Lk+XO3FGc3pbNBLqEbOz0gPLRgcrlS3UF4MfUrVlstOaP/q0kM6GVvi+LrLRg==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true + router@2.2.0: + resolution: {integrity: sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==} + engines: {node: '>= 18'} + run-applescript@7.0.0: resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==} engines: {node: '>=18'} @@ -10393,6 +10540,9 @@ packages: scheduler@0.23.0: resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} + scheduler@0.26.0: + resolution: {integrity: sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==} + schema-utils@3.3.0: resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} engines: {node: '>= 10.13.0'} @@ -10440,6 +10590,10 @@ packages: resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} engines: {node: '>= 0.8.0'} + send@1.2.0: + resolution: {integrity: sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==} + engines: {node: '>= 18'} + sentence-case@2.1.1: resolution: {integrity: sha512-ENl7cYHaK/Ktwk5OTD+aDbQ3uC8IByu/6Bkg+HDv8Mm+XnBnppVNalcfJTNsp1ibstKh030/JKQQWglDvtKwEQ==} @@ -10457,6 +10611,10 @@ packages: resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} engines: {node: '>= 0.8.0'} + serve-static@2.2.0: + resolution: {integrity: sha512-61g9pCh0Vnh7IutZjtLGGpTA355+OPn2TyDv/6ivP2h/AdAVX9azsoxmg2/M6nZeQZNYBEwIcsne1mJd9oQItQ==} + engines: {node: '>= 18'} + set-blocking@2.0.0: resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} @@ -10500,9 +10658,25 @@ packages: shell-quote@1.8.1: resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} + side-channel-list@1.0.0: + resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} + engines: {node: '>= 0.4'} + + side-channel-map@1.0.1: + resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} + engines: {node: '>= 0.4'} + + side-channel-weakmap@1.0.2: + resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} + engines: {node: '>= 0.4'} + side-channel@1.0.4: resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} + side-channel@1.1.0: + resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} + engines: {node: '>= 0.4'} + siginfo@2.0.0: resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} @@ -10520,8 +10694,8 @@ packages: resolution: {integrity: sha512-f2AOPogZmXgJ9Ma2M22ZEhc1dNtRIzcEkiflMFeVTRq+OViOZMvH1IPMVOwrKaxpSaHioBJiDR0SluRqGa7atA==} engines: {node: '>= 10'} - sirv@3.0.0: - resolution: {integrity: sha512-BPwJGUeDaDCHihkORDchNyyTvWFhcusy1XMmhEVTQTwGeybFbp8YEmB+njbPnth1FibULBSBVwCQni25XlCUDg==} + sirv@3.0.1: + resolution: {integrity: sha512-FoqMu0NCGBLCcAkS1qA+XJIQTR6/JHfQXl+uGteNCQ76T91DMUjPa9xfmeqMY3z80nLSg9yQmNjK0Px6RWsH/A==} engines: {node: '>=18'} sisteransi@1.0.5: @@ -11267,6 +11441,10 @@ packages: resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} engines: {node: '>= 0.6'} + type-is@2.0.1: + resolution: {integrity: sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==} + engines: {node: '>= 0.6'} + typedarray-to-buffer@3.1.5: resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} @@ -11311,9 +11489,6 @@ packages: unbzip2-stream@1.4.3: resolution: {integrity: sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==} - undici-types@5.26.5: - resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - undici-types@6.21.0: resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} @@ -11657,8 +11832,8 @@ packages: terser: optional: true - vite@6.0.10: - resolution: {integrity: sha512-MEszunEcMo6pFsfXN1GhCFQqnE25tWRH0MA4f0Q7uanACi4y1Us+ZGpTMnITwCTnYzB2b9cpmnelTlxgTBmaBA==} + vite@6.3.5: + resolution: {integrity: sha512-cZn6NDFE7wdTpINgs++ZJ4N49W2vRp8LCKrn3Ob1kYNtOo21vfDoaV5GzBfLU4MovSAB8uNRm4jgzVQZ+mBzPQ==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true peerDependencies: @@ -12193,7 +12368,7 @@ snapshots: '@babel/traverse': 7.23.9 '@babel/types': 7.23.9 convert-source-map: 1.8.0 - debug: 4.4.0(supports-color@9.2.3) + debug: 4.4.1(supports-color@9.2.3) gensync: 1.0.0-beta.2 json5: 2.2.3 lodash: 4.17.21 @@ -12216,7 +12391,7 @@ snapshots: '@babel/traverse': 7.23.9 '@babel/types': 7.23.9 convert-source-map: 2.0.0 - debug: 4.4.0(supports-color@9.2.3) + debug: 4.4.0 gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -12271,7 +12446,7 @@ snapshots: '@babel/core': 7.23.9 '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 - debug: 4.4.0(supports-color@9.2.3) + debug: 4.4.1(supports-color@9.2.3) lodash.debounce: 4.0.8 resolve: 1.22.8 transitivePeerDependencies: @@ -12997,7 +13172,7 @@ snapshots: '@babel/helper-split-export-declaration': 7.22.6 '@babel/parser': 7.23.9 '@babel/types': 7.23.9 - debug: 4.4.0(supports-color@9.2.3) + debug: 4.4.1(supports-color@9.2.3) globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -13246,9 +13421,6 @@ snapshots: '@esbuild/aix-ppc64@0.23.1': optional: true - '@esbuild/aix-ppc64@0.24.2': - optional: true - '@esbuild/aix-ppc64@0.25.0': optional: true @@ -13264,9 +13436,6 @@ snapshots: '@esbuild/android-arm64@0.23.1': optional: true - '@esbuild/android-arm64@0.24.2': - optional: true - '@esbuild/android-arm64@0.25.0': optional: true @@ -13282,9 +13451,6 @@ snapshots: '@esbuild/android-arm@0.23.1': optional: true - '@esbuild/android-arm@0.24.2': - optional: true - '@esbuild/android-arm@0.25.0': optional: true @@ -13300,9 +13466,6 @@ snapshots: '@esbuild/android-x64@0.23.1': optional: true - '@esbuild/android-x64@0.24.2': - optional: true - '@esbuild/android-x64@0.25.0': optional: true @@ -13318,9 +13481,6 @@ snapshots: '@esbuild/darwin-arm64@0.23.1': optional: true - '@esbuild/darwin-arm64@0.24.2': - optional: true - '@esbuild/darwin-arm64@0.25.0': optional: true @@ -13336,9 +13496,6 @@ snapshots: '@esbuild/darwin-x64@0.23.1': optional: true - '@esbuild/darwin-x64@0.24.2': - optional: true - '@esbuild/darwin-x64@0.25.0': optional: true @@ -13354,9 +13511,6 @@ snapshots: '@esbuild/freebsd-arm64@0.23.1': optional: true - '@esbuild/freebsd-arm64@0.24.2': - optional: true - '@esbuild/freebsd-arm64@0.25.0': optional: true @@ -13372,9 +13526,6 @@ snapshots: '@esbuild/freebsd-x64@0.23.1': optional: true - '@esbuild/freebsd-x64@0.24.2': - optional: true - '@esbuild/freebsd-x64@0.25.0': optional: true @@ -13390,9 +13541,6 @@ snapshots: '@esbuild/linux-arm64@0.23.1': optional: true - '@esbuild/linux-arm64@0.24.2': - optional: true - '@esbuild/linux-arm64@0.25.0': optional: true @@ -13408,9 +13556,6 @@ snapshots: '@esbuild/linux-arm@0.23.1': optional: true - '@esbuild/linux-arm@0.24.2': - optional: true - '@esbuild/linux-arm@0.25.0': optional: true @@ -13426,9 +13571,6 @@ snapshots: '@esbuild/linux-ia32@0.23.1': optional: true - '@esbuild/linux-ia32@0.24.2': - optional: true - '@esbuild/linux-ia32@0.25.0': optional: true @@ -13444,9 +13586,6 @@ snapshots: '@esbuild/linux-loong64@0.23.1': optional: true - '@esbuild/linux-loong64@0.24.2': - optional: true - '@esbuild/linux-loong64@0.25.0': optional: true @@ -13462,9 +13601,6 @@ snapshots: '@esbuild/linux-mips64el@0.23.1': optional: true - '@esbuild/linux-mips64el@0.24.2': - optional: true - '@esbuild/linux-mips64el@0.25.0': optional: true @@ -13480,9 +13616,6 @@ snapshots: '@esbuild/linux-ppc64@0.23.1': optional: true - '@esbuild/linux-ppc64@0.24.2': - optional: true - '@esbuild/linux-ppc64@0.25.0': optional: true @@ -13498,9 +13631,6 @@ snapshots: '@esbuild/linux-riscv64@0.23.1': optional: true - '@esbuild/linux-riscv64@0.24.2': - optional: true - '@esbuild/linux-riscv64@0.25.0': optional: true @@ -13516,9 +13646,6 @@ snapshots: '@esbuild/linux-s390x@0.23.1': optional: true - '@esbuild/linux-s390x@0.24.2': - optional: true - '@esbuild/linux-s390x@0.25.0': optional: true @@ -13534,15 +13661,9 @@ snapshots: '@esbuild/linux-x64@0.23.1': optional: true - '@esbuild/linux-x64@0.24.2': - optional: true - '@esbuild/linux-x64@0.25.0': optional: true - '@esbuild/netbsd-arm64@0.24.2': - optional: true - '@esbuild/netbsd-arm64@0.25.0': optional: true @@ -13558,18 +13679,12 @@ snapshots: '@esbuild/netbsd-x64@0.23.1': optional: true - '@esbuild/netbsd-x64@0.24.2': - optional: true - '@esbuild/netbsd-x64@0.25.0': optional: true '@esbuild/openbsd-arm64@0.23.1': optional: true - '@esbuild/openbsd-arm64@0.24.2': - optional: true - '@esbuild/openbsd-arm64@0.25.0': optional: true @@ -13585,9 +13700,6 @@ snapshots: '@esbuild/openbsd-x64@0.23.1': optional: true - '@esbuild/openbsd-x64@0.24.2': - optional: true - '@esbuild/openbsd-x64@0.25.0': optional: true @@ -13603,9 +13715,6 @@ snapshots: '@esbuild/sunos-x64@0.23.1': optional: true - '@esbuild/sunos-x64@0.24.2': - optional: true - '@esbuild/sunos-x64@0.25.0': optional: true @@ -13621,9 +13730,6 @@ snapshots: '@esbuild/win32-arm64@0.23.1': optional: true - '@esbuild/win32-arm64@0.24.2': - optional: true - '@esbuild/win32-arm64@0.25.0': optional: true @@ -13639,9 +13745,6 @@ snapshots: '@esbuild/win32-ia32@0.23.1': optional: true - '@esbuild/win32-ia32@0.24.2': - optional: true - '@esbuild/win32-ia32@0.25.0': optional: true @@ -13657,9 +13760,6 @@ snapshots: '@esbuild/win32-x64@0.23.1': optional: true - '@esbuild/win32-x64@0.24.2': - optional: true - '@esbuild/win32-x64@0.25.0': optional: true @@ -13693,7 +13793,7 @@ snapshots: jest-util: 29.7.0 slash: 3.0.0 - '@jest/core@29.7.0(ts-node@10.9.1(@types/node@22.15.3)(typescript@5.8.3))': + '@jest/core@29.7.0(ts-node@10.9.1(@swc/core@1.11.29)(@types/node@22.15.3)(typescript@5.8.3))': dependencies: '@jest/console': 29.7.0 '@jest/reporters': 29.7.0 @@ -13707,7 +13807,7 @@ snapshots: exit: 0.1.2 graceful-fs: 4.2.10 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@22.15.3)(ts-node@10.9.1(@types/node@22.15.3)(typescript@5.8.3)) + jest-config: 29.7.0(@types/node@22.15.3)(ts-node@10.9.1(@swc/core@1.11.29)(@types/node@22.15.3)(typescript@5.8.3)) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -14114,7 +14214,7 @@ snapshots: '@netlify/binary-info@1.0.0': {} - '@netlify/build@27.18.5': + '@netlify/build@27.18.5(@swc/core@1.11.29)': dependencies: '@bugsnag/js': 7.18.0 '@netlify/cache-utils': 4.1.4(supports-color@9.2.3) @@ -14166,7 +14266,7 @@ snapshots: strip-ansi: 7.0.1 supports-color: 9.2.3 tmp-promise: 3.0.3 - ts-node: 10.9.1(@types/node@16.11.10)(typescript@4.9.4) + ts-node: 10.9.1(@swc/core@1.11.29)(@types/node@16.11.10)(typescript@4.9.4) typescript: 4.9.4 update-notifier: 5.1.0 uuid: 8.3.2 @@ -14679,14 +14779,14 @@ snapshots: transitivePeerDependencies: - '@parcel/core' - '@parcel/config-default@2.8.3(@parcel/core@2.11.0)(cssnano@5.1.15(postcss@8.5.1))(postcss@8.5.1)(relateurl@0.2.7)(srcset@4.0.0)(terser@5.26.0)': + '@parcel/config-default@2.8.3(@parcel/core@2.11.0)(cssnano@5.1.15(postcss@8.5.3))(postcss@8.5.3)(relateurl@0.2.7)(srcset@4.0.0)(terser@5.26.0)': dependencies: '@parcel/bundler-default': 2.8.3(@parcel/core@2.11.0) '@parcel/compressor-raw': 2.8.3(@parcel/core@2.11.0) '@parcel/core': 2.11.0 '@parcel/namer-default': 2.8.3(@parcel/core@2.11.0) '@parcel/optimizer-css': 2.8.3(@parcel/core@2.11.0) - '@parcel/optimizer-htmlnano': 2.8.3(@parcel/core@2.11.0)(cssnano@5.1.15(postcss@8.5.1))(postcss@8.5.1)(relateurl@0.2.7)(srcset@4.0.0)(terser@5.26.0) + '@parcel/optimizer-htmlnano': 2.8.3(@parcel/core@2.11.0)(cssnano@5.1.15(postcss@8.5.3))(postcss@8.5.3)(relateurl@0.2.7)(srcset@4.0.0)(terser@5.26.0) '@parcel/optimizer-image': 2.8.3(@parcel/core@2.11.0) '@parcel/optimizer-svgo': 2.8.3(@parcel/core@2.11.0) '@parcel/optimizer-terser': 2.8.3(@parcel/core@2.11.0) @@ -14855,10 +14955,10 @@ snapshots: transitivePeerDependencies: - '@parcel/core' - '@parcel/optimizer-htmlnano@2.8.3(@parcel/core@2.11.0)(cssnano@5.1.15(postcss@8.5.1))(postcss@8.5.1)(relateurl@0.2.7)(srcset@4.0.0)(terser@5.26.0)': + '@parcel/optimizer-htmlnano@2.8.3(@parcel/core@2.11.0)(cssnano@5.1.15(postcss@8.5.3))(postcss@8.5.3)(relateurl@0.2.7)(srcset@4.0.0)(terser@5.26.0)': dependencies: '@parcel/plugin': 2.8.3(@parcel/core@2.11.0) - htmlnano: 2.0.3(cssnano@5.1.15(postcss@8.5.1))(postcss@8.5.1)(relateurl@0.2.7)(srcset@4.0.0)(svgo@2.8.0)(terser@5.26.0) + htmlnano: 2.0.3(cssnano@5.1.15(postcss@8.5.3))(postcss@8.5.3)(relateurl@0.2.7)(srcset@4.0.0)(svgo@2.8.0)(terser@5.26.0) nullthrows: 1.1.1 posthtml: 0.16.6 svgo: 2.8.0 @@ -15361,7 +15461,7 @@ snapshots: make-synchronized: 0.2.9 prettier: 3.4.2 - '@remix-run/dev@2.8.0(@remix-run/serve@2.8.0(typescript@5.8.3))(@types/node@22.15.3)(terser@5.26.0)(ts-node@10.9.1(@types/node@22.15.3)(typescript@5.8.3))(typescript@5.8.3)(vite@6.0.10(@types/node@22.15.3)(terser@5.26.0)(tsx@4.17.0))': + '@remix-run/dev@2.8.0(@remix-run/serve@2.8.0(typescript@5.8.3))(@types/node@22.15.3)(terser@5.26.0)(ts-node@10.9.1(@swc/core@1.11.29)(@types/node@22.15.3)(typescript@5.8.3))(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.3)(terser@5.26.0)(tsx@4.17.0))': dependencies: '@babel/core': 7.23.9 '@babel/generator': 7.23.6 @@ -15404,7 +15504,7 @@ snapshots: pidtree: 0.6.0 postcss: 8.5.1 postcss-discard-duplicates: 5.1.0(postcss@8.5.1) - postcss-load-config: 4.0.2(postcss@8.5.1)(ts-node@10.9.1(@types/node@22.15.3)(typescript@5.8.3)) + postcss-load-config: 4.0.2(postcss@8.5.1)(ts-node@10.9.1(@swc/core@1.11.29)(@types/node@22.15.3)(typescript@5.8.3)) postcss-modules: 6.0.0(postcss@8.5.1) prettier: 2.8.8 pretty-ms: 7.0.1 @@ -15419,7 +15519,7 @@ snapshots: optionalDependencies: '@remix-run/serve': 2.8.0(typescript@5.8.3) typescript: 5.8.3 - vite: 6.0.10(@types/node@22.15.3)(terser@5.26.0)(tsx@4.17.0) + vite: 6.3.5(@types/node@22.15.3)(terser@5.26.0)(tsx@4.17.0) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -15474,7 +15574,7 @@ snapshots: '@remix-run/express': 2.8.0(express@4.18.2)(typescript@5.8.3) '@remix-run/node': 2.8.0(typescript@5.8.3) chokidar: 3.6.0 - compression: 1.7.4 + compression: 1.8.0 express: 4.18.2 get-port: 5.1.1 morgan: 1.10.0 @@ -15522,6 +15622,8 @@ snapshots: dependencies: web-streams-polyfill: 3.2.1 + '@rolldown/pluginutils@1.0.0-beta.9': {} + '@rollup/plugin-alias@3.1.8(rollup@2.79.1)': dependencies: rollup: 2.79.1 @@ -15543,11 +15645,11 @@ snapshots: '@rollup/pluginutils': 3.1.0(rollup@2.79.1) rollup: 2.79.1 - '@rollup/plugin-json@6.1.0(rollup@4.30.1)': + '@rollup/plugin-json@6.1.0(rollup@4.41.0)': dependencies: - '@rollup/pluginutils': 5.1.4(rollup@4.30.1) + '@rollup/pluginutils': 5.1.4(rollup@4.41.0) optionalDependencies: - rollup: 4.30.1 + rollup: 4.41.0 '@rollup/plugin-node-resolve@11.2.1(rollup@2.79.1)': dependencies: @@ -15572,69 +15674,72 @@ snapshots: picomatch: 2.3.1 rollup: 2.79.1 - '@rollup/pluginutils@5.1.4(rollup@4.30.1)': + '@rollup/pluginutils@5.1.4(rollup@4.41.0)': dependencies: - '@types/estree': 1.0.6 + '@types/estree': 1.0.7 estree-walker: 2.0.2 picomatch: 4.0.2 optionalDependencies: - rollup: 4.30.1 + rollup: 4.41.0 - '@rollup/rollup-android-arm-eabi@4.30.1': + '@rollup/rollup-android-arm-eabi@4.41.0': optional: true - '@rollup/rollup-android-arm64@4.30.1': + '@rollup/rollup-android-arm64@4.41.0': optional: true - '@rollup/rollup-darwin-arm64@4.30.1': + '@rollup/rollup-darwin-arm64@4.41.0': optional: true - '@rollup/rollup-darwin-x64@4.30.1': + '@rollup/rollup-darwin-x64@4.41.0': optional: true - '@rollup/rollup-freebsd-arm64@4.30.1': + '@rollup/rollup-freebsd-arm64@4.41.0': optional: true - '@rollup/rollup-freebsd-x64@4.30.1': + '@rollup/rollup-freebsd-x64@4.41.0': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.30.1': + '@rollup/rollup-linux-arm-gnueabihf@4.41.0': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.30.1': + '@rollup/rollup-linux-arm-musleabihf@4.41.0': optional: true - '@rollup/rollup-linux-arm64-gnu@4.30.1': + '@rollup/rollup-linux-arm64-gnu@4.41.0': optional: true - '@rollup/rollup-linux-arm64-musl@4.30.1': + '@rollup/rollup-linux-arm64-musl@4.41.0': optional: true - '@rollup/rollup-linux-loongarch64-gnu@4.30.1': + '@rollup/rollup-linux-loongarch64-gnu@4.41.0': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.30.1': + '@rollup/rollup-linux-powerpc64le-gnu@4.41.0': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.30.1': + '@rollup/rollup-linux-riscv64-gnu@4.41.0': optional: true - '@rollup/rollup-linux-s390x-gnu@4.30.1': + '@rollup/rollup-linux-riscv64-musl@4.41.0': optional: true - '@rollup/rollup-linux-x64-gnu@4.30.1': + '@rollup/rollup-linux-s390x-gnu@4.41.0': optional: true - '@rollup/rollup-linux-x64-musl@4.30.1': + '@rollup/rollup-linux-x64-gnu@4.41.0': optional: true - '@rollup/rollup-win32-arm64-msvc@4.30.1': + '@rollup/rollup-linux-x64-musl@4.41.0': optional: true - '@rollup/rollup-win32-ia32-msvc@4.30.1': + '@rollup/rollup-win32-arm64-msvc@4.41.0': optional: true - '@rollup/rollup-win32-x64-msvc@4.30.1': + '@rollup/rollup-win32-ia32-msvc@4.41.0': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.41.0': optional: true '@samverschueren/stream-to-observable@0.3.1(rxjs@6.6.7)': @@ -15687,6 +15792,54 @@ snapshots: dependencies: '@sinonjs/commons': 2.0.0 + '@swc/core-darwin-arm64@1.11.29': + optional: true + + '@swc/core-darwin-x64@1.11.29': + optional: true + + '@swc/core-linux-arm-gnueabihf@1.11.29': + optional: true + + '@swc/core-linux-arm64-gnu@1.11.29': + optional: true + + '@swc/core-linux-arm64-musl@1.11.29': + optional: true + + '@swc/core-linux-x64-gnu@1.11.29': + optional: true + + '@swc/core-linux-x64-musl@1.11.29': + optional: true + + '@swc/core-win32-arm64-msvc@1.11.29': + optional: true + + '@swc/core-win32-ia32-msvc@1.11.29': + optional: true + + '@swc/core-win32-x64-msvc@1.11.29': + optional: true + + '@swc/core@1.11.29': + dependencies: + '@swc/counter': 0.1.3 + '@swc/types': 0.1.21 + optionalDependencies: + '@swc/core-darwin-arm64': 1.11.29 + '@swc/core-darwin-x64': 1.11.29 + '@swc/core-linux-arm-gnueabihf': 1.11.29 + '@swc/core-linux-arm64-gnu': 1.11.29 + '@swc/core-linux-arm64-musl': 1.11.29 + '@swc/core-linux-x64-gnu': 1.11.29 + '@swc/core-linux-x64-musl': 1.11.29 + '@swc/core-win32-arm64-msvc': 1.11.29 + '@swc/core-win32-ia32-msvc': 1.11.29 + '@swc/core-win32-x64-msvc': 1.11.29 + + '@swc/counter@0.1.3': {} + '@swc/helpers@0.4.11': dependencies: tslib: 2.5.0 @@ -15699,6 +15852,10 @@ snapshots: dependencies: tslib: 2.5.0 + '@swc/types@0.1.21': + dependencies: + '@swc/counter': 0.1.3 + '@szmarczak/http-timer@1.1.2': dependencies: defer-to-connect: 1.1.3 @@ -15722,7 +15879,7 @@ snapshots: lz-string: 1.5.0 pretty-format: 27.5.1 - '@testing-library/jest-dom@6.4.2(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@22.15.3)(ts-node@10.9.1(@types/node@22.15.3)(typescript@5.8.3)))(vitest@3.0.2(@types/node@22.15.3)(jsdom@20.0.3)(terser@5.26.0)(tsx@4.17.0))': + '@testing-library/jest-dom@6.4.2(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@22.15.3)(ts-node@10.9.1(@swc/core@1.11.29)(@types/node@22.15.3)(typescript@5.8.3)))(vitest@3.0.2(@types/node@22.15.3)(jsdom@20.0.3)(terser@5.26.0)(tsx@4.17.0))': dependencies: '@adobe/css-tools': 4.3.3 '@babel/runtime': 7.23.9 @@ -15735,7 +15892,7 @@ snapshots: optionalDependencies: '@jest/globals': 29.7.0 '@types/jest': 29.5.12 - jest: 29.7.0(@types/node@22.15.3)(ts-node@10.9.1(@types/node@22.15.3)(typescript@5.8.3)) + jest: 29.7.0(@types/node@22.15.3)(ts-node@10.9.1(@swc/core@1.11.29)(@types/node@22.15.3)(typescript@5.8.3)) vitest: 3.0.2(@types/node@22.15.3)(jsdom@20.0.3)(terser@5.26.0)(tsx@4.17.0) '@tootallnate/once@2.0.0': {} @@ -15752,7 +15909,7 @@ snapshots: '@types/acorn@4.0.6': dependencies: - '@types/estree': 1.0.6 + '@types/estree': 1.0.7 '@types/aria-query@5.0.4': {} @@ -15793,9 +15950,14 @@ snapshots: '@types/node': 22.15.3 '@types/responselike': 1.0.0 + '@types/compression@1.8.1': + dependencies: + '@types/express': 5.0.2 + '@types/node': 22.15.3 + '@types/connect-history-api-fallback@1.5.4': dependencies: - '@types/express-serve-static-core': 4.19.5 + '@types/express-serve-static-core': 5.0.6 '@types/node': 22.15.3 '@types/connect@3.4.35': @@ -15823,21 +15985,23 @@ snapshots: '@types/eslint-scope@3.7.7': dependencies: '@types/eslint': 8.2.0 - '@types/estree': 1.0.6 + '@types/estree': 1.0.7 '@types/eslint@8.2.0': dependencies: - '@types/estree': 1.0.6 + '@types/estree': 1.0.7 '@types/json-schema': 7.0.9 '@types/estree-jsx@1.0.4': dependencies: - '@types/estree': 1.0.6 + '@types/estree': 1.0.7 '@types/estree@0.0.39': {} '@types/estree@1.0.6': {} + '@types/estree@1.0.7': {} + '@types/express-serve-static-core@4.19.5': dependencies: '@types/node': 22.15.3 @@ -15845,6 +16009,13 @@ snapshots: '@types/range-parser': 1.2.4 '@types/send': 0.17.4 + '@types/express-serve-static-core@5.0.6': + dependencies: + '@types/node': 22.15.3 + '@types/qs': 6.9.7 + '@types/range-parser': 1.2.4 + '@types/send': 0.17.4 + '@types/express@4.17.21': dependencies: '@types/body-parser': 1.19.2 @@ -15852,6 +16023,12 @@ snapshots: '@types/qs': 6.9.7 '@types/serve-static': 1.15.7 + '@types/express@5.0.2': + dependencies: + '@types/body-parser': 1.19.2 + '@types/express-serve-static-core': 5.0.6 + '@types/serve-static': 1.15.7 + '@types/glob@7.2.0': dependencies: '@types/minimatch': 3.0.5 @@ -15921,17 +16098,17 @@ snapshots: '@types/mdx-js__react@1.5.8': dependencies: - '@types/react': 18.2.55 + '@types/react': 19.1.5 '@types/mdx@2.0.11': {} '@types/mime@1.3.2': {} - '@types/mini-css-extract-plugin@1.4.3(esbuild@0.25.0)': + '@types/mini-css-extract-plugin@1.4.3(@swc/core@1.11.29)(esbuild@0.25.0)': dependencies: - '@types/node': 20.9.5 + '@types/node': 22.15.3 tapable: 2.2.1 - webpack: 5.90.0(esbuild@0.25.0) + webpack: 5.90.0(@swc/core@1.11.29)(esbuild@0.25.0) transitivePeerDependencies: - '@swc/core' - esbuild @@ -15957,10 +16134,6 @@ snapshots: '@types/node@16.11.10': {} - '@types/node@20.9.5': - dependencies: - undici-types: 5.26.5 - '@types/node@22.15.3': dependencies: undici-types: 6.21.0 @@ -15983,28 +16156,36 @@ snapshots: dependencies: '@types/react': 18.2.55 + '@types/react-dom@19.1.5(@types/react@19.1.5)': + dependencies: + '@types/react': 19.1.5 + '@types/react-router-dom@5.3.2': dependencies: '@types/history': 4.7.11 - '@types/react': 18.2.55 + '@types/react': 19.1.5 '@types/react-router': 5.1.17 '@types/react-router-hash-link@2.4.9': dependencies: '@types/history': 4.7.11 - '@types/react': 18.2.55 + '@types/react': 19.1.5 '@types/react-router-dom': 5.3.2 '@types/react-router@5.1.17': dependencies: '@types/history': 4.7.11 - '@types/react': 18.2.55 + '@types/react': 19.1.5 '@types/react@18.2.55': dependencies: '@types/prop-types': 15.7.4 '@types/scheduler': 0.16.2 - csstype: 3.0.10 + csstype: 3.1.3 + + '@types/react@19.1.5': + dependencies: + csstype: 3.1.3 '@types/resolve@1.17.1': dependencies: @@ -16031,11 +16212,11 @@ snapshots: '@types/serve-handler@6.1.1': dependencies: - '@types/node': 20.9.5 + '@types/node': 22.15.3 '@types/serve-index@1.9.4': dependencies: - '@types/express': 4.17.21 + '@types/express': 5.0.2 '@types/serve-static@1.15.7': dependencies: @@ -16063,11 +16244,11 @@ snapshots: '@types/unist@2.0.6': {} - '@types/webpack-bundle-analyzer@4.4.1(webpack-cli@5.1.4)': + '@types/webpack-bundle-analyzer@4.4.1(@swc/core@1.11.29)(webpack-cli@5.1.4)': dependencies: - '@types/node': 20.9.5 + '@types/node': 22.15.3 tapable: 2.2.1 - webpack: 5.90.0(webpack-cli@5.1.4) + webpack: 5.90.0(@swc/core@1.11.29)(webpack-cli@5.1.4) transitivePeerDependencies: - '@swc/core' - esbuild @@ -16077,7 +16258,7 @@ snapshots: '@types/webpack-dev-server@3.11.6': dependencies: '@types/connect-history-api-fallback': 1.5.4 - '@types/express': 4.17.21 + '@types/express': 5.0.2 '@types/serve-static': 1.15.7 '@types/webpack': 4.41.32 http-proxy-middleware: 1.3.1 @@ -16123,7 +16304,7 @@ snapshots: dependencies: '@typescript-eslint/types': 5.38.0 '@typescript-eslint/visitor-keys': 5.38.0 - debug: 4.4.0(supports-color@9.2.3) + debug: 4.4.1(supports-color@9.2.3) globby: 11.1.0 is-glob: 4.0.3 semver: 7.6.0 @@ -16151,7 +16332,7 @@ snapshots: '@typescript/vfs@1.6.0(typescript@5.8.3)': dependencies: - debug: 4.4.0(supports-color@9.2.3) + debug: 4.4.1(supports-color@9.2.3) typescript: 5.8.3 transitivePeerDependencies: - supports-color @@ -16168,7 +16349,7 @@ snapshots: '@vanilla-extract/private': 1.0.5 css-what: 6.1.0 cssesc: 3.0.0 - csstype: 3.0.10 + csstype: 3.1.3 dedent: 1.5.3 deep-object-diff: 1.1.9 deepmerge: 4.2.2 @@ -16224,6 +16405,14 @@ snapshots: - encoding - supports-color + '@vitejs/plugin-react-swc@3.10.0(vite@6.3.5(@types/node@22.15.3)(terser@5.26.0)(tsx@4.17.0))': + dependencies: + '@rolldown/pluginutils': 1.0.0-beta.9 + '@swc/core': 1.11.29 + vite: 6.3.5(@types/node@22.15.3)(terser@5.26.0)(tsx@4.17.0) + transitivePeerDependencies: + - '@swc/helpers' + '@vitest/expect@3.0.2': dependencies: '@vitest/spy': 3.0.2 @@ -16231,13 +16420,13 @@ snapshots: chai: 5.1.2 tinyrainbow: 2.0.0 - '@vitest/mocker@3.0.2(vite@6.0.10(@types/node@22.15.3)(terser@5.26.0)(tsx@4.17.0))': + '@vitest/mocker@3.0.2(vite@6.3.5(@types/node@22.15.3)(terser@5.26.0)(tsx@4.17.0))': dependencies: '@vitest/spy': 3.0.2 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 6.0.10(@types/node@22.15.3)(terser@5.26.0)(tsx@4.17.0) + vite: 6.3.5(@types/node@22.15.3)(terser@5.26.0)(tsx@4.17.0) '@vitest/pretty-format@3.0.2': dependencies: @@ -16344,17 +16533,17 @@ snapshots: '@webpack-cli/configtest@2.1.1(webpack-cli@5.1.4)(webpack@5.90.0)': dependencies: - webpack: 5.90.0(webpack-cli@5.1.4) + webpack: 5.90.0(@swc/core@1.11.29)(webpack-cli@5.1.4) webpack-cli: 5.1.4(webpack-bundle-analyzer@4.5.0)(webpack-dev-server@5.0.4)(webpack@5.90.0) '@webpack-cli/info@2.0.2(webpack-cli@5.1.4)(webpack@5.90.0)': dependencies: - webpack: 5.90.0(webpack-cli@5.1.4) + webpack: 5.90.0(@swc/core@1.11.29)(webpack-cli@5.1.4) webpack-cli: 5.1.4(webpack-bundle-analyzer@4.5.0)(webpack-dev-server@5.0.4)(webpack@5.90.0) '@webpack-cli/serve@2.0.5(webpack-cli@5.1.4)(webpack-dev-server@5.0.4)(webpack@5.90.0)': dependencies: - webpack: 5.90.0(webpack-cli@5.1.4) + webpack: 5.90.0(@swc/core@1.11.29)(webpack-cli@5.1.4) webpack-cli: 5.1.4(webpack-bundle-analyzer@4.5.0)(webpack-dev-server@5.0.4)(webpack@5.90.0) optionalDependencies: webpack-dev-server: 5.0.4(webpack-cli@5.1.4)(webpack@5.90.0) @@ -16381,6 +16570,11 @@ snapshots: mime-types: 2.1.34 negotiator: 0.6.3 + accepts@2.0.0: + dependencies: + mime-types: 3.0.1 + negotiator: 1.0.0 + acorn-globals@7.0.1: dependencies: acorn: 8.11.2 @@ -16410,7 +16604,7 @@ snapshots: agent-base@6.0.2(supports-color@9.2.3): dependencies: - debug: 4.4.0(supports-color@9.2.3) + debug: 4.4.1(supports-color@9.2.3) transitivePeerDependencies: - supports-color @@ -16653,6 +16847,16 @@ snapshots: postcss: 8.5.1 postcss-value-parser: 4.2.0 + autoprefixer@10.4.17(postcss@8.5.3): + dependencies: + browserslist: 4.23.0 + caniuse-lite: 1.0.30001587 + fraction.js: 4.3.7 + normalize-range: 0.1.2 + picocolors: 1.1.1 + postcss: 8.5.3 + postcss-value-parser: 4.2.0 + available-typed-arrays@1.0.5: {} babel-jest@29.7.0(@babel/core@7.23.9): @@ -16668,19 +16872,19 @@ snapshots: transitivePeerDependencies: - supports-color - babel-loader@9.1.3(@babel/core@7.23.9)(webpack@5.90.0(esbuild@0.25.0)): + babel-loader@9.1.3(@babel/core@7.23.9)(webpack@5.90.0(@swc/core@1.11.29)(esbuild@0.25.0)): dependencies: '@babel/core': 7.23.9 find-cache-dir: 4.0.0 schema-utils: 4.2.0 - webpack: 5.90.0(esbuild@0.25.0) + webpack: 5.90.0(@swc/core@1.11.29)(esbuild@0.25.0) babel-loader@9.1.3(@babel/core@7.23.9)(webpack@5.90.0): dependencies: '@babel/core': 7.23.9 find-cache-dir: 4.0.0 schema-utils: 4.2.0 - webpack: 5.90.0(webpack-cli@5.1.4) + webpack: 5.90.0(@swc/core@1.11.29)(webpack-cli@5.1.4) babel-plugin-apply-mdx-type-prop@1.6.22(@babel/core@7.12.9): dependencies: @@ -16821,7 +17025,7 @@ snapshots: body-parser@1.20.1: dependencies: bytes: 3.1.2 - content-type: 1.0.4 + content-type: 1.0.5 debug: 2.6.9(supports-color@9.2.3) depd: 2.0.0 destroy: 1.2.0 @@ -16835,6 +17039,20 @@ snapshots: transitivePeerDependencies: - supports-color + body-parser@2.2.0: + dependencies: + bytes: 3.1.2 + content-type: 1.0.5 + debug: 4.4.1(supports-color@9.2.3) + http-errors: 2.0.0 + iconv-lite: 0.6.3 + on-finished: 2.4.1 + qs: 6.14.0 + raw-body: 3.0.0 + type-is: 2.0.1 + transitivePeerDependencies: + - supports-color + bonjour-service@1.2.1: dependencies: fast-deep-equal: 3.1.3 @@ -17018,12 +17236,22 @@ snapshots: cachedir@2.3.0: {} + call-bind-apply-helpers@1.0.2: + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + call-bind@1.0.5: dependencies: function-bind: 1.1.2 - get-intrinsic: 1.2.2 + get-intrinsic: 1.3.0 set-function-length: 1.1.1 + call-bound@1.0.4: + dependencies: + call-bind-apply-helpers: 1.0.2 + get-intrinsic: 1.3.0 + call-me-maybe@1.0.1: {} callsite@1.0.0: {} @@ -17347,16 +17575,16 @@ snapshots: compressible@2.0.18: dependencies: - mime-db: 1.51.0 + mime-db: 1.54.0 - compression@1.7.4: + compression@1.8.0: dependencies: - accepts: 1.3.8 - bytes: 3.0.0 + bytes: 3.1.2 compressible: 2.0.18 debug: 2.6.9(supports-color@9.2.3) + negotiator: 0.6.4 on-headers: 1.0.2 - safe-buffer: 5.1.2 + safe-buffer: 5.2.1 vary: 1.1.2 transitivePeerDependencies: - supports-color @@ -17403,8 +17631,14 @@ snapshots: dependencies: safe-buffer: 5.2.1 + content-disposition@1.0.0: + dependencies: + safe-buffer: 5.2.1 + content-type@1.0.4: {} + content-type@1.0.5: {} + convert-source-map@1.8.0: dependencies: safe-buffer: 5.1.2 @@ -17419,6 +17653,8 @@ snapshots: cookie@0.6.0: {} + cookie@0.7.2: {} + copy-descriptor@0.1.1: {} copy-template-dir@1.4.0: @@ -17443,7 +17679,7 @@ snapshots: normalize-path: 3.0.0 schema-utils: 4.2.0 serialize-javascript: 6.0.2 - webpack: 5.90.0(webpack-cli@5.1.4) + webpack: 5.90.0(@swc/core@1.11.29)(webpack-cli@5.1.4) core-js-compat@3.36.0: dependencies: @@ -17494,13 +17730,13 @@ snapshots: crc-32: 1.2.2 readable-stream: 3.6.0 - create-jest@29.7.0(@types/node@22.15.3)(ts-node@10.9.1(@types/node@22.15.3)(typescript@5.8.3)): + create-jest@29.7.0(@types/node@22.15.3)(ts-node@10.9.1(@swc/core@1.11.29)(@types/node@22.15.3)(typescript@5.8.3)): dependencies: '@jest/types': 29.6.3 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.10 - jest-config: 29.7.0(@types/node@22.15.3)(ts-node@10.9.1(@types/node@22.15.3)(typescript@5.8.3)) + jest-config: 29.7.0(@types/node@22.15.3)(ts-node@10.9.1(@swc/core@1.11.29)(@types/node@22.15.3)(typescript@5.8.3)) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -17535,11 +17771,11 @@ snapshots: css-color-names@0.0.4: {} - css-declaration-sorter@6.3.1(postcss@8.5.1): + css-declaration-sorter@6.3.1(postcss@8.5.3): dependencies: - postcss: 8.5.1 + postcss: 8.5.3 - css-loader@7.1.2(webpack@5.90.0(esbuild@0.25.0)): + css-loader@7.1.2(webpack@5.90.0(@swc/core@1.11.29)(esbuild@0.25.0)): dependencies: icss-utils: 5.1.0(postcss@8.5.1) postcss: 8.5.1 @@ -17550,7 +17786,7 @@ snapshots: postcss-value-parser: 4.2.0 semver: 7.6.0 optionalDependencies: - webpack: 5.90.0(esbuild@0.25.0) + webpack: 5.90.0(@swc/core@1.11.29)(esbuild@0.25.0) css-loader@7.1.2(webpack@5.90.0): dependencies: @@ -17563,7 +17799,7 @@ snapshots: postcss-value-parser: 4.2.0 semver: 7.6.0 optionalDependencies: - webpack: 5.90.0(webpack-cli@5.1.4) + webpack: 5.90.0(@swc/core@1.11.29)(webpack-cli@5.1.4) css-select@4.1.3: dependencies: @@ -17588,56 +17824,56 @@ snapshots: cssesc@3.0.0: {} - cssnano-preset-default@5.2.14(postcss@8.5.1): - dependencies: - css-declaration-sorter: 6.3.1(postcss@8.5.1) - cssnano-utils: 3.1.0(postcss@8.5.1) - postcss: 8.5.1 - postcss-calc: 8.2.4(postcss@8.5.1) - postcss-colormin: 5.3.1(postcss@8.5.1) - postcss-convert-values: 5.1.3(postcss@8.5.1) - postcss-discard-comments: 5.1.2(postcss@8.5.1) - postcss-discard-duplicates: 5.1.0(postcss@8.5.1) - postcss-discard-empty: 5.1.1(postcss@8.5.1) - postcss-discard-overridden: 5.1.0(postcss@8.5.1) - postcss-merge-longhand: 5.1.7(postcss@8.5.1) - postcss-merge-rules: 5.1.4(postcss@8.5.1) - postcss-minify-font-values: 5.1.0(postcss@8.5.1) - postcss-minify-gradients: 5.1.1(postcss@8.5.1) - postcss-minify-params: 5.1.4(postcss@8.5.1) - postcss-minify-selectors: 5.2.1(postcss@8.5.1) - postcss-normalize-charset: 5.1.0(postcss@8.5.1) - postcss-normalize-display-values: 5.1.0(postcss@8.5.1) - postcss-normalize-positions: 5.1.1(postcss@8.5.1) - postcss-normalize-repeat-style: 5.1.1(postcss@8.5.1) - postcss-normalize-string: 5.1.0(postcss@8.5.1) - postcss-normalize-timing-functions: 5.1.0(postcss@8.5.1) - postcss-normalize-unicode: 5.1.1(postcss@8.5.1) - postcss-normalize-url: 5.1.0(postcss@8.5.1) - postcss-normalize-whitespace: 5.1.1(postcss@8.5.1) - postcss-ordered-values: 5.1.3(postcss@8.5.1) - postcss-reduce-initial: 5.1.2(postcss@8.5.1) - postcss-reduce-transforms: 5.1.0(postcss@8.5.1) - postcss-svgo: 5.1.0(postcss@8.5.1) - postcss-unique-selectors: 5.1.1(postcss@8.5.1) - - cssnano-preset-lite@2.1.3(postcss@8.5.1): - dependencies: - cssnano-utils: 3.1.0(postcss@8.5.1) - postcss: 8.5.1 - postcss-discard-comments: 5.1.2(postcss@8.5.1) - postcss-discard-empty: 5.1.1(postcss@8.5.1) - postcss-normalize-whitespace: 5.1.1(postcss@8.5.1) - - cssnano-utils@3.1.0(postcss@8.5.1): - dependencies: - postcss: 8.5.1 - - cssnano@5.1.15(postcss@8.5.1): - dependencies: - cssnano-preset-default: 5.2.14(postcss@8.5.1) + cssnano-preset-default@5.2.14(postcss@8.5.3): + dependencies: + css-declaration-sorter: 6.3.1(postcss@8.5.3) + cssnano-utils: 3.1.0(postcss@8.5.3) + postcss: 8.5.3 + postcss-calc: 8.2.4(postcss@8.5.3) + postcss-colormin: 5.3.1(postcss@8.5.3) + postcss-convert-values: 5.1.3(postcss@8.5.3) + postcss-discard-comments: 5.1.2(postcss@8.5.3) + postcss-discard-duplicates: 5.1.0(postcss@8.5.3) + postcss-discard-empty: 5.1.1(postcss@8.5.3) + postcss-discard-overridden: 5.1.0(postcss@8.5.3) + postcss-merge-longhand: 5.1.7(postcss@8.5.3) + postcss-merge-rules: 5.1.4(postcss@8.5.3) + postcss-minify-font-values: 5.1.0(postcss@8.5.3) + postcss-minify-gradients: 5.1.1(postcss@8.5.3) + postcss-minify-params: 5.1.4(postcss@8.5.3) + postcss-minify-selectors: 5.2.1(postcss@8.5.3) + postcss-normalize-charset: 5.1.0(postcss@8.5.3) + postcss-normalize-display-values: 5.1.0(postcss@8.5.3) + postcss-normalize-positions: 5.1.1(postcss@8.5.3) + postcss-normalize-repeat-style: 5.1.1(postcss@8.5.3) + postcss-normalize-string: 5.1.0(postcss@8.5.3) + postcss-normalize-timing-functions: 5.1.0(postcss@8.5.3) + postcss-normalize-unicode: 5.1.1(postcss@8.5.3) + postcss-normalize-url: 5.1.0(postcss@8.5.3) + postcss-normalize-whitespace: 5.1.1(postcss@8.5.3) + postcss-ordered-values: 5.1.3(postcss@8.5.3) + postcss-reduce-initial: 5.1.2(postcss@8.5.3) + postcss-reduce-transforms: 5.1.0(postcss@8.5.3) + postcss-svgo: 5.1.0(postcss@8.5.3) + postcss-unique-selectors: 5.1.1(postcss@8.5.3) + + cssnano-preset-lite@2.1.3(postcss@8.5.3): + dependencies: + cssnano-utils: 3.1.0(postcss@8.5.3) + postcss: 8.5.3 + postcss-discard-comments: 5.1.2(postcss@8.5.3) + postcss-discard-empty: 5.1.1(postcss@8.5.3) + postcss-normalize-whitespace: 5.1.1(postcss@8.5.3) + + cssnano-utils@3.1.0(postcss@8.5.3): + dependencies: + postcss: 8.5.3 + + cssnano@5.1.15(postcss@8.5.3): + dependencies: + cssnano-preset-default: 5.2.14(postcss@8.5.3) lilconfig: 2.1.0 - postcss: 8.5.1 + postcss: 8.5.3 yaml: 1.10.2 csso@4.2.0: @@ -17652,7 +17888,7 @@ snapshots: dependencies: cssom: 0.3.8 - csstype@3.0.10: {} + csstype@3.1.3: {} cyclist@1.0.1: {} @@ -17686,15 +17922,15 @@ snapshots: dependencies: ms: 2.1.3 - debug@4.4.0(supports-color@9.2.3): + debug@4.4.0: dependencies: ms: 2.1.3 - optionalDependencies: - supports-color: 9.2.3 - debug@4.4.1: + debug@4.4.1(supports-color@9.2.3): dependencies: ms: 2.1.3 + optionalDependencies: + supports-color: 9.2.3 decache@4.6.1: dependencies: @@ -17798,8 +18034,8 @@ snapshots: define-data-property@1.1.1: dependencies: - get-intrinsic: 1.2.2 - gopd: 1.0.1 + get-intrinsic: 1.3.0 + gopd: 1.2.0 has-property-descriptors: 1.0.1 define-lazy-prop@2.0.0: {} @@ -17878,7 +18114,7 @@ snapshots: detective-less@1.0.2(supports-color@9.2.3): dependencies: - debug: 4.4.0(supports-color@9.2.3) + debug: 4.4.1(supports-color@9.2.3) gonzales-pe: 4.3.0 node-source-walk: 4.3.0 transitivePeerDependencies: @@ -17887,8 +18123,8 @@ snapshots: detective-postcss@6.1.0: dependencies: is-url: 1.2.4 - postcss: 8.5.1 - postcss-values-parser: 6.0.2(postcss@8.5.1) + postcss: 8.5.3 + postcss-values-parser: 6.0.2(postcss@8.5.3) detective-sass@4.0.1: dependencies: @@ -18012,6 +18248,12 @@ snapshots: p-event: 2.3.1 pify: 4.0.1 + dunder-proto@1.0.1: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-errors: 1.3.0 + gopd: 1.2.0 + duplexer3@0.1.4: {} duplexer@0.1.2: {} @@ -18049,6 +18291,8 @@ snapshots: encodeurl@1.0.2: {} + encodeurl@2.0.0: {} + end-of-stream@1.4.4: dependencies: once: 1.4.0 @@ -18086,10 +18330,18 @@ snapshots: dependencies: stackframe: 1.3.4 + es-define-property@1.0.1: {} + + es-errors@1.3.0: {} + es-module-lexer@1.6.0: {} es-module-lexer@1.7.0: {} + es-object-atoms@1.1.1: + dependencies: + es-errors: 1.3.0 + es6-promisify@6.1.1: {} esbuild-plugins-node-modules-polyfill@1.6.2(esbuild@0.17.6): @@ -18203,34 +18455,6 @@ snapshots: '@esbuild/win32-ia32': 0.23.1 '@esbuild/win32-x64': 0.23.1 - esbuild@0.24.2: - optionalDependencies: - '@esbuild/aix-ppc64': 0.24.2 - '@esbuild/android-arm': 0.24.2 - '@esbuild/android-arm64': 0.24.2 - '@esbuild/android-x64': 0.24.2 - '@esbuild/darwin-arm64': 0.24.2 - '@esbuild/darwin-x64': 0.24.2 - '@esbuild/freebsd-arm64': 0.24.2 - '@esbuild/freebsd-x64': 0.24.2 - '@esbuild/linux-arm': 0.24.2 - '@esbuild/linux-arm64': 0.24.2 - '@esbuild/linux-ia32': 0.24.2 - '@esbuild/linux-loong64': 0.24.2 - '@esbuild/linux-mips64el': 0.24.2 - '@esbuild/linux-ppc64': 0.24.2 - '@esbuild/linux-riscv64': 0.24.2 - '@esbuild/linux-s390x': 0.24.2 - '@esbuild/linux-x64': 0.24.2 - '@esbuild/netbsd-arm64': 0.24.2 - '@esbuild/netbsd-x64': 0.24.2 - '@esbuild/openbsd-arm64': 0.24.2 - '@esbuild/openbsd-x64': 0.24.2 - '@esbuild/sunos-x64': 0.24.2 - '@esbuild/win32-arm64': 0.24.2 - '@esbuild/win32-ia32': 0.24.2 - '@esbuild/win32-x64': 0.24.2 - esbuild@0.25.0: optionalDependencies: '@esbuild/aix-ppc64': 0.25.0 @@ -18301,7 +18525,7 @@ snapshots: estree-util-attach-comments@2.1.1: dependencies: - '@types/estree': 1.0.6 + '@types/estree': 1.0.7 estree-util-build-jsx@2.2.2: dependencies: @@ -18336,7 +18560,7 @@ snapshots: estree-walker@3.0.3: dependencies: - '@types/estree': 1.0.6 + '@types/estree': 1.0.7 esutils@2.0.3: {} @@ -18344,7 +18568,7 @@ snapshots: eval@0.1.8: dependencies: - '@types/node': 20.9.5 + '@types/node': 22.15.3 require-like: 0.1.2 event-target-shim@5.0.1: {} @@ -18447,9 +18671,41 @@ snapshots: transitivePeerDependencies: - supports-color + express@5.1.0: + dependencies: + accepts: 2.0.0 + body-parser: 2.2.0 + content-disposition: 1.0.0 + content-type: 1.0.5 + cookie: 0.7.2 + cookie-signature: 1.2.1 + debug: 4.4.1(supports-color@9.2.3) + encodeurl: 2.0.0 + escape-html: 1.0.3 + etag: 1.8.1 + finalhandler: 2.1.0 + fresh: 2.0.0 + http-errors: 2.0.0 + merge-descriptors: 2.0.0 + mime-types: 3.0.1 + on-finished: 2.4.1 + once: 1.4.0 + parseurl: 1.3.3 + proxy-addr: 2.0.7 + qs: 6.14.0 + range-parser: 1.2.1 + router: 2.2.0 + send: 1.2.0 + serve-static: 2.2.0 + statuses: 2.0.1 + type-is: 2.0.1 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + ext-list@2.2.2: dependencies: - mime-db: 1.51.0 + mime-db: 1.54.0 ext-name@5.0.0: dependencies: @@ -18638,6 +18894,17 @@ snapshots: transitivePeerDependencies: - supports-color + finalhandler@2.1.0: + dependencies: + debug: 4.4.1(supports-color@9.2.3) + encodeurl: 2.0.0 + escape-html: 1.0.3 + on-finished: 2.4.1 + parseurl: 1.3.3 + statuses: 2.0.1 + transitivePeerDependencies: + - supports-color + find-cache-dir@4.0.0: dependencies: common-path-prefix: 3.0.0 @@ -18671,9 +18938,9 @@ snapshots: dependencies: from2: 2.3.0 - follow-redirects@1.14.5(debug@4.4.0): + follow-redirects@1.14.5(debug@4.4.1): optionalDependencies: - debug: 4.4.0(supports-color@9.2.3) + debug: 4.4.1(supports-color@9.2.3) for-each@0.3.3: dependencies: @@ -18716,6 +18983,8 @@ snapshots: fresh@0.5.2: {} + fresh@2.0.0: {} + from2-array@0.0.4: dependencies: from2: 2.3.0 @@ -18803,12 +19072,18 @@ snapshots: get-caller-file@2.0.5: {} - get-intrinsic@1.2.2: + get-intrinsic@1.3.0: dependencies: + 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 - has-proto: 1.0.1 - has-symbols: 1.0.3 - hasown: 2.0.0 + get-proto: 1.0.1 + gopd: 1.2.0 + has-symbols: 1.1.0 + hasown: 2.0.2 + math-intrinsics: 1.1.0 get-package-type@0.1.0: {} @@ -18816,6 +19091,11 @@ snapshots: get-port@6.1.2: {} + get-proto@1.0.1: + dependencies: + dunder-proto: 1.0.1 + es-object-atoms: 1.1.1 + get-stream@2.3.1: dependencies: object-assign: 4.1.1 @@ -18969,9 +19249,7 @@ snapshots: dependencies: minimist: 1.2.8 - gopd@1.0.1: - dependencies: - get-intrinsic: 1.2.2 + gopd@1.2.0: {} got@10.7.0: dependencies: @@ -19105,13 +19383,11 @@ snapshots: has-property-descriptors@1.0.1: dependencies: - get-intrinsic: 1.2.2 - - has-proto@1.0.1: {} + get-intrinsic: 1.3.0 has-symbol-support-x@1.4.2: {} - has-symbols@1.0.3: {} + has-symbols@1.1.0: {} has-to-string-tag-x@1.4.1: dependencies: @@ -19119,7 +19395,7 @@ snapshots: has-tostringtag@1.0.0: dependencies: - has-symbols: 1.0.3 + has-symbols: 1.1.0 has-unicode@2.0.1: {} @@ -19157,6 +19433,10 @@ snapshots: dependencies: function-bind: 1.1.2 + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 + hast-to-hyperscript@9.0.1: dependencies: '@types/unist': 2.0.6 @@ -19193,7 +19473,7 @@ snapshots: hast-util-to-estree@2.3.3: dependencies: - '@types/estree': 1.0.6 + '@types/estree': 1.0.7 '@types/estree-jsx': 1.0.4 '@types/hast': 2.3.4 '@types/unist': 2.0.6 @@ -19281,26 +19561,26 @@ snapshots: relateurl: 0.2.7 terser: 5.26.0 - html-render-webpack-plugin@3.0.2(express@4.18.2): + html-render-webpack-plugin@3.0.2(express@5.1.0): dependencies: chalk: 4.1.2 eval: 0.1.8 exception-formatter: 2.1.2 - express: 4.18.2 + express: 5.1.0 schema-utils: 3.3.0 html-tags@3.1.0: {} html-void-elements@1.0.5: {} - html-webpack-plugin@5.5.0(webpack@5.90.0(esbuild@0.25.0)): + html-webpack-plugin@5.5.0(webpack@5.90.0(@swc/core@1.11.29)(esbuild@0.25.0)): dependencies: '@types/html-minifier-terser': 6.1.0 html-minifier-terser: 6.1.0 lodash: 4.17.21 pretty-error: 4.0.0 tapable: 2.2.1 - webpack: 5.90.0(esbuild@0.25.0) + webpack: 5.90.0(@swc/core@1.11.29)(esbuild@0.25.0) html-webpack-plugin@5.5.0(webpack@5.90.0): dependencies: @@ -19309,16 +19589,16 @@ snapshots: lodash: 4.17.21 pretty-error: 4.0.0 tapable: 2.2.1 - webpack: 5.90.0(webpack-cli@5.1.4) + webpack: 5.90.0(@swc/core@1.11.29)(webpack-cli@5.1.4) - htmlnano@2.0.3(cssnano@5.1.15(postcss@8.5.1))(postcss@8.5.1)(relateurl@0.2.7)(srcset@4.0.0)(svgo@2.8.0)(terser@5.26.0): + htmlnano@2.0.3(cssnano@5.1.15(postcss@8.5.3))(postcss@8.5.3)(relateurl@0.2.7)(srcset@4.0.0)(svgo@2.8.0)(terser@5.26.0): dependencies: cosmiconfig: 7.0.1 posthtml: 0.16.6 timsort: 0.3.0 optionalDependencies: - cssnano: 5.1.15(postcss@8.5.1) - postcss: 8.5.1 + cssnano: 5.1.15(postcss@8.5.3) + postcss: 8.5.3 relateurl: 0.2.7 srcset: 4.0.0 svgo: 2.8.0 @@ -19373,24 +19653,24 @@ snapshots: dependencies: '@tootallnate/once': 2.0.0 agent-base: 6.0.2(supports-color@9.2.3) - debug: 4.4.0(supports-color@9.2.3) + debug: 4.4.1(supports-color@9.2.3) transitivePeerDependencies: - supports-color http-proxy-middleware@1.3.1: dependencies: '@types/http-proxy': 1.17.9 - http-proxy: 1.18.1(debug@4.4.0) + http-proxy: 1.18.1(debug@4.4.1) is-glob: 4.0.3 is-plain-obj: 3.0.0 micromatch: 4.0.5 transitivePeerDependencies: - debug - http-proxy-middleware@2.0.6(@types/express@4.17.21)(debug@4.4.0): + http-proxy-middleware@2.0.6(@types/express@4.17.21)(debug@4.4.1): dependencies: '@types/http-proxy': 1.17.9 - http-proxy: 1.18.1(debug@4.4.0) + http-proxy: 1.18.1(debug@4.4.1) is-glob: 4.0.3 is-plain-obj: 3.0.0 micromatch: 4.0.5 @@ -19399,10 +19679,10 @@ snapshots: transitivePeerDependencies: - debug - http-proxy@1.18.1(debug@4.4.0): + http-proxy@1.18.1(debug@4.4.1): dependencies: eventemitter3: 4.0.7 - follow-redirects: 1.14.5(debug@4.4.0) + follow-redirects: 1.14.5(debug@4.4.1) requires-port: 1.0.0 transitivePeerDependencies: - debug @@ -19420,7 +19700,7 @@ snapshots: https-proxy-agent@5.0.1(supports-color@9.2.3): dependencies: agent-base: 6.0.2(supports-color@9.2.3) - debug: 4.4.0(supports-color@9.2.3) + debug: 4.4.1(supports-color@9.2.3) transitivePeerDependencies: - supports-color @@ -19732,13 +20012,15 @@ snapshots: is-promise@2.2.2: {} + is-promise@4.0.0: {} + is-reference@1.2.1: dependencies: '@types/estree': 1.0.6 is-reference@3.0.2: dependencies: - '@types/estree': 1.0.6 + '@types/estree': 1.0.7 is-retry-allowed@1.2.0: {} @@ -19832,7 +20114,7 @@ snapshots: istanbul-lib-source-maps@4.0.1: dependencies: - debug: 4.4.0(supports-color@9.2.3) + debug: 4.4.1(supports-color@9.2.3) istanbul-lib-coverage: 3.2.0 source-map: 0.6.1 transitivePeerDependencies: @@ -19888,16 +20170,16 @@ snapshots: - babel-plugin-macros - supports-color - jest-cli@29.7.0(@types/node@22.15.3)(ts-node@10.9.1(@types/node@22.15.3)(typescript@5.8.3)): + jest-cli@29.7.0(@types/node@22.15.3)(ts-node@10.9.1(@swc/core@1.11.29)(@types/node@22.15.3)(typescript@5.8.3)): dependencies: - '@jest/core': 29.7.0(ts-node@10.9.1(@types/node@22.15.3)(typescript@5.8.3)) + '@jest/core': 29.7.0(ts-node@10.9.1(@swc/core@1.11.29)(@types/node@22.15.3)(typescript@5.8.3)) '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@22.15.3)(ts-node@10.9.1(@types/node@22.15.3)(typescript@5.8.3)) + create-jest: 29.7.0(@types/node@22.15.3)(ts-node@10.9.1(@swc/core@1.11.29)(@types/node@22.15.3)(typescript@5.8.3)) exit: 0.1.2 import-local: 3.0.3 - jest-config: 29.7.0(@types/node@22.15.3)(ts-node@10.9.1(@types/node@22.15.3)(typescript@5.8.3)) + jest-config: 29.7.0(@types/node@22.15.3)(ts-node@10.9.1(@swc/core@1.11.29)(@types/node@22.15.3)(typescript@5.8.3)) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -19907,7 +20189,7 @@ snapshots: - supports-color - ts-node - jest-config@29.7.0(@types/node@22.15.3)(ts-node@10.9.1(@types/node@22.15.3)(typescript@5.8.3)): + jest-config@29.7.0(@types/node@22.15.3)(ts-node@10.9.1(@swc/core@1.11.29)(@types/node@22.15.3)(typescript@5.8.3)): dependencies: '@babel/core': 7.23.9 '@jest/test-sequencer': 29.7.0 @@ -19933,7 +20215,7 @@ snapshots: strip-json-comments: 3.1.1 optionalDependencies: '@types/node': 22.15.3 - ts-node: 10.9.1(@types/node@22.15.3)(typescript@5.8.3) + ts-node: 10.9.1(@swc/core@1.11.29)(@types/node@22.15.3)(typescript@5.8.3) transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -20202,12 +20484,12 @@ snapshots: merge-stream: 2.0.0 supports-color: 8.1.1 - jest@29.7.0(@types/node@22.15.3)(ts-node@10.9.1(@types/node@22.15.3)(typescript@5.8.3)): + jest@29.7.0(@types/node@22.15.3)(ts-node@10.9.1(@swc/core@1.11.29)(@types/node@22.15.3)(typescript@5.8.3)): dependencies: - '@jest/core': 29.7.0(ts-node@10.9.1(@types/node@22.15.3)(typescript@5.8.3)) + '@jest/core': 29.7.0(ts-node@10.9.1(@swc/core@1.11.29)(@types/node@22.15.3)(typescript@5.8.3)) '@jest/types': 29.6.3 import-local: 3.0.3 - jest-cli: 29.7.0(@types/node@22.15.3)(ts-node@10.9.1(@types/node@22.15.3)(typescript@5.8.3)) + jest-cli: 29.7.0(@types/node@22.15.3)(ts-node@10.9.1(@swc/core@1.11.29)(@types/node@22.15.3)(typescript@5.8.3)) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -20719,6 +21001,8 @@ snapshots: markdown-extensions@1.1.1: {} + math-intrinsics@1.1.0: {} + maxstache-stream@1.0.4: dependencies: maxstache: 1.0.7 @@ -20927,6 +21211,8 @@ snapshots: media-typer@0.3.0: {} + media-typer@1.1.0: {} + memfs@4.11.1: dependencies: '@jsonjoy.com/json-pack': 1.1.0(tslib@2.5.0) @@ -20952,6 +21238,8 @@ snapshots: merge-descriptors@1.0.1: {} + merge-descriptors@2.0.0: {} + merge-options@3.0.4: dependencies: is-plain-obj: 2.1.0 @@ -20994,7 +21282,7 @@ snapshots: micromark-extension-mdx-expression@1.0.8: dependencies: - '@types/estree': 1.0.6 + '@types/estree': 1.0.7 micromark-factory-mdx-expression: 1.0.9 micromark-factory-space: 1.1.0 micromark-util-character: 1.2.0 @@ -21006,7 +21294,7 @@ snapshots: micromark-extension-mdx-jsx@1.0.5: dependencies: '@types/acorn': 4.0.6 - '@types/estree': 1.0.6 + '@types/estree': 1.0.7 estree-util-is-identifier-name: 2.1.0 micromark-factory-mdx-expression: 1.0.9 micromark-factory-space: 1.1.0 @@ -21022,7 +21310,7 @@ snapshots: micromark-extension-mdxjs-esm@1.0.5: dependencies: - '@types/estree': 1.0.6 + '@types/estree': 1.0.7 micromark-core-commonmark: 1.1.0 micromark-util-character: 1.2.0 micromark-util-events-to-acorn: 1.2.3 @@ -21058,7 +21346,7 @@ snapshots: micromark-factory-mdx-expression@1.0.9: dependencies: - '@types/estree': 1.0.6 + '@types/estree': 1.0.7 micromark-util-character: 1.2.0 micromark-util-events-to-acorn: 1.2.3 micromark-util-symbol: 1.1.0 @@ -21122,7 +21410,7 @@ snapshots: micromark-util-events-to-acorn@1.2.3: dependencies: '@types/acorn': 4.0.6 - '@types/estree': 1.0.6 + '@types/estree': 1.0.7 '@types/unist': 2.0.6 estree-util-visit: 1.2.1 micromark-util-symbol: 1.1.0 @@ -21160,7 +21448,7 @@ snapshots: micromark@3.2.0: dependencies: '@types/debug': 4.1.7 - debug: 4.4.0(supports-color@9.2.3) + debug: 4.4.1(supports-color@9.2.3) decode-named-character-reference: 1.0.2 micromark-core-commonmark: 1.1.0 micromark-factory-space: 1.1.0 @@ -21206,6 +21494,8 @@ snapshots: mime-db@1.51.0: {} + mime-db@1.54.0: {} + mime-types@2.1.18: dependencies: mime-db: 1.33.0 @@ -21214,6 +21504,10 @@ snapshots: dependencies: mime-db: 1.51.0 + mime-types@3.0.1: + dependencies: + mime-db: 1.54.0 + mime@1.6.0: {} mime@2.6.0: {} @@ -21234,15 +21528,15 @@ snapshots: min-indent@1.0.1: {} - mini-css-extract-plugin@2.7.7(webpack@5.90.0(esbuild@0.25.0)): + mini-css-extract-plugin@2.7.7(webpack@5.90.0(@swc/core@1.11.29)(esbuild@0.25.0)): dependencies: schema-utils: 4.2.0 - webpack: 5.90.0(esbuild@0.25.0) + webpack: 5.90.0(@swc/core@1.11.29)(esbuild@0.25.0) mini-css-extract-plugin@2.7.7(webpack@5.90.0): dependencies: schema-utils: 4.2.0 - webpack: 5.90.0(webpack-cli@5.1.4) + webpack: 5.90.0(@swc/core@1.11.29)(webpack-cli@5.1.4) minimalistic-assert@1.0.1: {} @@ -21398,13 +21692,17 @@ snapshots: negotiator@0.6.3: {} + negotiator@0.6.4: {} + + negotiator@1.0.0: {} + neo-async@2.6.2: {} nested-error-stacks@2.1.1: {} - netlify-cli@11.8.3(@types/express@4.17.21): + netlify-cli@11.8.3(@swc/core@1.11.29)(@types/express@4.17.21): dependencies: - '@netlify/build': 27.18.5 + '@netlify/build': 27.18.5(@swc/core@1.11.29) '@netlify/config': 18.2.3 '@netlify/edge-bundler': 2.2.0 '@netlify/framework-info': 9.2.0 @@ -21431,7 +21729,7 @@ snapshots: cookie: 0.5.0 copy-template-dir: 1.4.0 cron-parser: 4.6.0 - debug: 4.4.0(supports-color@9.2.3) + debug: 4.4.1(supports-color@9.2.3) decache: 4.6.1 del: 6.1.1 dot-prop: 6.0.1 @@ -21453,8 +21751,8 @@ snapshots: gitconfiglocal: 2.1.0 hasbin: 1.2.3 hasha: 5.2.2 - http-proxy: 1.18.1(debug@4.4.0) - http-proxy-middleware: 2.0.6(@types/express@4.17.21)(debug@4.4.0) + http-proxy: 1.18.1(debug@4.4.1) + http-proxy-middleware: 2.0.6(@types/express@4.17.21)(debug@4.4.1) https-proxy-agent: 5.0.1(supports-color@9.2.3) inquirer: 6.5.2 inquirer-autocomplete-prompt: 1.4.0(inquirer@6.5.2) @@ -21585,6 +21883,34 @@ snapshots: - '@babel/core' - babel-plugin-macros + next@12.3.4(@babel/core@7.23.9)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + dependencies: + '@next/env': 12.3.4 + '@swc/helpers': 0.4.11 + caniuse-lite: 1.0.30001587 + postcss: 8.4.14 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + styled-jsx: 5.0.7(@babel/core@7.23.9)(react@19.1.0) + use-sync-external-store: 1.2.0(react@19.1.0) + optionalDependencies: + '@next/swc-android-arm-eabi': 12.3.4 + '@next/swc-android-arm64': 12.3.4 + '@next/swc-darwin-arm64': 12.3.4 + '@next/swc-darwin-x64': 12.3.4 + '@next/swc-freebsd-x64': 12.3.4 + '@next/swc-linux-arm-gnueabihf': 12.3.4 + '@next/swc-linux-arm64-gnu': 12.3.4 + '@next/swc-linux-arm64-musl': 12.3.4 + '@next/swc-linux-x64-gnu': 12.3.4 + '@next/swc-linux-x64-musl': 12.3.4 + '@next/swc-win32-arm64-msvc': 12.3.4 + '@next/swc-win32-ia32-msvc': 12.3.4 + '@next/swc-win32-x64-msvc': 12.3.4 + transitivePeerDependencies: + - '@babel/core' + - babel-plugin-macros + next@13.5.4(@babel/core@7.23.9)(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: '@next/env': 13.5.4 @@ -21787,7 +22113,7 @@ snapshots: dependencies: loader-utils: 2.0.2 schema-utils: 3.3.0 - webpack: 5.90.0(webpack-cli@5.1.4) + webpack: 5.90.0(@swc/core@1.11.29)(webpack-cli@5.1.4) nullthrows@1.1.1: {} @@ -21805,7 +22131,7 @@ snapshots: object-hash@2.2.0: {} - object-inspect@1.13.1: {} + object-inspect@1.13.4: {} object-visit@1.0.1: dependencies: @@ -22152,6 +22478,8 @@ snapshots: path-to-regexp@2.2.1: {} + path-to-regexp@8.2.0: {} + path-type@3.0.0: dependencies: pify: 3.0.0 @@ -22180,7 +22508,7 @@ snapshots: periscopic@3.1.0: dependencies: - '@types/estree': 1.0.6 + '@types/estree': 1.0.7 estree-walker: 3.0.3 is-reference: 3.0.2 @@ -22246,107 +22574,111 @@ snapshots: posix-character-classes@0.1.1: {} - postcss-calc@8.2.4(postcss@8.5.1): + postcss-calc@8.2.4(postcss@8.5.3): dependencies: - postcss: 8.5.1 + postcss: 8.5.3 postcss-selector-parser: 6.0.11 postcss-value-parser: 4.2.0 - postcss-colormin@5.3.1(postcss@8.5.1): + postcss-colormin@5.3.1(postcss@8.5.3): dependencies: browserslist: 4.23.0 caniuse-api: 3.0.0 colord: 2.9.1 - postcss: 8.5.1 + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-convert-values@5.1.3(postcss@8.5.1): + postcss-convert-values@5.1.3(postcss@8.5.3): dependencies: browserslist: 4.23.0 - postcss: 8.5.1 + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-discard-comments@5.1.2(postcss@8.5.1): + postcss-discard-comments@5.1.2(postcss@8.5.3): dependencies: - postcss: 8.5.1 + postcss: 8.5.3 postcss-discard-duplicates@5.1.0(postcss@8.5.1): dependencies: postcss: 8.5.1 - postcss-discard-empty@5.1.1(postcss@8.5.1): + postcss-discard-duplicates@5.1.0(postcss@8.5.3): dependencies: - postcss: 8.5.1 + postcss: 8.5.3 - postcss-discard-overridden@5.1.0(postcss@8.5.1): + postcss-discard-empty@5.1.1(postcss@8.5.3): dependencies: - postcss: 8.5.1 + postcss: 8.5.3 + + postcss-discard-overridden@5.1.0(postcss@8.5.3): + dependencies: + postcss: 8.5.3 postcss-js@3.0.3: dependencies: camelcase-css: 2.0.1 - postcss: 8.5.1 + postcss: 8.5.3 - postcss-load-config@3.1.0(ts-node@10.9.1(@types/node@16.11.10)(typescript@4.9.4)): + postcss-load-config@3.1.0(ts-node@10.9.1(@swc/core@1.11.29)(@types/node@16.11.10)(typescript@4.9.4)): dependencies: import-cwd: 3.0.0 lilconfig: 2.1.0 yaml: 1.10.2 optionalDependencies: - ts-node: 10.9.1(@types/node@16.11.10)(typescript@4.9.4) + ts-node: 10.9.1(@swc/core@1.11.29)(@types/node@16.11.10)(typescript@4.9.4) - postcss-load-config@3.1.0(ts-node@10.9.1(@types/node@22.15.3)(typescript@5.8.3)): + postcss-load-config@3.1.0(ts-node@10.9.1(@swc/core@1.11.29)(@types/node@22.15.3)(typescript@5.8.3)): dependencies: import-cwd: 3.0.0 lilconfig: 2.1.0 yaml: 1.10.2 optionalDependencies: - ts-node: 10.9.1(@types/node@22.15.3)(typescript@5.8.3) + ts-node: 10.9.1(@swc/core@1.11.29)(@types/node@22.15.3)(typescript@5.8.3) - postcss-load-config@4.0.2(postcss@8.5.1)(ts-node@10.9.1(@types/node@22.15.3)(typescript@5.8.3)): + postcss-load-config@4.0.2(postcss@8.5.1)(ts-node@10.9.1(@swc/core@1.11.29)(@types/node@22.15.3)(typescript@5.8.3)): dependencies: lilconfig: 3.1.0 yaml: 2.3.4 optionalDependencies: postcss: 8.5.1 - ts-node: 10.9.1(@types/node@22.15.3)(typescript@5.8.3) + ts-node: 10.9.1(@swc/core@1.11.29)(@types/node@22.15.3)(typescript@5.8.3) - postcss-merge-longhand@5.1.7(postcss@8.5.1): + postcss-merge-longhand@5.1.7(postcss@8.5.3): dependencies: - postcss: 8.5.1 + postcss: 8.5.3 postcss-value-parser: 4.2.0 - stylehacks: 5.1.1(postcss@8.5.1) + stylehacks: 5.1.1(postcss@8.5.3) - postcss-merge-rules@5.1.4(postcss@8.5.1): + postcss-merge-rules@5.1.4(postcss@8.5.3): dependencies: browserslist: 4.23.0 caniuse-api: 3.0.0 - cssnano-utils: 3.1.0(postcss@8.5.1) - postcss: 8.5.1 + cssnano-utils: 3.1.0(postcss@8.5.3) + postcss: 8.5.3 postcss-selector-parser: 6.0.11 - postcss-minify-font-values@5.1.0(postcss@8.5.1): + postcss-minify-font-values@5.1.0(postcss@8.5.3): dependencies: - postcss: 8.5.1 + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-minify-gradients@5.1.1(postcss@8.5.1): + postcss-minify-gradients@5.1.1(postcss@8.5.3): dependencies: colord: 2.9.1 - cssnano-utils: 3.1.0(postcss@8.5.1) - postcss: 8.5.1 + cssnano-utils: 3.1.0(postcss@8.5.3) + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-minify-params@5.1.4(postcss@8.5.1): + postcss-minify-params@5.1.4(postcss@8.5.3): dependencies: browserslist: 4.23.0 - cssnano-utils: 3.1.0(postcss@8.5.1) - postcss: 8.5.1 + cssnano-utils: 3.1.0(postcss@8.5.3) + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-minify-selectors@5.2.1(postcss@8.5.1): + postcss-minify-selectors@5.2.1(postcss@8.5.3): dependencies: - postcss: 8.5.1 + postcss: 8.5.3 postcss-selector-parser: 6.0.11 postcss-modules-extract-imports@3.1.0(postcss@8.5.1): @@ -22387,67 +22719,72 @@ snapshots: postcss: 8.5.1 postcss-selector-parser: 6.0.11 - postcss-normalize-charset@5.1.0(postcss@8.5.1): + postcss-nested@5.0.6(postcss@8.5.3): dependencies: - postcss: 8.5.1 + postcss: 8.5.3 + postcss-selector-parser: 6.0.11 - postcss-normalize-display-values@5.1.0(postcss@8.5.1): + postcss-normalize-charset@5.1.0(postcss@8.5.3): dependencies: - postcss: 8.5.1 + postcss: 8.5.3 + + postcss-normalize-display-values@5.1.0(postcss@8.5.3): + dependencies: + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-normalize-positions@5.1.1(postcss@8.5.1): + postcss-normalize-positions@5.1.1(postcss@8.5.3): dependencies: - postcss: 8.5.1 + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-normalize-repeat-style@5.1.1(postcss@8.5.1): + postcss-normalize-repeat-style@5.1.1(postcss@8.5.3): dependencies: - postcss: 8.5.1 + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-normalize-string@5.1.0(postcss@8.5.1): + postcss-normalize-string@5.1.0(postcss@8.5.3): dependencies: - postcss: 8.5.1 + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-normalize-timing-functions@5.1.0(postcss@8.5.1): + postcss-normalize-timing-functions@5.1.0(postcss@8.5.3): dependencies: - postcss: 8.5.1 + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-normalize-unicode@5.1.1(postcss@8.5.1): + postcss-normalize-unicode@5.1.1(postcss@8.5.3): dependencies: browserslist: 4.23.0 - postcss: 8.5.1 + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-normalize-url@5.1.0(postcss@8.5.1): + postcss-normalize-url@5.1.0(postcss@8.5.3): dependencies: normalize-url: 6.1.0 - postcss: 8.5.1 + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-normalize-whitespace@5.1.1(postcss@8.5.1): + postcss-normalize-whitespace@5.1.1(postcss@8.5.3): dependencies: - postcss: 8.5.1 + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-ordered-values@5.1.3(postcss@8.5.1): + postcss-ordered-values@5.1.3(postcss@8.5.3): dependencies: - cssnano-utils: 3.1.0(postcss@8.5.1) - postcss: 8.5.1 + cssnano-utils: 3.1.0(postcss@8.5.3) + postcss: 8.5.3 postcss-value-parser: 4.2.0 - postcss-reduce-initial@5.1.2(postcss@8.5.1): + postcss-reduce-initial@5.1.2(postcss@8.5.3): dependencies: browserslist: 4.23.0 caniuse-api: 3.0.0 - postcss: 8.5.1 + postcss: 8.5.3 - postcss-reduce-transforms@5.1.0(postcss@8.5.1): + postcss-reduce-transforms@5.1.0(postcss@8.5.3): dependencies: - postcss: 8.5.1 + postcss: 8.5.3 postcss-value-parser: 4.2.0 postcss-selector-parser@6.0.11: @@ -22455,26 +22792,26 @@ snapshots: cssesc: 3.0.0 util-deprecate: 1.0.2 - postcss-svgo@5.1.0(postcss@8.5.1): + postcss-svgo@5.1.0(postcss@8.5.3): dependencies: - postcss: 8.5.1 + postcss: 8.5.3 postcss-value-parser: 4.2.0 svgo: 2.8.0 - postcss-unique-selectors@5.1.1(postcss@8.5.1): + postcss-unique-selectors@5.1.1(postcss@8.5.3): dependencies: - postcss: 8.5.1 + postcss: 8.5.3 postcss-selector-parser: 6.0.11 postcss-value-parser@3.3.1: {} postcss-value-parser@4.2.0: {} - postcss-values-parser@6.0.2(postcss@8.5.1): + postcss-values-parser@6.0.2(postcss@8.5.3): dependencies: color-name: 1.1.4 is-url-superb: 4.0.0 - postcss: 8.5.1 + postcss: 8.5.3 quote-unquote: 1.0.0 postcss@8.4.14: @@ -22495,6 +22832,12 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 + postcss@8.5.3: + dependencies: + nanoid: 3.3.8 + picocolors: 1.1.1 + source-map-js: 1.2.1 + posthtml-parser@0.10.2: dependencies: htmlparser2: 7.2.0 @@ -22652,13 +22995,17 @@ snapshots: dependencies: commander: 6.2.1 glob: 7.2.0 - postcss: 8.5.1 + postcss: 8.5.3 postcss-selector-parser: 6.0.11 qs@6.11.0: dependencies: side-channel: 1.0.4 + qs@6.14.0: + dependencies: + side-channel: 1.1.0 + query-string@5.1.1: dependencies: decode-uri-component: 0.2.0 @@ -22692,6 +23039,13 @@ snapshots: iconv-lite: 0.4.24 unpipe: 1.0.0 + raw-body@3.0.0: + dependencies: + bytes: 3.1.2 + http-errors: 2.0.0 + iconv-lite: 0.6.3 + unpipe: 1.0.0 + rc@1.2.8: dependencies: deep-extend: 0.6.0 @@ -22705,6 +23059,11 @@ snapshots: react: 18.2.0 scheduler: 0.23.0 + react-dom@19.1.0(react@19.1.0): + dependencies: + react: 19.1.0 + scheduler: 0.26.0 + react-error-overlay@6.0.9: {} react-head@3.4.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0): @@ -22754,6 +23113,8 @@ snapshots: dependencies: loose-envify: 1.4.0 + react@19.1.0: {} + read-package-json-fast@2.0.3: dependencies: json-parse-even-better-errors: 2.3.1 @@ -23119,28 +23480,28 @@ snapshots: dependencies: glob: 10.3.10 - rollup-plugin-dts@6.1.1(rollup@4.30.1)(typescript@5.8.3): + rollup-plugin-dts@6.1.1(rollup@4.41.0)(typescript@5.8.3): dependencies: magic-string: 0.30.17 - rollup: 4.30.1 + rollup: 4.41.0 typescript: 5.8.3 optionalDependencies: '@babel/code-frame': 7.24.7 - rollup-plugin-esbuild@6.1.1(esbuild@0.25.0)(rollup@4.30.1): + rollup-plugin-esbuild@6.1.1(esbuild@0.25.0)(rollup@4.41.0): dependencies: - '@rollup/pluginutils': 5.1.4(rollup@4.30.1) - debug: 4.4.0(supports-color@9.2.3) + '@rollup/pluginutils': 5.1.4(rollup@4.41.0) + debug: 4.4.1(supports-color@9.2.3) es-module-lexer: 1.6.0 esbuild: 0.25.0 get-tsconfig: 4.7.6 - rollup: 4.30.1 + rollup: 4.41.0 transitivePeerDependencies: - supports-color - rollup-plugin-node-externals@7.1.3(rollup@4.30.1): + rollup-plugin-node-externals@7.1.3(rollup@4.41.0): dependencies: - rollup: 4.30.1 + rollup: 4.41.0 rollup-pluginutils@2.8.2: dependencies: @@ -23150,31 +23511,42 @@ snapshots: optionalDependencies: fsevents: 2.3.3 - rollup@4.30.1: + rollup@4.41.0: dependencies: - '@types/estree': 1.0.6 + '@types/estree': 1.0.7 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.30.1 - '@rollup/rollup-android-arm64': 4.30.1 - '@rollup/rollup-darwin-arm64': 4.30.1 - '@rollup/rollup-darwin-x64': 4.30.1 - '@rollup/rollup-freebsd-arm64': 4.30.1 - '@rollup/rollup-freebsd-x64': 4.30.1 - '@rollup/rollup-linux-arm-gnueabihf': 4.30.1 - '@rollup/rollup-linux-arm-musleabihf': 4.30.1 - '@rollup/rollup-linux-arm64-gnu': 4.30.1 - '@rollup/rollup-linux-arm64-musl': 4.30.1 - '@rollup/rollup-linux-loongarch64-gnu': 4.30.1 - '@rollup/rollup-linux-powerpc64le-gnu': 4.30.1 - '@rollup/rollup-linux-riscv64-gnu': 4.30.1 - '@rollup/rollup-linux-s390x-gnu': 4.30.1 - '@rollup/rollup-linux-x64-gnu': 4.30.1 - '@rollup/rollup-linux-x64-musl': 4.30.1 - '@rollup/rollup-win32-arm64-msvc': 4.30.1 - '@rollup/rollup-win32-ia32-msvc': 4.30.1 - '@rollup/rollup-win32-x64-msvc': 4.30.1 + '@rollup/rollup-android-arm-eabi': 4.41.0 + '@rollup/rollup-android-arm64': 4.41.0 + '@rollup/rollup-darwin-arm64': 4.41.0 + '@rollup/rollup-darwin-x64': 4.41.0 + '@rollup/rollup-freebsd-arm64': 4.41.0 + '@rollup/rollup-freebsd-x64': 4.41.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.41.0 + '@rollup/rollup-linux-arm-musleabihf': 4.41.0 + '@rollup/rollup-linux-arm64-gnu': 4.41.0 + '@rollup/rollup-linux-arm64-musl': 4.41.0 + '@rollup/rollup-linux-loongarch64-gnu': 4.41.0 + '@rollup/rollup-linux-powerpc64le-gnu': 4.41.0 + '@rollup/rollup-linux-riscv64-gnu': 4.41.0 + '@rollup/rollup-linux-riscv64-musl': 4.41.0 + '@rollup/rollup-linux-s390x-gnu': 4.41.0 + '@rollup/rollup-linux-x64-gnu': 4.41.0 + '@rollup/rollup-linux-x64-musl': 4.41.0 + '@rollup/rollup-win32-arm64-msvc': 4.41.0 + '@rollup/rollup-win32-ia32-msvc': 4.41.0 + '@rollup/rollup-win32-x64-msvc': 4.41.0 fsevents: 2.3.3 + router@2.2.0: + dependencies: + debug: 4.4.1(supports-color@9.2.3) + depd: 2.0.0 + is-promise: 4.0.0 + parseurl: 1.3.3 + path-to-regexp: 8.2.0 + transitivePeerDependencies: + - supports-color + run-applescript@7.0.0: {} run-async@2.4.1: {} @@ -23215,6 +23587,8 @@ snapshots: dependencies: loose-envify: 1.4.0 + scheduler@0.26.0: {} + schema-utils@3.3.0: dependencies: '@types/json-schema': 7.0.9 @@ -23279,6 +23653,22 @@ snapshots: transitivePeerDependencies: - supports-color + send@1.2.0: + dependencies: + debug: 4.4.1(supports-color@9.2.3) + encodeurl: 2.0.0 + escape-html: 1.0.3 + etag: 1.8.1 + fresh: 2.0.0 + http-errors: 2.0.0 + mime-types: 3.0.1 + ms: 2.1.3 + on-finished: 2.4.1 + range-parser: 1.2.1 + statuses: 2.0.1 + transitivePeerDependencies: + - supports-color + sentence-case@2.1.1: dependencies: no-case: 2.3.2 @@ -23320,6 +23710,15 @@ snapshots: transitivePeerDependencies: - supports-color + serve-static@2.2.0: + dependencies: + encodeurl: 2.0.0 + escape-html: 1.0.3 + parseurl: 1.3.3 + send: 1.2.0 + transitivePeerDependencies: + - supports-color + set-blocking@2.0.0: {} set-cookie-parser@2.6.0: {} @@ -23327,8 +23726,8 @@ snapshots: set-function-length@1.1.1: dependencies: define-data-property: 1.1.1 - get-intrinsic: 1.2.2 - gopd: 1.0.1 + get-intrinsic: 1.3.0 + gopd: 1.2.0 has-property-descriptors: 1.0.1 set-value@2.0.1: @@ -23360,11 +23759,39 @@ snapshots: shell-quote@1.8.1: {} + side-channel-list@1.0.0: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.4 + + side-channel-map@1.0.1: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + 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.0 + object-inspect: 1.13.4 + side-channel-map: 1.0.1 + side-channel@1.0.4: dependencies: call-bind: 1.0.5 - get-intrinsic: 1.2.2 - object-inspect: 1.13.1 + get-intrinsic: 1.3.0 + object-inspect: 1.13.4 + + side-channel@1.1.0: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.4 + side-channel-list: 1.0.0 + side-channel-map: 1.0.1 + side-channel-weakmap: 1.0.2 siginfo@2.0.0: {} @@ -23382,7 +23809,7 @@ snapshots: mime: 2.6.0 totalist: 1.1.0 - sirv@3.0.0: + sirv@3.0.1: dependencies: '@polka/url': 1.0.0-next.24 mrmime: 2.0.0 @@ -23505,7 +23932,7 @@ snapshots: spdy-transport@3.0.0: dependencies: - debug: 4.4.0(supports-color@9.2.3) + debug: 4.4.1(supports-color@9.2.3) detect-node: 2.1.0 hpack.js: 2.1.6 obuf: 1.1.2 @@ -23516,7 +23943,7 @@ snapshots: spdy@4.0.2: dependencies: - debug: 4.4.0(supports-color@9.2.3) + debug: 4.4.1(supports-color@9.2.3) handle-thing: 2.0.1 http-deceiver: 1.2.7 select-hose: 2.0.0 @@ -23688,11 +24115,11 @@ snapshots: dependencies: escape-string-regexp: 1.0.5 - style-loader@2.0.0(webpack@5.90.0(esbuild@0.25.0)): + style-loader@2.0.0(webpack@5.90.0(@swc/core@1.11.29)(esbuild@0.25.0)): dependencies: loader-utils: 2.0.2 schema-utils: 3.3.0 - webpack: 5.90.0(esbuild@0.25.0) + webpack: 5.90.0(@swc/core@1.11.29)(esbuild@0.25.0) style-to-object@0.3.0: dependencies: @@ -23708,6 +24135,12 @@ snapshots: optionalDependencies: '@babel/core': 7.23.9 + styled-jsx@5.0.7(@babel/core@7.23.9)(react@19.1.0): + dependencies: + react: 19.1.0 + optionalDependencies: + '@babel/core': 7.23.9 + styled-jsx@5.1.1(@babel/core@7.23.9)(react@18.2.0): dependencies: client-only: 0.0.1 @@ -23715,10 +24148,10 @@ snapshots: optionalDependencies: '@babel/core': 7.23.9 - stylehacks@5.1.1(postcss@8.5.1): + stylehacks@5.1.1(postcss@8.5.3): dependencies: browserslist: 4.23.0 - postcss: 8.5.1 + postcss: 8.5.3 postcss-selector-parser: 6.0.11 supports-color@0.2.0: {} @@ -23767,7 +24200,7 @@ snapshots: tabtab@3.0.2: dependencies: - debug: 4.4.0(supports-color@9.2.3) + debug: 4.4.1(supports-color@9.2.3) es6-promisify: 6.1.1 inquirer: 6.5.2 minimist: 1.2.8 @@ -23776,7 +24209,7 @@ snapshots: transitivePeerDependencies: - supports-color - tailwindcss@2.2.19(autoprefixer@10.4.17(postcss@8.5.1))(postcss@8.5.1)(ts-node@10.9.1(@types/node@16.11.10)(typescript@4.9.4)): + tailwindcss@2.2.19(autoprefixer@10.4.17(postcss@8.5.1))(postcss@8.5.1)(ts-node@10.9.1(@swc/core@1.11.29)(@types/node@22.15.3)(typescript@5.8.3)): dependencies: arg: 5.0.2 autoprefixer: 10.4.17(postcss@8.5.1) @@ -23802,7 +24235,7 @@ snapshots: object-hash: 2.2.0 postcss: 8.5.1 postcss-js: 3.0.3 - postcss-load-config: 3.1.0(ts-node@10.9.1(@types/node@16.11.10)(typescript@4.9.4)) + postcss-load-config: 3.1.0(ts-node@10.9.1(@swc/core@1.11.29)(@types/node@22.15.3)(typescript@5.8.3)) postcss-nested: 5.0.6(postcss@8.5.1) postcss-selector-parser: 6.0.11 postcss-value-parser: 4.2.0 @@ -23815,10 +24248,10 @@ snapshots: transitivePeerDependencies: - ts-node - tailwindcss@2.2.19(autoprefixer@10.4.17(postcss@8.5.1))(postcss@8.5.1)(ts-node@10.9.1(@types/node@22.15.3)(typescript@5.8.3)): + tailwindcss@2.2.19(autoprefixer@10.4.17(postcss@8.5.3))(postcss@8.5.3)(ts-node@10.9.1(@swc/core@1.11.29)(@types/node@16.11.10)(typescript@4.9.4)): dependencies: arg: 5.0.2 - autoprefixer: 10.4.17(postcss@8.5.1) + autoprefixer: 10.4.17(postcss@8.5.3) bytes: 3.1.2 chalk: 4.1.2 chokidar: 3.6.0 @@ -23839,10 +24272,10 @@ snapshots: node-emoji: 1.11.0 normalize-path: 3.0.0 object-hash: 2.2.0 - postcss: 8.5.1 + postcss: 8.5.3 postcss-js: 3.0.3 - postcss-load-config: 3.1.0(ts-node@10.9.1(@types/node@22.15.3)(typescript@5.8.3)) - postcss-nested: 5.0.6(postcss@8.5.1) + postcss-load-config: 3.1.0(ts-node@10.9.1(@swc/core@1.11.29)(@types/node@16.11.10)(typescript@4.9.4)) + postcss-nested: 5.0.6(postcss@8.5.3) postcss-selector-parser: 6.0.11 postcss-value-parser: 4.2.0 pretty-hrtime: 1.0.3 @@ -23907,25 +24340,39 @@ snapshots: ansi-escapes: 4.3.2 supports-hyperlinks: 2.2.0 - terser-webpack-plugin@5.3.10(esbuild@0.25.0)(webpack@5.90.0(esbuild@0.25.0)): + terser-webpack-plugin@5.3.10(@swc/core@1.11.29)(esbuild@0.25.0)(webpack@5.90.0(@swc/core@1.11.29)(esbuild@0.25.0)): dependencies: '@jridgewell/trace-mapping': 0.3.22 jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.2 terser: 5.26.0 - webpack: 5.90.0(esbuild@0.25.0) + webpack: 5.90.0(@swc/core@1.11.29)(esbuild@0.25.0) optionalDependencies: + '@swc/core': 1.11.29 esbuild: 0.25.0 - terser-webpack-plugin@5.3.10(webpack@5.90.0): + terser-webpack-plugin@5.3.10(@swc/core@1.11.29)(webpack@5.90.0(@swc/core@1.11.29)): dependencies: '@jridgewell/trace-mapping': 0.3.22 jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.2 terser: 5.26.0 - webpack: 5.90.0(webpack-cli@5.1.4) + webpack: 5.90.0(@swc/core@1.11.29) + optionalDependencies: + '@swc/core': 1.11.29 + + terser-webpack-plugin@5.3.10(@swc/core@1.11.29)(webpack@5.90.0): + dependencies: + '@jridgewell/trace-mapping': 0.3.22 + jest-worker: 27.5.1 + schema-utils: 3.3.0 + serialize-javascript: 6.0.2 + terser: 5.26.0 + webpack: 5.90.0(@swc/core@1.11.29)(webpack-cli@5.1.4) + optionalDependencies: + '@swc/core': 1.11.29 terser@5.26.0: dependencies: @@ -24090,7 +24537,7 @@ snapshots: trough@2.2.0: {} - ts-node@10.9.1(@types/node@16.11.10)(typescript@4.9.4): + ts-node@10.9.1(@swc/core@1.11.29)(@types/node@16.11.10)(typescript@4.9.4): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.8 @@ -24107,8 +24554,10 @@ snapshots: typescript: 4.9.4 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 + optionalDependencies: + '@swc/core': 1.11.29 - ts-node@10.9.1(@types/node@22.15.3)(typescript@5.8.3): + ts-node@10.9.1(@swc/core@1.11.29)(@types/node@22.15.3)(typescript@5.8.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.8 @@ -24125,6 +24574,8 @@ snapshots: typescript: 5.8.3 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 + optionalDependencies: + '@swc/core': 1.11.29 optional: true tsconfck@3.1.4(typescript@5.8.3): @@ -24182,6 +24633,12 @@ snapshots: media-typer: 0.3.0 mime-types: 2.1.34 + type-is@2.0.1: + dependencies: + content-type: 1.0.5 + media-typer: 1.1.0 + mime-types: 3.0.1 + typedarray-to-buffer@3.1.5: dependencies: is-typedarray: 1.0.0 @@ -24217,8 +24674,6 @@ snapshots: buffer: 5.6.0 through: 2.3.8 - undici-types@5.26.5: {} - undici-types@6.21.0: {} unherit@1.1.3: @@ -24448,6 +24903,10 @@ snapshots: dependencies: react: 18.2.0 + use-sync-external-store@1.2.0(react@19.1.0): + dependencies: + react: 19.1.0 + use@3.1.1: {} util-deprecate@1.0.2: {} @@ -24548,7 +25007,7 @@ snapshots: vite-node@1.5.0(@types/node@22.15.3)(terser@5.26.0): dependencies: cac: 6.7.14 - debug: 4.4.0(supports-color@9.2.3) + debug: 4.4.1(supports-color@9.2.3) pathe: 1.1.1 picocolors: 1.1.1 vite: 5.4.11(@types/node@22.15.3)(terser@5.26.0) @@ -24566,10 +25025,10 @@ snapshots: vite-node@3.0.2(@types/node@22.15.3)(terser@5.26.0)(tsx@4.17.0): dependencies: cac: 6.7.14 - debug: 4.4.0(supports-color@9.2.3) + debug: 4.4.1(supports-color@9.2.3) es-module-lexer: 1.6.0 pathe: 2.0.2 - vite: 6.0.10(@types/node@22.15.3)(terser@5.26.0)(tsx@4.17.0) + vite: 6.3.5(@types/node@22.15.3)(terser@5.26.0)(tsx@4.17.0) transitivePeerDependencies: - '@types/node' - jiti @@ -24587,10 +25046,10 @@ snapshots: vite-node@3.2.2(@types/node@22.15.3)(terser@5.26.0)(tsx@4.17.0): dependencies: cac: 6.7.14 - debug: 4.4.1 + debug: 4.4.1(supports-color@9.2.3) es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 6.0.10(@types/node@22.15.3)(terser@5.26.0)(tsx@4.17.0) + vite: 6.3.5(@types/node@22.15.3)(terser@5.26.0)(tsx@4.17.0) transitivePeerDependencies: - '@types/node' - jiti @@ -24605,29 +25064,29 @@ snapshots: - tsx - yaml - vite-plugin-inspect@0.8.9(rollup@4.30.1)(vite@6.0.10(@types/node@22.15.3)(terser@5.26.0)(tsx@4.17.0)): + vite-plugin-inspect@0.8.9(rollup@4.41.0)(vite@6.3.5(@types/node@22.15.3)(terser@5.26.0)(tsx@4.17.0)): dependencies: '@antfu/utils': 0.7.10 - '@rollup/pluginutils': 5.1.4(rollup@4.30.1) - debug: 4.4.0(supports-color@9.2.3) + '@rollup/pluginutils': 5.1.4(rollup@4.41.0) + debug: 4.4.0 error-stack-parser-es: 0.1.5 fs-extra: 11.2.0 open: 10.1.0 perfect-debounce: 1.0.0 picocolors: 1.1.1 - sirv: 3.0.0 - vite: 6.0.10(@types/node@22.15.3)(terser@5.26.0)(tsx@4.17.0) + sirv: 3.0.1 + vite: 6.3.5(@types/node@22.15.3)(terser@5.26.0)(tsx@4.17.0) transitivePeerDependencies: - rollup - supports-color - vite-tsconfig-paths@5.1.4(typescript@5.8.3)(vite@6.0.10(@types/node@22.15.3)(terser@5.26.0)(tsx@4.17.0)): + vite-tsconfig-paths@5.1.4(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.3)(terser@5.26.0)(tsx@4.17.0)): dependencies: - debug: 4.4.0(supports-color@9.2.3) + debug: 4.4.1(supports-color@9.2.3) globrex: 0.1.2 tsconfck: 3.1.4(typescript@5.8.3) optionalDependencies: - vite: 6.0.10(@types/node@22.15.3)(terser@5.26.0)(tsx@4.17.0) + vite: 6.3.5(@types/node@22.15.3)(terser@5.26.0)(tsx@4.17.0) transitivePeerDependencies: - supports-color - typescript @@ -24635,18 +25094,21 @@ snapshots: vite@5.4.11(@types/node@22.15.3)(terser@5.26.0): dependencies: esbuild: 0.21.5 - postcss: 8.5.1 - rollup: 4.30.1 + postcss: 8.5.3 + rollup: 4.41.0 optionalDependencies: '@types/node': 22.15.3 fsevents: 2.3.3 terser: 5.26.0 - vite@6.0.10(@types/node@22.15.3)(terser@5.26.0)(tsx@4.17.0): + vite@6.3.5(@types/node@22.15.3)(terser@5.26.0)(tsx@4.17.0): dependencies: - esbuild: 0.24.2 - postcss: 8.5.1 - rollup: 4.30.1 + esbuild: 0.25.0 + fdir: 6.4.4(picomatch@4.0.2) + picomatch: 4.0.2 + postcss: 8.5.3 + rollup: 4.41.0 + tinyglobby: 0.2.13 optionalDependencies: '@types/node': 22.15.3 fsevents: 2.3.3 @@ -24656,14 +25118,14 @@ snapshots: vitest@3.0.2(@types/node@22.15.3)(jsdom@20.0.3)(terser@5.26.0)(tsx@4.17.0): dependencies: '@vitest/expect': 3.0.2 - '@vitest/mocker': 3.0.2(vite@6.0.10(@types/node@22.15.3)(terser@5.26.0)(tsx@4.17.0)) + '@vitest/mocker': 3.0.2(vite@6.3.5(@types/node@22.15.3)(terser@5.26.0)(tsx@4.17.0)) '@vitest/pretty-format': 3.0.2 '@vitest/runner': 3.0.2 '@vitest/snapshot': 3.0.2 '@vitest/spy': 3.0.2 '@vitest/utils': 3.0.2 chai: 5.1.2 - debug: 4.4.0(supports-color@9.2.3) + debug: 4.4.0 expect-type: 1.1.0 magic-string: 0.30.17 pathe: 2.0.2 @@ -24672,7 +25134,7 @@ snapshots: tinyexec: 0.3.2 tinypool: 1.0.2 tinyrainbow: 2.0.0 - vite: 6.0.10(@types/node@22.15.3)(terser@5.26.0)(tsx@4.17.0) + vite: 6.3.5(@types/node@22.15.3)(terser@5.26.0)(tsx@4.17.0) vite-node: 3.0.2(@types/node@22.15.3)(terser@5.26.0)(tsx@4.17.0) why-is-node-running: 2.3.0 optionalDependencies: @@ -24700,7 +25162,7 @@ snapshots: dependencies: chalk: 4.1.2 commander: 9.4.0 - debug: 4.4.0(supports-color@9.2.3) + debug: 4.4.1(supports-color@9.2.3) transitivePeerDependencies: - supports-color @@ -24766,13 +25228,13 @@ snapshots: import-local: 3.0.3 interpret: 3.1.1 rechoir: 0.8.0 - webpack: 5.90.0(webpack-cli@5.1.4) + webpack: 5.90.0(@swc/core@1.11.29)(webpack-cli@5.1.4) webpack-merge: 5.8.0 optionalDependencies: webpack-bundle-analyzer: 4.5.0 webpack-dev-server: 5.0.4(webpack-cli@5.1.4)(webpack@5.90.0) - webpack-dev-middleware@7.3.0(webpack@5.90.0(esbuild@0.25.0)): + webpack-dev-middleware@7.3.0(webpack@5.90.0(@swc/core@1.11.29)(esbuild@0.25.0)): dependencies: colorette: 2.0.16 memfs: 4.11.1 @@ -24781,7 +25243,7 @@ snapshots: range-parser: 1.2.1 schema-utils: 4.2.0 optionalDependencies: - webpack: 5.90.0(esbuild@0.25.0) + webpack: 5.90.0(@swc/core@1.11.29)(esbuild@0.25.0) webpack-dev-middleware@7.3.0(webpack@5.90.0): dependencies: @@ -24792,7 +25254,7 @@ snapshots: range-parser: 1.2.1 schema-utils: 4.2.0 optionalDependencies: - webpack: 5.90.0(webpack-cli@5.1.4) + webpack: 5.90.0(@swc/core@1.11.29)(webpack-cli@5.1.4) webpack-dev-server@5.0.4(webpack-cli@5.1.4)(webpack@5.90.0): dependencies: @@ -24807,13 +25269,13 @@ snapshots: bonjour-service: 1.2.1 chokidar: 3.6.0 colorette: 2.0.16 - compression: 1.7.4 + compression: 1.8.0 connect-history-api-fallback: 2.0.0 default-gateway: 6.0.3 express: 4.18.2 graceful-fs: 4.2.10 html-entities: 2.4.0 - http-proxy-middleware: 2.0.6(@types/express@4.17.21)(debug@4.4.0) + http-proxy-middleware: 2.0.6(@types/express@4.17.21)(debug@4.4.1) ipaddr.js: 2.1.0 launch-editor: 2.6.1 open: 10.1.0 @@ -24827,7 +25289,7 @@ snapshots: webpack-dev-middleware: 7.3.0(webpack@5.90.0) ws: 8.16.0 optionalDependencies: - webpack: 5.90.0(webpack-cli@5.1.4) + webpack: 5.90.0(@swc/core@1.11.29)(webpack-cli@5.1.4) webpack-cli: 5.1.4(webpack-bundle-analyzer@4.5.0)(webpack-dev-server@5.0.4)(webpack@5.90.0) transitivePeerDependencies: - bufferutil @@ -24835,7 +25297,7 @@ snapshots: - supports-color - utf-8-validate - webpack-dev-server@5.0.4(webpack@5.90.0(esbuild@0.25.0)): + webpack-dev-server@5.0.4(webpack@5.90.0(@swc/core@1.11.29)(esbuild@0.25.0)): dependencies: '@types/bonjour': 3.5.13 '@types/connect-history-api-fallback': 1.5.4 @@ -24848,13 +25310,13 @@ snapshots: bonjour-service: 1.2.1 chokidar: 3.6.0 colorette: 2.0.16 - compression: 1.7.4 + compression: 1.8.0 connect-history-api-fallback: 2.0.0 default-gateway: 6.0.3 express: 4.18.2 graceful-fs: 4.2.10 html-entities: 2.4.0 - http-proxy-middleware: 2.0.6(@types/express@4.17.21)(debug@4.4.0) + http-proxy-middleware: 2.0.6(@types/express@4.17.21)(debug@4.4.1) ipaddr.js: 2.1.0 launch-editor: 2.6.1 open: 10.1.0 @@ -24865,10 +25327,10 @@ snapshots: serve-index: 1.9.1 sockjs: 0.3.24 spdy: 4.0.2 - webpack-dev-middleware: 7.3.0(webpack@5.90.0(esbuild@0.25.0)) + webpack-dev-middleware: 7.3.0(webpack@5.90.0(@swc/core@1.11.29)(esbuild@0.25.0)) ws: 8.16.0 optionalDependencies: - webpack: 5.90.0(esbuild@0.25.0) + webpack: 5.90.0(@swc/core@1.11.29)(esbuild@0.25.0) transitivePeerDependencies: - bufferutil - debug @@ -24890,7 +25352,38 @@ snapshots: webpack-sources@3.2.3: {} - webpack@5.90.0(esbuild@0.25.0): + webpack@5.90.0(@swc/core@1.11.29): + dependencies: + '@types/eslint-scope': 3.7.7 + '@types/estree': 1.0.6 + '@webassemblyjs/ast': 1.11.6 + '@webassemblyjs/wasm-edit': 1.11.6 + '@webassemblyjs/wasm-parser': 1.11.6 + acorn: 8.11.2 + acorn-import-assertions: 1.9.0(acorn@8.11.2) + browserslist: 4.23.0 + chrome-trace-event: 1.0.3 + enhanced-resolve: 5.15.0 + es-module-lexer: 1.6.0 + eslint-scope: 5.1.1 + events: 3.3.0 + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.10 + json-parse-even-better-errors: 2.3.1 + loader-runner: 4.2.0 + mime-types: 2.1.34 + neo-async: 2.6.2 + schema-utils: 3.3.0 + tapable: 2.2.1 + terser-webpack-plugin: 5.3.10(@swc/core@1.11.29)(webpack@5.90.0(@swc/core@1.11.29)) + watchpack: 2.4.0 + webpack-sources: 3.2.3 + transitivePeerDependencies: + - '@swc/core' + - esbuild + - uglify-js + + webpack@5.90.0(@swc/core@1.11.29)(esbuild@0.25.0): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.6 @@ -24913,7 +25406,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.10(esbuild@0.25.0)(webpack@5.90.0(esbuild@0.25.0)) + terser-webpack-plugin: 5.3.10(@swc/core@1.11.29)(esbuild@0.25.0)(webpack@5.90.0(@swc/core@1.11.29)(esbuild@0.25.0)) watchpack: 2.4.0 webpack-sources: 3.2.3 transitivePeerDependencies: @@ -24921,7 +25414,7 @@ snapshots: - esbuild - uglify-js - webpack@5.90.0(webpack-cli@5.1.4): + webpack@5.90.0(@swc/core@1.11.29)(webpack-cli@5.1.4): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.6 @@ -24944,7 +25437,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.10(webpack@5.90.0) + terser-webpack-plugin: 5.3.10(@swc/core@1.11.29)(webpack@5.90.0) watchpack: 2.4.0 webpack-sources: 3.2.3 optionalDependencies: @@ -24985,7 +25478,7 @@ snapshots: available-typed-arrays: 1.0.5 call-bind: 1.0.5 for-each: 0.3.3 - gopd: 1.0.1 + gopd: 1.2.0 has-tostringtag: 1.0.0 which@1.3.1: diff --git a/test-helpers/package.json b/test-helpers/package.json index 04095c138..01ea82710 100644 --- a/test-helpers/package.json +++ b/test-helpers/package.json @@ -28,10 +28,12 @@ "@vanilla-extract/vite-plugin": "workspace:*", "@vanilla-extract/webpack-plugin": "workspace:*", "babel-loader": "^9.1.3", + "compression": "^1.8.0", "css-loader": "^7.1.2", "cssnano": "^5.1.15", "cssnano-preset-lite": "^2.1.3", "esbuild": "~0.25.0", + "express": "^5.1.0", "got": "^11.8.2", "html-webpack-plugin": "^5.3.1", "mini-css-extract-plugin": "^2.7.7", @@ -41,6 +43,7 @@ "postcss": "^8.4.32", "prettier": "^2.8.8", "serve-handler": "^6.1.3", + "sirv": "^3.0.1", "style-loader": "^2.0.0", "vite": "^5.0.0 || ^6.0.0", "vite-plugin-inspect": "^0.8.1", @@ -49,6 +52,8 @@ "webpack-merge": "^6.0.1" }, "devDependencies": { + "@types/compression": "^1.8.1", + "@types/express": "^5.0.2", "@types/minimist": "^1", "@types/prettier": "^2", "@types/serve-handler": "^6" diff --git a/test-helpers/src/startFixture/index.ts b/test-helpers/src/startFixture/index.ts index 99a9a0f3e..8a0e52e19 100644 --- a/test-helpers/src/startFixture/index.ts +++ b/test-helpers/src/startFixture/index.ts @@ -7,6 +7,7 @@ import { startParcelFixture, type ParcelFixtureOptions } from './parcel'; import { type NextFixtureOptions, startNextFixture } from './next'; import type { TestServer } from './types'; +import { startViteSsrFixture, type ViteSsrFixtureOptions } from './vite-ssr'; export * from './types'; @@ -14,19 +15,28 @@ type SharedOptions = { basePort: number; }; +// Regular Omit doesn't distribute over union types, but using `extends` forces distribution +// over the union, which is what we want here. Without distributing, the union type is collapsed and +// then `port` is omitted, which means we can't discriminate over the `type` field and extract +// bundler-specific options when needed. +type DistributedOmit = T extends any ? Omit : never; + +type BundleFixtureOptions = + | EsbuildFixtureOptions + | WebpackFixtureOptions + | ViteFixtureOptions + | ViteSsrFixtureOptions + | ParcelFixtureOptions + | NextFixtureOptions; + type FixtureOptions = SharedOptions & - Omit< - | EsbuildFixtureOptions - | WebpackFixtureOptions - | ViteFixtureOptions - | ParcelFixtureOptions - | NextFixtureOptions, - 'port' - >; + DistributedOmit; + export async function startFixture( fixtureName: string, - { type, basePort, ...options }: FixtureOptions, + options: FixtureOptions, ): Promise { + const { type, basePort, ...restOptions } = options; const port = await portfinder.getPortPromise({ port: basePort }); console.log( @@ -35,7 +45,7 @@ export async function startFixture( ...Object.entries({ type, port, - ...options, + ...restOptions, }).map(([key, value]) => `- ${key}: ${value}`), ].join('\n'), ); @@ -49,7 +59,7 @@ export async function startFixture( return startEsbuildFixture(fixtureName, { type, port, - mode: options.mode, + ...restOptions, }); } @@ -57,7 +67,20 @@ export async function startFixture( return startViteFixture(fixtureName, { type, port, - mode: options.mode, + ...restOptions, + }); + } + + if (type === 'vite-ssr') { + if (fixtureName !== 'vite-react-ssr') { + throw new Error( + 'Currently only the "vite-react-ssr" fixture is supported for vite-ssr', + ); + } + return startViteSsrFixture(fixtureName, { + type, + port, + ...restOptions, }); } @@ -65,7 +88,7 @@ export async function startFixture( return startParcelFixture(fixtureName, { type, port, - mode: options.mode, + ...restOptions, }); } @@ -73,9 +96,9 @@ export async function startFixture( return startNextFixture({ type, port, - mode: options.mode, + ...restOptions, }); } - return startWebpackFixture(fixtureName, { type, ...options, port }); + return startWebpackFixture(fixtureName, { type, port, ...restOptions }); } diff --git a/test-helpers/src/startFixture/types.ts b/test-helpers/src/startFixture/types.ts index 9b875320b..d2c58727e 100644 --- a/test-helpers/src/startFixture/types.ts +++ b/test-helpers/src/startFixture/types.ts @@ -2,12 +2,14 @@ import type { EsbuildFixtureOptions } from './esbuild'; import type { NextFixtureOptions } from './next'; import type { ParcelFixtureOptions } from './parcel'; import type { ViteFixtureOptions } from './vite'; +import type { ViteSsrFixtureOptions } from './vite-ssr'; import type { WebpackFixtureOptions } from './webpack'; type BuildType = | WebpackFixtureOptions['type'] | EsbuildFixtureOptions['type'] | ViteFixtureOptions['type'] + | ViteSsrFixtureOptions['type'] | ParcelFixtureOptions['type'] | NextFixtureOptions['type']; diff --git a/test-helpers/src/startFixture/vite-ssr.ts b/test-helpers/src/startFixture/vite-ssr.ts new file mode 100644 index 000000000..02355fdf6 --- /dev/null +++ b/test-helpers/src/startFixture/vite-ssr.ts @@ -0,0 +1,117 @@ +import path from 'path'; +import fs from 'node:fs/promises'; +import express, { type Express } from 'express'; + +import { vanillaExtractPlugin } from '@vanilla-extract/vite-plugin'; +import inspect from 'vite-plugin-inspect'; + +import type { TestServer } from './types'; + +const serveAssets = ({ app, port }: { app: Express; port: number }) => + new Promise<() => Promise>((resolve) => { + const server = app.listen(port, () => { + resolve( + () => + new Promise((closeRes) => { + server.close(() => closeRes()); + }), + ); + }); + }); + +export interface ViteSsrFixtureOptions { + type: 'vite-ssr'; + mode?: 'development' | 'production'; + port: number; + inlineCssInDev?: boolean; +} +export const startViteSsrFixture = async ( + fixtureName: 'vite-react-ssr', + { mode = 'development', port = 3000, inlineCssInDev }: ViteSsrFixtureOptions, +): Promise => { + const root = path.dirname( + require.resolve(`@fixtures/${fixtureName}/package.json`), + ); + await import(path.join(root, 'server.js')); + // const isProduction = mode === 'production'; + // const base = '/'; + // + // const templateHtml = isProduction + // ? await fs.readFile(path.join(root, './dist/client/index.html'), 'utf-8') + // : ''; + // + // const app = express(); + // + // // Add Vite or respective production middlewares + // /** @type {import('vite').ViteDevServer | undefined} */ + // let vite: import('vite').ViteDevServer | undefined; + // if (!isProduction) { + // const { createServer } = await import('vite'); + // vite = await createServer({ + // server: { middlewareMode: true }, + // appType: 'custom', + // root, + // base, + // plugins: [ + // vanillaExtractPlugin({ + // unstable_mode: inlineCssInDev ? 'inlineCssInDev' : undefined, + // }), + // mode === 'development' && inspect(), + // ], + // }); + // app.use(vite.middlewares); + // } else { + // const { build } = await import('vite'); + // await build({ + // build: { + // rollupOptions: { input: path.join(root, 'src', 'html.ts') }, + // ssr: true, + // outDir: path.join(root, 'dist', 'server'), + // }, + // }); + // const compression = (await import('compression')).default; + // const sirv = (await import('sirv')).default; + // app.use(compression()); + // app.use(base, sirv('./dist/client', { extensions: [] })); + // } + // + // // Serve HTML + // app.use('*all', async (req, res) => { + // try { + // const url = req.originalUrl.replace(base, ''); + // + // let template: string | undefined; + // let appHtml: string; + // if (!isProduction) { + // // Always read fresh template in development + // template = await fs.readFile(path.join(root, 'index.html'), 'utf-8'); + // appHtml = (await vite?.ssrLoadModule?.('/src/html.ts'))?.default; + // template = await vite?.transformIndexHtml(url, template); + // } else { + // template = templateHtml; + // appHtml = (await import(path.join(root, './dist/server/html.js'))) + // .default; + // } + // + // const html = template + // // Currently no head tags are rendered, but leaving this here for future use + // ?.replace(``, '') + // ?.replace(``, appHtml ?? ''); + // + // res.status(200).set({ 'Content-Type': 'text/html' }).send(html); + // } catch (e: any) { + // vite?.ssrFixStacktrace(e); + // console.log(e.stack); + // res.status(500).end(e.stack); + // } + // }); + // + // const close = await serveAssets({ app, port }); + + return { + type: 'vite-ssr', + close: () => {}, + url: `http://localhost:${port}`, + // TODO: stylesheet + }; +}; diff --git a/tests/compiler/compiler.test.ts b/tests/compiler/compiler.test.ts index b8eb0dfc4..194478bd4 100644 --- a/tests/compiler/compiler.test.ts +++ b/tests/compiler/compiler.test.ts @@ -24,7 +24,8 @@ describe('compiler', () => { | 'viteResolve' | 'vitePlugins' | 'tsconfigPaths' - | 'basePath', + | 'basePath' + | 'getAllCss', ReturnType >; @@ -79,6 +80,9 @@ describe('compiler', () => { base: '/assets/', }, }), + getAllCss: createCompiler({ + root: __dirname, + }), }; }); @@ -551,4 +555,24 @@ describe('compiler', () => { } `); }); + + test('getAllCss should return all CSS that has been processed', async () => { + const compiler = compilers.getAllCss; + + const buttonCssPath = './fixtures/class-composition/button.css.ts'; + await compiler.processVanillaFile(buttonCssPath); + + expect(compiler.getAllCss()).toMatchInlineSnapshot(` + .base_fontFamilyBase__1xukjx0 { + font-family: Arial, sans-serif; + } + .base_base__1xukjx1 { + background: blue; + } + .button_button__59rihu0 { + color: red; + } + + `); + }); }); diff --git a/tests/e2e/features.playwright.ts b/tests/e2e/features.playwright.ts index 70633cbab..2ccb257d9 100644 --- a/tests/e2e/features.playwright.ts +++ b/tests/e2e/features.playwright.ts @@ -6,7 +6,7 @@ import { } from '@vanilla-extract-private/test-helpers'; import test from './fixture'; -import { all as testCases } from './testCases'; +import { all as testCases, viteInlineCssInDev } from './testCases'; testCases.forEach(({ type, mode, snapshotCss = true }) => { test.describe(`features - ${type} (${mode})`, () => { @@ -39,3 +39,33 @@ testCases.forEach(({ type, mode, snapshotCss = true }) => { }); }); }); + +viteInlineCssInDev.forEach(({ type, mode, inlineCssInDev }) => { + test.describe(`features - ${type} (${mode}) inlineCssInDev: ${inlineCssInDev}`, () => { + let server: TestServer; + + test.beforeAll(async ({ port }) => { + server = await startFixture('features', { + type, + mode, + basePort: port, + inlineCssInDev, + }); + }); + + test('screenshot', async ({ page }) => { + const response = await page.goto(server.url); + + if (!response) { + throw new Error('Failed to load the page'); + } + expect(await response.body()).toMatchSnapshot( + `features-${type}--${mode}-inlineCssInDev-${inlineCssInDev}.html`, + ); + }); + + test.afterAll(async () => { + await server.close(); + }); + }); +}); diff --git a/tests/e2e/snapshots/features-vite--development-inlineCssInDev-true-Desktop---Chromium-darwin.html b/tests/e2e/snapshots/features-vite--development-inlineCssInDev-true-Desktop---Chromium-darwin.html new file mode 100644 index 000000000..770761a3e --- /dev/null +++ b/tests/e2e/snapshots/features-vite--development-inlineCssInDev-true-Desktop---Chromium-darwin.html @@ -0,0 +1,16 @@ + + + + + + + + + + Vite App + + +
+ + + diff --git a/tests/e2e/snapshots/features-vite--development-inlineCssInDev-true-Mobile---Chromium-darwin.html b/tests/e2e/snapshots/features-vite--development-inlineCssInDev-true-Mobile---Chromium-darwin.html new file mode 100644 index 000000000..770761a3e --- /dev/null +++ b/tests/e2e/snapshots/features-vite--development-inlineCssInDev-true-Mobile---Chromium-darwin.html @@ -0,0 +1,16 @@ + + + + + + + + + + Vite App + + +
+ + + diff --git a/tests/e2e/snapshots/features-vite--production-inlineCssInDev-true-Desktop---Chromium-darwin.html b/tests/e2e/snapshots/features-vite--production-inlineCssInDev-true-Desktop---Chromium-darwin.html new file mode 100644 index 000000000..8600cbac2 --- /dev/null +++ b/tests/e2e/snapshots/features-vite--production-inlineCssInDev-true-Desktop---Chromium-darwin.html @@ -0,0 +1,13 @@ + + + + + + Vite App + + + + +
+ + diff --git a/tests/e2e/snapshots/features-vite--production-inlineCssInDev-true-Mobile---Chromium-darwin.html b/tests/e2e/snapshots/features-vite--production-inlineCssInDev-true-Mobile---Chromium-darwin.html new file mode 100644 index 000000000..8600cbac2 --- /dev/null +++ b/tests/e2e/snapshots/features-vite--production-inlineCssInDev-true-Mobile---Chromium-darwin.html @@ -0,0 +1,13 @@ + + + + + + Vite App + + + + +
+ + diff --git a/tests/e2e/testCases.ts b/tests/e2e/testCases.ts index 6f7486ebc..07dd98480 100644 --- a/tests/e2e/testCases.ts +++ b/tests/e2e/testCases.ts @@ -5,17 +5,22 @@ export const webpack = [ ] as const; export const all = [ - ...webpack, - { type: 'esbuild', mode: 'development', snapshotCss: true }, - { type: 'esbuild', mode: 'production', snapshotCss: true }, - { type: 'esbuild-runtime', mode: 'development', snapshotCss: false }, - { type: 'esbuild-runtime', mode: 'production', snapshotCss: false }, - { type: 'esbuild-next', mode: 'development', snapshotCss: true }, - { type: 'esbuild-next', mode: 'production', snapshotCss: true }, - { type: 'esbuild-next-runtime', mode: 'development', snapshotCss: false }, - { type: 'esbuild-next-runtime', mode: 'production', snapshotCss: false }, - { type: 'vite', mode: 'development', snapshotCss: false }, - { type: 'vite', mode: 'production', snapshotCss: true }, - { type: 'parcel', mode: 'development', snapshotCss: true }, - { type: 'parcel', mode: 'production', snapshotCss: true }, + // ...webpack, + // { type: 'esbuild', mode: 'development', snapshotCss: true }, + // { type: 'esbuild', mode: 'production', snapshotCss: true }, + // { type: 'esbuild-runtime', mode: 'development', snapshotCss: false }, + // { type: 'esbuild-runtime', mode: 'production', snapshotCss: false }, + // { type: 'esbuild-next', mode: 'development', snapshotCss: true }, + // { type: 'esbuild-next', mode: 'production', snapshotCss: true }, + // { type: 'esbuild-next-runtime', mode: 'development', snapshotCss: false }, + // { type: 'esbuild-next-runtime', mode: 'production', snapshotCss: false }, + // { type: 'vite', mode: 'development', snapshotCss: false }, + // { type: 'vite', mode: 'production', snapshotCss: true }, + // { type: 'parcel', mode: 'development', snapshotCss: true }, + // { type: 'parcel', mode: 'production', snapshotCss: true }, +] as const; + +export const viteInlineCssInDev = [ + { type: 'vite', mode: 'development', inlineCssInDev: true }, + { type: 'vite', mode: 'production', inlineCssInDev: true }, ] as const;