From 0dbd3b69f687417e1c2bde3ae069c23aac8c3eae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=ABl=20Charles?= Date: Wed, 9 Oct 2024 13:56:37 +0200 Subject: [PATCH 01/36] feat: use `universal-middleware` BREAKING CHANGE: cache related options have been removed ```diff app.use( vike({ compress: false, - static: { - cache: false - } }) ) ``` # Conflicts: # packages/vike-node/src/runtime/vike-handler.ts --- examples/express-react-vercel/package.json | 4 +- examples/express-react/package.json | 4 +- examples/hono-react-cf-pages/package.json | 4 +- examples/hono-react-vercel-edge/package.json | 6 +- packages/vike-node/package.json | 13 +- .../vike-node/src/runtime/vike-handler.ts | 34 +- pnpm-lock.yaml | 481 +++++------------- test/vike-node/package.json | 4 +- 8 files changed, 182 insertions(+), 368 deletions(-) diff --git a/examples/express-react-vercel/package.json b/examples/express-react-vercel/package.json index 98305c0..a75b141 100644 --- a/examples/express-react-vercel/package.json +++ b/examples/express-react-vercel/package.json @@ -10,10 +10,10 @@ "express": "^4.19.2", "react": "^18.3.1", "react-dom": "^18.3.1", - "vike": "^0.4.193", + "vike": "^0.4.198", "vike-node": "^0.1.16", "vike-react": "^0.4.18", - "vite": "^5.4.0" + "vite": "^5.4.8" }, "type": "module" } diff --git a/examples/express-react/package.json b/examples/express-react/package.json index 98305c0..a75b141 100644 --- a/examples/express-react/package.json +++ b/examples/express-react/package.json @@ -10,10 +10,10 @@ "express": "^4.19.2", "react": "^18.3.1", "react-dom": "^18.3.1", - "vike": "^0.4.193", + "vike": "^0.4.198", "vike-node": "^0.1.16", "vike-react": "^0.4.18", - "vite": "^5.4.0" + "vite": "^5.4.8" }, "type": "module" } diff --git a/examples/hono-react-cf-pages/package.json b/examples/hono-react-cf-pages/package.json index 22ecc46..3d85c7c 100644 --- a/examples/hono-react-cf-pages/package.json +++ b/examples/hono-react-cf-pages/package.json @@ -12,10 +12,10 @@ "hono": "^4.5.5", "react": "^18.3.1", "react-dom": "^18.3.1", - "vike": "^0.4.193", + "vike": "^0.4.198", "vike-node": "^0.1.16", "vike-react": "^0.4.18", - "vite": "^5.4.0" + "vite": "^5.4.8" }, "type": "module", "devDependencies": { diff --git a/examples/hono-react-vercel-edge/package.json b/examples/hono-react-vercel-edge/package.json index 6fd1529..a56e3f6 100644 --- a/examples/hono-react-vercel-edge/package.json +++ b/examples/hono-react-vercel-edge/package.json @@ -11,13 +11,13 @@ "@hono/node-server": "^1.12.0", "@vitejs/plugin-react": "^4.3.1", "cross-env": "^7.0.3", - "hono": "^4.5.5", + "hono": "^4.6.3", "react": "^18.3.1", "react-dom": "^18.3.1", - "vike": "^0.4.193", + "vike": "^0.4.198", "vike-node": "^0.1.16", "vike-react": "^0.4.18", - "vite": "^5.4.0", + "vite": "^5.4.8", "telefunc": "^0.1.76" }, "type": "module" diff --git a/packages/vike-node/package.json b/packages/vike-node/package.json index 252ed39..4e8a7da 100644 --- a/packages/vike-node/package.json +++ b/packages/vike-node/package.json @@ -34,24 +34,25 @@ "@nitedani/shrink-ray-current": "^4.3.0", "@vercel/nft": "^0.26.5", "esbuild": "^0.21.0 || ^0.22.0 || ^0.23.0", + "resolve-from": "^5.0.0", "sirv": "^2.0.4", - "unenv-nightly": "2.0.0-1721914978.1a79944", - "resolve-from": "^5.0.0" + "unenv-nightly": "2.0.0-1721914978.1a79944" }, "peerDependencies": { - "vike": "^0.4.193", + "vike": "^0.4.198", "vite": "^5.0.10" }, "devDependencies": { "@brillout/release-me": "^0.4.0", "@types/node": "^20.14.15", + "@universal-middleware/core": "^0.2.12", "elysia": "^1.1.6", "fastify": "^4.28.1", "h3": "^1.12.0", - "hono": "^4.5.5", + "hono": "^4.6.3", "typescript": "^5.5.4", - "vike": "^0.4.193", - "vite": "^5.4.0" + "vike": "^0.4.198", + "vite": "^5.4.8" }, "typesVersions": { "*": { diff --git a/packages/vike-node/src/runtime/vike-handler.ts b/packages/vike-node/src/runtime/vike-handler.ts index b2cd64f..e0845b8 100644 --- a/packages/vike-node/src/runtime/vike-handler.ts +++ b/packages/vike-node/src/runtime/vike-handler.ts @@ -2,8 +2,7 @@ export { renderPage, renderPageWeb } import { renderPage as _renderPage } from 'vike/server' import type { VikeHttpResponse, VikeOptions } from './types.js' -import { isVercel } from '../utils/isVercel.js' -import { DUMMY_BASE_URL } from './constants.js' +import type { Get, UniversalHandler } from '@universal-middleware/core' async function renderPage({ url, @@ -16,14 +15,16 @@ async function renderPage({ options: VikeOptions platformRequest: PlatformRequest }): Promise { - async function getPageContext(platformRequest: PlatformRequest): Promise> { - return typeof options.pageContext === 'function' ? options.pageContext(platformRequest) : options.pageContext ?? {} + async function getPageContext(platformRequest: PlatformRequest): Record | Promise> { + return typeof options.pageContext === 'function' + ? options.pageContext(platformRequest) + : (options.pageContext ?? {}) } const pageContext = await _renderPage({ + ...(await getPageContext(platformRequest)), urlOriginal: url, - headersOriginal: headers, - ...(await getPageContext(platformRequest)) + headersOriginal: headers }) if (pageContext.errorWhileRendering) { @@ -51,6 +52,23 @@ async function renderPageWeb({ options }) if (!httpResponse) return undefined - const { statusCode, headers: headersOut, getReadableWebStream } = httpResponse - return new Response(getReadableWebStream(), { status: statusCode, headers: headersOut }) + + const { readable, writable } = new TransformStream() + httpResponse.pipe(writable) + + return new Response(readable, { status: httpResponse.statusCode, headers: httpResponse.headers }) } + +export const renderPageUniversal = (() => async (request, context, runtime) => { + const pageContextInit = { ...context, ...runtime, urlOriginal: request.url, headersOriginal: request.headers } + const pageContext = await _renderPage(pageContextInit) + const response = pageContext.httpResponse + + const { readable, writable } = new TransformStream() + response.pipe(writable) + + return new Response(readable, { + status: response.statusCode, + headers: response.headers + }) +}) satisfies Get<[], UniversalHandler> diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 509a8f7..66413dd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -31,7 +31,7 @@ importers: dependencies: '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.1(vite@5.4.0(@types/node@22.2.0)) + version: 4.3.1(vite@5.4.8(@types/node@22.2.0)) cross-env: specifier: ^7.0.3 version: 7.0.3 @@ -45,23 +45,23 @@ importers: specifier: ^18.3.1 version: 18.3.1(react@18.3.1) vike: - specifier: ^0.4.193 - version: 0.4.193(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.0(@types/node@22.2.0)) + specifier: ^0.4.198 + version: 0.4.198(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.8(@types/node@22.2.0)) vike-node: specifier: link:../../packages/vike-node version: link:../../packages/vike-node vike-react: specifier: ^0.4.18 - version: 0.4.18(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(vike@0.4.193(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.0(@types/node@22.2.0)))(vite@5.4.0(@types/node@22.2.0)) + version: 0.4.18(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(vike@0.4.198(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.8(@types/node@22.2.0)))(vite@5.4.8(@types/node@22.2.0)) vite: - specifier: ^5.4.0 - version: 5.4.0(@types/node@22.2.0) + specifier: ^5.4.8 + version: 5.4.8(@types/node@22.2.0) examples/express-react-vercel: dependencies: '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.1(vite@5.4.0(@types/node@22.2.0)) + version: 4.3.1(vite@5.4.8(@types/node@22.2.0)) cross-env: specifier: ^7.0.3 version: 7.0.3 @@ -75,17 +75,17 @@ importers: specifier: ^18.3.1 version: 18.3.1(react@18.3.1) vike: - specifier: ^0.4.193 - version: 0.4.193(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.0(@types/node@22.2.0)) + specifier: ^0.4.198 + version: 0.4.198(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.8(@types/node@22.2.0)) vike-node: specifier: link:../../packages/vike-node version: link:../../packages/vike-node vike-react: specifier: ^0.4.18 - version: 0.4.18(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(vike@0.4.193(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.0(@types/node@22.2.0)))(vite@5.4.0(@types/node@22.2.0)) + version: 0.4.18(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(vike@0.4.198(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.8(@types/node@22.2.0)))(vite@5.4.8(@types/node@22.2.0)) vite: - specifier: ^5.4.0 - version: 5.4.0(@types/node@22.2.0) + specifier: ^5.4.8 + version: 5.4.8(@types/node@22.2.0) examples/hono-react-cf-pages: dependencies: @@ -94,13 +94,13 @@ importers: version: 1.12.0 '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.1(vite@5.4.0(@types/node@22.2.0)) + version: 4.3.1(vite@5.4.8(@types/node@22.2.0)) cross-env: specifier: ^7.0.3 version: 7.0.3 hono: specifier: ^4.5.5 - version: 4.5.5 + version: 4.6.3 react: specifier: ^18.3.1 version: 18.3.1 @@ -108,17 +108,17 @@ importers: specifier: ^18.3.1 version: 18.3.1(react@18.3.1) vike: - specifier: ^0.4.193 - version: 0.4.193(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.0(@types/node@22.2.0)) + specifier: ^0.4.198 + version: 0.4.198(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.8(@types/node@22.2.0)) vike-node: specifier: link:../../packages/vike-node version: link:../../packages/vike-node vike-react: specifier: ^0.4.18 - version: 0.4.18(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(vike@0.4.193(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.0(@types/node@22.2.0)))(vite@5.4.0(@types/node@22.2.0)) + version: 0.4.18(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(vike@0.4.198(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.8(@types/node@22.2.0)))(vite@5.4.8(@types/node@22.2.0)) vite: - specifier: ^5.4.0 - version: 5.4.0(@types/node@22.2.0) + specifier: ^5.4.8 + version: 5.4.8(@types/node@22.2.0) devDependencies: telefunc: specifier: ^0.1.76 @@ -134,13 +134,13 @@ importers: version: 1.12.0 '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.1(vite@5.4.0(@types/node@22.2.0)) + version: 4.3.1(vite@5.4.8(@types/node@22.2.0)) cross-env: specifier: ^7.0.3 version: 7.0.3 hono: - specifier: ^4.5.5 - version: 4.5.5 + specifier: ^4.6.3 + version: 4.6.3 react: specifier: ^18.3.1 version: 18.3.1 @@ -151,23 +151,23 @@ importers: specifier: ^0.1.76 version: 0.1.76(@babel/core@7.25.2)(@babel/parser@7.25.3)(@babel/types@7.25.2)(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) vike: - specifier: ^0.4.193 - version: 0.4.193(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.0(@types/node@22.2.0)) + specifier: ^0.4.198 + version: 0.4.198(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.8(@types/node@22.2.0)) vike-node: specifier: link:../../packages/vike-node version: link:../../packages/vike-node vike-react: specifier: ^0.4.18 - version: 0.4.18(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(vike@0.4.193(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.0(@types/node@22.2.0)))(vite@5.4.0(@types/node@22.2.0)) + version: 0.4.18(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(vike@0.4.198(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.8(@types/node@22.2.0)))(vite@5.4.8(@types/node@22.2.0)) vite: - specifier: ^5.4.0 - version: 5.4.0(@types/node@22.2.0) + specifier: ^5.4.8 + version: 5.4.8(@types/node@22.2.0) packages/vike-node: dependencies: '@brillout/picocolors': specifier: ^1.0.14 - version: 1.0.14 + version: 1.0.15 '@nitedani/shrink-ray-current': specifier: ^4.3.0 version: 4.3.0 @@ -193,6 +193,9 @@ importers: '@types/node': specifier: ^20.14.15 version: 20.14.15 + '@universal-middleware/core': + specifier: ^0.2.12 + version: 0.2.12 elysia: specifier: ^1.1.6 version: 1.1.6(@sinclair/typebox@0.32.35)(typescript@5.5.4) @@ -203,17 +206,17 @@ importers: specifier: ^1.12.0 version: 1.12.0 hono: - specifier: ^4.5.5 - version: 4.5.5 + specifier: ^4.6.3 + version: 4.6.3 typescript: specifier: ^5.5.4 version: 5.5.4 vike: - specifier: ^0.4.193 - version: 0.4.193(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.0(@types/node@20.14.15)) + specifier: ^0.4.198 + version: 0.4.198(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.8(@types/node@20.14.15)) vite: - specifier: ^5.4.0 - version: 5.4.0(@types/node@20.14.15) + specifier: ^5.4.8 + version: 5.4.8(@types/node@20.14.15) test/vike-node: dependencies: @@ -240,7 +243,7 @@ importers: version: 18.3.0 '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.1(vite@5.4.0(@types/node@20.14.15)) + version: 4.3.1(vite@5.4.8(@types/node@20.14.15)) cross-env: specifier: ^7.0.3 version: 7.0.3 @@ -258,7 +261,7 @@ importers: version: 1.12.0 hono: specifier: ^4.5.5 - version: 4.5.5 + version: 4.6.3 prisma: specifier: ^5.18.0 version: 5.18.0 @@ -278,14 +281,14 @@ importers: specifier: ^5.5.4 version: 5.5.4 vike: - specifier: ^0.4.193 - version: 0.4.193(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.0(@types/node@20.14.15)) + specifier: ^0.4.198 + version: 0.4.198(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.8(@types/node@20.14.15)) vike-node: specifier: link:../../packages/vike-node version: link:../../packages/vike-node vite: - specifier: ^5.4.0 - version: 5.4.0(@types/node@20.14.15) + specifier: ^5.4.8 + version: 5.4.8(@types/node@20.14.15) packages: @@ -442,8 +445,8 @@ packages: '@brillout/part-regex@0.1.3': resolution: {integrity: sha512-ZyqtOYHvQs3Ca0xt9fb2OlGzCrKwXtMcAATDObkFmI4jKuObEORjWrqAslWTelquXlyEYLz7h1nt6jp50LDyJA==} - '@brillout/picocolors@1.0.14': - resolution: {integrity: sha512-XhyZY3/FUh56mDuLIjv5kN9qy+oQj7A/d2uQ6cJJ4uVv55+velua3abcrM5WIvs2RHZGA3EE7S9FWo+TjF10ew==} + '@brillout/picocolors@1.0.15': + resolution: {integrity: sha512-VrgvPtfnKP/i8kxCAyQVd0DWg6xU8OZJndbLf/lrywd96UdMhnGL/PK42HhHhhwkDSkaiQU+zc+OPWpvqOe4Cg==} '@brillout/release-me@0.4.0': resolution: {integrity: sha512-V4YwITguHK3zOy9B4606lc9PQiFDp3p3Ifeq4KF7V8o9fs7OmcrfTWBE0EWFtiLhG2JeKb2RzM0t6Y4tLgXd6w==} @@ -462,11 +465,8 @@ packages: peerDependencies: typescript: '>=4.0.0' - '@brillout/vite-plugin-server-entry@0.4.10': - resolution: {integrity: sha512-Ui9s3VR+Zb3MYHY40HiHazujbnLvF6p1BG3b19u50EgqwkDqmqrW/zt1fBr/+d2+HiplhyjltWjKkuB6qSpoiA==} - - '@brillout/vite-plugin-server-entry@0.4.9': - resolution: {integrity: sha512-ETiWJlljweuxXS/0TBk4eLotZ3ZFC26u7s983z2P9lmDGifZzgj7BCJzgopnDihbl8Y8usKZSLq0grrCivtMSA==} + '@brillout/vite-plugin-server-entry@0.4.13': + resolution: {integrity: sha512-tJQ9AmFGKZdoapoV+BPQ1uhR79raxMFfJ7TVrFAPA1k7aO2/ugGBQ+tglh4XwVeL/bwUtIIeQOyDQyBThJG99A==} '@cloudflare/kv-asset-handler@0.3.4': resolution: {integrity: sha512-YLPHc8yASwjNkmcDMQMY35yiWjoKAKnhUbPRszBRS0YgH+IXtsMp61j+yTcnCE3oO2DgP0U3iejLC8FTtKDC8Q==} @@ -531,12 +531,6 @@ packages: peerDependencies: esbuild: '*' - '@esbuild/aix-ppc64@0.19.12': - resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [aix] - '@esbuild/aix-ppc64@0.21.5': resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} engines: {node: '>=12'} @@ -555,12 +549,6 @@ packages: cpu: [arm64] os: [android] - '@esbuild/android-arm64@0.19.12': - resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - '@esbuild/android-arm64@0.21.5': resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} engines: {node: '>=12'} @@ -579,12 +567,6 @@ packages: cpu: [arm] os: [android] - '@esbuild/android-arm@0.19.12': - resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - '@esbuild/android-arm@0.21.5': resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} engines: {node: '>=12'} @@ -603,12 +585,6 @@ packages: cpu: [x64] os: [android] - '@esbuild/android-x64@0.19.12': - resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - '@esbuild/android-x64@0.21.5': resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} engines: {node: '>=12'} @@ -627,12 +603,6 @@ packages: cpu: [arm64] os: [darwin] - '@esbuild/darwin-arm64@0.19.12': - resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - '@esbuild/darwin-arm64@0.21.5': resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} engines: {node: '>=12'} @@ -651,12 +621,6 @@ packages: cpu: [x64] os: [darwin] - '@esbuild/darwin-x64@0.19.12': - resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - '@esbuild/darwin-x64@0.21.5': resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} engines: {node: '>=12'} @@ -675,12 +639,6 @@ packages: cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-arm64@0.19.12': - resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - '@esbuild/freebsd-arm64@0.21.5': resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} engines: {node: '>=12'} @@ -699,12 +657,6 @@ packages: cpu: [x64] os: [freebsd] - '@esbuild/freebsd-x64@0.19.12': - resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - '@esbuild/freebsd-x64@0.21.5': resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} engines: {node: '>=12'} @@ -723,12 +675,6 @@ packages: cpu: [arm64] os: [linux] - '@esbuild/linux-arm64@0.19.12': - resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - '@esbuild/linux-arm64@0.21.5': resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} engines: {node: '>=12'} @@ -747,12 +693,6 @@ packages: cpu: [arm] os: [linux] - '@esbuild/linux-arm@0.19.12': - resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - '@esbuild/linux-arm@0.21.5': resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} engines: {node: '>=12'} @@ -771,12 +711,6 @@ packages: cpu: [ia32] os: [linux] - '@esbuild/linux-ia32@0.19.12': - resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - '@esbuild/linux-ia32@0.21.5': resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} engines: {node: '>=12'} @@ -795,12 +729,6 @@ packages: cpu: [loong64] os: [linux] - '@esbuild/linux-loong64@0.19.12': - resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - '@esbuild/linux-loong64@0.21.5': resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} engines: {node: '>=12'} @@ -819,12 +747,6 @@ packages: cpu: [mips64el] os: [linux] - '@esbuild/linux-mips64el@0.19.12': - resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - '@esbuild/linux-mips64el@0.21.5': resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} engines: {node: '>=12'} @@ -843,12 +765,6 @@ packages: cpu: [ppc64] os: [linux] - '@esbuild/linux-ppc64@0.19.12': - resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - '@esbuild/linux-ppc64@0.21.5': resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} engines: {node: '>=12'} @@ -867,12 +783,6 @@ packages: cpu: [riscv64] os: [linux] - '@esbuild/linux-riscv64@0.19.12': - resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - '@esbuild/linux-riscv64@0.21.5': resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} engines: {node: '>=12'} @@ -891,12 +801,6 @@ packages: cpu: [s390x] os: [linux] - '@esbuild/linux-s390x@0.19.12': - resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - '@esbuild/linux-s390x@0.21.5': resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} engines: {node: '>=12'} @@ -915,12 +819,6 @@ packages: cpu: [x64] os: [linux] - '@esbuild/linux-x64@0.19.12': - resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - '@esbuild/linux-x64@0.21.5': resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} engines: {node: '>=12'} @@ -939,12 +837,6 @@ packages: cpu: [x64] os: [netbsd] - '@esbuild/netbsd-x64@0.19.12': - resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - '@esbuild/netbsd-x64@0.21.5': resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} engines: {node: '>=12'} @@ -963,12 +855,6 @@ packages: cpu: [x64] os: [openbsd] - '@esbuild/openbsd-x64@0.19.12': - resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - '@esbuild/openbsd-x64@0.21.5': resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} engines: {node: '>=12'} @@ -987,12 +873,6 @@ packages: cpu: [x64] os: [sunos] - '@esbuild/sunos-x64@0.19.12': - resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - '@esbuild/sunos-x64@0.21.5': resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} engines: {node: '>=12'} @@ -1011,12 +891,6 @@ packages: cpu: [arm64] os: [win32] - '@esbuild/win32-arm64@0.19.12': - resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - '@esbuild/win32-arm64@0.21.5': resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} engines: {node: '>=12'} @@ -1035,12 +909,6 @@ packages: cpu: [ia32] os: [win32] - '@esbuild/win32-ia32@0.19.12': - resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - '@esbuild/win32-ia32@0.21.5': resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} engines: {node: '>=12'} @@ -1059,12 +927,6 @@ packages: cpu: [x64] os: [win32] - '@esbuild/win32-x64@0.19.12': - resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - '@esbuild/win32-x64@0.21.5': resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} engines: {node: '>=12'} @@ -1525,6 +1387,9 @@ packages: '@types/serve-static@1.15.7': resolution: {integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==} + '@universal-middleware/core@0.2.12': + resolution: {integrity: sha512-MEb++tGtNO3IASdcTghE6N4p4gOmtQ8H+Zob84IRyqF7/VackoM3/BleswmBgZ3ICnoTx8X3SZbWTsyI8fQK/g==} + '@vercel/nft@0.26.5': resolution: {integrity: sha512-NHxohEqad6Ra/r4lGknO52uc/GrWILXAMs1BB4401GTqww0fw1bAqzpG1XHuDO+dprg4GvsD9ZLLSsdo78p9hQ==} engines: {node: '>=16'} @@ -1987,11 +1852,6 @@ packages: engines: {node: '>=12'} hasBin: true - esbuild@0.19.12: - resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} - engines: {node: '>=12'} - hasBin: true - esbuild@0.21.5: resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} engines: {node: '>=12'} @@ -2208,9 +2068,9 @@ packages: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} - hono@4.5.5: - resolution: {integrity: sha512-fXBXHqaVfimWofbelLXci8pZyIwBMkDIwCa4OwZvK+xVbEyYLELVP4DfbGaj1aEM6ZY3hHgs4qLvCO2ChkhgQw==} - engines: {node: '>=16.0.0'} + hono@4.6.3: + resolution: {integrity: sha512-0LeEuBNFeSHGqZ9sNVVgZjB1V5fmhkBSB0hZrpqStSMLOWgfLy0dHOvrjbJh0H2khsjet6rbHfWTHY0kpYThKQ==} + engines: {node: '>=16.9.0'} hosted-git-info@7.0.2: resolution: {integrity: sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==} @@ -2607,8 +2467,8 @@ packages: pathval@1.1.1: resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} - picocolors@1.0.1: - resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} + picocolors@1.1.0: + resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==} picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} @@ -2647,8 +2507,8 @@ packages: resolution: {integrity: sha512-TRzzuFRRmEoSW/p1KVAmiOgPco2Irlah+bGFCeNfJXxxYGwSw7YwAOAcd7X28K/m5bjBWKsC29KyoMfHbypayg==} engines: {node: '>=12.13.0'} - postcss@8.4.41: - resolution: {integrity: sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==} + postcss@8.4.47: + resolution: {integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==} engines: {node: ^10 || ^12 || >=14} prettier@3.3.3: @@ -2748,6 +2608,10 @@ packages: resolution: {integrity: sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==} engines: {node: '>= 12.13.0'} + regexparam@3.0.0: + resolution: {integrity: sha512-RSYAtP31mvYLkAHrOlh25pCNQ5hWnT106VukGaaFfuJrZFkGRX5GhUAdPqpSDXxOhA2c4akmRuplv1mRqnBn6Q==} + engines: {node: '>=8'} + require-from-string@2.0.2: resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} engines: {node: '>=0.10.0'} @@ -2883,8 +2747,8 @@ packages: sonic-boom@4.0.1: resolution: {integrity: sha512-hTSD/6JMLyT4r9zeof6UtuBDpjJ9sO08/nmS5djaA9eozT9oOlNdpXSnzcgj4FTqpk3nkLrs61l4gip9r1HCrQ==} - source-map-js@1.2.0: - resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} source-map-support@0.5.21: @@ -2990,6 +2854,13 @@ packages: through@2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + tldts-core@6.1.50: + resolution: {integrity: sha512-na2EcZqmdA2iV9zHV7OHQDxxdciEpxrjbkp+aHmZgnZKHzoElLajP59np5/4+sare9fQBfixgvXKx8ev1d7ytw==} + + tldts@6.1.50: + resolution: {integrity: sha512-q9GOap6q3KCsLMdOjXhWU5jVZ8/1dIib898JBRLsN+tBhENpBDcAVQbE0epADOjw11FhQQy9AcbqKGBQPUfTQA==} + hasBin: true + to-fast-properties@2.0.0: resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} engines: {node: '>=4'} @@ -3010,6 +2881,10 @@ packages: resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} engines: {node: '>=6'} + tough-cookie@5.0.0: + resolution: {integrity: sha512-FRKsF7cz96xIIeMZ82ehjC3xW2E+O2+v11udrDYewUbszngYhsGa8z6YUMMzO9QJZzzyd0nGGXnML/TReX6W8Q==} + engines: {node: '>=16'} + tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} @@ -3102,8 +2977,8 @@ packages: vike: '>=0.4.178' vite: '>=4.3.8' - vike@0.4.193: - resolution: {integrity: sha512-nrqSXfocmm10asmoYrczO9iO4aZZ9SNygbpDTn0emmOPUFxROW3MUd8XcuBWJh6QVUTN4KiZYZDZGBMgPfhdbg==} + vike@0.4.198: + resolution: {integrity: sha512-+81aEkVL9Ruroxl5X1UcYAoGX0yiPx+8b9tgvuGbyNduvufF6FLDFxxRqd1G0+eaofit6xsbChG9uid4plMpog==} engines: {node: '>=18.0.0'} hasBin: true peerDependencies: @@ -3113,8 +2988,8 @@ packages: react-streaming: optional: true - vite@5.4.0: - resolution: {integrity: sha512-5xokfMX0PIiwCMCMb9ZJcMyh5wbBun0zUzKib+L65vAZ8GY9ePZMXxFrHbr/Kyll2+LSCY7xtERPpxkBDKngwg==} + vite@5.4.8: + resolution: {integrity: sha512-FqrItQ4DT1NC4zCUqMB4c4AZORMKIa0m8/URVCZ77OZ/QSNeJ54bU1vrFADbDsuwfIPcgknRkmqakQcgnL4GiQ==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -3220,7 +3095,7 @@ snapshots: '@babel/code-frame@7.24.7': dependencies: '@babel/highlight': 7.24.7 - picocolors: 1.0.1 + picocolors: 1.1.0 '@babel/compat-data@7.25.2': {} @@ -3301,7 +3176,7 @@ snapshots: '@babel/helper-validator-identifier': 7.24.7 chalk: 2.4.2 js-tokens: 4.0.0 - picocolors: 1.0.1 + picocolors: 1.1.0 '@babel/parser@7.25.3': dependencies: @@ -3382,11 +3257,11 @@ snapshots: '@brillout/part-regex@0.1.3': {} - '@brillout/picocolors@1.0.14': {} + '@brillout/picocolors@1.0.15': {} '@brillout/release-me@0.4.0': dependencies: - '@brillout/picocolors': 1.0.14 + '@brillout/picocolors': 1.0.15 commander: 11.1.0 conventional-changelog: 5.1.0 execa: 5.1.1 @@ -3397,7 +3272,7 @@ snapshots: '@brillout/test-e2e@0.5.33': dependencies: '@brillout/part-regex': 0.1.3 - '@brillout/picocolors': 1.0.14 + '@brillout/picocolors': 1.0.15 chai: 4.5.0 esbuild: 0.16.17 fast-glob: 3.3.2 @@ -3412,16 +3287,12 @@ snapshots: '@brillout/test-types@0.1.15(typescript@5.5.4)': dependencies: - '@brillout/picocolors': 1.0.14 + '@brillout/picocolors': 1.0.15 fast-glob: 3.3.2 source-map-support: 0.5.21 typescript: 5.5.4 - '@brillout/vite-plugin-server-entry@0.4.10': - dependencies: - '@brillout/import': 0.2.3 - - '@brillout/vite-plugin-server-entry@0.4.9': + '@brillout/vite-plugin-server-entry@0.4.13': dependencies: '@brillout/import': 0.2.3 @@ -3479,9 +3350,6 @@ snapshots: escape-string-regexp: 4.0.0 rollup-plugin-node-polyfills: 0.2.1 - '@esbuild/aix-ppc64@0.19.12': - optional: true - '@esbuild/aix-ppc64@0.21.5': optional: true @@ -3491,9 +3359,6 @@ snapshots: '@esbuild/android-arm64@0.17.19': optional: true - '@esbuild/android-arm64@0.19.12': - optional: true - '@esbuild/android-arm64@0.21.5': optional: true @@ -3503,9 +3368,6 @@ snapshots: '@esbuild/android-arm@0.17.19': optional: true - '@esbuild/android-arm@0.19.12': - optional: true - '@esbuild/android-arm@0.21.5': optional: true @@ -3515,9 +3377,6 @@ snapshots: '@esbuild/android-x64@0.17.19': optional: true - '@esbuild/android-x64@0.19.12': - optional: true - '@esbuild/android-x64@0.21.5': optional: true @@ -3527,9 +3386,6 @@ snapshots: '@esbuild/darwin-arm64@0.17.19': optional: true - '@esbuild/darwin-arm64@0.19.12': - optional: true - '@esbuild/darwin-arm64@0.21.5': optional: true @@ -3539,9 +3395,6 @@ snapshots: '@esbuild/darwin-x64@0.17.19': optional: true - '@esbuild/darwin-x64@0.19.12': - optional: true - '@esbuild/darwin-x64@0.21.5': optional: true @@ -3551,9 +3404,6 @@ snapshots: '@esbuild/freebsd-arm64@0.17.19': optional: true - '@esbuild/freebsd-arm64@0.19.12': - optional: true - '@esbuild/freebsd-arm64@0.21.5': optional: true @@ -3563,9 +3413,6 @@ snapshots: '@esbuild/freebsd-x64@0.17.19': optional: true - '@esbuild/freebsd-x64@0.19.12': - optional: true - '@esbuild/freebsd-x64@0.21.5': optional: true @@ -3575,9 +3422,6 @@ snapshots: '@esbuild/linux-arm64@0.17.19': optional: true - '@esbuild/linux-arm64@0.19.12': - optional: true - '@esbuild/linux-arm64@0.21.5': optional: true @@ -3587,9 +3431,6 @@ snapshots: '@esbuild/linux-arm@0.17.19': optional: true - '@esbuild/linux-arm@0.19.12': - optional: true - '@esbuild/linux-arm@0.21.5': optional: true @@ -3599,9 +3440,6 @@ snapshots: '@esbuild/linux-ia32@0.17.19': optional: true - '@esbuild/linux-ia32@0.19.12': - optional: true - '@esbuild/linux-ia32@0.21.5': optional: true @@ -3611,9 +3449,6 @@ snapshots: '@esbuild/linux-loong64@0.17.19': optional: true - '@esbuild/linux-loong64@0.19.12': - optional: true - '@esbuild/linux-loong64@0.21.5': optional: true @@ -3623,9 +3458,6 @@ snapshots: '@esbuild/linux-mips64el@0.17.19': optional: true - '@esbuild/linux-mips64el@0.19.12': - optional: true - '@esbuild/linux-mips64el@0.21.5': optional: true @@ -3635,9 +3467,6 @@ snapshots: '@esbuild/linux-ppc64@0.17.19': optional: true - '@esbuild/linux-ppc64@0.19.12': - optional: true - '@esbuild/linux-ppc64@0.21.5': optional: true @@ -3647,9 +3476,6 @@ snapshots: '@esbuild/linux-riscv64@0.17.19': optional: true - '@esbuild/linux-riscv64@0.19.12': - optional: true - '@esbuild/linux-riscv64@0.21.5': optional: true @@ -3659,9 +3485,6 @@ snapshots: '@esbuild/linux-s390x@0.17.19': optional: true - '@esbuild/linux-s390x@0.19.12': - optional: true - '@esbuild/linux-s390x@0.21.5': optional: true @@ -3671,9 +3494,6 @@ snapshots: '@esbuild/linux-x64@0.17.19': optional: true - '@esbuild/linux-x64@0.19.12': - optional: true - '@esbuild/linux-x64@0.21.5': optional: true @@ -3683,9 +3503,6 @@ snapshots: '@esbuild/netbsd-x64@0.17.19': optional: true - '@esbuild/netbsd-x64@0.19.12': - optional: true - '@esbuild/netbsd-x64@0.21.5': optional: true @@ -3695,9 +3512,6 @@ snapshots: '@esbuild/openbsd-x64@0.17.19': optional: true - '@esbuild/openbsd-x64@0.19.12': - optional: true - '@esbuild/openbsd-x64@0.21.5': optional: true @@ -3707,9 +3521,6 @@ snapshots: '@esbuild/sunos-x64@0.17.19': optional: true - '@esbuild/sunos-x64@0.19.12': - optional: true - '@esbuild/sunos-x64@0.21.5': optional: true @@ -3719,9 +3530,6 @@ snapshots: '@esbuild/win32-arm64@0.17.19': optional: true - '@esbuild/win32-arm64@0.19.12': - optional: true - '@esbuild/win32-arm64@0.21.5': optional: true @@ -3731,9 +3539,6 @@ snapshots: '@esbuild/win32-ia32@0.17.19': optional: true - '@esbuild/win32-ia32@0.19.12': - optional: true - '@esbuild/win32-ia32@0.21.5': optional: true @@ -3743,9 +3548,6 @@ snapshots: '@esbuild/win32-x64@0.17.19': optional: true - '@esbuild/win32-x64@0.19.12': - optional: true - '@esbuild/win32-x64@0.21.5': optional: true @@ -4123,7 +3925,7 @@ snapshots: '@types/node-forge@1.3.11': dependencies: - '@types/node': 22.2.0 + '@types/node': 20.14.15 '@types/node@20.14.15': dependencies: @@ -4132,6 +3934,7 @@ snapshots: '@types/node@22.2.0': dependencies: undici-types: 6.13.0 + optional: true '@types/normalize-package-data@2.4.4': {} @@ -4161,6 +3964,11 @@ snapshots: '@types/node': 20.14.15 '@types/send': 0.17.4 + '@universal-middleware/core@0.2.12': + dependencies: + regexparam: 3.0.0 + tough-cookie: 5.0.0 + '@vercel/nft@0.26.5': dependencies: '@mapbox/node-pre-gyp': 1.0.11 @@ -4179,25 +3987,25 @@ snapshots: - encoding - supports-color - '@vitejs/plugin-react@4.3.1(vite@5.4.0(@types/node@20.14.15))': + '@vitejs/plugin-react@4.3.1(vite@5.4.8(@types/node@20.14.15))': dependencies: '@babel/core': 7.25.2 '@babel/plugin-transform-react-jsx-self': 7.24.7(@babel/core@7.25.2) '@babel/plugin-transform-react-jsx-source': 7.24.7(@babel/core@7.25.2) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 - vite: 5.4.0(@types/node@20.14.15) + vite: 5.4.8(@types/node@20.14.15) transitivePeerDependencies: - supports-color - '@vitejs/plugin-react@4.3.1(vite@5.4.0(@types/node@22.2.0))': + '@vitejs/plugin-react@4.3.1(vite@5.4.8(@types/node@22.2.0))': dependencies: '@babel/core': 7.25.2 '@babel/plugin-transform-react-jsx-self': 7.24.7(@babel/core@7.25.2) '@babel/plugin-transform-react-jsx-source': 7.24.7(@babel/core@7.25.2) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 - vite: 5.4.0(@types/node@22.2.0) + vite: 5.4.8(@types/node@22.2.0) transitivePeerDependencies: - supports-color @@ -4670,32 +4478,6 @@ snapshots: '@esbuild/win32-ia32': 0.17.19 '@esbuild/win32-x64': 0.17.19 - esbuild@0.19.12: - optionalDependencies: - '@esbuild/aix-ppc64': 0.19.12 - '@esbuild/android-arm': 0.19.12 - '@esbuild/android-arm64': 0.19.12 - '@esbuild/android-x64': 0.19.12 - '@esbuild/darwin-arm64': 0.19.12 - '@esbuild/darwin-x64': 0.19.12 - '@esbuild/freebsd-arm64': 0.19.12 - '@esbuild/freebsd-x64': 0.19.12 - '@esbuild/linux-arm': 0.19.12 - '@esbuild/linux-arm64': 0.19.12 - '@esbuild/linux-ia32': 0.19.12 - '@esbuild/linux-loong64': 0.19.12 - '@esbuild/linux-mips64el': 0.19.12 - '@esbuild/linux-ppc64': 0.19.12 - '@esbuild/linux-riscv64': 0.19.12 - '@esbuild/linux-s390x': 0.19.12 - '@esbuild/linux-x64': 0.19.12 - '@esbuild/netbsd-x64': 0.19.12 - '@esbuild/openbsd-x64': 0.19.12 - '@esbuild/sunos-x64': 0.19.12 - '@esbuild/win32-arm64': 0.19.12 - '@esbuild/win32-ia32': 0.19.12 - '@esbuild/win32-x64': 0.19.12 - esbuild@0.21.5: optionalDependencies: '@esbuild/aix-ppc64': 0.21.5 @@ -4999,7 +4781,7 @@ snapshots: dependencies: function-bind: 1.1.2 - hono@4.5.5: {} + hono@4.6.3: {} hosted-git-info@7.0.2: dependencies: @@ -5318,7 +5100,7 @@ snapshots: pathval@1.1.1: {} - picocolors@1.0.1: {} + picocolors@1.1.0: {} picomatch@2.3.1: {} @@ -5361,11 +5143,11 @@ snapshots: pngjs@6.0.0: {} - postcss@8.4.41: + postcss@8.4.47: dependencies: nanoid: 3.3.7 - picocolors: 1.0.1 - source-map-js: 1.2.0 + picocolors: 1.1.0 + source-map-js: 1.2.1 prettier@3.3.3: {} @@ -5419,7 +5201,7 @@ snapshots: dependencies: '@brillout/import': 0.2.3 '@brillout/json-serializer': 0.5.13 - '@brillout/picocolors': 1.0.14 + '@brillout/picocolors': 1.0.15 isbot-fast: 1.2.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -5471,6 +5253,8 @@ snapshots: real-require@0.2.0: {} + regexparam@3.0.0: {} + require-from-string@2.0.2: {} resolve-from@5.0.0: {} @@ -5657,7 +5441,7 @@ snapshots: dependencies: atomic-sleep: 1.0.0 - source-map-js@1.2.0: {} + source-map-js@1.2.1: {} source-map-support@0.5.21: dependencies: @@ -5734,10 +5518,10 @@ snapshots: dependencies: '@brillout/import': 0.2.3 '@brillout/json-serializer': 0.5.13 - '@brillout/picocolors': 1.0.14 - '@brillout/vite-plugin-server-entry': 0.4.9 + '@brillout/picocolors': 1.0.15 + '@brillout/vite-plugin-server-entry': 0.4.13 es-module-lexer: 0.7.1 - picocolors: 1.0.1 + picocolors: 1.1.0 ts-morph: 19.0.0 optionalDependencies: '@babel/core': 7.25.2 @@ -5754,6 +5538,12 @@ snapshots: through@2.3.8: {} + tldts-core@6.1.50: {} + + tldts@6.1.50: + dependencies: + tldts-core: 6.1.50 + to-fast-properties@2.0.0: {} to-regex-range@5.0.1: @@ -5766,6 +5556,10 @@ snapshots: totalist@3.0.1: {} + tough-cookie@5.0.0: + dependencies: + tldts: 6.1.50 + tr46@0.0.3: {} ts-morph@19.0.0: @@ -5797,7 +5591,8 @@ snapshots: undici-types@5.26.5: {} - undici-types@6.13.0: {} + undici-types@6.13.0: + optional: true undici@5.28.4: dependencies: @@ -5833,7 +5628,7 @@ snapshots: dependencies: browserslist: 4.23.3 escalade: 3.1.2 - picocolors: 1.0.1 + picocolors: 1.1.0 util-deprecate@1.0.2: {} @@ -5846,65 +5641,65 @@ snapshots: vary@1.1.2: {} - vike-react@0.4.18(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(vike@0.4.193(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.0(@types/node@22.2.0)))(vite@5.4.0(@types/node@22.2.0)): + vike-react@0.4.18(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(vike@0.4.198(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.8(@types/node@22.2.0)))(vite@5.4.8(@types/node@22.2.0)): dependencies: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) react-streaming: 0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - vike: 0.4.193(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.0(@types/node@22.2.0)) - vite: 5.4.0(@types/node@22.2.0) + vike: 0.4.198(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.8(@types/node@22.2.0)) + vite: 5.4.8(@types/node@22.2.0) - vike@0.4.193(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.0(@types/node@20.14.15)): + vike@0.4.198(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.8(@types/node@20.14.15)): dependencies: '@brillout/import': 0.2.3 '@brillout/json-serializer': 0.5.13 - '@brillout/picocolors': 1.0.14 + '@brillout/picocolors': 1.0.15 '@brillout/require-shim': 0.1.2 - '@brillout/vite-plugin-server-entry': 0.4.10 + '@brillout/vite-plugin-server-entry': 0.4.13 acorn: 8.12.1 cac: 6.7.14 es-module-lexer: 1.5.4 - esbuild: 0.19.12 + esbuild: 0.21.5 fast-glob: 3.3.2 semver: 7.6.3 sirv: 2.0.4 source-map-support: 0.5.21 - vite: 5.4.0(@types/node@20.14.15) + vite: 5.4.8(@types/node@20.14.15) optionalDependencies: react-streaming: 0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - vike@0.4.193(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.0(@types/node@22.2.0)): + vike@0.4.198(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.8(@types/node@22.2.0)): dependencies: '@brillout/import': 0.2.3 '@brillout/json-serializer': 0.5.13 - '@brillout/picocolors': 1.0.14 + '@brillout/picocolors': 1.0.15 '@brillout/require-shim': 0.1.2 - '@brillout/vite-plugin-server-entry': 0.4.10 + '@brillout/vite-plugin-server-entry': 0.4.13 acorn: 8.12.1 cac: 6.7.14 es-module-lexer: 1.5.4 - esbuild: 0.19.12 + esbuild: 0.21.5 fast-glob: 3.3.2 semver: 7.6.3 sirv: 2.0.4 source-map-support: 0.5.21 - vite: 5.4.0(@types/node@22.2.0) + vite: 5.4.8(@types/node@22.2.0) optionalDependencies: react-streaming: 0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - vite@5.4.0(@types/node@20.14.15): + vite@5.4.8(@types/node@20.14.15): dependencies: esbuild: 0.21.5 - postcss: 8.4.41 + postcss: 8.4.47 rollup: 4.20.0 optionalDependencies: '@types/node': 20.14.15 fsevents: 2.3.3 - vite@5.4.0(@types/node@22.2.0): + vite@5.4.8(@types/node@22.2.0): dependencies: esbuild: 0.21.5 - postcss: 8.4.41 + postcss: 8.4.47 rollup: 4.20.0 optionalDependencies: '@types/node': 22.2.0 diff --git a/test/vike-node/package.json b/test/vike-node/package.json index 6293aff..881bf20 100644 --- a/test/vike-node/package.json +++ b/test/vike-node/package.json @@ -26,9 +26,9 @@ "sharp": "^0.33.4", "telefunc": "^0.1.76", "typescript": "^5.5.4", - "vike": "^0.4.193", + "vike": "^0.4.198", "vike-node": "link:../../packages/vike-node", - "vite": "^5.4.0" + "vite": "^5.4.8" }, "type": "module" } From 2ac238ca99467da383c1257275e96ed2d0e5ef19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=ABl=20Charles?= Date: Wed, 9 Oct 2024 15:02:01 +0200 Subject: [PATCH 02/36] tests: plug universal-middleware --- examples/express-react-vercel/package.json | 2 +- examples/express-react/package.json | 2 +- package.json | 3 +- packages/vike-node/package.json | 81 +- .../src/runtime/frameworks/connect.ts | 2 +- .../src/runtime/frameworks/elysia.ts | 2 +- .../src/runtime/frameworks/fastify.ts | 2 +- .../vike-node/src/runtime/frameworks/h3.ts | 2 +- .../vike-node/src/runtime/frameworks/hono.ts | 2 +- .../src/runtime/handler-node-only.ts | 3 +- .../src/runtime/handler-web-and-node.ts | 2 +- .../vike-node/src/runtime/handler-web-only.ts | 2 +- packages/vike-node/src/runtime/types.ts | 4 +- .../vike-node/src/runtime/vike-handler.ts | 35 +- packages/vike-node/src/vike.handler.ts | 3 + packages/vike-node/tsup.config.js | 37 + pnpm-lock.yaml | 1499 ++++++++++------- test/vike-node/package.json | 2 +- test/vike-node/server/index-elysia.ts | 2 +- test/vike-node/server/index-express.ts | 2 +- test/vike-node/server/index-fastify.ts | 4 +- 21 files changed, 1010 insertions(+), 683 deletions(-) create mode 100644 packages/vike-node/src/vike.handler.ts create mode 100644 packages/vike-node/tsup.config.js diff --git a/examples/express-react-vercel/package.json b/examples/express-react-vercel/package.json index a75b141..cc16631 100644 --- a/examples/express-react-vercel/package.json +++ b/examples/express-react-vercel/package.json @@ -7,7 +7,7 @@ "dependencies": { "@vitejs/plugin-react": "^4.3.1", "cross-env": "^7.0.3", - "express": "^4.19.2", + "express": "^4.21.1", "react": "^18.3.1", "react-dom": "^18.3.1", "vike": "^0.4.198", diff --git a/examples/express-react/package.json b/examples/express-react/package.json index a75b141..cc16631 100644 --- a/examples/express-react/package.json +++ b/examples/express-react/package.json @@ -7,7 +7,7 @@ "dependencies": { "@vitejs/plugin-react": "^4.3.1", "cross-env": "^7.0.3", - "express": "^4.19.2", + "express": "^4.21.1", "react": "^18.3.1", "react-dom": "^18.3.1", "vike": "^0.4.198", diff --git a/package.json b/package.json index 00451ca..f32ae75 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,8 @@ }, "pnpm": { "overrides": { - "vike-node": "link:./packages/vike-node/" + "vike-node": "link:./packages/vike-node/", + "esbuild": "^0.24.0" } }, "packageManager": "pnpm@9.2.0" diff --git a/packages/vike-node/package.json b/packages/vike-node/package.json index 4e8a7da..401d9f1 100644 --- a/packages/vike-node/package.json +++ b/packages/vike-node/package.json @@ -5,11 +5,6 @@ "main": "./dist/index.js", "types": "./dist/index.d.ts", "exports": { - "./connect": "./dist/connect.js", - "./fastify": "./dist/fastify.js", - "./h3": "./dist/h3.js", - "./hono": "./dist/hono.js", - "./elysia": "./dist/elysia.js", "./plugin": "./dist/plugin/index.js", ".": "./dist/index.js", "./__handler": { @@ -18,13 +13,63 @@ "worker": "./dist/runtime/handler-web-only.js", "workerd": "./dist/runtime/handler-web-only.js", "browser": "./dist/runtime/handler-web-only.js", - "default": "./dist/runtime/handler-web-and-node.js", - "types": "./dist/runtime/handler-web-only.d.ts" + "types": "./dist/runtime/handler-web-only.d.ts", + "default": "./dist/runtime/handler-web-and-node.js" + }, + "./handler": { + "types": "./dist/handler.d.ts", + "import": "./dist/handler.js", + "default": "./dist/handler.js" + }, + "./hono": { + "types": "./dist/universal-hono-handler-vike.handler.d.ts", + "import": "./dist/universal-hono-handler-vike.handler.js", + "default": "./dist/universal-hono-handler-vike.handler.js" + }, + "./express": { + "types": "./dist/universal-express-handler-vike.handler.d.ts", + "import": "./dist/universal-express-handler-vike.handler.js", + "default": "./dist/universal-express-handler-vike.handler.js" + }, + "./hattip": { + "types": "./dist/universal-hattip-handler-vike.handler.d.ts", + "import": "./dist/universal-hattip-handler-vike.handler.js", + "default": "./dist/universal-hattip-handler-vike.handler.js" + }, + "./webroute": { + "types": "./dist/universal-webroute-handler-vike.handler.d.ts", + "import": "./dist/universal-webroute-handler-vike.handler.js", + "default": "./dist/universal-webroute-handler-vike.handler.js" + }, + "./fastify": { + "types": "./dist/universal-fastify-handler-vike.handler.d.ts", + "import": "./dist/universal-fastify-handler-vike.handler.js", + "default": "./dist/universal-fastify-handler-vike.handler.js" + }, + "./h3": { + "types": "./dist/universal-h3-handler-vike.handler.d.ts", + "import": "./dist/universal-h3-handler-vike.handler.js", + "default": "./dist/universal-h3-handler-vike.handler.js" + }, + "./cloudflare-worker": { + "types": "./dist/universal-cloudflare-worker-handler-vike.handler.d.ts", + "import": "./dist/universal-cloudflare-worker-handler-vike.handler.js", + "default": "./dist/universal-cloudflare-worker-handler-vike.handler.js" + }, + "./cloudflare-pages": { + "types": "./dist/universal-cloudflare-pages-handler-vike.handler.d.ts", + "import": "./dist/universal-cloudflare-pages-handler-vike.handler.js", + "default": "./dist/universal-cloudflare-pages-handler-vike.handler.js" + }, + "./elysia": { + "types": "./dist/universal-elysia-handler-vike.handler.d.ts", + "import": "./dist/universal-elysia-handler-vike.handler.js", + "default": "./dist/universal-elysia-handler-vike.handler.js" } }, "scripts": { "dev": "tsc --watch", - "build": "rm -rf dist/ && tsc", + "build": "rm -rf dist && tsup", "release": "release-me patch", "release:minor": "release-me minor", "release:commit": "release-me commit" @@ -33,7 +78,7 @@ "@brillout/picocolors": "^1.0.14", "@nitedani/shrink-ray-current": "^4.3.0", "@vercel/nft": "^0.26.5", - "esbuild": "^0.21.0 || ^0.22.0 || ^0.23.0", + "esbuild": "^0.24.0", "resolve-from": "^5.0.0", "sirv": "^2.0.4", "unenv-nightly": "2.0.0-1721914978.1a79944" @@ -45,12 +90,14 @@ "devDependencies": { "@brillout/release-me": "^0.4.0", "@types/node": "^20.14.15", - "@universal-middleware/core": "^0.2.12", + "@universal-middleware/core": "^0.2.13", "elysia": "^1.1.6", "fastify": "^4.28.1", "h3": "^1.12.0", "hono": "^4.6.3", + "tsup": "^8.3.0", "typescript": "^5.5.4", + "universal-middleware": "^0.3.7", "vike": "^0.4.198", "vite": "^5.4.8" }, @@ -83,5 +130,15 @@ "dist/" ], "repository": "github:vikejs/vike-node", - "license": "MIT" -} + "license": "MIT", + "optionalDependencies": { + "@universal-middleware/hono": "^0", + "@universal-middleware/express": "^0", + "@universal-middleware/hattip": "^0", + "@universal-middleware/webroute": "^0", + "@universal-middleware/fastify": "^0", + "@universal-middleware/h3": "^0", + "@universal-middleware/cloudflare": "^0", + "@universal-middleware/elysia": "^0" + } +} \ No newline at end of file diff --git a/packages/vike-node/src/runtime/frameworks/connect.ts b/packages/vike-node/src/runtime/frameworks/connect.ts index 336dd75..19f0927 100644 --- a/packages/vike-node/src/runtime/frameworks/connect.ts +++ b/packages/vike-node/src/runtime/frameworks/connect.ts @@ -30,7 +30,7 @@ import { globalStore } from '../globalStore.js' * */ function vike( - options?: VikeOptions + options?: VikeOptions ): (req: PlatformRequest, res: PlatformResponse, next?: NextFunction) => void { const handler = createHandler(options) return (req, res, next) => { diff --git a/packages/vike-node/src/runtime/frameworks/elysia.ts b/packages/vike-node/src/runtime/frameworks/elysia.ts index 0b13a7c..a189dda 100644 --- a/packages/vike-node/src/runtime/frameworks/elysia.ts +++ b/packages/vike-node/src/runtime/frameworks/elysia.ts @@ -28,7 +28,7 @@ import type { VikeOptions } from '../types.js' * * @throws {NotFoundError} Thrown when Vike doesn't handle the request, allowing Elysia to manage 404 responses. */ -function vike(options?: VikeOptions): Elysia { +function vike(options?: VikeOptions): Elysia { const handler = createHandler(options) return new Elysia({ name: 'vike-node:elysia' diff --git a/packages/vike-node/src/runtime/frameworks/fastify.ts b/packages/vike-node/src/runtime/frameworks/fastify.ts index 43c4aef..ec8333d 100644 --- a/packages/vike-node/src/runtime/frameworks/fastify.ts +++ b/packages/vike-node/src/runtime/frameworks/fastify.ts @@ -30,7 +30,7 @@ import type { VikeOptions } from '../types.js' * ``` * */ -function vike(options?: VikeOptions): FastifyPluginCallback { +function vike(options?: VikeOptions): FastifyPluginCallback { const handler = createHandler(options) return function plugin(instance, _options, done) { instance.get('*', async (req, reply) => { diff --git a/packages/vike-node/src/runtime/frameworks/h3.ts b/packages/vike-node/src/runtime/frameworks/h3.ts index 9b53145..0c60e88 100644 --- a/packages/vike-node/src/runtime/frameworks/h3.ts +++ b/packages/vike-node/src/runtime/frameworks/h3.ts @@ -33,7 +33,7 @@ import type { VikeOptions } from '../types.js' * - This handler directly uses Node.js' IncomingMessage and ServerResponse objects from the h3 event. * */ -function vike(options?: VikeOptions): EventHandler { +function vike(options?: VikeOptions): EventHandler { const handler = createHandler(options) return eventHandler(async (event) => { const { diff --git a/packages/vike-node/src/runtime/frameworks/hono.ts b/packages/vike-node/src/runtime/frameworks/hono.ts index f190e44..b4355c3 100644 --- a/packages/vike-node/src/runtime/frameworks/hono.ts +++ b/packages/vike-node/src/runtime/frameworks/hono.ts @@ -31,7 +31,7 @@ import type { VikeOptions } from '../types.js' * ``` * */ -function vike(options?: VikeOptions): MiddlewareHandler { +function vike(options?: VikeOptions): MiddlewareHandler { let handler: ReturnType> | undefined = undefined return async function middleware(ctx, next) { if (ctx.env.incoming) { diff --git a/packages/vike-node/src/runtime/handler-node-only.ts b/packages/vike-node/src/runtime/handler-node-only.ts index 002cace..03c91f1 100644 --- a/packages/vike-node/src/runtime/handler-node-only.ts +++ b/packages/vike-node/src/runtime/handler-node-only.ts @@ -10,7 +10,7 @@ import { renderPage } from './vike-handler.js' import { parseHeaders } from './utils/header-utils.js' import { isVercel } from '../utils/isVercel.js' -export function createHandler(options: VikeOptions = {}) { +export function createHandler(options: VikeOptions = {}) { const staticConfig = resolveStaticConfig(options.static) const shouldCache = staticConfig && staticConfig.cache const compressionType = options.compress ?? !isVercel() @@ -52,7 +52,6 @@ export function createHandler(options: VikeOptions = (params: { platformRequest: PlatformRequest }) => Response | undefined | Promise -export function createHandler(options: VikeOptions = {}): Handler { +export function createHandler(options: VikeOptions = {}): Handler { let nodeLike: boolean | undefined = undefined let nodeHandler: Handler | undefined = undefined let webHandler: Handler | undefined = undefined diff --git a/packages/vike-node/src/runtime/handler-web-only.ts b/packages/vike-node/src/runtime/handler-web-only.ts index daee8d5..2ba5b72 100644 --- a/packages/vike-node/src/runtime/handler-web-only.ts +++ b/packages/vike-node/src/runtime/handler-web-only.ts @@ -2,7 +2,7 @@ import type { VikeOptions } from './types.js' import { parseHeaders } from './utils/header-utils.js' import { renderPageWeb } from './vike-handler.js' -export function createHandler(options: VikeOptions = {}) { +export function createHandler(options: VikeOptions = {}) { return async function handler({ request, platformRequest }: { request: Request; platformRequest: PlatformRequest }) { if (request.method !== 'GET') { return undefined diff --git a/packages/vike-node/src/runtime/types.ts b/packages/vike-node/src/runtime/types.ts index 957544c..9ba3c6e 100644 --- a/packages/vike-node/src/runtime/types.ts +++ b/packages/vike-node/src/runtime/types.ts @@ -3,8 +3,8 @@ import type { IncomingMessage, ServerResponse } from 'http' export type HeadersProvided = Record | Headers export type VikeHttpResponse = Awaited>['httpResponse'] export type NextFunction = (err?: unknown) => void -export type VikeOptions = { - pageContext?: ((req: PlatformRequest) => Record | Promise>) | Record +export type VikeOptions = { + pageContext?: Record compress?: boolean | 'static' static?: boolean | string | { root?: string; cache?: boolean } onError?: (err: unknown) => void diff --git a/packages/vike-node/src/runtime/vike-handler.ts b/packages/vike-node/src/runtime/vike-handler.ts index e0845b8..85764f6 100644 --- a/packages/vike-node/src/runtime/vike-handler.ts +++ b/packages/vike-node/src/runtime/vike-handler.ts @@ -1,3 +1,5 @@ +import { parseHeaders } from './utils/header-utils.js' + export { renderPage, renderPageWeb } import { renderPage as _renderPage } from 'vike/server' @@ -8,21 +10,13 @@ async function renderPage({ url, headers, options, - platformRequest }: { url: string headers: [string, string][] - options: VikeOptions - platformRequest: PlatformRequest + options: VikeOptions }): Promise { - async function getPageContext(platformRequest: PlatformRequest): Record | Promise> { - return typeof options.pageContext === 'function' - ? options.pageContext(platformRequest) - : (options.pageContext ?? {}) - } - const pageContext = await _renderPage({ - ...(await getPageContext(platformRequest)), + ...options?.pageContext, urlOriginal: url, headersOriginal: headers }) @@ -37,18 +31,16 @@ async function renderPage({ async function renderPageWeb({ url, headers, - platformRequest, options }: { url: string headers: [string, string][] platformRequest: PlatformRequest - options: VikeOptions + options: VikeOptions }) { const httpResponse = await renderPage({ url, headers, - platformRequest, options }) if (!httpResponse) return undefined @@ -59,10 +51,19 @@ async function renderPageWeb({ return new Response(readable, { status: httpResponse.statusCode, headers: httpResponse.headers }) } -export const renderPageUniversal = (() => async (request, context, runtime) => { +export const renderPageUniversal = ((options?) => async (request, context, runtime) => { const pageContextInit = { ...context, ...runtime, urlOriginal: request.url, headersOriginal: request.headers } - const pageContext = await _renderPage(pageContextInit) - const response = pageContext.httpResponse + const response = await renderPage({ + url: request.url, + headers: parseHeaders(request.headers), + options: { + ...options, + pageContext: { + ...pageContextInit, + ...options?.pageContext + } + } + }) const { readable, writable } = new TransformStream() response.pipe(writable) @@ -71,4 +72,4 @@ export const renderPageUniversal = (() => async (request, context, runtime) => { status: response.statusCode, headers: response.headers }) -}) satisfies Get<[], UniversalHandler> +}) satisfies Get<[options: VikeOptions], UniversalHandler> diff --git a/packages/vike-node/src/vike.handler.ts b/packages/vike-node/src/vike.handler.ts new file mode 100644 index 0000000..957a9e6 --- /dev/null +++ b/packages/vike-node/src/vike.handler.ts @@ -0,0 +1,3 @@ +import { renderPageUniversal } from './runtime/vike-handler.js' + +export default renderPageUniversal; diff --git a/packages/vike-node/tsup.config.js b/packages/vike-node/tsup.config.js new file mode 100644 index 0000000..1a5ea19 --- /dev/null +++ b/packages/vike-node/tsup.config.js @@ -0,0 +1,37 @@ +import { defineConfig } from "tsup"; +import universalMiddleware from "universal-middleware/esbuild"; + +export default defineConfig([ + { + entry: { + "handler": "./src/vike.handler.ts", + }, + format: ["esm"], + platform: "neutral", + target: "es2022", + esbuildPlugins: [universalMiddleware({ + serversExportNames: './[dir]/[server]', + entryExportNames: './[dir]/[name]', + })], + esbuildOptions(opts) { + opts.outbase = "src"; + }, + dts: true, + outDir: 'dist', + bundle: true + }, + { + entry: { + "plugin/index": "./src/plugin/index.ts", + "index": "./src/index.ts", + }, + format: ["esm"], + platform: "node", + target: "es2022", + esbuildOptions(opts) { + opts.outbase = "src"; + }, + dts: true, + outDir: 'dist' + }, +]); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 66413dd..53d8df8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -6,6 +6,7 @@ settings: overrides: vike-node: link:./packages/vike-node/ + esbuild: ^0.24.0 importers: @@ -36,8 +37,8 @@ importers: specifier: ^7.0.3 version: 7.0.3 express: - specifier: ^4.19.2 - version: 4.19.2 + specifier: ^4.21.1 + version: 4.21.1 react: specifier: ^18.3.1 version: 18.3.1 @@ -66,8 +67,8 @@ importers: specifier: ^7.0.3 version: 7.0.3 express: - specifier: ^4.19.2 - version: 4.19.2 + specifier: ^4.21.1 + version: 4.21.1 react: specifier: ^18.3.1 version: 18.3.1 @@ -175,8 +176,8 @@ importers: specifier: ^0.26.5 version: 0.26.5 esbuild: - specifier: ^0.21.0 || ^0.22.0 || ^0.23.0 - version: 0.21.5 + specifier: ^0.24.0 + version: 0.24.0 resolve-from: specifier: ^5.0.0 version: 5.0.0 @@ -186,6 +187,31 @@ importers: unenv-nightly: specifier: 2.0.0-1721914978.1a79944 version: 2.0.0-1721914978.1a79944 + optionalDependencies: + '@universal-middleware/cloudflare': + specifier: ^0 + version: 0.2.6 + '@universal-middleware/elysia': + specifier: ^0 + version: 0.2.0 + '@universal-middleware/express': + specifier: ^0 + version: 0.2.8 + '@universal-middleware/fastify': + specifier: ^0 + version: 0.3.5 + '@universal-middleware/h3': + specifier: ^0 + version: 0.2.5 + '@universal-middleware/hattip': + specifier: ^0 + version: 0.2.9 + '@universal-middleware/hono': + specifier: ^0 + version: 0.2.10 + '@universal-middleware/webroute': + specifier: ^0 + version: 0.2.7 devDependencies: '@brillout/release-me': specifier: ^0.4.0 @@ -194,8 +220,8 @@ importers: specifier: ^20.14.15 version: 20.14.15 '@universal-middleware/core': - specifier: ^0.2.12 - version: 0.2.12 + specifier: ^0.2.13 + version: 0.2.13 elysia: specifier: ^1.1.6 version: 1.1.6(@sinclair/typebox@0.32.35)(typescript@5.5.4) @@ -208,9 +234,15 @@ importers: hono: specifier: ^4.6.3 version: 4.6.3 + tsup: + specifier: ^8.3.0 + version: 8.3.0(postcss@8.4.47)(typescript@5.5.4) typescript: specifier: ^5.5.4 version: 5.5.4 + universal-middleware: + specifier: ^0.3.7 + version: 0.3.7(esbuild@0.24.0)(vite@5.4.8(@types/node@20.14.15)) vike: specifier: ^0.4.198 version: 0.4.198(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.8(@types/node@20.14.15)) @@ -251,8 +283,8 @@ importers: specifier: ^1.1.6 version: 1.1.6(@sinclair/typebox@0.32.35)(typescript@5.5.4) express: - specifier: ^4.19.2 - version: 4.19.2 + specifier: ^4.21.1 + version: 4.21.1 fastify: specifier: ^4.28.1 version: 4.28.1 @@ -524,412 +556,154 @@ packages: '@esbuild-plugins/node-globals-polyfill@0.2.3': resolution: {integrity: sha512-r3MIryXDeXDOZh7ih1l/yE9ZLORCd5e8vWg02azWRGj5SPTuoh69A2AIyn0Z31V/kHBfZ4HgWJ+OK3GTTwLmnw==} peerDependencies: - esbuild: '*' + esbuild: ^0.24.0 '@esbuild-plugins/node-modules-polyfill@0.2.2': resolution: {integrity: sha512-LXV7QsWJxRuMYvKbiznh+U1ilIop3g2TeKRzUxOG5X3YITc8JyyTa90BmLwqqv0YnX4v32CSlG+vsziZp9dMvA==} peerDependencies: - esbuild: '*' + esbuild: ^0.24.0 - '@esbuild/aix-ppc64@0.21.5': - resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} - engines: {node: '>=12'} + '@esbuild/aix-ppc64@0.24.0': + resolution: {integrity: sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw==} + engines: {node: '>=18'} cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.16.17': - resolution: {integrity: sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - - '@esbuild/android-arm64@0.17.19': - resolution: {integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - - '@esbuild/android-arm64@0.21.5': - resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} - engines: {node: '>=12'} + '@esbuild/android-arm64@0.24.0': + resolution: {integrity: sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w==} + engines: {node: '>=18'} cpu: [arm64] os: [android] - '@esbuild/android-arm@0.16.17': - resolution: {integrity: sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - - '@esbuild/android-arm@0.17.19': - resolution: {integrity: sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - - '@esbuild/android-arm@0.21.5': - resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} - engines: {node: '>=12'} + '@esbuild/android-arm@0.24.0': + resolution: {integrity: sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew==} + engines: {node: '>=18'} cpu: [arm] os: [android] - '@esbuild/android-x64@0.16.17': - resolution: {integrity: sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - - '@esbuild/android-x64@0.17.19': - resolution: {integrity: sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - - '@esbuild/android-x64@0.21.5': - resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} - engines: {node: '>=12'} + '@esbuild/android-x64@0.24.0': + resolution: {integrity: sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ==} + engines: {node: '>=18'} cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.16.17': - resolution: {integrity: sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - - '@esbuild/darwin-arm64@0.17.19': - resolution: {integrity: sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - - '@esbuild/darwin-arm64@0.21.5': - resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} - engines: {node: '>=12'} + '@esbuild/darwin-arm64@0.24.0': + resolution: {integrity: sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw==} + engines: {node: '>=18'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.16.17': - resolution: {integrity: sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - - '@esbuild/darwin-x64@0.17.19': - resolution: {integrity: sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - - '@esbuild/darwin-x64@0.21.5': - resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} - engines: {node: '>=12'} + '@esbuild/darwin-x64@0.24.0': + resolution: {integrity: sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA==} + engines: {node: '>=18'} cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.16.17': - resolution: {integrity: sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - - '@esbuild/freebsd-arm64@0.17.19': - resolution: {integrity: sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - - '@esbuild/freebsd-arm64@0.21.5': - resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} - engines: {node: '>=12'} + '@esbuild/freebsd-arm64@0.24.0': + resolution: {integrity: sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA==} + engines: {node: '>=18'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.16.17': - resolution: {integrity: sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - - '@esbuild/freebsd-x64@0.17.19': - resolution: {integrity: sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - - '@esbuild/freebsd-x64@0.21.5': - resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} - engines: {node: '>=12'} + '@esbuild/freebsd-x64@0.24.0': + resolution: {integrity: sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ==} + engines: {node: '>=18'} cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.16.17': - resolution: {integrity: sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - - '@esbuild/linux-arm64@0.17.19': - resolution: {integrity: sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - - '@esbuild/linux-arm64@0.21.5': - resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} - engines: {node: '>=12'} + '@esbuild/linux-arm64@0.24.0': + resolution: {integrity: sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g==} + engines: {node: '>=18'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.16.17': - resolution: {integrity: sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - - '@esbuild/linux-arm@0.17.19': - resolution: {integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - - '@esbuild/linux-arm@0.21.5': - resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} - engines: {node: '>=12'} + '@esbuild/linux-arm@0.24.0': + resolution: {integrity: sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw==} + engines: {node: '>=18'} cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.16.17': - resolution: {integrity: sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - - '@esbuild/linux-ia32@0.17.19': - resolution: {integrity: sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - - '@esbuild/linux-ia32@0.21.5': - resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} - engines: {node: '>=12'} + '@esbuild/linux-ia32@0.24.0': + resolution: {integrity: sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA==} + engines: {node: '>=18'} cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.16.17': - resolution: {integrity: sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - - '@esbuild/linux-loong64@0.17.19': - resolution: {integrity: sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - - '@esbuild/linux-loong64@0.21.5': - resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} - engines: {node: '>=12'} + '@esbuild/linux-loong64@0.24.0': + resolution: {integrity: sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g==} + engines: {node: '>=18'} cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.16.17': - resolution: {integrity: sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - - '@esbuild/linux-mips64el@0.17.19': - resolution: {integrity: sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - - '@esbuild/linux-mips64el@0.21.5': - resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} - engines: {node: '>=12'} + '@esbuild/linux-mips64el@0.24.0': + resolution: {integrity: sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA==} + engines: {node: '>=18'} cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.16.17': - resolution: {integrity: sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - - '@esbuild/linux-ppc64@0.17.19': - resolution: {integrity: sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - - '@esbuild/linux-ppc64@0.21.5': - resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} - engines: {node: '>=12'} + '@esbuild/linux-ppc64@0.24.0': + resolution: {integrity: sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ==} + engines: {node: '>=18'} cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.16.17': - resolution: {integrity: sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - - '@esbuild/linux-riscv64@0.17.19': - resolution: {integrity: sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - - '@esbuild/linux-riscv64@0.21.5': - resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} - engines: {node: '>=12'} + '@esbuild/linux-riscv64@0.24.0': + resolution: {integrity: sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw==} + engines: {node: '>=18'} cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.16.17': - resolution: {integrity: sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - - '@esbuild/linux-s390x@0.17.19': - resolution: {integrity: sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - - '@esbuild/linux-s390x@0.21.5': - resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} - engines: {node: '>=12'} + '@esbuild/linux-s390x@0.24.0': + resolution: {integrity: sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g==} + engines: {node: '>=18'} cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.16.17': - resolution: {integrity: sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - - '@esbuild/linux-x64@0.17.19': - resolution: {integrity: sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - - '@esbuild/linux-x64@0.21.5': - resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} - engines: {node: '>=12'} + '@esbuild/linux-x64@0.24.0': + resolution: {integrity: sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA==} + engines: {node: '>=18'} cpu: [x64] os: [linux] - '@esbuild/netbsd-x64@0.16.17': - resolution: {integrity: sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - - '@esbuild/netbsd-x64@0.17.19': - resolution: {integrity: sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - - '@esbuild/netbsd-x64@0.21.5': - resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} - engines: {node: '>=12'} + '@esbuild/netbsd-x64@0.24.0': + resolution: {integrity: sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg==} + engines: {node: '>=18'} cpu: [x64] os: [netbsd] - '@esbuild/openbsd-x64@0.16.17': - resolution: {integrity: sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - - '@esbuild/openbsd-x64@0.17.19': - resolution: {integrity: sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==} - engines: {node: '>=12'} - cpu: [x64] + '@esbuild/openbsd-arm64@0.24.0': + resolution: {integrity: sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg==} + engines: {node: '>=18'} + cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-x64@0.21.5': - resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} - engines: {node: '>=12'} + '@esbuild/openbsd-x64@0.24.0': + resolution: {integrity: sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q==} + engines: {node: '>=18'} cpu: [x64] os: [openbsd] - '@esbuild/sunos-x64@0.16.17': - resolution: {integrity: sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - - '@esbuild/sunos-x64@0.17.19': - resolution: {integrity: sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - - '@esbuild/sunos-x64@0.21.5': - resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} - engines: {node: '>=12'} + '@esbuild/sunos-x64@0.24.0': + resolution: {integrity: sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA==} + engines: {node: '>=18'} cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.16.17': - resolution: {integrity: sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - - '@esbuild/win32-arm64@0.17.19': - resolution: {integrity: sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - - '@esbuild/win32-arm64@0.21.5': - resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} - engines: {node: '>=12'} + '@esbuild/win32-arm64@0.24.0': + resolution: {integrity: sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA==} + engines: {node: '>=18'} cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.16.17': - resolution: {integrity: sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - - '@esbuild/win32-ia32@0.17.19': - resolution: {integrity: sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - - '@esbuild/win32-ia32@0.21.5': - resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} - engines: {node: '>=12'} + '@esbuild/win32-ia32@0.24.0': + resolution: {integrity: sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw==} + engines: {node: '>=18'} cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.16.17': - resolution: {integrity: sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - - '@esbuild/win32-x64@0.17.19': - resolution: {integrity: sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - - '@esbuild/win32-x64@0.21.5': - resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} - engines: {node: '>=12'} + '@esbuild/win32-x64@0.24.0': + resolution: {integrity: sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA==} + engines: {node: '>=18'} cpu: [x64] os: [win32] @@ -1070,6 +844,10 @@ packages: cpu: [x64] os: [win32] + '@isaacs/cliui@8.0.2': + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + '@jridgewell/gen-mapping@0.3.5': resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} engines: {node: '>=6.0.0'} @@ -1201,6 +979,50 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} + '@oxc-transform/binding-darwin-arm64@0.30.5': + resolution: {integrity: sha512-DBaBT9DbmtqQJrxoajYhbXhij/N7xKdH1L8pqeSFRiZcScdaHxsAspAl9nMU7xdRE0NYh67qrKeO3thsah25Xw==} + cpu: [arm64] + os: [darwin] + + '@oxc-transform/binding-darwin-x64@0.30.5': + resolution: {integrity: sha512-T2F7csIwWKug/1G7YRiZImAEL+90pt9DQbJVAqOXlGlWiHd4TlTaJZ28qXCDiRouCFMVjEEenbQuM0s+Cg5n3A==} + cpu: [x64] + os: [darwin] + + '@oxc-transform/binding-linux-arm64-gnu@0.30.5': + resolution: {integrity: sha512-uW3JSY+Iaw67rfhN8NfpQd7vn1T00QIR7tI6Fj7cW6a+NweVWHMmm/BNTDtIbwg5U0VAlzs48fdNK1l4PbWGCQ==} + cpu: [arm64] + os: [linux] + + '@oxc-transform/binding-linux-arm64-musl@0.30.5': + resolution: {integrity: sha512-cqa57svTkq5mKMGqTcmn4eEeFChO2y8Z3UPaUg2W9qpWa0VjYmBXbBFcKj7f/6nHg8S8i4GLP1JwNbZNNvCzsw==} + cpu: [arm64] + os: [linux] + + '@oxc-transform/binding-linux-x64-gnu@0.30.5': + resolution: {integrity: sha512-sYAIKwpVXArXJDetF6NiKcselPxIdHD3sAlkWsfI1I7F6gRxqF+FucRP7IZi6ULDC4rLeyE9rW+NRBGD6N6mmQ==} + cpu: [x64] + os: [linux] + + '@oxc-transform/binding-linux-x64-musl@0.30.5': + resolution: {integrity: sha512-JrwvyOSNjOTG48Fu51WSWWWWGU1abs3RHtQ9NJTLE5dZsvqCe/A1qJSaCJskEuqRcDf++6yO3gXSg8q/JAn3rg==} + cpu: [x64] + os: [linux] + + '@oxc-transform/binding-win32-arm64-msvc@0.30.5': + resolution: {integrity: sha512-EXjLTyuFdpna949GkkytWs8v6SGG/xuYRprZWNhTv8oBaxBTEUiHW4dhuNkEYa/WyA4PWQJx+cN8vllnhOchkQ==} + cpu: [arm64] + os: [win32] + + '@oxc-transform/binding-win32-x64-msvc@0.30.5': + resolution: {integrity: sha512-vKBHInTCqC70oGFnZTKgcC7EeJ7On0QWmyTZwtn6snOW9UP6eCs/xpKfDmp4ZWUxiAV4EikXbXuy0snl5Spm8Q==} + cpu: [x64] + os: [win32] + + '@pkgjs/parseargs@0.11.0': + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + '@polka/url@1.0.0-next.25': resolution: {integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==} @@ -1387,8 +1209,32 @@ packages: '@types/serve-static@1.15.7': resolution: {integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==} - '@universal-middleware/core@0.2.12': - resolution: {integrity: sha512-MEb++tGtNO3IASdcTghE6N4p4gOmtQ8H+Zob84IRyqF7/VackoM3/BleswmBgZ3ICnoTx8X3SZbWTsyI8fQK/g==} + '@universal-middleware/cloudflare@0.2.6': + resolution: {integrity: sha512-G92QqkKEtcWaVXV2yjdb3dHvj7yfWNSYXcbV9sWpgU6R7WHsjSzSjS7euNytD6R355Ac5wUVgqI8WRHZ417dsw==} + + '@universal-middleware/core@0.2.13': + resolution: {integrity: sha512-FkWz+UQuaqRPzK8xc2GIyJEbetuUzDiJKqs7uJYDcepkHtZUVon+5FrwzxGr2XJnXtWE/vK58wrwETz4WkEmCA==} + + '@universal-middleware/elysia@0.2.0': + resolution: {integrity: sha512-CR/ZO0gd6QV4tbwImcpWX0N6mCBxN4P1gzhGN5WE/IHw2kmHxWwhCCPqgWyS8l6AwnXhhY04Tf1akJbr/A91Tg==} + + '@universal-middleware/express@0.2.8': + resolution: {integrity: sha512-m+LMPrUbkRwiFd7Zl1IdH1V2R4ngx9KmXYvtCCsHDOSZ6+xmF6MhiqtZHECJgBbl1d6C7742hQggGYVQ91EzLQ==} + + '@universal-middleware/fastify@0.3.5': + resolution: {integrity: sha512-crO4KbG7wklVSrJZ58ukBr9dSRr6PGkYiRODFi4Wk2iNYmRYPqFJ1WSr8IZ29x1OWnNp4VEoEj/R+0QMdhFh2Q==} + + '@universal-middleware/h3@0.2.5': + resolution: {integrity: sha512-W7Nn7dGbIknc7XIbXJ0IhtbF5b18SVWRZw4OJY4VYrbACDFQ5NtR7qRVqnaO1E0sdOJFNXIqjs4ByfoZ0jDhdw==} + + '@universal-middleware/hattip@0.2.9': + resolution: {integrity: sha512-NRdDqcNDZyQybMjfFt+Lw3tP/Jp3AhPv4DZewq1j7a+D0MaI8aH8F2LvwlHIfT8no3jxdKoz+4Ek7Xsc31vodw==} + + '@universal-middleware/hono@0.2.10': + resolution: {integrity: sha512-3O+4LtyHeUJxKMKgiPdXi18O4Fky2r88TfC960aaG7axQMLHiJMzVG0z1gUwWajE7ghMSrTjMqR/yy9W1/Dorw==} + + '@universal-middleware/webroute@0.2.7': + resolution: {integrity: sha512-M/ggO5iy9A/mQ2LYh5rzmYp4v73XFf9HLZi2QWCD9DvSNWkKr3wQrjL9EK0HZf3un2pe2G5rFqcy0kb6lsQvcA==} '@vercel/nft@0.26.5': resolution: {integrity: sha512-NHxohEqad6Ra/r4lGknO52uc/GrWILXAMs1BB4401GTqww0fw1bAqzpG1XHuDO+dprg4GvsD9ZLLSsdo78p9hQ==} @@ -1463,10 +1309,25 @@ packages: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} + ansi-regex@6.1.0: + resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} + engines: {node: '>=12'} + ansi-styles@3.2.1: resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} engines: {node: '>=4'} + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + + any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} @@ -1517,8 +1378,8 @@ packages: blake3-wasm@2.1.5: resolution: {integrity: sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==} - body-parser@1.20.2: - resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==} + body-parser@1.20.3: + resolution: {integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} brace-expansion@1.1.11: @@ -1542,6 +1403,12 @@ packages: buffer@6.0.3: resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} + bundle-require@5.0.0: + resolution: {integrity: sha512-GuziW3fSSmopcx4KRymQEJVbZUfqlCqcq7dvs6TYwKRZiegK/2buMxQTPs6MGlNv50wms1699qYO54R8XfRX4w==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + peerDependencies: + esbuild: ^0.24.0 + bytes@3.1.2: resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} engines: {node: '>= 0.8'} @@ -1610,6 +1477,10 @@ packages: resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} engines: {node: '>=16'} + commander@4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} + compare-func@2.0.0: resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} @@ -1714,6 +1585,10 @@ packages: resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} engines: {node: '>= 0.6'} + cookie@0.7.1: + resolution: {integrity: sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==} + engines: {node: '>= 0.6'} + core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} @@ -1800,6 +1675,9 @@ packages: duplexer2@0.1.4: resolution: {integrity: sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==} + eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} @@ -1821,10 +1699,17 @@ packages: emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + 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'} + encodeurl@2.0.0: + resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} + engines: {node: '>= 0.8'} + error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} @@ -1842,19 +1727,9 @@ packages: es-module-lexer@1.5.4: resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==} - esbuild@0.16.17: - resolution: {integrity: sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg==} - engines: {node: '>=12'} - hasBin: true - - esbuild@0.17.19: - resolution: {integrity: sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==} - engines: {node: '>=12'} - hasBin: true - - esbuild@0.21.5: - resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} - engines: {node: '>=12'} + esbuild@0.24.0: + resolution: {integrity: sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==} + engines: {node: '>=18'} hasBin: true escalade@3.1.2: @@ -1898,8 +1773,8 @@ packages: resolution: {integrity: sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw==} engines: {node: '>=6'} - express@4.19.2: - resolution: {integrity: sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==} + express@4.21.1: + resolution: {integrity: sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==} engines: {node: '>= 0.10.0'} fast-content-type-parse@1.1.0: @@ -1931,12 +1806,27 @@ packages: fast-uri@3.0.1: resolution: {integrity: sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==} + fastify-plugin@5.0.1: + resolution: {integrity: sha512-HCxs+YnRaWzCl+cWRYFnHmeRFyR5GVnJTAaCJQiYzQSDwK9MgJdyAsuL3nh0EWRCYMgQ5MeziymvmAhUHYHDUQ==} + + fastify-raw-body@5.0.0: + resolution: {integrity: sha512-2qfoaQ3BQDhZ1gtbkKZd6n0kKxJISJGM6u/skD9ljdWItAscjXrtZ1lnjr7PavmXX9j4EyCPmBDiIsLn07d5vA==} + engines: {node: '>= 10'} + fastify@4.28.1: resolution: {integrity: sha512-kFWUtpNr4i7t5vY2EJPCN2KgMVpuqfU4NjnJNCgiNB900oiDeYqaNDRcAfeBbOF5hGixixxcKnOU4KN9z6QncQ==} fastq@1.17.1: resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + fdir@6.4.0: + resolution: {integrity: sha512-3oB133prH1o4j/L5lLW7uOCF1PlD+/It2L0eL/iAqWMB91RBbqTewABqxhj0ibBd90EEmWZq7ntIWzVaWcXTGQ==} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + file-uri-to-path@1.0.0: resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} @@ -1944,18 +1834,26 @@ packages: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} - finalhandler@1.2.0: - resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} + finalhandler@1.3.1: + resolution: {integrity: sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==} engines: {node: '>= 0.8'} find-my-way@8.2.0: resolution: {integrity: sha512-HdWXgFYc6b1BJcOBDBwjqWuHJj1WYiqrxSh25qtU4DabpMFdj/gSunNBQb83t+8Zt67D7CXEzJWTkxaShMTMOA==} engines: {node: '>=14'} + find-up-simple@1.0.0: + resolution: {integrity: sha512-q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw==} + engines: {node: '>=18'} + find-up@6.3.0: resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + foreground-child@3.3.0: + resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} + engines: {node: '>=14'} + forwarded@0.2.0: resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} engines: {node: '>= 0.6'} @@ -2024,6 +1922,10 @@ packages: glob-to-regexp@0.4.1: resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + glob@10.4.5: + resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} + hasBin: true + glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Glob versions prior to v9 are no longer supported @@ -2092,6 +1994,10 @@ packages: 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'} + ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} @@ -2161,6 +2067,13 @@ packages: isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + jackspeak@3.4.3: + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + + joycon@3.1.1: + resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} + engines: {node: '>=10'} + js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} @@ -2194,14 +2107,28 @@ packages: light-my-request@5.13.0: resolution: {integrity: sha512-9IjUN9ZyCS9pTG+KqTDEQo68Sui2lHsYBrfMyVUTTZ3XhH8PMZq7xO94Kr+eP9dhi/kcKsx4N41p2IXEBil1pQ==} + lilconfig@3.1.2: + resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==} + engines: {node: '>=14'} + + lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + lines-and-columns@2.0.4: resolution: {integrity: sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + load-tsconfig@0.2.5: + resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + locate-path@7.2.0: resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + lodash.sortby@4.7.0: + resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} + loose-envify@1.4.0: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true @@ -2234,8 +2161,8 @@ packages: resolution: {integrity: sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==} engines: {node: '>=16.10'} - merge-descriptors@1.0.1: - resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} + merge-descriptors@1.0.3: + resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==} merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} @@ -2290,6 +2217,10 @@ packages: resolution: {integrity: sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==} engines: {node: '>=10'} + minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + engines: {node: '>=16 || 14 >=14.17'} + minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} @@ -2301,6 +2232,10 @@ packages: resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} engines: {node: '>=8'} + minipass@7.1.2: + resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} + engines: {node: '>=16 || 14 >=14.17'} + minizlib@2.1.2: resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} engines: {node: '>= 8'} @@ -2335,6 +2270,9 @@ packages: resolution: {integrity: sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==} hasBin: true + mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + nanoid@3.3.7: resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -2421,6 +2359,9 @@ packages: resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} engines: {node: '>=6'} + oxc-transform@0.30.5: + resolution: {integrity: sha512-6LxAZx298Y2DK/5I7xdX2dC8G1IEHREL9oMy2elPVoP67s9FHcdAwGVKlcjkISlCfG22YAISYAhxKAdWS7hXhg==} + p-limit@4.0.0: resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -2429,6 +2370,13 @@ packages: resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + package-json-from-dist@1.0.1: + resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} + + package-up@5.0.0: + resolution: {integrity: sha512-MQEgDUvXCa3sGvqHg3pzHO8e9gqTCMPVrWUko3vPQGntwegmFo52mZb2abIVTjFnUcW0BcPz0D93jV5Cas1DWA==} + engines: {node: '>=18'} + parse-json@7.1.1: resolution: {integrity: sha512-SgOTCX/EZXtZxBE5eJ97P4yGM5n37BwRU+YMsH4vNzFqJV/oWFXXCmwFlgWUM4PrakybVOueJJ6pwHqSVhTFDw==} engines: {node: '>=16'} @@ -2455,8 +2403,12 @@ packages: path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - path-to-regexp@0.1.7: - resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} + path-scurry@1.11.1: + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} + + path-to-regexp@0.1.10: + resolution: {integrity: sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==} path-to-regexp@6.2.2: resolution: {integrity: sha512-GQX3SSMokngb36+whdpRXE+3f9V8UzyAorlYvOGx87ufGHehNTn5lCxrKtLyZ4Yl/wEKnNnr98ZzOwwDZV5ogw==} @@ -2474,6 +2426,10 @@ packages: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} + picomatch@4.0.2: + resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} + engines: {node: '>=12'} + pino-abstract-transport@1.2.0: resolution: {integrity: sha512-Guhh8EZfPCfH+PMXAb6rKOjGQEoy0xlAIn+irODG5kgfYV+BQ0rGYYWTIel3P5mmyXqkYkPmdIkywsn6QKUR1Q==} @@ -2484,6 +2440,10 @@ packages: resolution: {integrity: sha512-WtARBjgZ7LNEkrGWxMBN/jvlFiE17LTbBoH0konmBU684Kd0uIiDwBXlcTCW7iJnA6HfIKwUssS/2AC6cDEanw==} hasBin: true + pirates@4.0.6: + resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} + engines: {node: '>= 6'} + pixelmatch@5.3.0: resolution: {integrity: sha512-o8mkY4E/+LNUf6LzX96ht6k6CEDi65k9G2rjMtBe9Oo+VPKSvl+0GKHuH/AlG+GA5LPG/i5hrekkxUc3s2HU+Q==} hasBin: true @@ -2507,6 +2467,24 @@ packages: resolution: {integrity: sha512-TRzzuFRRmEoSW/p1KVAmiOgPco2Irlah+bGFCeNfJXxxYGwSw7YwAOAcd7X28K/m5bjBWKsC29KyoMfHbypayg==} engines: {node: '>=12.13.0'} + postcss-load-config@6.0.1: + resolution: {integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==} + engines: {node: '>= 18'} + peerDependencies: + jiti: '>=1.21.0' + postcss: '>=8.0.9' + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + jiti: + optional: true + postcss: + optional: true + tsx: + optional: true + yaml: + optional: true + postcss@8.4.47: resolution: {integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==} engines: {node: ^10 || ^12 || >=14} @@ -2541,8 +2519,12 @@ packages: resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} engines: {node: '>= 0.10'} - qs@6.11.0: - resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + qs@6.13.0: + resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} engines: {node: '>=0.6'} queue-microtask@1.2.3: @@ -2562,6 +2544,10 @@ packages: resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} engines: {node: '>= 0.8'} + raw-body@3.0.0: + resolution: {integrity: sha512-RmkhL8CAyCRPXCE28MMH0z2PNWQBNk2Q09ZdxM9IOOXwxwZbN+qbWaatPkdkWIKL2ZVDImrN/pK5HTRz2PcS4g==} + engines: {node: '>= 0.8'} + react-dom@18.3.1: resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} peerDependencies: @@ -2697,12 +2683,12 @@ packages: engines: {node: '>=10'} hasBin: true - send@0.18.0: - resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} + send@0.19.0: + resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==} engines: {node: '>= 0.8.0'} - serve-static@1.15.0: - resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} + serve-static@1.16.2: + resolution: {integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==} engines: {node: '>= 0.8.0'} set-blocking@2.0.0: @@ -2737,6 +2723,10 @@ packages: signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + simple-swizzle@0.2.2: resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} @@ -2758,6 +2748,10 @@ packages: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} + source-map@0.8.0-beta.0: + resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} + engines: {node: '>= 8'} + sourcemap-codec@1.4.8: resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} deprecated: Please use @jridgewell/sourcemap-codec instead @@ -2797,6 +2791,10 @@ packages: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} + string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + string_decoder@1.1.1: resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} @@ -2807,10 +2805,19 @@ packages: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} + strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + strip-final-newline@2.0.0: resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} engines: {node: '>=6'} + sucrase@3.35.0: + resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} @@ -2848,12 +2855,23 @@ packages: resolution: {integrity: sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==} engines: {node: '>=8'} + thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + + thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + thread-stream@3.1.0: resolution: {integrity: sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A==} through@2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + tinyglobby@0.2.9: + resolution: {integrity: sha512-8or1+BGEdk1Zkkw2ii16qSS7uVrQJPre5A9o/XkWPATkk23FZh/15BKFxPnlTy6vkljZxLqYCzzBMj30ZrSvjw==} + engines: {node: '>=12.0.0'} + tldts-core@6.1.50: resolution: {integrity: sha512-na2EcZqmdA2iV9zHV7OHQDxxdciEpxrjbkp+aHmZgnZKHzoElLajP59np5/4+sare9fQBfixgvXKx8ev1d7ytw==} @@ -2888,12 +2906,41 @@ packages: tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + tr46@1.0.1: + resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} + + tree-kill@1.2.2: + resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} + hasBin: true + + ts-interface-checker@0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + ts-morph@19.0.0: resolution: {integrity: sha512-D6qcpiJdn46tUqV45vr5UGM2dnIEuTGNxVhg0sk5NX11orcouwj6i1bMqZIz2mZTZB1Hcgy7C3oEVhAT+f6mbQ==} tslib@2.6.3: resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} + tsup@8.3.0: + resolution: {integrity: sha512-ALscEeyS03IomcuNdFdc0YWGVIkwH1Ws7nfTbAPuoILvEV2hpGQAY72LIOjglGo4ShWpZfpBqP/jpQVCzqYQag==} + engines: {node: '>=18'} + hasBin: true + peerDependencies: + '@microsoft/api-extractor': ^7.36.0 + '@swc/core': ^1 + postcss: ^8.4.12 + typescript: '>=4.5.0' + peerDependenciesMeta: + '@microsoft/api-extractor': + optional: true + '@swc/core': + optional: true + postcss: + optional: true + typescript: + optional: true + type-detect@4.1.0: resolution: {integrity: sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==} engines: {node: '>=4'} @@ -2945,10 +2992,36 @@ packages: unenv@1.10.0: resolution: {integrity: sha512-wY5bskBQFL9n3Eca5XnhH6KbUo/tfvkwm9OpcdCvLaeA7piBNbavbOKJySEwQ1V0RH6HvNlSAFRTpvTqgKRQXQ==} + universal-middleware@0.3.7: + resolution: {integrity: sha512-JbSmDD7GzffTAeXxElBDBYjszjmlbaO7pweJq2E+RJaV76cE7nB/1emj2YPKzh5O+kALoO7Y7J+5Ahudf+hCsw==} + peerDependencies: + '@rollup/plugin-node-resolve': ^15.3.0 + esbuild: ^0.24.0 + rollup: ^4.24.0 + vite: '>=5.4.8' + peerDependenciesMeta: + '@rollup/plugin-node-resolve': + optional: true + esbuild: + optional: true + rollup: + optional: true + vite: + optional: true + unpipe@1.0.0: resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} engines: {node: '>= 0.8'} + unplugin@1.14.1: + resolution: {integrity: sha512-lBlHbfSFPToDYp9pjXlUEFVxYLaue9f9T1HC+4OHlmj+HnMDdz9oZY+erXfoCe/5V/7gKUSY2jpXPb9S7f0f/w==} + engines: {node: '>=14.0.0'} + peerDependencies: + webpack-sources: ^3 + peerDependenciesMeta: + webpack-sources: + optional: true + update-browserslist-db@1.1.0: resolution: {integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==} hasBin: true @@ -3022,9 +3095,18 @@ packages: webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + webidl-conversions@4.0.2: + resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} + + webpack-virtual-modules@0.6.2: + resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==} + whatwg-url@5.0.0: resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + whatwg-url@7.1.0: + resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} + which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} @@ -3051,6 +3133,14 @@ packages: '@cloudflare/workers-types': optional: true + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} @@ -3274,7 +3364,7 @@ snapshots: '@brillout/part-regex': 0.1.3 '@brillout/picocolors': 1.0.15 chai: 4.5.0 - esbuild: 0.16.17 + esbuild: 0.24.0 fast-glob: 3.3.2 node-fetch: 2.7.0 pixelmatch: 5.3.0 @@ -3340,215 +3430,86 @@ snapshots: tslib: 2.6.3 optional: true - '@esbuild-plugins/node-globals-polyfill@0.2.3(esbuild@0.17.19)': + '@esbuild-plugins/node-globals-polyfill@0.2.3(esbuild@0.24.0)': dependencies: - esbuild: 0.17.19 + esbuild: 0.24.0 - '@esbuild-plugins/node-modules-polyfill@0.2.2(esbuild@0.17.19)': + '@esbuild-plugins/node-modules-polyfill@0.2.2(esbuild@0.24.0)': dependencies: - esbuild: 0.17.19 + esbuild: 0.24.0 escape-string-regexp: 4.0.0 rollup-plugin-node-polyfills: 0.2.1 - '@esbuild/aix-ppc64@0.21.5': - optional: true - - '@esbuild/android-arm64@0.16.17': - optional: true - - '@esbuild/android-arm64@0.17.19': - optional: true - - '@esbuild/android-arm64@0.21.5': - optional: true - - '@esbuild/android-arm@0.16.17': - optional: true - - '@esbuild/android-arm@0.17.19': - optional: true - - '@esbuild/android-arm@0.21.5': - optional: true - - '@esbuild/android-x64@0.16.17': - optional: true - - '@esbuild/android-x64@0.17.19': - optional: true - - '@esbuild/android-x64@0.21.5': - optional: true - - '@esbuild/darwin-arm64@0.16.17': - optional: true - - '@esbuild/darwin-arm64@0.17.19': - optional: true - - '@esbuild/darwin-arm64@0.21.5': - optional: true - - '@esbuild/darwin-x64@0.16.17': - optional: true - - '@esbuild/darwin-x64@0.17.19': - optional: true - - '@esbuild/darwin-x64@0.21.5': - optional: true - - '@esbuild/freebsd-arm64@0.16.17': - optional: true - - '@esbuild/freebsd-arm64@0.17.19': - optional: true - - '@esbuild/freebsd-arm64@0.21.5': - optional: true - - '@esbuild/freebsd-x64@0.16.17': - optional: true - - '@esbuild/freebsd-x64@0.17.19': - optional: true - - '@esbuild/freebsd-x64@0.21.5': - optional: true - - '@esbuild/linux-arm64@0.16.17': - optional: true - - '@esbuild/linux-arm64@0.17.19': - optional: true - - '@esbuild/linux-arm64@0.21.5': - optional: true - - '@esbuild/linux-arm@0.16.17': - optional: true - - '@esbuild/linux-arm@0.17.19': - optional: true - - '@esbuild/linux-arm@0.21.5': - optional: true - - '@esbuild/linux-ia32@0.16.17': - optional: true - - '@esbuild/linux-ia32@0.17.19': - optional: true - - '@esbuild/linux-ia32@0.21.5': - optional: true - - '@esbuild/linux-loong64@0.16.17': - optional: true - - '@esbuild/linux-loong64@0.17.19': - optional: true - - '@esbuild/linux-loong64@0.21.5': - optional: true - - '@esbuild/linux-mips64el@0.16.17': - optional: true - - '@esbuild/linux-mips64el@0.17.19': - optional: true - - '@esbuild/linux-mips64el@0.21.5': - optional: true - - '@esbuild/linux-ppc64@0.16.17': - optional: true - - '@esbuild/linux-ppc64@0.17.19': - optional: true - - '@esbuild/linux-ppc64@0.21.5': - optional: true - - '@esbuild/linux-riscv64@0.16.17': - optional: true - - '@esbuild/linux-riscv64@0.17.19': - optional: true - - '@esbuild/linux-riscv64@0.21.5': - optional: true - - '@esbuild/linux-s390x@0.16.17': + '@esbuild/aix-ppc64@0.24.0': optional: true - '@esbuild/linux-s390x@0.17.19': + '@esbuild/android-arm64@0.24.0': optional: true - '@esbuild/linux-s390x@0.21.5': + '@esbuild/android-arm@0.24.0': optional: true - '@esbuild/linux-x64@0.16.17': + '@esbuild/android-x64@0.24.0': optional: true - '@esbuild/linux-x64@0.17.19': + '@esbuild/darwin-arm64@0.24.0': optional: true - '@esbuild/linux-x64@0.21.5': + '@esbuild/darwin-x64@0.24.0': optional: true - '@esbuild/netbsd-x64@0.16.17': + '@esbuild/freebsd-arm64@0.24.0': optional: true - '@esbuild/netbsd-x64@0.17.19': + '@esbuild/freebsd-x64@0.24.0': optional: true - '@esbuild/netbsd-x64@0.21.5': + '@esbuild/linux-arm64@0.24.0': optional: true - '@esbuild/openbsd-x64@0.16.17': + '@esbuild/linux-arm@0.24.0': optional: true - '@esbuild/openbsd-x64@0.17.19': + '@esbuild/linux-ia32@0.24.0': optional: true - '@esbuild/openbsd-x64@0.21.5': + '@esbuild/linux-loong64@0.24.0': optional: true - '@esbuild/sunos-x64@0.16.17': + '@esbuild/linux-mips64el@0.24.0': optional: true - '@esbuild/sunos-x64@0.17.19': + '@esbuild/linux-ppc64@0.24.0': optional: true - '@esbuild/sunos-x64@0.21.5': + '@esbuild/linux-riscv64@0.24.0': optional: true - '@esbuild/win32-arm64@0.16.17': + '@esbuild/linux-s390x@0.24.0': optional: true - '@esbuild/win32-arm64@0.17.19': + '@esbuild/linux-x64@0.24.0': optional: true - '@esbuild/win32-arm64@0.21.5': + '@esbuild/netbsd-x64@0.24.0': optional: true - '@esbuild/win32-ia32@0.16.17': + '@esbuild/openbsd-arm64@0.24.0': optional: true - '@esbuild/win32-ia32@0.17.19': + '@esbuild/openbsd-x64@0.24.0': optional: true - '@esbuild/win32-ia32@0.21.5': + '@esbuild/sunos-x64@0.24.0': optional: true - '@esbuild/win32-x64@0.16.17': + '@esbuild/win32-arm64@0.24.0': optional: true - '@esbuild/win32-x64@0.17.19': + '@esbuild/win32-ia32@0.24.0': optional: true - '@esbuild/win32-x64@0.21.5': + '@esbuild/win32-x64@0.24.0': optional: true '@fastify/ajv-compiler@3.6.0': @@ -3648,6 +3609,15 @@ snapshots: '@img/sharp-win32-x64@0.33.4': optional: true + '@isaacs/cliui@8.0.2': + dependencies: + string-width: 5.1.2 + string-width-cjs: string-width@4.2.3 + strip-ansi: 7.1.0 + strip-ansi-cjs: strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: wrap-ansi@7.0.0 + '@jridgewell/gen-mapping@0.3.5': dependencies: '@jridgewell/set-array': 1.2.1 @@ -3779,6 +3749,33 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.17.1 + '@oxc-transform/binding-darwin-arm64@0.30.5': + optional: true + + '@oxc-transform/binding-darwin-x64@0.30.5': + optional: true + + '@oxc-transform/binding-linux-arm64-gnu@0.30.5': + optional: true + + '@oxc-transform/binding-linux-arm64-musl@0.30.5': + optional: true + + '@oxc-transform/binding-linux-x64-gnu@0.30.5': + optional: true + + '@oxc-transform/binding-linux-x64-musl@0.30.5': + optional: true + + '@oxc-transform/binding-win32-arm64-msvc@0.30.5': + optional: true + + '@oxc-transform/binding-win32-x64-msvc@0.30.5': + optional: true + + '@pkgjs/parseargs@0.11.0': + optional: true + '@polka/url@1.0.0-next.25': {} '@prisma/client@5.18.0(prisma@5.18.0)': @@ -3964,11 +3961,47 @@ snapshots: '@types/node': 20.14.15 '@types/send': 0.17.4 - '@universal-middleware/core@0.2.12': + '@universal-middleware/cloudflare@0.2.6': + dependencies: + '@universal-middleware/core': 0.2.13 + + '@universal-middleware/core@0.2.13': dependencies: regexparam: 3.0.0 tough-cookie: 5.0.0 + '@universal-middleware/elysia@0.2.0': + dependencies: + '@universal-middleware/core': 0.2.13 + optional: true + + '@universal-middleware/express@0.2.8': + dependencies: + '@universal-middleware/core': 0.2.13 + + '@universal-middleware/fastify@0.3.5': + dependencies: + '@universal-middleware/core': 0.2.13 + '@universal-middleware/express': 0.2.8 + fastify-raw-body: 5.0.0 + + '@universal-middleware/h3@0.2.5': + dependencies: + '@universal-middleware/core': 0.2.13 + optional: true + + '@universal-middleware/hattip@0.2.9': + dependencies: + '@universal-middleware/core': 0.2.13 + + '@universal-middleware/hono@0.2.10': + dependencies: + '@universal-middleware/core': 0.2.13 + + '@universal-middleware/webroute@0.2.7': + dependencies: + '@universal-middleware/core': 0.2.13 + '@vercel/nft@0.26.5': dependencies: '@mapbox/node-pre-gyp': 1.0.11 @@ -4062,10 +4095,20 @@ snapshots: ansi-regex@5.0.1: {} + ansi-regex@6.1.0: {} + ansi-styles@3.2.1: dependencies: color-convert: 1.9.3 + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + ansi-styles@6.2.1: {} + + any-promise@1.3.0: {} + anymatch@3.1.3: dependencies: normalize-path: 3.0.0 @@ -4109,7 +4152,7 @@ snapshots: blake3-wasm@2.1.5: {} - body-parser@1.20.2: + body-parser@1.20.3: dependencies: bytes: 3.1.2 content-type: 1.0.5 @@ -4119,7 +4162,7 @@ snapshots: http-errors: 2.0.0 iconv-lite: 0.4.24 on-finished: 2.4.1 - qs: 6.11.0 + qs: 6.13.0 raw-body: 2.5.2 type-is: 1.6.18 unpipe: 1.0.0 @@ -4153,6 +4196,11 @@ snapshots: base64-js: 1.5.1 ieee754: 1.2.1 + bundle-require@5.0.0(esbuild@0.24.0): + dependencies: + esbuild: 0.24.0 + load-tsconfig: 0.2.5 + bytes@3.1.2: {} cac@6.7.14: {} @@ -4236,6 +4284,8 @@ snapshots: commander@11.1.0: {} + commander@4.1.1: {} + compare-func@2.0.0: dependencies: array-ify: 1.0.0 @@ -4338,6 +4388,8 @@ snapshots: cookie@0.6.0: {} + cookie@0.7.1: {} + core-util-is@1.0.3: {} cross-env@7.0.3: @@ -4398,6 +4450,8 @@ snapshots: dependencies: readable-stream: 2.3.8 + eastasianwidth@0.2.0: {} + ee-first@1.1.1: {} electron-to-chromium@1.5.6: {} @@ -4412,8 +4466,12 @@ snapshots: emoji-regex@8.0.0: {} + emoji-regex@9.2.2: {} + encodeurl@1.0.2: {} + encodeurl@2.0.0: {} + error-ex@1.3.2: dependencies: is-arrayish: 0.2.1 @@ -4428,81 +4486,32 @@ snapshots: es-module-lexer@1.5.4: {} - esbuild@0.16.17: + esbuild@0.24.0: optionalDependencies: - '@esbuild/android-arm': 0.16.17 - '@esbuild/android-arm64': 0.16.17 - '@esbuild/android-x64': 0.16.17 - '@esbuild/darwin-arm64': 0.16.17 - '@esbuild/darwin-x64': 0.16.17 - '@esbuild/freebsd-arm64': 0.16.17 - '@esbuild/freebsd-x64': 0.16.17 - '@esbuild/linux-arm': 0.16.17 - '@esbuild/linux-arm64': 0.16.17 - '@esbuild/linux-ia32': 0.16.17 - '@esbuild/linux-loong64': 0.16.17 - '@esbuild/linux-mips64el': 0.16.17 - '@esbuild/linux-ppc64': 0.16.17 - '@esbuild/linux-riscv64': 0.16.17 - '@esbuild/linux-s390x': 0.16.17 - '@esbuild/linux-x64': 0.16.17 - '@esbuild/netbsd-x64': 0.16.17 - '@esbuild/openbsd-x64': 0.16.17 - '@esbuild/sunos-x64': 0.16.17 - '@esbuild/win32-arm64': 0.16.17 - '@esbuild/win32-ia32': 0.16.17 - '@esbuild/win32-x64': 0.16.17 - - esbuild@0.17.19: - optionalDependencies: - '@esbuild/android-arm': 0.17.19 - '@esbuild/android-arm64': 0.17.19 - '@esbuild/android-x64': 0.17.19 - '@esbuild/darwin-arm64': 0.17.19 - '@esbuild/darwin-x64': 0.17.19 - '@esbuild/freebsd-arm64': 0.17.19 - '@esbuild/freebsd-x64': 0.17.19 - '@esbuild/linux-arm': 0.17.19 - '@esbuild/linux-arm64': 0.17.19 - '@esbuild/linux-ia32': 0.17.19 - '@esbuild/linux-loong64': 0.17.19 - '@esbuild/linux-mips64el': 0.17.19 - '@esbuild/linux-ppc64': 0.17.19 - '@esbuild/linux-riscv64': 0.17.19 - '@esbuild/linux-s390x': 0.17.19 - '@esbuild/linux-x64': 0.17.19 - '@esbuild/netbsd-x64': 0.17.19 - '@esbuild/openbsd-x64': 0.17.19 - '@esbuild/sunos-x64': 0.17.19 - '@esbuild/win32-arm64': 0.17.19 - '@esbuild/win32-ia32': 0.17.19 - '@esbuild/win32-x64': 0.17.19 - - esbuild@0.21.5: - optionalDependencies: - '@esbuild/aix-ppc64': 0.21.5 - '@esbuild/android-arm': 0.21.5 - '@esbuild/android-arm64': 0.21.5 - '@esbuild/android-x64': 0.21.5 - '@esbuild/darwin-arm64': 0.21.5 - '@esbuild/darwin-x64': 0.21.5 - '@esbuild/freebsd-arm64': 0.21.5 - '@esbuild/freebsd-x64': 0.21.5 - '@esbuild/linux-arm': 0.21.5 - '@esbuild/linux-arm64': 0.21.5 - '@esbuild/linux-ia32': 0.21.5 - '@esbuild/linux-loong64': 0.21.5 - '@esbuild/linux-mips64el': 0.21.5 - '@esbuild/linux-ppc64': 0.21.5 - '@esbuild/linux-riscv64': 0.21.5 - '@esbuild/linux-s390x': 0.21.5 - '@esbuild/linux-x64': 0.21.5 - '@esbuild/netbsd-x64': 0.21.5 - '@esbuild/openbsd-x64': 0.21.5 - '@esbuild/sunos-x64': 0.21.5 - '@esbuild/win32-arm64': 0.21.5 - '@esbuild/win32-ia32': 0.21.5 - '@esbuild/win32-x64': 0.21.5 + '@esbuild/aix-ppc64': 0.24.0 + '@esbuild/android-arm': 0.24.0 + '@esbuild/android-arm64': 0.24.0 + '@esbuild/android-x64': 0.24.0 + '@esbuild/darwin-arm64': 0.24.0 + '@esbuild/darwin-x64': 0.24.0 + '@esbuild/freebsd-arm64': 0.24.0 + '@esbuild/freebsd-x64': 0.24.0 + '@esbuild/linux-arm': 0.24.0 + '@esbuild/linux-arm64': 0.24.0 + '@esbuild/linux-ia32': 0.24.0 + '@esbuild/linux-loong64': 0.24.0 + '@esbuild/linux-mips64el': 0.24.0 + '@esbuild/linux-ppc64': 0.24.0 + '@esbuild/linux-riscv64': 0.24.0 + '@esbuild/linux-s390x': 0.24.0 + '@esbuild/linux-x64': 0.24.0 + '@esbuild/netbsd-x64': 0.24.0 + '@esbuild/openbsd-arm64': 0.24.0 + '@esbuild/openbsd-x64': 0.24.0 + '@esbuild/sunos-x64': 0.24.0 + '@esbuild/win32-arm64': 0.24.0 + '@esbuild/win32-ia32': 0.24.0 + '@esbuild/win32-x64': 0.24.0 escalade@3.1.2: {} @@ -4536,34 +4545,34 @@ snapshots: exit-hook@2.2.1: {} - express@4.19.2: + express@4.21.1: dependencies: accepts: 1.3.8 array-flatten: 1.1.1 - body-parser: 1.20.2 + body-parser: 1.20.3 content-disposition: 0.5.4 content-type: 1.0.5 - cookie: 0.6.0 + cookie: 0.7.1 cookie-signature: 1.0.6 debug: 2.6.9 depd: 2.0.0 - encodeurl: 1.0.2 + encodeurl: 2.0.0 escape-html: 1.0.3 etag: 1.8.1 - finalhandler: 1.2.0 + finalhandler: 1.3.1 fresh: 0.5.2 http-errors: 2.0.0 - merge-descriptors: 1.0.1 + merge-descriptors: 1.0.3 methods: 1.1.2 on-finished: 2.4.1 parseurl: 1.3.3 - path-to-regexp: 0.1.7 + path-to-regexp: 0.1.10 proxy-addr: 2.0.7 - qs: 6.11.0 + qs: 6.13.0 range-parser: 1.2.1 safe-buffer: 5.2.1 - send: 0.18.0 - serve-static: 1.15.0 + send: 0.19.0 + serve-static: 1.16.2 setprototypeof: 1.2.0 statuses: 2.0.1 type-is: 1.6.18 @@ -4606,6 +4615,14 @@ snapshots: fast-uri@3.0.1: {} + fastify-plugin@5.0.1: {} + + fastify-raw-body@5.0.0: + dependencies: + fastify-plugin: 5.0.1 + raw-body: 3.0.0 + secure-json-parse: 2.7.0 + fastify@4.28.1: dependencies: '@fastify/ajv-compiler': 3.6.0 @@ -4629,16 +4646,20 @@ snapshots: dependencies: reusify: 1.0.4 + fdir@6.4.0(picomatch@4.0.2): + optionalDependencies: + picomatch: 4.0.2 + file-uri-to-path@1.0.0: {} fill-range@7.1.1: dependencies: to-regex-range: 5.0.1 - finalhandler@1.2.0: + finalhandler@1.3.1: dependencies: debug: 2.6.9 - encodeurl: 1.0.2 + encodeurl: 2.0.0 escape-html: 1.0.3 on-finished: 2.4.1 parseurl: 1.3.3 @@ -4653,11 +4674,18 @@ snapshots: fast-querystring: 1.1.2 safe-regex2: 3.1.0 + find-up-simple@1.0.0: {} + find-up@6.3.0: dependencies: locate-path: 7.2.0 path-exists: 5.0.0 + foreground-child@3.3.0: + dependencies: + cross-spawn: 7.0.3 + signal-exit: 4.1.0 + forwarded@0.2.0: {} fresh@0.5.2: {} @@ -4724,6 +4752,15 @@ snapshots: glob-to-regexp@0.4.1: {} + glob@10.4.5: + dependencies: + foreground-child: 3.3.0 + jackspeak: 3.4.3 + minimatch: 9.0.5 + minipass: 7.1.2 + package-json-from-dist: 1.0.1 + path-scurry: 1.11.1 + glob@7.2.3: dependencies: fs.realpath: 1.0.0 @@ -4808,6 +4845,10 @@ snapshots: dependencies: safer-buffer: 2.1.2 + iconv-lite@0.6.3: + dependencies: + safer-buffer: 2.1.2 + ieee754@1.2.1: {} inflight@1.0.6: @@ -4857,6 +4898,14 @@ snapshots: isexe@2.0.0: {} + jackspeak@3.4.3: + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + + joycon@3.1.1: {} + js-tokens@4.0.0: {} jsesc@2.5.2: {} @@ -4881,12 +4930,20 @@ snapshots: process-warning: 3.0.0 set-cookie-parser: 2.7.0 + lilconfig@3.1.2: {} + + lines-and-columns@1.2.4: {} + lines-and-columns@2.0.4: {} + load-tsconfig@0.2.5: {} + locate-path@7.2.0: dependencies: p-locate: 6.0.0 + lodash.sortby@4.7.0: {} + loose-envify@1.4.0: dependencies: js-tokens: 4.0.0 @@ -4915,7 +4972,7 @@ snapshots: meow@12.1.1: {} - merge-descriptors@1.0.1: {} + merge-descriptors@1.0.3: {} merge-stream@2.0.0: {} @@ -4969,6 +5026,10 @@ snapshots: dependencies: brace-expansion: 2.0.1 + minimatch@9.0.5: + dependencies: + brace-expansion: 2.0.1 + minimist@1.2.8: {} minipass@3.3.6: @@ -4977,6 +5038,8 @@ snapshots: minipass@5.0.0: {} + minipass@7.1.2: {} + minizlib@2.1.2: dependencies: minipass: 3.3.6 @@ -5001,6 +5064,12 @@ snapshots: mustache@4.2.0: {} + mz@2.7.0: + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + nanoid@3.3.7: {} negotiator@0.6.3: {} @@ -5064,6 +5133,17 @@ snapshots: dependencies: mimic-fn: 2.1.0 + oxc-transform@0.30.5: + optionalDependencies: + '@oxc-transform/binding-darwin-arm64': 0.30.5 + '@oxc-transform/binding-darwin-x64': 0.30.5 + '@oxc-transform/binding-linux-arm64-gnu': 0.30.5 + '@oxc-transform/binding-linux-arm64-musl': 0.30.5 + '@oxc-transform/binding-linux-x64-gnu': 0.30.5 + '@oxc-transform/binding-linux-x64-musl': 0.30.5 + '@oxc-transform/binding-win32-arm64-msvc': 0.30.5 + '@oxc-transform/binding-win32-x64-msvc': 0.30.5 + p-limit@4.0.0: dependencies: yocto-queue: 1.1.1 @@ -5072,6 +5152,12 @@ snapshots: dependencies: p-limit: 4.0.0 + package-json-from-dist@1.0.1: {} + + package-up@5.0.0: + dependencies: + find-up-simple: 1.0.0 + parse-json@7.1.1: dependencies: '@babel/code-frame': 7.24.7 @@ -5092,7 +5178,12 @@ snapshots: path-parse@1.0.7: {} - path-to-regexp@0.1.7: {} + path-scurry@1.11.1: + dependencies: + lru-cache: 10.4.3 + minipass: 7.1.2 + + path-to-regexp@0.1.10: {} path-to-regexp@6.2.2: {} @@ -5104,6 +5195,8 @@ snapshots: picomatch@2.3.1: {} + picomatch@4.0.2: {} + pino-abstract-transport@1.2.0: dependencies: readable-stream: 4.5.2 @@ -5125,6 +5218,8 @@ snapshots: sonic-boom: 4.0.1 thread-stream: 3.1.0 + pirates@4.0.6: {} + pixelmatch@5.3.0: dependencies: pngjs: 6.0.0 @@ -5143,6 +5238,12 @@ snapshots: pngjs@6.0.0: {} + postcss-load-config@6.0.1(postcss@8.4.47): + dependencies: + lilconfig: 3.1.2 + optionalDependencies: + postcss: 8.4.47 + postcss@8.4.47: dependencies: nanoid: 3.3.7 @@ -5170,7 +5271,9 @@ snapshots: forwarded: 0.2.0 ipaddr.js: 1.9.1 - qs@6.11.0: + punycode@2.3.1: {} + + qs@6.13.0: dependencies: side-channel: 1.0.6 @@ -5189,6 +5292,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 + react-dom@18.3.1(react@18.3.1): dependencies: loose-envify: 1.4.0 @@ -5344,7 +5454,7 @@ snapshots: semver@7.6.3: {} - send@0.18.0: + send@0.19.0: dependencies: debug: 2.6.9 depd: 2.0.0 @@ -5362,12 +5472,12 @@ snapshots: transitivePeerDependencies: - supports-color - serve-static@1.15.0: + serve-static@1.16.2: dependencies: - encodeurl: 1.0.2 + encodeurl: 2.0.0 escape-html: 1.0.3 parseurl: 1.3.3 - send: 0.18.0 + send: 0.19.0 transitivePeerDependencies: - supports-color @@ -5427,6 +5537,8 @@ snapshots: signal-exit@3.0.7: {} + signal-exit@4.1.0: {} + simple-swizzle@0.2.2: dependencies: is-arrayish: 0.3.2 @@ -5450,6 +5562,10 @@ snapshots: source-map@0.6.1: {} + source-map@0.8.0-beta.0: + dependencies: + whatwg-url: 7.1.0 + sourcemap-codec@1.4.8: {} spdx-correct@3.2.0: @@ -5485,6 +5601,12 @@ snapshots: is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 + string-width@5.1.2: + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.1.0 + string_decoder@1.1.1: dependencies: safe-buffer: 5.1.2 @@ -5497,8 +5619,22 @@ snapshots: dependencies: ansi-regex: 5.0.1 + strip-ansi@7.1.0: + dependencies: + ansi-regex: 6.1.0 + strip-final-newline@2.0.0: {} + sucrase@3.35.0: + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + commander: 4.1.1 + glob: 10.4.5 + lines-and-columns: 1.2.4 + mz: 2.7.0 + pirates: 4.0.6 + ts-interface-checker: 0.1.13 + supports-color@5.5.0: dependencies: has-flag: 3.0.0 @@ -5532,12 +5668,25 @@ snapshots: text-extensions@2.4.0: {} + thenify-all@1.6.0: + dependencies: + thenify: 3.3.1 + + thenify@3.3.1: + dependencies: + any-promise: 1.3.0 + thread-stream@3.1.0: dependencies: real-require: 0.2.0 through@2.3.8: {} + tinyglobby@0.2.9: + dependencies: + fdir: 6.4.0(picomatch@4.0.2) + picomatch: 4.0.2 + tldts-core@6.1.50: {} tldts@6.1.50: @@ -5562,6 +5711,14 @@ snapshots: tr46@0.0.3: {} + tr46@1.0.1: + dependencies: + punycode: 2.3.1 + + tree-kill@1.2.2: {} + + ts-interface-checker@0.1.13: {} + ts-morph@19.0.0: dependencies: '@ts-morph/common': 0.20.0 @@ -5569,6 +5726,33 @@ snapshots: tslib@2.6.3: {} + tsup@8.3.0(postcss@8.4.47)(typescript@5.5.4): + dependencies: + bundle-require: 5.0.0(esbuild@0.24.0) + cac: 6.7.14 + chokidar: 3.6.0 + consola: 3.2.3 + debug: 4.3.6 + esbuild: 0.24.0 + execa: 5.1.1 + joycon: 3.1.1 + picocolors: 1.1.0 + postcss-load-config: 6.0.1(postcss@8.4.47) + resolve-from: 5.0.0 + rollup: 4.20.0 + source-map: 0.8.0-beta.0 + sucrase: 3.35.0 + tinyglobby: 0.2.9 + tree-kill: 1.2.2 + optionalDependencies: + postcss: 8.4.47 + typescript: 5.5.4 + transitivePeerDependencies: + - jiti + - supports-color + - tsx + - yaml + type-detect@4.1.0: {} type-fest@3.13.1: {} @@ -5622,8 +5806,31 @@ snapshots: node-fetch-native: 1.6.4 pathe: 1.1.2 + universal-middleware@0.3.7(esbuild@0.24.0)(vite@5.4.8(@types/node@20.14.15)): + dependencies: + '@universal-middleware/cloudflare': 0.2.6 + '@universal-middleware/core': 0.2.13 + '@universal-middleware/express': 0.2.8 + '@universal-middleware/fastify': 0.3.5 + '@universal-middleware/hattip': 0.2.9 + '@universal-middleware/hono': 0.2.10 + '@universal-middleware/webroute': 0.2.7 + oxc-transform: 0.30.5 + package-up: 5.0.0 + unplugin: 1.14.1 + optionalDependencies: + esbuild: 0.24.0 + vite: 5.4.8(@types/node@20.14.15) + transitivePeerDependencies: + - webpack-sources + unpipe@1.0.0: {} + unplugin@1.14.1: + dependencies: + acorn: 8.12.1 + webpack-virtual-modules: 0.6.2 + update-browserslist-db@1.1.0(browserslist@4.23.3): dependencies: browserslist: 4.23.3 @@ -5659,7 +5866,7 @@ snapshots: acorn: 8.12.1 cac: 6.7.14 es-module-lexer: 1.5.4 - esbuild: 0.21.5 + esbuild: 0.24.0 fast-glob: 3.3.2 semver: 7.6.3 sirv: 2.0.4 @@ -5678,7 +5885,7 @@ snapshots: acorn: 8.12.1 cac: 6.7.14 es-module-lexer: 1.5.4 - esbuild: 0.21.5 + esbuild: 0.24.0 fast-glob: 3.3.2 semver: 7.6.3 sirv: 2.0.4 @@ -5689,7 +5896,7 @@ snapshots: vite@5.4.8(@types/node@20.14.15): dependencies: - esbuild: 0.21.5 + esbuild: 0.24.0 postcss: 8.4.47 rollup: 4.20.0 optionalDependencies: @@ -5698,7 +5905,7 @@ snapshots: vite@5.4.8(@types/node@22.2.0): dependencies: - esbuild: 0.21.5 + esbuild: 0.24.0 postcss: 8.4.47 rollup: 4.20.0 optionalDependencies: @@ -5707,11 +5914,21 @@ snapshots: webidl-conversions@3.0.1: {} + webidl-conversions@4.0.2: {} + + webpack-virtual-modules@0.6.2: {} + whatwg-url@5.0.0: dependencies: tr46: 0.0.3 webidl-conversions: 3.0.1 + whatwg-url@7.1.0: + dependencies: + lodash.sortby: 4.7.0 + tr46: 1.0.1 + webidl-conversions: 4.0.2 + which@2.0.2: dependencies: isexe: 2.0.0 @@ -5734,12 +5951,12 @@ snapshots: dependencies: '@cloudflare/kv-asset-handler': 0.3.4 '@cloudflare/workers-shared': 0.1.0 - '@esbuild-plugins/node-globals-polyfill': 0.2.3(esbuild@0.17.19) - '@esbuild-plugins/node-modules-polyfill': 0.2.2(esbuild@0.17.19) + '@esbuild-plugins/node-globals-polyfill': 0.2.3(esbuild@0.24.0) + '@esbuild-plugins/node-modules-polyfill': 0.2.2(esbuild@0.24.0) blake3-wasm: 2.1.5 chokidar: 3.6.0 date-fns: 3.6.0 - esbuild: 0.17.19 + esbuild: 0.24.0 miniflare: 3.20240806.0 nanoid: 3.3.7 path-to-regexp: 6.2.2 @@ -5758,6 +5975,18 @@ snapshots: - supports-color - utf-8-validate + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrap-ansi@8.1.0: + dependencies: + ansi-styles: 6.2.1 + string-width: 5.1.2 + strip-ansi: 7.1.0 + wrappy@1.0.2: {} ws@8.18.0: {} diff --git a/test/vike-node/package.json b/test/vike-node/package.json index 881bf20..86b8eba 100644 --- a/test/vike-node/package.json +++ b/test/vike-node/package.json @@ -16,7 +16,7 @@ "@vitejs/plugin-react": "^4.3.1", "cross-env": "^7.0.3", "elysia": "^1.1.6", - "express": "^4.19.2", + "express": "^4.21.1", "fastify": "^4.28.1", "h3": "^1.12.0", "hono": "^4.5.5", diff --git a/test/vike-node/server/index-elysia.ts b/test/vike-node/server/index-elysia.ts index 4fcecd3..716f998 100644 --- a/test/vike-node/server/index-elysia.ts +++ b/test/vike-node/server/index-elysia.ts @@ -26,6 +26,6 @@ async function startServer() { ctx.set.headers['x-test'] = 'test' }) - app.use(vike()) + app.get("/*", vike()) app.listen(+port, () => console.log(`Server running at http://localhost:${port}`)) } diff --git a/test/vike-node/server/index-express.ts b/test/vike-node/server/index-express.ts index 0ae46a4..7db8a03 100644 --- a/test/vike-node/server/index-express.ts +++ b/test/vike-node/server/index-express.ts @@ -1,6 +1,6 @@ import express from 'express' import { telefunc } from 'telefunc' -import { vike } from 'vike-node/connect' +import vike from 'vike-node/express' import { Worker } from 'worker_threads' import { init } from '../database/todoItems.js' import { two } from './shared-chunk.js' diff --git a/test/vike-node/server/index-fastify.ts b/test/vike-node/server/index-fastify.ts index d895704..d06f30f 100644 --- a/test/vike-node/server/index-fastify.ts +++ b/test/vike-node/server/index-fastify.ts @@ -1,7 +1,7 @@ Error.stackTraceLimit = Infinity import fastify from 'fastify' import { telefunc } from 'telefunc' -import { vike } from 'vike-node/fastify' +import vike from 'vike-node/fastify' import { Worker } from 'worker_threads' import { init } from '../database/todoItems.js' import { two } from './shared-chunk.js' @@ -27,7 +27,7 @@ async function startServer() { done() }) - app.register(vike()) + app.all("/*", vike()) const port = process.env.PORT || 3000 app.listen({ port: +port }) console.log(`Server running at http://localhost:${port}`) From 1d8563d783c8a763971bff662545e540e59299d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=ABl=20Charles?= Date: Wed, 9 Oct 2024 16:48:20 +0200 Subject: [PATCH 03/36] chore: wip --- packages/vike-node/package.json | 14 +++--- .../src/runtime/adapters/connectToWeb.ts | 44 +++++++++++++++++- packages/vike-node/src/runtime/types.ts | 4 ++ .../vike-node/src/runtime/vike-handler.ts | 45 ++++++++++++++++--- packages/vike-node/tsup.config.js | 1 + 5 files changed, 94 insertions(+), 14 deletions(-) diff --git a/packages/vike-node/package.json b/packages/vike-node/package.json index 401d9f1..124b2b2 100644 --- a/packages/vike-node/package.json +++ b/packages/vike-node/package.json @@ -132,13 +132,13 @@ "repository": "github:vikejs/vike-node", "license": "MIT", "optionalDependencies": { - "@universal-middleware/hono": "^0", - "@universal-middleware/express": "^0", - "@universal-middleware/hattip": "^0", - "@universal-middleware/webroute": "^0", + "@universal-middleware/cloudflare": "^0", + "@universal-middleware/elysia": "^0", "@universal-middleware/fastify": "^0", "@universal-middleware/h3": "^0", - "@universal-middleware/cloudflare": "^0", - "@universal-middleware/elysia": "^0" + "@universal-middleware/hattip": "^0", + "@universal-middleware/hono": "^0", + "@universal-middleware/webroute": "^0", + "@universal-middleware/express": "^0" } -} \ No newline at end of file +} diff --git a/packages/vike-node/src/runtime/adapters/connectToWeb.ts b/packages/vike-node/src/runtime/adapters/connectToWeb.ts index e528e6f..55bb050 100644 --- a/packages/vike-node/src/runtime/adapters/connectToWeb.ts +++ b/packages/vike-node/src/runtime/adapters/connectToWeb.ts @@ -1,8 +1,8 @@ -export { connectToWeb } +export { connectToWeb, connectToWebFallback } import type { IncomingMessage } from 'node:http' import { Readable } from 'node:stream' -import type { ConnectMiddleware, WebHandler } from '../types.js' +import type { ConnectMiddleware, ConnectMiddlewareBoolean, WebHandler } from '../types.js' import { flattenHeaders } from '../utils/header-utils.js' import { createServerResponse } from './createServerResponse.js' import { DUMMY_BASE_URL } from '../constants.js' @@ -54,6 +54,46 @@ function connectToWeb(handler: ConnectMiddleware): WebHandler { } } +function connectToWebFallback(handler: ConnectMiddlewareBoolean): WebHandler { + return async (request: Request): Promise => { + const req = createIncomingMessage(request) + const { res, onReadable } = createServerResponse(req) + + return new Promise(async (resolve, reject) => { + onReadable(({ readable, headers, statusCode }) => { + const responseBody = statusCodesWithoutBody.includes(statusCode) + ? null + : (Readable.toWeb(readable) as ReadableStream) + resolve( + new Response(responseBody, { + status: statusCode, + headers: flattenHeaders(headers) + }) + ) + }) + + const next = (error?: unknown) => { + if (error) { + reject(error instanceof Error ? error : new Error(String(error))) + } else { + resolve(undefined) + } + } + + try { + const handled = await handler(req, res, next); + + if (!handled) { + res.destroy(); + resolve(undefined); + } + } catch (e) { + next(e); + } + }) + } +} + /** * Creates an IncomingMessage object from a web Request. * diff --git a/packages/vike-node/src/runtime/types.ts b/packages/vike-node/src/runtime/types.ts index 9ba3c6e..8c5db2d 100644 --- a/packages/vike-node/src/runtime/types.ts +++ b/packages/vike-node/src/runtime/types.ts @@ -13,4 +13,8 @@ export type ConnectMiddleware< PlatformRequest extends IncomingMessage = IncomingMessage, PlatformResponse extends ServerResponse = ServerResponse > = (req: PlatformRequest, res: PlatformResponse, next: NextFunction) => void +export type ConnectMiddlewareBoolean< + PlatformRequest extends IncomingMessage = IncomingMessage, + PlatformResponse extends ServerResponse = ServerResponse +> = (req: PlatformRequest, res: PlatformResponse, next: NextFunction) => boolean | Promise export type WebHandler = (request: Request) => Response | undefined | Promise diff --git a/packages/vike-node/src/runtime/vike-handler.ts b/packages/vike-node/src/runtime/vike-handler.ts index 85764f6..87eec6c 100644 --- a/packages/vike-node/src/runtime/vike-handler.ts +++ b/packages/vike-node/src/runtime/vike-handler.ts @@ -1,15 +1,18 @@ import { parseHeaders } from './utils/header-utils.js' - -export { renderPage, renderPageWeb } - import { renderPage as _renderPage } from 'vike/server' import type { VikeHttpResponse, VikeOptions } from './types.js' import type { Get, UniversalHandler } from '@universal-middleware/core' +import { globalStore } from './globalStore.js' +import { assert } from '../utils/assert.js' +import type { IncomingMessage, ServerResponse } from 'http' +import { connectToWebFallback } from './adapters/connectToWeb.js' + +export { renderPage, renderPageWeb } async function renderPage({ url, headers, - options, + options }: { url: string headers: [string, string][] @@ -51,7 +54,25 @@ async function renderPageWeb({ return new Response(readable, { status: httpResponse.statusCode, headers: httpResponse.headers }) } -export const renderPageUniversal = ((options?) => async (request, context, runtime) => { +export const renderPageUniversal = ((options?) => async (request, context, runtime: any) => { + if (globalStore.isPluginLoaded) { + const handled = await web(request) + + // console.log({ url: request.url, handled: Boolean(handled) }) + if (handled) return handled + } else { + // const isAsset = req.url?.startsWith('/assets/') + // const shouldCompressResponse = compressionType === true || (compressionType === 'static' && isAsset) + // if (shouldCompressResponse) { + // await applyCompression(req, res, shouldCache) + // } + // + // if (staticConfig) { + // const handled = await serveStaticFiles(req, res, staticConfig) + // if (handled) return true + // } + } + const pageContextInit = { ...context, ...runtime, urlOriginal: request.url, headersOriginal: request.headers } const response = await renderPage({ url: request.url, @@ -73,3 +94,17 @@ export const renderPageUniversal = ((options?) => async (request, context, runti headers: response.headers }) }) satisfies Get<[options: VikeOptions], UniversalHandler> + +const web = connectToWebFallback(handleViteDevServer) + +function handleViteDevServer(req: IncomingMessage, res: ServerResponse): Promise { + return new Promise((resolve) => { + res.once('close', () => { + resolve(true) + }) + assert(globalStore.viteDevServer) + globalStore.viteDevServer.middlewares(req, res, () => { + resolve(false) + }) + }) +} diff --git a/packages/vike-node/tsup.config.js b/packages/vike-node/tsup.config.js index 1a5ea19..c73019a 100644 --- a/packages/vike-node/tsup.config.js +++ b/packages/vike-node/tsup.config.js @@ -16,6 +16,7 @@ export default defineConfig([ esbuildOptions(opts) { opts.outbase = "src"; }, + external: ["stream", "http", "node:stream", "node:http"], dts: true, outDir: 'dist', bundle: true From 4ccc05c32706166b2a82b05073d3cfe7a7e88a33 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=ABl=20Charles?= Date: Wed, 9 Oct 2024 16:59:29 +0200 Subject: [PATCH 04/36] chore: fallback hmr support --- packages/vike-node/package.json | 2 +- packages/vike-node/src/runtime/vike-handler.ts | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/vike-node/package.json b/packages/vike-node/package.json index 124b2b2..d3e5fc8 100644 --- a/packages/vike-node/package.json +++ b/packages/vike-node/package.json @@ -141,4 +141,4 @@ "@universal-middleware/webroute": "^0", "@universal-middleware/express": "^0" } -} +} \ No newline at end of file diff --git a/packages/vike-node/src/runtime/vike-handler.ts b/packages/vike-node/src/runtime/vike-handler.ts index 87eec6c..9af509c 100644 --- a/packages/vike-node/src/runtime/vike-handler.ts +++ b/packages/vike-node/src/runtime/vike-handler.ts @@ -55,6 +55,10 @@ async function renderPageWeb({ } export const renderPageUniversal = ((options?) => async (request, context, runtime: any) => { + if (runtime.req || runtime.env?.incoming) { + globalStore.setupHMRProxy(runtime.req ?? runtime.env?.incoming); + } + if (globalStore.isPluginLoaded) { const handled = await web(request) From 363470f4f6facc19b5fee8b99bfeadfa98d5470e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=ABl=20Charles?= Date: Wed, 9 Oct 2024 17:17:44 +0200 Subject: [PATCH 05/36] chore: wip serve static --- .../src/runtime/handler-node-only.ts | 2 +- .../vike-node/src/runtime/vike-handler.ts | 47 ++++++++++++++----- packages/vike-node/src/utils/assert.ts | 4 +- packages/vike-node/tsup.config.js | 2 +- 4 files changed, 39 insertions(+), 16 deletions(-) diff --git a/packages/vike-node/src/runtime/handler-node-only.ts b/packages/vike-node/src/runtime/handler-node-only.ts index 03c91f1..ffef152 100644 --- a/packages/vike-node/src/runtime/handler-node-only.ts +++ b/packages/vike-node/src/runtime/handler-node-only.ts @@ -95,7 +95,7 @@ function handleViteDevServer(req: IncomingMessage, res: ServerResponse): Promise }) } -function resolveStaticConfig(static_: VikeOptions['static']): false | { root: string; cache: boolean } { +export function resolveStaticConfig(static_: VikeOptions['static']): false | { root: string; cache: boolean } { // Disable static file serving for Vercel // Vercel will serve static files on its own // See vercel.json > outputDirectory diff --git a/packages/vike-node/src/runtime/vike-handler.ts b/packages/vike-node/src/runtime/vike-handler.ts index 9af509c..bb40ed4 100644 --- a/packages/vike-node/src/runtime/vike-handler.ts +++ b/packages/vike-node/src/runtime/vike-handler.ts @@ -1,11 +1,12 @@ import { parseHeaders } from './utils/header-utils.js' import { renderPage as _renderPage } from 'vike/server' -import type { VikeHttpResponse, VikeOptions } from './types.js' +import type { ConnectMiddleware, VikeHttpResponse, VikeOptions } from './types.js' import type { Get, UniversalHandler } from '@universal-middleware/core' import { globalStore } from './globalStore.js' import { assert } from '../utils/assert.js' import type { IncomingMessage, ServerResponse } from 'http' import { connectToWebFallback } from './adapters/connectToWeb.js' +import { isVercel } from '../utils/isVercel.js' export { renderPage, renderPageWeb } @@ -55,8 +56,17 @@ async function renderPageWeb({ } export const renderPageUniversal = ((options?) => async (request, context, runtime: any) => { - if (runtime.req || runtime.env?.incoming) { - globalStore.setupHMRProxy(runtime.req ?? runtime.env?.incoming); + const nodeReq: IncomingMessage | undefined = runtime.req ?? runtime.env?.incoming + let staticConfig: false | { root: string; cache: boolean } = false + let shouldCache = false + const compressionType = options?.compress ?? !isVercel() + let staticMiddleware: ConnectMiddleware | undefined + + if (nodeReq) { + globalStore.setupHMRProxy(nodeReq) + const { resolveStaticConfig } = await import("./handler-node-only.js") + staticConfig = resolveStaticConfig(options?.static) + shouldCache = staticConfig && staticConfig.cache } if (globalStore.isPluginLoaded) { @@ -64,17 +74,32 @@ export const renderPageUniversal = ((options?) => async (request, context, runti // console.log({ url: request.url, handled: Boolean(handled) }) if (handled) return handled - } else { - // const isAsset = req.url?.startsWith('/assets/') - // const shouldCompressResponse = compressionType === true || (compressionType === 'static' && isAsset) + } else if (nodeReq) { + const isAsset = nodeReq.url?.startsWith('/assets/') + const shouldCompressResponse = compressionType === true || (compressionType === 'static' && isAsset) // if (shouldCompressResponse) { // await applyCompression(req, res, shouldCache) // } - // - // if (staticConfig) { - // const handled = await serveStaticFiles(req, res, staticConfig) - // if (handled) return true - // } + + if (staticConfig) { + const handled = await connectToWebFallback(serveStaticFiles)(request); + if (handled) return handled + } + } + + async function serveStaticFiles( + req: IncomingMessage, + res: ServerResponse + ): Promise { + if (!staticMiddleware) { + const { default: sirv } = await import('sirv') + staticMiddleware = sirv((staticConfig as { root: string; cache: boolean }).root, { etag: true }) + } + + return new Promise((resolve) => { + res.once('close', () => resolve(true)) + staticMiddleware!(req, res, () => resolve(false)) + }) } const pageContextInit = { ...context, ...runtime, urlOriginal: request.url, headersOriginal: request.headers } diff --git a/packages/vike-node/src/utils/assert.ts b/packages/vike-node/src/utils/assert.ts index 0a7ed34..3d74a2d 100644 --- a/packages/vike-node/src/utils/assert.ts +++ b/packages/vike-node/src/utils/assert.ts @@ -1,5 +1,3 @@ -import pc from '@brillout/picocolors' - export { assert, assertUsage } function assert(condition: unknown): asserts condition { @@ -9,5 +7,5 @@ function assert(condition: unknown): asserts condition { function assertUsage(condition: unknown, message: string): asserts condition { if (condition) return - throw new Error(`${pc.cyan('[vike-node]')} wrong usage: ${message}`) + throw new Error(`[vike-node] wrong usage: ${message}`) } diff --git a/packages/vike-node/tsup.config.js b/packages/vike-node/tsup.config.js index c73019a..cb1cd2d 100644 --- a/packages/vike-node/tsup.config.js +++ b/packages/vike-node/tsup.config.js @@ -16,7 +16,7 @@ export default defineConfig([ esbuildOptions(opts) { opts.outbase = "src"; }, - external: ["stream", "http", "node:stream", "node:http"], + external: ["stream", "http", "node:stream", "node:http", "path", "url"], dts: true, outDir: 'dist', bundle: true From d29109c0059b3ecb602dfdf0d92777d6a6e7fe08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=ABl=20Charles?= Date: Thu, 10 Oct 2024 16:37:41 +0200 Subject: [PATCH 06/36] chore: update u-m to provide `req` when required --- packages/vike-node/package.json | 4 +- .../vike-node/src/runtime/vike-handler.ts | 2 +- pnpm-lock.yaml | 48 +++++++++---------- 3 files changed, 27 insertions(+), 27 deletions(-) diff --git a/packages/vike-node/package.json b/packages/vike-node/package.json index d3e5fc8..b41fe4a 100644 --- a/packages/vike-node/package.json +++ b/packages/vike-node/package.json @@ -90,14 +90,14 @@ "devDependencies": { "@brillout/release-me": "^0.4.0", "@types/node": "^20.14.15", - "@universal-middleware/core": "^0.2.13", + "@universal-middleware/core": "^0.2.13 ", "elysia": "^1.1.6", "fastify": "^4.28.1", "h3": "^1.12.0", "hono": "^4.6.3", "tsup": "^8.3.0", "typescript": "^5.5.4", - "universal-middleware": "^0.3.7", + "universal-middleware": "^0.3.8", "vike": "^0.4.198", "vite": "^5.4.8" }, diff --git a/packages/vike-node/src/runtime/vike-handler.ts b/packages/vike-node/src/runtime/vike-handler.ts index bb40ed4..3a7aa36 100644 --- a/packages/vike-node/src/runtime/vike-handler.ts +++ b/packages/vike-node/src/runtime/vike-handler.ts @@ -56,7 +56,7 @@ async function renderPageWeb({ } export const renderPageUniversal = ((options?) => async (request, context, runtime: any) => { - const nodeReq: IncomingMessage | undefined = runtime.req ?? runtime.env?.incoming + const nodeReq: IncomingMessage | undefined = runtime.req let staticConfig: false | { root: string; cache: boolean } = false let shouldCache = false const compressionType = options?.compress ?? !isVercel() diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 53d8df8..8801f3a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -193,7 +193,7 @@ importers: version: 0.2.6 '@universal-middleware/elysia': specifier: ^0 - version: 0.2.0 + version: 0.2.1 '@universal-middleware/express': specifier: ^0 version: 0.2.8 @@ -202,13 +202,13 @@ importers: version: 0.3.5 '@universal-middleware/h3': specifier: ^0 - version: 0.2.5 + version: 0.2.7 '@universal-middleware/hattip': specifier: ^0 - version: 0.2.9 + version: 0.2.10 '@universal-middleware/hono': specifier: ^0 - version: 0.2.10 + version: 0.2.11 '@universal-middleware/webroute': specifier: ^0 version: 0.2.7 @@ -220,7 +220,7 @@ importers: specifier: ^20.14.15 version: 20.14.15 '@universal-middleware/core': - specifier: ^0.2.13 + specifier: '^0.2.13 ' version: 0.2.13 elysia: specifier: ^1.1.6 @@ -241,8 +241,8 @@ importers: specifier: ^5.5.4 version: 5.5.4 universal-middleware: - specifier: ^0.3.7 - version: 0.3.7(esbuild@0.24.0)(vite@5.4.8(@types/node@20.14.15)) + specifier: ^0.3.8 + version: 0.3.8(esbuild@0.24.0)(vite@5.4.8(@types/node@20.14.15)) vike: specifier: ^0.4.198 version: 0.4.198(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.8(@types/node@20.14.15)) @@ -1215,8 +1215,8 @@ packages: '@universal-middleware/core@0.2.13': resolution: {integrity: sha512-FkWz+UQuaqRPzK8xc2GIyJEbetuUzDiJKqs7uJYDcepkHtZUVon+5FrwzxGr2XJnXtWE/vK58wrwETz4WkEmCA==} - '@universal-middleware/elysia@0.2.0': - resolution: {integrity: sha512-CR/ZO0gd6QV4tbwImcpWX0N6mCBxN4P1gzhGN5WE/IHw2kmHxWwhCCPqgWyS8l6AwnXhhY04Tf1akJbr/A91Tg==} + '@universal-middleware/elysia@0.2.1': + resolution: {integrity: sha512-X9IAUHR0hM0oh3NR9xxJ1Ka5waLmySGqJSIcOC8gkDfK95fYTqLmngUpElu1wSIlOyYTVEDyyu/saBBXhhn5Xw==} '@universal-middleware/express@0.2.8': resolution: {integrity: sha512-m+LMPrUbkRwiFd7Zl1IdH1V2R4ngx9KmXYvtCCsHDOSZ6+xmF6MhiqtZHECJgBbl1d6C7742hQggGYVQ91EzLQ==} @@ -1224,14 +1224,14 @@ packages: '@universal-middleware/fastify@0.3.5': resolution: {integrity: sha512-crO4KbG7wklVSrJZ58ukBr9dSRr6PGkYiRODFi4Wk2iNYmRYPqFJ1WSr8IZ29x1OWnNp4VEoEj/R+0QMdhFh2Q==} - '@universal-middleware/h3@0.2.5': - resolution: {integrity: sha512-W7Nn7dGbIknc7XIbXJ0IhtbF5b18SVWRZw4OJY4VYrbACDFQ5NtR7qRVqnaO1E0sdOJFNXIqjs4ByfoZ0jDhdw==} + '@universal-middleware/h3@0.2.7': + resolution: {integrity: sha512-r/3oC8/en6YvWgQC0TfSz0Y9itk4b4auXQhVyWuByotFbU2UMRe7fgq/ZU5J1IgACwFi5IzgfgleNODozt5K6g==} - '@universal-middleware/hattip@0.2.9': - resolution: {integrity: sha512-NRdDqcNDZyQybMjfFt+Lw3tP/Jp3AhPv4DZewq1j7a+D0MaI8aH8F2LvwlHIfT8no3jxdKoz+4Ek7Xsc31vodw==} + '@universal-middleware/hattip@0.2.10': + resolution: {integrity: sha512-xbymaNVIQMjD1hlD85pFvB3xbXplPoSYrw3xNmAG9Q0H7znD3mMEqfMOwn7T2IqRPKo+aLsLii04jgzJzjjHuA==} - '@universal-middleware/hono@0.2.10': - resolution: {integrity: sha512-3O+4LtyHeUJxKMKgiPdXi18O4Fky2r88TfC960aaG7axQMLHiJMzVG0z1gUwWajE7ghMSrTjMqR/yy9W1/Dorw==} + '@universal-middleware/hono@0.2.11': + resolution: {integrity: sha512-DAZy0xctHBJ6WW/jsPbbMEuLxTZ7I0E/mEfT95NFF5lE/NF8qjAmv4GVnPL0jLVGzbmyDy/pyO6EGDV7Bv/uNg==} '@universal-middleware/webroute@0.2.7': resolution: {integrity: sha512-M/ggO5iy9A/mQ2LYh5rzmYp4v73XFf9HLZi2QWCD9DvSNWkKr3wQrjL9EK0HZf3un2pe2G5rFqcy0kb6lsQvcA==} @@ -2992,8 +2992,8 @@ packages: unenv@1.10.0: resolution: {integrity: sha512-wY5bskBQFL9n3Eca5XnhH6KbUo/tfvkwm9OpcdCvLaeA7piBNbavbOKJySEwQ1V0RH6HvNlSAFRTpvTqgKRQXQ==} - universal-middleware@0.3.7: - resolution: {integrity: sha512-JbSmDD7GzffTAeXxElBDBYjszjmlbaO7pweJq2E+RJaV76cE7nB/1emj2YPKzh5O+kALoO7Y7J+5Ahudf+hCsw==} + universal-middleware@0.3.8: + resolution: {integrity: sha512-3d0CwE3APxtZSfBaPsYrUS1kI+70jwr9c+KDN53ZIfAvNNK8TxaWumiVmvGpXVyiz0tRpXUce5/MQQReplzqcw==} peerDependencies: '@rollup/plugin-node-resolve': ^15.3.0 esbuild: ^0.24.0 @@ -3970,7 +3970,7 @@ snapshots: regexparam: 3.0.0 tough-cookie: 5.0.0 - '@universal-middleware/elysia@0.2.0': + '@universal-middleware/elysia@0.2.1': dependencies: '@universal-middleware/core': 0.2.13 optional: true @@ -3985,16 +3985,16 @@ snapshots: '@universal-middleware/express': 0.2.8 fastify-raw-body: 5.0.0 - '@universal-middleware/h3@0.2.5': + '@universal-middleware/h3@0.2.7': dependencies: '@universal-middleware/core': 0.2.13 optional: true - '@universal-middleware/hattip@0.2.9': + '@universal-middleware/hattip@0.2.10': dependencies: '@universal-middleware/core': 0.2.13 - '@universal-middleware/hono@0.2.10': + '@universal-middleware/hono@0.2.11': dependencies: '@universal-middleware/core': 0.2.13 @@ -5806,14 +5806,14 @@ snapshots: node-fetch-native: 1.6.4 pathe: 1.1.2 - universal-middleware@0.3.7(esbuild@0.24.0)(vite@5.4.8(@types/node@20.14.15)): + universal-middleware@0.3.8(esbuild@0.24.0)(vite@5.4.8(@types/node@20.14.15)): dependencies: '@universal-middleware/cloudflare': 0.2.6 '@universal-middleware/core': 0.2.13 '@universal-middleware/express': 0.2.8 '@universal-middleware/fastify': 0.3.5 - '@universal-middleware/hattip': 0.2.9 - '@universal-middleware/hono': 0.2.10 + '@universal-middleware/hattip': 0.2.10 + '@universal-middleware/hono': 0.2.11 '@universal-middleware/webroute': 0.2.7 oxc-transform: 0.30.5 package-up: 5.0.0 From 0b2f2e1e9147d1a8f3814ee64b8c12a39b9f0f61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=ABl=20Charles?= Date: Thu, 10 Oct 2024 18:28:33 +0200 Subject: [PATCH 07/36] chore: compression --- packages/vike-node/package.json | 5 +- .../vike-node/src/runtime/vike-handler.ts | 52 +++++++++++++------ packages/vike-node/tsup.config.js | 2 +- pnpm-lock.yaml | 9 ++++ test/vike-node/.testRun.ts | 7 +-- test/vike-node/server/index-express.ts | 3 +- 6 files changed, 53 insertions(+), 25 deletions(-) diff --git a/packages/vike-node/package.json b/packages/vike-node/package.json index b41fe4a..2c07874 100644 --- a/packages/vike-node/package.json +++ b/packages/vike-node/package.json @@ -89,6 +89,7 @@ }, "devDependencies": { "@brillout/release-me": "^0.4.0", + "@major-tanya/itty-compression": "^0.2.2", "@types/node": "^20.14.15", "@universal-middleware/core": "^0.2.13 ", "elysia": "^1.1.6", @@ -134,11 +135,11 @@ "optionalDependencies": { "@universal-middleware/cloudflare": "^0", "@universal-middleware/elysia": "^0", + "@universal-middleware/express": "^0", "@universal-middleware/fastify": "^0", "@universal-middleware/h3": "^0", "@universal-middleware/hattip": "^0", "@universal-middleware/hono": "^0", - "@universal-middleware/webroute": "^0", - "@universal-middleware/express": "^0" + "@universal-middleware/webroute": "^0" } } \ No newline at end of file diff --git a/packages/vike-node/src/runtime/vike-handler.ts b/packages/vike-node/src/runtime/vike-handler.ts index 3a7aa36..be576fc 100644 --- a/packages/vike-node/src/runtime/vike-handler.ts +++ b/packages/vike-node/src/runtime/vike-handler.ts @@ -1,7 +1,7 @@ import { parseHeaders } from './utils/header-utils.js' import { renderPage as _renderPage } from 'vike/server' import type { ConnectMiddleware, VikeHttpResponse, VikeOptions } from './types.js' -import type { Get, UniversalHandler } from '@universal-middleware/core' +import { type Get, pipe, type UniversalHandler, type UniversalMiddleware } from '@universal-middleware/core' import { globalStore } from './globalStore.js' import { assert } from '../utils/assert.js' import type { IncomingMessage, ServerResponse } from 'http' @@ -55,18 +55,42 @@ async function renderPageWeb({ return new Response(readable, { status: httpResponse.statusCode, headers: httpResponse.headers }) } -export const renderPageUniversal = ((options?) => async (request, context, runtime: any) => { +export const renderPageCompress = ((options?) => async (request, context, runtime: any) => { const nodeReq: IncomingMessage | undefined = runtime.req - let staticConfig: false | { root: string; cache: boolean } = false - let shouldCache = false const compressionType = options?.compress ?? !isVercel() + + return async (response) => { + if (!globalStore.isPluginLoaded && nodeReq) { + const isAsset = nodeReq.url?.startsWith('/assets/') + const shouldCompressResponse = compressionType === true || (compressionType === 'static' && isAsset) + if (shouldCompressResponse) { + // FIXME convert to universal-middleware! Wrong usage of getReader().read() + // Could use either CompressionStream or node:zlib + // const { negotiatedCompression } = await import('@major-tanya/itty-compression') + // TODO caching + // const newRes = await negotiatedCompression(response, request) + response.headers.delete('content-length') + response.headers.set('content-encoding', 'gzip') + response.headers.set('vary', 'Accept-Encoding') + return new Response(response.body?.pipeThrough(new CompressionStream('gzip')), response) + // FIXME should be part of the compression lib + // newRes.headers.delete('content-length') + // return newRes + } + } + return response + } +}) satisfies Get<[options: VikeOptions], UniversalMiddleware> + +export const renderPageHandler = ((options?) => async (request, context, runtime: any) => { + const nodeReq: IncomingMessage | undefined = runtime.req + let staticConfig: false | { root: string; cache: boolean } = false let staticMiddleware: ConnectMiddleware | undefined if (nodeReq) { globalStore.setupHMRProxy(nodeReq) - const { resolveStaticConfig } = await import("./handler-node-only.js") + const { resolveStaticConfig } = await import('./handler-node-only.js') staticConfig = resolveStaticConfig(options?.static) - shouldCache = staticConfig && staticConfig.cache } if (globalStore.isPluginLoaded) { @@ -75,22 +99,13 @@ export const renderPageUniversal = ((options?) => async (request, context, runti // console.log({ url: request.url, handled: Boolean(handled) }) if (handled) return handled } else if (nodeReq) { - const isAsset = nodeReq.url?.startsWith('/assets/') - const shouldCompressResponse = compressionType === true || (compressionType === 'static' && isAsset) - // if (shouldCompressResponse) { - // await applyCompression(req, res, shouldCache) - // } - if (staticConfig) { - const handled = await connectToWebFallback(serveStaticFiles)(request); + const handled = await connectToWebFallback(serveStaticFiles)(request) if (handled) return handled } } - async function serveStaticFiles( - req: IncomingMessage, - res: ServerResponse - ): Promise { + async function serveStaticFiles(req: IncomingMessage, res: ServerResponse): Promise { if (!staticMiddleware) { const { default: sirv } = await import('sirv') staticMiddleware = sirv((staticConfig as { root: string; cache: boolean }).root, { etag: true }) @@ -124,6 +139,9 @@ export const renderPageUniversal = ((options?) => async (request, context, runti }) }) satisfies Get<[options: VikeOptions], UniversalHandler> +export const renderPageUniversal = ((options?) => + pipe(renderPageCompress(options), renderPageHandler(options))) satisfies Get<[options: VikeOptions], UniversalHandler> + const web = connectToWebFallback(handleViteDevServer) function handleViteDevServer(req: IncomingMessage, res: ServerResponse): Promise { diff --git a/packages/vike-node/tsup.config.js b/packages/vike-node/tsup.config.js index cb1cd2d..3fc0c22 100644 --- a/packages/vike-node/tsup.config.js +++ b/packages/vike-node/tsup.config.js @@ -16,7 +16,7 @@ export default defineConfig([ esbuildOptions(opts) { opts.outbase = "src"; }, - external: ["stream", "http", "node:stream", "node:http", "path", "url"], + external: ["stream", "http", "node:stream", "node:http", "path", "url", "node:zlib"], dts: true, outDir: 'dist', bundle: true diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8801f3a..28a31c4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -169,6 +169,9 @@ importers: '@brillout/picocolors': specifier: ^1.0.14 version: 1.0.15 + '@major-tanya/itty-compression': + specifier: ^0.2.2 + version: 0.2.2 '@nitedani/shrink-ray-current': specifier: ^4.3.0 version: 4.3.0 @@ -869,6 +872,10 @@ packages: '@jridgewell/trace-mapping@0.3.9': resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + '@major-tanya/itty-compression@0.2.2': + resolution: {integrity: sha512-iAQgF3iHRb+N4ABjqNmlr5zX4wT5lNcb5obFTj8WHQNAZXrvVuG3/QUGcMWkpHWOUs9SfPbY0UnKqpvsX23+vg==} + engines: {node: '>=18'} + '@mapbox/node-pre-gyp@1.0.11': resolution: {integrity: sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==} hasBin: true @@ -3640,6 +3647,8 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 + '@major-tanya/itty-compression@0.2.2': {} + '@mapbox/node-pre-gyp@1.0.11': dependencies: detect-libc: 2.0.3 diff --git a/test/vike-node/.testRun.ts b/test/vike-node/.testRun.ts index e4b4e60..2bc2751 100644 --- a/test/vike-node/.testRun.ts +++ b/test/vike-node/.testRun.ts @@ -3,7 +3,8 @@ export { testRun } import { page, test, expect, run, getServerUrl, autoRetry, fetchHtml, isCI } from '@brillout/test-e2e' function testRun(cmd: 'npm run dev' | 'npm run prod') { - run(cmd, { serverUrl: 'http://127.0.0.1:3000' }) + // FIXME exitCode 1 when using npm?? + run('p' + cmd, { serverUrl: 'http://127.0.0.1:3000' }) const isProd = cmd === 'npm run prod' test('HTML', async () => { @@ -87,10 +88,10 @@ function testRun(cmd: 'npm run dev' | 'npm run prod') { }) if (isProd) - test('Brotli compression and headers in production', async () => { + test('Compression and headers in production', async () => { const response = await page.goto(`${getServerUrl()}/`) const contentEncoding = await response.headerValue('content-encoding') - expect(contentEncoding).toBe('br') + expect(contentEncoding).toBe('gzip') const varyHeader = await response.headerValue('vary') expect(varyHeader).toContain('Accept-Encoding') }) diff --git a/test/vike-node/server/index-express.ts b/test/vike-node/server/index-express.ts index 7db8a03..2734b40 100644 --- a/test/vike-node/server/index-express.ts +++ b/test/vike-node/server/index-express.ts @@ -14,8 +14,7 @@ new Worker(new URL('./worker.mjs', import.meta.url)) async function startServer() { await init() const app = express() - app.use(express.text()) // Parse & make HTTP request body available at `req.body` - app.all('/_telefunc', async (req, res) => { + app.all('/_telefunc', express.text(), async (req, res) => { const context = {} const httpResponse = await telefunc({ url: req.originalUrl, method: req.method, body: req.body, context }) const { body, statusCode, contentType } = httpResponse From 708f5944129d0919d8350c339a1847330c7eec8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=ABl=20Charles?= Date: Thu, 10 Oct 2024 18:30:35 +0200 Subject: [PATCH 08/36] chore: format --- biome.json | 2 +- .../src/runtime/adapters/connectToWeb.ts | 8 ++-- packages/vike-node/src/vike.handler.ts | 2 +- packages/vike-node/tsup.config.js | 42 ++++++++++--------- pnpm-lock.yaml | 6 +-- test/vike-node/server/index-elysia.ts | 2 +- test/vike-node/server/index-fastify.ts | 2 +- 7 files changed, 33 insertions(+), 31 deletions(-) diff --git a/biome.json b/biome.json index 2521f53..7da6114 100644 --- a/biome.json +++ b/biome.json @@ -1,7 +1,7 @@ { "$schema": "./node_modules/@biomejs/biome/configuration_schema.json", "files": { - "ignore": ["dist/", ".vercel/", "package.json"] + "ignore": ["dist/", ".vercel/", "package.json", "test/vike-node/build"] }, "formatter": { "indentWidth": 2, diff --git a/packages/vike-node/src/runtime/adapters/connectToWeb.ts b/packages/vike-node/src/runtime/adapters/connectToWeb.ts index 55bb050..d0fb25c 100644 --- a/packages/vike-node/src/runtime/adapters/connectToWeb.ts +++ b/packages/vike-node/src/runtime/adapters/connectToWeb.ts @@ -81,14 +81,14 @@ function connectToWebFallback(handler: ConnectMiddlewareBoolean): WebHandler { } try { - const handled = await handler(req, res, next); + const handled = await handler(req, res, next) if (!handled) { - res.destroy(); - resolve(undefined); + res.destroy() + resolve(undefined) } } catch (e) { - next(e); + next(e) } }) } diff --git a/packages/vike-node/src/vike.handler.ts b/packages/vike-node/src/vike.handler.ts index 957a9e6..0fed8f5 100644 --- a/packages/vike-node/src/vike.handler.ts +++ b/packages/vike-node/src/vike.handler.ts @@ -1,3 +1,3 @@ import { renderPageUniversal } from './runtime/vike-handler.js' -export default renderPageUniversal; +export default renderPageUniversal diff --git a/packages/vike-node/tsup.config.js b/packages/vike-node/tsup.config.js index 3fc0c22..ace9e21 100644 --- a/packages/vike-node/tsup.config.js +++ b/packages/vike-node/tsup.config.js @@ -1,38 +1,40 @@ -import { defineConfig } from "tsup"; -import universalMiddleware from "universal-middleware/esbuild"; +import { defineConfig } from 'tsup' +import universalMiddleware from 'universal-middleware/esbuild' export default defineConfig([ { entry: { - "handler": "./src/vike.handler.ts", + handler: './src/vike.handler.ts' }, - format: ["esm"], - platform: "neutral", - target: "es2022", - esbuildPlugins: [universalMiddleware({ - serversExportNames: './[dir]/[server]', - entryExportNames: './[dir]/[name]', - })], + format: ['esm'], + platform: 'neutral', + target: 'es2022', + esbuildPlugins: [ + universalMiddleware({ + serversExportNames: './[dir]/[server]', + entryExportNames: './[dir]/[name]' + }) + ], esbuildOptions(opts) { - opts.outbase = "src"; + opts.outbase = 'src' }, - external: ["stream", "http", "node:stream", "node:http", "path", "url", "node:zlib"], + external: ['stream', 'http', 'node:stream', 'node:http', 'path', 'url', 'node:zlib'], dts: true, outDir: 'dist', bundle: true }, { entry: { - "plugin/index": "./src/plugin/index.ts", - "index": "./src/index.ts", + 'plugin/index': './src/plugin/index.ts', + index: './src/index.ts' }, - format: ["esm"], - platform: "node", - target: "es2022", + format: ['esm'], + platform: 'node', + target: 'es2022', esbuildOptions(opts) { - opts.outbase = "src"; + opts.outbase = 'src' }, dts: true, outDir: 'dist' - }, -]); + } +]) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 28a31c4..e0e46c0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -169,9 +169,6 @@ importers: '@brillout/picocolors': specifier: ^1.0.14 version: 1.0.15 - '@major-tanya/itty-compression': - specifier: ^0.2.2 - version: 0.2.2 '@nitedani/shrink-ray-current': specifier: ^4.3.0 version: 4.3.0 @@ -219,6 +216,9 @@ importers: '@brillout/release-me': specifier: ^0.4.0 version: 0.4.0 + '@major-tanya/itty-compression': + specifier: ^0.2.2 + version: 0.2.2 '@types/node': specifier: ^20.14.15 version: 20.14.15 diff --git a/test/vike-node/server/index-elysia.ts b/test/vike-node/server/index-elysia.ts index 716f998..fa9adcc 100644 --- a/test/vike-node/server/index-elysia.ts +++ b/test/vike-node/server/index-elysia.ts @@ -26,6 +26,6 @@ async function startServer() { ctx.set.headers['x-test'] = 'test' }) - app.get("/*", vike()) + app.get('/*', vike()) app.listen(+port, () => console.log(`Server running at http://localhost:${port}`)) } diff --git a/test/vike-node/server/index-fastify.ts b/test/vike-node/server/index-fastify.ts index d06f30f..dc9f862 100644 --- a/test/vike-node/server/index-fastify.ts +++ b/test/vike-node/server/index-fastify.ts @@ -27,7 +27,7 @@ async function startServer() { done() }) - app.all("/*", vike()) + app.all('/*', vike()) const port = process.env.PORT || 3000 app.listen({ port: +port }) console.log(`Server running at http://localhost:${port}`) From 29128b56847aafa2428ebb7d1b0a48fed8e08b0d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=ABl=20Charles?= Date: Tue, 15 Oct 2024 18:18:48 +0200 Subject: [PATCH 09/36] chore: use @universal-middleware/compress BREAKING CHANGE: the `pageContext` setting has been removed in favor of universal-middleware context. See [Updating the Context](https://universal-middleware.dev/recipes/context-middleware) ```diff app.use( vike({ - pageContext: (req) => ({ - user: req.user - }) }) ) ``` --- packages/vike-node/package.json | 4 +- .../vike-node/src/runtime/vike-handler.ts | 15 ++---- pnpm-lock.yaml | 48 ++++++++++--------- 3 files changed, 30 insertions(+), 37 deletions(-) diff --git a/packages/vike-node/package.json b/packages/vike-node/package.json index 2c07874..d79a8af 100644 --- a/packages/vike-node/package.json +++ b/packages/vike-node/package.json @@ -77,6 +77,8 @@ "dependencies": { "@brillout/picocolors": "^1.0.14", "@nitedani/shrink-ray-current": "^4.3.0", + "@universal-middleware/core": "^0.2.13", + "@universal-middleware/compress": "^0.2.0", "@vercel/nft": "^0.26.5", "esbuild": "^0.24.0", "resolve-from": "^5.0.0", @@ -89,9 +91,7 @@ }, "devDependencies": { "@brillout/release-me": "^0.4.0", - "@major-tanya/itty-compression": "^0.2.2", "@types/node": "^20.14.15", - "@universal-middleware/core": "^0.2.13 ", "elysia": "^1.1.6", "fastify": "^4.28.1", "h3": "^1.12.0", diff --git a/packages/vike-node/src/runtime/vike-handler.ts b/packages/vike-node/src/runtime/vike-handler.ts index be576fc..a186450 100644 --- a/packages/vike-node/src/runtime/vike-handler.ts +++ b/packages/vike-node/src/runtime/vike-handler.ts @@ -2,6 +2,7 @@ import { parseHeaders } from './utils/header-utils.js' import { renderPage as _renderPage } from 'vike/server' import type { ConnectMiddleware, VikeHttpResponse, VikeOptions } from './types.js' import { type Get, pipe, type UniversalHandler, type UniversalMiddleware } from '@universal-middleware/core' +import compressMiddlewareFactory from '@universal-middleware/compress' import { globalStore } from './globalStore.js' import { assert } from '../utils/assert.js' import type { IncomingMessage, ServerResponse } from 'http' @@ -58,24 +59,14 @@ async function renderPageWeb({ export const renderPageCompress = ((options?) => async (request, context, runtime: any) => { const nodeReq: IncomingMessage | undefined = runtime.req const compressionType = options?.compress ?? !isVercel() + const compressMiddleware = compressMiddlewareFactory()(request); return async (response) => { if (!globalStore.isPluginLoaded && nodeReq) { const isAsset = nodeReq.url?.startsWith('/assets/') const shouldCompressResponse = compressionType === true || (compressionType === 'static' && isAsset) if (shouldCompressResponse) { - // FIXME convert to universal-middleware! Wrong usage of getReader().read() - // Could use either CompressionStream or node:zlib - // const { negotiatedCompression } = await import('@major-tanya/itty-compression') - // TODO caching - // const newRes = await negotiatedCompression(response, request) - response.headers.delete('content-length') - response.headers.set('content-encoding', 'gzip') - response.headers.set('vary', 'Accept-Encoding') - return new Response(response.body?.pipeThrough(new CompressionStream('gzip')), response) - // FIXME should be part of the compression lib - // newRes.headers.delete('content-length') - // return newRes + return compressMiddleware(response) } } return response diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e0e46c0..4556929 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -172,6 +172,12 @@ importers: '@nitedani/shrink-ray-current': specifier: ^4.3.0 version: 4.3.0 + '@universal-middleware/compress': + specifier: ^0.2.0 + version: 0.2.0 + '@universal-middleware/core': + specifier: ^0.2.13 + version: 0.2.13 '@vercel/nft': specifier: ^0.26.5 version: 0.26.5 @@ -216,15 +222,9 @@ importers: '@brillout/release-me': specifier: ^0.4.0 version: 0.4.0 - '@major-tanya/itty-compression': - specifier: ^0.2.2 - version: 0.2.2 '@types/node': specifier: ^20.14.15 version: 20.14.15 - '@universal-middleware/core': - specifier: '^0.2.13 ' - version: 0.2.13 elysia: specifier: ^1.1.6 version: 1.1.6(@sinclair/typebox@0.32.35)(typescript@5.5.4) @@ -872,10 +872,6 @@ packages: '@jridgewell/trace-mapping@0.3.9': resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} - '@major-tanya/itty-compression@0.2.2': - resolution: {integrity: sha512-iAQgF3iHRb+N4ABjqNmlr5zX4wT5lNcb5obFTj8WHQNAZXrvVuG3/QUGcMWkpHWOUs9SfPbY0UnKqpvsX23+vg==} - engines: {node: '>=18'} - '@mapbox/node-pre-gyp@1.0.11': resolution: {integrity: sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==} hasBin: true @@ -1219,6 +1215,9 @@ packages: '@universal-middleware/cloudflare@0.2.6': resolution: {integrity: sha512-G92QqkKEtcWaVXV2yjdb3dHvj7yfWNSYXcbV9sWpgU6R7WHsjSzSjS7euNytD6R355Ac5wUVgqI8WRHZ417dsw==} + '@universal-middleware/compress@0.2.0': + resolution: {integrity: sha512-08T6Q91jINHZffE8hnr6B+xUMp+MMVPDAl6l8miKkJJRg4ARQ4kANWRYSfispK1OZ+0IOn6ajvYky7TCiWYU9Q==} + '@universal-middleware/core@0.2.13': resolution: {integrity: sha512-FkWz+UQuaqRPzK8xc2GIyJEbetuUzDiJKqs7uJYDcepkHtZUVon+5FrwzxGr2XJnXtWE/vK58wrwETz4WkEmCA==} @@ -2146,8 +2145,8 @@ packages: lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} - lru-cache@11.0.0: - resolution: {integrity: sha512-Qv32eSV1RSCfhY3fpPE2GNZ8jgM9X7rdAfemLWqTUxwiyIC4jJ6Sy0fZ8H+oLWevO6i4/bizg7c8d8i6bxrzbA==} + lru-cache@11.0.1: + resolution: {integrity: sha512-CgeuL5uom6j/ZVrg7G/+1IXqRY8JXX4Hghfy5YE0EhoYQWvndP1kufu58cmZLNIDKnRhZrXfdS9urVWx98AipQ==} engines: {node: 20 || >=22} lru-cache@5.1.1: @@ -2190,10 +2189,6 @@ packages: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} - mime-db@1.53.0: - resolution: {integrity: sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg==} - engines: {node: '>= 0.6'} - mime-types@2.1.35: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} @@ -3647,8 +3642,6 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 - '@major-tanya/itty-compression@0.2.2': {} - '@mapbox/node-pre-gyp@1.0.11': dependencies: detect-libc: 2.0.3 @@ -3677,7 +3670,7 @@ snapshots: bytes: 3.1.2 compressible: 2.0.18 debug: 4.3.6 - lru-cache: 11.0.0 + lru-cache: 11.0.1 multipipe: 4.0.0 on-headers: 1.0.2 stream-buffers: 3.0.3 @@ -3974,6 +3967,17 @@ snapshots: dependencies: '@universal-middleware/core': 0.2.13 + '@universal-middleware/compress@0.2.0': + optionalDependencies: + '@universal-middleware/cloudflare': 0.2.6 + '@universal-middleware/elysia': 0.2.1 + '@universal-middleware/express': 0.2.8 + '@universal-middleware/fastify': 0.3.5 + '@universal-middleware/h3': 0.2.7 + '@universal-middleware/hattip': 0.2.10 + '@universal-middleware/hono': 0.2.11 + '@universal-middleware/webroute': 0.2.7 + '@universal-middleware/core@0.2.13': dependencies: regexparam: 3.0.0 @@ -4302,7 +4306,7 @@ snapshots: compressible@2.0.18: dependencies: - mime-db: 1.53.0 + mime-db: 1.52.0 concat-map@0.0.1: {} @@ -4963,7 +4967,7 @@ snapshots: lru-cache@10.4.3: {} - lru-cache@11.0.0: {} + lru-cache@11.0.1: {} lru-cache@5.1.1: dependencies: @@ -4996,8 +5000,6 @@ snapshots: mime-db@1.52.0: {} - mime-db@1.53.0: {} - mime-types@2.1.35: dependencies: mime-db: 1.52.0 From 7fc72223fc0256f2e87fed8ec3a85eb457b31249 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=ABl=20Charles?= Date: Tue, 15 Oct 2024 18:20:17 +0200 Subject: [PATCH 10/36] chore: format --- packages/vike-node/src/runtime/vike-handler.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/vike-node/src/runtime/vike-handler.ts b/packages/vike-node/src/runtime/vike-handler.ts index a186450..5194392 100644 --- a/packages/vike-node/src/runtime/vike-handler.ts +++ b/packages/vike-node/src/runtime/vike-handler.ts @@ -59,7 +59,7 @@ async function renderPageWeb({ export const renderPageCompress = ((options?) => async (request, context, runtime: any) => { const nodeReq: IncomingMessage | undefined = runtime.req const compressionType = options?.compress ?? !isVercel() - const compressMiddleware = compressMiddlewareFactory()(request); + const compressMiddleware = compressMiddlewareFactory()(request) return async (response) => { if (!globalStore.isPluginLoaded && nodeReq) { From 5327c01b8f53e8ddcd0f3cd9f95abdadd7a1a3c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=ABl=20Charles?= Date: Wed, 16 Oct 2024 10:53:15 +0200 Subject: [PATCH 11/36] chore: cleanup --- .../src/runtime/adapters/connectToWeb.ts | 41 +----- .../src/runtime/frameworks/connect.ts | 3 +- .../src/runtime/handler-node-only.ts | 121 ------------------ .../src/runtime/handler-web-and-node.ts | 44 ------- .../vike-node/src/runtime/handler-web-only.ts | 12 -- packages/vike-node/src/runtime/types.ts | 2 +- .../src/runtime/utils/header-utils.ts | 25 +--- .../runtime/utils/resolve-static-config.ts | 29 +++++ .../src/runtime/utils/writeHttpResponse.ts | 18 --- .../vike-node/src/runtime/vike-handler.ts | 20 +-- packages/vike-node/tsup.config.js | 4 +- 11 files changed, 51 insertions(+), 268 deletions(-) delete mode 100644 packages/vike-node/src/runtime/handler-node-only.ts delete mode 100644 packages/vike-node/src/runtime/handler-web-and-node.ts delete mode 100644 packages/vike-node/src/runtime/handler-web-only.ts create mode 100644 packages/vike-node/src/runtime/utils/resolve-static-config.ts delete mode 100644 packages/vike-node/src/runtime/utils/writeHttpResponse.ts diff --git a/packages/vike-node/src/runtime/adapters/connectToWeb.ts b/packages/vike-node/src/runtime/adapters/connectToWeb.ts index d0fb25c..6bd058d 100644 --- a/packages/vike-node/src/runtime/adapters/connectToWeb.ts +++ b/packages/vike-node/src/runtime/adapters/connectToWeb.ts @@ -1,11 +1,11 @@ -export { connectToWeb, connectToWebFallback } +export { connectToWeb } import type { IncomingMessage } from 'node:http' import { Readable } from 'node:stream' +import { DUMMY_BASE_URL } from '../constants.js' import type { ConnectMiddleware, ConnectMiddlewareBoolean, WebHandler } from '../types.js' import { flattenHeaders } from '../utils/header-utils.js' import { createServerResponse } from './createServerResponse.js' -import { DUMMY_BASE_URL } from '../constants.js' const statusCodesWithoutBody = [ 100, // Continue @@ -20,41 +20,10 @@ const statusCodesWithoutBody = [ /** * Converts a Connect-style middleware to a web-compatible request handler. * - * @param {ConnectMiddleware} handler - The Connect-style middleware function to be converted. + * @param {ConnectMiddleware | ConnectMiddlewareBoolean} handler - The Connect-style middleware function to be converted. * @returns {WebHandler} A function that handles web requests and returns a Response or undefined. */ -function connectToWeb(handler: ConnectMiddleware): WebHandler { - return async (request: Request): Promise => { - const req = createIncomingMessage(request) - const { res, onReadable } = createServerResponse(req) - - return new Promise((resolve, reject) => { - onReadable(({ readable, headers, statusCode }) => { - const responseBody = statusCodesWithoutBody.includes(statusCode) - ? null - : (Readable.toWeb(readable) as ReadableStream) - resolve( - new Response(responseBody, { - status: statusCode, - headers: flattenHeaders(headers) - }) - ) - }) - - const next = (error?: unknown) => { - if (error) { - reject(error instanceof Error ? error : new Error(String(error))) - } else { - resolve(undefined) - } - } - - Promise.resolve(handler(req, res, next)).catch(next) - }) - } -} - -function connectToWebFallback(handler: ConnectMiddlewareBoolean): WebHandler { +function connectToWeb(handler: ConnectMiddleware | ConnectMiddlewareBoolean): WebHandler { return async (request: Request): Promise => { const req = createIncomingMessage(request) const { res, onReadable } = createServerResponse(req) @@ -83,7 +52,7 @@ function connectToWebFallback(handler: ConnectMiddlewareBoolean): WebHandler { try { const handled = await handler(req, res, next) - if (!handled) { + if (handled === false) { res.destroy() resolve(undefined) } diff --git a/packages/vike-node/src/runtime/frameworks/connect.ts b/packages/vike-node/src/runtime/frameworks/connect.ts index 19f0927..8c30782 100644 --- a/packages/vike-node/src/runtime/frameworks/connect.ts +++ b/packages/vike-node/src/runtime/frameworks/connect.ts @@ -1,9 +1,8 @@ export { vike } import type { IncomingMessage, ServerResponse } from 'http' -import { createHandler } from '../handler-node-only.js' -import type { NextFunction, VikeOptions } from '../types.js' import { globalStore } from '../globalStore.js' +import type { NextFunction, VikeOptions } from '../types.js' /** * Creates middleware for Express-like frameworks to handle Vike requests. diff --git a/packages/vike-node/src/runtime/handler-node-only.ts b/packages/vike-node/src/runtime/handler-node-only.ts deleted file mode 100644 index ffef152..0000000 --- a/packages/vike-node/src/runtime/handler-node-only.ts +++ /dev/null @@ -1,121 +0,0 @@ -import type { IncomingMessage, ServerResponse } from 'http' -import { dirname, isAbsolute, join } from 'path' -import { fileURLToPath } from 'url' - -import { assert } from '../utils/assert.js' -import { globalStore } from './globalStore.js' -import type { ConnectMiddleware, VikeOptions } from './types.js' -import { writeHttpResponse } from './utils/writeHttpResponse.js' -import { renderPage } from './vike-handler.js' -import { parseHeaders } from './utils/header-utils.js' -import { isVercel } from '../utils/isVercel.js' - -export function createHandler(options: VikeOptions = {}) { - const staticConfig = resolveStaticConfig(options.static) - const shouldCache = staticConfig && staticConfig.cache - const compressionType = options.compress ?? !isVercel() - let staticMiddleware: ConnectMiddleware | undefined - let compressMiddleware: ConnectMiddleware | undefined - - return async function handler({ - req, - res, - next, - platformRequest - }: { - req: IncomingMessage - res: ServerResponse - next?: (err?: unknown) => void - platformRequest: PlatformRequest - }): Promise { - if (req.method !== 'GET') { - next?.() - return false - } - - if (globalStore.isPluginLoaded) { - const handled = await handleViteDevServer(req, res) - if (handled) return true - } else { - const isAsset = req.url?.startsWith('/assets/') - const shouldCompressResponse = compressionType === true || (compressionType === 'static' && isAsset) - if (shouldCompressResponse) { - await applyCompression(req, res, shouldCache) - } - - if (staticConfig) { - const handled = await serveStaticFiles(req, res, staticConfig) - if (handled) return true - } - } - - const httpResponse = await renderPage({ - url: req.url!, - headers: parseHeaders(req.headers), - options - }) - if (!httpResponse) { - next?.() - return false - } - await writeHttpResponse(httpResponse, res) - return true - } - - async function applyCompression(req: IncomingMessage, res: ServerResponse, shouldCache: boolean) { - if (!compressMiddleware) { - const { default: shrinkRay } = await import('@nitedani/shrink-ray-current') - compressMiddleware = shrinkRay({ cacheSize: shouldCache ? '128mB' : false }) as ConnectMiddleware - } - compressMiddleware(req, res, () => {}) - } - - async function serveStaticFiles( - req: IncomingMessage, - res: ServerResponse, - config: { root: string; cache: boolean } - ): Promise { - if (!staticMiddleware) { - const { default: sirv } = await import('sirv') - staticMiddleware = sirv(config.root, { etag: true }) - } - - return new Promise((resolve) => { - res.once('close', () => resolve(true)) - staticMiddleware!(req, res, () => resolve(false)) - }) - } -} - -function handleViteDevServer(req: IncomingMessage, res: ServerResponse): Promise { - return new Promise((resolve) => { - res.once('close', () => resolve(true)) - assert(globalStore.viteDevServer) - globalStore.viteDevServer.middlewares(req, res, () => resolve(false)) - }) -} - -export function resolveStaticConfig(static_: VikeOptions['static']): false | { root: string; cache: boolean } { - // Disable static file serving for Vercel - // Vercel will serve static files on its own - // See vercel.json > outputDirectory - if (isVercel()) return false - if (static_ === false) return false - - const argv1 = process.argv[1] - const entrypointDirAbs = argv1 - ? dirname(isAbsolute(argv1) ? argv1 : join(process.cwd(), argv1)) - : dirname(fileURLToPath(import.meta.url)) - const defaultStaticDir = join(entrypointDirAbs, '..', 'client') - - if (static_ === true || static_ === undefined) { - return { root: defaultStaticDir, cache: true } - } - if (typeof static_ === 'string') { - return { root: static_, cache: true } - } - return { - root: static_.root ?? defaultStaticDir, - cache: static_.cache ?? true - } -} diff --git a/packages/vike-node/src/runtime/handler-web-and-node.ts b/packages/vike-node/src/runtime/handler-web-and-node.ts deleted file mode 100644 index f0a05a7..0000000 --- a/packages/vike-node/src/runtime/handler-web-and-node.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { isNodeLike } from '../utils/isNodeLike.js' -import type { VikeOptions } from './types.js' - -type Handler = (params: { - request: Request - platformRequest: PlatformRequest -}) => Response | undefined | Promise - -export function createHandler(options: VikeOptions = {}): Handler { - let nodeLike: boolean | undefined = undefined - let nodeHandler: Handler | undefined = undefined - let webHandler: Handler | undefined = undefined - - return async function handler({ request, platformRequest }) { - if (request.method !== 'GET') { - return undefined - } - - nodeLike ??= await isNodeLike() - - if (nodeLike) { - if (!nodeHandler) { - const { connectToWeb } = await import('./adapters/connectToWeb.js') - const { createHandler } = await import('./handler-node-only.js') - const nodeOnlyHandler = createHandler(options) - nodeHandler = ({ request, platformRequest }) => { - const connectedHandler = connectToWeb((req, res, next) => - nodeOnlyHandler({ req, res, platformRequest, next }) - ) - return connectedHandler(request) - } - } - - return nodeHandler({ request, platformRequest }) - } - - if (!webHandler) { - const { createHandler } = await import('./handler-web-only.js') - webHandler = createHandler(options) - } - - return webHandler({ request, platformRequest }) - } -} diff --git a/packages/vike-node/src/runtime/handler-web-only.ts b/packages/vike-node/src/runtime/handler-web-only.ts deleted file mode 100644 index 2ba5b72..0000000 --- a/packages/vike-node/src/runtime/handler-web-only.ts +++ /dev/null @@ -1,12 +0,0 @@ -import type { VikeOptions } from './types.js' -import { parseHeaders } from './utils/header-utils.js' -import { renderPageWeb } from './vike-handler.js' - -export function createHandler(options: VikeOptions = {}) { - return async function handler({ request, platformRequest }: { request: Request; platformRequest: PlatformRequest }) { - if (request.method !== 'GET') { - return undefined - } - return renderPageWeb({ url: request.url, headers: parseHeaders(request.headers), platformRequest, options }) - } -} diff --git a/packages/vike-node/src/runtime/types.ts b/packages/vike-node/src/runtime/types.ts index 8c5db2d..155bb2a 100644 --- a/packages/vike-node/src/runtime/types.ts +++ b/packages/vike-node/src/runtime/types.ts @@ -12,7 +12,7 @@ export type VikeOptions = { export type ConnectMiddleware< PlatformRequest extends IncomingMessage = IncomingMessage, PlatformResponse extends ServerResponse = ServerResponse -> = (req: PlatformRequest, res: PlatformResponse, next: NextFunction) => void +> = (req: PlatformRequest, res: PlatformResponse, next: NextFunction) => void | Promise export type ConnectMiddlewareBoolean< PlatformRequest extends IncomingMessage = IncomingMessage, PlatformResponse extends ServerResponse = ServerResponse diff --git a/packages/vike-node/src/runtime/utils/header-utils.ts b/packages/vike-node/src/runtime/utils/header-utils.ts index 90786c9..3e08b43 100644 --- a/packages/vike-node/src/runtime/utils/header-utils.ts +++ b/packages/vike-node/src/runtime/utils/header-utils.ts @@ -1,29 +1,8 @@ -export { flattenHeaders, groupHeaders, parseHeaders } +export { flattenHeaders, parseHeaders } -import type { OutgoingHttpHeaders } from 'http' +import type { OutgoingHttpHeaders } from 'node:http' import { HeadersProvided } from '../types.js' -function groupHeaders(headers: [string, string][]): [string, string | string[]][] { - const grouped: { [key: string]: string | string[] } = {} - - headers.forEach(([key, value]) => { - if (grouped[key]) { - // If the key already exists, append the new value - if (Array.isArray(grouped[key])) { - ;(grouped[key] as string[]).push(value) - } else { - grouped[key] = [grouped[key] as string, value] - } - } else { - // If the key doesn't exist, add it to the object - grouped[key] = value - } - }) - - // Convert the object back to an array - return Object.entries(grouped) -} - function flattenHeaders(headers: OutgoingHttpHeaders): [string, string][] { const flatHeaders: [string, string][] = [] diff --git a/packages/vike-node/src/runtime/utils/resolve-static-config.ts b/packages/vike-node/src/runtime/utils/resolve-static-config.ts new file mode 100644 index 0000000..1821384 --- /dev/null +++ b/packages/vike-node/src/runtime/utils/resolve-static-config.ts @@ -0,0 +1,29 @@ +import { dirname, isAbsolute, join } from 'node:path' +import { fileURLToPath } from 'node:url' +import { isVercel } from '../../utils/isVercel.js' +import type { VikeOptions } from '../types.js' + +export function resolveStaticConfig(static_: VikeOptions['static']): false | { root: string; cache: boolean } { + // Disable static file serving for Vercel + // Vercel will serve static files on its own + // See vercel.json > outputDirectory + if (isVercel()) return false + if (static_ === false) return false + + const argv1 = process.argv[1] + const entrypointDirAbs = argv1 + ? dirname(isAbsolute(argv1) ? argv1 : join(process.cwd(), argv1)) + : dirname(fileURLToPath(import.meta.url)) + const defaultStaticDir = join(entrypointDirAbs, '..', 'client') + + if (static_ === true || static_ === undefined) { + return { root: defaultStaticDir, cache: true } + } + if (typeof static_ === 'string') { + return { root: static_, cache: true } + } + return { + root: static_.root ?? defaultStaticDir, + cache: static_.cache ?? true + } +} diff --git a/packages/vike-node/src/runtime/utils/writeHttpResponse.ts b/packages/vike-node/src/runtime/utils/writeHttpResponse.ts deleted file mode 100644 index 488cec2..0000000 --- a/packages/vike-node/src/runtime/utils/writeHttpResponse.ts +++ /dev/null @@ -1,18 +0,0 @@ -export { writeHttpResponse } - -import type { ServerResponse } from 'http' -import { assert } from '../../utils/assert.js' -import type { VikeHttpResponse } from '../types.js' -import { groupHeaders } from './header-utils.js' - -async function writeHttpResponse(httpResponse: VikeHttpResponse, res: ServerResponse) { - assert(httpResponse) - const { statusCode, headers } = httpResponse - const groupedHeaders = groupHeaders(headers) - groupedHeaders.forEach(([name, value]) => res.setHeader(name, value)) - res.statusCode = statusCode - httpResponse.pipe(res) - await new Promise((resolve) => { - res.once('close', resolve) - }) -} diff --git a/packages/vike-node/src/runtime/vike-handler.ts b/packages/vike-node/src/runtime/vike-handler.ts index 5194392..50f6718 100644 --- a/packages/vike-node/src/runtime/vike-handler.ts +++ b/packages/vike-node/src/runtime/vike-handler.ts @@ -1,13 +1,13 @@ -import { parseHeaders } from './utils/header-utils.js' -import { renderPage as _renderPage } from 'vike/server' -import type { ConnectMiddleware, VikeHttpResponse, VikeOptions } from './types.js' -import { type Get, pipe, type UniversalHandler, type UniversalMiddleware } from '@universal-middleware/core' +import type { IncomingMessage, ServerResponse } from 'http' import compressMiddlewareFactory from '@universal-middleware/compress' -import { globalStore } from './globalStore.js' +import { type Get, type UniversalHandler, type UniversalMiddleware, pipe } from '@universal-middleware/core' +import { renderPage as _renderPage } from 'vike/server' import { assert } from '../utils/assert.js' -import type { IncomingMessage, ServerResponse } from 'http' -import { connectToWebFallback } from './adapters/connectToWeb.js' import { isVercel } from '../utils/isVercel.js' +import { connectToWeb } from './adapters/connectToWeb.js' +import { globalStore } from './globalStore.js' +import type { ConnectMiddleware, VikeHttpResponse, VikeOptions } from './types.js' +import { parseHeaders } from './utils/header-utils.js' export { renderPage, renderPageWeb } @@ -80,7 +80,7 @@ export const renderPageHandler = ((options?) => async (request, context, runtime if (nodeReq) { globalStore.setupHMRProxy(nodeReq) - const { resolveStaticConfig } = await import('./handler-node-only.js') + const { resolveStaticConfig } = await import('./utils/resolve-static-config.js') staticConfig = resolveStaticConfig(options?.static) } @@ -91,7 +91,7 @@ export const renderPageHandler = ((options?) => async (request, context, runtime if (handled) return handled } else if (nodeReq) { if (staticConfig) { - const handled = await connectToWebFallback(serveStaticFiles)(request) + const handled = await connectToWeb(serveStaticFiles)(request) if (handled) return handled } } @@ -133,7 +133,7 @@ export const renderPageHandler = ((options?) => async (request, context, runtime export const renderPageUniversal = ((options?) => pipe(renderPageCompress(options), renderPageHandler(options))) satisfies Get<[options: VikeOptions], UniversalHandler> -const web = connectToWebFallback(handleViteDevServer) +const web = connectToWeb(handleViteDevServer) function handleViteDevServer(req: IncomingMessage, res: ServerResponse): Promise { return new Promise((resolve) => { diff --git a/packages/vike-node/tsup.config.js b/packages/vike-node/tsup.config.js index ace9e21..aa4e81d 100644 --- a/packages/vike-node/tsup.config.js +++ b/packages/vike-node/tsup.config.js @@ -1,6 +1,8 @@ import { defineConfig } from 'tsup' import universalMiddleware from 'universal-middleware/esbuild' +const external = ['stream', 'http', 'path', 'url', 'zlib'] + export default defineConfig([ { entry: { @@ -18,7 +20,7 @@ export default defineConfig([ esbuildOptions(opts) { opts.outbase = 'src' }, - external: ['stream', 'http', 'node:stream', 'node:http', 'path', 'url', 'node:zlib'], + external: external.map((e) => [e, `node:${e}`]).flat(1), dts: true, outDir: 'dist', bundle: true From 5a19bb75d3aac232af153aff760ca4f6fe4deb71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=ABl=20Charles?= Date: Wed, 16 Oct 2024 11:00:30 +0200 Subject: [PATCH 12/36] chore: cleanup --- packages/vike-node/src/connect.ts | 1 - packages/vike-node/src/elysia.ts | 1 - packages/vike-node/src/fastify.ts | 1 - packages/vike-node/src/h3.ts | 1 - packages/vike-node/src/hono.ts | 1 - .../src/runtime/frameworks/connect.ts | 44 -------------- .../src/runtime/frameworks/elysia.ts | 44 -------------- .../src/runtime/frameworks/fastify.ts | 56 ------------------ .../vike-node/src/runtime/frameworks/h3.ts | 50 ---------------- .../vike-node/src/runtime/frameworks/hono.ts | 58 ------------------- .../vike-node/src/runtime/vike-handler.ts | 34 ++--------- packages/vike-node/src/vike.handler.ts | 9 ++- 12 files changed, 12 insertions(+), 288 deletions(-) delete mode 100644 packages/vike-node/src/connect.ts delete mode 100644 packages/vike-node/src/elysia.ts delete mode 100644 packages/vike-node/src/fastify.ts delete mode 100644 packages/vike-node/src/h3.ts delete mode 100644 packages/vike-node/src/hono.ts delete mode 100644 packages/vike-node/src/runtime/frameworks/connect.ts delete mode 100644 packages/vike-node/src/runtime/frameworks/elysia.ts delete mode 100644 packages/vike-node/src/runtime/frameworks/fastify.ts delete mode 100644 packages/vike-node/src/runtime/frameworks/h3.ts delete mode 100644 packages/vike-node/src/runtime/frameworks/hono.ts diff --git a/packages/vike-node/src/connect.ts b/packages/vike-node/src/connect.ts deleted file mode 100644 index d10bf7f..0000000 --- a/packages/vike-node/src/connect.ts +++ /dev/null @@ -1 +0,0 @@ -export { vike, vike as default } from './runtime/frameworks/connect.js' diff --git a/packages/vike-node/src/elysia.ts b/packages/vike-node/src/elysia.ts deleted file mode 100644 index a5a013c..0000000 --- a/packages/vike-node/src/elysia.ts +++ /dev/null @@ -1 +0,0 @@ -export { vike, vike as default } from './runtime/frameworks/elysia.js' diff --git a/packages/vike-node/src/fastify.ts b/packages/vike-node/src/fastify.ts deleted file mode 100644 index 924fcee..0000000 --- a/packages/vike-node/src/fastify.ts +++ /dev/null @@ -1 +0,0 @@ -export { vike, vike as default } from './runtime/frameworks/fastify.js' diff --git a/packages/vike-node/src/h3.ts b/packages/vike-node/src/h3.ts deleted file mode 100644 index 3e8c60f..0000000 --- a/packages/vike-node/src/h3.ts +++ /dev/null @@ -1 +0,0 @@ -export { vike, vike as default } from './runtime/frameworks/h3.js' diff --git a/packages/vike-node/src/hono.ts b/packages/vike-node/src/hono.ts deleted file mode 100644 index 0f46171..0000000 --- a/packages/vike-node/src/hono.ts +++ /dev/null @@ -1 +0,0 @@ -export { vike, vike as default } from './runtime/frameworks/hono.js' diff --git a/packages/vike-node/src/runtime/frameworks/connect.ts b/packages/vike-node/src/runtime/frameworks/connect.ts deleted file mode 100644 index 8c30782..0000000 --- a/packages/vike-node/src/runtime/frameworks/connect.ts +++ /dev/null @@ -1,44 +0,0 @@ -export { vike } - -import type { IncomingMessage, ServerResponse } from 'http' -import { globalStore } from '../globalStore.js' -import type { NextFunction, VikeOptions } from '../types.js' - -/** - * Creates middleware for Express-like frameworks to handle Vike requests. - * - * @template PlatformRequest - The type of the request object, extending IncomingMessage. - * @template PlatformResponse - The type of the response object, extending ServerResponse. - * - * @param {VikeOptions} [options] - Configuration options for Vike. - * - * @returns {(req: PlatformRequest, res: PlatformResponse, next?: NextFunction) => void} - * A single middleware function that handles Vike requests. This function: - * 1. Checks for and handles HMR WebSocket upgrade requests. - * 2. Processes regular requests using Vike's handler. - * 3. Calls the next middleware if the request is not handled by Vike. - * - * @example - * ```js - * import express from 'express' - * import { vike } from 'vike-node/connect' - * - * const app = express() - * app.use(vike()) - * ``` - * - */ -function vike( - options?: VikeOptions -): (req: PlatformRequest, res: PlatformResponse, next?: NextFunction) => void { - const handler = createHandler(options) - return (req, res, next) => { - globalStore.setupHMRProxy(req) - handler({ - req, - res, - next, - platformRequest: req - }) - } -} diff --git a/packages/vike-node/src/runtime/frameworks/elysia.ts b/packages/vike-node/src/runtime/frameworks/elysia.ts deleted file mode 100644 index a189dda..0000000 --- a/packages/vike-node/src/runtime/frameworks/elysia.ts +++ /dev/null @@ -1,44 +0,0 @@ -export { vike } - -import { type Context, Elysia, NotFoundError } from 'elysia' -import { createHandler } from '../handler-web-and-node.js' -import type { VikeOptions } from '../types.js' - -/** - * Creates an Elysia plugin to handle Vike requests. - * - * @param {VikeOptions} [options] - Configuration options for Vike. - * - * @returns {Elysia} An Elysia plugin that handles all GET requests and processes them with Vike. - * - * @description - * The plugin: - * 1. Sets up a catch-all GET route handler that processes requests using Vike's handler. - * 2. Throws a NotFoundError if Vike doesn't handle the request, allowing Elysia to manage 404 responses. - * - * @example - * ```js - * import { Elysia } from 'elysia' - * import { vike } from 'vike-node/elysia' - * - * const app = new Elysia() - * app.use(vike()) - * app.listen(3000) - * ``` - * - * @throws {NotFoundError} Thrown when Vike doesn't handle the request, allowing Elysia to manage 404 responses. - */ -function vike(options?: VikeOptions): Elysia { - const handler = createHandler(options) - return new Elysia({ - name: 'vike-node:elysia' - }).get('*', async (ctx) => { - const response = await handler({ request: ctx.request, platformRequest: ctx }) - - if (response) { - return response - } - - throw new NotFoundError() - }) -} diff --git a/packages/vike-node/src/runtime/frameworks/fastify.ts b/packages/vike-node/src/runtime/frameworks/fastify.ts deleted file mode 100644 index ec8333d..0000000 --- a/packages/vike-node/src/runtime/frameworks/fastify.ts +++ /dev/null @@ -1,56 +0,0 @@ -export { vike } - -import type { FastifyPluginCallback, FastifyRequest } from 'fastify' -import { createServerResponse } from '../adapters/createServerResponse.js' -import { globalStore } from '../globalStore.js' -import { createHandler } from '../handler-node-only.js' -import type { VikeOptions } from '../types.js' - -/** - * Creates a Fastify plugin to handle Vike requests and Hot Module Replacement (HMR). - * - * @param {VikeOptions} [options] - Configuration options for Vike. - * - * @returns {FastifyPluginCallback} A Fastify plugin that handles all GET requests and processes them with Vike. - * - * @description - * This function creates a Fastify plugin that integrates Vike's server-side rendering capabilities - * and handles Hot Module Replacement (HMR) for development environments. The plugin: - * 1. Checks for and handles HMR WebSocket upgrade requests. - * 2. Processes regular requests using Vike's handler. - * 3. If Vike doesn't handle the request, it calls Fastify's `reply.callNotFound()`. - * - * @example - * ```js - * import fastify from 'fastify' - * import { vike } from 'vike-node/fastify' - * - * const app = fastify() - * app.register(vike()) - * ``` - * - */ -function vike(options?: VikeOptions): FastifyPluginCallback { - const handler = createHandler(options) - return function plugin(instance, _options, done) { - instance.get('*', async (req, reply) => { - globalStore.setupHMRProxy(req.raw) - const { res, onReadable } = createServerResponse(req.raw) - onReadable(({ readable, headers, statusCode }) => { - reply.code(statusCode) - reply.headers(headers) - reply.send(readable) - }) - await handler({ - req: req.raw, - res, - platformRequest: req, - next() { - reply.callNotFound() - } - }) - }) - - done() - } -} diff --git a/packages/vike-node/src/runtime/frameworks/h3.ts b/packages/vike-node/src/runtime/frameworks/h3.ts deleted file mode 100644 index 0c60e88..0000000 --- a/packages/vike-node/src/runtime/frameworks/h3.ts +++ /dev/null @@ -1,50 +0,0 @@ -export { vike } - -import { eventHandler, EventHandler } from 'h3' -import type { IncomingMessage } from 'node:http' -import { globalStore } from '../globalStore.js' -import { createHandler } from '../handler-node-only.js' -import type { VikeOptions } from '../types.js' - -/** - * Creates an h3 event handler to process Vike requests. - * - * @param {VikeOptions} [options] - Configuration options for Vike. - * - * @returns {EventHandler} An h3 event handler that processes requests with Vike. - * - * @description - * This function creates an h3 event handler that integrates Vike's server-side rendering capabilities. - * The handler: - * 1. Checks for and handles HMR WebSocket upgrade requests. - * 2. Processes regular requests using Vike's handler. - * - * @example - * ```js - * import { createApp } from 'h3' - * import { vike } from 'vike-node/h3' - * - * const app = createApp() - * app.use(vike()) - * - * ``` - * - * @remarks - * - This handler directly uses Node.js' IncomingMessage and ServerResponse objects from the h3 event. - * - */ -function vike(options?: VikeOptions): EventHandler { - const handler = createHandler(options) - return eventHandler(async (event) => { - const { - node: { req, res } - } = event - - globalStore.setupHMRProxy(req) - await handler({ - req, - res, - platformRequest: req - }) - }) -} diff --git a/packages/vike-node/src/runtime/frameworks/hono.ts b/packages/vike-node/src/runtime/frameworks/hono.ts deleted file mode 100644 index b4355c3..0000000 --- a/packages/vike-node/src/runtime/frameworks/hono.ts +++ /dev/null @@ -1,58 +0,0 @@ -export { vike } - -import type { Context, MiddlewareHandler } from 'hono' -import type { IncomingMessage } from 'http' -import { globalStore } from '../globalStore.js' -import type { VikeOptions } from '../types.js' - -/** - * Creates a Hono middleware to handle Vike requests and HMR (Hot Module Replacement). - * - * @param {VikeOptions} [options] - Configuration options for Vike. - * - * @returns {MiddlewareHandler} A Hono middleware function that processes requests with Vike. - * - * @description - * This function creates a Hono middleware that integrates Vike's server-side rendering capabilities - * and handles Hot Module Replacement (HMR) for development environments. The middleware: - * - * 1. Checks for and handles HMR WebSocket upgrade requests. - * 2. Processes regular requests using Vike's handler. - * 3. Adapts Node.js-style request handling to work with Web standard Response objects. - * 4. Allows pass-through to next middleware if Vike doesn't handle the request. - * - * @example - * ```js - * import { Hono } from 'hono' - * import { vike } from 'vike-node/hono' - * - * const app = new Hono() - * app.use('*', vike()) - * ``` - * - */ -function vike(options?: VikeOptions): MiddlewareHandler { - let handler: ReturnType> | undefined = undefined - return async function middleware(ctx, next) { - if (ctx.env.incoming) { - const req = ctx.env.incoming as IncomingMessage - globalStore.setupHMRProxy(req) - } - - if (!handler) { - const { createHandler } = await import('vike-node/__handler') - handler = createHandler(options) - } - const response = await handler({ - request: ctx.req.raw, - platformRequest: ctx - }) - - if (response) { - return response - } - - // If not handled by Vike, continue to next middleware - await next() - } -} diff --git a/packages/vike-node/src/runtime/vike-handler.ts b/packages/vike-node/src/runtime/vike-handler.ts index 50f6718..77ac5cb 100644 --- a/packages/vike-node/src/runtime/vike-handler.ts +++ b/packages/vike-node/src/runtime/vike-handler.ts @@ -1,6 +1,6 @@ import type { IncomingMessage, ServerResponse } from 'http' import compressMiddlewareFactory from '@universal-middleware/compress' -import { type Get, type UniversalHandler, type UniversalMiddleware, pipe } from '@universal-middleware/core' +import { type Get, type UniversalHandler, type UniversalMiddleware } from '@universal-middleware/core' import { renderPage as _renderPage } from 'vike/server' import { assert } from '../utils/assert.js' import { isVercel } from '../utils/isVercel.js' @@ -9,9 +9,9 @@ import { globalStore } from './globalStore.js' import type { ConnectMiddleware, VikeHttpResponse, VikeOptions } from './types.js' import { parseHeaders } from './utils/header-utils.js' -export { renderPage, renderPageWeb } +export { renderPage } -async function renderPage({ +async function renderPage({ url, headers, options @@ -33,30 +33,7 @@ async function renderPage({ return pageContext.httpResponse } -async function renderPageWeb({ - url, - headers, - options -}: { - url: string - headers: [string, string][] - platformRequest: PlatformRequest - options: VikeOptions -}) { - const httpResponse = await renderPage({ - url, - headers, - options - }) - if (!httpResponse) return undefined - - const { readable, writable } = new TransformStream() - httpResponse.pipe(writable) - - return new Response(readable, { status: httpResponse.statusCode, headers: httpResponse.headers }) -} - -export const renderPageCompress = ((options?) => async (request, context, runtime: any) => { +export const renderPageCompress = ((options?) => async (request, _context, runtime: any) => { const nodeReq: IncomingMessage | undefined = runtime.req const compressionType = options?.compress ?? !isVercel() const compressMiddleware = compressMiddlewareFactory()(request) @@ -130,9 +107,6 @@ export const renderPageHandler = ((options?) => async (request, context, runtime }) }) satisfies Get<[options: VikeOptions], UniversalHandler> -export const renderPageUniversal = ((options?) => - pipe(renderPageCompress(options), renderPageHandler(options))) satisfies Get<[options: VikeOptions], UniversalHandler> - const web = connectToWeb(handleViteDevServer) function handleViteDevServer(req: IncomingMessage, res: ServerResponse): Promise { diff --git a/packages/vike-node/src/vike.handler.ts b/packages/vike-node/src/vike.handler.ts index 0fed8f5..b497854 100644 --- a/packages/vike-node/src/vike.handler.ts +++ b/packages/vike-node/src/vike.handler.ts @@ -1,3 +1,10 @@ -import { renderPageUniversal } from './runtime/vike-handler.js' +import { Get, UniversalHandler, pipe } from '@universal-middleware/core' +import { VikeOptions } from './runtime/types.js' +import { renderPageCompress, renderPageHandler } from './runtime/vike-handler.js' + +const renderPageUniversal = ((options?) => pipe(renderPageCompress(options), renderPageHandler(options))) satisfies Get< + [options: VikeOptions], + UniversalHandler +> export default renderPageUniversal From 14807e726d12b305a0202c4509bc6cc5ceb5ce9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=ABl=20Charles?= Date: Wed, 16 Oct 2024 11:06:12 +0200 Subject: [PATCH 13/36] test: use pnpm instead of npm --- packages/vike-node/package.json | 36 +--------------------------- test/vike-node/.dev-express.test.ts | 2 +- test/vike-node/.dev-fastify.test.ts | 2 +- test/vike-node/.dev-h3.test.ts | 2 +- test/vike-node/.dev-hono.test.ts | 2 +- test/vike-node/.prod-express.test.ts | 2 +- test/vike-node/.prod-fastify.test.ts | 2 +- test/vike-node/.prod-h3.test.ts | 2 +- test/vike-node/.prod-hono.test.ts | 2 +- test/vike-node/.testRun.ts | 9 ++++--- 10 files changed, 13 insertions(+), 48 deletions(-) diff --git a/packages/vike-node/package.json b/packages/vike-node/package.json index d79a8af..5542db7 100644 --- a/packages/vike-node/package.json +++ b/packages/vike-node/package.json @@ -7,15 +7,6 @@ "exports": { "./plugin": "./dist/plugin/index.js", ".": "./dist/index.js", - "./__handler": { - "vike-node-dev": "./dist/runtime/handler-web-and-node.js", - "edge-light": "./dist/runtime/handler-web-only.js", - "worker": "./dist/runtime/handler-web-only.js", - "workerd": "./dist/runtime/handler-web-only.js", - "browser": "./dist/runtime/handler-web-only.js", - "types": "./dist/runtime/handler-web-only.d.ts", - "default": "./dist/runtime/handler-web-and-node.js" - }, "./handler": { "types": "./dist/handler.d.ts", "import": "./dist/handler.js", @@ -102,31 +93,6 @@ "vike": "^0.4.198", "vite": "^5.4.8" }, - "typesVersions": { - "*": { - "connect": [ - "./dist/connect.d.ts" - ], - "fastify": [ - "./dist/fastify.d.ts" - ], - "h3": [ - "./dist/h3.d.ts" - ], - "hono": [ - "./dist/hono.d.ts" - ], - "elysia": [ - "./dist/elysia.d.ts" - ], - "plugin": [ - "./dist/plugin/index.d.ts" - ], - ".": [ - "./dist/index.d.ts" - ] - } - }, "files": [ "dist/" ], @@ -142,4 +108,4 @@ "@universal-middleware/hono": "^0", "@universal-middleware/webroute": "^0" } -} \ No newline at end of file +} diff --git a/test/vike-node/.dev-express.test.ts b/test/vike-node/.dev-express.test.ts index 474b92e..f3199dd 100644 --- a/test/vike-node/.dev-express.test.ts +++ b/test/vike-node/.dev-express.test.ts @@ -1,4 +1,4 @@ process.env.VIKE_NODE_FRAMEWORK = 'express' import { testRun } from './.testRun' -testRun('npm run dev') +testRun('pnpm run dev') diff --git a/test/vike-node/.dev-fastify.test.ts b/test/vike-node/.dev-fastify.test.ts index d0db908..b7e4d9e 100644 --- a/test/vike-node/.dev-fastify.test.ts +++ b/test/vike-node/.dev-fastify.test.ts @@ -1,4 +1,4 @@ process.env.VIKE_NODE_FRAMEWORK = 'fastify' import { testRun } from './.testRun' -testRun('npm run dev') +testRun('pnpm run dev') diff --git a/test/vike-node/.dev-h3.test.ts b/test/vike-node/.dev-h3.test.ts index fbf210f..b66fd08 100644 --- a/test/vike-node/.dev-h3.test.ts +++ b/test/vike-node/.dev-h3.test.ts @@ -1,4 +1,4 @@ process.env.VIKE_NODE_FRAMEWORK = 'h3' import { testRun } from './.testRun' -testRun('npm run dev') +testRun('pnpm run dev') diff --git a/test/vike-node/.dev-hono.test.ts b/test/vike-node/.dev-hono.test.ts index 21e6b14..a7c45eb 100644 --- a/test/vike-node/.dev-hono.test.ts +++ b/test/vike-node/.dev-hono.test.ts @@ -1,4 +1,4 @@ process.env.VIKE_NODE_FRAMEWORK = 'hono' import { testRun } from './.testRun' -testRun('npm run dev') +testRun('pnpm run dev') diff --git a/test/vike-node/.prod-express.test.ts b/test/vike-node/.prod-express.test.ts index fbcfbcd..f87c9bf 100644 --- a/test/vike-node/.prod-express.test.ts +++ b/test/vike-node/.prod-express.test.ts @@ -1,4 +1,4 @@ process.env.VIKE_NODE_FRAMEWORK = 'express' import { testRun } from './.testRun' -testRun('npm run prod') +testRun('pnpm run prod') diff --git a/test/vike-node/.prod-fastify.test.ts b/test/vike-node/.prod-fastify.test.ts index 2e9f9fa..390b9b2 100644 --- a/test/vike-node/.prod-fastify.test.ts +++ b/test/vike-node/.prod-fastify.test.ts @@ -1,4 +1,4 @@ process.env.VIKE_NODE_FRAMEWORK = 'fastify' import { testRun } from './.testRun' -testRun('npm run prod') +testRun('pnpm run prod') diff --git a/test/vike-node/.prod-h3.test.ts b/test/vike-node/.prod-h3.test.ts index ab2e95d..a38c44a 100644 --- a/test/vike-node/.prod-h3.test.ts +++ b/test/vike-node/.prod-h3.test.ts @@ -1,4 +1,4 @@ process.env.VIKE_NODE_FRAMEWORK = 'h3' import { testRun } from './.testRun' -testRun('npm run prod') +testRun('pnpm run prod') diff --git a/test/vike-node/.prod-hono.test.ts b/test/vike-node/.prod-hono.test.ts index fdc5814..e841da2 100644 --- a/test/vike-node/.prod-hono.test.ts +++ b/test/vike-node/.prod-hono.test.ts @@ -1,4 +1,4 @@ process.env.VIKE_NODE_FRAMEWORK = 'hono' import { testRun } from './.testRun' -testRun('npm run prod') +testRun('pnpm run prod') diff --git a/test/vike-node/.testRun.ts b/test/vike-node/.testRun.ts index 2bc2751..444b69b 100644 --- a/test/vike-node/.testRun.ts +++ b/test/vike-node/.testRun.ts @@ -1,11 +1,10 @@ export { testRun } -import { page, test, expect, run, getServerUrl, autoRetry, fetchHtml, isCI } from '@brillout/test-e2e' +import { autoRetry, expect, fetchHtml, getServerUrl, isCI, page, run, test } from '@brillout/test-e2e' -function testRun(cmd: 'npm run dev' | 'npm run prod') { - // FIXME exitCode 1 when using npm?? - run('p' + cmd, { serverUrl: 'http://127.0.0.1:3000' }) - const isProd = cmd === 'npm run prod' +function testRun(cmd: 'pnpm run dev' | 'pnpm run prod') { + run(cmd, { serverUrl: 'http://127.0.0.1:3000' }) + const isProd = cmd === 'pnpm run prod' test('HTML', async () => { const html = await fetchHtml('/') From e36ab260ef0795facc32cff3d39e5730b6f2df2f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=ABl=20Charles?= Date: Wed, 16 Oct 2024 11:12:56 +0200 Subject: [PATCH 14/36] chore: upgrade unenv --- packages/vike-node/package.json | 4 ++-- .../vike-node/src/runtime/vike-handler.ts | 1 - pnpm-lock.yaml | 20 +++++++++---------- 3 files changed, 12 insertions(+), 13 deletions(-) diff --git a/packages/vike-node/package.json b/packages/vike-node/package.json index 5542db7..c599af2 100644 --- a/packages/vike-node/package.json +++ b/packages/vike-node/package.json @@ -74,7 +74,7 @@ "esbuild": "^0.24.0", "resolve-from": "^5.0.0", "sirv": "^2.0.4", - "unenv-nightly": "2.0.0-1721914978.1a79944" + "unenv-nightly": "2.0.0-20241015-162228-03257ee" }, "peerDependencies": { "vike": "^0.4.198", @@ -108,4 +108,4 @@ "@universal-middleware/hono": "^0", "@universal-middleware/webroute": "^0" } -} +} \ No newline at end of file diff --git a/packages/vike-node/src/runtime/vike-handler.ts b/packages/vike-node/src/runtime/vike-handler.ts index 77ac5cb..9fdf2a3 100644 --- a/packages/vike-node/src/runtime/vike-handler.ts +++ b/packages/vike-node/src/runtime/vike-handler.ts @@ -64,7 +64,6 @@ export const renderPageHandler = ((options?) => async (request, context, runtime if (globalStore.isPluginLoaded) { const handled = await web(request) - // console.log({ url: request.url, handled: Boolean(handled) }) if (handled) return handled } else if (nodeReq) { if (staticConfig) { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4556929..7296e2c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -191,8 +191,8 @@ importers: specifier: ^2.0.4 version: 2.0.4 unenv-nightly: - specifier: 2.0.0-1721914978.1a79944 - version: 2.0.0-1721914978.1a79944 + specifier: 2.0.0-20241015-162228-03257ee + version: 2.0.0-20241015-162228-03257ee optionalDependencies: '@universal-middleware/cloudflare': specifier: ^0 @@ -2339,8 +2339,8 @@ packages: resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==} engines: {node: '>= 0.4'} - ohash@1.1.3: - resolution: {integrity: sha512-zuHHiGTYTA1sYJ/wZN+t5HKZaH23i4yI1HMwbuXm24Nid7Dv0KcuRlKoNKS9UNfAVSBlnGLcuQrnOKWOZoEGaw==} + ohash@1.1.4: + resolution: {integrity: sha512-FlDryZAahJmEF3VR3w1KogSEdWX3WhA5GPakFx4J81kEAiHyLMpdLLElS8n8dfNadMgAne/MywcvmogzscVt4g==} on-exit-leak-free@2.1.2: resolution: {integrity: sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==} @@ -2988,8 +2988,8 @@ packages: unenv-nightly@1.10.0-1717606461.a117952: resolution: {integrity: sha512-u3TfBX02WzbHTpaEfWEKwDijDSFAHcgXkayUZ+MVDrjhLFvgAJzFGTSTmwlEhwWi2exyRQey23ah9wELMM6etg==} - unenv-nightly@2.0.0-1721914978.1a79944: - resolution: {integrity: sha512-kUTkeoSeWS1/FselivRDhYeoFv5GRSB5VuCpQSw+HqWPVCE94JaHGS35GKgqrcAhWI1LUevUtSQar4+mXubOSQ==} + unenv-nightly@2.0.0-20241015-162228-03257ee: + resolution: {integrity: sha512-7bW2ro8iwTMinr1goqA64Vd87na8REBRMqMZu0FovV7XcG1g1p0/Y4ccfuQnwVi4eqD2ga0M0B90IuUN0IG5Ng==} unenv@1.10.0: resolution: {integrity: sha512-wY5bskBQFL9n3Eca5XnhH6KbUo/tfvkwm9OpcdCvLaeA7piBNbavbOKJySEwQ1V0RH6HvNlSAFRTpvTqgKRQXQ==} @@ -4798,7 +4798,7 @@ snapshots: defu: 6.1.4 destr: 2.0.3 iron-webcrypto: 1.2.1 - ohash: 1.1.3 + ohash: 1.1.4 radix3: 1.1.2 ufo: 1.5.4 uncrypto: 0.1.3 @@ -5126,7 +5126,7 @@ snapshots: object-inspect@1.13.2: {} - ohash@1.1.3: {} + ohash@1.1.4: {} on-exit-leak-free@2.1.2: {} @@ -5802,10 +5802,10 @@ snapshots: pathe: 1.1.2 ufo: 1.5.4 - unenv-nightly@2.0.0-1721914978.1a79944: + unenv-nightly@2.0.0-20241015-162228-03257ee: dependencies: defu: 6.1.4 - ohash: 1.1.3 + ohash: 1.1.4 pathe: 1.1.2 ufo: 1.5.4 From 38f0422f1a9df6a629a8d3c02f6b28d3b6cb1b8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=ABl=20Charles?= Date: Wed, 16 Oct 2024 11:28:49 +0200 Subject: [PATCH 15/36] chore: upgrade vike-react --- examples/express-react-vercel/package.json | 2 +- examples/express-react-vercel/server/index.js | 2 +- examples/express-react/package.json | 2 +- examples/express-react/server/index.js | 2 +- examples/hono-react-cf-pages/package.json | 2 +- examples/hono-react-vercel-edge/package.json | 2 +- pnpm-lock.yaml | 26 +++++++++---------- 7 files changed, 18 insertions(+), 20 deletions(-) diff --git a/examples/express-react-vercel/package.json b/examples/express-react-vercel/package.json index cc16631..269cf82 100644 --- a/examples/express-react-vercel/package.json +++ b/examples/express-react-vercel/package.json @@ -12,7 +12,7 @@ "react-dom": "^18.3.1", "vike": "^0.4.198", "vike-node": "^0.1.16", - "vike-react": "^0.4.18", + "vike-react": "^0.5.7", "vite": "^5.4.8" }, "type": "module" diff --git a/examples/express-react-vercel/server/index.js b/examples/express-react-vercel/server/index.js index 6617a18..bd9d8c6 100644 --- a/examples/express-react-vercel/server/index.js +++ b/examples/express-react-vercel/server/index.js @@ -1,5 +1,5 @@ import express from 'express' -import vike from 'vike-node/connect' +import vike from 'vike-node/express' export default startServer() diff --git a/examples/express-react/package.json b/examples/express-react/package.json index cc16631..269cf82 100644 --- a/examples/express-react/package.json +++ b/examples/express-react/package.json @@ -12,7 +12,7 @@ "react-dom": "^18.3.1", "vike": "^0.4.198", "vike-node": "^0.1.16", - "vike-react": "^0.4.18", + "vike-react": "^0.5.7", "vite": "^5.4.8" }, "type": "module" diff --git a/examples/express-react/server/index.js b/examples/express-react/server/index.js index de7b6bc..cd6b4d0 100644 --- a/examples/express-react/server/index.js +++ b/examples/express-react/server/index.js @@ -1,5 +1,5 @@ import express from 'express' -import vike from 'vike-node/connect' +import vike from 'vike-node/express' startServer() diff --git a/examples/hono-react-cf-pages/package.json b/examples/hono-react-cf-pages/package.json index 3d85c7c..e663758 100644 --- a/examples/hono-react-cf-pages/package.json +++ b/examples/hono-react-cf-pages/package.json @@ -14,7 +14,7 @@ "react-dom": "^18.3.1", "vike": "^0.4.198", "vike-node": "^0.1.16", - "vike-react": "^0.4.18", + "vike-react": "^0.5.7", "vite": "^5.4.8" }, "type": "module", diff --git a/examples/hono-react-vercel-edge/package.json b/examples/hono-react-vercel-edge/package.json index a56e3f6..368e80e 100644 --- a/examples/hono-react-vercel-edge/package.json +++ b/examples/hono-react-vercel-edge/package.json @@ -16,7 +16,7 @@ "react-dom": "^18.3.1", "vike": "^0.4.198", "vike-node": "^0.1.16", - "vike-react": "^0.4.18", + "vike-react": "^0.5.7", "vite": "^5.4.8", "telefunc": "^0.1.76" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7296e2c..7e8ef2c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -52,8 +52,8 @@ importers: specifier: link:../../packages/vike-node version: link:../../packages/vike-node vike-react: - specifier: ^0.4.18 - version: 0.4.18(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(vike@0.4.198(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.8(@types/node@22.2.0)))(vite@5.4.8(@types/node@22.2.0)) + specifier: ^0.5.7 + version: 0.5.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(vike@0.4.198(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.8(@types/node@22.2.0))) vite: specifier: ^5.4.8 version: 5.4.8(@types/node@22.2.0) @@ -82,8 +82,8 @@ importers: specifier: link:../../packages/vike-node version: link:../../packages/vike-node vike-react: - specifier: ^0.4.18 - version: 0.4.18(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(vike@0.4.198(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.8(@types/node@22.2.0)))(vite@5.4.8(@types/node@22.2.0)) + specifier: ^0.5.7 + version: 0.5.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(vike@0.4.198(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.8(@types/node@22.2.0))) vite: specifier: ^5.4.8 version: 5.4.8(@types/node@22.2.0) @@ -115,8 +115,8 @@ importers: specifier: link:../../packages/vike-node version: link:../../packages/vike-node vike-react: - specifier: ^0.4.18 - version: 0.4.18(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(vike@0.4.198(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.8(@types/node@22.2.0)))(vite@5.4.8(@types/node@22.2.0)) + specifier: ^0.5.7 + version: 0.5.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(vike@0.4.198(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.8(@types/node@22.2.0))) vite: specifier: ^5.4.8 version: 5.4.8(@types/node@22.2.0) @@ -158,8 +158,8 @@ importers: specifier: link:../../packages/vike-node version: link:../../packages/vike-node vike-react: - specifier: ^0.4.18 - version: 0.4.18(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(vike@0.4.198(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.8(@types/node@22.2.0)))(vite@5.4.8(@types/node@22.2.0)) + specifier: ^0.5.7 + version: 0.5.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(vike@0.4.198(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.8(@types/node@22.2.0))) vite: specifier: ^5.4.8 version: 5.4.8(@types/node@22.2.0) @@ -3044,13 +3044,12 @@ packages: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} engines: {node: '>= 0.8'} - vike-react@0.4.18: - resolution: {integrity: sha512-S7HTVvdU138vu7LZw94SUqHsDew4+lSj/jVbvpCgKPL4YEYfuNIo+1SMNxy7747bJ7W/rResc1B80UB9YCiRpw==} + vike-react@0.5.7: + resolution: {integrity: sha512-loAf5t4QmSLenjpPKzk9P3Q4lhQVltg/ze0r3k3PpF3ehBJJiOfFWvKwpCi9kvt50hNnQcZgleem5itDqN/KsA==} peerDependencies: react: '>=18.0.0' react-dom: '>=18.0.0' - vike: '>=0.4.178' - vite: '>=4.3.8' + vike: '>=0.4.182' vike@0.4.198: resolution: {integrity: sha512-+81aEkVL9Ruroxl5X1UcYAoGX0yiPx+8b9tgvuGbyNduvufF6FLDFxxRqd1G0+eaofit6xsbChG9uid4plMpog==} @@ -5859,13 +5858,12 @@ snapshots: vary@1.1.2: {} - vike-react@0.4.18(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(vike@0.4.198(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.8(@types/node@22.2.0)))(vite@5.4.8(@types/node@22.2.0)): + vike-react@0.5.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(vike@0.4.198(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.8(@types/node@22.2.0))): dependencies: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) react-streaming: 0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1) vike: 0.4.198(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.8(@types/node@22.2.0)) - vite: 5.4.8(@types/node@22.2.0) vike@0.4.198(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.8(@types/node@20.14.15)): dependencies: From b365ec001cb1336583a046ee453224f31f4f6ab2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=ABl=20Charles?= Date: Wed, 16 Oct 2024 11:55:33 +0200 Subject: [PATCH 16/36] fix: examples --- examples/hono-react-vercel-edge/vite.config.js | 2 +- packages/vike-node/src/plugin/plugins/edgePlugin.ts | 4 ++-- packages/vike-node/src/plugin/plugins/serverEntryPlugin.ts | 7 ++----- 3 files changed, 5 insertions(+), 8 deletions(-) diff --git a/examples/hono-react-vercel-edge/vite.config.js b/examples/hono-react-vercel-edge/vite.config.js index 7d8c786..061c53c 100644 --- a/examples/hono-react-vercel-edge/vite.config.js +++ b/examples/hono-react-vercel-edge/vite.config.js @@ -10,7 +10,7 @@ export default { entry: { index: 'server/node-entry.js', app: { - path: 'server/app.js', + entry: 'server/app.js', runtime: 'vercel' } } diff --git a/packages/vike-node/src/plugin/plugins/edgePlugin.ts b/packages/vike-node/src/plugin/plugins/edgePlugin.ts index 5e17779..e321a63 100644 --- a/packages/vike-node/src/plugin/plugins/edgePlugin.ts +++ b/packages/vike-node/src/plugin/plugins/edgePlugin.ts @@ -1,9 +1,9 @@ -import esbuild from 'esbuild' -import fs from 'fs/promises' import { builtinModules } from 'module' import { gzip } from 'node:zlib' import path from 'path' import { promisify } from 'util' +import esbuild from 'esbuild' +import fs from 'fs/promises' import { prerender } from 'vike/prerender' import type { Plugin, ResolvedConfig } from 'vite' import type { ConfigVikeNodeResolved, Runtime } from '../../types.js' diff --git a/packages/vike-node/src/plugin/plugins/serverEntryPlugin.ts b/packages/vike-node/src/plugin/plugins/serverEntryPlugin.ts index a4cc482..34cd1db 100644 --- a/packages/vike-node/src/plugin/plugins/serverEntryPlugin.ts +++ b/packages/vike-node/src/plugin/plugins/serverEntryPlugin.ts @@ -1,13 +1,13 @@ -import pc from '@brillout/picocolors' import { createRequire } from 'module' import path from 'path' +import pc from '@brillout/picocolors' +import type { ConfigVitePluginServerEntry } from 'vike/types' import type { Plugin, ResolvedConfig } from 'vite' import type { EntryResolved } from '../../types.js' import { assert, assertUsage } from '../../utils/assert.js' import { getConfigVikeNode } from '../utils/getConfigVikeNode.js' import { injectRollupInputs } from '../utils/injectRollupInputs.js' import { viteIsSSR } from '../utils/viteIsSSR.js' -import type { ConfigVitePluginServerEntry } from 'vike/types' const require_ = createRequire(import.meta.url) @@ -49,9 +49,6 @@ export function serverEntryPlugin(): Plugin { config ) } - - config.vitePluginServerEntry ??= {} - config.vitePluginServerEntry.inject = Object.keys(resolvedEntries) } } } From 87efe2c51c54ed4b005f925ea27b3c81a0641467 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=ABl=20Charles?= Date: Wed, 16 Oct 2024 13:45:45 +0200 Subject: [PATCH 17/36] chore: update compress middleware to support zlib when available --- packages/vike-node/package.json | 4 ++-- pnpm-lock.yaml | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/vike-node/package.json b/packages/vike-node/package.json index c599af2..e047194 100644 --- a/packages/vike-node/package.json +++ b/packages/vike-node/package.json @@ -69,7 +69,7 @@ "@brillout/picocolors": "^1.0.14", "@nitedani/shrink-ray-current": "^4.3.0", "@universal-middleware/core": "^0.2.13", - "@universal-middleware/compress": "^0.2.0", + "@universal-middleware/compress": "^0.2.1", "@vercel/nft": "^0.26.5", "esbuild": "^0.24.0", "resolve-from": "^5.0.0", @@ -108,4 +108,4 @@ "@universal-middleware/hono": "^0", "@universal-middleware/webroute": "^0" } -} \ No newline at end of file +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7e8ef2c..2e0fc2f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -173,8 +173,8 @@ importers: specifier: ^4.3.0 version: 4.3.0 '@universal-middleware/compress': - specifier: ^0.2.0 - version: 0.2.0 + specifier: ^0.2.1 + version: 0.2.1 '@universal-middleware/core': specifier: ^0.2.13 version: 0.2.13 @@ -1215,8 +1215,8 @@ packages: '@universal-middleware/cloudflare@0.2.6': resolution: {integrity: sha512-G92QqkKEtcWaVXV2yjdb3dHvj7yfWNSYXcbV9sWpgU6R7WHsjSzSjS7euNytD6R355Ac5wUVgqI8WRHZ417dsw==} - '@universal-middleware/compress@0.2.0': - resolution: {integrity: sha512-08T6Q91jINHZffE8hnr6B+xUMp+MMVPDAl6l8miKkJJRg4ARQ4kANWRYSfispK1OZ+0IOn6ajvYky7TCiWYU9Q==} + '@universal-middleware/compress@0.2.1': + resolution: {integrity: sha512-Q2xs+WaYXRgKGj4jxjc5BXkU2hvxKPFOqDgTIkt9340sq7dOfmPVkL/04Hs8oaJ9BSwlmSd7/5kxXne4n40iBw==} '@universal-middleware/core@0.2.13': resolution: {integrity: sha512-FkWz+UQuaqRPzK8xc2GIyJEbetuUzDiJKqs7uJYDcepkHtZUVon+5FrwzxGr2XJnXtWE/vK58wrwETz4WkEmCA==} @@ -3966,7 +3966,7 @@ snapshots: dependencies: '@universal-middleware/core': 0.2.13 - '@universal-middleware/compress@0.2.0': + '@universal-middleware/compress@0.2.1': optionalDependencies: '@universal-middleware/cloudflare': 0.2.6 '@universal-middleware/elysia': 0.2.1 From 2a968ff3ef0394d832511caa9e085a349b841baa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=ABl=20Charles?= Date: Wed, 16 Oct 2024 13:58:29 +0200 Subject: [PATCH 18/36] doc: README # Conflicts: # packages/vike-node/README.md --- packages/vike-node/README.md | 46 ++++++++++++++---------------------- 1 file changed, 18 insertions(+), 28 deletions(-) diff --git a/packages/vike-node/README.md b/packages/vike-node/README.md index 028e783..f88fc03 100644 --- a/packages/vike-node/README.md +++ b/packages/vike-node/README.md @@ -108,40 +108,28 @@ export default { } ``` -## Caching and compression: +## Compression: -In production, `vike-node`: +In production, `vike-node` compresses all Vike responses -- compresses all Vike responses -- caches the compressed static assets(.js, .css). - -On a request, if the asset(.js, .css) is not in the cache, `vike-node` compresses it with a fast compression level, sends it in the response, then recompresses it with a high compression level and finally caches the compressed data.
-You can disable compression/caching: +On a request, `vike-node` compresses any asset with a fast compression level, and sends it in the response.
+You can disable compression: ```js app.use( vike({ - compress: false, - static: { - cache: false - } + compress: false }) ) ``` ## Custom [pageContext](https://vike.dev/pageContext): -You can define custom [pageContext](https://vike.dev/pageContext) properties: +`vike-node` leverages [universal-middleware](https://universal-middleware.dev/) internally, +and merges it with `pageContext`. -```js -app.use( - vike({ - pageContext: (req) => ({ - user: req.user - }) - }) -) -``` +If you need custom properties to be available in `pageContext`, +[create a universal context middleware](https://universal-middleware.dev/recipes/context-middleware#updating-the-context) and attach it to your server. ## Framework examples: @@ -153,7 +141,9 @@ app.use( - H3 - Elysia (Bun) -Express: +[See complete list of supported servers](https://universal-middleware.dev/reference/supported-adapters) + +#### Express: ```js // server/index.js @@ -171,7 +161,7 @@ function startServer() { } ``` -Fastify: +#### Fastify: ```js // server/index.js @@ -183,13 +173,13 @@ startServer() function startServer() { const app = fastify() - app.register(vike()) + app.all('/*', vike()) const port = 3000 app.listen({ port }, () => console.log(`Server running at http://localhost:${port}`)) } ``` -Hono: +#### Hono: ```js // server/index.js @@ -214,7 +204,7 @@ function startServer() { } ``` -H3: +#### H3: ```js // server/index.js @@ -236,7 +226,7 @@ async function startServer() { } ``` -Elysia (Bun): +#### Elysia (Bun): ```js // server/index.js @@ -248,7 +238,7 @@ startServer() function startServer() { const app = new Elysia() - app.use(vike()) + app.get('/*', vike()) const port = 3000 app.listen(port, () => console.log(`Server running at http://localhost:${port}`)) } From 57d9c91f454aee053301ca5a1e4f7538512c7ed2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=ABl=20Charles?= Date: Wed, 16 Oct 2024 14:04:19 +0200 Subject: [PATCH 19/36] doc: add migration instructions --- packages/vike-node/README.md | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/packages/vike-node/README.md b/packages/vike-node/README.md index f88fc03..dddbe57 100644 --- a/packages/vike-node/README.md +++ b/packages/vike-node/README.md @@ -14,7 +14,7 @@ In development, the server process is restarted when a change is detected in som [Installation](#installation) [Standalone build](#standalone-build) [External packages](#external-packages) -[Caching and compression](#caching-and-compression) +[Compression](#compression) [Custom pageContext](#custom-pagecontext) [Framework examples](#framework-examples) [Migration guide](#migration-guide) @@ -246,6 +246,38 @@ function startServer() { ## Migration guide: +### `0.1.x` to `0.2.x` + +#### Caching support removed + +```diff +app.use( + vike({ + compress: false, +- static: { +- cache: false +- } + }) +) +``` + +#### `pageContext` + +If you were using it to feed `universal-middleware` context to `pageContext`, it's now the default behaviour.
+Otherwise, you now need to [create a universal context middleware](https://universal-middleware.dev/recipes/context-middleware#updating-the-context) and attach it to your server. + +```diff +app.use( + vike({ +- pageContext: (req) => ({ +- user: req.user +- }) + }) +) +``` + +### Codebase without `vike-node` + ```diff // server/index.js From 956a9fe079a884ff603c078009ce5766bfbd7dfe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=ABl=20Charles?= Date: Wed, 16 Oct 2024 14:06:14 +0200 Subject: [PATCH 20/36] doc: rewording --- packages/vike-node/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/vike-node/README.md b/packages/vike-node/README.md index dddbe57..65b07f1 100644 --- a/packages/vike-node/README.md +++ b/packages/vike-node/README.md @@ -126,7 +126,7 @@ app.use( ## Custom [pageContext](https://vike.dev/pageContext): `vike-node` leverages [universal-middleware](https://universal-middleware.dev/) internally, -and merges it with `pageContext`. +and merges the universal context with `pageContext`. If you need custom properties to be available in `pageContext`, [create a universal context middleware](https://universal-middleware.dev/recipes/context-middleware#updating-the-context) and attach it to your server. From e72c2333de49a07fc244b62c3f933624ad9a3ee7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=ABl=20Charles?= Date: Mon, 25 Nov 2024 11:12:12 +0100 Subject: [PATCH 21/36] chore: review update --- packages/vike-node/README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/vike-node/README.md b/packages/vike-node/README.md index 65b07f1..f445b3b 100644 --- a/packages/vike-node/README.md +++ b/packages/vike-node/README.md @@ -43,7 +43,7 @@ In development, the server process is restarted when a change is detected in som // server/index.js import express from 'express' - import vike from 'vike-node/connect' + import vike from 'vike-node/express' startServer() @@ -149,7 +149,7 @@ If you need custom properties to be available in `pageContext`, // server/index.js import express from 'express' -import vike from 'vike-node/connect' +import vike from 'vike-node/express' startServer() @@ -282,7 +282,7 @@ app.use( // server/index.js - import { renderPage } from 'vike/server' -+ import { vike } from 'vike-node/connect' ++ import { vike } from 'vike-node/express' - if (isProduction) { - app.use(express.static(`${root}/dist/client`)) From 58720b1f23cdaa30b4eb97f8802a942e20e0934c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=ABl=20Charles?= Date: Mon, 25 Nov 2024 11:24:06 +0100 Subject: [PATCH 22/36] refactor: review --- packages/vike-node/src/runtime/vike-handler.ts | 6 +++--- packages/vike-node/src/vike.handler.ts | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/vike-node/src/runtime/vike-handler.ts b/packages/vike-node/src/runtime/vike-handler.ts index 9fdf2a3..a7e7744 100644 --- a/packages/vike-node/src/runtime/vike-handler.ts +++ b/packages/vike-node/src/runtime/vike-handler.ts @@ -33,17 +33,17 @@ async function renderPage({ return pageContext.httpResponse } -export const renderPageCompress = ((options?) => async (request, _context, runtime: any) => { +export const compressMiddleware = ((options?) => async (request, _context, runtime: any) => { const nodeReq: IncomingMessage | undefined = runtime.req const compressionType = options?.compress ?? !isVercel() - const compressMiddleware = compressMiddlewareFactory()(request) + const compressMiddlewareInternal = compressMiddlewareFactory()(request) return async (response) => { if (!globalStore.isPluginLoaded && nodeReq) { const isAsset = nodeReq.url?.startsWith('/assets/') const shouldCompressResponse = compressionType === true || (compressionType === 'static' && isAsset) if (shouldCompressResponse) { - return compressMiddleware(response) + return compressMiddlewareInternal(response) } } return response diff --git a/packages/vike-node/src/vike.handler.ts b/packages/vike-node/src/vike.handler.ts index b497854..1d619ab 100644 --- a/packages/vike-node/src/vike.handler.ts +++ b/packages/vike-node/src/vike.handler.ts @@ -1,8 +1,8 @@ import { Get, UniversalHandler, pipe } from '@universal-middleware/core' import { VikeOptions } from './runtime/types.js' -import { renderPageCompress, renderPageHandler } from './runtime/vike-handler.js' +import { compressMiddleware, renderPageHandler } from './runtime/vike-handler.js' -const renderPageUniversal = ((options?) => pipe(renderPageCompress(options), renderPageHandler(options))) satisfies Get< +const renderPageUniversal = ((options?) => pipe(compressMiddleware(options), renderPageHandler(options))) satisfies Get< [options: VikeOptions], UniversalHandler > From 4cd40f7c8e0d10eae4c78663c2f527d24305ed21 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=ABl=20Charles?= Date: Mon, 25 Nov 2024 11:25:12 +0100 Subject: [PATCH 23/36] refactor: review --- packages/vike-node/src/plugin/index.ts | 2 +- packages/vike-node/src/runtime/globalStore.ts | 4 ++-- packages/vike-node/src/runtime/vike-handler.ts | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/vike-node/src/plugin/index.ts b/packages/vike-node/src/plugin/index.ts index 3d29320..2813324 100644 --- a/packages/vike-node/src/plugin/index.ts +++ b/packages/vike-node/src/plugin/index.ts @@ -8,7 +8,7 @@ import { edgePlugin } from './plugins/edgePlugin.js' import { serverEntryPlugin } from './plugins/serverEntryPlugin.js' import { standalonePlugin } from './plugins/standalonePlugin.js' -globalStore.isPluginLoaded = true +globalStore.isDev = true function vikeNode(config: ConfigVikeNodePlugin) { return [commonConfig(config), serverEntryPlugin(), devServerPlugin(), standalonePlugin(), edgePlugin()] diff --git a/packages/vike-node/src/runtime/globalStore.ts b/packages/vike-node/src/runtime/globalStore.ts index f6b0af4..6e6199b 100644 --- a/packages/vike-node/src/runtime/globalStore.ts +++ b/packages/vike-node/src/runtime/globalStore.ts @@ -3,12 +3,12 @@ import type { ViteDevServer } from 'vite' // @ts-expect-error export const globalStore = (globalThis.__vikeNode ||= { - isPluginLoaded: false, + isDev: false, // This is overridden in devServerPlugin // in production it's a no-op setupHMRProxy: () => {} }) as { - isPluginLoaded: boolean + isDev: boolean viteDevServer?: ViteDevServer setupHMRProxy: (req: IncomingMessage) => void } diff --git a/packages/vike-node/src/runtime/vike-handler.ts b/packages/vike-node/src/runtime/vike-handler.ts index a7e7744..1bd56ff 100644 --- a/packages/vike-node/src/runtime/vike-handler.ts +++ b/packages/vike-node/src/runtime/vike-handler.ts @@ -39,7 +39,7 @@ export const compressMiddleware = ((options?) => async (request, _context, runti const compressMiddlewareInternal = compressMiddlewareFactory()(request) return async (response) => { - if (!globalStore.isPluginLoaded && nodeReq) { + if (!globalStore.isDev && nodeReq) { const isAsset = nodeReq.url?.startsWith('/assets/') const shouldCompressResponse = compressionType === true || (compressionType === 'static' && isAsset) if (shouldCompressResponse) { @@ -61,7 +61,7 @@ export const renderPageHandler = ((options?) => async (request, context, runtime staticConfig = resolveStaticConfig(options?.static) } - if (globalStore.isPluginLoaded) { + if (globalStore.isDev) { const handled = await web(request) if (handled) return handled From 234be94d03d7b0f71ba71f3e223e7eec378b19d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=ABl=20Charles?= Date: Mon, 25 Nov 2024 11:32:00 +0100 Subject: [PATCH 24/36] lint --- packages/vike-node/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/vike-node/package.json b/packages/vike-node/package.json index e047194..751fe6c 100644 --- a/packages/vike-node/package.json +++ b/packages/vike-node/package.json @@ -108,4 +108,4 @@ "@universal-middleware/hono": "^0", "@universal-middleware/webroute": "^0" } -} +} \ No newline at end of file From 0fb749e51524cf6e770d7b0b86e0013fe169d856 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=ABl=20Charles?= Date: Mon, 25 Nov 2024 11:51:00 +0100 Subject: [PATCH 25/36] fix: remove restriction on nodeReq in compressMiddleware --- packages/vike-node/src/runtime/vike-handler.ts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/packages/vike-node/src/runtime/vike-handler.ts b/packages/vike-node/src/runtime/vike-handler.ts index 1bd56ff..b8a8baa 100644 --- a/packages/vike-node/src/runtime/vike-handler.ts +++ b/packages/vike-node/src/runtime/vike-handler.ts @@ -34,13 +34,12 @@ async function renderPage({ } export const compressMiddleware = ((options?) => async (request, _context, runtime: any) => { - const nodeReq: IncomingMessage | undefined = runtime.req const compressionType = options?.compress ?? !isVercel() const compressMiddlewareInternal = compressMiddlewareFactory()(request) return async (response) => { - if (!globalStore.isDev && nodeReq) { - const isAsset = nodeReq.url?.startsWith('/assets/') + if (!globalStore.isDev) { + const isAsset = new URL(request.url).pathname.startsWith('/assets/') const shouldCompressResponse = compressionType === true || (compressionType === 'static' && isAsset) if (shouldCompressResponse) { return compressMiddlewareInternal(response) From 7c145f6ab26a4c3407c602103b5724040afc5d2d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=ABl=20Charles?= Date: Mon, 25 Nov 2024 12:18:19 +0100 Subject: [PATCH 26/36] chore: put back inject behaviour --- packages/vike-node/src/plugin/plugins/serverEntryPlugin.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/vike-node/src/plugin/plugins/serverEntryPlugin.ts b/packages/vike-node/src/plugin/plugins/serverEntryPlugin.ts index 34cd1db..47156a5 100644 --- a/packages/vike-node/src/plugin/plugins/serverEntryPlugin.ts +++ b/packages/vike-node/src/plugin/plugins/serverEntryPlugin.ts @@ -49,6 +49,9 @@ export function serverEntryPlugin(): Plugin { config ) } + + config.vitePluginServerEntry ??= {} + config.vitePluginServerEntry.inject = Object.keys(resolvedEntries) } } } From 4e7491ddd6b247ea27e34cb71d26d260638010a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=ABl=20Charles?= Date: Mon, 25 Nov 2024 12:20:21 +0100 Subject: [PATCH 27/36] doc: remove migration from README --- packages/vike-node/README.md | 30 ------------------------------ 1 file changed, 30 deletions(-) diff --git a/packages/vike-node/README.md b/packages/vike-node/README.md index f445b3b..3ba34a2 100644 --- a/packages/vike-node/README.md +++ b/packages/vike-node/README.md @@ -246,36 +246,6 @@ function startServer() { ## Migration guide: -### `0.1.x` to `0.2.x` - -#### Caching support removed - -```diff -app.use( - vike({ - compress: false, -- static: { -- cache: false -- } - }) -) -``` - -#### `pageContext` - -If you were using it to feed `universal-middleware` context to `pageContext`, it's now the default behaviour.
-Otherwise, you now need to [create a universal context middleware](https://universal-middleware.dev/recipes/context-middleware#updating-the-context) and attach it to your server. - -```diff -app.use( - vike({ -- pageContext: (req) => ({ -- user: req.user -- }) - }) -) -``` - ### Codebase without `vike-node` ```diff From 4888380392b088d558298a17a6428ca296ef352e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=ABl=20Charles?= Date: Mon, 25 Nov 2024 15:14:05 +0100 Subject: [PATCH 28/36] refactor: use getReadableWebStream --- packages/vike-node/src/runtime/vike-handler.ts | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/packages/vike-node/src/runtime/vike-handler.ts b/packages/vike-node/src/runtime/vike-handler.ts index b8a8baa..f226ab8 100644 --- a/packages/vike-node/src/runtime/vike-handler.ts +++ b/packages/vike-node/src/runtime/vike-handler.ts @@ -96,10 +96,7 @@ export const renderPageHandler = ((options?) => async (request, context, runtime } }) - const { readable, writable } = new TransformStream() - response.pipe(writable) - - return new Response(readable, { + return new Response(response.getReadableWebStream(), { status: response.statusCode, headers: response.headers }) From 450f9d7f194424f824bec9eca932073e9ba613f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=ABl=20Charles?= Date: Mon, 25 Nov 2024 15:14:15 +0100 Subject: [PATCH 29/36] chore: update lock file --- pnpm-lock.yaml | 2022 +++++++++++++++++++++--------------------------- 1 file changed, 900 insertions(+), 1122 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2e0fc2f..197ab58 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -14,16 +14,16 @@ importers: devDependencies: '@biomejs/biome': specifier: ^1.8.3 - version: 1.8.3 + version: 1.9.4 '@brillout/test-e2e': specifier: ^0.5.33 - version: 0.5.33 + version: 0.5.36 '@brillout/test-types': specifier: ^0.1.15 - version: 0.1.15(typescript@5.5.4) + version: 0.1.15(typescript@5.7.2) playwright: specifier: ^1.46.0 - version: 1.46.0 + version: 1.49.0 prettier: specifier: ^3.3.3 version: 3.3.3 @@ -32,7 +32,7 @@ importers: dependencies: '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.1(vite@5.4.8(@types/node@22.2.0)) + version: 4.3.3(vite@5.4.11(@types/node@20.17.7)) cross-env: specifier: ^7.0.3 version: 7.0.3 @@ -47,22 +47,22 @@ importers: version: 18.3.1(react@18.3.1) vike: specifier: ^0.4.198 - version: 0.4.198(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.8(@types/node@22.2.0)) + version: 0.4.204(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.11(@types/node@20.17.7)) vike-node: specifier: link:../../packages/vike-node version: link:../../packages/vike-node vike-react: specifier: ^0.5.7 - version: 0.5.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(vike@0.4.198(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.8(@types/node@22.2.0))) + version: 0.5.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(vike@0.4.204(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.11(@types/node@20.17.7))) vite: specifier: ^5.4.8 - version: 5.4.8(@types/node@22.2.0) + version: 5.4.11(@types/node@20.17.7) examples/express-react-vercel: dependencies: '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.1(vite@5.4.8(@types/node@22.2.0)) + version: 4.3.3(vite@5.4.11(@types/node@20.17.7)) cross-env: specifier: ^7.0.3 version: 7.0.3 @@ -77,31 +77,31 @@ importers: version: 18.3.1(react@18.3.1) vike: specifier: ^0.4.198 - version: 0.4.198(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.8(@types/node@22.2.0)) + version: 0.4.204(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.11(@types/node@20.17.7)) vike-node: specifier: link:../../packages/vike-node version: link:../../packages/vike-node vike-react: specifier: ^0.5.7 - version: 0.5.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(vike@0.4.198(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.8(@types/node@22.2.0))) + version: 0.5.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(vike@0.4.204(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.11(@types/node@20.17.7))) vite: specifier: ^5.4.8 - version: 5.4.8(@types/node@22.2.0) + version: 5.4.11(@types/node@20.17.7) examples/hono-react-cf-pages: dependencies: '@hono/node-server': specifier: ^1.12.0 - version: 1.12.0 + version: 1.13.7(hono@4.6.12) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.1(vite@5.4.8(@types/node@22.2.0)) + version: 4.3.3(vite@5.4.11(@types/node@20.17.7)) cross-env: specifier: ^7.0.3 version: 7.0.3 hono: specifier: ^4.5.5 - version: 4.6.3 + version: 4.6.12 react: specifier: ^18.3.1 version: 18.3.1 @@ -110,38 +110,38 @@ importers: version: 18.3.1(react@18.3.1) vike: specifier: ^0.4.198 - version: 0.4.198(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.8(@types/node@22.2.0)) + version: 0.4.204(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.11(@types/node@20.17.7)) vike-node: specifier: link:../../packages/vike-node version: link:../../packages/vike-node vike-react: specifier: ^0.5.7 - version: 0.5.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(vike@0.4.198(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.8(@types/node@22.2.0))) + version: 0.5.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(vike@0.4.204(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.11(@types/node@20.17.7))) vite: specifier: ^5.4.8 - version: 5.4.8(@types/node@22.2.0) + version: 5.4.11(@types/node@20.17.7) devDependencies: telefunc: specifier: ^0.1.76 - version: 0.1.76(@babel/core@7.25.2)(@babel/parser@7.25.3)(@babel/types@7.25.2)(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) + version: 0.1.81(@babel/core@7.26.0)(@babel/parser@7.26.2)(@babel/types@7.26.0)(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) wrangler: specifier: ^3.71.0 - version: 3.71.0(@cloudflare/workers-types@4.20240806.0) + version: 3.90.0 examples/hono-react-vercel-edge: dependencies: '@hono/node-server': specifier: ^1.12.0 - version: 1.12.0 + version: 1.13.7(hono@4.6.12) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.1(vite@5.4.8(@types/node@22.2.0)) + version: 4.3.3(vite@5.4.11(@types/node@20.17.7)) cross-env: specifier: ^7.0.3 version: 7.0.3 hono: specifier: ^4.6.3 - version: 4.6.3 + version: 4.6.12 react: specifier: ^18.3.1 version: 18.3.1 @@ -150,19 +150,19 @@ importers: version: 18.3.1(react@18.3.1) telefunc: specifier: ^0.1.76 - version: 0.1.76(@babel/core@7.25.2)(@babel/parser@7.25.3)(@babel/types@7.25.2)(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) + version: 0.1.81(@babel/core@7.26.0)(@babel/parser@7.26.2)(@babel/types@7.26.0)(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) vike: specifier: ^0.4.198 - version: 0.4.198(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.8(@types/node@22.2.0)) + version: 0.4.204(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.11(@types/node@20.17.7)) vike-node: specifier: link:../../packages/vike-node version: link:../../packages/vike-node vike-react: specifier: ^0.5.7 - version: 0.5.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(vike@0.4.198(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.8(@types/node@22.2.0))) + version: 0.5.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(vike@0.4.204(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.11(@types/node@20.17.7))) vite: specifier: ^5.4.8 - version: 5.4.8(@types/node@22.2.0) + version: 5.4.11(@types/node@20.17.7) packages/vike-node: dependencies: @@ -199,92 +199,92 @@ importers: version: 0.2.6 '@universal-middleware/elysia': specifier: ^0 - version: 0.2.1 + version: 0.2.2 '@universal-middleware/express': specifier: ^0 - version: 0.2.8 + version: 0.2.9 '@universal-middleware/fastify': specifier: ^0 - version: 0.3.5 + version: 0.3.6 '@universal-middleware/h3': specifier: ^0 - version: 0.2.7 + version: 0.2.8 '@universal-middleware/hattip': specifier: ^0 version: 0.2.10 '@universal-middleware/hono': specifier: ^0 - version: 0.2.11 + version: 0.2.12 '@universal-middleware/webroute': specifier: ^0 - version: 0.2.7 + version: 0.2.8 devDependencies: '@brillout/release-me': specifier: ^0.4.0 - version: 0.4.0 + version: 0.4.2 '@types/node': specifier: ^20.14.15 - version: 20.14.15 + version: 20.17.7 elysia: specifier: ^1.1.6 - version: 1.1.6(@sinclair/typebox@0.32.35)(typescript@5.5.4) + version: 1.1.25(@sinclair/typebox@0.34.8)(typescript@5.7.2) fastify: specifier: ^4.28.1 version: 4.28.1 h3: specifier: ^1.12.0 - version: 1.12.0 + version: 1.13.0 hono: specifier: ^4.6.3 - version: 4.6.3 + version: 4.6.12 tsup: specifier: ^8.3.0 - version: 8.3.0(postcss@8.4.47)(typescript@5.5.4) + version: 8.3.5(postcss@8.4.49)(typescript@5.7.2) typescript: specifier: ^5.5.4 - version: 5.5.4 + version: 5.7.2 universal-middleware: specifier: ^0.3.8 - version: 0.3.8(esbuild@0.24.0)(vite@5.4.8(@types/node@20.14.15)) + version: 0.3.9(esbuild@0.24.0)(rollup@4.27.4)(vite@5.4.11(@types/node@20.17.7)) vike: specifier: ^0.4.198 - version: 0.4.198(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.8(@types/node@20.14.15)) + version: 0.4.204(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.11(@types/node@20.17.7)) vite: specifier: ^5.4.8 - version: 5.4.8(@types/node@20.14.15) + version: 5.4.11(@types/node@20.17.7) test/vike-node: dependencies: '@hono/node-server': specifier: ^1.12.0 - version: 1.12.0 + version: 1.13.7(hono@4.6.12) '@node-rs/argon2': specifier: ^1.8.3 version: 1.8.3 '@prisma/client': specifier: ^5.18.0 - version: 5.18.0(prisma@5.18.0) + version: 5.22.0(prisma@5.22.0) '@types/express': specifier: ^4.17.21 version: 4.17.21 '@types/node': specifier: ^20.14.15 - version: 20.14.15 + version: 20.17.7 '@types/react': specifier: ^18.3.3 - version: 18.3.3 + version: 18.3.12 '@types/react-dom': specifier: ^18.3.0 - version: 18.3.0 + version: 18.3.1 '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.1(vite@5.4.8(@types/node@20.14.15)) + version: 4.3.3(vite@5.4.11(@types/node@20.17.7)) cross-env: specifier: ^7.0.3 version: 7.0.3 elysia: specifier: ^1.1.6 - version: 1.1.6(@sinclair/typebox@0.32.35)(typescript@5.5.4) + version: 1.1.25(@sinclair/typebox@0.34.8)(typescript@5.7.2) express: specifier: ^4.21.1 version: 4.21.1 @@ -293,13 +293,13 @@ importers: version: 4.28.1 h3: specifier: ^1.12.0 - version: 1.12.0 + version: 1.13.0 hono: specifier: ^4.5.5 - version: 4.6.3 + version: 4.6.12 prisma: specifier: ^5.18.0 - version: 5.18.0 + version: 5.22.0 react: specifier: ^18.3.1 version: 18.3.1 @@ -308,22 +308,22 @@ importers: version: 18.3.1(react@18.3.1) sharp: specifier: ^0.33.4 - version: 0.33.4 + version: 0.33.5 telefunc: specifier: ^0.1.76 - version: 0.1.76(@babel/core@7.25.2)(@babel/parser@7.25.3)(@babel/types@7.25.2)(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) + version: 0.1.81(@babel/core@7.26.0)(@babel/parser@7.26.2)(@babel/types@7.26.0)(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) typescript: specifier: ^5.5.4 - version: 5.5.4 + version: 5.7.2 vike: specifier: ^0.4.198 - version: 0.4.198(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.8(@types/node@20.14.15)) + version: 0.4.204(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.11(@types/node@20.17.7)) vike-node: specifier: link:../../packages/vike-node version: link:../../packages/vike-node vite: specifier: ^5.4.8 - version: 5.4.8(@types/node@20.14.15) + version: 5.4.11(@types/node@20.17.7) packages: @@ -331,142 +331,134 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} - '@babel/code-frame@7.24.7': - resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} + '@babel/code-frame@7.26.2': + resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} engines: {node: '>=6.9.0'} - '@babel/compat-data@7.25.2': - resolution: {integrity: sha512-bYcppcpKBvX4znYaPEeFau03bp89ShqNMLs+rmdptMw+heSZh9+z84d2YG+K7cYLbWwzdjtDoW/uqZmPjulClQ==} + '@babel/compat-data@7.26.2': + resolution: {integrity: sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==} engines: {node: '>=6.9.0'} - '@babel/core@7.25.2': - resolution: {integrity: sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==} + '@babel/core@7.26.0': + resolution: {integrity: sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==} engines: {node: '>=6.9.0'} - '@babel/generator@7.25.0': - resolution: {integrity: sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw==} + '@babel/generator@7.26.2': + resolution: {integrity: sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==} engines: {node: '>=6.9.0'} - '@babel/helper-compilation-targets@7.25.2': - resolution: {integrity: sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==} + '@babel/helper-compilation-targets@7.25.9': + resolution: {integrity: sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==} engines: {node: '>=6.9.0'} - '@babel/helper-module-imports@7.24.7': - resolution: {integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==} + '@babel/helper-module-imports@7.25.9': + resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==} engines: {node: '>=6.9.0'} - '@babel/helper-module-transforms@7.25.2': - resolution: {integrity: sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==} + '@babel/helper-module-transforms@7.26.0': + resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-plugin-utils@7.24.8': - resolution: {integrity: sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==} + '@babel/helper-plugin-utils@7.25.9': + resolution: {integrity: sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==} engines: {node: '>=6.9.0'} - '@babel/helper-simple-access@7.24.7': - resolution: {integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==} + '@babel/helper-string-parser@7.25.9': + resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} engines: {node: '>=6.9.0'} - '@babel/helper-string-parser@7.24.8': - resolution: {integrity: sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==} + '@babel/helper-validator-identifier@7.25.9': + resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@7.24.7': - resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} + '@babel/helper-validator-option@7.25.9': + resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-option@7.24.8': - resolution: {integrity: sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==} + '@babel/helpers@7.26.0': + resolution: {integrity: sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.25.0': - resolution: {integrity: sha512-MjgLZ42aCm0oGjJj8CtSM3DB8NOOf8h2l7DCTePJs29u+v7yO/RBX9nShlKMgFnRks/Q4tBAe7Hxnov9VkGwLw==} - engines: {node: '>=6.9.0'} - - '@babel/highlight@7.24.7': - resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} - engines: {node: '>=6.9.0'} - - '@babel/parser@7.25.3': - resolution: {integrity: sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw==} + '@babel/parser@7.26.2': + resolution: {integrity: sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==} engines: {node: '>=6.0.0'} hasBin: true - '@babel/plugin-transform-react-jsx-self@7.24.7': - resolution: {integrity: sha512-fOPQYbGSgH0HUp4UJO4sMBFjY6DuWq+2i8rixyUMb3CdGixs/gccURvYOAhajBdKDoGajFr3mUq5rH3phtkGzw==} + '@babel/plugin-transform-react-jsx-self@7.25.9': + resolution: {integrity: sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-jsx-source@7.24.7': - resolution: {integrity: sha512-J2z+MWzZHVOemyLweMqngXrgGC42jQ//R0KdxqkIz/OrbVIIlhFI3WigZ5fO+nwFvBlncr4MGapd8vTyc7RPNQ==} + '@babel/plugin-transform-react-jsx-source@7.25.9': + resolution: {integrity: sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/template@7.25.0': - resolution: {integrity: sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==} + '@babel/template@7.25.9': + resolution: {integrity: sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.25.3': - resolution: {integrity: sha512-HefgyP1x754oGCsKmV5reSmtV7IXj/kpaE1XYY+D9G5PvKKoFfSbiS4M77MdjuwlZKDIKFCffq9rPU+H/s3ZdQ==} + '@babel/traverse@7.25.9': + resolution: {integrity: sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==} engines: {node: '>=6.9.0'} - '@babel/types@7.25.2': - resolution: {integrity: sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q==} + '@babel/types@7.26.0': + resolution: {integrity: sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==} engines: {node: '>=6.9.0'} - '@biomejs/biome@1.8.3': - resolution: {integrity: sha512-/uUV3MV+vyAczO+vKrPdOW0Iaet7UnJMU4bNMinggGJTAnBPjCoLEYcyYtYHNnUNYlv4xZMH6hVIQCAozq8d5w==} + '@biomejs/biome@1.9.4': + resolution: {integrity: sha512-1rkd7G70+o9KkTn5KLmDYXihGoTaIGO9PIIN2ZB7UJxFrWw04CZHPYiMRjYsaDvVV7hP1dYNRLxSANLaBFGpog==} engines: {node: '>=14.21.3'} hasBin: true - '@biomejs/cli-darwin-arm64@1.8.3': - resolution: {integrity: sha512-9DYOjclFpKrH/m1Oz75SSExR8VKvNSSsLnVIqdnKexj6NwmiMlKk94Wa1kZEdv6MCOHGHgyyoV57Cw8WzL5n3A==} + '@biomejs/cli-darwin-arm64@1.9.4': + resolution: {integrity: sha512-bFBsPWrNvkdKrNCYeAp+xo2HecOGPAy9WyNyB/jKnnedgzl4W4Hb9ZMzYNbf8dMCGmUdSavlYHiR01QaYR58cw==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [darwin] - '@biomejs/cli-darwin-x64@1.8.3': - resolution: {integrity: sha512-UeW44L/AtbmOF7KXLCoM+9PSgPo0IDcyEUfIoOXYeANaNXXf9mLUwV1GeF2OWjyic5zj6CnAJ9uzk2LT3v/wAw==} + '@biomejs/cli-darwin-x64@1.9.4': + resolution: {integrity: sha512-ngYBh/+bEedqkSevPVhLP4QfVPCpb+4BBe2p7Xs32dBgs7rh9nY2AIYUL6BgLw1JVXV8GlpKmb/hNiuIxfPfZg==} engines: {node: '>=14.21.3'} cpu: [x64] os: [darwin] - '@biomejs/cli-linux-arm64-musl@1.8.3': - resolution: {integrity: sha512-9yjUfOFN7wrYsXt/T/gEWfvVxKlnh3yBpnScw98IF+oOeCYb5/b/+K7YNqKROV2i1DlMjg9g/EcN9wvj+NkMuQ==} + '@biomejs/cli-linux-arm64-musl@1.9.4': + resolution: {integrity: sha512-v665Ct9WCRjGa8+kTr0CzApU0+XXtRgwmzIf1SeKSGAv+2scAlW6JR5PMFo6FzqqZ64Po79cKODKf3/AAmECqA==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [linux] - '@biomejs/cli-linux-arm64@1.8.3': - resolution: {integrity: sha512-fed2ji8s+I/m8upWpTJGanqiJ0rnlHOK3DdxsyVLZQ8ClY6qLuPc9uehCREBifRJLl/iJyQpHIRufLDeotsPtw==} + '@biomejs/cli-linux-arm64@1.9.4': + resolution: {integrity: sha512-fJIW0+LYujdjUgJJuwesP4EjIBl/N/TcOX3IvIHJQNsAqvV2CHIogsmA94BPG6jZATS4Hi+xv4SkBBQSt1N4/g==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [linux] - '@biomejs/cli-linux-x64-musl@1.8.3': - resolution: {integrity: sha512-UHrGJX7PrKMKzPGoEsooKC9jXJMa28TUSMjcIlbDnIO4EAavCoVmNQaIuUSH0Ls2mpGMwUIf+aZJv657zfWWjA==} + '@biomejs/cli-linux-x64-musl@1.9.4': + resolution: {integrity: sha512-gEhi/jSBhZ2m6wjV530Yy8+fNqG8PAinM3oV7CyO+6c3CEh16Eizm21uHVsyVBEB6RIM8JHIl6AGYCv6Q6Q9Tg==} engines: {node: '>=14.21.3'} cpu: [x64] os: [linux] - '@biomejs/cli-linux-x64@1.8.3': - resolution: {integrity: sha512-I8G2QmuE1teISyT8ie1HXsjFRz9L1m5n83U1O6m30Kw+kPMPSKjag6QGUn+sXT8V+XWIZxFFBoTDEDZW2KPDDw==} + '@biomejs/cli-linux-x64@1.9.4': + resolution: {integrity: sha512-lRCJv/Vi3Vlwmbd6K+oQ0KhLHMAysN8lXoCI7XeHlxaajk06u7G+UsFSO01NAs5iYuWKmVZjmiOzJ0OJmGsMwg==} engines: {node: '>=14.21.3'} cpu: [x64] os: [linux] - '@biomejs/cli-win32-arm64@1.8.3': - resolution: {integrity: sha512-J+Hu9WvrBevfy06eU1Na0lpc7uR9tibm9maHynLIoAjLZpQU3IW+OKHUtyL8p6/3pT2Ju5t5emReeIS2SAxhkQ==} + '@biomejs/cli-win32-arm64@1.9.4': + resolution: {integrity: sha512-tlbhLk+WXZmgwoIKwHIHEBZUwxml7bRJgk0X2sPyNR3S93cdRq6XulAZRQJ17FYGGzWne0fgrXBKpl7l4M87Hg==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [win32] - '@biomejs/cli-win32-x64@1.8.3': - resolution: {integrity: sha512-/PJ59vA1pnQeKahemaQf4Nyj7IKUvGQSc3Ze1uIGi+Wvr1xF7rGobSrAAG01T/gUDG21vkDsZYM03NAmPiVkqg==} + '@biomejs/cli-win32-x64@1.9.4': + resolution: {integrity: sha512-8Y5wMhVIPaWe6jw2H+KlEm4wP/f7EW3810ZLmDlrEEy5KvBsb9ECEfu/kMWD484ijfQ8+nIi0giMgu9g1UAuuA==} engines: {node: '>=14.21.3'} cpu: [x64] os: [win32] @@ -477,21 +469,21 @@ packages: '@brillout/json-serializer@0.5.13': resolution: {integrity: sha512-9FpmgpuoSISw6fAPVB2qwW1dGAADN28YbWpfwOErfcZxpBH4lsnejuY89qcivInnWXYJvyyPwghCuOTbtuaYFg==} - '@brillout/part-regex@0.1.3': - resolution: {integrity: sha512-ZyqtOYHvQs3Ca0xt9fb2OlGzCrKwXtMcAATDObkFmI4jKuObEORjWrqAslWTelquXlyEYLz7h1nt6jp50LDyJA==} + '@brillout/part-regex@0.1.4': + resolution: {integrity: sha512-PQy5LfRmIueEfGwhvMedsnj6KulDfxlfvUaTsUchBqA7nTge4C7taG/V6np2uCHVxxE4+cSmwM4COn9aNcMn7g==} '@brillout/picocolors@1.0.15': resolution: {integrity: sha512-VrgvPtfnKP/i8kxCAyQVd0DWg6xU8OZJndbLf/lrywd96UdMhnGL/PK42HhHhhwkDSkaiQU+zc+OPWpvqOe4Cg==} - '@brillout/release-me@0.4.0': - resolution: {integrity: sha512-V4YwITguHK3zOy9B4606lc9PQiFDp3p3Ifeq4KF7V8o9fs7OmcrfTWBE0EWFtiLhG2JeKb2RzM0t6Y4tLgXd6w==} + '@brillout/release-me@0.4.2': + resolution: {integrity: sha512-bPXYKz7uLTs9OWoPzi4Jq9gV59RY8JwfaVw8E0o0Wf1lrO5kAxKGzYCi84Oy/NhZ31ytk7M955V3/YijQ2Ijwg==} hasBin: true '@brillout/require-shim@0.1.2': resolution: {integrity: sha512-3I4LRHnVZXoSAsEoni5mosq9l6eiJED58d9V954W4CIZ88AUfYBanWGBGbJG3NztaRTpFHEA6wB3Hn93BmmJdg==} - '@brillout/test-e2e@0.5.33': - resolution: {integrity: sha512-CAhZQSGYVeMelcxbjFHZwZDT1Jk2BnNVS8JYYKkizin3ZoxQDdMYWskjO7jU+XN9xrjkvEUMlnXGXSO4E8/WjA==} + '@brillout/test-e2e@0.5.36': + resolution: {integrity: sha512-9iPeBOSbhh7jNFNLUcnzKsdDOwsYW71rw2atB/FRU8j6u8bsvyVJkcSKz6jp54jFefXyUzvgah1xZsDqqSA8IA==} hasBin: true '@brillout/test-types@0.1.15': @@ -500,58 +492,56 @@ packages: peerDependencies: typescript: '>=4.0.0' - '@brillout/vite-plugin-server-entry@0.4.13': - resolution: {integrity: sha512-tJQ9AmFGKZdoapoV+BPQ1uhR79raxMFfJ7TVrFAPA1k7aO2/ugGBQ+tglh4XwVeL/bwUtIIeQOyDQyBThJG99A==} + '@brillout/vite-plugin-server-entry@0.5.4': + resolution: {integrity: sha512-bgTKEs9xkWV+ouzUNOOLjGsMHpEm7lXVT8+jH4GdUVvaAQokTz/+tdWvwSo/R2zp715HxG/lrpxY6ZzAhX3bWw==} '@cloudflare/kv-asset-handler@0.3.4': resolution: {integrity: sha512-YLPHc8yASwjNkmcDMQMY35yiWjoKAKnhUbPRszBRS0YgH+IXtsMp61j+yTcnCE3oO2DgP0U3iejLC8FTtKDC8Q==} engines: {node: '>=16.13'} - '@cloudflare/workerd-darwin-64@1.20240806.0': - resolution: {integrity: sha512-FqcVBBCO//I39K5F+HqE/v+UkqY1UrRnS653Jv+XsNNH9TpX5fTs7VCKG4kDSnmxlAaKttyIN5sMEt7lpuNExQ==} + '@cloudflare/workerd-darwin-64@1.20241106.1': + resolution: {integrity: sha512-zxvaToi1m0qzAScrxFt7UvFVqU8DxrCO2CinM1yQkv5no7pA1HolpIrwZ0xOhR3ny64Is2s/J6BrRjpO5dM9Zw==} engines: {node: '>=16'} cpu: [x64] os: [darwin] - '@cloudflare/workerd-darwin-arm64@1.20240806.0': - resolution: {integrity: sha512-8c3KvmzYp/wg+82KHSOzDetJK+pThH4MTrU1OsjmsR2cUfedm5dk5Lah9/0Ld68+6A0umFACi4W2xJHs/RoBpA==} + '@cloudflare/workerd-darwin-arm64@1.20241106.1': + resolution: {integrity: sha512-j3dg/42D/bPgfNP3cRUBxF+4waCKO/5YKwXNj+lnVOwHxDu+ne5pFw9TIkKYcWTcwn0ZUkbNZNM5rhJqRn4xbg==} engines: {node: '>=16'} cpu: [arm64] os: [darwin] - '@cloudflare/workerd-linux-64@1.20240806.0': - resolution: {integrity: sha512-/149Bpxw4e2p5QqnBc06g0mx+4sZYh9j0doilnt0wk/uqYkLp0DdXGMQVRB74sBLg2UD3wW8amn1w3KyFhK2tQ==} + '@cloudflare/workerd-linux-64@1.20241106.1': + resolution: {integrity: sha512-Ih+Ye8E1DMBXcKrJktGfGztFqHKaX1CeByqshmTbODnWKHt6O65ax3oTecUwyC0+abuyraOpAtdhHNpFMhUkmw==} engines: {node: '>=16'} cpu: [x64] os: [linux] - '@cloudflare/workerd-linux-arm64@1.20240806.0': - resolution: {integrity: sha512-lacDWY3S1rKL/xT6iMtTQJEKmTTKrBavPczInEuBFXElmrS6IwVjZwv8hhVm32piyNt/AuFu9BYoJALi9D85/g==} + '@cloudflare/workerd-linux-arm64@1.20241106.1': + resolution: {integrity: sha512-mdQFPk4+14Yywn7n1xIzI+6olWM8Ybz10R7H3h+rk0XulMumCWUCy1CzIDauOx6GyIcSgKIibYMssVHZR30ObA==} engines: {node: '>=16'} cpu: [arm64] os: [linux] - '@cloudflare/workerd-windows-64@1.20240806.0': - resolution: {integrity: sha512-hC6JEfTSQK6//Lg+D54TLVn1ceTPY+fv4MXqDZIYlPP53iN+dL8Xd0utn2SG57UYdlL5FRAhm/EWHcATZg1RgA==} + '@cloudflare/workerd-windows-64@1.20241106.1': + resolution: {integrity: sha512-4rtcss31E/Rb/PeFocZfr+B9i1MdrkhsTBWizh8siNR4KMmkslU2xs2wPaH1z8+ErxkOsHrKRa5EPLh5rIiFeg==} engines: {node: '>=16'} cpu: [x64] os: [win32] - '@cloudflare/workers-shared@0.1.0': - resolution: {integrity: sha512-SyD4iw6jM4anZaG+ujgVETV4fulF2KHBOW31eavbVN7TNpk2l4aJgwY1YSPK00IKSWsoQuH2TigR446KuT5lqQ==} - - '@cloudflare/workers-types@4.20240806.0': - resolution: {integrity: sha512-8lvgrwXGTZEBsUQJ8YUnMk72Anh9omwr6fqWLw/EwVgcw1nQxs/bfdadBEbdP48l9fWXjE4E5XERLUrrFuEpsg==} + '@cloudflare/workers-shared@0.8.0': + resolution: {integrity: sha512-1OvFkNtslaMZAJsaocTmbACApgmWv55uLpNj50Pn2MGcxdAjpqykXJFQw5tKc+lGV9TDZh9oO3Rsk17IEQDzIg==} + engines: {node: '>=16.7.0'} '@cspotcode/source-map-support@0.8.1': resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} - '@emnapi/core@1.2.0': - resolution: {integrity: sha512-E7Vgw78I93we4ZWdYCb4DGAwRROGkMIXk7/y87UmANR+J6qsWusmC3gLt0H+O0KOt5e6O38U8oJamgbudrES/w==} + '@emnapi/core@1.3.1': + resolution: {integrity: sha512-pVGjBIt1Y6gg3EJN8jTcfpP/+uuRksIo055oE/OBkDNcjZqVbfkWCksG1Jp4yZnj3iKWyWX8fdG/j6UDYPbFog==} - '@emnapi/runtime@1.2.0': - resolution: {integrity: sha512-bV21/9LQmcQeCPEg3BDFtvwL6cwiTMksYNWQQ4KOxCZikEGalWtenoZ0wCiukJINlGCIi2KXx01g4FoH/LxpzQ==} + '@emnapi/runtime@1.3.1': + resolution: {integrity: sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==} '@emnapi/wasi-threads@1.0.1': resolution: {integrity: sha512-iIBu7mwkq4UQGeMEM8bLwNK962nXdhodeScX4slfQnRhEMMzvYivHhutCIk8uojvmASXXPC2WNEjwxFWk72Oqw==} @@ -726,124 +716,118 @@ packages: '@fastify/merge-json-schemas@0.1.1': resolution: {integrity: sha512-fERDVz7topgNjtXsJTTW1JKLy0rhuLRcquYqNR9rF7OcVpCa2OVW49ZPDIhaRRCaUuvVxI+N416xUoF76HNSXA==} - '@hono/node-server@1.12.0': - resolution: {integrity: sha512-e6oHjNiErRxsZRZBmc2KucuvY3btlO/XPncIpP2X75bRdTilF9GLjm3NHvKKunpJbbJJj31/FoPTksTf8djAVw==} + '@hono/node-server@1.13.7': + resolution: {integrity: sha512-kTfUMsoloVKtRA2fLiGSd9qBddmru9KadNyhJCwgKBxTiNkaAJEwkVN9KV/rS4HtmmNRtUh6P+YpmjRMl0d9vQ==} engines: {node: '>=18.14.1'} + peerDependencies: + hono: ^4 '@hutson/parse-repository-url@5.0.0': resolution: {integrity: sha512-e5+YUKENATs1JgYHMzTr2MW/NDcXGfYFAuOQU8gJgF/kEh4EqKgfGrfLI67bMD4tbhZVlkigz/9YYwWcbOFthg==} engines: {node: '>=10.13.0'} - '@img/sharp-darwin-arm64@0.33.4': - resolution: {integrity: sha512-p0suNqXufJs9t3RqLBO6vvrgr5OhgbWp76s5gTRvdmxmuv9E1rcaqGUsl3l4mKVmXPkTkTErXediAui4x+8PSA==} - engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-darwin-arm64@0.33.5': + resolution: {integrity: sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [darwin] - '@img/sharp-darwin-x64@0.33.4': - resolution: {integrity: sha512-0l7yRObwtTi82Z6ebVI2PnHT8EB2NxBgpK2MiKJZJ7cz32R4lxd001ecMhzzsZig3Yv9oclvqqdV93jo9hy+Dw==} - engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-darwin-x64@0.33.5': + resolution: {integrity: sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [darwin] - '@img/sharp-libvips-darwin-arm64@1.0.2': - resolution: {integrity: sha512-tcK/41Rq8IKlSaKRCCAuuY3lDJjQnYIW1UXU1kxcEKrfL8WR7N6+rzNoOxoQRJWTAECuKwgAHnPvqXGN8XfkHA==} - engines: {macos: '>=11', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-libvips-darwin-arm64@1.0.4': + resolution: {integrity: sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==} cpu: [arm64] os: [darwin] - '@img/sharp-libvips-darwin-x64@1.0.2': - resolution: {integrity: sha512-Ofw+7oaWa0HiiMiKWqqaZbaYV3/UGL2wAPeLuJTx+9cXpCRdvQhCLG0IH8YGwM0yGWGLpsF4Su9vM1o6aer+Fw==} - engines: {macos: '>=10.13', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-libvips-darwin-x64@1.0.4': + resolution: {integrity: sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==} cpu: [x64] os: [darwin] - '@img/sharp-libvips-linux-arm64@1.0.2': - resolution: {integrity: sha512-x7kCt3N00ofFmmkkdshwj3vGPCnmiDh7Gwnd4nUwZln2YjqPxV1NlTyZOvoDWdKQVDL911487HOueBvrpflagw==} - engines: {glibc: '>=2.26', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-libvips-linux-arm64@1.0.4': + resolution: {integrity: sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==} cpu: [arm64] os: [linux] - '@img/sharp-libvips-linux-arm@1.0.2': - resolution: {integrity: sha512-iLWCvrKgeFoglQxdEwzu1eQV04o8YeYGFXtfWU26Zr2wWT3q3MTzC+QTCO3ZQfWd3doKHT4Pm2kRmLbupT+sZw==} - engines: {glibc: '>=2.28', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-libvips-linux-arm@1.0.5': + resolution: {integrity: sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==} cpu: [arm] os: [linux] - '@img/sharp-libvips-linux-s390x@1.0.2': - resolution: {integrity: sha512-cmhQ1J4qVhfmS6szYW7RT+gLJq9dH2i4maq+qyXayUSn9/3iY2ZeWpbAgSpSVbV2E1JUL2Gg7pwnYQ1h8rQIog==} - engines: {glibc: '>=2.28', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-libvips-linux-s390x@1.0.4': + resolution: {integrity: sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==} cpu: [s390x] os: [linux] - '@img/sharp-libvips-linux-x64@1.0.2': - resolution: {integrity: sha512-E441q4Qdb+7yuyiADVi5J+44x8ctlrqn8XgkDTwr4qPJzWkaHwD489iZ4nGDgcuya4iMN3ULV6NwbhRZJ9Z7SQ==} - engines: {glibc: '>=2.26', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-libvips-linux-x64@1.0.4': + resolution: {integrity: sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==} cpu: [x64] os: [linux] - '@img/sharp-libvips-linuxmusl-arm64@1.0.2': - resolution: {integrity: sha512-3CAkndNpYUrlDqkCM5qhksfE+qSIREVpyoeHIU6jd48SJZViAmznoQQLAv4hVXF7xyUB9zf+G++e2v1ABjCbEQ==} - engines: {musl: '>=1.2.2', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-libvips-linuxmusl-arm64@1.0.4': + resolution: {integrity: sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==} cpu: [arm64] os: [linux] - '@img/sharp-libvips-linuxmusl-x64@1.0.2': - resolution: {integrity: sha512-VI94Q6khIHqHWNOh6LLdm9s2Ry4zdjWJwH56WoiJU7NTeDwyApdZZ8c+SADC8OH98KWNQXnE01UdJ9CSfZvwZw==} - engines: {musl: '>=1.2.2', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-libvips-linuxmusl-x64@1.0.4': + resolution: {integrity: sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==} cpu: [x64] os: [linux] - '@img/sharp-linux-arm64@0.33.4': - resolution: {integrity: sha512-2800clwVg1ZQtxwSoTlHvtm9ObgAax7V6MTAB/hDT945Tfyy3hVkmiHpeLPCKYqYR1Gcmv1uDZ3a4OFwkdBL7Q==} - engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-linux-arm64@0.33.5': + resolution: {integrity: sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] - '@img/sharp-linux-arm@0.33.4': - resolution: {integrity: sha512-RUgBD1c0+gCYZGCCe6mMdTiOFS0Zc/XrN0fYd6hISIKcDUbAW5NtSQW9g/powkrXYm6Vzwd6y+fqmExDuCdHNQ==} - engines: {glibc: '>=2.28', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-linux-arm@0.33.5': + resolution: {integrity: sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm] os: [linux] - '@img/sharp-linux-s390x@0.33.4': - resolution: {integrity: sha512-h3RAL3siQoyzSoH36tUeS0PDmb5wINKGYzcLB5C6DIiAn2F3udeFAum+gj8IbA/82+8RGCTn7XW8WTFnqag4tQ==} - engines: {glibc: '>=2.31', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-linux-s390x@0.33.5': + resolution: {integrity: sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [s390x] os: [linux] - '@img/sharp-linux-x64@0.33.4': - resolution: {integrity: sha512-GoR++s0XW9DGVi8SUGQ/U4AeIzLdNjHka6jidVwapQ/JebGVQIpi52OdyxCNVRE++n1FCLzjDovJNozif7w/Aw==} - engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-linux-x64@0.33.5': + resolution: {integrity: sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] - '@img/sharp-linuxmusl-arm64@0.33.4': - resolution: {integrity: sha512-nhr1yC3BlVrKDTl6cO12gTpXMl4ITBUZieehFvMntlCXFzH2bvKG76tBL2Y/OqhupZt81pR7R+Q5YhJxW0rGgQ==} - engines: {musl: '>=1.2.2', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-linuxmusl-arm64@0.33.5': + resolution: {integrity: sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] - '@img/sharp-linuxmusl-x64@0.33.4': - resolution: {integrity: sha512-uCPTku0zwqDmZEOi4ILyGdmW76tH7dm8kKlOIV1XC5cLyJ71ENAAqarOHQh0RLfpIpbV5KOpXzdU6XkJtS0daw==} - engines: {musl: '>=1.2.2', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-linuxmusl-x64@0.33.5': + resolution: {integrity: sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] - '@img/sharp-wasm32@0.33.4': - resolution: {integrity: sha512-Bmmauh4sXUsUqkleQahpdNXKvo+wa1V9KhT2pDA4VJGKwnKMJXiSTGphn0gnJrlooda0QxCtXc6RX1XAU6hMnQ==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-wasm32@0.33.5': + resolution: {integrity: sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [wasm32] - '@img/sharp-win32-ia32@0.33.4': - resolution: {integrity: sha512-99SJ91XzUhYHbx7uhK3+9Lf7+LjwMGQZMDlO/E/YVJ7Nc3lyDFZPGhjwiYdctoH2BOzW9+TnfqcaMKt0jHLdqw==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-win32-ia32@0.33.5': + resolution: {integrity: sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [ia32] os: [win32] - '@img/sharp-win32-x64@0.33.4': - resolution: {integrity: sha512-3QLocdTRVIrFNye5YocZl+KKpYKP+fksi1QhmOArgx7GyhIbQp/WrJRu176jm8IxromS7RIkzMiMINVdBtC8Aw==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-win32-x64@0.33.5': + resolution: {integrity: sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [win32] @@ -876,8 +860,8 @@ packages: resolution: {integrity: sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==} hasBin: true - '@napi-rs/wasm-runtime@0.2.4': - resolution: {integrity: sha512-9zESzOO5aDByvhIAsOy9TbpZ0Ur2AJbUI7UT73kcUTS2mxAMHOBaa1st/jAymNoCtvrit99kkzT1FZuXVcgfIQ==} + '@napi-rs/wasm-runtime@0.2.5': + resolution: {integrity: sha512-kwUxR7J9WLutBbulqg1dfOrMTwhMdXLdcGUhcbCcGwnPLt3gz19uHVdwH1syKVDbE022ZS2vZxOWflFLS0YTjw==} '@nitedani/shrink-ray-current@4.3.0': resolution: {integrity: sha512-GC/+xG/TDZDl9hoMDXRA3UxQycDSofvRN4oCMb/2jpo3OEUb2WaxuQjR9z6eYCUMoMcPquMpdQv+yzrCkImpUA==} @@ -982,43 +966,43 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} - '@oxc-transform/binding-darwin-arm64@0.30.5': - resolution: {integrity: sha512-DBaBT9DbmtqQJrxoajYhbXhij/N7xKdH1L8pqeSFRiZcScdaHxsAspAl9nMU7xdRE0NYh67qrKeO3thsah25Xw==} + '@oxc-transform/binding-darwin-arm64@0.31.0': + resolution: {integrity: sha512-0QolonAqXrxN3ai5/nB2i99U/dbZLanFpnwpL2jPPPRxYQPXU/j1uLPPcfOC6J5nrDQs2mMVHvkrT2CJmhetKA==} cpu: [arm64] os: [darwin] - '@oxc-transform/binding-darwin-x64@0.30.5': - resolution: {integrity: sha512-T2F7csIwWKug/1G7YRiZImAEL+90pt9DQbJVAqOXlGlWiHd4TlTaJZ28qXCDiRouCFMVjEEenbQuM0s+Cg5n3A==} + '@oxc-transform/binding-darwin-x64@0.31.0': + resolution: {integrity: sha512-asWogC7PtXbBHdN7Z/NJTHq4JXv5st94qe8t4JQR01vBumkxUa1qomTIf7h4/G3o/BeXgjL8VgHaM4snF7Z/iw==} cpu: [x64] os: [darwin] - '@oxc-transform/binding-linux-arm64-gnu@0.30.5': - resolution: {integrity: sha512-uW3JSY+Iaw67rfhN8NfpQd7vn1T00QIR7tI6Fj7cW6a+NweVWHMmm/BNTDtIbwg5U0VAlzs48fdNK1l4PbWGCQ==} + '@oxc-transform/binding-linux-arm64-gnu@0.31.0': + resolution: {integrity: sha512-eNtUs4TRgg8L7Aw5cGjVVnfJLlgCHD8nloJYRKZuS09h78qN7PzUs3V0smNvxVj3iFamey9d2r/sVZd89MPY4w==} cpu: [arm64] os: [linux] - '@oxc-transform/binding-linux-arm64-musl@0.30.5': - resolution: {integrity: sha512-cqa57svTkq5mKMGqTcmn4eEeFChO2y8Z3UPaUg2W9qpWa0VjYmBXbBFcKj7f/6nHg8S8i4GLP1JwNbZNNvCzsw==} + '@oxc-transform/binding-linux-arm64-musl@0.31.0': + resolution: {integrity: sha512-yEps46bvFWZn4LJiRv+xNQKBOUd2WQF5sRwX2BFASqGGoDm3GbLV9ge9iyd5L+PvqXUANuMy7Pim6rwmRxDcdQ==} cpu: [arm64] os: [linux] - '@oxc-transform/binding-linux-x64-gnu@0.30.5': - resolution: {integrity: sha512-sYAIKwpVXArXJDetF6NiKcselPxIdHD3sAlkWsfI1I7F6gRxqF+FucRP7IZi6ULDC4rLeyE9rW+NRBGD6N6mmQ==} + '@oxc-transform/binding-linux-x64-gnu@0.31.0': + resolution: {integrity: sha512-8XP6bOi8CGlyEFEpinADND44ZklEq8q3Q8CB8gYpMP1QS7u0VyH1AeKwXES2r+g4N7ndv4y3hmK/1GdTE6Q4sA==} cpu: [x64] os: [linux] - '@oxc-transform/binding-linux-x64-musl@0.30.5': - resolution: {integrity: sha512-JrwvyOSNjOTG48Fu51WSWWWWGU1abs3RHtQ9NJTLE5dZsvqCe/A1qJSaCJskEuqRcDf++6yO3gXSg8q/JAn3rg==} + '@oxc-transform/binding-linux-x64-musl@0.31.0': + resolution: {integrity: sha512-Wjc8dCdOcLZrRYP6Tw3uBUD2YjOptIe0V0AkC9immpx57aaiHA4YFcCQFd8Jg+LChqd+jVQMJCIkx6+jSdmbIg==} cpu: [x64] os: [linux] - '@oxc-transform/binding-win32-arm64-msvc@0.30.5': - resolution: {integrity: sha512-EXjLTyuFdpna949GkkytWs8v6SGG/xuYRprZWNhTv8oBaxBTEUiHW4dhuNkEYa/WyA4PWQJx+cN8vllnhOchkQ==} + '@oxc-transform/binding-win32-arm64-msvc@0.31.0': + resolution: {integrity: sha512-RGtJ4fLLMRMzjvCphuPZvRU/te0IpFacoKmfZwbkOY0Tc1EAXJKJvtbk2Nxn+22O3qilLv8d+WX7li32sE6s5A==} cpu: [arm64] os: [win32] - '@oxc-transform/binding-win32-x64-msvc@0.30.5': - resolution: {integrity: sha512-vKBHInTCqC70oGFnZTKgcC7EeJ7On0QWmyTZwtn6snOW9UP6eCs/xpKfDmp4ZWUxiAV4EikXbXuy0snl5Spm8Q==} + '@oxc-transform/binding-win32-x64-msvc@0.31.0': + resolution: {integrity: sha512-QHB6+wU2/Ilr8UGu68F+LOrZ85GqPuMMvpxa+9Y01j5vWE+/qUypQE6gf/zKMwubq+JVBBUUEqK3ApHxRcISzQ==} cpu: [x64] os: [win32] @@ -1026,11 +1010,11 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} - '@polka/url@1.0.0-next.25': - resolution: {integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==} + '@polka/url@1.0.0-next.28': + resolution: {integrity: sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==} - '@prisma/client@5.18.0': - resolution: {integrity: sha512-BWivkLh+af1kqC89zCJYkHsRcyWsM8/JHpsDMM76DjP3ZdEquJhXa4IeX+HkWPnwJ5FanxEJFZZDTWiDs/Kvyw==} + '@prisma/client@5.22.0': + resolution: {integrity: sha512-M0SVXfyHnQREBKxCgyo7sffrKttwE6R8PMq330MIUF0pTwjUhLbW84pFDlf06B27XyCR++VtjugEnIHdr07SVA==} engines: {node: '>=16.13'} peerDependencies: prisma: '*' @@ -1038,107 +1022,117 @@ packages: prisma: optional: true - '@prisma/debug@5.18.0': - resolution: {integrity: sha512-f+ZvpTLidSo3LMJxQPVgAxdAjzv5OpzAo/eF8qZqbwvgi2F5cTOI9XCpdRzJYA0iGfajjwjOKKrVq64vkxEfUw==} + '@prisma/debug@5.22.0': + resolution: {integrity: sha512-AUt44v3YJeggO2ZU5BkXI7M4hu9BF2zzH2iF2V5pyXT/lRTyWiElZ7It+bRH1EshoMRxHgpYg4VB6rCM+mG5jQ==} - '@prisma/engines-version@5.18.0-25.4c784e32044a8a016d99474bd02a3b6123742169': - resolution: {integrity: sha512-a/+LpJj8vYU3nmtkg+N3X51ddbt35yYrRe8wqHTJtYQt7l1f8kjIBcCs6sHJvodW/EK5XGvboOiwm47fmNrbgg==} + '@prisma/engines-version@5.22.0-44.605197351a3c8bdd595af2d2a9bc3025bca48ea2': + resolution: {integrity: sha512-2PTmxFR2yHW/eB3uqWtcgRcgAbG1rwG9ZriSvQw+nnb7c4uCr3RAcGMb6/zfE88SKlC1Nj2ziUvc96Z379mHgQ==} - '@prisma/engines@5.18.0': - resolution: {integrity: sha512-ofmpGLeJ2q2P0wa/XaEgTnX/IsLnvSp/gZts0zjgLNdBhfuj2lowOOPmDcfKljLQUXMvAek3lw5T01kHmCG8rg==} + '@prisma/engines@5.22.0': + resolution: {integrity: sha512-UNjfslWhAt06kVL3CjkuYpHAWSO6L4kDCVPegV6itt7nD1kSJavd3vhgAEhjglLJJKEdJ7oIqDJ+yHk6qO8gPA==} - '@prisma/fetch-engine@5.18.0': - resolution: {integrity: sha512-I/3u0x2n31rGaAuBRx2YK4eB7R/1zCuayo2DGwSpGyrJWsZesrV7QVw7ND0/Suxeo/vLkJ5OwuBqHoCxvTHpOg==} + '@prisma/fetch-engine@5.22.0': + resolution: {integrity: sha512-bkrD/Mc2fSvkQBV5EpoFcZ87AvOgDxbG99488a5cexp5Ccny+UM6MAe/UFkUC0wLYD9+9befNOqGiIJhhq+HbA==} - '@prisma/get-platform@5.18.0': - resolution: {integrity: sha512-Tk+m7+uhqcKDgnMnFN0lRiH7Ewea0OEsZZs9pqXa7i3+7svS3FSCqDBCaM9x5fmhhkufiG0BtunJVDka+46DlA==} + '@prisma/get-platform@5.22.0': + resolution: {integrity: sha512-pHhpQdr1UPFpt+zFfnPazhulaZYCUqeIcPpJViYoq9R+D/yw4fjE+CtnsnKzPYm0ddUbeXUzjGVGIRVgPDCk4Q==} '@rollup/pluginutils@4.2.1': resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} engines: {node: '>= 8.0.0'} - '@rollup/rollup-android-arm-eabi@4.20.0': - resolution: {integrity: sha512-TSpWzflCc4VGAUJZlPpgAJE1+V60MePDQnBd7PPkpuEmOy8i87aL6tinFGKBFKuEDikYpig72QzdT3QPYIi+oA==} + '@rollup/rollup-android-arm-eabi@4.27.4': + resolution: {integrity: sha512-2Y3JT6f5MrQkICUyRVCw4oa0sutfAsgaSsb0Lmmy1Wi2y7X5vT9Euqw4gOsCyy0YfKURBg35nhUKZS4mDcfULw==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.20.0': - resolution: {integrity: sha512-u00Ro/nok7oGzVuh/FMYfNoGqxU5CPWz1mxV85S2w9LxHR8OoMQBuSk+3BKVIDYgkpeOET5yXkx90OYFc+ytpQ==} + '@rollup/rollup-android-arm64@4.27.4': + resolution: {integrity: sha512-wzKRQXISyi9UdCVRqEd0H4cMpzvHYt1f/C3CoIjES6cG++RHKhrBj2+29nPF0IB5kpy9MS71vs07fvrNGAl/iA==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.20.0': - resolution: {integrity: sha512-uFVfvzvsdGtlSLuL0ZlvPJvl6ZmrH4CBwLGEFPe7hUmf7htGAN+aXo43R/V6LATyxlKVC/m6UsLb7jbG+LG39Q==} + '@rollup/rollup-darwin-arm64@4.27.4': + resolution: {integrity: sha512-PlNiRQapift4LNS8DPUHuDX/IdXiLjf8mc5vdEmUR0fF/pyy2qWwzdLjB+iZquGr8LuN4LnUoSEvKRwjSVYz3Q==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.20.0': - resolution: {integrity: sha512-xbrMDdlev53vNXexEa6l0LffojxhqDTBeL+VUxuuIXys4x6xyvbKq5XqTXBCEUA8ty8iEJblHvFaWRJTk/icAQ==} + '@rollup/rollup-darwin-x64@4.27.4': + resolution: {integrity: sha512-o9bH2dbdgBDJaXWJCDTNDYa171ACUdzpxSZt+u/AAeQ20Nk5x+IhA+zsGmrQtpkLiumRJEYef68gcpn2ooXhSQ==} cpu: [x64] os: [darwin] - '@rollup/rollup-linux-arm-gnueabihf@4.20.0': - resolution: {integrity: sha512-jMYvxZwGmoHFBTbr12Xc6wOdc2xA5tF5F2q6t7Rcfab68TT0n+r7dgawD4qhPEvasDsVpQi+MgDzj2faOLsZjA==} + '@rollup/rollup-freebsd-arm64@4.27.4': + resolution: {integrity: sha512-NBI2/i2hT9Q+HySSHTBh52da7isru4aAAo6qC3I7QFVsuhxi2gM8t/EI9EVcILiHLj1vfi+VGGPaLOUENn7pmw==} + cpu: [arm64] + os: [freebsd] + + '@rollup/rollup-freebsd-x64@4.27.4': + resolution: {integrity: sha512-wYcC5ycW2zvqtDYrE7deary2P2UFmSh85PUpAx+dwTCO9uw3sgzD6Gv9n5X4vLaQKsrfTSZZ7Z7uynQozPVvWA==} + cpu: [x64] + os: [freebsd] + + '@rollup/rollup-linux-arm-gnueabihf@4.27.4': + resolution: {integrity: sha512-9OwUnK/xKw6DyRlgx8UizeqRFOfi9mf5TYCw1uolDaJSbUmBxP85DE6T4ouCMoN6pXw8ZoTeZCSEfSaYo+/s1w==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.20.0': - resolution: {integrity: sha512-1asSTl4HKuIHIB1GcdFHNNZhxAYEdqML/MW4QmPS4G0ivbEcBr1JKlFLKsIRqjSwOBkdItn3/ZDlyvZ/N6KPlw==} + '@rollup/rollup-linux-arm-musleabihf@4.27.4': + resolution: {integrity: sha512-Vgdo4fpuphS9V24WOV+KwkCVJ72u7idTgQaBoLRD0UxBAWTF9GWurJO9YD9yh00BzbkhpeXtm6na+MvJU7Z73A==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.20.0': - resolution: {integrity: sha512-COBb8Bkx56KldOYJfMf6wKeYJrtJ9vEgBRAOkfw6Ens0tnmzPqvlpjZiLgkhg6cA3DGzCmLmmd319pmHvKWWlQ==} + '@rollup/rollup-linux-arm64-gnu@4.27.4': + resolution: {integrity: sha512-pleyNgyd1kkBkw2kOqlBx+0atfIIkkExOTiifoODo6qKDSpnc6WzUY5RhHdmTdIJXBdSnh6JknnYTtmQyobrVg==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.20.0': - resolution: {integrity: sha512-+it+mBSyMslVQa8wSPvBx53fYuZK/oLTu5RJoXogjk6x7Q7sz1GNRsXWjn6SwyJm8E/oMjNVwPhmNdIjwP135Q==} + '@rollup/rollup-linux-arm64-musl@4.27.4': + resolution: {integrity: sha512-caluiUXvUuVyCHr5DxL8ohaaFFzPGmgmMvwmqAITMpV/Q+tPoaHZ/PWa3t8B2WyoRcIIuu1hkaW5KkeTDNSnMA==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.20.0': - resolution: {integrity: sha512-yAMvqhPfGKsAxHN8I4+jE0CpLWD8cv4z7CK7BMmhjDuz606Q2tFKkWRY8bHR9JQXYcoLfopo5TTqzxgPUjUMfw==} + '@rollup/rollup-linux-powerpc64le-gnu@4.27.4': + resolution: {integrity: sha512-FScrpHrO60hARyHh7s1zHE97u0KlT/RECzCKAdmI+LEoC1eDh/RDji9JgFqyO+wPDb86Oa/sXkily1+oi4FzJQ==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.20.0': - resolution: {integrity: sha512-qmuxFpfmi/2SUkAw95TtNq/w/I7Gpjurx609OOOV7U4vhvUhBcftcmXwl3rqAek+ADBwSjIC4IVNLiszoj3dPA==} + '@rollup/rollup-linux-riscv64-gnu@4.27.4': + resolution: {integrity: sha512-qyyprhyGb7+RBfMPeww9FlHwKkCXdKHeGgSqmIXw9VSUtvyFZ6WZRtnxgbuz76FK7LyoN8t/eINRbPUcvXB5fw==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.20.0': - resolution: {integrity: sha512-I0BtGXddHSHjV1mqTNkgUZLnS3WtsqebAXv11D5BZE/gfw5KoyXSAXVqyJximQXNvNzUo4GKlCK/dIwXlz+jlg==} + '@rollup/rollup-linux-s390x-gnu@4.27.4': + resolution: {integrity: sha512-PFz+y2kb6tbh7m3A7nA9++eInGcDVZUACulf/KzDtovvdTizHpZaJty7Gp0lFwSQcrnebHOqxF1MaKZd7psVRg==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.20.0': - resolution: {integrity: sha512-y+eoL2I3iphUg9tN9GB6ku1FA8kOfmF4oUEWhztDJ4KXJy1agk/9+pejOuZkNFhRwHAOxMsBPLbXPd6mJiCwew==} + '@rollup/rollup-linux-x64-gnu@4.27.4': + resolution: {integrity: sha512-Ni8mMtfo+o/G7DVtweXXV/Ol2TFf63KYjTtoZ5f078AUgJTmaIJnj4JFU7TK/9SVWTaSJGxPi5zMDgK4w+Ez7Q==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.20.0': - resolution: {integrity: sha512-hM3nhW40kBNYUkZb/r9k2FKK+/MnKglX7UYd4ZUy5DJs8/sMsIbqWK2piZtVGE3kcXVNj3B2IrUYROJMMCikNg==} + '@rollup/rollup-linux-x64-musl@4.27.4': + resolution: {integrity: sha512-5AeeAF1PB9TUzD+3cROzFTnAJAcVUGLuR8ng0E0WXGkYhp6RD6L+6szYVX+64Rs0r72019KHZS1ka1q+zU/wUw==} cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.20.0': - resolution: {integrity: sha512-psegMvP+Ik/Bg7QRJbv8w8PAytPA7Uo8fpFjXyCRHWm6Nt42L+JtoqH8eDQ5hRP7/XW2UiIriy1Z46jf0Oa1kA==} + '@rollup/rollup-win32-arm64-msvc@4.27.4': + resolution: {integrity: sha512-yOpVsA4K5qVwu2CaS3hHxluWIK5HQTjNV4tWjQXluMiiiu4pJj4BN98CvxohNCpcjMeTXk/ZMJBRbgRg8HBB6A==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.20.0': - resolution: {integrity: sha512-GabekH3w4lgAJpVxkk7hUzUf2hICSQO0a/BLFA11/RMxQT92MabKAqyubzDZmMOC/hcJNlc+rrypzNzYl4Dx7A==} + '@rollup/rollup-win32-ia32-msvc@4.27.4': + resolution: {integrity: sha512-KtwEJOaHAVJlxV92rNYiG9JQwQAdhBlrjNRp7P9L8Cb4Rer3in+0A+IPhJC9y68WAi9H0sX4AiG2NTsVlmqJeQ==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.20.0': - resolution: {integrity: sha512-aJ1EJSuTdGnM6qbVC4B5DSmozPTqIag9fSzXRNNo+humQLG89XpPgdt16Ia56ORD7s+H8Pmyx44uczDQ0yDzpg==} + '@rollup/rollup-win32-x64-msvc@4.27.4': + resolution: {integrity: sha512-3j4jx1TppORdTAoBJRd+/wJRGCPC0ETWkXOecJ6PPZLj6SptXkrXcNqdj0oclbKML6FkQltdz7bBA3rUSirZug==} cpu: [x64] os: [win32] - '@sinclair/typebox@0.32.35': - resolution: {integrity: sha512-Ul3YyOTU++to8cgNkttakC0dWvpERr6RYoHO2W47DLbFvrwBDJUY31B1sImH6JZSYc4Kt4PyHtoPNu+vL2r2dA==} + '@sinclair/typebox@0.34.8': + resolution: {integrity: sha512-PuVkV/MmJOsjem7FIlmuPhd2Owvq4v+ZVvN6wxWuT1NduGDzz2jlc4xIvPQSUE0yS13BRaYOVNq9rnIOkucGVA==} '@ts-morph/common@0.20.0': resolution: {integrity: sha512-7uKjByfbPpwuzkstL3L5MQyuXPSKdoNG93Fmi2JoDcTf3pEP731JdRFAduRVkOs8oqxPsXKA+ScrWkdQ8t/I+Q==} @@ -1164,11 +1158,11 @@ packages: '@types/connect@3.4.38': resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} - '@types/estree@1.0.5': - resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + '@types/estree@1.0.6': + resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} - '@types/express-serve-static-core@4.19.5': - resolution: {integrity: sha512-y6W03tvrACO72aijJ5uF02FRq5cgDR9lUxddQ8vyF+GvmjJQqbzDcJngEjURc+ZsG31VI3hODNZJ2URj86pzmg==} + '@types/express-serve-static-core@4.19.6': + resolution: {integrity: sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==} '@types/express@4.17.21': resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} @@ -1182,29 +1176,26 @@ packages: '@types/node-forge@1.3.11': resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==} - '@types/node@20.14.15': - resolution: {integrity: sha512-Fz1xDMCF/B00/tYSVMlmK7hVeLh7jE5f3B7X1/hmV0MJBwE27KlS7EvD/Yp+z1lm8mVhwV5w+n8jOZG8AfTlKw==} - - '@types/node@22.2.0': - resolution: {integrity: sha512-bm6EG6/pCpkxDf/0gDNDdtDILMOHgaQBVOJGdwsqClnxA3xL6jtMv76rLBc006RVMWbmaf0xbmom4Z/5o2nRkQ==} + '@types/node@20.17.7': + resolution: {integrity: sha512-sZXXnpBFMKbao30dUAvzKbdwA2JM1fwUtVEq/kxKuPI5mMwZiRElCpTXb0Biq/LMEVpXDZL5G5V0RPnxKeyaYg==} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} - '@types/prop-types@15.7.12': - resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==} + '@types/prop-types@15.7.13': + resolution: {integrity: sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==} - '@types/qs@6.9.15': - resolution: {integrity: sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==} + '@types/qs@6.9.17': + resolution: {integrity: sha512-rX4/bPcfmvxHDv0XjfJELTTr+iB+tn032nPILqHm5wbthUUUuVtNGGqzhya9XUxjTP8Fpr0qYgSZZKxGY++svQ==} '@types/range-parser@1.2.7': resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} - '@types/react-dom@18.3.0': - resolution: {integrity: sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==} + '@types/react-dom@18.3.1': + resolution: {integrity: sha512-qW1Mfv8taImTthu4KoXgDfLuk4bydU6Q/TkADnDWWHwi4NX4BR+LWfTp2sVmTqRrsHvyDDTelgelxJ+SsejKKQ==} - '@types/react@18.3.3': - resolution: {integrity: sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==} + '@types/react@18.3.12': + resolution: {integrity: sha512-D2wOSq/d6Agt28q7rSI3jhU7G6aiuzljDGZ2hTZHIkrTLUI+AF3WMeKkEZ9nN2fkBAlcktT6vcZjDFiIhMYEQw==} '@types/send@0.17.4': resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} @@ -1221,34 +1212,34 @@ packages: '@universal-middleware/core@0.2.13': resolution: {integrity: sha512-FkWz+UQuaqRPzK8xc2GIyJEbetuUzDiJKqs7uJYDcepkHtZUVon+5FrwzxGr2XJnXtWE/vK58wrwETz4WkEmCA==} - '@universal-middleware/elysia@0.2.1': - resolution: {integrity: sha512-X9IAUHR0hM0oh3NR9xxJ1Ka5waLmySGqJSIcOC8gkDfK95fYTqLmngUpElu1wSIlOyYTVEDyyu/saBBXhhn5Xw==} + '@universal-middleware/elysia@0.2.2': + resolution: {integrity: sha512-itEo6yWNSZ/fas/ZFks2F2tIHPtzS/nmScmcD/U5jKquFwc+yTU0Fd3WxeynBBzDTdvcqZUfiJ++z8P5y9uPUQ==} - '@universal-middleware/express@0.2.8': - resolution: {integrity: sha512-m+LMPrUbkRwiFd7Zl1IdH1V2R4ngx9KmXYvtCCsHDOSZ6+xmF6MhiqtZHECJgBbl1d6C7742hQggGYVQ91EzLQ==} + '@universal-middleware/express@0.2.9': + resolution: {integrity: sha512-xK5pA1I9voMfcs4lk1jJnneY/PME4rWKMyPx4zZ0JxL6Z//8AcLmZQy7KTV0uwSS8Ipn88p0lrBMZ4EcGEYZMQ==} - '@universal-middleware/fastify@0.3.5': - resolution: {integrity: sha512-crO4KbG7wklVSrJZ58ukBr9dSRr6PGkYiRODFi4Wk2iNYmRYPqFJ1WSr8IZ29x1OWnNp4VEoEj/R+0QMdhFh2Q==} + '@universal-middleware/fastify@0.3.6': + resolution: {integrity: sha512-fFGzRMr/F+GUHaiv0DgsvRENb/l2aM6A8+2EgGV68ztdGGBOdZJ9Jti4z/D1lYA7yQytVWFv+LUKOATngjMpwg==} - '@universal-middleware/h3@0.2.7': - resolution: {integrity: sha512-r/3oC8/en6YvWgQC0TfSz0Y9itk4b4auXQhVyWuByotFbU2UMRe7fgq/ZU5J1IgACwFi5IzgfgleNODozt5K6g==} + '@universal-middleware/h3@0.2.8': + resolution: {integrity: sha512-o/E0fMOXeSXnRFxcke5go6cXc1s8/dSAeX5+voO6Ci6kAcVyFvPsM2/IjKEhELd4rmLPW6nYvjIuTfw6PPIhSA==} '@universal-middleware/hattip@0.2.10': resolution: {integrity: sha512-xbymaNVIQMjD1hlD85pFvB3xbXplPoSYrw3xNmAG9Q0H7znD3mMEqfMOwn7T2IqRPKo+aLsLii04jgzJzjjHuA==} - '@universal-middleware/hono@0.2.11': - resolution: {integrity: sha512-DAZy0xctHBJ6WW/jsPbbMEuLxTZ7I0E/mEfT95NFF5lE/NF8qjAmv4GVnPL0jLVGzbmyDy/pyO6EGDV7Bv/uNg==} + '@universal-middleware/hono@0.2.12': + resolution: {integrity: sha512-fhHne/mrH0MhoTGejIZU/PoWsKx8lf/j4hY2FS9KfGaS6yRTZIJeY2BOT30Ux6R/EhwQKAXsNPp+PgOnD4ya3A==} - '@universal-middleware/webroute@0.2.7': - resolution: {integrity: sha512-M/ggO5iy9A/mQ2LYh5rzmYp4v73XFf9HLZi2QWCD9DvSNWkKr3wQrjL9EK0HZf3un2pe2G5rFqcy0kb6lsQvcA==} + '@universal-middleware/webroute@0.2.8': + resolution: {integrity: sha512-BkgioS5SJ9opl8hGNUHrPmf7n5RAk6b9AW6x7ljTTFb2AMhRHA13nQk3Q4rdlXsHKrlaUvyqjZU9yG8+0co8fA==} '@vercel/nft@0.26.5': resolution: {integrity: sha512-NHxohEqad6Ra/r4lGknO52uc/GrWILXAMs1BB4401GTqww0fw1bAqzpG1XHuDO+dprg4GvsD9ZLLSsdo78p9hQ==} engines: {node: '>=16'} hasBin: true - '@vitejs/plugin-react@4.3.1': - resolution: {integrity: sha512-m/V2syj5CuVnaxcUJOQRel/Wr31FFXRFlnOoq1TVtkCxsY5veGMTEmpWHndrhB2U8ScHtCQB1e+4hWYExQc6Lg==} + '@vitejs/plugin-react@4.3.3': + resolution: {integrity: sha512-NooDe9GpHGqNns1i8XDERg0Vsg5SSYRhRxxyTGogUdkdNt47jal+fbuYi+Yfq6pzRCKXyoPcWisfxE6RIM3GKA==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: vite: ^4.2.0 || ^5.0.0 @@ -1260,10 +1251,6 @@ packages: abbrev@1.1.1: resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} - abort-controller@3.0.0: - resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} - engines: {node: '>=6.5'} - abstract-logging@2.0.1: resolution: {integrity: sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA==} @@ -1276,12 +1263,12 @@ packages: peerDependencies: acorn: ^8 - acorn-walk@8.3.3: - resolution: {integrity: sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==} + acorn-walk@8.3.4: + resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} engines: {node: '>=0.4.0'} - acorn@8.12.1: - resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} + acorn@8.14.0: + resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} engines: {node: '>=0.4.0'} hasBin: true @@ -1319,10 +1306,6 @@ packages: resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} engines: {node: '>=12'} - ansi-styles@3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} - ansi-styles@4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} @@ -1334,10 +1317,6 @@ packages: any-promise@1.3.0: resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} - anymatch@3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} - engines: {node: '>= 8'} - aproba@2.0.0: resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} @@ -1371,13 +1350,6 @@ packages: balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - base64-js@1.5.1: - resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - - binary-extensions@2.3.0: - resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} - engines: {node: '>=8'} - bindings@1.5.0: resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} @@ -1398,17 +1370,14 @@ packages: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - browserslist@4.23.3: - resolution: {integrity: sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==} + browserslist@4.24.2: + resolution: {integrity: sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - buffer@6.0.3: - resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} - bundle-require@5.0.0: resolution: {integrity: sha512-GuziW3fSSmopcx4KRymQEJVbZUfqlCqcq7dvs6TYwKRZiegK/2buMxQTPs6MGlNv50wms1699qYO54R8XfRX4w==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -1427,8 +1396,8 @@ packages: resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} engines: {node: '>= 0.4'} - caniuse-lite@1.0.30001651: - resolution: {integrity: sha512-9Cf+Xv1jJNe1xPZLGuUXLNkE1BoDkqRqYyFJ9TDYSqhduqA4hu4oR9HluGoWYQC/aj8WHjsGVV+bwkh0+tegRg==} + caniuse-lite@1.0.30001684: + resolution: {integrity: sha512-G1LRwLIQjBQoyq0ZJGqGIJUXzJ8irpbjHLpVRXDvBEScFJ9b17sgK6vlx0GAJFE21okD7zXl08rRRUfq6HdoEQ==} capnp-ts@0.7.0: resolution: {integrity: sha512-XKxXAC3HVPv7r674zP0VC3RTXz+/JKhfyw94ljvF80yynK6VkTnqE3jMuN8b3dUVmmc43TjyxjW4KTsmB3c86g==} @@ -1437,16 +1406,12 @@ packages: resolution: {integrity: sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==} engines: {node: '>=4'} - chalk@2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} - engines: {node: '>=4'} - check-error@1.0.3: resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} - chokidar@3.6.0: - resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} - engines: {node: '>= 8.10.0'} + chokidar@4.0.1: + resolution: {integrity: sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==} + engines: {node: '>= 14.16.0'} chownr@2.0.0: resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} @@ -1455,16 +1420,10 @@ packages: code-block-writer@12.0.0: resolution: {integrity: sha512-q4dMFMlXtKR3XNBHyMHt/3pwYNA69EDk00lloMOaaUMKPUXBw6lpXtbu3MMVG6/uOihGnRDOlkyqsONEUj60+w==} - color-convert@1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} - color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} - color-name@1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} @@ -1583,17 +1542,17 @@ packages: cookie-signature@1.0.6: resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} - cookie@0.5.0: - resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} + cookie@0.7.1: + resolution: {integrity: sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==} engines: {node: '>= 0.6'} - cookie@0.6.0: - resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} + cookie@0.7.2: + resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} engines: {node: '>= 0.6'} - cookie@0.7.1: - resolution: {integrity: sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==} - engines: {node: '>= 0.6'} + cookie@1.0.2: + resolution: {integrity: sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==} + engines: {node: '>=18'} core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} @@ -1603,17 +1562,12 @@ packages: engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} hasBin: true - cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} - crossws@0.2.4: - resolution: {integrity: sha512-DAxroI2uSOgUKLz00NX6A8U/8EE3SZHmIND+10jkVSaypvyt57J5JEOxAQOL6lQxyzi/wZbTIwssU1uy69h5Vg==} - peerDependencies: - uWebSockets.js: '*' - peerDependenciesMeta: - uWebSockets.js: - optional: true + crossws@0.3.1: + resolution: {integrity: sha512-HsZgeVYaG+b5zA+9PbIPGq4+J/CJynJuearykPsXx4V/eMhyQ5EDVg3Ak2FBZtVXCiOLu/U7IiwDHTr9MA+IKw==} csstype@3.1.3: resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} @@ -1625,8 +1579,8 @@ packages: data-uri-to-buffer@2.0.2: resolution: {integrity: sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==} - date-fns@3.6.0: - resolution: {integrity: sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww==} + date-fns@4.1.0: + resolution: {integrity: sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==} debug@2.6.9: resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} @@ -1636,8 +1590,8 @@ packages: supports-color: optional: true - debug@4.3.6: - resolution: {integrity: sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==} + debug@4.3.7: + resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} engines: {node: '>=6.0'} peerDependencies: supports-color: '*' @@ -1687,11 +1641,11 @@ packages: ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - electron-to-chromium@1.5.6: - resolution: {integrity: sha512-jwXWsM5RPf6j9dPYzaorcBSUg6AiqocPEyMpkchkvntaH9HGfOOMZwxMJjDY/XEs3T5dM7uyH1VhRMkqUU9qVw==} + electron-to-chromium@1.5.64: + resolution: {integrity: sha512-IXEuxU+5ClW2IGEYFC2T7szbyVgehupCWQe5GNh+H065CD6U6IFN0s4KeAMFGNmQolRU4IV7zGBWSYMmZ8uuqQ==} - elysia@1.1.6: - resolution: {integrity: sha512-nj3m1EU+KK2171yhHKm4MyVf5tYAOvq0uwjQ57q40r+fNxxPr8YEahE9PoJngZrrs6ctmKYCuoKSr96bfnSZAQ==} + elysia@1.1.25: + resolution: {integrity: sha512-lBLUnhfD86q/0a5sNzWTiNuPsrW7ykGz8HoebybVfK+P1hjVwzzPkM/NtNnwPx7wrpd+D7UP7EyqeFPD4CPaQA==} peerDependencies: '@sinclair/typebox': '>= 0.32.0' openapi-types: '>= 12.0.0' @@ -1727,9 +1681,6 @@ packages: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} - es-module-lexer@0.7.1: - resolution: {integrity: sha512-MgtWFl5No+4S3TmhDmCz2ObFGm6lEpTnzbQi+Dd+pw4mlTIZTmM2iAs5gRlmx5zS9luzobCSBSI90JM/1/JgOw==} - es-module-lexer@1.5.4: resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==} @@ -1738,17 +1689,13 @@ packages: engines: {node: '>=18'} hasBin: true - escalade@3.1.2: - resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} escape-html@1.0.3: resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} - escape-string-regexp@1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} - escape-string-regexp@4.0.0: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} @@ -1763,14 +1710,6 @@ packages: resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} engines: {node: '>= 0.6'} - event-target-shim@5.0.1: - resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} - engines: {node: '>=6'} - - events@3.3.0: - resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} - engines: {node: '>=0.8.x'} - execa@5.1.1: resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} engines: {node: '>=10'} @@ -1809,8 +1748,8 @@ packages: fast-uri@2.4.0: resolution: {integrity: sha512-ypuAmmMKInk5q7XcepxlnUWDLWv4GFtaJqAzWKqn62IpQ3pejtr5dTVbt3vwqVaMKmkNR55sTT+CqUKIaT21BA==} - fast-uri@3.0.1: - resolution: {integrity: sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==} + fast-uri@3.0.3: + resolution: {integrity: sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==} fastify-plugin@5.0.1: resolution: {integrity: sha512-HCxs+YnRaWzCl+cWRYFnHmeRFyR5GVnJTAaCJQiYzQSDwK9MgJdyAsuL3nh0EWRCYMgQ5MeziymvmAhUHYHDUQ==} @@ -1825,8 +1764,8 @@ packages: fastq@1.17.1: resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} - fdir@6.4.0: - resolution: {integrity: sha512-3oB133prH1o4j/L5lLW7uOCF1PlD+/It2L0eL/iAqWMB91RBbqTewABqxhj0ibBd90EEmWZq7ntIWzVaWcXTGQ==} + fdir@6.4.2: + resolution: {integrity: sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ==} peerDependencies: picomatch: ^3 || ^4 peerDependenciesMeta: @@ -1844,8 +1783,8 @@ packages: resolution: {integrity: sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==} engines: {node: '>= 0.8'} - find-my-way@8.2.0: - resolution: {integrity: sha512-HdWXgFYc6b1BJcOBDBwjqWuHJj1WYiqrxSh25qtU4DabpMFdj/gSunNBQb83t+8Zt67D7CXEzJWTkxaShMTMOA==} + find-my-way@8.2.2: + resolution: {integrity: sha512-Dobi7gcTEq8yszimcfp/R7+owiT4WncAJ7VTTgFH1jYJ5GaG1FbhjwDG820hptN0QDFvzVY3RfCzdInvGPGzjA==} engines: {node: '>=14'} find-up-simple@1.0.0: @@ -1946,18 +1885,14 @@ packages: graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - h3@1.12.0: - resolution: {integrity: sha512-Zi/CcNeWBXDrFNlV0hUBJQR9F7a96RjMeAZweW/ZWkR9fuXrMcvKnSA63f/zZ9l0GgQOZDVHGvXivNN9PWOwhA==} + h3@1.13.0: + resolution: {integrity: sha512-vFEAu/yf8UMUcB4s43OaDaigcqpQd14yanmOsn+NcRX3/guSKncyE2rOYhq8RIchgJrPSs/QiIddnTTR1ddiAg==} handlebars@4.7.8: resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} engines: {node: '>=0.4.7'} hasBin: true - has-flag@3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} - engines: {node: '>=4'} - has-property-descriptors@1.0.2: resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} @@ -1976,8 +1911,8 @@ packages: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} - hono@4.6.3: - resolution: {integrity: sha512-0LeEuBNFeSHGqZ9sNVVgZjB1V5fmhkBSB0hZrpqStSMLOWgfLy0dHOvrjbJh0H2khsjet6rbHfWTHY0kpYThKQ==} + hono@4.6.12: + resolution: {integrity: sha512-eHtf4kSDNw6VVrdbd5IQi16r22m3s7mWPLd7xOMhg1a/Yyb1A0qpUFq8xYMX4FMuDe1nTKeMX5rTx7Nmw+a+Ag==} engines: {node: '>=16.9.0'} hosted-git-info@7.0.2: @@ -2004,9 +1939,6 @@ packages: resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} engines: {node: '>=0.10.0'} - ieee754@1.2.1: - resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. @@ -2027,12 +1959,8 @@ packages: is-arrayish@0.3.2: resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} - is-binary-path@2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} - engines: {node: '>=8'} - - is-core-module@2.15.0: - resolution: {integrity: sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==} + is-core-module@2.15.1: + resolution: {integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==} engines: {node: '>= 0.4'} is-extglob@2.1.1: @@ -2073,6 +2001,9 @@ packages: isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + itty-time@1.0.6: + resolution: {integrity: sha512-+P8IZaLLBtFv8hCkIjcymZOp4UJ+xW6bSlQsXGqrkmJh7vSiMFSlNne0mCYagEE0N7HDNR5jJBRxwN0oYv61Rw==} + jackspeak@3.4.3: resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} @@ -2083,9 +2014,9 @@ packages: js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - jsesc@2.5.2: - resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} - engines: {node: '>=4'} + jsesc@3.0.2: + resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} + engines: {node: '>=6'} hasBin: true json-parse-even-better-errors@3.0.2: @@ -2110,8 +2041,8 @@ packages: resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} engines: {'0': node >= 0.2.0} - light-my-request@5.13.0: - resolution: {integrity: sha512-9IjUN9ZyCS9pTG+KqTDEQo68Sui2lHsYBrfMyVUTTZ3XhH8PMZq7xO94Kr+eP9dhi/kcKsx4N41p2IXEBil1pQ==} + light-my-request@5.14.0: + resolution: {integrity: sha512-aORPWntbpH5esaYpGOOmri0OHDOe3wC5M2MQxZ9dvMLZm6DnaAn0kJlcbU9hwsQgLzmZyReKwFwwPkR+nHu5kA==} lilconfig@3.1.2: resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==} @@ -2145,8 +2076,8 @@ packages: lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} - lru-cache@11.0.1: - resolution: {integrity: sha512-CgeuL5uom6j/ZVrg7G/+1IXqRY8JXX4Hghfy5YE0EhoYQWvndP1kufu58cmZLNIDKnRhZrXfdS9urVWx98AipQ==} + lru-cache@11.0.2: + resolution: {integrity: sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA==} engines: {node: 20 || >=22} lru-cache@5.1.1: @@ -2181,14 +2112,18 @@ packages: resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} engines: {node: '>= 0.6'} - micromatch@4.0.7: - resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} engines: {node: '>=8.6'} mime-db@1.52.0: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} + mime-db@1.53.0: + resolution: {integrity: sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg==} + engines: {node: '>= 0.6'} + mime-types@2.1.35: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} @@ -2207,8 +2142,8 @@ packages: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} - miniflare@3.20240806.0: - resolution: {integrity: sha512-jDsXBJOLUVpIQXHsluX3xV0piDxXolTCsxdje2Ex2LTC9PsSoBIkMwvCmnCxe9wpJJCq8rb0UMyeEn3KOF3LOw==} + miniflare@3.20241106.1: + resolution: {integrity: sha512-dM3RBlJE8rUFxnqlPCaFCq0E7qQqEQvKbYX7W/APGCK+rLcyLmEBzC4GQR/niXdNM/oV6gdg9AA50ghnn2ALuw==} engines: {node: '>=16.13'} hasBin: true @@ -2259,9 +2194,6 @@ packages: ms@2.0.0: resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} - ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} @@ -2303,8 +2235,8 @@ packages: resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} engines: {node: '>= 6.13.0'} - node-gyp-build@4.8.1: - resolution: {integrity: sha512-OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw==} + node-gyp-build@4.8.4: + resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} hasBin: true node-releases@2.0.18: @@ -2319,10 +2251,6 @@ packages: resolution: {integrity: sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==} engines: {node: ^16.14.0 || >=18.0.0} - normalize-path@3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} - npm-run-path@4.0.1: resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} engines: {node: '>=8'} @@ -2335,8 +2263,8 @@ packages: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} - object-inspect@1.13.2: - resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==} + object-inspect@1.13.3: + resolution: {integrity: sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==} engines: {node: '>= 0.4'} ohash@1.1.4: @@ -2361,8 +2289,8 @@ packages: resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} engines: {node: '>=6'} - oxc-transform@0.30.5: - resolution: {integrity: sha512-6LxAZx298Y2DK/5I7xdX2dC8G1IEHREL9oMy2elPVoP67s9FHcdAwGVKlcjkISlCfG22YAISYAhxKAdWS7hXhg==} + oxc-transform@0.31.0: + resolution: {integrity: sha512-7NirXynEn8hxw371f2UQL56ljvKSzLI2mTdKe3dZyPDS7EmCkkKrEyWCufDYEWaN6ZhBba0ACaMRjVMsY6Et2g==} p-limit@4.0.0: resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} @@ -2412,8 +2340,8 @@ packages: path-to-regexp@0.1.10: resolution: {integrity: sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==} - path-to-regexp@6.2.2: - resolution: {integrity: sha512-GQX3SSMokngb36+whdpRXE+3f9V8UzyAorlYvOGx87ufGHehNTn5lCxrKtLyZ4Yl/wEKnNnr98ZzOwwDZV5ogw==} + path-to-regexp@6.3.0: + resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==} pathe@1.1.2: resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} @@ -2421,8 +2349,8 @@ packages: pathval@1.1.1: resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} - picocolors@1.1.0: - resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==} + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} @@ -2432,14 +2360,14 @@ packages: resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} engines: {node: '>=12'} - pino-abstract-transport@1.2.0: - resolution: {integrity: sha512-Guhh8EZfPCfH+PMXAb6rKOjGQEoy0xlAIn+irODG5kgfYV+BQ0rGYYWTIel3P5mmyXqkYkPmdIkywsn6QKUR1Q==} + pino-abstract-transport@2.0.0: + resolution: {integrity: sha512-F63x5tizV6WCh4R6RHyi2Ml+M70DNRXt/+HANowMflpgGFMAym/VKm6G7ZOQRjqN7XbGxK1Lg9t6ZrtzOaivMw==} pino-std-serializers@7.0.0: resolution: {integrity: sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==} - pino@9.3.2: - resolution: {integrity: sha512-WtARBjgZ7LNEkrGWxMBN/jvlFiE17LTbBoH0konmBU684Kd0uIiDwBXlcTCW7iJnA6HfIKwUssS/2AC6cDEanw==} + pino@9.5.0: + resolution: {integrity: sha512-xSEmD4pLnV54t0NOUN16yCl7RIB1c5UUOse5HSyEXtBp+FgFQyPeDutc+Q2ZO7/22vImV7VfEjH/1zV2QuqvYw==} hasBin: true pirates@4.0.6: @@ -2450,18 +2378,18 @@ packages: resolution: {integrity: sha512-o8mkY4E/+LNUf6LzX96ht6k6CEDi65k9G2rjMtBe9Oo+VPKSvl+0GKHuH/AlG+GA5LPG/i5hrekkxUc3s2HU+Q==} hasBin: true - playwright-chromium@1.46.0: - resolution: {integrity: sha512-UTHYZsr49XFYRQkpCfaHxL63vfu6uThxR1DrNwnU6qik/OworFcugTOJMWFMoop3QP+ThU8laAMumauLdLZXCQ==} + playwright-chromium@1.49.0: + resolution: {integrity: sha512-xU+nOHawNFKfJsHTTGyWqSJ5nRGGHQq1wTsc49H9rM+hDNnoKZi+3m12mGoLpqvJP7vRjZQ3uvU9/UJZbrJ1AA==} engines: {node: '>=18'} hasBin: true - playwright-core@1.46.0: - resolution: {integrity: sha512-9Y/d5UIwuJk8t3+lhmMSAJyNP1BUC/DqP3cQJDQQL/oWqAiuPTLgy7Q5dzglmTLwcBRdetzgNM/gni7ckfTr6A==} + playwright-core@1.49.0: + resolution: {integrity: sha512-R+3KKTQF3npy5GTiKH/T+kdhoJfJojjHESR1YEWhYuEKRVfVaxH3+4+GvXE5xyCngCxhxnykk0Vlah9v8fs3jA==} engines: {node: '>=18'} hasBin: true - playwright@1.46.0: - resolution: {integrity: sha512-XYJ5WvfefWONh1uPAUAi0H2xXV5S3vrtcnXe6uAOgdGi3aSpqOSXX08IAjXW34xitfuOJsvXU5anXZxPSEQiJw==} + playwright@1.49.0: + resolution: {integrity: sha512-eKpmys0UFDnfNb3vfsf8Vx2LEOtflgRebl0Im2eQQnYMA4Aqd+Zw8bEOB+7ZKvN76901mRnqdsiOGKxzVTbi7A==} engines: {node: '>=18'} hasBin: true @@ -2487,8 +2415,8 @@ packages: yaml: optional: true - postcss@8.4.47: - resolution: {integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==} + postcss@8.4.49: + resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==} engines: {node: ^10 || ^12 || >=14} prettier@3.3.3: @@ -2499,8 +2427,8 @@ packages: printable-characters@1.0.42: resolution: {integrity: sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==} - prisma@5.18.0: - resolution: {integrity: sha512-+TrSIxZsh64OPOmaSgVPH7ALL9dfU0jceYaMJXsNrTkFHO7/3RANi5K2ZiPB1De9+KDxCWn7jvRq8y8pvk+o9g==} + prisma@5.22.0: + resolution: {integrity: sha512-vtpjW3XuYCSnMsNVBjLMNkTj6OZbudcPPTPYHqX0CJfpcdWciI1dM8uHETwmDxxiqEwCIE6WvXucWUetJgfu/A==} engines: {node: '>=16.13'} hasBin: true @@ -2513,10 +2441,6 @@ packages: process-warning@4.0.0: resolution: {integrity: sha512-/MyYDxttz7DfGMMHiysAsFE4qF+pQYAA8ziO/3NcRVrQ5fSk+Mns4QZA/oRPFzvcqNoVJXQNWNAsdwBXLUkQKw==} - process@0.11.10: - resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} - engines: {node: '>= 0.6.0'} - proxy-addr@2.0.7: resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} engines: {node: '>= 0.10'} @@ -2584,13 +2508,9 @@ packages: resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} engines: {node: '>= 6'} - readable-stream@4.5.2: - resolution: {integrity: sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - readdirp@3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} + readdirp@4.0.2: + resolution: {integrity: sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==} + engines: {node: '>= 14.16.0'} real-require@0.2.0: resolution: {integrity: sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==} @@ -2642,8 +2562,8 @@ packages: rollup-pluginutils@2.8.2: resolution: {integrity: sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==} - rollup@4.20.0: - resolution: {integrity: sha512-6rbWBChcnSGzIlXeIdNIZTopKYad8ZG8ajhl78lGRLsI2rX8IkaotQhVas2Ma+GPxJav19wrSzvRvuiv0YKzWw==} + rollup@4.27.4: + resolution: {integrity: sha512-RLKxqHEMjh/RGLsDxAEsaLO3mWgyoU6x9w6n1ikAzet4B3gI2/3yP6PWY2p9QzRTh6MfEIXB3MwsOY0Iv3vNrw==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -2659,8 +2579,8 @@ packages: safe-regex2@3.1.0: resolution: {integrity: sha512-RAAZAGbap2kBfbVhvmnTFv73NWLMvDGOITFYTZBAaY8eR+Ir4ef7Up/e7amo+y1+AH+3PtLkrt9mvcTsG9LXug==} - safe-stable-stringify@2.4.3: - resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==} + safe-stable-stringify@2.5.0: + resolution: {integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==} engines: {node: '>=10'} safer-buffer@2.1.2: @@ -2696,8 +2616,8 @@ packages: set-blocking@2.0.0: resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} - set-cookie-parser@2.7.0: - resolution: {integrity: sha512-lXLOiqpkUumhRdFF3k1osNXCy9akgx/dyPZ5p8qAg9seJzXr5ZrlqZuWIMuY6ejOsVLE6flJ5/h3lsn57fQ/PQ==} + set-cookie-parser@2.7.1: + resolution: {integrity: sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==} set-function-length@1.2.2: resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} @@ -2706,9 +2626,9 @@ packages: setprototypeof@1.2.0: resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} - sharp@0.33.4: - resolution: {integrity: sha512-7i/dt5kGl7qR4gwPRD2biwD2/SvBn3O04J77XKFgL2OnZtQw+AG9wnuS/csmu80nPRHLYE9E41fyEiG8nhH6/Q==} - engines: {libvips: '>=8.15.2', node: ^18.17.0 || ^20.3.0 || >=21.0.0} + sharp@0.33.5: + resolution: {integrity: sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} @@ -2736,8 +2656,8 @@ packages: resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} engines: {node: '>= 10'} - sonic-boom@4.0.1: - resolution: {integrity: sha512-hTSD/6JMLyT4r9zeof6UtuBDpjJ9sO08/nmS5djaA9eozT9oOlNdpXSnzcgj4FTqpk3nkLrs61l4gip9r1HCrQ==} + sonic-boom@4.2.0: + resolution: {integrity: sha512-INb7TM37/mAcsGmc9hyyI6+QR3rR1zVRu36B0NeGXKnOOLiZOfER5SA+N7X7k3yUYRzLWafduTDvJAfDswwEww==} source-map-js@1.2.1: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} @@ -2767,8 +2687,8 @@ packages: spdx-expression-parse@3.0.1: resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} - spdx-license-ids@3.0.18: - resolution: {integrity: sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ==} + spdx-license-ids@3.0.20: + resolution: {integrity: sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==} split2@4.2.0: resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} @@ -2820,10 +2740,6 @@ packages: engines: {node: '>=16 || 14 >=14.17'} hasBin: true - supports-color@5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} - engines: {node: '>=4'} - supports-preserve-symlinks-flag@1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} @@ -2832,8 +2748,8 @@ packages: resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} engines: {node: '>=10'} - telefunc@0.1.76: - resolution: {integrity: sha512-rBoFLUJuuIXQPF5hydxLEg8TNa44fFVdWVO6gMVu19AgOsRFkSXRcL0W82mw4iv6SGiCilqOoSNgGrqmV0FT9g==} + telefunc@0.1.81: + resolution: {integrity: sha512-YHL4OLUvd7V/csPmMBUyanb20RjS4UPtxGQ388w0LlKhgMgORxvYx1MqqLLEgiXXg+2rF2NpBV4UmO14lAUHGw==} engines: {node: '>=12.19.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -2870,21 +2786,20 @@ packages: through@2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} - tinyglobby@0.2.9: - resolution: {integrity: sha512-8or1+BGEdk1Zkkw2ii16qSS7uVrQJPre5A9o/XkWPATkk23FZh/15BKFxPnlTy6vkljZxLqYCzzBMj30ZrSvjw==} + tinyexec@0.3.1: + resolution: {integrity: sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==} + + tinyglobby@0.2.10: + resolution: {integrity: sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew==} engines: {node: '>=12.0.0'} - tldts-core@6.1.50: - resolution: {integrity: sha512-na2EcZqmdA2iV9zHV7OHQDxxdciEpxrjbkp+aHmZgnZKHzoElLajP59np5/4+sare9fQBfixgvXKx8ev1d7ytw==} + tldts-core@6.1.64: + resolution: {integrity: sha512-uqnl8vGV16KsyflHOzqrYjjArjfXaU6rMPXYy2/ZWoRKCkXtghgB4VwTDXUG+t0OTGeSewNAG31/x1gCTfLt+Q==} - tldts@6.1.50: - resolution: {integrity: sha512-q9GOap6q3KCsLMdOjXhWU5jVZ8/1dIib898JBRLsN+tBhENpBDcAVQbE0epADOjw11FhQQy9AcbqKGBQPUfTQA==} + tldts@6.1.64: + resolution: {integrity: sha512-ph4AE5BXWIOsSy9stpoeo7bYe/Cy7VfpciIH4RhVZUPItCJmhqWCN0EVzxd8BOHiyNb42vuJc6NWTjJkg91Tuw==} hasBin: true - to-fast-properties@2.0.0: - resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} - engines: {node: '>=4'} - to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} @@ -2921,11 +2836,11 @@ packages: ts-morph@19.0.0: resolution: {integrity: sha512-D6qcpiJdn46tUqV45vr5UGM2dnIEuTGNxVhg0sk5NX11orcouwj6i1bMqZIz2mZTZB1Hcgy7C3oEVhAT+f6mbQ==} - tslib@2.6.3: - resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} - tsup@8.3.0: - resolution: {integrity: sha512-ALscEeyS03IomcuNdFdc0YWGVIkwH1Ws7nfTbAPuoILvEV2hpGQAY72LIOjglGo4ShWpZfpBqP/jpQVCzqYQag==} + tsup@8.3.5: + resolution: {integrity: sha512-Tunf6r6m6tnZsG9GYWndg0z8dEV7fD733VBFzFJ5Vcm1FtlXB8xBD/rtrBi2a3YKEV7hHtxiZtW5EAVADoe1pA==} engines: {node: '>=18'} hasBin: true peerDependencies: @@ -2951,51 +2866,48 @@ packages: resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==} engines: {node: '>=14.16'} - type-fest@4.24.0: - resolution: {integrity: sha512-spAaHzc6qre0TlZQQ2aA/nGMe+2Z/wyGk5Z+Ru2VUfdNwT6kWO6TjevOlpebsATEG1EIQ2sOiDszud3lO5mt/Q==} + type-fest@4.28.0: + resolution: {integrity: sha512-jXMwges/FVbFRe5lTMJZVEZCrO9kI9c8k0PA/z7nF3bo0JSCCLysvokFjNPIUK/itEMas10MQM+AiHoHt/T/XA==} engines: {node: '>=16'} type-is@1.6.18: resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} engines: {node: '>= 0.6'} - typescript@5.5.4: - resolution: {integrity: sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==} + typescript@5.7.2: + resolution: {integrity: sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==} engines: {node: '>=14.17'} hasBin: true ufo@1.5.4: resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==} - uglify-js@3.19.2: - resolution: {integrity: sha512-S8KA6DDI47nQXJSi2ctQ629YzwOVs+bQML6DAtvy0wgNdpi+0ySpQK0g2pxBq2xfF2z3YCscu7NNA8nXT9PlIQ==} + uglify-js@3.19.3: + resolution: {integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==} engines: {node: '>=0.8.0'} hasBin: true uncrypto@0.1.3: resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==} - undici-types@5.26.5: - resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - - undici-types@6.13.0: - resolution: {integrity: sha512-xtFJHudx8S2DSoujjMd1WeWvn7KKWFRESZTMeL1RptAYERu29D6jphMjjY+vn96jvN3kVPDNxU/E13VTaXj6jg==} + undici-types@6.19.8: + resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} undici@5.28.4: resolution: {integrity: sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==} engines: {node: '>=14.0'} - unenv-nightly@1.10.0-1717606461.a117952: - resolution: {integrity: sha512-u3TfBX02WzbHTpaEfWEKwDijDSFAHcgXkayUZ+MVDrjhLFvgAJzFGTSTmwlEhwWi2exyRQey23ah9wELMM6etg==} - unenv-nightly@2.0.0-20241015-162228-03257ee: resolution: {integrity: sha512-7bW2ro8iwTMinr1goqA64Vd87na8REBRMqMZu0FovV7XcG1g1p0/Y4ccfuQnwVi4eqD2ga0M0B90IuUN0IG5Ng==} + unenv-nightly@2.0.0-20241111-080453-894aa31: + resolution: {integrity: sha512-0W39QQOQ9VE8kVVUpGwEG+pZcsCXk5wqNG6rDPE6Gr+fiA69LR0qERM61hW5KCOkC1/ArCFrfCGjwHyyv/bI0Q==} + unenv@1.10.0: resolution: {integrity: sha512-wY5bskBQFL9n3Eca5XnhH6KbUo/tfvkwm9OpcdCvLaeA7piBNbavbOKJySEwQ1V0RH6HvNlSAFRTpvTqgKRQXQ==} - universal-middleware@0.3.8: - resolution: {integrity: sha512-3d0CwE3APxtZSfBaPsYrUS1kI+70jwr9c+KDN53ZIfAvNNK8TxaWumiVmvGpXVyiz0tRpXUce5/MQQReplzqcw==} + universal-middleware@0.3.9: + resolution: {integrity: sha512-sh60kFv5+ywVIu1R1dAlepXii5CzwoAsSPgG/cRtknyVugD1qCH2WTO/zChvB1ZGgEBrdJV07DvmCY64VBHWXA==} peerDependencies: '@rollup/plugin-node-resolve': ^15.3.0 esbuild: ^0.24.0 @@ -3015,17 +2927,12 @@ packages: resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} engines: {node: '>= 0.8'} - unplugin@1.14.1: - resolution: {integrity: sha512-lBlHbfSFPToDYp9pjXlUEFVxYLaue9f9T1HC+4OHlmj+HnMDdz9oZY+erXfoCe/5V/7gKUSY2jpXPb9S7f0f/w==} + unplugin@1.16.0: + resolution: {integrity: sha512-5liCNPuJW8dqh3+DM6uNM2EI3MLLpCKp/KY+9pB5M2S2SR2qvvDHhKgBOaTWEbZTAws3CXfB0rKTIolWKL05VQ==} engines: {node: '>=14.0.0'} - peerDependencies: - webpack-sources: ^3 - peerDependenciesMeta: - webpack-sources: - optional: true - update-browserslist-db@1.1.0: - resolution: {integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==} + update-browserslist-db@1.1.1: + resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' @@ -3044,15 +2951,15 @@ packages: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} engines: {node: '>= 0.8'} - vike-react@0.5.7: - resolution: {integrity: sha512-loAf5t4QmSLenjpPKzk9P3Q4lhQVltg/ze0r3k3PpF3ehBJJiOfFWvKwpCi9kvt50hNnQcZgleem5itDqN/KsA==} + vike-react@0.5.8: + resolution: {integrity: sha512-qZlpB7WTYmc0O6Y3YCGdoDdUDdhr7nt77Y3y7Zj/PLSKrAcr3W7EBFeVVY+hBLbMS9Z9631fD8jUz88kgaYhpA==} peerDependencies: react: '>=18.0.0' react-dom: '>=18.0.0' vike: '>=0.4.182' - vike@0.4.198: - resolution: {integrity: sha512-+81aEkVL9Ruroxl5X1UcYAoGX0yiPx+8b9tgvuGbyNduvufF6FLDFxxRqd1G0+eaofit6xsbChG9uid4plMpog==} + vike@0.4.204: + resolution: {integrity: sha512-q9EU8FrlQ9Lowp2CP50gCUg+LRA3f8ST5pUtD+PxMGC6nJryc9LDOGe2sG0GQExdSmO4i32G5jWasX/fPoJNiA==} engines: {node: '>=18.0.0'} hasBin: true peerDependencies: @@ -3062,8 +2969,8 @@ packages: react-streaming: optional: true - vite@5.4.8: - resolution: {integrity: sha512-FqrItQ4DT1NC4zCUqMB4c4AZORMKIa0m8/URVCZ77OZ/QSNeJ54bU1vrFADbDsuwfIPcgknRkmqakQcgnL4GiQ==} + vite@5.4.11: + resolution: {integrity: sha512-c7jFQRklXua0mTzneGW9QVyxFjUgwcihC4bXEtujIo2ouWCe1Ajt/amn2PCxYnhYfd5k09JX3SB7OYWFKYqj8Q==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -3119,17 +3026,17 @@ packages: wordwrap@1.0.0: resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} - workerd@1.20240806.0: - resolution: {integrity: sha512-yyNtyzTMgVY0sgYijHBONqZFVXsOFGj2jDjS8MF/RbO2ZdGROvs4Hkc/9QnmqFWahE0STxXeJ1yW1yVotdF0UQ==} + workerd@1.20241106.1: + resolution: {integrity: sha512-1GdKl0kDw8rrirr/ThcK66Kbl4/jd4h8uHx5g7YHBrnenY5SX1UPuop2cnCzYUxlg55kPjzIqqYslz1muRFgFw==} engines: {node: '>=16'} hasBin: true - wrangler@3.71.0: - resolution: {integrity: sha512-WHWBmU2z0p1hRtSIIP5HEeoR+6aNpuZR82HMXAwpfeiyijjfkMyt/TUs8gvIOKC3x3+ETQQIdVeX2al5KtrIxQ==} + wrangler@3.90.0: + resolution: {integrity: sha512-E/6E9ORAl987+3kP8wDiE3L1lj9r4vQ32/dl5toIxIkSMssmPRQVdxqwgMxbxJrytbFNo8Eo6swgjd4y4nUaLg==} engines: {node: '>=16.17.0'} hasBin: true peerDependencies: - '@cloudflare/workers-types': ^4.20240806.0 + '@cloudflare/workers-types': ^4.20241106.0 peerDependenciesMeta: '@cloudflare/workers-types': optional: true @@ -3157,8 +3064,8 @@ packages: utf-8-validate: optional: true - xxhash-wasm@1.0.2: - resolution: {integrity: sha512-ibF0Or+FivM9lNrg+HGJfVX8WJqgo+kCLDc4vx6xMeTce7Aj+DLttKbxxRR/gNLSAelRc1omAPlJ77N/Jem07A==} + xxhash-wasm@1.1.0: + resolution: {integrity: sha512-147y/6YNh+tlp6nd/2pWq38i9h6mz/EuQ6njIrmW8D1BS5nCqs0P6DG+m6zTGnNz5I+uhZ0SHxBs9BsPrwcKDA==} yallist@3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} @@ -3170,8 +3077,8 @@ packages: resolution: {integrity: sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==} engines: {node: '>=12.20'} - youch@3.3.3: - resolution: {integrity: sha512-qSFXUk3UZBLfggAW3dJKg0BMblG5biqSF8M34E06o5CSsZtH92u9Hqmj2RzGiHDi64fhe83+4tENFP2DB6t6ZA==} + youch@3.3.4: + resolution: {integrity: sha512-UeVBXie8cA35DS6+nBkls68xaBBXCye0CNznrhszZjTbRVnJKQuNsyLKBTTL4ln1o1rh2PKtv35twV7irj5SEg==} zod@3.23.8: resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} @@ -3183,174 +3090,160 @@ snapshots: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 - '@babel/code-frame@7.24.7': + '@babel/code-frame@7.26.2': dependencies: - '@babel/highlight': 7.24.7 - picocolors: 1.1.0 + '@babel/helper-validator-identifier': 7.25.9 + js-tokens: 4.0.0 + picocolors: 1.1.1 - '@babel/compat-data@7.25.2': {} + '@babel/compat-data@7.26.2': {} - '@babel/core@7.25.2': + '@babel/core@7.26.0': dependencies: '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.24.7 - '@babel/generator': 7.25.0 - '@babel/helper-compilation-targets': 7.25.2 - '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) - '@babel/helpers': 7.25.0 - '@babel/parser': 7.25.3 - '@babel/template': 7.25.0 - '@babel/traverse': 7.25.3 - '@babel/types': 7.25.2 + '@babel/code-frame': 7.26.2 + '@babel/generator': 7.26.2 + '@babel/helper-compilation-targets': 7.25.9 + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) + '@babel/helpers': 7.26.0 + '@babel/parser': 7.26.2 + '@babel/template': 7.25.9 + '@babel/traverse': 7.25.9 + '@babel/types': 7.26.0 convert-source-map: 2.0.0 - debug: 4.3.6 + debug: 4.3.7 gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/generator@7.25.0': + '@babel/generator@7.26.2': dependencies: - '@babel/types': 7.25.2 + '@babel/parser': 7.26.2 + '@babel/types': 7.26.0 '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 - jsesc: 2.5.2 + jsesc: 3.0.2 - '@babel/helper-compilation-targets@7.25.2': + '@babel/helper-compilation-targets@7.25.9': dependencies: - '@babel/compat-data': 7.25.2 - '@babel/helper-validator-option': 7.24.8 - browserslist: 4.23.3 + '@babel/compat-data': 7.26.2 + '@babel/helper-validator-option': 7.25.9 + browserslist: 4.24.2 lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-module-imports@7.24.7': + '@babel/helper-module-imports@7.25.9': dependencies: - '@babel/traverse': 7.25.3 - '@babel/types': 7.25.2 + '@babel/traverse': 7.25.9 + '@babel/types': 7.26.0 transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.25.2(@babel/core@7.25.2)': + '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-module-imports': 7.24.7 - '@babel/helper-simple-access': 7.24.7 - '@babel/helper-validator-identifier': 7.24.7 - '@babel/traverse': 7.25.3 + '@babel/core': 7.26.0 + '@babel/helper-module-imports': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 + '@babel/traverse': 7.25.9 transitivePeerDependencies: - supports-color - '@babel/helper-plugin-utils@7.24.8': {} + '@babel/helper-plugin-utils@7.25.9': {} - '@babel/helper-simple-access@7.24.7': - dependencies: - '@babel/traverse': 7.25.3 - '@babel/types': 7.25.2 - transitivePeerDependencies: - - supports-color - - '@babel/helper-string-parser@7.24.8': {} + '@babel/helper-string-parser@7.25.9': {} - '@babel/helper-validator-identifier@7.24.7': {} + '@babel/helper-validator-identifier@7.25.9': {} - '@babel/helper-validator-option@7.24.8': {} - - '@babel/helpers@7.25.0': - dependencies: - '@babel/template': 7.25.0 - '@babel/types': 7.25.2 + '@babel/helper-validator-option@7.25.9': {} - '@babel/highlight@7.24.7': + '@babel/helpers@7.26.0': dependencies: - '@babel/helper-validator-identifier': 7.24.7 - chalk: 2.4.2 - js-tokens: 4.0.0 - picocolors: 1.1.0 + '@babel/template': 7.25.9 + '@babel/types': 7.26.0 - '@babel/parser@7.25.3': + '@babel/parser@7.26.2': dependencies: - '@babel/types': 7.25.2 + '@babel/types': 7.26.0 - '@babel/plugin-transform-react-jsx-self@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-react-jsx-self@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-react-jsx-source@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-react-jsx-source@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 - '@babel/template@7.25.0': + '@babel/template@7.25.9': dependencies: - '@babel/code-frame': 7.24.7 - '@babel/parser': 7.25.3 - '@babel/types': 7.25.2 + '@babel/code-frame': 7.26.2 + '@babel/parser': 7.26.2 + '@babel/types': 7.26.0 - '@babel/traverse@7.25.3': + '@babel/traverse@7.25.9': dependencies: - '@babel/code-frame': 7.24.7 - '@babel/generator': 7.25.0 - '@babel/parser': 7.25.3 - '@babel/template': 7.25.0 - '@babel/types': 7.25.2 - debug: 4.3.6 + '@babel/code-frame': 7.26.2 + '@babel/generator': 7.26.2 + '@babel/parser': 7.26.2 + '@babel/template': 7.25.9 + '@babel/types': 7.26.0 + debug: 4.3.7 globals: 11.12.0 transitivePeerDependencies: - supports-color - '@babel/types@7.25.2': + '@babel/types@7.26.0': dependencies: - '@babel/helper-string-parser': 7.24.8 - '@babel/helper-validator-identifier': 7.24.7 - to-fast-properties: 2.0.0 + '@babel/helper-string-parser': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 - '@biomejs/biome@1.8.3': + '@biomejs/biome@1.9.4': optionalDependencies: - '@biomejs/cli-darwin-arm64': 1.8.3 - '@biomejs/cli-darwin-x64': 1.8.3 - '@biomejs/cli-linux-arm64': 1.8.3 - '@biomejs/cli-linux-arm64-musl': 1.8.3 - '@biomejs/cli-linux-x64': 1.8.3 - '@biomejs/cli-linux-x64-musl': 1.8.3 - '@biomejs/cli-win32-arm64': 1.8.3 - '@biomejs/cli-win32-x64': 1.8.3 - - '@biomejs/cli-darwin-arm64@1.8.3': + '@biomejs/cli-darwin-arm64': 1.9.4 + '@biomejs/cli-darwin-x64': 1.9.4 + '@biomejs/cli-linux-arm64': 1.9.4 + '@biomejs/cli-linux-arm64-musl': 1.9.4 + '@biomejs/cli-linux-x64': 1.9.4 + '@biomejs/cli-linux-x64-musl': 1.9.4 + '@biomejs/cli-win32-arm64': 1.9.4 + '@biomejs/cli-win32-x64': 1.9.4 + + '@biomejs/cli-darwin-arm64@1.9.4': optional: true - '@biomejs/cli-darwin-x64@1.8.3': + '@biomejs/cli-darwin-x64@1.9.4': optional: true - '@biomejs/cli-linux-arm64-musl@1.8.3': + '@biomejs/cli-linux-arm64-musl@1.9.4': optional: true - '@biomejs/cli-linux-arm64@1.8.3': + '@biomejs/cli-linux-arm64@1.9.4': optional: true - '@biomejs/cli-linux-x64-musl@1.8.3': + '@biomejs/cli-linux-x64-musl@1.9.4': optional: true - '@biomejs/cli-linux-x64@1.8.3': + '@biomejs/cli-linux-x64@1.9.4': optional: true - '@biomejs/cli-win32-arm64@1.8.3': + '@biomejs/cli-win32-arm64@1.9.4': optional: true - '@biomejs/cli-win32-x64@1.8.3': + '@biomejs/cli-win32-x64@1.9.4': optional: true '@brillout/import@0.2.3': {} '@brillout/json-serializer@0.5.13': {} - '@brillout/part-regex@0.1.3': {} + '@brillout/part-regex@0.1.4': {} '@brillout/picocolors@1.0.15': {} - '@brillout/release-me@0.4.0': + '@brillout/release-me@0.4.2': dependencies: '@brillout/picocolors': 1.0.15 commander: 11.1.0 @@ -3360,30 +3253,30 @@ snapshots: '@brillout/require-shim@0.1.2': {} - '@brillout/test-e2e@0.5.33': + '@brillout/test-e2e@0.5.36': dependencies: - '@brillout/part-regex': 0.1.3 + '@brillout/part-regex': 0.1.4 '@brillout/picocolors': 1.0.15 chai: 4.5.0 esbuild: 0.24.0 fast-glob: 3.3.2 node-fetch: 2.7.0 pixelmatch: 5.3.0 - playwright-chromium: 1.46.0 + playwright-chromium: 1.49.0 pngjs: 6.0.0 source-map-support: 0.5.21 strip-ansi: 6.0.1 transitivePeerDependencies: - encoding - '@brillout/test-types@0.1.15(typescript@5.5.4)': + '@brillout/test-types@0.1.15(typescript@5.7.2)': dependencies: '@brillout/picocolors': 1.0.15 fast-glob: 3.3.2 source-map-support: 0.5.21 - typescript: 5.5.4 + typescript: 5.7.2 - '@brillout/vite-plugin-server-entry@0.4.13': + '@brillout/vite-plugin-server-entry@0.5.4': dependencies: '@brillout/import': 0.2.3 @@ -3391,44 +3284,44 @@ snapshots: dependencies: mime: 3.0.0 - '@cloudflare/workerd-darwin-64@1.20240806.0': + '@cloudflare/workerd-darwin-64@1.20241106.1': optional: true - '@cloudflare/workerd-darwin-arm64@1.20240806.0': + '@cloudflare/workerd-darwin-arm64@1.20241106.1': optional: true - '@cloudflare/workerd-linux-64@1.20240806.0': + '@cloudflare/workerd-linux-64@1.20241106.1': optional: true - '@cloudflare/workerd-linux-arm64@1.20240806.0': + '@cloudflare/workerd-linux-arm64@1.20241106.1': optional: true - '@cloudflare/workerd-windows-64@1.20240806.0': + '@cloudflare/workerd-windows-64@1.20241106.1': optional: true - '@cloudflare/workers-shared@0.1.0': {} - - '@cloudflare/workers-types@4.20240806.0': - optional: true + '@cloudflare/workers-shared@0.8.0': + dependencies: + mime: 3.0.0 + zod: 3.23.8 '@cspotcode/source-map-support@0.8.1': dependencies: '@jridgewell/trace-mapping': 0.3.9 - '@emnapi/core@1.2.0': + '@emnapi/core@1.3.1': dependencies: '@emnapi/wasi-threads': 1.0.1 - tslib: 2.6.3 + tslib: 2.8.1 optional: true - '@emnapi/runtime@1.2.0': + '@emnapi/runtime@1.3.1': dependencies: - tslib: 2.6.3 + tslib: 2.8.1 optional: true '@emnapi/wasi-threads@1.0.1': dependencies: - tslib: 2.6.3 + tslib: 2.8.1 optional: true '@esbuild-plugins/node-globals-polyfill@0.2.3(esbuild@0.24.0)': @@ -3531,83 +3424,85 @@ snapshots: dependencies: fast-deep-equal: 3.1.3 - '@hono/node-server@1.12.0': {} + '@hono/node-server@1.13.7(hono@4.6.12)': + dependencies: + hono: 4.6.12 '@hutson/parse-repository-url@5.0.0': {} - '@img/sharp-darwin-arm64@0.33.4': + '@img/sharp-darwin-arm64@0.33.5': optionalDependencies: - '@img/sharp-libvips-darwin-arm64': 1.0.2 + '@img/sharp-libvips-darwin-arm64': 1.0.4 optional: true - '@img/sharp-darwin-x64@0.33.4': + '@img/sharp-darwin-x64@0.33.5': optionalDependencies: - '@img/sharp-libvips-darwin-x64': 1.0.2 + '@img/sharp-libvips-darwin-x64': 1.0.4 optional: true - '@img/sharp-libvips-darwin-arm64@1.0.2': + '@img/sharp-libvips-darwin-arm64@1.0.4': optional: true - '@img/sharp-libvips-darwin-x64@1.0.2': + '@img/sharp-libvips-darwin-x64@1.0.4': optional: true - '@img/sharp-libvips-linux-arm64@1.0.2': + '@img/sharp-libvips-linux-arm64@1.0.4': optional: true - '@img/sharp-libvips-linux-arm@1.0.2': + '@img/sharp-libvips-linux-arm@1.0.5': optional: true - '@img/sharp-libvips-linux-s390x@1.0.2': + '@img/sharp-libvips-linux-s390x@1.0.4': optional: true - '@img/sharp-libvips-linux-x64@1.0.2': + '@img/sharp-libvips-linux-x64@1.0.4': optional: true - '@img/sharp-libvips-linuxmusl-arm64@1.0.2': + '@img/sharp-libvips-linuxmusl-arm64@1.0.4': optional: true - '@img/sharp-libvips-linuxmusl-x64@1.0.2': + '@img/sharp-libvips-linuxmusl-x64@1.0.4': optional: true - '@img/sharp-linux-arm64@0.33.4': + '@img/sharp-linux-arm64@0.33.5': optionalDependencies: - '@img/sharp-libvips-linux-arm64': 1.0.2 + '@img/sharp-libvips-linux-arm64': 1.0.4 optional: true - '@img/sharp-linux-arm@0.33.4': + '@img/sharp-linux-arm@0.33.5': optionalDependencies: - '@img/sharp-libvips-linux-arm': 1.0.2 + '@img/sharp-libvips-linux-arm': 1.0.5 optional: true - '@img/sharp-linux-s390x@0.33.4': + '@img/sharp-linux-s390x@0.33.5': optionalDependencies: - '@img/sharp-libvips-linux-s390x': 1.0.2 + '@img/sharp-libvips-linux-s390x': 1.0.4 optional: true - '@img/sharp-linux-x64@0.33.4': + '@img/sharp-linux-x64@0.33.5': optionalDependencies: - '@img/sharp-libvips-linux-x64': 1.0.2 + '@img/sharp-libvips-linux-x64': 1.0.4 optional: true - '@img/sharp-linuxmusl-arm64@0.33.4': + '@img/sharp-linuxmusl-arm64@0.33.5': optionalDependencies: - '@img/sharp-libvips-linuxmusl-arm64': 1.0.2 + '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 optional: true - '@img/sharp-linuxmusl-x64@0.33.4': + '@img/sharp-linuxmusl-x64@0.33.5': optionalDependencies: - '@img/sharp-libvips-linuxmusl-x64': 1.0.2 + '@img/sharp-libvips-linuxmusl-x64': 1.0.4 optional: true - '@img/sharp-wasm32@0.33.4': + '@img/sharp-wasm32@0.33.5': dependencies: - '@emnapi/runtime': 1.2.0 + '@emnapi/runtime': 1.3.1 optional: true - '@img/sharp-win32-ia32@0.33.4': + '@img/sharp-win32-ia32@0.33.5': optional: true - '@img/sharp-win32-x64@0.33.4': + '@img/sharp-win32-x64@0.33.5': optional: true '@isaacs/cliui@8.0.2': @@ -3656,10 +3551,10 @@ snapshots: - encoding - supports-color - '@napi-rs/wasm-runtime@0.2.4': + '@napi-rs/wasm-runtime@0.2.5': dependencies: - '@emnapi/core': 1.2.0 - '@emnapi/runtime': 1.2.0 + '@emnapi/core': 1.3.1 + '@emnapi/runtime': 1.3.1 '@tybys/wasm-util': 0.9.0 optional: true @@ -3668,8 +3563,8 @@ snapshots: accepts: 1.3.8 bytes: 3.1.2 compressible: 2.0.18 - debug: 4.3.6 - lru-cache: 11.0.1 + debug: 4.3.7 + lru-cache: 11.0.2 multipipe: 4.0.0 on-headers: 1.0.2 stream-buffers: 3.0.3 @@ -3709,7 +3604,7 @@ snapshots: '@node-rs/argon2-wasm32-wasi@1.8.3': dependencies: - '@napi-rs/wasm-runtime': 0.2.4 + '@napi-rs/wasm-runtime': 0.2.5 optional: true '@node-rs/argon2-win32-arm64-msvc@1.8.3': @@ -3750,114 +3645,120 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.17.1 - '@oxc-transform/binding-darwin-arm64@0.30.5': + '@oxc-transform/binding-darwin-arm64@0.31.0': optional: true - '@oxc-transform/binding-darwin-x64@0.30.5': + '@oxc-transform/binding-darwin-x64@0.31.0': optional: true - '@oxc-transform/binding-linux-arm64-gnu@0.30.5': + '@oxc-transform/binding-linux-arm64-gnu@0.31.0': optional: true - '@oxc-transform/binding-linux-arm64-musl@0.30.5': + '@oxc-transform/binding-linux-arm64-musl@0.31.0': optional: true - '@oxc-transform/binding-linux-x64-gnu@0.30.5': + '@oxc-transform/binding-linux-x64-gnu@0.31.0': optional: true - '@oxc-transform/binding-linux-x64-musl@0.30.5': + '@oxc-transform/binding-linux-x64-musl@0.31.0': optional: true - '@oxc-transform/binding-win32-arm64-msvc@0.30.5': + '@oxc-transform/binding-win32-arm64-msvc@0.31.0': optional: true - '@oxc-transform/binding-win32-x64-msvc@0.30.5': + '@oxc-transform/binding-win32-x64-msvc@0.31.0': optional: true '@pkgjs/parseargs@0.11.0': optional: true - '@polka/url@1.0.0-next.25': {} + '@polka/url@1.0.0-next.28': {} - '@prisma/client@5.18.0(prisma@5.18.0)': + '@prisma/client@5.22.0(prisma@5.22.0)': optionalDependencies: - prisma: 5.18.0 + prisma: 5.22.0 - '@prisma/debug@5.18.0': {} + '@prisma/debug@5.22.0': {} - '@prisma/engines-version@5.18.0-25.4c784e32044a8a016d99474bd02a3b6123742169': {} + '@prisma/engines-version@5.22.0-44.605197351a3c8bdd595af2d2a9bc3025bca48ea2': {} - '@prisma/engines@5.18.0': + '@prisma/engines@5.22.0': dependencies: - '@prisma/debug': 5.18.0 - '@prisma/engines-version': 5.18.0-25.4c784e32044a8a016d99474bd02a3b6123742169 - '@prisma/fetch-engine': 5.18.0 - '@prisma/get-platform': 5.18.0 + '@prisma/debug': 5.22.0 + '@prisma/engines-version': 5.22.0-44.605197351a3c8bdd595af2d2a9bc3025bca48ea2 + '@prisma/fetch-engine': 5.22.0 + '@prisma/get-platform': 5.22.0 - '@prisma/fetch-engine@5.18.0': + '@prisma/fetch-engine@5.22.0': dependencies: - '@prisma/debug': 5.18.0 - '@prisma/engines-version': 5.18.0-25.4c784e32044a8a016d99474bd02a3b6123742169 - '@prisma/get-platform': 5.18.0 + '@prisma/debug': 5.22.0 + '@prisma/engines-version': 5.22.0-44.605197351a3c8bdd595af2d2a9bc3025bca48ea2 + '@prisma/get-platform': 5.22.0 - '@prisma/get-platform@5.18.0': + '@prisma/get-platform@5.22.0': dependencies: - '@prisma/debug': 5.18.0 + '@prisma/debug': 5.22.0 '@rollup/pluginutils@4.2.1': dependencies: estree-walker: 2.0.2 picomatch: 2.3.1 - '@rollup/rollup-android-arm-eabi@4.20.0': + '@rollup/rollup-android-arm-eabi@4.27.4': + optional: true + + '@rollup/rollup-android-arm64@4.27.4': + optional: true + + '@rollup/rollup-darwin-arm64@4.27.4': optional: true - '@rollup/rollup-android-arm64@4.20.0': + '@rollup/rollup-darwin-x64@4.27.4': optional: true - '@rollup/rollup-darwin-arm64@4.20.0': + '@rollup/rollup-freebsd-arm64@4.27.4': optional: true - '@rollup/rollup-darwin-x64@4.20.0': + '@rollup/rollup-freebsd-x64@4.27.4': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.20.0': + '@rollup/rollup-linux-arm-gnueabihf@4.27.4': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.20.0': + '@rollup/rollup-linux-arm-musleabihf@4.27.4': optional: true - '@rollup/rollup-linux-arm64-gnu@4.20.0': + '@rollup/rollup-linux-arm64-gnu@4.27.4': optional: true - '@rollup/rollup-linux-arm64-musl@4.20.0': + '@rollup/rollup-linux-arm64-musl@4.27.4': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.20.0': + '@rollup/rollup-linux-powerpc64le-gnu@4.27.4': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.20.0': + '@rollup/rollup-linux-riscv64-gnu@4.27.4': optional: true - '@rollup/rollup-linux-s390x-gnu@4.20.0': + '@rollup/rollup-linux-s390x-gnu@4.27.4': optional: true - '@rollup/rollup-linux-x64-gnu@4.20.0': + '@rollup/rollup-linux-x64-gnu@4.27.4': optional: true - '@rollup/rollup-linux-x64-musl@4.20.0': + '@rollup/rollup-linux-x64-musl@4.27.4': optional: true - '@rollup/rollup-win32-arm64-msvc@4.20.0': + '@rollup/rollup-win32-arm64-msvc@4.27.4': optional: true - '@rollup/rollup-win32-ia32-msvc@4.20.0': + '@rollup/rollup-win32-ia32-msvc@4.27.4': optional: true - '@rollup/rollup-win32-x64-msvc@4.20.0': + '@rollup/rollup-win32-x64-msvc@4.27.4': optional: true - '@sinclair/typebox@0.32.35': {} + '@sinclair/typebox@0.34.8': {} '@ts-morph/common@0.20.0': dependencies: @@ -3868,53 +3769,53 @@ snapshots: '@tybys/wasm-util@0.9.0': dependencies: - tslib: 2.6.3 + tslib: 2.8.1 optional: true '@types/babel__core@7.20.5': dependencies: - '@babel/parser': 7.25.3 - '@babel/types': 7.25.2 + '@babel/parser': 7.26.2 + '@babel/types': 7.26.0 '@types/babel__generator': 7.6.8 '@types/babel__template': 7.4.4 '@types/babel__traverse': 7.20.6 '@types/babel__generator@7.6.8': dependencies: - '@babel/types': 7.25.2 + '@babel/types': 7.26.0 '@types/babel__template@7.4.4': dependencies: - '@babel/parser': 7.25.3 - '@babel/types': 7.25.2 + '@babel/parser': 7.26.2 + '@babel/types': 7.26.0 '@types/babel__traverse@7.20.6': dependencies: - '@babel/types': 7.25.2 + '@babel/types': 7.26.0 '@types/body-parser@1.19.5': dependencies: '@types/connect': 3.4.38 - '@types/node': 20.14.15 + '@types/node': 20.17.7 '@types/connect@3.4.38': dependencies: - '@types/node': 20.14.15 + '@types/node': 20.17.7 - '@types/estree@1.0.5': {} + '@types/estree@1.0.6': {} - '@types/express-serve-static-core@4.19.5': + '@types/express-serve-static-core@4.19.6': dependencies: - '@types/node': 20.14.15 - '@types/qs': 6.9.15 + '@types/node': 20.17.7 + '@types/qs': 6.9.17 '@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.19.5 - '@types/qs': 6.9.15 + '@types/express-serve-static-core': 4.19.6 + '@types/qs': 6.9.17 '@types/serve-static': 1.15.7 '@types/http-errors@2.0.4': {} @@ -3923,43 +3824,38 @@ snapshots: '@types/node-forge@1.3.11': dependencies: - '@types/node': 20.14.15 + '@types/node': 20.17.7 - '@types/node@20.14.15': + '@types/node@20.17.7': dependencies: - undici-types: 5.26.5 - - '@types/node@22.2.0': - dependencies: - undici-types: 6.13.0 - optional: true + undici-types: 6.19.8 '@types/normalize-package-data@2.4.4': {} - '@types/prop-types@15.7.12': {} + '@types/prop-types@15.7.13': {} - '@types/qs@6.9.15': {} + '@types/qs@6.9.17': {} '@types/range-parser@1.2.7': {} - '@types/react-dom@18.3.0': + '@types/react-dom@18.3.1': dependencies: - '@types/react': 18.3.3 + '@types/react': 18.3.12 - '@types/react@18.3.3': + '@types/react@18.3.12': dependencies: - '@types/prop-types': 15.7.12 + '@types/prop-types': 15.7.13 csstype: 3.1.3 '@types/send@0.17.4': dependencies: '@types/mime': 1.3.5 - '@types/node': 20.14.15 + '@types/node': 20.17.7 '@types/serve-static@1.15.7': dependencies: '@types/http-errors': 2.0.4 - '@types/node': 20.14.15 + '@types/node': 20.17.7 '@types/send': 0.17.4 '@universal-middleware/cloudflare@0.2.6': @@ -3969,35 +3865,35 @@ snapshots: '@universal-middleware/compress@0.2.1': optionalDependencies: '@universal-middleware/cloudflare': 0.2.6 - '@universal-middleware/elysia': 0.2.1 - '@universal-middleware/express': 0.2.8 - '@universal-middleware/fastify': 0.3.5 - '@universal-middleware/h3': 0.2.7 + '@universal-middleware/elysia': 0.2.2 + '@universal-middleware/express': 0.2.9 + '@universal-middleware/fastify': 0.3.6 + '@universal-middleware/h3': 0.2.8 '@universal-middleware/hattip': 0.2.10 - '@universal-middleware/hono': 0.2.11 - '@universal-middleware/webroute': 0.2.7 + '@universal-middleware/hono': 0.2.12 + '@universal-middleware/webroute': 0.2.8 '@universal-middleware/core@0.2.13': dependencies: regexparam: 3.0.0 tough-cookie: 5.0.0 - '@universal-middleware/elysia@0.2.1': + '@universal-middleware/elysia@0.2.2': dependencies: '@universal-middleware/core': 0.2.13 optional: true - '@universal-middleware/express@0.2.8': + '@universal-middleware/express@0.2.9': dependencies: '@universal-middleware/core': 0.2.13 - '@universal-middleware/fastify@0.3.5': + '@universal-middleware/fastify@0.3.6': dependencies: '@universal-middleware/core': 0.2.13 - '@universal-middleware/express': 0.2.8 + '@universal-middleware/express': 0.2.9 fastify-raw-body: 5.0.0 - '@universal-middleware/h3@0.2.7': + '@universal-middleware/h3@0.2.8': dependencies: '@universal-middleware/core': 0.2.13 optional: true @@ -4006,11 +3902,11 @@ snapshots: dependencies: '@universal-middleware/core': 0.2.13 - '@universal-middleware/hono@0.2.11': + '@universal-middleware/hono@0.2.12': dependencies: '@universal-middleware/core': 0.2.13 - '@universal-middleware/webroute@0.2.7': + '@universal-middleware/webroute@0.2.8': dependencies: '@universal-middleware/core': 0.2.13 @@ -4018,39 +3914,28 @@ snapshots: dependencies: '@mapbox/node-pre-gyp': 1.0.11 '@rollup/pluginutils': 4.2.1 - acorn: 8.12.1 - acorn-import-attributes: 1.9.5(acorn@8.12.1) + acorn: 8.14.0 + acorn-import-attributes: 1.9.5(acorn@8.14.0) async-sema: 3.1.1 bindings: 1.5.0 estree-walker: 2.0.2 glob: 7.2.3 graceful-fs: 4.2.11 - micromatch: 4.0.7 - node-gyp-build: 4.8.1 + micromatch: 4.0.8 + node-gyp-build: 4.8.4 resolve-from: 5.0.0 transitivePeerDependencies: - encoding - supports-color - '@vitejs/plugin-react@4.3.1(vite@5.4.8(@types/node@20.14.15))': - dependencies: - '@babel/core': 7.25.2 - '@babel/plugin-transform-react-jsx-self': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-react-jsx-source': 7.24.7(@babel/core@7.25.2) - '@types/babel__core': 7.20.5 - react-refresh: 0.14.2 - vite: 5.4.8(@types/node@20.14.15) - transitivePeerDependencies: - - supports-color - - '@vitejs/plugin-react@4.3.1(vite@5.4.8(@types/node@22.2.0))': + '@vitejs/plugin-react@4.3.3(vite@5.4.11(@types/node@20.17.7))': dependencies: - '@babel/core': 7.25.2 - '@babel/plugin-transform-react-jsx-self': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-react-jsx-source': 7.24.7(@babel/core@7.25.2) + '@babel/core': 7.26.0 + '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.0) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 - vite: 5.4.8(@types/node@22.2.0) + vite: 5.4.11(@types/node@20.17.7) transitivePeerDependencies: - supports-color @@ -4061,10 +3946,6 @@ snapshots: abbrev@1.1.1: {} - abort-controller@3.0.0: - dependencies: - event-target-shim: 5.0.1 - abstract-logging@2.0.1: {} accepts@1.3.8: @@ -4072,21 +3953,21 @@ snapshots: mime-types: 2.1.35 negotiator: 0.6.3 - acorn-import-attributes@1.9.5(acorn@8.12.1): + acorn-import-attributes@1.9.5(acorn@8.14.0): dependencies: - acorn: 8.12.1 + acorn: 8.14.0 - acorn-walk@8.3.3: + acorn-walk@8.3.4: dependencies: - acorn: 8.12.1 + acorn: 8.14.0 - acorn@8.12.1: {} + acorn@8.14.0: {} add-stream@1.0.0: {} agent-base@6.0.2: dependencies: - debug: 4.3.6 + debug: 4.3.7 transitivePeerDependencies: - supports-color @@ -4101,7 +3982,7 @@ snapshots: ajv@8.17.1: dependencies: fast-deep-equal: 3.1.3 - fast-uri: 3.0.1 + fast-uri: 3.0.3 json-schema-traverse: 1.0.0 require-from-string: 2.0.2 @@ -4109,10 +3990,6 @@ snapshots: ansi-regex@6.1.0: {} - ansi-styles@3.2.1: - dependencies: - color-convert: 1.9.3 - ansi-styles@4.3.0: dependencies: color-convert: 2.0.1 @@ -4121,11 +3998,6 @@ snapshots: any-promise@1.3.0: {} - anymatch@3.1.3: - dependencies: - normalize-path: 3.0.0 - picomatch: 2.3.1 - aproba@2.0.0: {} are-we-there-yet@2.0.0: @@ -4154,10 +4026,6 @@ snapshots: balanced-match@1.0.2: {} - base64-js@1.5.1: {} - - binary-extensions@2.3.0: {} - bindings@1.5.0: dependencies: file-uri-to-path: 1.0.0 @@ -4194,20 +4062,15 @@ snapshots: dependencies: fill-range: 7.1.1 - browserslist@4.23.3: + browserslist@4.24.2: dependencies: - caniuse-lite: 1.0.30001651 - electron-to-chromium: 1.5.6 + caniuse-lite: 1.0.30001684 + electron-to-chromium: 1.5.64 node-releases: 2.0.18 - update-browserslist-db: 1.1.0(browserslist@4.23.3) + update-browserslist-db: 1.1.1(browserslist@4.24.2) buffer-from@1.1.2: {} - buffer@6.0.3: - dependencies: - base64-js: 1.5.1 - ieee754: 1.2.1 - bundle-require@5.0.0(esbuild@0.24.0): dependencies: esbuild: 0.24.0 @@ -4225,12 +4088,12 @@ snapshots: get-intrinsic: 1.2.4 set-function-length: 1.2.2 - caniuse-lite@1.0.30001651: {} + caniuse-lite@1.0.30001684: {} capnp-ts@0.7.0: dependencies: - debug: 4.3.6 - tslib: 2.6.3 + debug: 4.3.7 + tslib: 2.8.1 transitivePeerDependencies: - supports-color @@ -4244,42 +4107,22 @@ snapshots: pathval: 1.1.1 type-detect: 4.1.0 - chalk@2.4.2: - dependencies: - ansi-styles: 3.2.1 - escape-string-regexp: 1.0.5 - supports-color: 5.5.0 - check-error@1.0.3: dependencies: get-func-name: 2.0.2 - chokidar@3.6.0: + chokidar@4.0.1: dependencies: - anymatch: 3.1.3 - braces: 3.0.3 - glob-parent: 5.1.2 - is-binary-path: 2.1.0 - is-glob: 4.0.3 - normalize-path: 3.0.0 - readdirp: 3.6.0 - optionalDependencies: - fsevents: 2.3.3 + readdirp: 4.0.2 chownr@2.0.0: {} code-block-writer@12.0.0: {} - color-convert@1.9.3: - dependencies: - color-name: 1.1.3 - color-convert@2.0.1: dependencies: color-name: 1.1.4 - color-name@1.1.3: {} - color-name@1.1.4: {} color-string@1.9.1: @@ -4305,7 +4148,7 @@ snapshots: compressible@2.0.18: dependencies: - mime-db: 1.52.0 + mime-db: 1.53.0 concat-map@0.0.1: {} @@ -4396,25 +4239,27 @@ snapshots: cookie-signature@1.0.6: {} - cookie@0.5.0: {} + cookie@0.7.1: {} - cookie@0.6.0: {} + cookie@0.7.2: {} - cookie@0.7.1: {} + cookie@1.0.2: {} core-util-is@1.0.3: {} cross-env@7.0.3: dependencies: - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 - cross-spawn@7.0.3: + cross-spawn@7.0.6: dependencies: path-key: 3.1.1 shebang-command: 2.0.0 which: 2.0.2 - crossws@0.2.4: {} + crossws@0.3.1: + dependencies: + uncrypto: 0.1.3 csstype@3.1.3: {} @@ -4422,15 +4267,15 @@ snapshots: data-uri-to-buffer@2.0.2: {} - date-fns@3.6.0: {} + date-fns@4.1.0: {} debug@2.6.9: dependencies: ms: 2.0.0 - debug@4.3.6: + debug@4.3.7: dependencies: - ms: 2.1.2 + ms: 2.1.3 deep-eql@4.1.4: dependencies: @@ -4466,15 +4311,15 @@ snapshots: ee-first@1.1.1: {} - electron-to-chromium@1.5.6: {} + electron-to-chromium@1.5.64: {} - elysia@1.1.6(@sinclair/typebox@0.32.35)(typescript@5.5.4): + elysia@1.1.25(@sinclair/typebox@0.34.8)(typescript@5.7.2): dependencies: - '@sinclair/typebox': 0.32.35 - cookie: 0.6.0 + '@sinclair/typebox': 0.34.8 + cookie: 1.0.2 fast-decode-uri-component: 1.0.1 optionalDependencies: - typescript: 5.5.4 + typescript: 5.7.2 emoji-regex@8.0.0: {} @@ -4494,8 +4339,6 @@ snapshots: es-errors@1.3.0: {} - es-module-lexer@0.7.1: {} - es-module-lexer@1.5.4: {} esbuild@0.24.0: @@ -4525,12 +4368,10 @@ snapshots: '@esbuild/win32-ia32': 0.24.0 '@esbuild/win32-x64': 0.24.0 - escalade@3.1.2: {} + escalade@3.2.0: {} escape-html@1.0.3: {} - escape-string-regexp@1.0.5: {} - escape-string-regexp@4.0.0: {} estree-walker@0.6.1: {} @@ -4539,13 +4380,9 @@ snapshots: etag@1.8.1: {} - event-target-shim@5.0.1: {} - - events@3.3.0: {} - execa@5.1.1: dependencies: - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 get-stream: 6.0.1 human-signals: 2.1.0 is-stream: 2.0.1 @@ -4605,7 +4442,7 @@ snapshots: '@nodelib/fs.walk': 1.2.8 glob-parent: 5.1.2 merge2: 1.4.1 - micromatch: 4.0.7 + micromatch: 4.0.8 fast-json-stringify@5.16.1: dependencies: @@ -4625,7 +4462,7 @@ snapshots: fast-uri@2.4.0: {} - fast-uri@3.0.1: {} + fast-uri@3.0.3: {} fastify-plugin@5.0.1: {} @@ -4644,9 +4481,9 @@ snapshots: avvio: 8.4.0 fast-content-type-parse: 1.1.0 fast-json-stringify: 5.16.1 - find-my-way: 8.2.0 - light-my-request: 5.13.0 - pino: 9.3.2 + find-my-way: 8.2.2 + light-my-request: 5.14.0 + pino: 9.5.0 process-warning: 3.0.0 proxy-addr: 2.0.7 rfdc: 1.4.1 @@ -4658,7 +4495,7 @@ snapshots: dependencies: reusify: 1.0.4 - fdir@6.4.0(picomatch@4.0.2): + fdir@6.4.2(picomatch@4.0.2): optionalDependencies: picomatch: 4.0.2 @@ -4680,7 +4517,7 @@ snapshots: transitivePeerDependencies: - supports-color - find-my-way@8.2.0: + find-my-way@8.2.2: dependencies: fast-deep-equal: 3.1.3 fast-querystring: 1.1.2 @@ -4695,7 +4532,7 @@ snapshots: foreground-child@3.3.0: dependencies: - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 signal-exit: 4.1.0 forwarded@0.2.0: {} @@ -4790,10 +4627,10 @@ snapshots: graceful-fs@4.2.11: {} - h3@1.12.0: + h3@1.13.0: dependencies: cookie-es: 1.2.2 - crossws: 0.2.4 + crossws: 0.3.1 defu: 6.1.4 destr: 2.0.3 iron-webcrypto: 1.2.1 @@ -4802,8 +4639,6 @@ snapshots: ufo: 1.5.4 uncrypto: 0.1.3 unenv: 1.10.0 - transitivePeerDependencies: - - uWebSockets.js handlebars@4.7.8: dependencies: @@ -4812,9 +4647,7 @@ snapshots: source-map: 0.6.1 wordwrap: 1.0.0 optionalDependencies: - uglify-js: 3.19.2 - - has-flag@3.0.0: {} + uglify-js: 3.19.3 has-property-descriptors@1.0.2: dependencies: @@ -4830,7 +4663,7 @@ snapshots: dependencies: function-bind: 1.1.2 - hono@4.6.3: {} + hono@4.6.12: {} hosted-git-info@7.0.2: dependencies: @@ -4847,7 +4680,7 @@ snapshots: https-proxy-agent@5.0.1: dependencies: agent-base: 6.0.2 - debug: 4.3.6 + debug: 4.3.7 transitivePeerDependencies: - supports-color @@ -4861,8 +4694,6 @@ snapshots: dependencies: safer-buffer: 2.1.2 - ieee754@1.2.1: {} - inflight@1.0.6: dependencies: once: 1.4.0 @@ -4878,11 +4709,7 @@ snapshots: is-arrayish@0.3.2: {} - is-binary-path@2.1.0: - dependencies: - binary-extensions: 2.3.0 - - is-core-module@2.15.0: + is-core-module@2.15.1: dependencies: hasown: 2.0.2 @@ -4910,6 +4737,8 @@ snapshots: isexe@2.0.0: {} + itty-time@1.0.6: {} + jackspeak@3.4.3: dependencies: '@isaacs/cliui': 8.0.2 @@ -4920,7 +4749,7 @@ snapshots: js-tokens@4.0.0: {} - jsesc@2.5.2: {} + jsesc@3.0.2: {} json-parse-even-better-errors@3.0.2: {} @@ -4936,11 +4765,11 @@ snapshots: jsonparse@1.3.1: {} - light-my-request@5.13.0: + light-my-request@5.14.0: dependencies: - cookie: 0.6.0 + cookie: 0.7.2 process-warning: 3.0.0 - set-cookie-parser: 2.7.0 + set-cookie-parser: 2.7.1 lilconfig@3.1.2: {} @@ -4966,7 +4795,7 @@ snapshots: lru-cache@10.4.3: {} - lru-cache@11.0.1: {} + lru-cache@11.0.2: {} lru-cache@5.1.1: dependencies: @@ -4992,13 +4821,15 @@ snapshots: methods@1.1.2: {} - micromatch@4.0.7: + micromatch@4.0.8: dependencies: braces: 3.0.3 picomatch: 2.3.1 mime-db@1.52.0: {} + mime-db@1.53.0: {} + mime-types@2.1.35: dependencies: mime-db: 1.52.0 @@ -5009,19 +4840,19 @@ snapshots: mimic-fn@2.1.0: {} - miniflare@3.20240806.0: + miniflare@3.20241106.1: dependencies: '@cspotcode/source-map-support': 0.8.1 - acorn: 8.12.1 - acorn-walk: 8.3.3 + acorn: 8.14.0 + acorn-walk: 8.3.4 capnp-ts: 0.7.0 exit-hook: 2.2.1 glob-to-regexp: 0.4.1 stoppable: 1.1.0 undici: 5.28.4 - workerd: 1.20240806.0 + workerd: 1.20241106.1 ws: 8.18.0 - youch: 3.3.3 + youch: 3.3.4 zod: 3.23.8 transitivePeerDependencies: - bufferutil @@ -5063,8 +4894,6 @@ snapshots: ms@2.0.0: {} - ms@2.1.2: {} - ms@2.1.3: {} multipipe@4.0.0: @@ -5094,7 +4923,7 @@ snapshots: node-forge@1.3.1: {} - node-gyp-build@4.8.1: {} + node-gyp-build@4.8.4: {} node-releases@2.0.18: {} @@ -5108,8 +4937,6 @@ snapshots: semver: 7.6.3 validate-npm-package-license: 3.0.4 - normalize-path@3.0.0: {} - npm-run-path@4.0.1: dependencies: path-key: 3.1.1 @@ -5123,7 +4950,7 @@ snapshots: object-assign@4.1.1: {} - object-inspect@1.13.2: {} + object-inspect@1.13.3: {} ohash@1.1.4: {} @@ -5143,16 +4970,16 @@ snapshots: dependencies: mimic-fn: 2.1.0 - oxc-transform@0.30.5: + oxc-transform@0.31.0: optionalDependencies: - '@oxc-transform/binding-darwin-arm64': 0.30.5 - '@oxc-transform/binding-darwin-x64': 0.30.5 - '@oxc-transform/binding-linux-arm64-gnu': 0.30.5 - '@oxc-transform/binding-linux-arm64-musl': 0.30.5 - '@oxc-transform/binding-linux-x64-gnu': 0.30.5 - '@oxc-transform/binding-linux-x64-musl': 0.30.5 - '@oxc-transform/binding-win32-arm64-msvc': 0.30.5 - '@oxc-transform/binding-win32-x64-msvc': 0.30.5 + '@oxc-transform/binding-darwin-arm64': 0.31.0 + '@oxc-transform/binding-darwin-x64': 0.31.0 + '@oxc-transform/binding-linux-arm64-gnu': 0.31.0 + '@oxc-transform/binding-linux-arm64-musl': 0.31.0 + '@oxc-transform/binding-linux-x64-gnu': 0.31.0 + '@oxc-transform/binding-linux-x64-musl': 0.31.0 + '@oxc-transform/binding-win32-arm64-msvc': 0.31.0 + '@oxc-transform/binding-win32-x64-msvc': 0.31.0 p-limit@4.0.0: dependencies: @@ -5170,7 +4997,7 @@ snapshots: parse-json@7.1.1: dependencies: - '@babel/code-frame': 7.24.7 + '@babel/code-frame': 7.26.2 error-ex: 1.3.2 json-parse-even-better-errors: 3.0.2 lines-and-columns: 2.0.4 @@ -5195,37 +5022,36 @@ snapshots: path-to-regexp@0.1.10: {} - path-to-regexp@6.2.2: {} + path-to-regexp@6.3.0: {} pathe@1.1.2: {} pathval@1.1.1: {} - picocolors@1.1.0: {} + picocolors@1.1.1: {} picomatch@2.3.1: {} picomatch@4.0.2: {} - pino-abstract-transport@1.2.0: + pino-abstract-transport@2.0.0: dependencies: - readable-stream: 4.5.2 split2: 4.2.0 pino-std-serializers@7.0.0: {} - pino@9.3.2: + pino@9.5.0: dependencies: atomic-sleep: 1.0.0 fast-redact: 3.5.0 on-exit-leak-free: 2.1.2 - pino-abstract-transport: 1.2.0 + pino-abstract-transport: 2.0.0 pino-std-serializers: 7.0.0 process-warning: 4.0.0 quick-format-unescaped: 4.0.4 real-require: 0.2.0 - safe-stable-stringify: 2.4.3 - sonic-boom: 4.0.1 + safe-stable-stringify: 2.5.0 + sonic-boom: 4.2.0 thread-stream: 3.1.0 pirates@4.0.6: {} @@ -5234,39 +5060,41 @@ snapshots: dependencies: pngjs: 6.0.0 - playwright-chromium@1.46.0: + playwright-chromium@1.49.0: dependencies: - playwright-core: 1.46.0 + playwright-core: 1.49.0 - playwright-core@1.46.0: {} + playwright-core@1.49.0: {} - playwright@1.46.0: + playwright@1.49.0: dependencies: - playwright-core: 1.46.0 + playwright-core: 1.49.0 optionalDependencies: fsevents: 2.3.2 pngjs@6.0.0: {} - postcss-load-config@6.0.1(postcss@8.4.47): + postcss-load-config@6.0.1(postcss@8.4.49): dependencies: lilconfig: 3.1.2 optionalDependencies: - postcss: 8.4.47 + postcss: 8.4.49 - postcss@8.4.47: + postcss@8.4.49: dependencies: nanoid: 3.3.7 - picocolors: 1.1.0 + picocolors: 1.1.1 source-map-js: 1.2.1 prettier@3.3.3: {} printable-characters@1.0.42: {} - prisma@5.18.0: + prisma@5.22.0: dependencies: - '@prisma/engines': 5.18.0 + '@prisma/engines': 5.22.0 + optionalDependencies: + fsevents: 2.3.3 process-nextick-args@2.0.1: {} @@ -5274,8 +5102,6 @@ snapshots: process-warning@4.0.0: {} - process@0.11.10: {} - proxy-addr@2.0.7: dependencies: forwarded: 0.2.0 @@ -5334,14 +5160,14 @@ snapshots: dependencies: find-up: 6.3.0 read-pkg: 8.1.0 - type-fest: 4.24.0 + type-fest: 4.28.0 read-pkg@8.1.0: dependencies: '@types/normalize-package-data': 2.4.4 normalize-package-data: 6.0.2 parse-json: 7.1.1 - type-fest: 4.24.0 + type-fest: 4.28.0 readable-stream@2.3.8: dependencies: @@ -5359,17 +5185,7 @@ snapshots: string_decoder: 1.3.0 util-deprecate: 1.0.2 - readable-stream@4.5.2: - dependencies: - abort-controller: 3.0.0 - buffer: 6.0.3 - events: 3.3.0 - process: 0.11.10 - string_decoder: 1.3.0 - - readdirp@3.6.0: - dependencies: - picomatch: 2.3.1 + readdirp@4.0.2: {} real-require@0.2.0: {} @@ -5383,7 +5199,7 @@ snapshots: resolve@1.22.8: dependencies: - is-core-module: 2.15.0 + is-core-module: 2.15.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 @@ -5411,26 +5227,28 @@ snapshots: dependencies: estree-walker: 0.6.1 - rollup@4.20.0: + rollup@4.27.4: dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.20.0 - '@rollup/rollup-android-arm64': 4.20.0 - '@rollup/rollup-darwin-arm64': 4.20.0 - '@rollup/rollup-darwin-x64': 4.20.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.20.0 - '@rollup/rollup-linux-arm-musleabihf': 4.20.0 - '@rollup/rollup-linux-arm64-gnu': 4.20.0 - '@rollup/rollup-linux-arm64-musl': 4.20.0 - '@rollup/rollup-linux-powerpc64le-gnu': 4.20.0 - '@rollup/rollup-linux-riscv64-gnu': 4.20.0 - '@rollup/rollup-linux-s390x-gnu': 4.20.0 - '@rollup/rollup-linux-x64-gnu': 4.20.0 - '@rollup/rollup-linux-x64-musl': 4.20.0 - '@rollup/rollup-win32-arm64-msvc': 4.20.0 - '@rollup/rollup-win32-ia32-msvc': 4.20.0 - '@rollup/rollup-win32-x64-msvc': 4.20.0 + '@rollup/rollup-android-arm-eabi': 4.27.4 + '@rollup/rollup-android-arm64': 4.27.4 + '@rollup/rollup-darwin-arm64': 4.27.4 + '@rollup/rollup-darwin-x64': 4.27.4 + '@rollup/rollup-freebsd-arm64': 4.27.4 + '@rollup/rollup-freebsd-x64': 4.27.4 + '@rollup/rollup-linux-arm-gnueabihf': 4.27.4 + '@rollup/rollup-linux-arm-musleabihf': 4.27.4 + '@rollup/rollup-linux-arm64-gnu': 4.27.4 + '@rollup/rollup-linux-arm64-musl': 4.27.4 + '@rollup/rollup-linux-powerpc64le-gnu': 4.27.4 + '@rollup/rollup-linux-riscv64-gnu': 4.27.4 + '@rollup/rollup-linux-s390x-gnu': 4.27.4 + '@rollup/rollup-linux-x64-gnu': 4.27.4 + '@rollup/rollup-linux-x64-musl': 4.27.4 + '@rollup/rollup-win32-arm64-msvc': 4.27.4 + '@rollup/rollup-win32-ia32-msvc': 4.27.4 + '@rollup/rollup-win32-x64-msvc': 4.27.4 fsevents: 2.3.3 run-parallel@1.2.0: @@ -5445,7 +5263,7 @@ snapshots: dependencies: ret: 0.4.3 - safe-stable-stringify@2.4.3: {} + safe-stable-stringify@2.5.0: {} safer-buffer@2.1.2: {} @@ -5493,7 +5311,7 @@ snapshots: set-blocking@2.0.0: {} - set-cookie-parser@2.7.0: {} + set-cookie-parser@2.7.1: {} set-function-length@1.2.2: dependencies: @@ -5506,31 +5324,31 @@ snapshots: setprototypeof@1.2.0: {} - sharp@0.33.4: + sharp@0.33.5: dependencies: color: 4.2.3 detect-libc: 2.0.3 semver: 7.6.3 optionalDependencies: - '@img/sharp-darwin-arm64': 0.33.4 - '@img/sharp-darwin-x64': 0.33.4 - '@img/sharp-libvips-darwin-arm64': 1.0.2 - '@img/sharp-libvips-darwin-x64': 1.0.2 - '@img/sharp-libvips-linux-arm': 1.0.2 - '@img/sharp-libvips-linux-arm64': 1.0.2 - '@img/sharp-libvips-linux-s390x': 1.0.2 - '@img/sharp-libvips-linux-x64': 1.0.2 - '@img/sharp-libvips-linuxmusl-arm64': 1.0.2 - '@img/sharp-libvips-linuxmusl-x64': 1.0.2 - '@img/sharp-linux-arm': 0.33.4 - '@img/sharp-linux-arm64': 0.33.4 - '@img/sharp-linux-s390x': 0.33.4 - '@img/sharp-linux-x64': 0.33.4 - '@img/sharp-linuxmusl-arm64': 0.33.4 - '@img/sharp-linuxmusl-x64': 0.33.4 - '@img/sharp-wasm32': 0.33.4 - '@img/sharp-win32-ia32': 0.33.4 - '@img/sharp-win32-x64': 0.33.4 + '@img/sharp-darwin-arm64': 0.33.5 + '@img/sharp-darwin-x64': 0.33.5 + '@img/sharp-libvips-darwin-arm64': 1.0.4 + '@img/sharp-libvips-darwin-x64': 1.0.4 + '@img/sharp-libvips-linux-arm': 1.0.5 + '@img/sharp-libvips-linux-arm64': 1.0.4 + '@img/sharp-libvips-linux-s390x': 1.0.4 + '@img/sharp-libvips-linux-x64': 1.0.4 + '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 + '@img/sharp-libvips-linuxmusl-x64': 1.0.4 + '@img/sharp-linux-arm': 0.33.5 + '@img/sharp-linux-arm64': 0.33.5 + '@img/sharp-linux-s390x': 0.33.5 + '@img/sharp-linux-x64': 0.33.5 + '@img/sharp-linuxmusl-arm64': 0.33.5 + '@img/sharp-linuxmusl-x64': 0.33.5 + '@img/sharp-wasm32': 0.33.5 + '@img/sharp-win32-ia32': 0.33.5 + '@img/sharp-win32-x64': 0.33.5 shebang-command@2.0.0: dependencies: @@ -5543,7 +5361,7 @@ snapshots: call-bind: 1.0.7 es-errors: 1.3.0 get-intrinsic: 1.2.4 - object-inspect: 1.13.2 + object-inspect: 1.13.3 signal-exit@3.0.7: {} @@ -5555,11 +5373,11 @@ snapshots: sirv@2.0.4: dependencies: - '@polka/url': 1.0.0-next.25 + '@polka/url': 1.0.0-next.28 mrmime: 2.0.0 totalist: 3.0.1 - sonic-boom@4.0.1: + sonic-boom@4.2.0: dependencies: atomic-sleep: 1.0.0 @@ -5581,16 +5399,16 @@ snapshots: spdx-correct@3.2.0: dependencies: spdx-expression-parse: 3.0.1 - spdx-license-ids: 3.0.18 + spdx-license-ids: 3.0.20 spdx-exceptions@2.5.0: {} spdx-expression-parse@3.0.1: dependencies: spdx-exceptions: 2.5.0 - spdx-license-ids: 3.0.18 + spdx-license-ids: 3.0.20 - spdx-license-ids@3.0.18: {} + spdx-license-ids@3.0.20: {} split2@4.2.0: {} @@ -5645,10 +5463,6 @@ snapshots: pirates: 4.0.6 ts-interface-checker: 0.1.13 - supports-color@5.5.0: - dependencies: - has-flag: 3.0.0 - supports-preserve-symlinks-flag@1.0.0: {} tar@6.2.1: @@ -5660,19 +5474,18 @@ snapshots: mkdirp: 1.0.4 yallist: 4.0.0 - telefunc@0.1.76(@babel/core@7.25.2)(@babel/parser@7.25.3)(@babel/types@7.25.2)(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1): + telefunc@0.1.81(@babel/core@7.26.0)(@babel/parser@7.26.2)(@babel/types@7.26.0)(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1): dependencies: '@brillout/import': 0.2.3 '@brillout/json-serializer': 0.5.13 '@brillout/picocolors': 1.0.15 - '@brillout/vite-plugin-server-entry': 0.4.13 - es-module-lexer: 0.7.1 - picocolors: 1.1.0 + '@brillout/vite-plugin-server-entry': 0.5.4 + es-module-lexer: 1.5.4 ts-morph: 19.0.0 optionalDependencies: - '@babel/core': 7.25.2 - '@babel/parser': 7.25.3 - '@babel/types': 7.25.2 + '@babel/core': 7.26.0 + '@babel/parser': 7.26.2 + '@babel/types': 7.26.0 react: 18.3.1 react-streaming: 0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -5692,18 +5505,18 @@ snapshots: through@2.3.8: {} - tinyglobby@0.2.9: + tinyexec@0.3.1: {} + + tinyglobby@0.2.10: dependencies: - fdir: 6.4.0(picomatch@4.0.2) + fdir: 6.4.2(picomatch@4.0.2) picomatch: 4.0.2 - tldts-core@6.1.50: {} + tldts-core@6.1.64: {} - tldts@6.1.50: + tldts@6.1.64: dependencies: - tldts-core: 6.1.50 - - to-fast-properties@2.0.0: {} + tldts-core: 6.1.64 to-regex-range@5.0.1: dependencies: @@ -5717,7 +5530,7 @@ snapshots: tough-cookie@5.0.0: dependencies: - tldts: 6.1.50 + tldts: 6.1.64 tr46@0.0.3: {} @@ -5734,29 +5547,29 @@ snapshots: '@ts-morph/common': 0.20.0 code-block-writer: 12.0.0 - tslib@2.6.3: {} + tslib@2.8.1: {} - tsup@8.3.0(postcss@8.4.47)(typescript@5.5.4): + tsup@8.3.5(postcss@8.4.49)(typescript@5.7.2): dependencies: bundle-require: 5.0.0(esbuild@0.24.0) cac: 6.7.14 - chokidar: 3.6.0 + chokidar: 4.0.1 consola: 3.2.3 - debug: 4.3.6 + debug: 4.3.7 esbuild: 0.24.0 - execa: 5.1.1 joycon: 3.1.1 - picocolors: 1.1.0 - postcss-load-config: 6.0.1(postcss@8.4.47) + picocolors: 1.1.1 + postcss-load-config: 6.0.1(postcss@8.4.49) resolve-from: 5.0.0 - rollup: 4.20.0 + rollup: 4.27.4 source-map: 0.8.0-beta.0 sucrase: 3.35.0 - tinyglobby: 0.2.9 + tinyexec: 0.3.1 + tinyglobby: 0.2.10 tree-kill: 1.2.2 optionalDependencies: - postcss: 8.4.47 - typescript: 5.5.4 + postcss: 8.4.49 + typescript: 5.7.2 transitivePeerDependencies: - jiti - supports-color @@ -5767,41 +5580,36 @@ snapshots: type-fest@3.13.1: {} - type-fest@4.24.0: {} + type-fest@4.28.0: {} type-is@1.6.18: dependencies: media-typer: 0.3.0 mime-types: 2.1.35 - typescript@5.5.4: {} + typescript@5.7.2: {} ufo@1.5.4: {} - uglify-js@3.19.2: + uglify-js@3.19.3: optional: true uncrypto@0.1.3: {} - undici-types@5.26.5: {} - - undici-types@6.13.0: - optional: true + undici-types@6.19.8: {} undici@5.28.4: dependencies: '@fastify/busboy': 2.1.1 - unenv-nightly@1.10.0-1717606461.a117952: + unenv-nightly@2.0.0-20241015-162228-03257ee: dependencies: - consola: 3.2.3 defu: 6.1.4 - mime: 3.0.0 - node-fetch-native: 1.6.4 + ohash: 1.1.4 pathe: 1.1.2 ufo: 1.5.4 - unenv-nightly@2.0.0-20241015-162228-03257ee: + unenv-nightly@2.0.0-20241111-080453-894aa31: dependencies: defu: 6.1.4 ohash: 1.1.4 @@ -5816,36 +5624,35 @@ snapshots: node-fetch-native: 1.6.4 pathe: 1.1.2 - universal-middleware@0.3.8(esbuild@0.24.0)(vite@5.4.8(@types/node@20.14.15)): + universal-middleware@0.3.9(esbuild@0.24.0)(rollup@4.27.4)(vite@5.4.11(@types/node@20.17.7)): dependencies: '@universal-middleware/cloudflare': 0.2.6 '@universal-middleware/core': 0.2.13 - '@universal-middleware/express': 0.2.8 - '@universal-middleware/fastify': 0.3.5 + '@universal-middleware/express': 0.2.9 + '@universal-middleware/fastify': 0.3.6 '@universal-middleware/hattip': 0.2.10 - '@universal-middleware/hono': 0.2.11 - '@universal-middleware/webroute': 0.2.7 - oxc-transform: 0.30.5 + '@universal-middleware/hono': 0.2.12 + '@universal-middleware/webroute': 0.2.8 + oxc-transform: 0.31.0 package-up: 5.0.0 - unplugin: 1.14.1 + unplugin: 1.16.0 optionalDependencies: esbuild: 0.24.0 - vite: 5.4.8(@types/node@20.14.15) - transitivePeerDependencies: - - webpack-sources + rollup: 4.27.4 + vite: 5.4.11(@types/node@20.17.7) unpipe@1.0.0: {} - unplugin@1.14.1: + unplugin@1.16.0: dependencies: - acorn: 8.12.1 + acorn: 8.14.0 webpack-virtual-modules: 0.6.2 - update-browserslist-db@1.1.0(browserslist@4.23.3): + update-browserslist-db@1.1.1(browserslist@4.24.2): dependencies: - browserslist: 4.23.3 - escalade: 3.1.2 - picocolors: 1.1.0 + browserslist: 4.24.2 + escalade: 3.2.0 + picocolors: 1.1.1 util-deprecate@1.0.2: {} @@ -5858,67 +5665,38 @@ snapshots: vary@1.1.2: {} - vike-react@0.5.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(vike@0.4.198(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.8(@types/node@22.2.0))): + vike-react@0.5.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(vike@0.4.204(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.11(@types/node@20.17.7))): dependencies: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) react-streaming: 0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - vike: 0.4.198(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.8(@types/node@22.2.0)) - - vike@0.4.198(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.8(@types/node@20.14.15)): - dependencies: - '@brillout/import': 0.2.3 - '@brillout/json-serializer': 0.5.13 - '@brillout/picocolors': 1.0.15 - '@brillout/require-shim': 0.1.2 - '@brillout/vite-plugin-server-entry': 0.4.13 - acorn: 8.12.1 - cac: 6.7.14 - es-module-lexer: 1.5.4 - esbuild: 0.24.0 - fast-glob: 3.3.2 - semver: 7.6.3 - sirv: 2.0.4 - source-map-support: 0.5.21 - vite: 5.4.8(@types/node@20.14.15) - optionalDependencies: - react-streaming: 0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + vike: 0.4.204(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.11(@types/node@20.17.7)) - vike@0.4.198(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.8(@types/node@22.2.0)): + vike@0.4.204(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.11(@types/node@20.17.7)): dependencies: '@brillout/import': 0.2.3 '@brillout/json-serializer': 0.5.13 '@brillout/picocolors': 1.0.15 '@brillout/require-shim': 0.1.2 - '@brillout/vite-plugin-server-entry': 0.4.13 - acorn: 8.12.1 + '@brillout/vite-plugin-server-entry': 0.5.4 + acorn: 8.14.0 cac: 6.7.14 es-module-lexer: 1.5.4 esbuild: 0.24.0 fast-glob: 3.3.2 semver: 7.6.3 - sirv: 2.0.4 source-map-support: 0.5.21 - vite: 5.4.8(@types/node@22.2.0) + vite: 5.4.11(@types/node@20.17.7) optionalDependencies: react-streaming: 0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - vite@5.4.8(@types/node@20.14.15): - dependencies: - esbuild: 0.24.0 - postcss: 8.4.47 - rollup: 4.20.0 - optionalDependencies: - '@types/node': 20.14.15 - fsevents: 2.3.3 - - vite@5.4.8(@types/node@22.2.0): + vite@5.4.11(@types/node@20.17.7): dependencies: esbuild: 0.24.0 - postcss: 8.4.47 - rollup: 4.20.0 + postcss: 8.4.49 + rollup: 4.27.4 optionalDependencies: - '@types/node': 22.2.0 + '@types/node': 20.17.7 fsevents: 2.3.3 webidl-conversions@3.0.1: {} @@ -5948,36 +5726,36 @@ snapshots: wordwrap@1.0.0: {} - workerd@1.20240806.0: + workerd@1.20241106.1: optionalDependencies: - '@cloudflare/workerd-darwin-64': 1.20240806.0 - '@cloudflare/workerd-darwin-arm64': 1.20240806.0 - '@cloudflare/workerd-linux-64': 1.20240806.0 - '@cloudflare/workerd-linux-arm64': 1.20240806.0 - '@cloudflare/workerd-windows-64': 1.20240806.0 + '@cloudflare/workerd-darwin-64': 1.20241106.1 + '@cloudflare/workerd-darwin-arm64': 1.20241106.1 + '@cloudflare/workerd-linux-64': 1.20241106.1 + '@cloudflare/workerd-linux-arm64': 1.20241106.1 + '@cloudflare/workerd-windows-64': 1.20241106.1 - wrangler@3.71.0(@cloudflare/workers-types@4.20240806.0): + wrangler@3.90.0: dependencies: '@cloudflare/kv-asset-handler': 0.3.4 - '@cloudflare/workers-shared': 0.1.0 + '@cloudflare/workers-shared': 0.8.0 '@esbuild-plugins/node-globals-polyfill': 0.2.3(esbuild@0.24.0) '@esbuild-plugins/node-modules-polyfill': 0.2.2(esbuild@0.24.0) blake3-wasm: 2.1.5 - chokidar: 3.6.0 - date-fns: 3.6.0 + chokidar: 4.0.1 + date-fns: 4.1.0 esbuild: 0.24.0 - miniflare: 3.20240806.0 + itty-time: 1.0.6 + miniflare: 3.20241106.1 nanoid: 3.3.7 - path-to-regexp: 6.2.2 + path-to-regexp: 6.3.0 resolve: 1.22.8 resolve.exports: 2.0.2 selfsigned: 2.4.1 source-map: 0.6.1 - unenv: unenv-nightly@1.10.0-1717606461.a117952 - workerd: 1.20240806.0 - xxhash-wasm: 1.0.2 + unenv: unenv-nightly@2.0.0-20241111-080453-894aa31 + workerd: 1.20241106.1 + xxhash-wasm: 1.1.0 optionalDependencies: - '@cloudflare/workers-types': 4.20240806.0 fsevents: 2.3.3 transitivePeerDependencies: - bufferutil @@ -6000,7 +5778,7 @@ snapshots: ws@8.18.0: {} - xxhash-wasm@1.0.2: {} + xxhash-wasm@1.1.0: {} yallist@3.1.1: {} @@ -6008,9 +5786,9 @@ snapshots: yocto-queue@1.1.1: {} - youch@3.3.3: + youch@3.3.4: dependencies: - cookie: 0.5.0 + cookie: 0.7.2 mustache: 4.2.0 stacktracey: 2.1.8 From 89881a5fb83b0c073fd2f1d3bfcc61773e5ccf07 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=ABl=20Charles?= Date: Wed, 27 Nov 2024 13:55:14 +0100 Subject: [PATCH 30/36] chore: bump universal-middleware --- packages/vike-node/package.json | 24 +-- packages/vike-node/tsup.config.js | 6 +- pnpm-lock.yaml | 233 ++++++++++++++---------------- 3 files changed, 126 insertions(+), 137 deletions(-) diff --git a/packages/vike-node/package.json b/packages/vike-node/package.json index 751fe6c..8feeebb 100644 --- a/packages/vike-node/package.json +++ b/packages/vike-node/package.json @@ -56,6 +56,16 @@ "types": "./dist/universal-elysia-handler-vike.handler.d.ts", "import": "./dist/universal-elysia-handler-vike.handler.js", "default": "./dist/universal-elysia-handler-vike.handler.js" + }, + "./vercel-edge": { + "types": "./dist/universal-vercel-edge-handler-vike.handler.d.ts", + "import": "./dist/universal-vercel-edge-handler-vike.handler.js", + "default": "./dist/universal-vercel-edge-handler-vike.handler.js" + }, + "./vercel-node": { + "types": "./dist/universal-vercel-node-handler-vike.handler.d.ts", + "import": "./dist/universal-vercel-node-handler-vike.handler.js", + "default": "./dist/universal-vercel-node-handler-vike.handler.js" } }, "scripts": { @@ -89,7 +99,7 @@ "hono": "^4.6.3", "tsup": "^8.3.0", "typescript": "^5.5.4", - "universal-middleware": "^0.3.8", + "universal-middleware": "^0.4.0", "vike": "^0.4.198", "vite": "^5.4.8" }, @@ -97,15 +107,5 @@ "dist/" ], "repository": "github:vikejs/vike-node", - "license": "MIT", - "optionalDependencies": { - "@universal-middleware/cloudflare": "^0", - "@universal-middleware/elysia": "^0", - "@universal-middleware/express": "^0", - "@universal-middleware/fastify": "^0", - "@universal-middleware/h3": "^0", - "@universal-middleware/hattip": "^0", - "@universal-middleware/hono": "^0", - "@universal-middleware/webroute": "^0" - } + "license": "MIT" } \ No newline at end of file diff --git a/packages/vike-node/tsup.config.js b/packages/vike-node/tsup.config.js index aa4e81d..e48de95 100644 --- a/packages/vike-node/tsup.config.js +++ b/packages/vike-node/tsup.config.js @@ -23,7 +23,8 @@ export default defineConfig([ external: external.map((e) => [e, `node:${e}`]).flat(1), dts: true, outDir: 'dist', - bundle: true + bundle: true, + treeshake: true }, { entry: { @@ -37,6 +38,7 @@ export default defineConfig([ opts.outbase = 'src' }, dts: true, - outDir: 'dist' + outDir: 'dist', + treeshake: true } ]) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 197ab58..c5de0fd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -177,7 +177,7 @@ importers: version: 0.2.1 '@universal-middleware/core': specifier: ^0.2.13 - version: 0.2.13 + version: 0.2.14 '@vercel/nft': specifier: ^0.26.5 version: 0.26.5 @@ -193,31 +193,6 @@ importers: unenv-nightly: specifier: 2.0.0-20241015-162228-03257ee version: 2.0.0-20241015-162228-03257ee - optionalDependencies: - '@universal-middleware/cloudflare': - specifier: ^0 - version: 0.2.6 - '@universal-middleware/elysia': - specifier: ^0 - version: 0.2.2 - '@universal-middleware/express': - specifier: ^0 - version: 0.2.9 - '@universal-middleware/fastify': - specifier: ^0 - version: 0.3.6 - '@universal-middleware/h3': - specifier: ^0 - version: 0.2.8 - '@universal-middleware/hattip': - specifier: ^0 - version: 0.2.10 - '@universal-middleware/hono': - specifier: ^0 - version: 0.2.12 - '@universal-middleware/webroute': - specifier: ^0 - version: 0.2.8 devDependencies: '@brillout/release-me': specifier: ^0.4.0 @@ -244,8 +219,8 @@ importers: specifier: ^5.5.4 version: 5.7.2 universal-middleware: - specifier: ^0.3.8 - version: 0.3.9(esbuild@0.24.0)(rollup@4.27.4)(vite@5.4.11(@types/node@20.17.7)) + specifier: ^0.4.0 + version: 0.4.0(esbuild@0.24.0)(rollup@4.27.4)(vite@5.4.11(@types/node@20.17.7)) vike: specifier: ^0.4.198 version: 0.4.204(react-streaming@0.3.43(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.11(@types/node@20.17.7)) @@ -966,43 +941,43 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} - '@oxc-transform/binding-darwin-arm64@0.31.0': - resolution: {integrity: sha512-0QolonAqXrxN3ai5/nB2i99U/dbZLanFpnwpL2jPPPRxYQPXU/j1uLPPcfOC6J5nrDQs2mMVHvkrT2CJmhetKA==} + '@oxc-transform/binding-darwin-arm64@0.37.0': + resolution: {integrity: sha512-2zzylEL3seHJaLkQfvk1/fhCfBSnnFsXzgwhqOF2oUGNaVbPnHt778rXg/csNuokD8rSsy9CJa+6ooT1473gMg==} cpu: [arm64] os: [darwin] - '@oxc-transform/binding-darwin-x64@0.31.0': - resolution: {integrity: sha512-asWogC7PtXbBHdN7Z/NJTHq4JXv5st94qe8t4JQR01vBumkxUa1qomTIf7h4/G3o/BeXgjL8VgHaM4snF7Z/iw==} + '@oxc-transform/binding-darwin-x64@0.37.0': + resolution: {integrity: sha512-dEeV//DdMb0LcClwZVW+p6bBslw/m+Pl8G6S3ybu1E0qb/t2kDr0p1urgwPYYjc4+H2QKCzid9C86/4D6F2xJQ==} cpu: [x64] os: [darwin] - '@oxc-transform/binding-linux-arm64-gnu@0.31.0': - resolution: {integrity: sha512-eNtUs4TRgg8L7Aw5cGjVVnfJLlgCHD8nloJYRKZuS09h78qN7PzUs3V0smNvxVj3iFamey9d2r/sVZd89MPY4w==} + '@oxc-transform/binding-linux-arm64-gnu@0.37.0': + resolution: {integrity: sha512-CZQdB2SNtYTSgRtQ5p4JMHJIyZ9NMg3DTHo8HcciMZRJckUchruQcD8e2SqealHnCt8S09GjoJNa2Thpba5PvQ==} cpu: [arm64] os: [linux] - '@oxc-transform/binding-linux-arm64-musl@0.31.0': - resolution: {integrity: sha512-yEps46bvFWZn4LJiRv+xNQKBOUd2WQF5sRwX2BFASqGGoDm3GbLV9ge9iyd5L+PvqXUANuMy7Pim6rwmRxDcdQ==} + '@oxc-transform/binding-linux-arm64-musl@0.37.0': + resolution: {integrity: sha512-yyQr04hjIlG9CEl6ii4vu7CmsY66gKokJWYQj2RAW+tLBiFLM/CIxYp4wUcrENM8jK8VkLvQ837CX08nmrRGUA==} cpu: [arm64] os: [linux] - '@oxc-transform/binding-linux-x64-gnu@0.31.0': - resolution: {integrity: sha512-8XP6bOi8CGlyEFEpinADND44ZklEq8q3Q8CB8gYpMP1QS7u0VyH1AeKwXES2r+g4N7ndv4y3hmK/1GdTE6Q4sA==} + '@oxc-transform/binding-linux-x64-gnu@0.37.0': + resolution: {integrity: sha512-ASl+V3BUp8EaDvXVWURuc+jygZ0xEXcBe1tJVtrqsoH5LpR9ReVPdmKz2QCJreCj+9QWHEE6ESJ49NvOtcaBjg==} cpu: [x64] os: [linux] - '@oxc-transform/binding-linux-x64-musl@0.31.0': - resolution: {integrity: sha512-Wjc8dCdOcLZrRYP6Tw3uBUD2YjOptIe0V0AkC9immpx57aaiHA4YFcCQFd8Jg+LChqd+jVQMJCIkx6+jSdmbIg==} + '@oxc-transform/binding-linux-x64-musl@0.37.0': + resolution: {integrity: sha512-QSD5NTt5FxfLtWqqhxWPkhX5o+Foo68RsRcj38H6NvkXOLBhs7uDJW6Zya7d7z4EHrZN/OLAdksOVhxjw4JM1Q==} cpu: [x64] os: [linux] - '@oxc-transform/binding-win32-arm64-msvc@0.31.0': - resolution: {integrity: sha512-RGtJ4fLLMRMzjvCphuPZvRU/te0IpFacoKmfZwbkOY0Tc1EAXJKJvtbk2Nxn+22O3qilLv8d+WX7li32sE6s5A==} + '@oxc-transform/binding-win32-arm64-msvc@0.37.0': + resolution: {integrity: sha512-fjcis9rgNu0lwPBM9QAZOz3bMbIeSLau6zVOnHi58SwpkVCll3j57ZdwG+BxIbMeV2BXyWRWTwjvsBRNPZrnBQ==} cpu: [arm64] os: [win32] - '@oxc-transform/binding-win32-x64-msvc@0.31.0': - resolution: {integrity: sha512-QHB6+wU2/Ilr8UGu68F+LOrZ85GqPuMMvpxa+9Y01j5vWE+/qUypQE6gf/zKMwubq+JVBBUUEqK3ApHxRcISzQ==} + '@oxc-transform/binding-win32-x64-msvc@0.37.0': + resolution: {integrity: sha512-d1rRJ9jnX72ZiA8HaBR9YeQJvahsXPPh2TGRZFXsAIcIJCcIEBhsICm/R1r3L8zGg4zrFXU/+2DjN5KkeRkhLQ==} cpu: [x64] os: [win32] @@ -1203,35 +1178,38 @@ packages: '@types/serve-static@1.15.7': resolution: {integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==} - '@universal-middleware/cloudflare@0.2.6': - resolution: {integrity: sha512-G92QqkKEtcWaVXV2yjdb3dHvj7yfWNSYXcbV9sWpgU6R7WHsjSzSjS7euNytD6R355Ac5wUVgqI8WRHZ417dsw==} + '@universal-middleware/cloudflare@0.2.7': + resolution: {integrity: sha512-B5yeO9BMi8hAMfANeSUeaLMh3XL2qGhGVVUgHxJABLpUD0mpCBXMFGGEjavM7gLaZb7GzaK/JC52+U9Crhb8NA==} '@universal-middleware/compress@0.2.1': resolution: {integrity: sha512-Q2xs+WaYXRgKGj4jxjc5BXkU2hvxKPFOqDgTIkt9340sq7dOfmPVkL/04Hs8oaJ9BSwlmSd7/5kxXne4n40iBw==} - '@universal-middleware/core@0.2.13': - resolution: {integrity: sha512-FkWz+UQuaqRPzK8xc2GIyJEbetuUzDiJKqs7uJYDcepkHtZUVon+5FrwzxGr2XJnXtWE/vK58wrwETz4WkEmCA==} + '@universal-middleware/core@0.2.14': + resolution: {integrity: sha512-HrbFL8vafL3WK1EHOAWjaqCXW4bfsvx2mbouSwenLjA2rGmgLcxspBCYzIuDDHdqSCU9vJdqMyswcB3l935RcA==} + + '@universal-middleware/elysia@0.2.3': + resolution: {integrity: sha512-2utU4b5WPgRBVKnM4BkaipEBozaXvuFtny3mKGHS3jMx6YKqrklyTVBiJWi7Y45uH4XjPoiDha7PjiKZ/4Fbjg==} - '@universal-middleware/elysia@0.2.2': - resolution: {integrity: sha512-itEo6yWNSZ/fas/ZFks2F2tIHPtzS/nmScmcD/U5jKquFwc+yTU0Fd3WxeynBBzDTdvcqZUfiJ++z8P5y9uPUQ==} + '@universal-middleware/express@0.2.10': + resolution: {integrity: sha512-jRPY2o40ikpznHGUo0GxeSej6NU4XhjOvTgKMqLB98SpZ5hP+kTDvwv15JqeUFRiMsyN0Vu73RyE4IjzU79tQQ==} - '@universal-middleware/express@0.2.9': - resolution: {integrity: sha512-xK5pA1I9voMfcs4lk1jJnneY/PME4rWKMyPx4zZ0JxL6Z//8AcLmZQy7KTV0uwSS8Ipn88p0lrBMZ4EcGEYZMQ==} + '@universal-middleware/fastify@0.3.7': + resolution: {integrity: sha512-mqc8VSIK94Ooq3JjfjCLZUdIH7l4fzj0u+JaxPyHv+2FzuJVuYFonGnvie8IaHEeeBEoDPmDJgKPckXGWHhRow==} - '@universal-middleware/fastify@0.3.6': - resolution: {integrity: sha512-fFGzRMr/F+GUHaiv0DgsvRENb/l2aM6A8+2EgGV68ztdGGBOdZJ9Jti4z/D1lYA7yQytVWFv+LUKOATngjMpwg==} + '@universal-middleware/h3@0.2.9': + resolution: {integrity: sha512-4aA9JykmJ1n2MnXUiWv9FeOt4LJi5OAmGbvw2ErwqRYyqKpBOPvAvho2xS3dGLcTzaozUtfR7UsaT9bo1MjDVQ==} - '@universal-middleware/h3@0.2.8': - resolution: {integrity: sha512-o/E0fMOXeSXnRFxcke5go6cXc1s8/dSAeX5+voO6Ci6kAcVyFvPsM2/IjKEhELd4rmLPW6nYvjIuTfw6PPIhSA==} + '@universal-middleware/hattip@0.2.11': + resolution: {integrity: sha512-GwxBQJj/Vxn1rnAivxVC4csqlfxhHxmgDZp3/u76ZIS5n6iKqrGsnzspxB06rD2RJArdjmG1sEE4b2JEfg9SbA==} - '@universal-middleware/hattip@0.2.10': - resolution: {integrity: sha512-xbymaNVIQMjD1hlD85pFvB3xbXplPoSYrw3xNmAG9Q0H7znD3mMEqfMOwn7T2IqRPKo+aLsLii04jgzJzjjHuA==} + '@universal-middleware/hono@0.2.13': + resolution: {integrity: sha512-hW583VHTX11oj/0xp1OWAeiLmEbx3cBBVYAdBFA/e6Mti92VcV5AdjT1e6PThWoKap49OKfG3SQRV9sWIK0MfQ==} - '@universal-middleware/hono@0.2.12': - resolution: {integrity: sha512-fhHne/mrH0MhoTGejIZU/PoWsKx8lf/j4hY2FS9KfGaS6yRTZIJeY2BOT30Ux6R/EhwQKAXsNPp+PgOnD4ya3A==} + '@universal-middleware/vercel@0.1.2-beta': + resolution: {integrity: sha512-IMgazdqN6t7yxGHHTrcso9YDzvNMjsvNeB7De5Dg7HrSYs8947NazTe2XG7RtOrsZw1e7fkaBP4J7CenHvSgKQ==} - '@universal-middleware/webroute@0.2.8': - resolution: {integrity: sha512-BkgioS5SJ9opl8hGNUHrPmf7n5RAk6b9AW6x7ljTTFb2AMhRHA13nQk3Q4rdlXsHKrlaUvyqjZU9yG8+0co8fA==} + '@universal-middleware/webroute@0.2.9': + resolution: {integrity: sha512-T+UU1vUJHLlgbsLj+e/38fl4lb7cl8IakNfuJFkwXjgOtx93UJBYm2g9QUZjFx2t3+5TR45K4f8NbjY85e29Ag==} '@vercel/nft@0.26.5': resolution: {integrity: sha512-NHxohEqad6Ra/r4lGknO52uc/GrWILXAMs1BB4401GTqww0fw1bAqzpG1XHuDO+dprg4GvsD9ZLLSsdo78p9hQ==} @@ -2289,8 +2267,8 @@ packages: resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} engines: {node: '>=6'} - oxc-transform@0.31.0: - resolution: {integrity: sha512-7NirXynEn8hxw371f2UQL56ljvKSzLI2mTdKe3dZyPDS7EmCkkKrEyWCufDYEWaN6ZhBba0ACaMRjVMsY6Et2g==} + oxc-transform@0.37.0: + resolution: {integrity: sha512-z2jIypxe05UDYYBzHT+Jwb7JaD2oDiay+MJpa/t3n2SGNsr2EsjFepDYez6kvtMdLXAirFms0OxobwGVsAUa5g==} p-limit@4.0.0: resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} @@ -2906,14 +2884,17 @@ packages: unenv@1.10.0: resolution: {integrity: sha512-wY5bskBQFL9n3Eca5XnhH6KbUo/tfvkwm9OpcdCvLaeA7piBNbavbOKJySEwQ1V0RH6HvNlSAFRTpvTqgKRQXQ==} - universal-middleware@0.3.9: - resolution: {integrity: sha512-sh60kFv5+ywVIu1R1dAlepXii5CzwoAsSPgG/cRtknyVugD1qCH2WTO/zChvB1ZGgEBrdJV07DvmCY64VBHWXA==} + universal-middleware@0.4.0: + resolution: {integrity: sha512-YlRwkTNMOCV+f8WEVpsLKvsj4erSOM/mV7Wak/+lpRxzhvpTebHXHMh96DMLhTRiwwDgsA1fBz8wOdseSqakYg==} peerDependencies: + '@rollup/plugin-commonjs': ^28.0.1 '@rollup/plugin-node-resolve': ^15.3.0 esbuild: ^0.24.0 - rollup: ^4.24.0 - vite: '>=5.4.8' + rollup: ^4.27.4 + vite: '>=5.4.11' peerDependenciesMeta: + '@rollup/plugin-commonjs': + optional: true '@rollup/plugin-node-resolve': optional: true esbuild: @@ -3645,28 +3626,28 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.17.1 - '@oxc-transform/binding-darwin-arm64@0.31.0': + '@oxc-transform/binding-darwin-arm64@0.37.0': optional: true - '@oxc-transform/binding-darwin-x64@0.31.0': + '@oxc-transform/binding-darwin-x64@0.37.0': optional: true - '@oxc-transform/binding-linux-arm64-gnu@0.31.0': + '@oxc-transform/binding-linux-arm64-gnu@0.37.0': optional: true - '@oxc-transform/binding-linux-arm64-musl@0.31.0': + '@oxc-transform/binding-linux-arm64-musl@0.37.0': optional: true - '@oxc-transform/binding-linux-x64-gnu@0.31.0': + '@oxc-transform/binding-linux-x64-gnu@0.37.0': optional: true - '@oxc-transform/binding-linux-x64-musl@0.31.0': + '@oxc-transform/binding-linux-x64-musl@0.37.0': optional: true - '@oxc-transform/binding-win32-arm64-msvc@0.31.0': + '@oxc-transform/binding-win32-arm64-msvc@0.37.0': optional: true - '@oxc-transform/binding-win32-x64-msvc@0.31.0': + '@oxc-transform/binding-win32-x64-msvc@0.37.0': optional: true '@pkgjs/parseargs@0.11.0': @@ -3858,57 +3839,60 @@ snapshots: '@types/node': 20.17.7 '@types/send': 0.17.4 - '@universal-middleware/cloudflare@0.2.6': + '@universal-middleware/cloudflare@0.2.7': dependencies: - '@universal-middleware/core': 0.2.13 + '@universal-middleware/core': 0.2.14 '@universal-middleware/compress@0.2.1': optionalDependencies: - '@universal-middleware/cloudflare': 0.2.6 - '@universal-middleware/elysia': 0.2.2 - '@universal-middleware/express': 0.2.9 - '@universal-middleware/fastify': 0.3.6 - '@universal-middleware/h3': 0.2.8 - '@universal-middleware/hattip': 0.2.10 - '@universal-middleware/hono': 0.2.12 - '@universal-middleware/webroute': 0.2.8 + '@universal-middleware/cloudflare': 0.2.7 + '@universal-middleware/elysia': 0.2.3 + '@universal-middleware/express': 0.2.10 + '@universal-middleware/fastify': 0.3.7 + '@universal-middleware/h3': 0.2.9 + '@universal-middleware/hattip': 0.2.11 + '@universal-middleware/hono': 0.2.13 + '@universal-middleware/webroute': 0.2.9 - '@universal-middleware/core@0.2.13': + '@universal-middleware/core@0.2.14': dependencies: regexparam: 3.0.0 tough-cookie: 5.0.0 - '@universal-middleware/elysia@0.2.2': + '@universal-middleware/elysia@0.2.3': dependencies: - '@universal-middleware/core': 0.2.13 - optional: true + '@universal-middleware/core': 0.2.14 - '@universal-middleware/express@0.2.9': + '@universal-middleware/express@0.2.10': dependencies: - '@universal-middleware/core': 0.2.13 + '@universal-middleware/core': 0.2.14 - '@universal-middleware/fastify@0.3.6': + '@universal-middleware/fastify@0.3.7': dependencies: - '@universal-middleware/core': 0.2.13 - '@universal-middleware/express': 0.2.9 + '@universal-middleware/core': 0.2.14 + '@universal-middleware/express': 0.2.10 fastify-raw-body: 5.0.0 - '@universal-middleware/h3@0.2.8': + '@universal-middleware/h3@0.2.9': dependencies: - '@universal-middleware/core': 0.2.13 - optional: true + '@universal-middleware/core': 0.2.14 + + '@universal-middleware/hattip@0.2.11': + dependencies: + '@universal-middleware/core': 0.2.14 - '@universal-middleware/hattip@0.2.10': + '@universal-middleware/hono@0.2.13': dependencies: - '@universal-middleware/core': 0.2.13 + '@universal-middleware/core': 0.2.14 - '@universal-middleware/hono@0.2.12': + '@universal-middleware/vercel@0.1.2-beta': dependencies: - '@universal-middleware/core': 0.2.13 + '@universal-middleware/core': 0.2.14 + '@universal-middleware/express': 0.2.10 - '@universal-middleware/webroute@0.2.8': + '@universal-middleware/webroute@0.2.9': dependencies: - '@universal-middleware/core': 0.2.13 + '@universal-middleware/core': 0.2.14 '@vercel/nft@0.26.5': dependencies: @@ -4970,16 +4954,16 @@ snapshots: dependencies: mimic-fn: 2.1.0 - oxc-transform@0.31.0: + oxc-transform@0.37.0: optionalDependencies: - '@oxc-transform/binding-darwin-arm64': 0.31.0 - '@oxc-transform/binding-darwin-x64': 0.31.0 - '@oxc-transform/binding-linux-arm64-gnu': 0.31.0 - '@oxc-transform/binding-linux-arm64-musl': 0.31.0 - '@oxc-transform/binding-linux-x64-gnu': 0.31.0 - '@oxc-transform/binding-linux-x64-musl': 0.31.0 - '@oxc-transform/binding-win32-arm64-msvc': 0.31.0 - '@oxc-transform/binding-win32-x64-msvc': 0.31.0 + '@oxc-transform/binding-darwin-arm64': 0.37.0 + '@oxc-transform/binding-darwin-x64': 0.37.0 + '@oxc-transform/binding-linux-arm64-gnu': 0.37.0 + '@oxc-transform/binding-linux-arm64-musl': 0.37.0 + '@oxc-transform/binding-linux-x64-gnu': 0.37.0 + '@oxc-transform/binding-linux-x64-musl': 0.37.0 + '@oxc-transform/binding-win32-arm64-msvc': 0.37.0 + '@oxc-transform/binding-win32-x64-msvc': 0.37.0 p-limit@4.0.0: dependencies: @@ -5624,16 +5608,19 @@ snapshots: node-fetch-native: 1.6.4 pathe: 1.1.2 - universal-middleware@0.3.9(esbuild@0.24.0)(rollup@4.27.4)(vite@5.4.11(@types/node@20.17.7)): - dependencies: - '@universal-middleware/cloudflare': 0.2.6 - '@universal-middleware/core': 0.2.13 - '@universal-middleware/express': 0.2.9 - '@universal-middleware/fastify': 0.3.6 - '@universal-middleware/hattip': 0.2.10 - '@universal-middleware/hono': 0.2.12 - '@universal-middleware/webroute': 0.2.8 - oxc-transform: 0.31.0 + universal-middleware@0.4.0(esbuild@0.24.0)(rollup@4.27.4)(vite@5.4.11(@types/node@20.17.7)): + dependencies: + '@universal-middleware/cloudflare': 0.2.7 + '@universal-middleware/core': 0.2.14 + '@universal-middleware/elysia': 0.2.3 + '@universal-middleware/express': 0.2.10 + '@universal-middleware/fastify': 0.3.7 + '@universal-middleware/h3': 0.2.9 + '@universal-middleware/hattip': 0.2.11 + '@universal-middleware/hono': 0.2.13 + '@universal-middleware/vercel': 0.1.2-beta + '@universal-middleware/webroute': 0.2.9 + oxc-transform: 0.37.0 package-up: 5.0.0 unplugin: 1.16.0 optionalDependencies: From b827a4e083d3c09462b7f955c062219a1bb45aea Mon Sep 17 00:00:00 2001 From: Romuald Brillout Date: Wed, 27 Nov 2024 15:31:10 +0100 Subject: [PATCH 31/36] increase esbuild semver range --- packages/vike-node/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/vike-node/package.json b/packages/vike-node/package.json index 8feeebb..2f23a1d 100644 --- a/packages/vike-node/package.json +++ b/packages/vike-node/package.json @@ -81,7 +81,7 @@ "@universal-middleware/core": "^0.2.13", "@universal-middleware/compress": "^0.2.1", "@vercel/nft": "^0.26.5", - "esbuild": "^0.24.0", + "esbuild": "^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0 || ^0.24.0", "resolve-from": "^5.0.0", "sirv": "^2.0.4", "unenv-nightly": "2.0.0-20241015-162228-03257ee" @@ -108,4 +108,4 @@ ], "repository": "github:vikejs/vike-node", "license": "MIT" -} \ No newline at end of file +} From 91a4b3a39dc192826e212da805a95999990c2bf0 Mon Sep 17 00:00:00 2001 From: Romuald Brillout Date: Wed, 27 Nov 2024 15:34:55 +0100 Subject: [PATCH 32/36] update type --- packages/vike-node/package.json | 2 +- packages/vike-node/src/runtime/types.ts | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/vike-node/package.json b/packages/vike-node/package.json index 2f23a1d..ea24add 100644 --- a/packages/vike-node/package.json +++ b/packages/vike-node/package.json @@ -108,4 +108,4 @@ ], "repository": "github:vikejs/vike-node", "license": "MIT" -} +} \ No newline at end of file diff --git a/packages/vike-node/src/runtime/types.ts b/packages/vike-node/src/runtime/types.ts index 155bb2a..7ae5e4a 100644 --- a/packages/vike-node/src/runtime/types.ts +++ b/packages/vike-node/src/runtime/types.ts @@ -4,7 +4,6 @@ export type HeadersProvided = Record | He export type VikeHttpResponse = Awaited>['httpResponse'] export type NextFunction = (err?: unknown) => void export type VikeOptions = { - pageContext?: Record compress?: boolean | 'static' static?: boolean | string | { root?: string; cache?: boolean } onError?: (err: unknown) => void From c78e23ba29c275b1215e5754de976c10a1ad40e4 Mon Sep 17 00:00:00 2001 From: Romuald Brillout Date: Wed, 27 Nov 2024 15:47:03 +0100 Subject: [PATCH 33/36] Revert "update type" This reverts commit 4c3129524967268ae21e475d4a89b1c17dd025fd. --- packages/vike-node/package.json | 2 +- packages/vike-node/src/runtime/types.ts | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/vike-node/package.json b/packages/vike-node/package.json index ea24add..2f23a1d 100644 --- a/packages/vike-node/package.json +++ b/packages/vike-node/package.json @@ -108,4 +108,4 @@ ], "repository": "github:vikejs/vike-node", "license": "MIT" -} \ No newline at end of file +} diff --git a/packages/vike-node/src/runtime/types.ts b/packages/vike-node/src/runtime/types.ts index 7ae5e4a..155bb2a 100644 --- a/packages/vike-node/src/runtime/types.ts +++ b/packages/vike-node/src/runtime/types.ts @@ -4,6 +4,7 @@ export type HeadersProvided = Record | He export type VikeHttpResponse = Awaited>['httpResponse'] export type NextFunction = (err?: unknown) => void export type VikeOptions = { + pageContext?: Record compress?: boolean | 'static' static?: boolean | string | { root?: string; cache?: boolean } onError?: (err: unknown) => void From e1f529863ac2199139baa9b7868a310613c448ee Mon Sep 17 00:00:00 2001 From: Romuald Brillout Date: Wed, 27 Nov 2024 16:05:40 +0100 Subject: [PATCH 34/36] fix error message --- packages/vike-node/src/plugin/plugins/serverEntryPlugin.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/vike-node/src/plugin/plugins/serverEntryPlugin.ts b/packages/vike-node/src/plugin/plugins/serverEntryPlugin.ts index 47156a5..40fa161 100644 --- a/packages/vike-node/src/plugin/plugins/serverEntryPlugin.ts +++ b/packages/vike-node/src/plugin/plugins/serverEntryPlugin.ts @@ -36,9 +36,7 @@ export function serverEntryPlugin(): Plugin { assert((err as Record).code === 'MODULE_NOT_FOUND') assertUsage( false, - `No file found at ${entryFilePath}. Does the value ${pc.cyan(`'${entryFilePath}'`)} of ${pc.cyan( - `server.entry.${name}.path` - )} point to an existing file?` + `No file found at ${entryFilePath}. Make sure ${pc.cyan(`server.entry.${name}`)} points to an existing file.` ) } } From 712809fe987afc6a8ab1e33d418b67d659f65c9d Mon Sep 17 00:00:00 2001 From: Romuald Brillout Date: Wed, 27 Nov 2024 15:09:54 +0100 Subject: [PATCH 35/36] docs: polish --- packages/vike-node/README.md | 45 +++++++++++++++++------------------- 1 file changed, 21 insertions(+), 24 deletions(-) diff --git a/packages/vike-node/README.md b/packages/vike-node/README.md index 3ba34a2..eac6ebd 100644 --- a/packages/vike-node/README.md +++ b/packages/vike-node/README.md @@ -16,15 +16,14 @@ In development, the server process is restarted when a change is detected in som [External packages](#external-packages) [Compression](#compression) [Custom pageContext](#custom-pagecontext) -[Framework examples](#framework-examples) -[Migration guide](#migration-guide) +[Add to existing app](#add-to-existing-app)
## Installation 1. `npm install vike-node express` -2. Extend `vite.config.js`: +1. Extend `vite.config.js`: ```js // vite.config.js @@ -36,8 +35,7 @@ In development, the server process is restarted when a change is detected in som plugins: [vikeNode('server/index.js')] } ``` - -3. Create `server/index.js`: +1. Create `server/index.js`: ```js // server/index.js @@ -54,8 +52,9 @@ In development, the server process is restarted when a change is detected in som app.listen(port, () => console.log(`Server running at http://localhost:${port}`)) } ``` + > If you already have a server, see [Add to existing app](#add-to-existing-app). -## Standalone build: +## Standalone build You can enable standalone builds by setting `standalone` to `true`.
@@ -81,7 +80,7 @@ export default { } ``` -## External packages: +## External packages Packages that import native binaries/custom assets need to be added to `external`.
When building with `standalone` enabled, `external` packages and their assets are copied to the output `dist` directory.
@@ -108,12 +107,11 @@ export default { } ``` -## Compression: +## Compression -In production, `vike-node` compresses all Vike responses +In production, `vike-node` compresses all Vike responses. -On a request, `vike-node` compresses any asset with a fast compression level, and sends it in the response.
-You can disable compression: +You can disable it: ```js app.use( @@ -123,15 +121,14 @@ app.use( ) ``` -## Custom [pageContext](https://vike.dev/pageContext): +## Custom [pageContext](https://vike.dev/pageContext) -`vike-node` leverages [universal-middleware](https://universal-middleware.dev/) internally, -and merges the universal context with `pageContext`. +`vike-node` uses [universal-middleware](https://universal-middleware.dev/) and automatically adds the universal context to `pageContext`. If you need custom properties to be available in `pageContext`, -[create a universal context middleware](https://universal-middleware.dev/recipes/context-middleware#updating-the-context) and attach it to your server. +you can [create a universal context middleware](https://universal-middleware.dev/recipes/context-middleware#updating-the-context) and attach it to your server. -## Framework examples: +## Framework examples `vike-node` includes middlewares for the most popular web frameworks: @@ -141,9 +138,9 @@ If you need custom properties to be available in `pageContext`, - H3 - Elysia (Bun) -[See complete list of supported servers](https://universal-middleware.dev/reference/supported-adapters) +[See complete list of supported servers](https://universal-middleware.dev/reference/supported-adapters). -#### Express: +#### Express ```js // server/index.js @@ -161,7 +158,7 @@ function startServer() { } ``` -#### Fastify: +#### Fastify ```js // server/index.js @@ -179,7 +176,7 @@ function startServer() { } ``` -#### Hono: +#### Hono ```js // server/index.js @@ -204,7 +201,7 @@ function startServer() { } ``` -#### H3: +#### H3 ```js // server/index.js @@ -226,7 +223,7 @@ async function startServer() { } ``` -#### Elysia (Bun): +#### Elysia (Bun) ```js // server/index.js @@ -244,9 +241,9 @@ function startServer() { } ``` -## Migration guide: +## Add to existing app -### Codebase without `vike-node` +To add `vike-node` to an existing Vike app: ```diff // server/index.js From 2a4be82563c8cef9536c37bc12ccca44107a2935 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=ABl=20Charles?= Date: Thu, 28 Nov 2024 16:00:03 +0100 Subject: [PATCH 36/36] feat: /connect import replaced by /express BREAKING CHANGE: `vike-node/connect` replaced by `vike-node/express`