diff --git a/docs/package.json b/docs/package.json index 3219c69f24e2a5..fafb2b559a202b 100644 --- a/docs/package.json +++ b/docs/package.json @@ -9,7 +9,6 @@ }, "devDependencies": { "@shikijs/vitepress-twoslash": "^1.11.0", - "@types/express": "^4.17.21", "feed": "^4.2.2", "vitepress": "1.3.1", "vue": "^3.4.33" diff --git a/packages/vite/LICENSE.md b/packages/vite/LICENSE.md index 0820e08c439f40..59c7ec62e4c769 100644 --- a/packages/vite/LICENSE.md +++ b/packages/vite/LICENSE.md @@ -237,13 +237,6 @@ Repository: git+https://github.com/ampproject/remapping.git --------------------------------------- -## @arr/every -License: MIT -By: Luke Edwards -Repository: lukeed/arr - ---------------------------------------- - ## @jridgewell/gen-mapping License: MIT By: Justin Ridgewell @@ -1879,35 +1872,6 @@ Repository: https://github.com/rich-harris/magic-string --------------------------------------- -## matchit -License: MIT -By: Luke Edwards -Repository: lukeed/matchit - -> The MIT License (MIT) -> -> Copyright (c) Luke Edwards (lukeed.com) -> -> Permission is hereby granted, free of charge, to any person obtaining a copy -> of this software and associated documentation files (the "Software"), to deal -> in the Software without restriction, including without limitation the rights -> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -> copies of the Software, and to permit persons to whom the Software is -> furnished to do so, subject to the following conditions: -> -> The above copyright notice and this permission notice shall be included in -> all copies or substantial portions of the Software. -> -> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -> THE SOFTWARE. - ---------------------------------------- - ## merge2 License: MIT Repository: git@github.com:teambition/merge2.git @@ -2680,6 +2644,35 @@ Repository: git://github.com/paulmillr/readdirp.git --------------------------------------- +## regexparam +License: MIT +By: Luke Edwards +Repository: lukeed/regexparam + +> The MIT License (MIT) +> +> Copyright (c) Luke Edwards (lukeed.com) +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in +> all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +> THE SOFTWARE. + +--------------------------------------- + ## requires-port License: MIT By: Arnout Kazemier diff --git a/packages/vite/package.json b/packages/vite/package.json index e095c137ba25fc..fb10eb986b1f61 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -108,7 +108,7 @@ "artichokie": "^0.2.1", "cac": "^6.7.14", "chokidar": "^3.6.0", - "polka": "^0.5.2", + "polka": "^1.0.0-next.25", "convert-source-map": "^2.0.0", "cors": "^2.8.5", "cross-spawn": "^7.0.3", diff --git a/packages/vite/src/node/server/middlewares/base.ts b/packages/vite/src/node/server/middlewares/base.ts index 18bd3de57c38e9..1469961c586e02 100644 --- a/packages/vite/src/node/server/middlewares/base.ts +++ b/packages/vite/src/node/server/middlewares/base.ts @@ -7,7 +7,7 @@ import { cleanUrl, withTrailingSlash } from '../../../shared/utils' export function baseMiddleware( rawBase: string, middlewareMode: boolean, -): Polka.RequestHandler { +): Polka.Middleware { // Keep the named function. The name is visible in debug logs via `DEBUG=connect:dispatcher ...` return function viteBaseMiddleware(req, res, next) { const url = req.url! diff --git a/packages/vite/src/node/server/middlewares/htmlFallback.ts b/packages/vite/src/node/server/middlewares/htmlFallback.ts index 423569c54bd145..1ec054424bbf2c 100644 --- a/packages/vite/src/node/server/middlewares/htmlFallback.ts +++ b/packages/vite/src/node/server/middlewares/htmlFallback.ts @@ -11,7 +11,7 @@ export function htmlFallbackMiddleware( root: string, spaFallback: boolean, fsUtils: FsUtils = commonFsUtils, -): Polka.RequestHandler { +): Polka.Middleware { // Keep the named function. The name is visible in debug logs via `DEBUG=connect:dispatcher ...` return function viteHtmlFallbackMiddleware(req, res, next) { if ( diff --git a/packages/vite/src/node/server/middlewares/indexHtml.ts b/packages/vite/src/node/server/middlewares/indexHtml.ts index f403e5cb29b212..ff9356787d0c17 100644 --- a/packages/vite/src/node/server/middlewares/indexHtml.ts +++ b/packages/vite/src/node/server/middlewares/indexHtml.ts @@ -407,7 +407,7 @@ const devHtmlHook: IndexHtmlTransformHook = async ( export function indexHtmlMiddleware( root: string, server: ViteDevServer | PreviewServer, -): Polka.RequestHandler { +): Polka.Middleware { const isDev = isDevServer(server) const fsUtils = getFsUtils(server.config) diff --git a/packages/vite/src/node/server/middlewares/notFound.ts b/packages/vite/src/node/server/middlewares/notFound.ts index d12590fb09ba3a..22f483ed7f4829 100644 --- a/packages/vite/src/node/server/middlewares/notFound.ts +++ b/packages/vite/src/node/server/middlewares/notFound.ts @@ -1,6 +1,6 @@ import type { Polka } from 'dep-types/polka' -export function notFoundMiddleware(): Polka.RequestHandler { +export function notFoundMiddleware(): Polka.Middleware { // Keep the named function. The name is visible in debug logs via `DEBUG=connect:dispatcher ...` return function vite404Middleware(_, res) { res.statusCode = 404 diff --git a/packages/vite/src/node/server/middlewares/proxy.ts b/packages/vite/src/node/server/middlewares/proxy.ts index c238ddbcc4ca92..1363da408a1292 100644 --- a/packages/vite/src/node/server/middlewares/proxy.ts +++ b/packages/vite/src/node/server/middlewares/proxy.ts @@ -71,7 +71,7 @@ export function proxyMiddleware( httpServer: HttpServer | null, options: NonNullable, config: ResolvedConfig, -): Polka.RequestHandler { +): Polka.Middleware { // lazy require only when proxy is used const proxies: Record = {} @@ -196,7 +196,8 @@ export function proxyMiddleware( } else if (bypassResult === false) { debug?.(`bypass: ${req.url} -> 404`) res.statusCode = 404 - return res.end() + res.end() + return } } diff --git a/packages/vite/src/node/server/middlewares/static.ts b/packages/vite/src/node/server/middlewares/static.ts index 458ca8855b83ad..e8316a3a5f5f4d 100644 --- a/packages/vite/src/node/server/middlewares/static.ts +++ b/packages/vite/src/node/server/middlewares/static.ts @@ -57,7 +57,7 @@ const sirvOptions = ({ export function servePublicMiddleware( server: ViteDevServer, publicFiles?: Set, -): Polka.RequestHandler { +): Polka.Middleware { const dir = server.config.publicDir const serve = sirv( dir, @@ -94,9 +94,7 @@ export function servePublicMiddleware( } } -export function serveStaticMiddleware( - server: ViteDevServer, -): Polka.RequestHandler { +export function serveStaticMiddleware(server: ViteDevServer): Polka.Middleware { const dir = server.config.root const serve = sirv( dir, @@ -163,9 +161,7 @@ export function serveStaticMiddleware( } } -export function serveRawFsMiddleware( - server: ViteDevServer, -): Polka.RequestHandler { +export function serveRawFsMiddleware(server: ViteDevServer): Polka.Middleware { const serveFromRoot = sirv( '/', sirvOptions({ getHeaders: () => server.config.server.headers }), @@ -233,7 +229,7 @@ function ensureServingAccess( url: string, server: ViteDevServer, res: ServerResponse, - next: Polka.Next, + next: Polka.NextHandler, ): boolean { if (isFileServingAllowed(url, server)) { return true diff --git a/packages/vite/src/node/server/middlewares/time.ts b/packages/vite/src/node/server/middlewares/time.ts index 8ff274e293c129..c7e830c9828b34 100644 --- a/packages/vite/src/node/server/middlewares/time.ts +++ b/packages/vite/src/node/server/middlewares/time.ts @@ -4,7 +4,7 @@ import { createDebugger, prettifyUrl, timeFrom } from '../../utils' const logTime = createDebugger('vite:time') -export function timeMiddleware(root: string): Polka.RequestHandler { +export function timeMiddleware(root: string): Polka.Middleware { // Keep the named function. The name is visible in debug logs via `DEBUG=connect:dispatcher ...` return function viteTimeMiddleware(req, res, next) { const start = performance.now() diff --git a/packages/vite/src/node/server/middlewares/transform.ts b/packages/vite/src/node/server/middlewares/transform.ts index 99d129601d3b40..fa4879089852fa 100644 --- a/packages/vite/src/node/server/middlewares/transform.ts +++ b/packages/vite/src/node/server/middlewares/transform.ts @@ -45,7 +45,7 @@ const knownIgnoreList = new Set(['/', '/favicon.ico']) */ export function cachedTransformMiddleware( server: ViteDevServer, -): Polka.RequestHandler { +): Polka.Middleware { // Keep the named function. The name is visible in debug logs via `DEBUG=connect:dispatcher ...` return function viteCachedTransformMiddleware(req, res, next) { // check if we can return 304 early @@ -60,7 +60,8 @@ export function cachedTransformMiddleware( if (!maybeMixedEtag) { debugCache?.(`[304] ${prettifyUrl(req.url!, server.config.root)}`) res.statusCode = 304 - return res.end() + res.end() + return } } } @@ -69,9 +70,7 @@ export function cachedTransformMiddleware( } } -export function transformMiddleware( - server: ViteDevServer, -): Polka.RequestHandler { +export function transformMiddleware(server: ViteDevServer): Polka.Middleware { // Keep the named function. The name is visible in debug logs via `DEBUG=connect:dispatcher ...` // check if public dir is inside root dir @@ -119,9 +118,10 @@ export function transformMiddleware( server.config.logger, ) - return send(req, res, JSON.stringify(map), 'json', { + send(req, res, JSON.stringify(map), 'json', { headers: server.config.server.headers, }) + return } catch (e) { // Outdated source map request for optimized deps, this isn't an error // but part of the normal flow when re-optimizing after missing deps @@ -134,10 +134,11 @@ export function transformMiddleware( names: [], mappings: ';;;;;;;;;', } - return send(req, res, JSON.stringify(dummySourceMap), 'json', { + send(req, res, JSON.stringify(dummySourceMap), 'json', { cacheControl: 'no-cache', headers: server.config.server.headers, }) + return } } else { const originalUrl = url.replace(/\.map($|\?)/, '$1') @@ -145,9 +146,10 @@ export function transformMiddleware( await server.moduleGraph.getModuleByUrl(originalUrl, false) )?.transformResult?.map if (map) { - return send(req, res, JSON.stringify(map), 'json', { + send(req, res, JSON.stringify(map), 'json', { headers: server.config.server.headers, }) + return } else { return next() } @@ -190,7 +192,8 @@ export function transformMiddleware( ) { debugCache?.(`[304] ${prettifyUrl(url, server.config.root)}`) res.statusCode = 304 - return res.end() + res.end() + return } } @@ -203,13 +206,14 @@ export function transformMiddleware( const type = isDirectCSSRequest(url) ? 'css' : 'js' const isDep = DEP_VERSION_RE.test(url) || depsOptimizer?.isOptimizedDepUrl(url) - return send(req, res, result.code, type, { + send(req, res, result.code, type, { etag: result.etag, // allow browser to cache npm deps! cacheControl: isDep ? 'max-age=31536000,immutable' : 'no-cache', headers: server.config.server.headers, map: result.map, }) + return } } } catch (e) { diff --git a/packages/vite/src/types/polka.d.ts b/packages/vite/src/types/polka.d.ts index b6c12ab88e658e..d75c92da2ebc7f 100644 --- a/packages/vite/src/types/polka.d.ts +++ b/packages/vite/src/types/polka.d.ts @@ -1,162 +1,88 @@ // Inlined to avoid extra dependency /// -import type { IncomingMessage, Server, ServerResponse } from 'node:http' -import type { Url } from 'node:url' -import type * as Trouter from './trouter' +import type { IncomingMessage, ServerResponse } from 'node:http' +import type * as net from 'node:net' +import type { Trouter } from './trouter' + +type Promisable = Promise | T +type ListenCallback = () => Promisable + +interface ParsedURL { + query?: string + search?: string + href: string + path: string + pathname: string +} export declare namespace Polka { - export type ParamsDictionary = Record - - export type ErrorHandler = ( - err: unknown, - req: Request, - res: ServerResponse, - next: Next, - ) => void - export type RequestHandler = ( - req: Request, - res: ServerResponse, - next: Next, - ) => void - - /** - * Calls the next middleware function in the chain, or throws an error. - */ - type Next = (err?: string | Error) => void + export interface IError extends Error { + code?: number + status?: number + details?: any + } - /** - * An `http.IncomingMessage`, extended by Polka - */ - interface Request extends IncomingMessage { - /** - * The originally-requested URL, including parent router segments. - */ + export type NextHandler = (err?: string | IError) => Promisable + export type ErrorHandler = ( + err: string | IError, + req: T, + res: Response, + next: NextHandler, + ) => Promisable + export type Middleware = ( + req: T & Request, + res: Response, + next: NextHandler, + ) => Promisable + + export type Response = ServerResponse + + export interface Request extends IncomingMessage { + url: string + method: string originalUrl: string - - /** - * The path portion of the requested URL. - */ + params: Record path: string - - /** - * The values of named parameters within your route pattern - */ - params: { - [key: string]: string - } - - /** - * The un-parsed querystring - */ - search: string | null - - /** - * The parsed querystring - */ - query: { - [key: string]: string | string[] - } + search: string + query: Record + body?: any + _decoded?: true + _parsedUrl: ParsedURL } - /** - * An instance of the Polka router. - */ - interface Polka { - wares: RequestHandler[] - - onError: ErrorHandler - - /** - * Parses the `req.url` property of the given request. - */ - parse(req: Request): Url - - /** - * Attach middleware(s) and/or sub-application(s) to the server. - * These will execute before your routes' handlers. - */ - use(...handlers: RequestHandler[]): this - - /** - * Attach middleware(s) and/or sub-application(s) to the server. - * These will execute before your routes' handlers. - */ - use(pattern: string | RegExp, ...handlers: RequestHandler[] | Polka[]): this - - /** - * Boots (or creates) the underlying `http.Server` for the first time. - */ - listen(port?: number, hostname?: string): this - - /** - * Boots (or creates) the underlying `http.Server` for the first time. - * All arguments are passed to server.listen directly with no changes. - */ - listen(...args: unknown[]): this - - /** - * The main Polka `IncomingMessage` handler. - * It receives all requests and tries to match the incoming URL against known routes. - */ - handler(req: Request, res: ServerResponse, parsed?: Url): void + export interface Polka + extends Trouter> { + readonly server: net.Server + wares: Middleware[] - /** - * The instantiated `server` Polka creates when `listen()` is called. - * `server` is only created if a server was not provided via `option.server` - * `server` will be undefined until polka.listen is invoked or if a server was provided. - */ - server?: Server | undefined + onError: ErrorHandler + readonly onNoMatch: Middleware - find( - method: Trouter.HTTPMethod, - url: string, - ): Trouter.FindResult + readonly handler: Middleware + parse: (req: IncomingMessage) => ParsedURL - add( - method: Trouter.HTTPMethod, - pattern: string | RegExp, - ...handlers: RequestHandler[] + use( + pattern: RegExp | string, + ...handlers: (Polka | Middleware)[] ): this + use(...handlers: (Polka | Middleware)[]): this - all(pattern: string | RegExp, ...handlers: RequestHandler[]): this - - get(pattern: string | RegExp, ...handlers: RequestHandler[]): this - - head(pattern: string | RegExp, ...handlers: RequestHandler[]): this - - patch(pattern: string | RegExp, ...handlers: RequestHandler[]): this - - options(pattern: string | RegExp, ...handlers: RequestHandler[]): this - - connect(pattern: string | RegExp, ...handlers: RequestHandler[]): this - - delete(pattern: string | RegExp, ...handlers: RequestHandler[]): this - - trace(pattern: string | RegExp, ...handlers: RequestHandler[]): this - - post(pattern: string | RegExp, ...handlers: RequestHandler[]): this - - put(pattern: string | RegExp, ...handlers: RequestHandler[]): this - } - - /** - * Polka options - */ - interface Options { - /** - * The server instance to use when `polka.listen()` is called. - */ - server?: Server | undefined - - /** - * A catch-all error handler; executed whenever a middleware throws an error. - */ - onError?(err: Error, req: Request, res: ServerResponse, next: Next): void - - /** - * A handler when no route definitions were matched. - */ - onNoMatch?(req: Request, res: ServerResponse): void + listen( + port?: number, + hostname?: string, + backlog?: number, + callback?: ListenCallback, + ): this + listen(port?: number, hostname?: string, callback?: ListenCallback): this + listen(port?: number, backlog?: number, callback?: ListenCallback): this + listen(port?: number, callback?: ListenCallback): this + listen(path: string, backlog?: number, callback?: ListenCallback): this + listen(path: string, callback?: ListenCallback): this + listen(options: net.ListenOptions, callback?: ListenCallback): this + listen(handle: any, backlog?: number, callback?: ListenCallback): this + listen(handle: any, callback?: ListenCallback): this + + attach: Middleware } } diff --git a/packages/vite/src/types/trouter.d.ts b/packages/vite/src/types/trouter.d.ts index 7ee44266b33306..54bb2d90053e74 100644 --- a/packages/vite/src/types/trouter.d.ts +++ b/packages/vite/src/types/trouter.d.ts @@ -1,9 +1,4 @@ -export interface FindResult { - params: { [k: string]: string } - handlers: T[] -} - -export type HTTPMethod = +type Methods = | 'ACL' | 'BIND' | 'CHECKOUT' @@ -24,6 +19,7 @@ export type HTTPMethod = | 'OPTIONS' | 'PATCH' | 'POST' + | 'PRI' | 'PROPFIND' | 'PROPPATCH' | 'PURGE' @@ -39,30 +35,26 @@ export type HTTPMethod = | 'UNLOCK' | 'UNSUBSCRIBE' -export class Trouter { - use(pattern: string | RegExp, ...handlers: T[]): this - - find(method: HTTPMethod, url: string): FindResult - - add(method: HTTPMethod, pattern: string | RegExp, ...handlers: T[]): this - - all(pattern: string | RegExp, ...handlers: T[]): this - - get(pattern: string | RegExp, ...handlers: T[]): this - - head(pattern: string | RegExp, ...handlers: T[]): this - - patch(pattern: string | RegExp, ...handlers: T[]): this - - options(pattern: string | RegExp, ...handlers: T[]): this - - connect(pattern: string | RegExp, ...handlers: T[]): this - - delete(pattern: string | RegExp, ...handlers: T[]): this - - trace(pattern: string | RegExp, ...handlers: T[]): this - - post(pattern: string | RegExp, ...handlers: T[]): this - - put(pattern: string | RegExp, ...handlers: T[]): this +type Pattern = RegExp | string + +export class Trouter { + find( + method: Methods, + url: string, + ): { + params: Record + handlers: T[] + } + add(method: Methods, pattern: Pattern, ...handlers: T[]): this + use(pattern: Pattern, ...handlers: T[]): this + all(pattern: Pattern, ...handlers: T[]): this + get(pattern: Pattern, ...handlers: T[]): this + head(pattern: Pattern, ...handlers: T[]): this + patch(pattern: Pattern, ...handlers: T[]): this + options(pattern: Pattern, ...handlers: T[]): this + connect(pattern: Pattern, ...handlers: T[]): this + delete(pattern: Pattern, ...handlers: T[]): this + trace(pattern: Pattern, ...handlers: T[]): this + post(pattern: Pattern, ...handlers: T[]): this + put(pattern: Pattern, ...handlers: T[]): this } diff --git a/playground/css-lightningcss-proxy/__tests__/serve.ts b/playground/css-lightningcss-proxy/__tests__/serve.ts index ee933ecd507a8c..31eed4d727918a 100644 --- a/playground/css-lightningcss-proxy/__tests__/serve.ts +++ b/playground/css-lightningcss-proxy/__tests__/serve.ts @@ -18,12 +18,12 @@ export async function serve(): Promise<{ close(): Promise }> { return new Promise((resolve, reject) => { try { - const server = app.listen(port, () => { + app.listen(port, () => { resolve({ // for test teardown async close() { await new Promise((resolve) => { - server.close(resolve) + app.server.close(resolve) }) if (vite) { await vite.close() diff --git a/playground/css-lightningcss-proxy/package.json b/playground/css-lightningcss-proxy/package.json index ad6b503221a9f6..d8943292a66a7c 100644 --- a/playground/css-lightningcss-proxy/package.json +++ b/playground/css-lightningcss-proxy/package.json @@ -9,7 +9,6 @@ "preview": "vite preview" }, "devDependencies": { - "lightningcss": "^1.25.1", - "express": "^4.19.2" + "lightningcss": "^1.25.1" } } diff --git a/playground/css-lightningcss-proxy/server.js b/playground/css-lightningcss-proxy/server.js index a482de69e9b5ab..1361e33386f3f3 100644 --- a/playground/css-lightningcss-proxy/server.js +++ b/playground/css-lightningcss-proxy/server.js @@ -1,7 +1,6 @@ import fs from 'node:fs' import path from 'node:path' import { fileURLToPath } from 'node:url' -import express from 'express' const __dirname = path.dirname(fileURLToPath(import.meta.url)) const isTest = process.env.VITEST @@ -17,8 +16,6 @@ const DYNAMIC_STYLES = ` export async function createServer(root = process.cwd(), hmrPort) { const resolve = (p) => path.resolve(__dirname, p) - const app = express() - /** * @type {import('vite').ViteDevServer} */ @@ -44,8 +41,8 @@ export async function createServer(root = process.cwd(), hmrPort) { }, appType: 'custom', }) - // use vite's connect instance as middleware - app.use(vite.middlewares) + + const app = vite.middlewares app.use('*', async (req, res, next) => { try { @@ -53,7 +50,8 @@ export async function createServer(root = process.cwd(), hmrPort) { if (url.endsWith('/')) url += 'index.html' if (url.startsWith('/favicon.ico')) { - return res.status(404).end('404') + res.status = 404 + return res.end('404') } const htmlLoc = resolve(`.${url}`) @@ -66,11 +64,14 @@ export async function createServer(root = process.cwd(), hmrPort) { // as `const url = req.originalUrl` const html = await vite.transformIndexHtml('/', template) - res.status(200).set({ 'Content-Type': 'text/html' }).end(html) + res.statusCode = 200 + res.setHeader('Content-Type', 'text/html') + res.end(html) } catch (e) { vite && vite.ssrFixStacktrace(e) console.log(e.stack) - res.status(500).end(e.stack) + res.statusCode = 500 + res.end(e.stack) } }) diff --git a/playground/json/__tests__/ssr/serve.ts b/playground/json/__tests__/ssr/serve.ts index 1e14e6e2b22e84..d50dafe52caa4b 100644 --- a/playground/json/__tests__/ssr/serve.ts +++ b/playground/json/__tests__/ssr/serve.ts @@ -15,12 +15,12 @@ export async function serve(): Promise<{ close(): Promise }> { return new Promise((resolve, reject) => { try { - const server = app.listen(port, () => { + app.listen(port, () => { resolve({ // for test teardown async close() { await new Promise((resolve) => { - server.close(resolve) + app.server.close(resolve) }) if (vite) { await vite.close() diff --git a/playground/json/package.json b/playground/json/package.json index 3c3cfbed0dbc3a..88a9edc2f7723e 100644 --- a/playground/json/package.json +++ b/playground/json/package.json @@ -14,7 +14,6 @@ }, "devDependencies": { "@vitejs/test-json-module": "file:./json-module", - "express": "^4.19.2", "vue": "^3.4.33" } } diff --git a/playground/json/server.js b/playground/json/server.js index fea792d4e6ab91..82a0dcf22bb496 100644 --- a/playground/json/server.js +++ b/playground/json/server.js @@ -2,14 +2,12 @@ import fs from 'node:fs' import path from 'node:path' import { fileURLToPath } from 'node:url' -import express from 'express' const __dirname = path.dirname(fileURLToPath(import.meta.url)) const isTest = process.env.VITEST export async function createServer(root = process.cwd(), hmrPort) { const resolve = (p) => path.resolve(__dirname, p) - const app = express() /** * @type {import('vite').ViteDevServer} @@ -36,8 +34,8 @@ export async function createServer(root = process.cwd(), hmrPort) { stringify: true, }, }) - // use vite's connect instance as middleware - app.use(vite.middlewares) + + const app = vite.middlewares app.use('*', async (req, res) => { try { @@ -48,7 +46,8 @@ export async function createServer(root = process.cwd(), hmrPort) { console.time('load module') const json = JSON.stringify(await vite.ssrLoadModule('/test.json')) console.timeEnd('load module') - res.status(200).end('' + json.length) + res.statusCode = 200 + res.end('' + json.length) return } @@ -64,7 +63,8 @@ export async function createServer(root = process.cwd(), hmrPort) { ) // console.timeEnd('transform module') // @ts-expect-error ignore in test - res.status(200).end(String(json.code.length)) + res.statusCode = 200 + res.end(String(json.code.length)) return } @@ -72,11 +72,14 @@ export async function createServer(root = process.cwd(), hmrPort) { let html = fs.readFileSync(htmlLoc, 'utf-8') html = await vite.transformIndexHtml(url, html) - res.status(200).set({ 'Content-Type': 'text/html' }).end(html) + res.statusCode = 200 + res.setHeader('Content-Type', 'text/html') + res.end(html) } catch (e) { vite && vite.ssrFixStacktrace(e) console.log(e.stack) - res.status(500).end(e.stack) + res.statusCode = 500 + res.end(e.stack) } }) diff --git a/playground/legacy/__tests__/client-and-ssr/serve.ts b/playground/legacy/__tests__/client-and-ssr/serve.ts index 46a075549db53a..e2f39c7f5a84f0 100644 --- a/playground/legacy/__tests__/client-and-ssr/serve.ts +++ b/playground/legacy/__tests__/client-and-ssr/serve.ts @@ -29,25 +29,27 @@ export async function serve(): Promise<{ close(): Promise }> { }, }) - const { default: express } = await import('express') - const app = express() + const { default: polka } = await import('polka') + const app = polka() app.use('/', async (_req, res) => { const { render } = await import( path.resolve(rootDir, './dist/server/entry-server-sequential.js') ) const html = await render() - res.status(200).set({ 'Content-Type': 'text/html' }).end(html) + res.statusCode = 200 + res.setHeader('Content-Type', 'text/html') + res.end(html) }) return new Promise((resolve, reject) => { try { - const server = app.listen(port, () => { + app.listen(port, () => { resolve({ // for test teardown async close() { await new Promise((resolve) => { - server.close(resolve) + app.server.close(resolve) }) }, }) diff --git a/playground/legacy/__tests__/ssr/serve.ts b/playground/legacy/__tests__/ssr/serve.ts index 2b20dfc8455d69..bdb2da1e94a9f3 100644 --- a/playground/legacy/__tests__/ssr/serve.ts +++ b/playground/legacy/__tests__/ssr/serve.ts @@ -17,25 +17,27 @@ export async function serve(): Promise<{ close(): Promise }> { }, }) - const { default: express } = await import('express') - const app = express() + const { default: polka } = await import('polka') + const app = polka() app.use('/', async (_req, res) => { const { render } = await import( path.resolve(rootDir, './dist/server/entry-server.js') ) const html = await render() - res.status(200).set({ 'Content-Type': 'text/html' }).end(html) + res.statusCode = 200 + res.setHeader('Content-Type', 'text/html') + res.end(html) }) return new Promise((resolve, reject) => { try { - const server = app.listen(port, () => { + app.listen(port, () => { resolve({ // for test teardown async close() { await new Promise((resolve) => { - server.close(resolve) + app.server.close(resolve) }) }, }) diff --git a/playground/legacy/package.json b/playground/legacy/package.json index 6fe44613f64675..ea987d234b2f76 100644 --- a/playground/legacy/package.json +++ b/playground/legacy/package.json @@ -17,7 +17,7 @@ "devDependencies": { "vite": "workspace:*", "@vitejs/plugin-legacy": "workspace:*", - "express": "^4.19.2", + "polka": "^1.0.0-next.25", "terser": "^5.31.3" } } diff --git a/playground/optimize-missing-deps/__test__/serve.ts b/playground/optimize-missing-deps/__test__/serve.ts index 2472e170236d5d..a00ea2411764ce 100644 --- a/playground/optimize-missing-deps/__test__/serve.ts +++ b/playground/optimize-missing-deps/__test__/serve.ts @@ -15,12 +15,12 @@ export async function serve(): Promise<{ close(): Promise }> { return new Promise((resolve, reject) => { try { - const server = app.listen(port, () => { + app.listen(port, () => { resolve({ // for test teardown async close() { await new Promise((resolve) => { - server.close(resolve) + app.server.close(resolve) }) if (vite) { await vite.close() diff --git a/playground/optimize-missing-deps/package.json b/playground/optimize-missing-deps/package.json index bcbd49586f6e2c..b63614d70ac8c1 100644 --- a/playground/optimize-missing-deps/package.json +++ b/playground/optimize-missing-deps/package.json @@ -9,7 +9,5 @@ "dependencies": { "@vitejs/test-missing-dep": "file:./missing-dep" }, - "devDependencies": { - "express": "^4.19.2" - } + "devDependencies": {} } diff --git a/playground/optimize-missing-deps/server.js b/playground/optimize-missing-deps/server.js index ea50b9adc291e5..05155aed85e794 100644 --- a/playground/optimize-missing-deps/server.js +++ b/playground/optimize-missing-deps/server.js @@ -2,7 +2,6 @@ import fs from 'node:fs' import path from 'node:path' import { fileURLToPath } from 'node:url' -import express from 'express' const __dirname = path.dirname(fileURLToPath(import.meta.url)) const isTest = process.env.VITEST @@ -10,8 +9,6 @@ const isTest = process.env.VITEST export async function createServer(root = process.cwd(), hmrPort) { const resolve = (p) => path.resolve(__dirname, p) - const app = express() - /** * @type {import('vite').ViteDevServer} */ @@ -28,7 +25,7 @@ export async function createServer(root = process.cwd(), hmrPort) { }, appType: 'custom', }) - app.use(vite.middlewares) + const app = vite.middlewares app.use('*', async (req, res) => { try { @@ -48,11 +45,14 @@ export async function createServer(root = process.cwd(), hmrPort) { const html = template.replace(``, appHtml) - res.status(200).set({ 'Content-Type': 'text/html' }).end(html) + res.statusCode = 200 + res.setHeader('Content-Type', 'text/html') + res.end(html) } catch (e) { vite.ssrFixStacktrace(e) console.log(e.stack) - res.status(500).end(e.stack) + res.statusCode = 500 + res.end(e.stack) } }) diff --git a/playground/ssr-conditions/__tests__/serve.ts b/playground/ssr-conditions/__tests__/serve.ts index 5e0546db2bd1a5..b3d73376ef532e 100644 --- a/playground/ssr-conditions/__tests__/serve.ts +++ b/playground/ssr-conditions/__tests__/serve.ts @@ -15,12 +15,12 @@ export async function serve(): Promise<{ close(): Promise }> { return new Promise((resolve, reject) => { try { - const server = app.listen(port, () => { + app.listen(port, () => { resolve({ // for test teardown async close() { await new Promise((resolve) => { - server.close(resolve) + app.server.close(resolve) }) if (vite) { await vite.close() diff --git a/playground/ssr-conditions/package.json b/playground/ssr-conditions/package.json index 5f94a6a5e88c84..4b8c6f3d4d21c5 100644 --- a/playground/ssr-conditions/package.json +++ b/playground/ssr-conditions/package.json @@ -12,7 +12,5 @@ "@vitejs/test-ssr-conditions-external": "file:./external", "@vitejs/test-ssr-conditions-no-external": "file:./no-external" }, - "devDependencies": { - "express": "^4.19.2" - } + "devDependencies": {} } diff --git a/playground/ssr-conditions/server.js b/playground/ssr-conditions/server.js index aa26dfb0cb8607..f20703427e27e9 100644 --- a/playground/ssr-conditions/server.js +++ b/playground/ssr-conditions/server.js @@ -1,7 +1,6 @@ import fs from 'node:fs' import path from 'node:path' import { fileURLToPath } from 'node:url' -import express from 'express' const __dirname = path.dirname(fileURLToPath(import.meta.url)) @@ -10,8 +9,6 @@ const isTest = process.env.VITEST export async function createServer(root = process.cwd(), hmrPort) { const resolve = (p) => path.resolve(__dirname, p) - const app = express() - /** * @type {import('vite').ViteDevServer} */ @@ -35,7 +32,7 @@ export async function createServer(root = process.cwd(), hmrPort) { appType: 'custom', }) - app.use(vite.middlewares) + const app = vite.middlewares app.use('*', async (req, res) => { try { @@ -50,11 +47,14 @@ export async function createServer(root = process.cwd(), hmrPort) { const html = template.replace(``, appHtml) - res.status(200).set({ 'Content-Type': 'text/html' }).end(html) + res.statusCode = 200 + res.setHeader('Content-Type', 'text/html') + res.end(html) } catch (e) { vite && vite.ssrFixStacktrace(e) console.log(e.stack) - res.status(500).end(e.stack) + res.statusCode = 500 + res.end(e.stack) } }) diff --git a/playground/ssr-deps/__tests__/serve.ts b/playground/ssr-deps/__tests__/serve.ts index d7502f5542a356..a342308534fec6 100644 --- a/playground/ssr-deps/__tests__/serve.ts +++ b/playground/ssr-deps/__tests__/serve.ts @@ -15,12 +15,12 @@ export async function serve(): Promise<{ close(): Promise }> { return new Promise((resolve, reject) => { try { - const server = app.listen(port, () => { + app.listen(port, () => { resolve({ // for test teardown async close() { await new Promise((resolve) => { - server.close(resolve) + app.server.close(resolve) }) if (vite) { await vite.close() diff --git a/playground/ssr-deps/package.json b/playground/ssr-deps/package.json index e27f0f5c118171..f5921ea7ef29fe 100644 --- a/playground/ssr-deps/package.json +++ b/playground/ssr-deps/package.json @@ -32,7 +32,5 @@ "@vitejs/test-pkg-exports": "file:./pkg-exports", "@vitejs/test-module-condition": "file:./module-condition" }, - "devDependencies": { - "express": "^4.19.2" - } + "devDependencies": {} } diff --git a/playground/ssr-deps/server.js b/playground/ssr-deps/server.js index 52134ea162a4ea..7d8fa460f65041 100644 --- a/playground/ssr-deps/server.js +++ b/playground/ssr-deps/server.js @@ -2,7 +2,6 @@ import fs from 'node:fs' import path from 'node:path' import { fileURLToPath } from 'node:url' -import express from 'express' const __dirname = path.dirname(fileURLToPath(import.meta.url)) @@ -18,8 +17,6 @@ const noExternal = [ export async function createServer(root = process.cwd(), hmrPort) { const resolve = (p) => path.resolve(__dirname, p) - const app = express() - /** * @type {import('vite').ViteDevServer} */ @@ -85,8 +82,7 @@ export async function createServer(root = process.cwd(), hmrPort) { }, ], }) - // use vite's connect instance as middleware - app.use(vite.middlewares) + const app = vite.middlewares app.use('*', async (req, res) => { try { @@ -101,11 +97,14 @@ export async function createServer(root = process.cwd(), hmrPort) { const html = template.replace(``, appHtml) - res.status(200).set({ 'Content-Type': 'text/html' }).end(html) + res.statusCode = 200 + res.setHeader('Content-Type', 'text/html') + res.end(html) } catch (e) { vite && vite.ssrFixStacktrace(e) console.log(e.stack) - res.status(500).end(e.stack) + res.statusCode = 500 + res.end(e.stack) } }) diff --git a/playground/ssr-html/__tests__/serve.ts b/playground/ssr-html/__tests__/serve.ts index 4886414606b6b6..1e9365fc4031b9 100644 --- a/playground/ssr-html/__tests__/serve.ts +++ b/playground/ssr-html/__tests__/serve.ts @@ -15,12 +15,12 @@ export async function serve(): Promise<{ close(): Promise }> { return new Promise((resolve, reject) => { try { - const server = app.listen(port, () => { + app.listen(port, () => { resolve({ // for test teardown async close() { await new Promise((resolve) => { - server.close(resolve) + app.server.close(resolve) }) if (vite) { await vite.close() diff --git a/playground/ssr-html/package.json b/playground/ssr-html/package.json index 841eafe086a9f6..125160c3adda06 100644 --- a/playground/ssr-html/package.json +++ b/playground/ssr-html/package.json @@ -11,7 +11,5 @@ "test-stacktrace:on": "node test-stacktrace true" }, "dependencies": {}, - "devDependencies": { - "express": "^4.19.2" - } + "devDependencies": {} } diff --git a/playground/ssr-html/server.js b/playground/ssr-html/server.js index 0c4deacfc64f2e..1c52f8ceb6f4a9 100644 --- a/playground/ssr-html/server.js +++ b/playground/ssr-html/server.js @@ -1,7 +1,6 @@ import fs from 'node:fs' import path from 'node:path' import { fileURLToPath } from 'node:url' -import express from 'express' const __dirname = path.dirname(fileURLToPath(import.meta.url)) const isTest = process.env.VITEST @@ -26,8 +25,6 @@ const DYNAMIC_STYLES = ` export async function createServer(root = process.cwd(), hmrPort) { const resolve = (p) => path.resolve(__dirname, p) - const app = express() - /** * @type {import('vite').ViteDevServer} */ @@ -65,8 +62,7 @@ export async function createServer(root = process.cwd(), hmrPort) { }, ], }) - // use vite's connect instance as middleware - app.use(vite.middlewares) + const app = vite.middlewares app.use('*', async (req, res, next) => { try { @@ -74,7 +70,8 @@ export async function createServer(root = process.cwd(), hmrPort) { if (url.endsWith('/')) url += 'index.html' if (url.startsWith('/favicon.ico')) { - return res.status(404).end('404') + res.statusCode = 404 + return res.end('404') } if (url.startsWith('/@id/__x00__')) { return next() @@ -93,11 +90,14 @@ export async function createServer(root = process.cwd(), hmrPort) { // as `const url = req.originalUrl` const html = await vite.transformIndexHtml('/', template) - res.status(200).set({ 'Content-Type': 'text/html' }).end(html) + res.statusCode = 200 + res.setHeader('Content-Type', 'text/html') + res.end(html) } catch (e) { vite && vite.ssrFixStacktrace(e) console.log(e.stack) - res.status(500).end(e.stack) + res.statusCode = 500 + res.end(e.stack) } }) diff --git a/playground/ssr-noexternal/__tests__/serve.ts b/playground/ssr-noexternal/__tests__/serve.ts index 47bb4c5236294f..45753f0ac2c633 100644 --- a/playground/ssr-noexternal/__tests__/serve.ts +++ b/playground/ssr-noexternal/__tests__/serve.ts @@ -32,12 +32,12 @@ export async function serve(): Promise<{ close(): Promise }> { return new Promise((resolve, reject) => { try { - const server = app.listen(port, () => { + app.listen(port, () => { resolve({ // for test teardown async close() { await new Promise((resolve) => { - server.close(resolve) + app.server.close(resolve) }) if (vite) { await vite.close() diff --git a/playground/ssr-noexternal/package.json b/playground/ssr-noexternal/package.json index 3273e76b04c599..1ce790c43c450e 100644 --- a/playground/ssr-noexternal/package.json +++ b/playground/ssr-noexternal/package.json @@ -11,7 +11,6 @@ }, "dependencies": { "@vitejs/test-external-cjs": "file:./external-cjs", - "@vitejs/test-require-external-cjs": "file:./require-external-cjs", - "express": "^4.19.2" + "@vitejs/test-require-external-cjs": "file:./require-external-cjs" } } diff --git a/playground/ssr-noexternal/server.js b/playground/ssr-noexternal/server.js index c13fc90956d3c1..8fb99296daffa2 100644 --- a/playground/ssr-noexternal/server.js +++ b/playground/ssr-noexternal/server.js @@ -1,7 +1,6 @@ import fs from 'node:fs' import path from 'node:path' import { fileURLToPath } from 'node:url' -import express from 'express' const __dirname = path.dirname(fileURLToPath(import.meta.url)) @@ -18,34 +17,31 @@ export async function createServer( ? fs.readFileSync(resolve('index.html'), 'utf-8') : '' - const app = express() - /** * @type {import('vite').ViteDevServer} */ - let vite - if (!isProd) { - vite = await ( - await import('vite') - ).createServer({ - root, - logLevel: isTest ? 'error' : 'info', - server: { - middlewareMode: true, - watch: { - // During tests we edit the files too fast and sometimes chokidar - // misses change events, so enforce polling for consistency - usePolling: true, - interval: 100, - }, - hmr: { - port: hmrPort, - }, + const vite = await ( + await import('vite') + ).createServer({ + root, + logLevel: isTest ? 'error' : 'info', + server: { + middlewareMode: true, + watch: isProd + ? false + : { + // During tests we edit the files too fast and sometimes chokidar + // misses change events, so enforce polling for consistency + usePolling: true, + interval: 100, + }, + hmr: { + port: hmrPort, }, - appType: 'custom', - }) - app.use(vite.middlewares) - } + }, + appType: 'custom', + }) + const app = vite.middlewares app.use('*', async (req, res) => { try { @@ -66,11 +62,14 @@ export async function createServer( const html = template.replace(``, appHtml) - res.status(200).set({ 'Content-Type': 'text/html' }).end(html) + res.statusCode = 200 + res.setHeader('Content-Type', 'text/html') + res.end(html) } catch (e) { !isProd && vite.ssrFixStacktrace(e) console.log(e.stack) - res.status(500).end(e.stack) + res.statusCode = 500 + res.end(e.stack) } }) diff --git a/playground/ssr-pug/__tests__/serve.ts b/playground/ssr-pug/__tests__/serve.ts index 715c38e99801ad..986fe37993f69c 100644 --- a/playground/ssr-pug/__tests__/serve.ts +++ b/playground/ssr-pug/__tests__/serve.ts @@ -15,12 +15,12 @@ export async function serve(): Promise<{ close(): Promise }> { return new Promise((resolve, reject) => { try { - const server = app.listen(port, () => { + app.listen(port, () => { resolve({ // for test teardown async close() { await new Promise((resolve) => { - server.close(resolve) + app.server.close(resolve) }) if (vite) { await vite.close() diff --git a/playground/ssr-pug/package.json b/playground/ssr-pug/package.json index 38469a5a80788c..e4e36944c896d7 100644 --- a/playground/ssr-pug/package.json +++ b/playground/ssr-pug/package.json @@ -9,7 +9,6 @@ "debug": "node --inspect-brk server" }, "devDependencies": { - "express": "^4.19.2", "pug": "^3.0.3" } } diff --git a/playground/ssr-pug/server.js b/playground/ssr-pug/server.js index 222b51ae216638..c5fb7a2c559008 100644 --- a/playground/ssr-pug/server.js +++ b/playground/ssr-pug/server.js @@ -2,7 +2,6 @@ import path from 'node:path' import { fileURLToPath } from 'node:url' import pug from 'pug' -import express from 'express' const __dirname = path.dirname(fileURLToPath(import.meta.url)) @@ -20,8 +19,6 @@ const DYNAMIC_SCRIPTS = ` export async function createServer(root = process.cwd(), hmrPort) { const resolve = (p) => path.resolve(__dirname, p) - const app = express() - /** * @type {import('vite').ViteDevServer} */ @@ -44,8 +41,8 @@ export async function createServer(root = process.cwd(), hmrPort) { }, appType: 'custom', }) - // use vite's connect instance as middleware - app.use(vite.middlewares) + + const app = vite.middlewares app.use('*', async (req, res) => { try { @@ -58,11 +55,14 @@ export async function createServer(root = process.cwd(), hmrPort) { html = html.replace('', `${DYNAMIC_SCRIPTS}`) html = await vite.transformIndexHtml(url, html) - res.status(200).set({ 'Content-Type': 'text/html' }).end(html) + res.statusCode = 200 + res.setHeader('Content-Type', 'text/html') + res.end(html) } catch (e) { vite && vite.ssrFixStacktrace(e) console.log(e.stack) - res.status(500).end(e.stack) + res.statusCode = 500 + res.end(e.stack) } }) diff --git a/playground/ssr/__tests__/serve.ts b/playground/ssr/__tests__/serve.ts index 96e2044aa8b1dd..15bd78a8ac7ba5 100644 --- a/playground/ssr/__tests__/serve.ts +++ b/playground/ssr/__tests__/serve.ts @@ -21,12 +21,12 @@ export async function serve(): Promise<{ close(): Promise }> { return new Promise((resolve, reject) => { try { - const server = app.listen(port, () => { + app.listen(port, () => { resolve({ // for test teardown async close() { await new Promise((resolve) => { - server.close(resolve) + app.server.close(resolve) }) if (vite) { await vite.close() diff --git a/playground/ssr/package.json b/playground/ssr/package.json index fe3899523cc956..9539e14735108a 100644 --- a/playground/ssr/package.json +++ b/playground/ssr/package.json @@ -9,7 +9,5 @@ "debug": "node --inspect-brk server" }, "dependencies": {}, - "devDependencies": { - "express": "^4.19.2" - } + "devDependencies": {} } diff --git a/playground/ssr/server.js b/playground/ssr/server.js index 33f4369220d4f4..d5556142c8fb72 100644 --- a/playground/ssr/server.js +++ b/playground/ssr/server.js @@ -1,7 +1,6 @@ import fs from 'node:fs' import path from 'node:path' import { fileURLToPath } from 'node:url' -import express from 'express' const __dirname = path.dirname(fileURLToPath(import.meta.url)) const isTest = process.env.VITEST @@ -13,8 +12,6 @@ export async function createServer( ) { const resolve = (p) => path.resolve(__dirname, p) - const app = express() - /** * @type {import('vite').ViteDevServer} */ @@ -38,8 +35,7 @@ export async function createServer( appType: 'custom', customLogger, }) - // use vite's connect instance as middleware - app.use(vite.middlewares) + const app = vite.middlewares app.use('*', async (req, res, next) => { try { @@ -54,12 +50,15 @@ export async function createServer( const html = template.replace(``, appHtml) - res.status(200).set({ 'Content-Type': 'text/html' }).end(html) + res.statusCode = 200 + res.setHeader('Content-Type', 'text/html') + res.end(html) } catch (e) { vite && vite.ssrFixStacktrace(e) if (isTest) throw e console.log(e.stack) - res.status(500).end(e.stack) + res.statusCode = 500 + res.end(e.stack) } }) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9585cc131c966a..a8e6981f0a2ad9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -142,9 +142,6 @@ importers: '@shikijs/vitepress-twoslash': specifier: ^1.11.0 version: 1.11.0(typescript@5.5.3) - '@types/express': - specifier: ^4.17.21 - version: 4.17.21 feed: specifier: ^4.2.2 version: 4.2.2 @@ -356,8 +353,8 @@ importers: specifier: ^2.3.1 version: 2.3.1 polka: - specifier: ^0.5.2 - version: 0.5.2 + specifier: ^1.0.0-next.25 + version: 1.0.0-next.25 postcss-import: specifier: ^16.1.0 version: 16.1.0(postcss@8.4.39) @@ -582,9 +579,6 @@ importers: playground/css-lightningcss-proxy: devDependencies: - express: - specifier: ^4.19.2 - version: 4.19.2 lightningcss: specifier: ^1.25.1 version: 1.25.1 @@ -758,9 +752,6 @@ importers: '@vitejs/test-json-module': specifier: file:./json-module version: file:playground/json/json-module - express: - specifier: ^4.19.2 - version: 4.19.2 vue: specifier: ^3.4.33 version: 3.4.33(typescript@5.5.3) @@ -772,9 +763,9 @@ importers: '@vitejs/plugin-legacy': specifier: workspace:* version: link:../../packages/plugin-legacy - express: - specifier: ^4.19.2 - version: 4.19.2 + polka: + specifier: ^1.0.0-next.25 + version: 1.0.0-next.25 terser: specifier: ^5.31.3 version: 5.31.3 @@ -1075,10 +1066,6 @@ importers: '@vitejs/test-missing-dep': specifier: file:./missing-dep version: file:playground/optimize-missing-deps/missing-dep - devDependencies: - express: - specifier: ^4.19.2 - version: 4.19.2 playground/optimize-missing-deps/missing-dep: dependencies: @@ -1264,11 +1251,7 @@ importers: playground/self-referencing: {} - playground/ssr: - devDependencies: - express: - specifier: ^4.19.2 - version: 4.19.2 + playground/ssr: {} playground/ssr-alias: dependencies: @@ -1286,10 +1269,6 @@ importers: '@vitejs/test-ssr-conditions-no-external': specifier: file:./no-external version: file:playground/ssr-conditions/no-external - devDependencies: - express: - specifier: ^4.19.2 - version: 4.19.2 playground/ssr-conditions/external: {} @@ -1363,10 +1342,6 @@ importers: bcrypt: specifier: ^5.1.1 version: 5.1.1 - devDependencies: - express: - specifier: ^4.19.2 - version: 4.19.2 playground/ssr-deps/css-lib: {} @@ -1437,11 +1412,7 @@ importers: playground/ssr-deps/ts-transpiled-exports: {} - playground/ssr-html: - devDependencies: - express: - specifier: ^4.19.2 - version: 4.19.2 + playground/ssr-html: {} playground/ssr-noexternal: dependencies: @@ -1451,9 +1422,6 @@ importers: '@vitejs/test-require-external-cjs': specifier: file:./require-external-cjs version: file:playground/ssr-noexternal/require-external-cjs - express: - specifier: ^4.19.2 - version: 4.19.2 playground/ssr-noexternal/external-cjs: {} @@ -1465,9 +1433,6 @@ importers: playground/ssr-pug: devDependencies: - express: - specifier: ^4.19.2 - version: 4.19.2 pug: specifier: ^3.0.3 version: 3.0.3 @@ -1633,10 +1598,6 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} - '@arr/every@1.0.1': - resolution: {integrity: sha512-UQFQ6SgyJ6LX42W8rHCs8KVc0JS0tzVL9ct4XYedJukskYVWTo49tNiMEK9C2HTyarbNiT/RVIRSY82vH+6sTg==} - engines: {node: '>=4'} - '@babel/code-frame@7.24.7': resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} engines: {node: '>=6.9.0'} @@ -2797,9 +2758,6 @@ packages: resolution: {integrity: sha512-UlVkoSGRig87riHSn8QOxd2DzGhadRpNSj5Ukqj+Bt7WTE4Es+sE3ju3OYbe8SiV2OwA+8tDcSuHWUh5S3jCBQ==} engines: {node: '>=6'} - '@polka/url@0.5.0': - resolution: {integrity: sha512-oZLYFEAzUKyi3SKnXvj32ZCEGH6RDnao7COuCVhDydMS9NrCSVXhM79VaKyP5+Zc33m0QXEd2DN3UkU7OsHcfw==} - '@polka/url@1.0.0-next.24': resolution: {integrity: sha512-2LuNTFBIO0m7kKIQvvPHN6UE63VjpmL9rnEEaOOaiSPbZK+zUOYIzBAWcED+3XYzhYsd/0mD57VdxAEqqV52CQ==} @@ -3007,15 +2965,9 @@ packages: '@types/babel__traverse@7.20.6': resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==} - '@types/body-parser@1.19.5': - resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} - '@types/braces@3.0.4': resolution: {integrity: sha512-0WR3b8eaISjEW7RpZnclONaLFDf7buaowRHdqLp4vLj54AsSAYWfh3DRbfiYJY9XDxMgx1B4sE1Afw2PGpuHOA==} - '@types/connect@3.4.38': - resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} - '@types/convert-source-map@2.0.3': resolution: {integrity: sha512-ag0BfJLZf6CQz8VIuRIEYQ5Ggwk/82uvTQf27RcpyDNbY0Vw49LIPqAxk5tqYfrCs9xDaIMvl4aj7ZopnYL8bA==} @@ -3034,18 +2986,9 @@ packages: '@types/etag@1.8.3': resolution: {integrity: sha512-QYHv9Yeh1ZYSMPQOoxY4XC4F1r+xRUiAriB303F4G6uBsT3KKX60DjiogvVv+2VISVDuJhcIzMdbjT+Bm938QQ==} - '@types/express-serve-static-core@4.17.43': - resolution: {integrity: sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==} - - '@types/express@4.17.21': - resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} - '@types/hast@3.0.4': resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} - '@types/http-errors@2.0.4': - resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==} - '@types/less@3.0.6': resolution: {integrity: sha512-PecSzorDGdabF57OBeQO/xFbAkYWo88g4Xvnsx7LRwqLC17I7OoKtA3bQB9uXkY6UkMWCOsA8HSVpaoitscdXw==} @@ -3067,12 +3010,6 @@ packages: '@types/micromatch@4.0.9': resolution: {integrity: sha512-7V+8ncr22h4UoYRLnLXSpTxjQrNUXtWHGeMPRJt1nULXI57G9bIcpyrHlmrQ7QK24EyyuXvYcSSWAM8GA9nqCg==} - '@types/mime@1.3.5': - resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} - - '@types/mime@3.0.4': - resolution: {integrity: sha512-iJt33IQnVRkqeqC7PzBHPTC6fDlRNRW8vjrgqtScAhrmMwe8c4Eo7+fUGTa+XdWrpEgpyKWMYmi2dIwMAYRzPw==} - '@types/minimist@1.2.5': resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==} @@ -3097,24 +3034,12 @@ packages: '@types/prompts@2.4.9': resolution: {integrity: sha512-qTxFi6Buiu8+50/+3DGIWLHM6QuWsEKugJnnP6iv2Mc4ncxE4A/OJkjuVOA+5X0X1S/nq5VJRa8Lu+nwcvbrKA==} - '@types/qs@6.9.12': - resolution: {integrity: sha512-bZcOkJ6uWrL0Qb2NAWKa7TBU+mJHPzhx9jjLL1KHF+XpzEcR7EXHvjbHlGtR/IsP1vyPrehuS6XqkmaePy//mg==} - - '@types/range-parser@1.2.7': - resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} - '@types/resolve@1.20.2': resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} '@types/semver@7.5.8': resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} - '@types/send@0.17.4': - resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} - - '@types/serve-static@1.15.5': - resolution: {integrity: sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==} - '@types/stylus@0.48.42': resolution: {integrity: sha512-CPGlr5teL4sqdap+EOowMifLuNGeIoLwc0VQ7u/BPxo+ocqiNa5jeVt0H0IVBblEh6ZwX1sGpIQIFnSSr8NBQA==} @@ -3616,10 +3541,6 @@ packages: abbrev@1.1.1: resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} - accepts@1.3.8: - resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} - engines: {node: '>= 0.6'} - acorn-jsx@5.3.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: @@ -3704,9 +3625,6 @@ packages: resolution: {integrity: sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==} engines: {node: '>=0.10.0'} - array-flatten@1.1.1: - resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} - array-ify@1.0.0: resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} @@ -3784,10 +3702,6 @@ packages: birpc@0.2.17: resolution: {integrity: sha512-+hkTxhot+dWsLpp3gia5AkVHIsKlZybNT5gIYiDlNzJrmYPcTM9k5/w2uaj3IPpd7LlEYpmCj4Jj1nC41VhDFg==} - body-parser@1.20.2: - resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} @@ -3817,10 +3731,6 @@ packages: resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} engines: {node: '>=6'} - bytes@3.1.2: - resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} - engines: {node: '>= 0.8'} - cac@6.7.14: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} engines: {node: '>=8'} @@ -3960,14 +3870,6 @@ packages: constantinople@4.0.1: resolution: {integrity: sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw==} - content-disposition@0.5.4: - resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} - engines: {node: '>= 0.6'} - - content-type@1.0.5: - resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} - engines: {node: '>= 0.6'} - conventional-changelog-angular@8.0.0: resolution: {integrity: sha512-CLf+zr6St0wIxos4bmaKHRXWAcsCXrJU6F4VdNDrGRK3B8LDLKoX3zuMV5GhtbGkVR/LohZ6MT6im43vZLSjmA==} engines: {node: '>=18'} @@ -4038,17 +3940,10 @@ packages: convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - cookie-signature@1.0.6: - resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} - cookie@0.5.0: resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} engines: {node: '>= 0.6'} - cookie@0.6.0: - resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} - engines: {node: '>= 0.6'} - copy-anything@2.0.6: resolution: {integrity: sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==} @@ -4100,14 +3995,6 @@ packages: de-indent@1.0.2: resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} - debug@2.6.9: - resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - debug@3.2.7: resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} peerDependencies: @@ -4156,18 +4043,10 @@ packages: delegates@1.0.0: resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} - depd@2.0.0: - resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} - engines: {node: '>= 0.8'} - dequal@2.0.3: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} engines: {node: '>=6'} - destroy@1.2.0: - resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - detect-libc@1.0.3: resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} engines: {node: '>=0.10'} @@ -4216,9 +4095,6 @@ packages: eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - ee-first@1.1.1: - resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - electron-to-chromium@1.4.828: resolution: {integrity: sha512-QOIJiWpQJDHAVO4P58pwb133Cwee0nbvy/MV1CwzZVGpkH1RX33N3vsaWRCpR6bF63AAq366neZrRTu7Qlsbbw==} @@ -4231,10 +4107,6 @@ packages: emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - encodeurl@1.0.2: - resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} - engines: {node: '>= 0.8'} - enhanced-resolve@5.17.0: resolution: {integrity: sha512-dwDPwZL0dmye8Txp2gzFmA6sxALaSvdRDjPH0viLcKrtlOL3tw62nWWweVD1SdILDTJrbrL6tdWVN58Wo6U3eA==} engines: {node: '>=10.13.0'} @@ -4399,10 +4271,6 @@ packages: resolution: {integrity: sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw==} engines: {node: '>=6'} - express@4.19.2: - resolution: {integrity: sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==} - engines: {node: '>= 0.10.0'} - ext@1.6.0: resolution: {integrity: sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg==} @@ -4450,10 +4318,6 @@ packages: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} - finalhandler@1.2.0: - resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} - engines: {node: '>= 0.8'} - find-up-simple@1.0.0: resolution: {integrity: sha512-q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw==} engines: {node: '>=18'} @@ -4502,17 +4366,9 @@ packages: resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} engines: {node: '>=12.20.0'} - forwarded@0.2.0: - resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} - engines: {node: '>= 0.6'} - fraction.js@4.3.7: resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} - fresh@0.5.2: - resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} - engines: {node: '>= 0.6'} - fs-extra@11.2.0: resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} engines: {node: '>=14.14'} @@ -4685,10 +4541,6 @@ packages: resolution: {integrity: sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==} engines: {node: ^16.14.0 || >=18.0.0} - http-errors@2.0.0: - resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} - engines: {node: '>= 0.8'} - http-proxy@1.18.1: resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} engines: {node: '>=8.0.0'} @@ -4705,10 +4557,6 @@ packages: resolution: {integrity: sha512-74kytxOUSvNbjrT9KisAbaTZ/eJwD/LrbM/kh5j0IhPuJzwuA19dWvniFGwBzN9rVjg+O/e+F310PjObDXS+9Q==} engines: {node: '>=18.18.0'} - iconv-lite@0.4.24: - resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} - engines: {node: '>=0.10.0'} - iconv-lite@0.6.3: resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} engines: {node: '>=0.10.0'} @@ -4754,10 +4602,6 @@ packages: inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - ipaddr.js@1.9.1: - resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} - engines: {node: '>= 0.10'} - is-binary-path@2.1.0: resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} engines: {node: '>=8'} @@ -5090,10 +4934,6 @@ packages: markdown-table@3.0.3: resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==} - matchit@1.1.0: - resolution: {integrity: sha512-+nGYoOlfHmxe5BW5tE0EMJppXEwdSf8uBA1GTZC7Q77kbT35+VKLYJMzVNWCHSsga1ps1tPYFtFyvxvKzWVmMA==} - engines: {node: '>=6'} - mdast-util-find-and-replace@3.0.1: resolution: {integrity: sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==} @@ -5130,10 +4970,6 @@ packages: mdast-util-to-string@4.0.0: resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} - media-typer@0.3.0: - resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} - engines: {node: '>= 0.6'} - memorystream@0.3.1: resolution: {integrity: sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==} engines: {node: '>= 0.10.0'} @@ -5142,9 +4978,6 @@ packages: resolution: {integrity: sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==} engines: {node: '>=18'} - merge-descriptors@1.0.1: - resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} - merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} @@ -5152,10 +4985,6 @@ packages: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} - methods@1.1.2: - resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} - engines: {node: '>= 0.6'} - micromark-core-commonmark@2.0.0: resolution: {integrity: sha512-jThOz/pVmAYUtkroV3D5c1osFXAMv9e0ypGDOIZuCeAe91/sD6BoE2Sjzt30yuXtwOYUmySOhMas/PVyh02itA==} @@ -5312,9 +5141,6 @@ packages: resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==} engines: {node: '>=10'} - ms@2.0.0: - resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} - ms@2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} @@ -5344,10 +5170,6 @@ packages: engines: {node: '>= 4.4.x'} hasBin: true - negotiator@0.6.3: - resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} - engines: {node: '>= 0.6'} - neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} @@ -5441,10 +5263,6 @@ packages: object-inspect@1.12.3: resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} - on-finished@2.4.1: - resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} - engines: {node: '>= 0.8'} - once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} @@ -5498,10 +5316,6 @@ packages: parse5@7.1.2: resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} - parseurl@1.3.3: - resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} - engines: {node: '>= 0.8'} - path-browserify@1.0.1: resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} @@ -5528,9 +5342,6 @@ packages: resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} engines: {node: '>=16 || 14 >=14.18'} - path-to-regexp@0.1.7: - resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} - path-type@4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} @@ -5588,8 +5399,9 @@ packages: engines: {node: '>=18'} hasBin: true - polka@0.5.2: - resolution: {integrity: sha512-FVg3vDmCqP80tOrs+OeNlgXYmFppTXdjD5E7I4ET1NjvtNmQrb1/mJibybKkb/d4NA7YWAr1ojxuhpL3FHqdlw==} + polka@1.0.0-next.25: + resolution: {integrity: sha512-LBgDEGL73aeb/5yAwO9JWsqCuqPdvEdwA/n25Y38F4kv6jqFaLbgIWVuZfsv9Sc9O052eoWWrAjGB75oCQvELw==} + engines: {node: '>=8'} postcss-import@15.1.0: resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} @@ -5701,10 +5513,6 @@ packages: resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} engines: {node: '>= 6'} - proxy-addr@2.0.7: - resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} - engines: {node: '>= 0.10'} - proxy-from-env@1.1.0: resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} @@ -5759,10 +5567,6 @@ packages: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} - qs@6.11.0: - resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} - engines: {node: '>=0.6'} - qs@6.11.2: resolution: {integrity: sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==} engines: {node: '>=0.6'} @@ -5770,14 +5574,6 @@ packages: queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - range-parser@1.2.1: - resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} - engines: {node: '>= 0.6'} - - raw-body@2.5.2: - resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} - engines: {node: '>= 0.8'} - react-dom@18.3.1: resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} peerDependencies: @@ -5831,6 +5627,10 @@ packages: resolution: {integrity: sha512-sZuz1dYW/ZsfG17WSAG7eS85r5a0dDsvg+7BiiYR5o6lKCAtUrEwdmRmaGF6rwVj3LcmAeYkOWKEPlbPzN3Y3A==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + regexparam@3.0.0: + resolution: {integrity: sha512-RSYAtP31mvYLkAHrOlh25pCNQ5hWnT106VukGaaFfuJrZFkGRX5GhUAdPqpSDXxOhA2c4akmRuplv1mRqnBn6Q==} + engines: {node: '>=8'} + regexpu-core@5.3.2: resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==} engines: {node: '>=4'} @@ -5955,20 +5755,9 @@ packages: engines: {node: '>=10'} hasBin: true - send@0.18.0: - resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} - engines: {node: '>= 0.8.0'} - - serve-static@1.15.0: - resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} - engines: {node: '>= 0.8.0'} - set-blocking@2.0.0: resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} - setprototypeof@1.2.0: - resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} - shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} @@ -6085,10 +5874,6 @@ packages: stacktracey@2.1.8: resolution: {integrity: sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==} - statuses@2.0.1: - resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} - engines: {node: '>= 0.8'} - std-env@3.7.0: resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} @@ -6244,10 +6029,6 @@ packages: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} - toidentifier@1.0.1: - resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} - engines: {node: '>=0.6'} - token-stream@1.0.0: resolution: {integrity: sha512-VSsyNPPW74RpHwR8Fc21uubwHY7wMDeJLys2IX5zJNih+OnAnaifKHo+1LHT7DAdloQ7apeaaWg8l7qnf/TnEg==} @@ -6261,8 +6042,8 @@ packages: trim-lines@3.0.1: resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} - trouter@2.0.1: - resolution: {integrity: sha512-kr8SKKw94OI+xTGOkfsvwZQ8mWoikZDd2n8XZHjJVZUARZT+4/VV6cacRS6CLsH9bNm+HFIPU1Zx4CnNnb4qlQ==} + trouter@4.0.0: + resolution: {integrity: sha512-bwwr76BThfiVwAFZqks5cJ+VoKNM3/2Yg1ZwJslkdmAUQ6S0UNoCoGYFDxdw+u1skfexggdmD2p35kW5Td4Cug==} engines: {node: '>=6'} ts-api-utils@1.3.0: @@ -6327,10 +6108,6 @@ packages: resolution: {integrity: sha512-ADn2w7hVPcK6w1I0uWnM//y1rLXZhzB9mr0a3OirzclKF1Wp6VzevUmzz/NRAWunOT6E8HrnpGY7xOfc6K57fA==} engines: {node: '>=16'} - type-is@1.6.18: - resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} - engines: {node: '>= 0.6'} - type@1.2.0: resolution: {integrity: sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==} @@ -6415,10 +6192,6 @@ packages: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} - unpipe@1.0.0: - resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} - engines: {node: '>= 0.8'} - untyped@1.4.0: resolution: {integrity: sha512-Egkr/s4zcMTEuulcIb7dgURS6QpN7DyqQYdf+jBtiaJvQ+eRsrtWUoX84SbvQWuLkXsOjM+8sJC9u6KoMK/U7Q==} hasBin: true @@ -6438,10 +6211,6 @@ packages: util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - utils-merge@1.0.1: - resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} - engines: {node: '>= 0.4.0'} - v8-compile-cache-lib@3.0.1: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} @@ -6749,8 +6518,6 @@ snapshots: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 - '@arr/every@1.0.1': {} - '@babel/code-frame@7.24.7': dependencies: '@babel/highlight': 7.24.7 @@ -7896,8 +7663,6 @@ snapshots: '@polka/compression@1.0.0-next.25': {} - '@polka/url@0.5.0': {} - '@polka/url@1.0.0-next.24': {} '@rollup/plugin-alias@5.1.0(rollup@3.29.4)': @@ -8122,17 +7887,8 @@ snapshots: dependencies: '@babel/types': 7.24.9 - '@types/body-parser@1.19.5': - dependencies: - '@types/connect': 3.4.38 - '@types/node': 20.14.11 - '@types/braces@3.0.4': {} - '@types/connect@3.4.38': - dependencies: - '@types/node': 20.14.11 - '@types/convert-source-map@2.0.3': {} '@types/cross-spawn@6.0.6': @@ -8151,26 +7907,10 @@ snapshots: dependencies: '@types/node': 20.14.11 - '@types/express-serve-static-core@4.17.43': - dependencies: - '@types/node': 20.14.11 - '@types/qs': 6.9.12 - '@types/range-parser': 1.2.7 - '@types/send': 0.17.4 - - '@types/express@4.17.21': - dependencies: - '@types/body-parser': 1.19.5 - '@types/express-serve-static-core': 4.17.43 - '@types/qs': 6.9.12 - '@types/serve-static': 1.15.5 - '@types/hast@3.0.4': dependencies: '@types/unist': 3.0.2 - '@types/http-errors@2.0.4': {} - '@types/less@3.0.6': {} '@types/linkify-it@5.0.0': {} @@ -8192,10 +7932,6 @@ snapshots: dependencies: '@types/braces': 3.0.4 - '@types/mime@1.3.5': {} - - '@types/mime@3.0.4': {} - '@types/minimist@1.2.5': {} '@types/ms@0.7.34': {} @@ -8219,25 +7955,10 @@ snapshots: '@types/node': 20.14.10 kleur: 3.0.3 - '@types/qs@6.9.12': {} - - '@types/range-parser@1.2.7': {} - '@types/resolve@1.20.2': {} '@types/semver@7.5.8': {} - '@types/send@0.17.4': - dependencies: - '@types/mime': 1.3.5 - '@types/node': 20.14.11 - - '@types/serve-static@1.15.5': - dependencies: - '@types/http-errors': 2.0.4 - '@types/mime': 3.0.4 - '@types/node': 20.14.11 - '@types/stylus@0.48.42': dependencies: '@types/node': 20.14.11 @@ -8777,11 +8498,6 @@ snapshots: abbrev@1.1.1: {} - accepts@1.3.8: - dependencies: - mime-types: 2.1.35 - negotiator: 0.6.3 - acorn-jsx@5.3.2(acorn@8.12.1(patch_hash=i6svphyqbutfresqjorapmeqfu)): dependencies: acorn: 8.12.1(patch_hash=i6svphyqbutfresqjorapmeqfu) @@ -8862,8 +8578,6 @@ snapshots: array-find-index@1.0.2: {} - array-flatten@1.1.1: {} - array-ify@1.0.0: {} array-union@2.1.0: {} @@ -8946,23 +8660,6 @@ snapshots: birpc@0.2.17: {} - body-parser@1.20.2: - dependencies: - bytes: 3.1.2 - content-type: 1.0.5 - debug: 2.6.9 - depd: 2.0.0 - destroy: 1.2.0 - http-errors: 2.0.0 - iconv-lite: 0.4.24 - on-finished: 2.4.1 - qs: 6.11.0 - raw-body: 2.5.2 - type-is: 1.6.18 - unpipe: 1.0.0 - transitivePeerDependencies: - - supports-color - brace-expansion@1.1.11: dependencies: balanced-match: 1.0.2 @@ -8992,8 +8689,6 @@ snapshots: builtin-modules@3.3.0: {} - bytes@3.1.2: {} - cac@6.7.14: {} call-bind@1.0.2: @@ -9130,12 +8825,6 @@ snapshots: '@babel/parser': 7.24.8 '@babel/types': 7.24.9 - content-disposition@0.5.4: - dependencies: - safe-buffer: 5.2.1 - - content-type@1.0.5: {} - conventional-changelog-angular@8.0.0: dependencies: compare-func: 2.0.0 @@ -9218,12 +8907,8 @@ snapshots: convert-source-map@2.0.0: {} - cookie-signature@1.0.6: {} - cookie@0.5.0: {} - cookie@0.6.0: {} - copy-anything@2.0.6: dependencies: is-what: 3.14.1 @@ -9270,10 +8955,6 @@ snapshots: de-indent@1.0.2: {} - debug@2.6.9: - dependencies: - ms: 2.0.0 - debug@3.2.7: dependencies: ms: 2.1.3 @@ -9302,12 +8983,8 @@ snapshots: delegates@1.0.0: {} - depd@2.0.0: {} - dequal@2.0.3: {} - destroy@1.2.0: {} - detect-libc@1.0.3: {} detect-libc@2.0.1: {} @@ -9344,8 +9021,6 @@ snapshots: eastasianwidth@0.2.0: {} - ee-first@1.1.1: {} - electron-to-chromium@1.4.828: {} emoji-regex@10.3.0: {} @@ -9354,8 +9029,6 @@ snapshots: emoji-regex@9.2.2: {} - encodeurl@1.0.2: {} - enhanced-resolve@5.17.0: dependencies: graceful-fs: 4.2.11 @@ -9655,42 +9328,6 @@ snapshots: exit-hook@2.2.1: {} - express@4.19.2: - dependencies: - accepts: 1.3.8 - array-flatten: 1.1.1 - body-parser: 1.20.2 - content-disposition: 0.5.4 - content-type: 1.0.5 - cookie: 0.6.0 - cookie-signature: 1.0.6 - debug: 2.6.9 - depd: 2.0.0 - encodeurl: 1.0.2 - escape-html: 1.0.3 - etag: 1.8.1 - finalhandler: 1.2.0 - fresh: 0.5.2 - http-errors: 2.0.0 - merge-descriptors: 1.0.1 - methods: 1.1.2 - on-finished: 2.4.1 - parseurl: 1.3.3 - path-to-regexp: 0.1.7 - proxy-addr: 2.0.7 - qs: 6.11.0 - range-parser: 1.2.1 - safe-buffer: 5.2.1 - send: 0.18.0 - serve-static: 1.15.0 - setprototypeof: 1.2.0 - statuses: 2.0.1 - type-is: 1.6.18 - utils-merge: 1.0.1 - vary: 1.1.2 - transitivePeerDependencies: - - supports-color - ext@1.6.0: dependencies: type: 2.7.2 @@ -9738,18 +9375,6 @@ snapshots: dependencies: to-regex-range: 5.0.1 - finalhandler@1.2.0: - dependencies: - debug: 2.6.9 - encodeurl: 1.0.2 - escape-html: 1.0.3 - on-finished: 2.4.1 - parseurl: 1.3.3 - statuses: 2.0.1 - unpipe: 1.0.0 - transitivePeerDependencies: - - supports-color - find-up-simple@1.0.0: {} find-up@5.0.0: @@ -9793,12 +9418,8 @@ snapshots: dependencies: fetch-blob: 3.1.5 - forwarded@0.2.0: {} - fraction.js@4.3.7: {} - fresh@0.5.2: {} - fs-extra@11.2.0: dependencies: graceful-fs: 4.2.11 @@ -9994,14 +9615,6 @@ snapshots: dependencies: lru-cache: 10.4.3 - http-errors@2.0.0: - dependencies: - depd: 2.0.0 - inherits: 2.0.4 - setprototypeof: 1.2.0 - statuses: 2.0.1 - toidentifier: 1.0.1 - http-proxy@1.18.1(patch_hash=qqiqxx62zlcu62nljjmhlvexni)(debug@4.3.5): dependencies: eventemitter3: 4.0.7 @@ -10021,10 +9634,6 @@ snapshots: human-signals@7.0.0: {} - iconv-lite@0.4.24: - dependencies: - safer-buffer: 2.1.2 - iconv-lite@0.6.3: dependencies: safer-buffer: 2.1.2 @@ -10061,8 +9670,6 @@ snapshots: inherits@2.0.4: {} - ipaddr.js@1.9.1: {} - is-binary-path@2.1.0: dependencies: binary-extensions: 2.2.0 @@ -10360,10 +9967,6 @@ snapshots: markdown-table@3.0.3: {} - matchit@1.1.0: - dependencies: - '@arr/every': 1.0.1 - mdast-util-find-and-replace@3.0.1: dependencies: '@types/mdast': 4.0.3 @@ -10477,20 +10080,14 @@ snapshots: dependencies: '@types/mdast': 4.0.3 - media-typer@0.3.0: {} - memorystream@0.3.1: {} meow@13.2.0: {} - merge-descriptors@1.0.1: {} - merge-stream@2.0.0: {} merge2@1.4.1: {} - methods@1.1.2: {} - micromark-core-commonmark@2.0.0: dependencies: decode-named-character-reference: 1.0.2 @@ -10635,7 +10232,8 @@ snapshots: dependencies: mime-db: 1.52.0 - mime@1.6.0: {} + mime@1.6.0: + optional: true mimic-fn@2.1.0: {} @@ -10719,8 +10317,6 @@ snapshots: mrmime@2.0.0: {} - ms@2.0.0: {} - ms@2.1.2: {} ms@2.1.3: {} @@ -10745,8 +10341,6 @@ snapshots: sax: 1.3.0 optional: true - negotiator@0.6.3: {} - neo-async@2.6.2: {} nested-external-cjs@file:playground/ssr-deps/nested-external-cjs: {} @@ -10827,10 +10421,6 @@ snapshots: object-inspect@1.12.3: {} - on-finished@2.4.1: - dependencies: - ee-first: 1.1.1 - once@1.4.0: dependencies: wrappy: 1.0.2 @@ -10888,8 +10478,6 @@ snapshots: dependencies: entities: 4.5.0 - parseurl@1.3.3: {} - path-browserify@1.0.1: {} path-exists@4.0.0: {} @@ -10907,8 +10495,6 @@ snapshots: lru-cache: 10.4.3 minipass: 7.1.2 - path-to-regexp@0.1.7: {} - path-type@4.0.0: {} pathe@1.1.2: {} @@ -10950,10 +10536,10 @@ snapshots: playwright-core@1.45.3: {} - polka@0.5.2: + polka@1.0.0-next.25: dependencies: - '@polka/url': 0.5.0 - trouter: 2.0.1 + '@polka/url': 1.0.0-next.24 + trouter: 4.0.0 postcss-import@15.1.0(postcss@8.4.39): dependencies: @@ -11061,11 +10647,6 @@ snapshots: kleur: 3.0.3 sisteransi: 1.0.5 - proxy-addr@2.0.7: - dependencies: - forwarded: 0.2.0 - ipaddr.js: 1.9.1 - proxy-from-env@1.1.0: {} prr@1.0.1: @@ -11148,25 +10729,12 @@ snapshots: punycode@2.3.1: {} - qs@6.11.0: - dependencies: - side-channel: 1.0.4 - qs@6.11.2: dependencies: side-channel: 1.0.4 queue-microtask@1.2.3: {} - range-parser@1.2.1: {} - - raw-body@2.5.2: - dependencies: - bytes: 3.1.2 - http-errors: 2.0.0 - iconv-lite: 0.4.24 - unpipe: 1.0.0 - react-dom@18.3.1(react@18.3.1): dependencies: loose-envify: 1.4.0 @@ -11231,6 +10799,8 @@ snapshots: '@eslint-community/regexpp': 4.11.0 refa: 0.12.1 + regexparam@3.0.0: {} + regexpu-core@5.3.2: dependencies: '@babel/regjsgen': 0.8.0 @@ -11352,7 +10922,8 @@ snapshots: safe-buffer@5.2.1: {} - safer-buffer@2.1.2: {} + safer-buffer@2.1.2: + optional: true sass@1.77.8: dependencies: @@ -11383,37 +10954,8 @@ snapshots: semver@7.6.2: {} - send@0.18.0: - dependencies: - debug: 2.6.9 - depd: 2.0.0 - destroy: 1.2.0 - encodeurl: 1.0.2 - escape-html: 1.0.3 - etag: 1.8.1 - fresh: 0.5.2 - http-errors: 2.0.0 - mime: 1.6.0 - ms: 2.1.3 - on-finished: 2.4.1 - range-parser: 1.2.1 - statuses: 2.0.1 - transitivePeerDependencies: - - supports-color - - serve-static@1.15.0: - dependencies: - encodeurl: 1.0.2 - escape-html: 1.0.3 - parseurl: 1.3.3 - send: 0.18.0 - transitivePeerDependencies: - - supports-color - set-blocking@2.0.0: {} - setprototypeof@1.2.0: {} - shebang-command@2.0.0: dependencies: shebang-regex: 3.0.0 @@ -11526,8 +11068,6 @@ snapshots: as-table: 1.0.55 get-source: 2.0.12 - statuses@2.0.1: {} - std-env@3.7.0: {} stoppable@1.1.0: {} @@ -11697,8 +11237,6 @@ snapshots: dependencies: is-number: 7.0.0 - toidentifier@1.0.1: {} - token-stream@1.0.0: {} totalist@3.0.0: {} @@ -11707,9 +11245,9 @@ snapshots: trim-lines@3.0.1: {} - trouter@2.0.1: + trouter@4.0.0: dependencies: - matchit: 1.1.0 + regexparam: 3.0.0 ts-api-utils@1.3.0(typescript@5.5.3): dependencies: @@ -11773,11 +11311,6 @@ snapshots: type-fest@4.21.0: {} - type-is@1.6.18: - dependencies: - media-typer: 0.3.0 - mime-types: 2.1.35 - type@1.2.0: {} type@2.7.2: {} @@ -11876,8 +11409,6 @@ snapshots: universalify@2.0.1: {} - unpipe@1.0.0: {} - untyped@1.4.0: dependencies: '@babel/core': 7.24.9 @@ -11907,8 +11438,6 @@ snapshots: util-deprecate@1.0.2: {} - utils-merge@1.0.1: {} - v8-compile-cache-lib@3.0.1: {} validate-npm-package-license@3.0.4: