diff --git a/.changeset/esm-only-packages.md b/.changeset/esm-only-packages.md new file mode 100644 index 0000000000..4ff25fc337 --- /dev/null +++ b/.changeset/esm-only-packages.md @@ -0,0 +1,15 @@ +--- +"@react-router/architect": major +"@react-router/cloudflare": major +"@react-router/dev": major +"@react-router/express": major +"@react-router/fs-routes": major +"@react-router/node": major +"@react-router/remix-routes-option-adapter": major +"@react-router/serve": major +"create-react-router": major +"react-router": major +"react-router-dom": major +--- + +Switch the published packages in `packages/` to ESM-only. diff --git a/.changeset/fix-form-onsubmit-type.md b/.changeset/fix-form-onsubmit-type.md new file mode 100644 index 0000000000..e6d0fc103c --- /dev/null +++ b/.changeset/fix-form-onsubmit-type.md @@ -0,0 +1,5 @@ +--- +"react-router": patch +--- + +Remove explicit `onSubmit` type override from `SharedFormProps` to fix deprecation warning with `@types/react@19.x` diff --git a/.github/workflows/close-no-repro-issues.yml b/.github/workflows/close-no-repro-issues.yml index 98337a2d38..3a1464b666 100644 --- a/.github/workflows/close-no-repro-issues.yml +++ b/.github/workflows/close-no-repro-issues.yml @@ -33,8 +33,7 @@ jobs: - name: ⎔ Setup node uses: actions/setup-node@v6 with: - # required for --experimental-strip-types - node-version: 22 + node-version-file: ".nvmrc" cache: "pnpm" - name: 📥 Install deps diff --git a/.github/workflows/integration-full.yml b/.github/workflows/integration-full.yml index 91633ebe83..ae5673839a 100644 --- a/.github/workflows/integration-full.yml +++ b/.github/workflows/integration-full.yml @@ -31,7 +31,7 @@ jobs: uses: ./.github/workflows/shared-integration.yml with: os: "ubuntu-latest" - node_version: "[20.19, 22]" + node_version: "[22.12, 24]" browser: '["chromium", "firefox"]' integration-windows: @@ -40,7 +40,7 @@ jobs: uses: ./.github/workflows/shared-integration.yml with: os: "windows-latest" - node_version: "[22]" + node_version: "[24]" browser: '["msedge"]' timeout: 90 @@ -50,5 +50,5 @@ jobs: uses: ./.github/workflows/shared-integration.yml with: os: "macos-latest" - node_version: "[20.19, 22]" + node_version: "[22.12, 24]" browser: '["webkit"]' diff --git a/.github/workflows/integration-pr-ubuntu.yml b/.github/workflows/integration-pr-ubuntu.yml index 98724ba356..b13f78d1ac 100644 --- a/.github/workflows/integration-pr-ubuntu.yml +++ b/.github/workflows/integration-pr-ubuntu.yml @@ -31,5 +31,5 @@ jobs: uses: ./.github/workflows/shared-integration.yml with: os: "ubuntu-latest" - node_version: "[22]" + node_version: "[24]" browser: '["chromium"]' diff --git a/.github/workflows/integration-pr-windows-macos.yml b/.github/workflows/integration-pr-windows-macos.yml index 9f2a67d441..45411c399b 100644 --- a/.github/workflows/integration-pr-windows-macos.yml +++ b/.github/workflows/integration-pr-windows-macos.yml @@ -1,7 +1,7 @@ name: PR (Full) # PRs touching @react-router/dev will also run on Ubuntu/Firefox, Windows/Edge and -# OSX/WebKit as well as an Ubuntu/Chromium run on Node 20.19. +# OSX/WebKit as well as an Ubuntu/Chromium run on Node 22.12. on: pull_request: @@ -22,7 +22,7 @@ jobs: uses: ./.github/workflows/shared-integration.yml with: os: "ubuntu-latest" - node_version: "[20.19]" + node_version: "[22.12]" browser: '["chromium"]' integration-firefox: @@ -31,7 +31,7 @@ jobs: uses: ./.github/workflows/shared-integration.yml with: os: "ubuntu-latest" - node_version: "[22]" + node_version: "[24]" browser: '["firefox"]' integration-msedge: @@ -40,7 +40,7 @@ jobs: uses: ./.github/workflows/shared-integration.yml with: os: "windows-latest" - node_version: "[22]" + node_version: "[24]" browser: '["msedge"]' timeout: 90 @@ -50,5 +50,5 @@ jobs: uses: ./.github/workflows/shared-integration.yml with: os: "macos-latest" - node_version: "[22]" + node_version: "[24]" browser: '["webkit"]' diff --git a/.github/workflows/preview.yml b/.github/workflows/preview.yml index c78af646d0..ea2a934a9d 100644 --- a/.github/workflows/preview.yml +++ b/.github/workflows/preview.yml @@ -61,7 +61,7 @@ jobs: - name: Install Node.js uses: actions/setup-node@v6 with: - node-version-file: "package.json" + node-version-file: ".nvmrc" cache: pnpm - name: Install dependencies diff --git a/.github/workflows/release-comments.yml b/.github/workflows/release-comments.yml index 273e80ab52..b48f731c29 100644 --- a/.github/workflows/release-comments.yml +++ b/.github/workflows/release-comments.yml @@ -26,7 +26,7 @@ jobs: - name: ⎔ Setup node uses: actions/setup-node@v6 with: - node-version: 24 # Needed for node TS support + node-version-file: ".nvmrc" cache: "pnpm" - name: 📥 Install deps diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 61419cf109..0746df37d8 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -70,7 +70,7 @@ jobs: - name: Install Node.js uses: actions/setup-node@v6 with: - node-version: 24 # Needed to run typescript scripts directly + node-version-file: ".nvmrc" package-manager-cache: false - name: Install dependencies @@ -99,7 +99,7 @@ jobs: - name: ⎔ Setup node uses: actions/setup-node@v6 with: - node-version: 24 # Needed for npm@11 for Trusted Publishing + node-version-file: ".nvmrc" package-manager-cache: false - name: 📥 Install deps @@ -132,7 +132,7 @@ jobs: - name: ⎔ Setup node uses: actions/setup-node@v6 with: - node-version: 24 # Needed for node TS support + node-version-file: ".nvmrc" package-manager-cache: false - name: 📥 Install deps @@ -165,7 +165,7 @@ jobs: - name: ⎔ Setup node uses: actions/setup-node@v6 with: - node-version: 24 # Needed for npm@11 for Trusted Publishing + node-version-file: ".nvmrc" package-manager-cache: false - name: 📥 Install deps diff --git a/.github/workflows/shared-integration.yml b/.github/workflows/shared-integration.yml index 34fade4888..623f891f6c 100644 --- a/.github/workflows/shared-integration.yml +++ b/.github/workflows/shared-integration.yml @@ -9,7 +9,7 @@ on: node_version: required: true # this is limited to string | boolean | number (https://github.community/t/can-action-inputs-be-arrays/16457) - # but we want to pass an array (node_version: "[20, 22]"), + # but we want to pass an array (node_version: "[22.12, 24]"), # so we'll need to manually stringify it for now type: string browser: diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 830e6120be..fccfa3fee4 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -26,8 +26,8 @@ jobs: fail-fast: false matrix: node: - - 20.19 - - 22 + - 22.12 + - 24 runs-on: ubuntu-latest diff --git a/.nvmrc b/.nvmrc index 8fdd954df9..cabf43b5dd 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -22 \ No newline at end of file +24 \ No newline at end of file diff --git a/.prettierignore b/.prettierignore index e293384554..da0a3b69bd 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,3 +1,4 @@ +# Prettier ignore patterns. /fixtures/ node_modules/ pnpm-lock.yaml diff --git a/contributors.yml b/contributors.yml index d1fb4af96a..d0c7c8fe31 100644 --- a/contributors.yml +++ b/contributors.yml @@ -360,6 +360,7 @@ - refusado - remorses - renyu-io +- restareaByWeezy - reyronald - RFCreate - richardkall diff --git a/docs/prettier.config.js b/docs/prettier.config.js index 0b8c6ae987..fd55b3692b 100644 --- a/docs/prettier.config.js +++ b/docs/prettier.config.js @@ -1,7 +1,9 @@ /** * @type {import('prettier').Options} */ -module.exports = { - ...require("../prettier.config"), +import config from "../prettier.config.js"; + +export default { + ...config, printWidth: 60, }; diff --git a/integration/catch-boundary-data-test.ts b/integration/catch-boundary-data-test.ts index c930c23cd2..96b82f9228 100644 --- a/integration/catch-boundary-data-test.ts +++ b/integration/catch-boundary-data-test.ts @@ -61,7 +61,7 @@ test.describe("ErrorBoundary (thrown responses)", () => { export const loader = () => "${ROOT_DATA}"; export default function Root() { - const data = useLoaderData(); + const loaderData = useLoaderData(); return ( @@ -70,7 +70,7 @@ test.describe("ErrorBoundary (thrown responses)", () => { -
{data}
+
{loaderData}
@@ -80,14 +80,14 @@ test.describe("ErrorBoundary (thrown responses)", () => { export function ErrorBoundary() { let matches = useMatches(); - let { data } = matches.find(match => match.id === "root"); + let { loaderData } = matches.find(match => match.id === "root"); return (
${ROOT_BOUNDARY_TEXT}
-
{data}
+
{loaderData}
@@ -127,12 +127,12 @@ test.describe("ErrorBoundary (thrown responses)", () => { } export function ErrorBoundary() { let matches = useMatches(); - let { data } = matches.find(match => match.id === "routes${HAS_BOUNDARY_LAYOUT_NESTED_LOADER_FILE}"); + let { loaderData } = matches.find(match => match.id === "routes${HAS_BOUNDARY_LAYOUT_NESTED_LOADER_FILE}"); return (
${LAYOUT_BOUNDARY_TEXT}
-
{data}
+
{loaderData}
); } @@ -153,10 +153,10 @@ test.describe("ErrorBoundary (thrown responses)", () => { return "${LAYOUT_DATA}"; } export default function Layout() { - let data = useLoaderData(); + let loaderData = useLoaderData(); return (
-
{data}
+
{loaderData}
); diff --git a/integration/catch-boundary-test.ts b/integration/catch-boundary-test.ts index 52b84abf69..c4f2a8fe22 100644 --- a/integration/catch-boundary-test.ts +++ b/integration/catch-boundary-test.ts @@ -259,7 +259,6 @@ test.describe("ErrorBoundary (thrown responses)", () => { id: "root", pathname: "", params: {}, - data: { data: "ROOT LOADER" }, loaderData: { data: "ROOT LOADER" }, }, ]); diff --git a/integration/helpers/cloudflare-dev-proxy-template/package.json b/integration/helpers/cloudflare-dev-proxy-template/package.json index a4d86f16a1..c15d51946f 100644 --- a/integration/helpers/cloudflare-dev-proxy-template/package.json +++ b/integration/helpers/cloudflare-dev-proxy-template/package.json @@ -30,6 +30,6 @@ "wrangler": "^4.23.0" }, "engines": { - "node": ">=20.0.0" + "node": ">=22.12.0" } } diff --git a/integration/helpers/express.ts b/integration/helpers/express.ts index b50523ea3b..9d1bf854a6 100644 --- a/integration/helpers/express.ts +++ b/integration/helpers/express.ts @@ -44,7 +44,7 @@ export function server() { export function rsc() { return tsx` - import { createRequestListener } from "@mjackson/node-fetch-server"; + import { createRequestListener } from "@remix-run/node-fetch-server"; import express from "express"; const port = process.env.PORT ?? 3000 diff --git a/integration/helpers/rsc-vite-framework/package.json b/integration/helpers/rsc-vite-framework/package.json index 5e7de66bcd..f2a499dc91 100644 --- a/integration/helpers/rsc-vite-framework/package.json +++ b/integration/helpers/rsc-vite-framework/package.json @@ -28,7 +28,7 @@ "vite-env-only": "^3.0.1" }, "dependencies": { - "@mjackson/node-fetch-server": "0.6.1", + "@remix-run/node-fetch-server": "^0.13.0", "@react-router/serve": "workspace:*", "compression": "^1.8.1", "express": "^4.21.2", diff --git a/integration/helpers/rsc-vite-framework/start.js b/integration/helpers/rsc-vite-framework/start.js index 45fec2a637..d82d61e0b9 100644 --- a/integration/helpers/rsc-vite-framework/start.js +++ b/integration/helpers/rsc-vite-framework/start.js @@ -1,4 +1,4 @@ -import { createRequestListener } from "@mjackson/node-fetch-server"; +import { createRequestListener } from "@remix-run/node-fetch-server"; import express from "express"; import build from "./build/server/index.js"; diff --git a/integration/helpers/rsc-vite/package.json b/integration/helpers/rsc-vite/package.json index 2531e82cd8..92cb22c4b4 100644 --- a/integration/helpers/rsc-vite/package.json +++ b/integration/helpers/rsc-vite/package.json @@ -20,7 +20,7 @@ "vite": "^6.3.0" }, "dependencies": { - "@mjackson/node-fetch-server": "0.6.1", + "@remix-run/node-fetch-server": "^0.13.0", "compression": "^1.8.1", "cross-env": "^7.0.3", "express": "^4.21.2", diff --git a/integration/helpers/rsc-vite/server.js b/integration/helpers/rsc-vite/server.js index 6fbff3d78a..78cc5b087b 100644 --- a/integration/helpers/rsc-vite/server.js +++ b/integration/helpers/rsc-vite/server.js @@ -1,5 +1,5 @@ import { parseArgs } from "node:util"; -import { createRequestListener } from "@mjackson/node-fetch-server"; +import { createRequestListener } from "@remix-run/node-fetch-server"; import express from "express"; import rscRequestHandler from "./dist/rsc/index.js"; diff --git a/integration/helpers/vite-5-template/package.json b/integration/helpers/vite-5-template/package.json index 967f896cdb..9af256ca4b 100644 --- a/integration/helpers/vite-5-template/package.json +++ b/integration/helpers/vite-5-template/package.json @@ -36,6 +36,6 @@ "vite-tsconfig-paths": "^4.2.1" }, "engines": { - "node": ">=20.0.0" + "node": ">=22.12.0" } } diff --git a/integration/helpers/vite-6-template/package.json b/integration/helpers/vite-6-template/package.json index 542fb20df4..d001249700 100644 --- a/integration/helpers/vite-6-template/package.json +++ b/integration/helpers/vite-6-template/package.json @@ -36,6 +36,6 @@ "vite-tsconfig-paths": "^4.2.1" }, "engines": { - "node": ">=20.0.0" + "node": ">=22.12.0" } } diff --git a/integration/helpers/vite-7-beta-template/package.json b/integration/helpers/vite-7-beta-template/package.json index 904d0ec8e5..ef434bb132 100644 --- a/integration/helpers/vite-7-beta-template/package.json +++ b/integration/helpers/vite-7-beta-template/package.json @@ -36,6 +36,6 @@ "vite-tsconfig-paths": "^4.2.1" }, "engines": { - "node": ">=20.0.0" + "node": ">=22.12.0" } } diff --git a/integration/helpers/vite-8-template/package.json b/integration/helpers/vite-8-template/package.json index 30dd9ef27d..e6146d9e6a 100644 --- a/integration/helpers/vite-8-template/package.json +++ b/integration/helpers/vite-8-template/package.json @@ -35,6 +35,6 @@ "vite-env-only": "^3.0.1" }, "engines": { - "node": ">=20.19.0" + "node": ">=22.12.0" } } diff --git a/integration/helpers/vite-plugin-cloudflare-template/package.json b/integration/helpers/vite-plugin-cloudflare-template/package.json index e7c1bcaf4a..7e40458a58 100644 --- a/integration/helpers/vite-plugin-cloudflare-template/package.json +++ b/integration/helpers/vite-plugin-cloudflare-template/package.json @@ -32,6 +32,6 @@ "wrangler": "^4.23.0" }, "engines": { - "node": ">=20.0.0" + "node": ">=22.12.0" } } diff --git a/integration/helpers/vite.ts b/integration/helpers/vite.ts index b342ada5dc..905a2f38cb 100644 --- a/integration/helpers/vite.ts +++ b/integration/helpers/vite.ts @@ -16,7 +16,7 @@ import type { Page } from "@playwright/test"; import { test as base, expect } from "@playwright/test"; import type { Config } from "@react-router/dev/config"; -const require = createRequire(import.meta.url); +const nodeRequire = createRequire(import.meta.url); const reactRouterBin = "node_modules/@react-router/dev/bin.js"; const __dirname = url.fileURLToPath(new URL(".", import.meta.url)); @@ -155,7 +155,7 @@ export const EXPRESS_SERVER = (args: { }) => { if (args.templateName?.includes("rsc")) { return String.raw` - import { createRequestListener } from "@mjackson/node-fetch-server"; + import { createRequestListener } from "@remix-run/node-fetch-server"; import express from "express"; const viteDevServer = @@ -354,7 +354,7 @@ export const wranglerPagesDev = async ({ port: number; }) => { let nodeBin = process.argv[0]; - let wranglerBin = require.resolve("wrangler/bin/wrangler.js", { + let wranglerBin = nodeRequire.resolve("wrangler/bin/wrangler.js", { paths: [cwd], }); diff --git a/integration/matches-test.ts b/integration/matches-test.ts index 926fb9bc02..3be3077ebc 100644 --- a/integration/matches-test.ts +++ b/integration/matches-test.ts @@ -108,7 +108,6 @@ test.describe("useMatches", () => { "id": "root", "pathname": "/", "params": {}, - "data": "ROOT", "loaderData": "ROOT", "handle": { "stuff": "root handle" @@ -118,7 +117,6 @@ test.describe("useMatches", () => { "id": "routes/_index", "pathname": "/", "params": {}, - "data": "INDEX", "loaderData": "INDEX", "handle": { "stuff": "index handle" @@ -136,7 +134,6 @@ test.describe("useMatches", () => { "id": "root", "pathname": "/", "params": {}, - "data": "ROOT", "loaderData": "ROOT", "handle": { "stuff": "root handle" @@ -146,7 +143,6 @@ test.describe("useMatches", () => { "id": "routes/_index", "pathname": "/", "params": {}, - "data": "INDEX", "loaderData": "INDEX", "handle": { "stuff": "index handle" @@ -167,7 +163,6 @@ test.describe("useMatches", () => { "id": "root", "pathname": "/", "params": {}, - "data": "ROOT", "loaderData": "ROOT", "handle": { "stuff": "root handle" @@ -177,7 +172,6 @@ test.describe("useMatches", () => { "id": "routes/about", "pathname": "/about", "params": {}, - "data": "ABOUT", "loaderData": "ABOUT", "handle": { "stuff": "about handle" diff --git a/integration/single-fetch-test.ts b/integration/single-fetch-test.ts index 614ab84272..afa8d4095f 100644 --- a/integration/single-fetch-test.ts +++ b/integration/single-fetch-test.ts @@ -454,20 +454,19 @@ test.describe("single-fetch", () => { expect(await app.getHtml("#data")).toContain("1"); expect(urls).toEqual([]); - await page.click('button[name="revalidate"][value="yes"]'); - await page.waitForSelector("#action-data"); - await page.waitForSelector("#idle"); - expect(await app.getHtml("#data")).toContain("2"); - expect(urls).toEqual([expect.stringMatching(/\/no-revalidate\.data$/)]); - await page.click('button[name="revalidate"][value="no"]'); await page.waitForSelector("#action-data"); await page.waitForSelector("#idle"); - expect(await app.getHtml("#data")).toContain("2"); + expect(await app.getHtml("#data")).toContain("1"); expect(urls).toEqual([ - expect.stringMatching(/\/no-revalidate\.data$/), expect.stringMatching(/\/no-revalidate\.data\?_routes=root$/), ]); + urls.splice(0, urls.length); + + await page.click('button[name="revalidate"][value="yes"]'); + await page.waitForSelector("#data:has-text('2')"); + expect(await app.getHtml("#data")).toContain("2"); + expect(urls).toEqual([expect.stringMatching(/\/no-revalidate\.data$/)]); }); test("revalidates on reused routes by default", async ({ page }) => { @@ -1091,7 +1090,7 @@ test.describe("single-fetch", () => { Page (opt-out)
-                    {JSON.stringify(useMatches().map(m => [m.id, m.data]))}
+                    {JSON.stringify(useMatches().map(m => [m.id, m.loaderData]))}
                   
diff --git a/integration/typegen-test.ts b/integration/typegen-test.ts index d50b27bf05..2ed1356d35 100644 --- a/integration/typegen-test.ts +++ b/integration/typegen-test.ts @@ -390,36 +390,36 @@ test.describe("typegen", () => { export function meta({ matches }: Route.MetaArgs) { const parent1 = matches[1] - type Test1 = Expect> + type Test1 = Expect> const parent2 = matches[2] - type Test2 = Expect> + type Test2 = Expect> const current = matches[3] - type Test3 = Expect> + type Test3 = Expect> const child1 = matches[4] type Test4a = Expect if (child1) { - type Test4b = Expect> + type Test4b = Expect> } return [] } export default function Component({ matches }: Route.ComponentProps) { const parent1 = matches[1] - type Test1 = Expect> + type Test1 = Expect> const parent2 = matches[2] - type Test2 = Expect> + type Test2 = Expect> const current = matches[3] - type Test3 = Expect> + type Test3 = Expect> const child1 = matches[4] type Test4a = Expect if (child1) { - type Test4b = Expect> + type Test4b = Expect> } } `, diff --git a/integration/vite-basename-test.ts b/integration/vite-basename-test.ts index da77e4e36d..722d59a432 100644 --- a/integration/vite-basename-test.ts +++ b/integration/vite-basename-test.ts @@ -101,7 +101,7 @@ const customServerFile = ({ if (templateName.includes("rsc")) { return js` - import { createRequestListener } from "@mjackson/node-fetch-server"; + import { createRequestListener } from "@remix-run/node-fetch-server"; import express from "express"; const viteDevServer = @@ -540,7 +540,7 @@ test.describe("Vite base + React Router basename", () => { // Slim server that only serves basename (route) requests from the React Router handler "server.mjs": templateName.includes("rsc") ? String.raw` - import { createRequestListener } from "@mjackson/node-fetch-server"; + import { createRequestListener } from "@remix-run/node-fetch-server"; import express from "express"; const app = express(); diff --git a/integration/vite-dev-test.ts b/integration/vite-dev-test.ts index de9d1c7fe2..ddb4dabe1e 100644 --- a/integration/vite-dev-test.ts +++ b/integration/vite-dev-test.ts @@ -336,13 +336,6 @@ test.describe("Vite dev", () => { }); test("handles multiple set-cookie headers", async ({ dev, page }) => { - // TODO(v8): Remove this skip if we no longer support Node 20 - test.skip( - templateName.includes("rsc") && - parseInt(process.versions.node.split(".")[0], 10) === 20, - "vite-plugin-rsc dev cookie handling differs on Node 20.", - ); - const { port } = await dev(files, templateName); await page.goto(`http://localhost:${port}/set-cookies`, { diff --git a/integration/vite-prerender-test.ts b/integration/vite-prerender-test.ts index 5efe5f1a33..d0dbb3325e 100644 --- a/integration/vite-prerender-test.ts +++ b/integration/vite-prerender-test.ts @@ -47,7 +47,7 @@ for (let previewServerPrerendering of [false, true]) { import * as React from "react"; import { Link, Links, Meta, Outlet, Scripts, useRouteError } from "react-router"; - export function meta({ data }) { + export function meta() { return [{ title: "Root Title" }]; @@ -98,9 +98,9 @@ for (let previewServerPrerendering of [false, true]) { import * as React from "react"; import { useLoaderData } from "react-router"; - export function meta({ data }) { + export function meta({ loaderData }) { return [{ - title: "Index Title: " + data + title: "Index Title: " + loaderData }]; } @@ -122,9 +122,9 @@ for (let previewServerPrerendering of [false, true]) { "app/routes/about.tsx": js` import { useActionData, useLoaderData } from "react-router"; - export function meta({ data }) { + export function meta({ loaderData }) { return [{ - title: "About Title: " + data + title: "About Title: " + loaderData }]; } diff --git a/integration/vite-spa-mode-test.ts b/integration/vite-spa-mode-test.ts index 74b4a3c8cf..9f82de109a 100644 --- a/integration/vite-spa-mode-test.ts +++ b/integration/vite-spa-mode-test.ts @@ -638,7 +638,9 @@ test.describe("SPA Mode", () => { - {children} +
+ {children} +
@@ -666,7 +668,7 @@ test.describe("SPA Mode", () => { expect(html.match(/'); }); test("does not inherit single fetch revalidation behavior", async ({ @@ -830,7 +832,7 @@ test.describe("SPA Mode", () => { import * as React from "react"; import { Form, Link, Links, Meta, Outlet, Scripts, useLoaderData } from "react-router"; - export function meta({ data }) { + export function meta() { return [{ title: "Root Title" }]; @@ -913,9 +915,9 @@ test.describe("SPA Mode", () => { import * as React from "react"; import { useLoaderData } from "react-router"; - export function meta({ data }) { + export function meta({ loaderData }) { return [{ - title: "Index Title: " + data + title: "Index Title: " + loaderData }]; } @@ -950,9 +952,9 @@ test.describe("SPA Mode", () => { "app/routes/about.tsx": js` import { useActionData, useLoaderData } from "react-router"; - export function meta({ data }) { + export function meta({ loaderData }) { return [{ - title: "About Title: " + data + title: "About Title: " + loaderData }]; } diff --git a/jest/jest.config.shared.js b/jest/jest.config.shared.js index 3f40e02cbf..104592ad09 100644 --- a/jest/jest.config.shared.js +++ b/jest/jest.config.shared.js @@ -1,3 +1,5 @@ +import { fileURLToPath } from "node:url"; + const ignorePatterns = [ "\\/build\\/", "\\/coverage\\/", @@ -7,21 +9,20 @@ const ignorePatterns = [ ]; /** @type {import('jest').Config} */ -module.exports = { +export default { moduleNameMapper: { "@react-router/dev$": "/../react-router-dev/index.ts", "@react-router/express$": "/../react-router-express/index.ts", "@react-router/node$": "/../react-router-node/index.ts", "@react-router/serve$": "/../react-router-serve/index.ts", "^react-router$": "/../react-router/index.ts", - "^@web3-storage/multipart-parser$": require.resolve( - "@web3-storage/multipart-parser", - ), }, modulePathIgnorePatterns: ignorePatterns, + extensionsToTreatAsEsm: [".ts", ".tsx"], + setupFiles: [fileURLToPath(new URL("./setup-globals.js", import.meta.url))], testMatch: ["/**/*-test.[jt]s?(x)"], transform: { - "\\.[jt]sx?$": require.resolve("./transform"), + "\\.[jt]sx?$": fileURLToPath(new URL("./transform.js", import.meta.url)), }, watchPathIgnorePatterns: [...ignorePatterns, "\\/node_modules\\/"], globals: { diff --git a/jest/setup-globals.js b/jest/setup-globals.js new file mode 100644 index 0000000000..b41f2e6d3d --- /dev/null +++ b/jest/setup-globals.js @@ -0,0 +1,3 @@ +import { jest } from "@jest/globals"; + +globalThis.jest = jest; diff --git a/jest/transform.js b/jest/transform.js index c44d0a31cb..d200f8d689 100644 --- a/jest/transform.js +++ b/jest/transform.js @@ -1,25 +1,12 @@ -let { default: babelJest } = require("babel-jest"); +import babelJest from "babel-jest"; -/** - * Replace `import.meta` with `undefined` - * - * Needed to support server-side CJS in Jest - * when `import.meta.hot` is used for HMR. - */ -let metaPlugin = ({ types: t }) => ({ - visitor: { - MetaProperty: (path) => { - path.replaceWith(t.identifier("undefined")); - }, - }, -}); - -module.exports = babelJest.createTransformer({ +export default babelJest.createTransformer({ babelrc: false, + configFile: false, presets: [ - ["@babel/preset-env", { loose: true }], + ["@babel/preset-env", { targets: { node: "current" }, modules: false }], "@babel/preset-react", "@babel/preset-typescript", ], - plugins: ["babel-plugin-dev-expression", metaPlugin], + plugins: ["babel-plugin-dev-expression"], }); diff --git a/package.json b/package.json index 8afbd78863..4f5a7eaf95 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,7 @@ { "name": "@remix-run/react-router", "private": true, + "type": "module", "scripts": { "build": "pnpm run --filter=\"./packages/**/*\" build", "watch": "pnpm build && pnpm run --filter=\"./packages/**/*\" --parallel build --watch", @@ -25,8 +26,8 @@ "pr-preview": "node ./scripts/pr-preview.ts", "release-comments": "node scripts/release-comments.ts", "setup-installable-branch": "node scripts/setup-installable-branch.ts", - "test": "jest", - "test:inspect": "node --inspect-brk ./node_modules/.bin/jest", + "test": "node --experimental-vm-modules ./node_modules/jest/bin/jest.js", + "test:inspect": "node --experimental-vm-modules --inspect-brk ./node_modules/jest/bin/jest.js", "typegen": "pnpm run --recursive --parallel typegen", "typecheck": "pnpm run --recursive --parallel typecheck", "test:integration:run": "pnpm playwright:integration", @@ -49,8 +50,7 @@ "resolutions": { "@types/react": "catalog:", "@types/react-dom": "catalog:", - "@types/react-test-renderer": "^18.3.1", - "jsdom": "22.1.0" + "@types/react-test-renderer": "^18.3.1" }, "dependencies": { "@babel/core": "^7.27.7", @@ -61,14 +61,15 @@ "@manypkg/get-packages": "^1.1.3", "@mdx-js/rollup": "^3.1.0", "@playwright/test": "^1.58.2", - "@types/jest": "^29.5.4", + "@remix-run/changelog-github": "^0.0.5", + "@types/jest": "^30.0.0", "@types/jsdom": "^21.1.1", "@types/react": "catalog:", "@types/react-dom": "catalog:", "@types/react-test-renderer": "^19.0.0", "@typescript-eslint/eslint-plugin": "^8.57.1", "@typescript-eslint/parser": "^8.57.1", - "babel-jest": "^29.7.0", + "babel-jest": "^30.3.0", "babel-plugin-dev-expression": "^0.2.3", "dox": "^1.0.0", "eslint": "^10.0.3", @@ -82,7 +83,9 @@ "eslint-plugin-react-hooks": "next", "fast-glob": "3.2.11", "isbot": "^5.1.11", - "jest": "^29.6.4", + "jest": "^30.3.0", + "jest-environment-jsdom": "^29.6.2", + "jsdom": "^29.0.0", "jsonfile": "^6.1.0", "picocolors": "^1.1.1", "prettier": "^3.6.2", @@ -99,7 +102,7 @@ "vitest": "^4.1.0" }, "engines": { - "node": ">=20.0.0" + "node": ">=22.12.0" }, "pnpm": { "patchedDependencies": { diff --git a/packages/create-react-router/.changes/major.switch-remixrunwebfetch-native-fetch.md b/packages/create-react-router/.changes/major.switch-remixrunwebfetch-native-fetch.md new file mode 100644 index 0000000000..4c3b7f8de4 --- /dev/null +++ b/packages/create-react-router/.changes/major.switch-remixrunwebfetch-native-fetch.md @@ -0,0 +1,3 @@ +Switch from `@remix-run/web-fetch` to native `fetch` internally. + +- This removes the underlying `HTTPS_PROXY` support that `node-fetch` and subsequently `@remix-run/web-fetch` supported diff --git a/packages/create-react-router/__tests__/create-react-router-test.ts b/packages/create-react-router/__tests__/create-react-router-test.ts index 3bb7a31a8e..51baaeaca6 100644 --- a/packages/create-react-router/__tests__/create-react-router-test.ts +++ b/packages/create-react-router/__tests__/create-react-router-test.ts @@ -1,5 +1,5 @@ import type { ChildProcessWithoutNullStreams } from "node:child_process"; -import { spawn } from "node:child_process"; +import { execFileSync, spawn } from "node:child_process"; import { existsSync, mkdirSync, @@ -9,24 +9,39 @@ import { writeFileSync, } from "node:fs"; import { mkdir, rm } from "node:fs/promises"; +import { createRequire } from "node:module"; import { tmpdir } from "node:os"; import path from "node:path"; -import { pathToFileURL } from "node:url"; +import { fileURLToPath, pathToFileURL } from "node:url"; import semver from "semver"; import stripAnsi from "strip-ansi"; import { jestTimeout } from "./setupAfterEnv"; -import { createReactRouter } from "../index"; import { server } from "./msw"; -beforeAll(() => server.listen({ onUnhandledRequest: "error" })); -afterAll(() => server.close()); +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); +const nodeRequire = createRequire(import.meta.url); +const execaModuleId = nodeRequire.resolve("execa"); +const mockedExeca = jest.fn(); +const REPO_ROOT = path.resolve(__dirname, "../../.."); +const BUILT_CLI = path.resolve(__dirname, "../dist/cli.js"); + +(jest as any).unstable_mockModule(execaModuleId, () => ({ + default: mockedExeca, +})); -// this is so we can mock "npm install" etc. in a cross-platform way -jest.mock("execa"); +let createReactRouter: typeof import("../index").createReactRouter; + +beforeAll(async () => { + ({ createReactRouter } = await import("../index")); + server.listen({ onUnhandledRequest: "error" }); +}); +afterAll(() => server.close()); const DOWN = "\x1B\x5B\x42"; const ENTER = "\x0D"; +let builtCliPromise: Promise | undefined; const TEMP_DIR = path.join( realpathSync(tmpdir()), @@ -71,56 +86,56 @@ describe("create-react-router CLI", () => { args: ["--help"], }); expect(stdout.trim()).toMatchInlineSnapshot(` - "create-react-router + "create-react-router - Usage: + Usage: - $ create-react-router <...options> + $ create-react-router <...options> - Values: + Values: - projectDir The React Router project directory + projectDir The React Router project directory - Options: + Options: - --help, -h Print this help message and exit - --version, -V Print the CLI version and exit - --no-color Disable ANSI colors in console output - --no-motion Disable animations in console output + --help, -h Print this help message and exit + --version, -V Print the CLI version and exit + --no-color Disable ANSI colors in console output + --no-motion Disable animations in console output - --template The project template to use - --[no-]install Whether or not to install dependencies after creation - --package-manager The package manager to use - --show-install-output Whether to show the output of the install process - --[no-]git-init Whether or not to initialize a Git repository - --yes, -y Skip all option prompts and run setup - --react-router-version, -v The version of React Router to use + --template The project template to use + --[no-]install Whether or not to install dependencies after creation + --package-manager The package manager to use + --show-install-output Whether to show the output of the install process + --[no-]git-init Whether or not to initialize a Git repository + --yes, -y Skip all option prompts and run setup + --react-router-version, -v The version of React Router to use - Creating a new project: + Creating a new project: - React Router projects are created from templates. A template can be: + React Router projects are created from templates. A template can be: - - a GitHub repo shorthand, :username/:repo or :username/:repo/:directory - - the URL of a GitHub repo (or directory within it) - - the URL of a tarball - - a file path to a directory of files - - a file path to a tarball + - a GitHub repo shorthand, :username/:repo or :username/:repo/:directory + - the URL of a GitHub repo (or directory within it) + - the URL of a tarball + - a file path to a directory of files + - a file path to a tarball - $ create-react-router my-app --template remix-run/react-router/templates/basic - $ create-react-router my-app --template remix-run/react-router/examples/basic - $ create-react-router my-app --template :username/:repo - $ create-react-router my-app --template :username/:repo/:directory - $ create-react-router my-app --template https://github.com/:username/:repo - $ create-react-router my-app --template https://github.com/:username/:repo/tree/:branch - $ create-react-router my-app --template https://github.com/:username/:repo/tree/:branch/:directory - $ create-react-router my-app --template https://github.com/:username/:repo/archive/refs/tags/:tag.tar.gz - $ create-react-router my-app --template https://example.com/template.tar.gz - $ create-react-router my-app --template ./path/to/template - $ create-react-router my-app --template ./path/to/template.tar.gz + $ create-react-router my-app --template remix-run/react-router/templates/basic + $ create-react-router my-app --template remix-run/react-router/examples/basic + $ create-react-router my-app --template :username/:repo + $ create-react-router my-app --template :username/:repo/:directory + $ create-react-router my-app --template https://github.com/:username/:repo + $ create-react-router my-app --template https://github.com/:username/:repo/tree/:branch + $ create-react-router my-app --template https://github.com/:username/:repo/tree/:branch/:directory + $ create-react-router my-app --template https://github.com/:username/:repo/archive/refs/tags/:tag.tar.gz + $ create-react-router my-app --template https://example.com/template.tar.gz + $ create-react-router my-app --template ./path/to/template + $ create-react-router my-app --template ./path/to/template.tar.gz - To create a new project from a template in a private GitHub repo, - pass the \`token\` flag with a personal access token with access - to that repo." + To create a new project from a template in a private GitHub repo, + pass the \`token\` flag with a personal access token with access + to that repo." `); }); @@ -504,7 +519,7 @@ describe("create-react-router CLI", () => { let projectDir = getProjectDir("npm-install-default"); - let execa = require("execa"); + let execa = mockedExeca; execa.mockImplementation(async () => {}); // Suppress terminal output @@ -538,7 +553,7 @@ describe("create-react-router CLI", () => { let projectDir = getProjectDir("npm-install-on-unknown-package-manager"); - let execa = require("execa"); + let execa = mockedExeca; execa.mockImplementation(async () => {}); // Suppress terminal output @@ -572,7 +587,7 @@ describe("create-react-router CLI", () => { let projectDir = getProjectDir("npm-install-from-user-agent"); - let execa = require("execa"); + let execa = mockedExeca; execa.mockImplementation(async () => {}); // Suppress terminal output @@ -605,7 +620,7 @@ describe("create-react-router CLI", () => { let projectDir = getProjectDir("yarn-create-from-user-agent"); - let execa = require("execa"); + let execa = mockedExeca; execa.mockImplementation(async () => {}); // Suppress terminal output @@ -638,7 +653,7 @@ describe("create-react-router CLI", () => { let projectDir = getProjectDir("pnpm-create-from-user-agent"); - let execa = require("execa"); + let execa = mockedExeca; execa.mockImplementation(async () => {}); // Suppress terminal output @@ -671,7 +686,7 @@ describe("create-react-router CLI", () => { let projectDir = getProjectDir("bun-create-from-user-agent"); - let execa = require("execa"); + let execa = mockedExeca; execa.mockImplementation(async () => {}); // Suppress terminal output @@ -704,7 +719,7 @@ describe("create-react-router CLI", () => { let projectDir = getProjectDir("deno-create-from-user-agent"); - let execa = require("execa"); + let execa = mockedExeca; execa.mockImplementation(async () => {}); // Suppress terminal output @@ -737,7 +752,7 @@ describe("create-react-router CLI", () => { let projectDir = getProjectDir("pnpm-create-override"); - let execa = require("execa"); + let execa = mockedExeca; execa.mockImplementation(async () => {}); // Suppress terminal output @@ -1004,12 +1019,12 @@ describe("create-react-router CLI", () => { }); expect(stderr.trim()).toMatchInlineSnapshot(` - "▲ Oh no! Destination directory contains files that would be overwritten - and no \`--overwrite\` flag was included in a non-interactive - environment. The following files would be overwritten: - package.json - tsconfig.json" - `); + "▲ Oh no! Destination directory contains files that would be overwritten + and no \`--overwrite\` flag was included in a non-interactive + environment. The following files would be overwritten: + package.json + tsconfig.json" + `); expect(status).toBe(1); expect(existsSync(path.join(projectDir, "app/root.tsx"))).toBeFalsy(); }); @@ -1144,33 +1159,6 @@ describe("create-react-router CLI", () => { expect(status).toBe(1); }); }); - - describe("supports proxy usage", () => { - beforeAll(() => { - server.close(); - }); - afterAll(() => { - server.listen({ onUnhandledRequest: "error" }); - }); - it("uses the proxy from env var", async () => { - let projectDir = await getProjectDir("template"); - - let { stderr } = await execCreateReactRouter({ - args: [ - projectDir, - "--template", - "remix-run/grunge-stack", - "--no-install", - "--no-git-init", - "--debug", - ], - mockNetwork: false, - env: { HTTPS_PROXY: "http://127.0.0.1:33128" }, - }); - - expect(stderr.trim()).toMatch("127.0.0.1:33"); - }); - }); }); async function execCreateReactRouter({ @@ -1188,15 +1176,19 @@ async function execCreateReactRouter({ mockNetwork?: boolean; cwd?: string; }) { + let cliPath = await ensureBuiltCli(); let proc = spawn( "node", [ - "--require", - require.resolve("esbuild-register"), ...(mockNetwork - ? ["--require", path.join(__dirname, "./msw-register.ts")] + ? [ + "--require", + nodeRequire.resolve("esbuild-register"), + "--require", + path.join(__dirname, "./msw-register.ts"), + ] : []), - path.resolve(__dirname, "../cli.ts"), + cliPath, ...args, ], { @@ -1205,6 +1197,7 @@ async function execCreateReactRouter({ env: { ...process.env, ...env, + CREATE_REACT_ROUTER_TEST_DIR: __dirname, NODE_OPTIONS: [process.env.NODE_OPTIONS, "--no-deprecation"] .filter(Boolean) .join(" "), @@ -1218,6 +1211,22 @@ async function execCreateReactRouter({ return await interactWithShell(proc, interactions); } +async function ensureBuiltCli() { + if (!builtCliPromise) { + builtCliPromise = Promise.resolve().then(() => { + let pnpm = process.platform === "win32" ? "pnpm.cmd" : "pnpm"; + execFileSync(pnpm, ["run", "--filter", "create-react-router", "build"], { + cwd: REPO_ROOT, + env: { ...process.env, NO_COLOR: "1" }, + stdio: "pipe", + }); + return BUILT_CLI; + }); + } + + return builtCliPromise; +} + interface ShellResult { status: number | "timeout" | null; stdout: string; diff --git a/packages/create-react-router/__tests__/fixtures/basic/package.json b/packages/create-react-router/__tests__/fixtures/basic/package.json index 60e30ff24d..af939bb5d3 100644 --- a/packages/create-react-router/__tests__/fixtures/basic/package.json +++ b/packages/create-react-router/__tests__/fixtures/basic/package.json @@ -15,6 +15,6 @@ }, "devDependencies": {}, "engines": { - "node": ">=20.0.0" + "node": ">=22.12.0" } } diff --git a/packages/create-react-router/__tests__/github-mocks.ts b/packages/create-react-router/__tests__/github-mocks.ts index b622850442..76487b79e7 100644 --- a/packages/create-react-router/__tests__/github-mocks.ts +++ b/packages/create-react-router/__tests__/github-mocks.ts @@ -5,6 +5,9 @@ import type { setupServer } from "msw/node"; import invariant from "tiny-invariant"; type RequestHandler = Parameters[0]; +const TEST_DIR = + process.env.CREATE_REACT_ROUTER_TEST_DIR ?? + path.join(process.cwd(), "packages/create-react-router/__tests__"); async function isDirectory(d: string) { try { @@ -54,11 +57,11 @@ let sendTarball = async (args: { owner: string; repo: string }) => { let pathToTarball: string; if (owner === "remix-run" && repo === "react-router-templates") { - pathToTarball = path.join(__dirname, "fixtures", "templates-repo.tar.gz"); + pathToTarball = path.join(TEST_DIR, "fixtures", "templates-repo.tar.gz"); } else if (owner === "fake-react-router-tester" && repo === "nested-dir") { - pathToTarball = path.join(__dirname, "fixtures", "nested-dir-repo.tar.gz"); + pathToTarball = path.join(TEST_DIR, "fixtures", "nested-dir-repo.tar.gz"); } else { - pathToTarball = path.join(__dirname, "fixtures", "template.tar.gz"); + pathToTarball = path.join(TEST_DIR, "fixtures", "template.tar.gz"); } let fileBuffer = await fsp.readFile(pathToTarball); @@ -158,7 +161,7 @@ let githubHandlers: Array = [ throw new Error(message); } - let localPath = path.join(__dirname, "../../..", contentsPath); + let localPath = path.join(TEST_DIR, "../../..", contentsPath); let isLocalDir = await isDirectory(localPath); let isLocalFile = await isFile(localPath); @@ -235,7 +238,7 @@ let githubHandlers: Array = [ // NOTE: we cheat a bit and in the contents/:path handler, we set the sha to the relativePath let relativePath = sha; - let fullPath = path.join(__dirname, "..", relativePath); + let fullPath = path.join(TEST_DIR, "..", relativePath); let encoding = "base64" as const; let size = (await fsp.stat(fullPath)).size; let content = await fsp.readFile(fullPath, { encoding: "utf-8" }); @@ -261,7 +264,7 @@ let githubHandlers: Array = [ if (typeof relativePath !== "string") { throw new Error("params.path must be a string"); } - let fullPath = path.join(__dirname, "..", relativePath); + let fullPath = path.join(TEST_DIR, "..", relativePath); let encoding = "base64" as const; let size = (await fsp.stat(fullPath)).size; let content = await fsp.readFile(fullPath, { encoding: "utf-8" }); diff --git a/packages/create-react-router/__tests__/msw.ts b/packages/create-react-router/__tests__/msw.ts index 9232b20ad0..fa5c3862aa 100644 --- a/packages/create-react-router/__tests__/msw.ts +++ b/packages/create-react-router/__tests__/msw.ts @@ -4,6 +4,9 @@ import { setupServer } from "msw/node"; import { http, type RequestHandler } from "msw"; import { githubHandlers } from "./github-mocks"; +const TEST_DIR = + process.env.CREATE_REACT_ROUTER_TEST_DIR ?? + path.join(process.cwd(), "packages/create-react-router/__tests__"); let miscHandlers: Array = [ http.get("https://registry.npmjs.org/react-router/latest", () => { @@ -26,7 +29,7 @@ let miscHandlers: Array = [ }), http.get("https://example.com/template.tar.gz", async () => { let fileBuffer = await fsp.readFile( - path.join(__dirname, "fixtures", "template.tar.gz"), + path.join(TEST_DIR, "fixtures", "template.tar.gz"), ); return new Response(fileBuffer, { diff --git a/packages/create-react-router/copy-template.ts b/packages/create-react-router/copy-template.ts index 5685a8a2b0..d4e352b0ca 100644 --- a/packages/create-react-router/copy-template.ts +++ b/packages/create-react-router/copy-template.ts @@ -4,20 +4,11 @@ import fs from "node:fs"; import path from "node:path"; import stream from "node:stream"; import { promisify } from "node:util"; -import { fetch } from "@remix-run/web-fetch"; import gunzip from "gunzip-maybe"; import tar from "tar-fs"; -import { ProxyAgent } from "proxy-agent"; import { color, isUrl } from "./utils"; -const defaultAgent = new ProxyAgent(); -const httpsAgent = new ProxyAgent(); -httpsAgent.protocol = "https:"; -function agent(url: string) { - return new URL(url).protocol === "https:" ? httpsAgent : defaultAgent; -} - export async function copyTemplate( template: string, destPath: string, @@ -237,10 +228,7 @@ async function downloadAndExtractTarball( ? `https://api.github.com/repos/${info.owner}/${info.name}/releases/latest` : `https://api.github.com/repos/${info.owner}/${info.name}/releases/tags/${info.tag}`; - let response = await fetch(releaseUrl, { - agent: agent("https://api.github.com"), - headers, - }); + let response = await fetch(releaseUrl, { headers }); if (response.status !== 200) { throw new CopyTemplateError( @@ -277,10 +265,7 @@ async function downloadAndExtractTarball( resourceUrl = `https://api.github.com/repos/${info.owner}/${info.name}/releases/assets/${assetId}`; headers.Accept = "application/octet-stream"; } - let response = await fetch(resourceUrl, { - agent: agent(resourceUrl), - headers, - }); + let response = await fetch(resourceUrl, { headers }); if (!response.body || response.status !== 200) { if (token) { diff --git a/packages/create-react-router/index.ts b/packages/create-react-router/index.ts index bf1306df74..efde8bbbd6 100644 --- a/packages/create-react-router/index.ts +++ b/packages/create-react-router/index.ts @@ -9,7 +9,6 @@ import arg from "arg"; import * as semver from "semver"; import sortPackageJSON from "sort-package-json"; -import { version as thisReactRouterVersion } from "./package.json"; import { prompt } from "./prompt"; import { IGNORED_TEMPLATE_DIRECTORIES, @@ -29,6 +28,7 @@ import { } from "./utils"; import { renderLoadingIndicator } from "./loading-indicator"; import { copyTemplate, CopyTemplateError } from "./copy-template"; +import pkgJson from "./package.json" with { type: "json" }; async function createReactRouter(argv: string[]) { let ctx = await getContext(argv); @@ -37,7 +37,7 @@ async function createReactRouter(argv: string[]) { return; } if (ctx.versionRequested) { - log(thisReactRouterVersion); + log(pkgJson.version); return; } @@ -128,7 +128,7 @@ async function getContext(argv: string[]): Promise { } else { log( `\n${color.warning( - `${selectedReactRouterVersion} is an invalid version specifier. Using React Router v${thisReactRouterVersion}.`, + `${selectedReactRouterVersion} is an invalid version specifier. Using React Router v${pkgJson.version}.`, )}`, ); selectedReactRouterVersion = undefined; @@ -157,7 +157,7 @@ async function getContext(argv: string[]): Promise { ), projectName, prompt, - reactRouterVersion: selectedReactRouterVersion || thisReactRouterVersion, + reactRouterVersion: selectedReactRouterVersion || pkgJson.version, template, token, versionRequested, diff --git a/packages/create-react-router/jest.config.js b/packages/create-react-router/jest.config.js index 76a81c3ef3..ae50fd668a 100644 --- a/packages/create-react-router/jest.config.js +++ b/packages/create-react-router/jest.config.js @@ -1,7 +1,8 @@ +import sharedConfig from "../../jest/jest.config.shared.js"; + /** @type {import('jest').Config} */ -module.exports = { - ...require("../../jest/jest.config.shared"), +export default { + ...sharedConfig, displayName: "create-react-router", setupFilesAfterEnv: ["/__tests__/setupAfterEnv.ts"], - setupFiles: [], }; diff --git a/packages/create-react-router/package.json b/packages/create-react-router/package.json index d07d29d524..e91f8e8c63 100644 --- a/packages/create-react-router/package.json +++ b/packages/create-react-router/package.json @@ -1,6 +1,7 @@ { "name": "create-react-router", "version": "7.15.1", + "type": "module", "description": "Create a new React Router app", "homepage": "https://reactrouter.com", "bugs": { @@ -37,13 +38,11 @@ } }, "dependencies": { - "@remix-run/web-fetch": "^4.4.2", "arg": "^5.0.1", "picocolors": "^1.1.1", "execa": "5.1.1", "gunzip-maybe": "^1.4.2", "log-update": "^5.0.1", - "proxy-agent": "^6.3.0", "semver": "^7.3.7", "sisteransi": "^1.0.5", "sort-package-json": "^1.55.0", @@ -64,7 +63,7 @@ "wireit": "catalog:" }, "engines": { - "node": ">=18.0.0" + "node": ">=22.12.0" }, "files": [ "dist/", diff --git a/packages/create-react-router/tsconfig.json b/packages/create-react-router/tsconfig.json index 04c8290a2c..7846f87b63 100644 --- a/packages/create-react-router/tsconfig.json +++ b/packages/create-react-router/tsconfig.json @@ -4,7 +4,7 @@ "compilerOptions": { "lib": ["DOM", "DOM.Iterable", "ES2022"], "target": "ES2022", - "module": "ES2022", + "module": "ESNext", "skipLibCheck": true, "moduleResolution": "Bundler", "allowSyntheticDefaultImports": true, diff --git a/packages/create-react-router/tsup.config.ts b/packages/create-react-router/tsup.config.ts index 9bf81512e4..85924bcfb8 100644 --- a/packages/create-react-router/tsup.config.ts +++ b/packages/create-react-router/tsup.config.ts @@ -11,7 +11,7 @@ export default defineConfig([ { clean: true, entry, - format: ["cjs"], + format: ["esm"], outDir: "dist", dts: true, banner: { diff --git a/packages/react-router-architect/__tests__/server-test.ts b/packages/react-router-architect/__tests__/server-test.ts index cc9277b9b5..fb5ed10087 100644 --- a/packages/react-router-architect/__tests__/server-test.ts +++ b/packages/react-router-architect/__tests__/server-test.ts @@ -1,32 +1,38 @@ import fsp from "node:fs/promises"; import path from "node:path"; -import { createRequestHandler as createReactRequestHandler } from "react-router"; +import { fileURLToPath } from "node:url"; import type { APIGatewayProxyEventV2, APIGatewayProxyStructuredResultV2, } from "aws-lambda"; import lambdaTester from "lambda-tester"; +import "@react-router/node"; -import { - createRequestHandler, - createReactRouterHeaders, - createReactRouterRequest, - sendReactRouterResponse, -} from "../server"; +const __dirname = path.dirname(fileURLToPath(import.meta.url)); + +let createRequestHandler: typeof import("../server").createRequestHandler; +let createReactRouterHeaders: typeof import("../server").createReactRouterHeaders; +let createReactRouterRequest: typeof import("../server").createReactRouterRequest; +let sendReactRouterResponse: typeof import("../server").sendReactRouterResponse; // We don't want to test that the React Router server works here, // we just want to test the architect adapter -jest.mock("react-router", () => { - let original = jest.requireActual("react-router"); - return { - ...original, - createRequestHandler: jest.fn(), - }; +let mockedCreateRequestHandler = jest.fn() as jest.MockedFunction< + typeof import("react-router").createRequestHandler +>; + +(jest as any).unstable_mockModule("react-router", () => ({ + createRequestHandler: mockedCreateRequestHandler, +})); + +beforeAll(async () => { + ({ + createRequestHandler, + createReactRouterHeaders, + createReactRouterRequest, + sendReactRouterResponse, + } = await import("../server")); }); -let mockedCreateRequestHandler = - createReactRequestHandler as jest.MockedFunction< - typeof createReactRequestHandler - >; function createMockEvent(event: Partial = {}) { let now = new Date(); diff --git a/packages/react-router-architect/jest.config.js b/packages/react-router-architect/jest.config.js index 94bdf00603..939eb3ebcc 100644 --- a/packages/react-router-architect/jest.config.js +++ b/packages/react-router-architect/jest.config.js @@ -1,5 +1,7 @@ +import sharedConfig from "../../jest/jest.config.shared.js"; + /** @type {import('jest').Config} */ -module.exports = { - ...require("../../jest/jest.config.shared"), +export default { + ...sharedConfig, displayName: "architect", }; diff --git a/packages/react-router-architect/package.json b/packages/react-router-architect/package.json index c4e00cc399..30c6f178c7 100644 --- a/packages/react-router-architect/package.json +++ b/packages/react-router-architect/package.json @@ -1,5 +1,6 @@ { "name": "@react-router/architect", + "type": "module", "version": "7.15.1", "description": "Architect server request handler for React Router", "bugs": { @@ -15,19 +16,9 @@ "typings": "dist/index.d.ts", "exports": { ".": { - "node": { - "types": "./dist/index.d.ts", - "module-sync": "./dist/index.mjs", - "default": "./dist/index.js" - }, - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "default": { - "types": "./dist/index.d.ts", - "default": "./dist/index.js" - } + "types": "./dist/index.d.ts", + "module-sync": "./dist/index.js", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -77,7 +68,7 @@ } }, "engines": { - "node": ">=20.0.0" + "node": ">=22.12.0" }, "files": [ "dist/", diff --git a/packages/react-router-architect/tsconfig.json b/packages/react-router-architect/tsconfig.json index 4a4e39de83..c05bbbd135 100644 --- a/packages/react-router-architect/tsconfig.json +++ b/packages/react-router-architect/tsconfig.json @@ -4,7 +4,7 @@ "compilerOptions": { "lib": ["DOM", "DOM.Iterable", "ES2022"], "target": "ES2022", - + "module": "ESNext", "moduleResolution": "Bundler", "allowSyntheticDefaultImports": true, "strict": true, diff --git a/packages/react-router-architect/tsup.config.ts b/packages/react-router-architect/tsup.config.ts index f698117df2..baebdf1d0a 100644 --- a/packages/react-router-architect/tsup.config.ts +++ b/packages/react-router-architect/tsup.config.ts @@ -11,7 +11,7 @@ export default defineConfig([ { clean: true, entry, - format: ["cjs", "esm"], + format: ["esm"], outDir: "dist", dts: true, banner: { diff --git a/packages/react-router-cloudflare/package.json b/packages/react-router-cloudflare/package.json index 2c7ec7d471..dfccb6d04e 100644 --- a/packages/react-router-cloudflare/package.json +++ b/packages/react-router-cloudflare/package.json @@ -1,5 +1,6 @@ { "name": "@react-router/cloudflare", + "type": "module", "version": "7.15.1", "description": "Cloudflare platform abstractions for React Router", "bugs": { @@ -15,14 +16,8 @@ "typings": "dist/index.d.ts", "exports": { ".": { - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "default": { - "types": "./dist/index.d.ts", - "default": "./dist/index.js" - } + "types": "./dist/index.d.ts", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -63,7 +58,7 @@ } }, "engines": { - "node": ">=20.0.0" + "node": ">=22.12.0" }, "files": [ "dist/", diff --git a/packages/react-router-cloudflare/tsup.config.ts b/packages/react-router-cloudflare/tsup.config.ts index f698117df2..baebdf1d0a 100644 --- a/packages/react-router-cloudflare/tsup.config.ts +++ b/packages/react-router-cloudflare/tsup.config.ts @@ -11,7 +11,7 @@ export default defineConfig([ { clean: true, entry, - format: ["cjs", "esm"], + format: ["esm"], outDir: "dist", dts: true, banner: { diff --git a/packages/react-router-dev/.changes/major.update-minimum-node-version-2212.md b/packages/react-router-dev/.changes/major.update-minimum-node-version-2212.md new file mode 100644 index 0000000000..b0d1bbf11d --- /dev/null +++ b/packages/react-router-dev/.changes/major.update-minimum-node-version-2212.md @@ -0,0 +1 @@ +Update minimum Node version to 22.12.0, the first version where `require(esm)` is enabled by default diff --git a/packages/react-router-dev/__tests__/fixtures/basic/package.json b/packages/react-router-dev/__tests__/fixtures/basic/package.json index 546ea527b8..9ee96a5ff8 100644 --- a/packages/react-router-dev/__tests__/fixtures/basic/package.json +++ b/packages/react-router-dev/__tests__/fixtures/basic/package.json @@ -24,6 +24,6 @@ "typescript": "catalog:" }, "engines": { - "node": ">=20.0.0" + "node": ">=22.12.0" } } diff --git a/packages/react-router-dev/__tests__/rsc-virtual-route-modules-test.ts b/packages/react-router-dev/__tests__/rsc-virtual-route-modules-test.ts index 0d46cab2f0..d8076ebce6 100644 --- a/packages/react-router-dev/__tests__/rsc-virtual-route-modules-test.ts +++ b/packages/react-router-dev/__tests__/rsc-virtual-route-modules-test.ts @@ -1,5 +1,5 @@ import * as assert from "node:assert"; -import * as ts from "typescript"; +import ts from "typescript"; import { virtualRouteModulesPlugin } from "../vite/rsc/virtual-route-modules"; diff --git a/packages/react-router-dev/__tests__/utils/cli.ts b/packages/react-router-dev/__tests__/utils/cli.ts index 54b4f4ac41..7d06694299 100644 --- a/packages/react-router-dev/__tests__/utils/cli.ts +++ b/packages/react-router-dev/__tests__/utils/cli.ts @@ -1,3 +1,4 @@ +import { createRequire } from "node:module"; import type { Stats } from "node:fs"; import { statSync } from "node:fs"; import path from "node:path"; @@ -6,6 +7,8 @@ import glob from "fast-glob"; import captureError from "./captureError"; +const nodeRequire = createRequire(import.meta.url); + export const isExecaError = (error: unknown): error is execa.ExecaError => { if (!(error instanceof Error)) return false; return "exitCode" in error; @@ -82,7 +85,7 @@ export const run = async (args: string[], options: execa.Options = {}) => { [ ...(isBuildUpToDate ? [builtJS] - : ["--require", require.resolve("esbuild-register"), sourceTS]), + : ["--require", nodeRequire.resolve("esbuild-register"), sourceTS]), ...args, ], { diff --git a/packages/react-router-dev/bin.js b/packages/react-router-dev/bin.js index 1fd8438f99..5a0012cc7b 100755 --- a/packages/react-router-dev/bin.js +++ b/packages/react-router-dev/bin.js @@ -1,15 +1,20 @@ #!/usr/bin/env node -let arg = require("arg"); +void (async () => { + let { default: arg } = await import("arg"); -// Minimal replication of our actual parsing in `run.ts`. If not already set, -// default `NODE_ENV` so React loads the proper version in it's CJS entry script. -// We have to do this before importing `run.ts` since that is what imports -// `react` (indirectly via `react-router`) -let args = arg({}, { argv: process.argv.slice(2), permissive: true }); -if (args._.length === 0 || args._[0] === "dev") { - process.env.NODE_ENV = process.env.NODE_ENV ?? "development"; -} else { - process.env.NODE_ENV = process.env.NODE_ENV ?? "production"; -} + // Minimal replication of our actual parsing in `run.ts`. If not already set, + // default `NODE_ENV` so React loads the proper version in its CJS entry script. + // We have to do this before importing `run.ts` since that is what imports + // `react` (indirectly via `react-router`) + let args = arg({}, { argv: process.argv.slice(2), permissive: true }); + if (args._.length === 0 || args._[0] === "dev") { + process.env.NODE_ENV = process.env.NODE_ENV ?? "development"; + } else { + process.env.NODE_ENV = process.env.NODE_ENV ?? "production"; + } -require("./dist/cli/index"); + await import("./dist/cli/index.js"); +})().catch((error) => { + if (error) console.error(error); + process.exit(1); +}); diff --git a/packages/react-router-dev/cli/commands.ts b/packages/react-router-dev/cli/commands.ts index f4dce97ed5..13c052988a 100644 --- a/packages/react-router-dev/cli/commands.ts +++ b/packages/react-router-dev/cli/commands.ts @@ -1,5 +1,6 @@ import { existsSync } from "node:fs"; import { readFile, writeFile, copyFile } from "node:fs/promises"; +import { createRequire } from "node:module"; import * as path from "node:path"; import exitHook from "exit-hook"; import colors from "picocolors"; @@ -17,6 +18,8 @@ import * as Typegen from "../typegen"; import { preloadVite, getVite } from "../vite/vite"; import { hasReactRouterRscPlugin } from "../vite/has-rsc-plugin"; +const nodeRequire = createRequire(import.meta.url); + export async function routes( rootDirectory?: string, flags: { @@ -147,7 +150,7 @@ export async function generateEntry( } let defaultsDirectory = path.resolve( - path.dirname(require.resolve("@react-router/dev/package.json")), + path.dirname(nodeRequire.resolve("@react-router/dev/package.json")), "dist", "config", configDir, diff --git a/packages/react-router-dev/cli/index.ts b/packages/react-router-dev/cli/index.ts index 9edece3de2..87ce87c9e8 100644 --- a/packages/react-router-dev/cli/index.ts +++ b/packages/react-router-dev/cli/index.ts @@ -1,7 +1,7 @@ #!/usr/bin/env node import { run } from "./run"; -run().then( +run(undefined, { isMain: true }).then( () => { process.exit(0); }, diff --git a/packages/react-router-dev/cli/run.ts b/packages/react-router-dev/cli/run.ts index 1450f48ce5..02abaa8cc9 100644 --- a/packages/react-router-dev/cli/run.ts +++ b/packages/react-router-dev/cli/run.ts @@ -1,8 +1,11 @@ +import { readFileSync } from "node:fs"; +import path from "node:path"; import arg from "arg"; import semver from "semver"; import colors from "picocolors"; import * as commands from "./commands"; +import packageJson from "@react-router/dev/package.json" with { type: "json" }; const helpText = ` ${colors.blueBright("react-router")} @@ -81,14 +84,17 @@ ${colors.blueBright("react-router")} * Programmatic interface for running the react-router CLI with the given command line * arguments. */ -export async function run(argv: string[] = process.argv.slice(2)) { +export async function run( + argv: string[] = process.argv.slice(2), + { isMain = false }: { isMain?: boolean } = {}, +) { // Check the node version let versions = process.versions; - let MINIMUM_NODE_VERSION = 20; + let MINIMUM_NODE_VERSION = "22.12.0"; if ( versions && versions.node && - semver.major(versions.node) < MINIMUM_NODE_VERSION + semver.lt(versions.node, MINIMUM_NODE_VERSION) ) { console.warn( `️⚠️ Oops, Node v${versions.node} detected. react-router requires ` + @@ -156,12 +162,11 @@ export async function run(argv: string[] = process.argv.slice(2)) { return; } if (flags.version) { - let version = require("../../package.json").version; - console.log(version); + console.log(packageJson.version); return; } - flags.interactive = flags.interactive ?? require.main === module; + flags.interactive = flags.interactive ?? isMain; if (args["--no-typescript"]) { flags.typescript = false; } diff --git a/packages/react-router-dev/config/config.ts b/packages/react-router-dev/config/config.ts index 9c95a1d89e..69c9ea365a 100644 --- a/packages/react-router-dev/config/config.ts +++ b/packages/react-router-dev/config/config.ts @@ -1,5 +1,6 @@ import fs from "node:fs"; import { execSync } from "node:child_process"; +import { createRequire } from "node:module"; import * as ViteNode from "../vite/vite-node"; import type * as Vite from "vite"; import Path from "pathe"; @@ -8,10 +9,12 @@ import chokidar, { type EmitArgs as ChokidarEmitArgs, } from "chokidar"; import colors from "picocolors"; -import pick from "lodash/pick"; -import omit from "lodash/omit"; -import cloneDeep from "lodash/cloneDeep"; -import isEqual from "lodash/isEqual"; +import pick from "lodash/pick.js"; +import omit from "lodash/omit.js"; +import cloneDeep from "lodash/cloneDeep.js"; +import isEqual from "lodash/isEqual.js"; + +const nodeRequire = createRequire(import.meta.url); import { type RouteManifest, @@ -1031,7 +1034,7 @@ export async function resolveEntryFiles({ let { appDirectory } = reactRouterConfig; let defaultsDirectory = Path.resolve( - Path.dirname(require.resolve("@react-router/dev/package.json")), + Path.dirname(nodeRequire.resolve("@react-router/dev/package.json")), "dist", "config", "defaults", @@ -1113,7 +1116,7 @@ export async function resolveRSCEntryFiles({ let { appDirectory } = reactRouterConfig; let defaultsDirectory = Path.resolve( - Path.dirname(require.resolve("@react-router/dev/package.json")), + Path.dirname(nodeRequire.resolve("@react-router/dev/package.json")), "dist", "config", "default-rsc-entries", diff --git a/packages/react-router-dev/config/is-react-router-repo.ts b/packages/react-router-dev/config/is-react-router-repo.ts index d1ae96140b..399370682b 100644 --- a/packages/react-router-dev/config/is-react-router-repo.ts +++ b/packages/react-router-dev/config/is-react-router-repo.ts @@ -1,10 +1,13 @@ +import { createRequire } from "node:module"; import path from "pathe"; +const nodeRequire = createRequire(import.meta.url); + export function isReactRouterRepo() { // We use '@react-router/node' for this check since it's a // dependency of this package and guaranteed to be in node_modules let serverRuntimePath = path.dirname( - require.resolve("@react-router/node/package.json"), + nodeRequire.resolve("@react-router/node/package.json"), ); let serverRuntimeParentDir = path.basename( path.resolve(serverRuntimePath, ".."), diff --git a/packages/react-router-dev/config/routes.ts b/packages/react-router-dev/config/routes.ts index 98d03a55ec..02b61a4504 100644 --- a/packages/react-router-dev/config/routes.ts +++ b/packages/react-router-dev/config/routes.ts @@ -1,6 +1,6 @@ import * as Path from "pathe"; import * as v from "valibot"; -import pick from "lodash/pick"; +import pick from "lodash/pick.js"; import invariant from "../invariant"; diff --git a/packages/react-router-dev/jest.config.js b/packages/react-router-dev/jest.config.js index 3f4869bc95..47d774cdab 100644 --- a/packages/react-router-dev/jest.config.js +++ b/packages/react-router-dev/jest.config.js @@ -1,7 +1,8 @@ +import sharedConfig from "../../jest/jest.config.shared.js"; + /** @type {import('jest').Config} */ -module.exports = { - ...require("../../jest/jest.config.shared"), +export default { + ...sharedConfig, displayName: "dev", setupFilesAfterEnv: ["/__tests__/setupAfterEnv.ts"], - setupFiles: [], }; diff --git a/packages/react-router-dev/module-sync-enabled/index.mjs b/packages/react-router-dev/module-sync-enabled/index.mjs index e51829e37f..55181f61f0 100644 --- a/packages/react-router-dev/module-sync-enabled/index.mjs +++ b/packages/react-router-dev/module-sync-enabled/index.mjs @@ -1,4 +1,4 @@ import { createRequire } from "node:module"; -const require = createRequire(import.meta.url); -const moduleSyncEnabled = require("#module-sync-enabled").default; +const nodeRequire = createRequire(import.meta.url); +const moduleSyncEnabled = nodeRequire("#module-sync-enabled").default; export { moduleSyncEnabled }; diff --git a/packages/react-router-dev/package.json b/packages/react-router-dev/package.json index 73b3786aba..0d8db906c5 100644 --- a/packages/react-router-dev/package.json +++ b/packages/react-router-dev/package.json @@ -1,5 +1,6 @@ { "name": "@react-router/dev", + "type": "module", "version": "7.15.1", "description": "Dev tools and CLI for React Router", "homepage": "https://reactrouter.com", @@ -150,7 +151,7 @@ } }, "engines": { - "node": ">=20.0.0" + "node": ">=22.12.0" }, "files": [ "dist/", diff --git a/packages/react-router-dev/tsconfig.json b/packages/react-router-dev/tsconfig.json index 1a15c06c4d..e3129dfe18 100644 --- a/packages/react-router-dev/tsconfig.json +++ b/packages/react-router-dev/tsconfig.json @@ -11,7 +11,7 @@ "lib": ["DOM", "DOM.Iterable", "ES2022"], "types": ["vite/client", "@vitejs/plugin-rsc/types"], "target": "ES2022", - "module": "ES2022", + "module": "ESNext", "moduleResolution": "Bundler", "strict": true, diff --git a/packages/react-router-dev/tsup.config.ts b/packages/react-router-dev/tsup.config.ts index b5f291b4c3..90e5f90886 100644 --- a/packages/react-router-dev/tsup.config.ts +++ b/packages/react-router-dev/tsup.config.ts @@ -26,7 +26,8 @@ export default defineConfig([ { clean: true, entry, - format: ["cjs"], + format: ["esm"], + target: "node24", outDir: "dist", dts: true, external, diff --git a/packages/react-router-dev/typegen/index.ts b/packages/react-router-dev/typegen/index.ts index 32ff56292b..f13998fd54 100644 --- a/packages/react-router-dev/typegen/index.ts +++ b/packages/react-router-dev/typegen/index.ts @@ -1,7 +1,7 @@ import fs from "node:fs/promises"; import * as Path from "pathe"; -import { green, red } from "picocolors"; +import pc from "picocolors"; import type vite from "vite"; import { type Context, createContext } from "./context"; @@ -13,6 +13,8 @@ import { generateServerBuild, } from "./generate"; +const { green, red } = pc; + async function clearRouteModuleAnnotations(ctx: Context) { await fs.rm( Path.join(typesDirectory(ctx), Path.basename(ctx.config.appDirectory)), diff --git a/packages/react-router-dev/vite/babel.ts b/packages/react-router-dev/vite/babel.ts index c4a721db7d..ee4cc25c43 100644 --- a/packages/react-router-dev/vite/babel.ts +++ b/packages/react-router-dev/vite/babel.ts @@ -2,12 +2,14 @@ import type { NodePath } from "@babel/traverse"; import type { types as Babel } from "@babel/core"; import { parse, type ParseResult } from "@babel/parser"; import * as t from "@babel/types"; +import _traverse from "@babel/traverse"; +import _generate from "@babel/generator"; // These `require`s were needed to support building within vite-ecosystem-ci, // otherwise we get errors that `traverse` and `generate` are not functions. -const traverse = require("@babel/traverse") +const traverse = (_traverse as any) .default as typeof import("@babel/traverse").default; -const generate = require("@babel/generator") +const generate = (_generate as any) .default as typeof import("@babel/generator").default; export { traverse, generate, parse, t }; diff --git a/packages/react-router-dev/vite/cloudflare-dev-proxy.ts b/packages/react-router-dev/vite/cloudflare-dev-proxy.ts index 4f992cc340..80df3de721 100644 --- a/packages/react-router-dev/vite/cloudflare-dev-proxy.ts +++ b/packages/react-router-dev/vite/cloudflare-dev-proxy.ts @@ -1,3 +1,4 @@ +import { sendResponse } from "@remix-run/node-fetch-server"; import { createRequestHandler } from "react-router"; import { type AppLoadContext, @@ -123,9 +124,6 @@ export const cloudflareDevProxyVitePlugin = ( } }, configureServer: async (viteDevServer) => { - // Async import here to allow ESM only module on Node 20.18. - // TODO(v8): Can move to a normal import when Node 20 support - const { sendResponse } = await import("@remix-run/node-fetch-server"); let context: Awaited>; let getContext = async () => { let { getPlatformProxy } = await importWrangler(); diff --git a/packages/react-router-dev/vite/has-dependency.ts b/packages/react-router-dev/vite/has-dependency.ts index e9dff81cab..ae73796bbb 100644 --- a/packages/react-router-dev/vite/has-dependency.ts +++ b/packages/react-router-dev/vite/has-dependency.ts @@ -1,3 +1,7 @@ +import { createRequire } from "node:module"; + +const nodeRequire = createRequire(import.meta.url); + export function hasDependency({ name, rootDirectory, @@ -6,11 +10,8 @@ export function hasDependency({ rootDirectory: string; }) { try { - return Boolean(require.resolve(name, { paths: [rootDirectory] })); - } catch ( - // eslint-disable-next-line @typescript-eslint/no-unused-vars - e - ) { + return Boolean(nodeRequire.resolve(name, { paths: [rootDirectory] })); + } catch (err) { return false; } } diff --git a/packages/react-router-dev/vite/node-adapter.ts b/packages/react-router-dev/vite/node-adapter.ts index 403add36ef..625e12d77c 100644 --- a/packages/react-router-dev/vite/node-adapter.ts +++ b/packages/react-router-dev/vite/node-adapter.ts @@ -1,5 +1,5 @@ import type { ServerResponse } from "node:http"; - +import { createRequest } from "@remix-run/node-fetch-server"; import type * as Vite from "vite"; import invariant from "../invariant"; @@ -19,8 +19,5 @@ export async function fromNodeRequest( ); nodeReq.url = nodeReq.originalUrl; - // Async import here to allow ESM only module on Node 20.18. - // TODO(v8): Can move to a normal import when Node 20 support - const { createRequest } = await import("@remix-run/node-fetch-server"); return createRequest(nodeReq, nodeRes); } diff --git a/packages/react-router-dev/vite/plugin.ts b/packages/react-router-dev/vite/plugin.ts index 14fbacb8e4..5d2787c577 100644 --- a/packages/react-router-dev/vite/plugin.ts +++ b/packages/react-router-dev/vite/plugin.ts @@ -12,9 +12,11 @@ import { rm, writeFile, } from "node:fs/promises"; +import { createRequire } from "node:module"; import * as path from "node:path"; import * as url from "node:url"; import * as babel from "@babel/core"; +import { sendResponse } from "@remix-run/node-fetch-server"; import { unstable_setDevServerHooks as setDevServerHooks, createRequestHandler, @@ -31,10 +33,12 @@ import { init as initEsModuleLexer, parse as esModuleLexer, } from "es-module-lexer"; -import pick from "lodash/pick"; +import pick from "lodash/pick.js"; import jsesc from "jsesc"; import colors from "picocolors"; -import kebabCase from "lodash/kebabCase"; +import kebabCase from "lodash/kebabCase.js"; + +const nodeRequire = createRequire(import.meta.url); import * as Typegen from "../typegen"; import type { RouteManifestEntry, RouteManifest } from "../config/routes"; @@ -658,7 +662,7 @@ let getServerBundleRouteIds = ( }; let defaultEntriesDir = path.resolve( - path.dirname(require.resolve("@react-router/dev/package.json")), + path.dirname(nodeRequire.resolve("@react-router/dev/package.json")), "dist", "config", "defaults", @@ -1702,11 +1706,6 @@ export const reactRouterVitePlugin: ReactRouterVitePlugin = () => { req, await reactRouterDevLoadContext(req), ); - // Async import here to allow ESM only module on Node 20.18. - // TODO(v8): Can move to a normal import when Node 20 support - const { sendResponse } = await import( - "@remix-run/node-fetch-server" - ); await sendResponse(nodeRes, res); }; await nodeHandler(req, res); @@ -1837,12 +1836,6 @@ export const reactRouterVitePlugin: ReactRouterVitePlugin = () => { request, await reactRouterDevLoadContext(request), ); - - // Async import here to allow ESM only module on Node 20.18. - // TODO(v8): Can move to a normal import when Node 20 support - const { sendResponse } = await import( - "@remix-run/node-fetch-server" - ); await sendResponse(res, response); } catch (error) { next(error); @@ -2457,7 +2450,7 @@ export const reactRouterVitePlugin: ReactRouterVitePlugin = () => { if (id !== virtualHmrRuntime.resolvedId) return; let reactRefreshDir = path.dirname( - require.resolve("react-refresh/package.json"), + nodeRequire.resolve("react-refresh/package.json"), ); let reactRefreshRuntimePath = path.join( reactRefreshDir, @@ -2467,7 +2460,10 @@ export const reactRouterVitePlugin: ReactRouterVitePlugin = () => { return [ "const exports = {}", await readFile(reactRefreshRuntimePath, "utf8"), - await readFile(require.resolve("./static/refresh-utils.mjs"), "utf8"), + await readFile( + nodeRequire.resolve("./static/refresh-utils.mjs"), + "utf8", + ), "export default exports", ].join("\n"); }, @@ -2501,7 +2497,12 @@ export const reactRouterVitePlugin: ReactRouterVitePlugin = () => { sourceType: "module", allowAwaitOutsideFunction: true, }, - plugins: [[require("react-refresh/babel"), { skipEnvCheck: true }]], + plugins: [ + [ + nodeRequire.resolve("react-refresh/babel"), + { skipEnvCheck: true }, + ], + ], sourceMaps: true, }); if (result === null) return; @@ -3991,7 +3992,7 @@ export async function getEnvironmentOptionsResolvers( let { serverBuildFile, serverModuleFormat } = ctx.reactRouterConfig; let packageRoot = path.dirname( - require.resolve("@react-router/dev/package.json"), + nodeRequire.resolve("@react-router/dev/package.json"), ); let { moduleSyncEnabled } = await import( `file:///${path.join(packageRoot, "module-sync-enabled/index.mjs")}` diff --git a/packages/react-router-dev/vite/vite.ts b/packages/react-router-dev/vite/vite.ts index 71874a3d1a..bb0b14cf11 100644 --- a/packages/react-router-dev/vite/vite.ts +++ b/packages/react-router-dev/vite/vite.ts @@ -1,9 +1,12 @@ +import { createRequire } from "node:module"; import path from "pathe"; import type { DepOptimizationConfig, ESBuildOptions } from "vite"; import invariant from "../invariant"; import { isReactRouterRepo } from "../config/is-react-router-repo"; +const nodeRequire = createRequire(import.meta.url); + type Vite = typeof import("vite"); let vite: Vite | undefined; @@ -14,7 +17,7 @@ const viteImportSpecifier = isReactRouterRepo() // file, which means that it will always resolve to Vite 6. `file:///${path .normalize( - require.resolve("vite/package.json", { paths: [process.cwd()] }), + nodeRequire.resolve("vite/package.json", { paths: [process.cwd()] }), ) .replace("package.json", "dist/node/index.js")}` : "vite"; diff --git a/packages/react-router-dom/package.json b/packages/react-router-dom/package.json index fd24333062..0e8b870189 100644 --- a/packages/react-router-dom/package.json +++ b/packages/react-router-dom/package.json @@ -1,5 +1,6 @@ { "name": "react-router-dom", + "type": "module", "version": "7.15.1", "description": "Declarative routing for React web applications", "keywords": [ @@ -18,25 +19,14 @@ "license": "MIT", "author": "Remix Software ", "sideEffects": false, - "main": "./dist/main.js", + "main": "./dist/index.js", "unpkg": "./dist/umd/react-router-dom.production.min.js", - "module": "./dist/index.mjs", "types": "./dist/index.d.ts", "exports": { ".": { - "node": { - "types": "./dist/index.d.ts", - "module-sync": "./dist/index.mjs", - "default": "./dist/index.js" - }, - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "default": { - "types": "./dist/index.d.ts", - "default": "./dist/index.js" - } + "types": "./dist/index.d.ts", + "module-sync": "./dist/index.js", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -78,6 +68,6 @@ "README.md" ], "engines": { - "node": ">=20.0.0" + "node": ">=22.12.0" } } diff --git a/packages/react-router-dom/tsconfig.json b/packages/react-router-dom/tsconfig.json index 45b8ec667f..08fa813020 100644 --- a/packages/react-router-dom/tsconfig.json +++ b/packages/react-router-dom/tsconfig.json @@ -3,8 +3,8 @@ "compilerOptions": { "lib": ["ES2020", "DOM", "DOM.Iterable"], "target": "ES2020", - "module": "Node16", - "moduleResolution": "Node16", + "module": "ESNext", + "moduleResolution": "Bundler", "strict": true, "jsx": "react", diff --git a/packages/react-router-dom/tsup.config.ts b/packages/react-router-dom/tsup.config.ts index f698117df2..baebdf1d0a 100644 --- a/packages/react-router-dom/tsup.config.ts +++ b/packages/react-router-dom/tsup.config.ts @@ -11,7 +11,7 @@ export default defineConfig([ { clean: true, entry, - format: ["cjs", "esm"], + format: ["esm"], outDir: "dist", dts: true, banner: { diff --git a/packages/react-router-express/.changes/major.update-minimum-node-version-2212.md b/packages/react-router-express/.changes/major.update-minimum-node-version-2212.md new file mode 100644 index 0000000000..b0d1bbf11d --- /dev/null +++ b/packages/react-router-express/.changes/major.update-minimum-node-version-2212.md @@ -0,0 +1 @@ +Update minimum Node version to 22.12.0, the first version where `require(esm)` is enabled by default diff --git a/packages/react-router-express/__tests__/server-test.ts b/packages/react-router-express/__tests__/server-test.ts index 39013b9704..04419c68c5 100644 --- a/packages/react-router-express/__tests__/server-test.ts +++ b/packages/react-router-express/__tests__/server-test.ts @@ -1,29 +1,27 @@ import { Readable } from "node:stream"; -import { createRequestHandler as createRemixRequestHandler } from "react-router"; import { createReadableStreamFromReadable } from "@react-router/node"; import express from "express"; import { createRequest, createResponse } from "node-mocks-http"; import supertest from "supertest"; -import { - createRemixHeaders, - createRemixRequest, - createRequestHandler, -} from "../server"; +let createRemixHeaders: typeof import("../server").createRemixHeaders; +let createRemixRequest: typeof import("../server").createRemixRequest; +let createRequestHandler: typeof import("../server").createRequestHandler; // We don't want to test that the remix server works here (that's what the // playwright tests do), we just want to test the express adapter -jest.mock("react-router", () => { - let original = jest.requireActual("react-router"); - return { - ...original, - createRequestHandler: jest.fn(), - }; +let mockedCreateRequestHandler = jest.fn() as jest.MockedFunction< + typeof import("react-router").createRequestHandler +>; + +(jest as any).unstable_mockModule("react-router", () => ({ + createRequestHandler: mockedCreateRequestHandler, +})); + +beforeAll(async () => { + ({ createRemixHeaders, createRemixRequest, createRequestHandler } = + await import("../server")); }); -let mockedCreateRequestHandler = - createRemixRequestHandler as jest.MockedFunction< - typeof createRemixRequestHandler - >; function createApp() { let app = express(); diff --git a/packages/react-router-express/jest.config.js b/packages/react-router-express/jest.config.js index 0587714c3b..672c158fdc 100644 --- a/packages/react-router-express/jest.config.js +++ b/packages/react-router-express/jest.config.js @@ -1,5 +1,7 @@ +import sharedConfig from "../../jest/jest.config.shared.js"; + /** @type {import('jest').Config} */ -module.exports = { - ...require("../../jest/jest.config.shared"), +export default { + ...sharedConfig, displayName: "express", }; diff --git a/packages/react-router-express/package.json b/packages/react-router-express/package.json index d1d032cf5a..ad450e44da 100644 --- a/packages/react-router-express/package.json +++ b/packages/react-router-express/package.json @@ -1,5 +1,6 @@ { "name": "@react-router/express", + "type": "module", "version": "7.15.1", "description": "Express server request handler for React Router", "bugs": { @@ -15,19 +16,9 @@ "typings": "dist/index.d.ts", "exports": { ".": { - "node": { - "types": "./dist/index.d.ts", - "module-sync": "./dist/index.mjs", - "default": "./dist/index.js" - }, - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "default": { - "types": "./dist/index.d.ts", - "default": "./dist/index.js" - } + "types": "./dist/index.d.ts", + "module-sync": "./dist/index.js", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -74,7 +65,7 @@ } }, "engines": { - "node": ">=20.0.0" + "node": ">=22.12.0" }, "files": [ "dist/", diff --git a/packages/react-router-express/tsup.config.ts b/packages/react-router-express/tsup.config.ts index f698117df2..baebdf1d0a 100644 --- a/packages/react-router-express/tsup.config.ts +++ b/packages/react-router-express/tsup.config.ts @@ -11,7 +11,7 @@ export default defineConfig([ { clean: true, entry, - format: ["cjs", "esm"], + format: ["esm"], outDir: "dist", dts: true, banner: { diff --git a/packages/react-router-fs-routes/jest.config.js b/packages/react-router-fs-routes/jest.config.js index 47d93e7515..dd15f1fcd7 100644 --- a/packages/react-router-fs-routes/jest.config.js +++ b/packages/react-router-fs-routes/jest.config.js @@ -1,6 +1,7 @@ +import sharedConfig from "../../jest/jest.config.shared.js"; + /** @type {import('jest').Config} */ -module.exports = { - ...require("../../jest/jest.config.shared"), +export default { + ...sharedConfig, displayName: "fs-routes", - setupFiles: [], }; diff --git a/packages/react-router-fs-routes/package.json b/packages/react-router-fs-routes/package.json index d708724e0f..9f2211e50c 100644 --- a/packages/react-router-fs-routes/package.json +++ b/packages/react-router-fs-routes/package.json @@ -1,5 +1,6 @@ { "name": "@react-router/fs-routes", + "type": "module", "version": "7.15.1", "description": "File system routing conventions for React Router, for use within routes.ts", "bugs": { @@ -57,7 +58,7 @@ } }, "engines": { - "node": ">=20.0.0" + "node": ">=22.12.0" }, "files": [ "dist/", diff --git a/packages/react-router-fs-routes/tsup.config.ts b/packages/react-router-fs-routes/tsup.config.ts index 6f6a76db50..baebdf1d0a 100644 --- a/packages/react-router-fs-routes/tsup.config.ts +++ b/packages/react-router-fs-routes/tsup.config.ts @@ -11,7 +11,7 @@ export default defineConfig([ { clean: true, entry, - format: ["cjs"], + format: ["esm"], outDir: "dist", dts: true, banner: { diff --git a/packages/react-router-node/.changes/major.switch-mjacksonnodefetchserver-remixrunnodefetchserver-can-directly-use.md b/packages/react-router-node/.changes/major.switch-mjacksonnodefetchserver-remixrunnodefetchserver-can-directly-use.md new file mode 100644 index 0000000000..a8e09c7a0c --- /dev/null +++ b/packages/react-router-node/.changes/major.switch-mjacksonnodefetchserver-remixrunnodefetchserver-can-directly-use.md @@ -0,0 +1 @@ +Switch from `@mjackson/node-fetch-server` to `@remix-run/node-fetch-server` now that we can directly use ESM-only packages diff --git a/packages/react-router-node/.changes/major.update-minimum-node-version-2212.md b/packages/react-router-node/.changes/major.update-minimum-node-version-2212.md new file mode 100644 index 0000000000..b0d1bbf11d --- /dev/null +++ b/packages/react-router-node/.changes/major.update-minimum-node-version-2212.md @@ -0,0 +1 @@ +Update minimum Node version to 22.12.0, the first version where `require(esm)` is enabled by default diff --git a/packages/react-router-node/jest.config.js b/packages/react-router-node/jest.config.js index 3327ee72ff..149e2170a5 100644 --- a/packages/react-router-node/jest.config.js +++ b/packages/react-router-node/jest.config.js @@ -1,5 +1,7 @@ +import sharedConfig from "../../jest/jest.config.shared.js"; + /** @type {import('jest').Config} */ -module.exports = { - ...require("../../jest/jest.config.shared"), +export default { + ...sharedConfig, displayName: "node", }; diff --git a/packages/react-router-node/package.json b/packages/react-router-node/package.json index 9b1251a58e..4fa493d538 100644 --- a/packages/react-router-node/package.json +++ b/packages/react-router-node/package.json @@ -1,5 +1,6 @@ { "name": "@react-router/node", + "type": "module", "version": "7.15.1", "description": "Node.js platform abstractions for React Router", "bugs": { @@ -15,19 +16,9 @@ "main": "dist/index.js", "exports": { ".": { - "node": { - "types": "./dist/index.d.ts", - "module-sync": "./dist/index.mjs", - "default": "./dist/index.js" - }, - "import": { - "types": "./dist/index.d.mts", - "default": "./dist/index.mjs" - }, - "default": { - "types": "./dist/index.d.ts", - "default": "./dist/index.js" - } + "types": "./dist/index.d.ts", + "module-sync": "./dist/index.js", + "default": "./dist/index.js" }, "./package.json": "./package.json" }, @@ -51,7 +42,7 @@ } }, "dependencies": { - "@mjackson/node-fetch-server": "^0.2.0" + "@remix-run/node-fetch-server": "^0.13.0" }, "devDependencies": { "react-router": "workspace:*", @@ -69,7 +60,7 @@ } }, "engines": { - "node": ">=20.0.0" + "node": ">=22.12.0" }, "files": [ "dist/", diff --git a/packages/react-router-node/server.ts b/packages/react-router-node/server.ts index d4423bfb61..441597e60a 100644 --- a/packages/react-router-node/server.ts +++ b/packages/react-router-node/server.ts @@ -1,5 +1,7 @@ import type { RequestListener } from "node:http"; +import type { ClientAddress } from "@remix-run/node-fetch-server"; +import { createRequestListener as createRequestListener_ } from "@remix-run/node-fetch-server"; import type { AppLoadContext, ServerBuild, @@ -7,8 +9,6 @@ import type { RouterContextProvider, } from "react-router"; import { createRequestHandler } from "react-router"; -import type { ClientAddress } from "@mjackson/node-fetch-server"; -import { createRequestListener as createRequestListener_ } from "@mjackson/node-fetch-server"; type MaybePromise = T | Promise; diff --git a/packages/react-router-node/tsconfig.json b/packages/react-router-node/tsconfig.json index 1301a0eb81..1ad51e0182 100644 --- a/packages/react-router-node/tsconfig.json +++ b/packages/react-router-node/tsconfig.json @@ -4,8 +4,8 @@ "compilerOptions": { "lib": ["DOM", "DOM.Iterable", "ES2022"], "target": "ES2022", - "module": "Node16", - "moduleResolution": "Node16", + "module": "ESNext", + "moduleResolution": "Bundler", "allowSyntheticDefaultImports": true, "strict": true, "jsx": "react", diff --git a/packages/react-router-node/tsup.config.ts b/packages/react-router-node/tsup.config.ts index f698117df2..baebdf1d0a 100644 --- a/packages/react-router-node/tsup.config.ts +++ b/packages/react-router-node/tsup.config.ts @@ -11,7 +11,7 @@ export default defineConfig([ { clean: true, entry, - format: ["cjs", "esm"], + format: ["esm"], outDir: "dist", dts: true, banner: { diff --git a/packages/react-router-remix-routes-option-adapter/jest.config.js b/packages/react-router-remix-routes-option-adapter/jest.config.js index 950851212e..eab84676c1 100644 --- a/packages/react-router-remix-routes-option-adapter/jest.config.js +++ b/packages/react-router-remix-routes-option-adapter/jest.config.js @@ -1,6 +1,7 @@ +import sharedConfig from "../../jest/jest.config.shared.js"; + /** @type {import('jest').Config} */ -module.exports = { - ...require("../../jest/jest.config.shared"), +export default { + ...sharedConfig, displayName: "remix-routes-option-adapter", - setupFiles: [], }; diff --git a/packages/react-router-remix-routes-option-adapter/package.json b/packages/react-router-remix-routes-option-adapter/package.json index e64868b444..d244521317 100644 --- a/packages/react-router-remix-routes-option-adapter/package.json +++ b/packages/react-router-remix-routes-option-adapter/package.json @@ -1,5 +1,6 @@ { "name": "@react-router/remix-routes-option-adapter", + "type": "module", "version": "7.15.1", "description": "Adapter for Remix's \"routes\" config option, for use within routes.ts", "bugs": { @@ -53,7 +54,7 @@ } }, "engines": { - "node": ">=20.0.0" + "node": ">=22.12.0" }, "files": [ "dist/", diff --git a/packages/react-router-remix-routes-option-adapter/tsup.config.ts b/packages/react-router-remix-routes-option-adapter/tsup.config.ts index 6f6a76db50..baebdf1d0a 100644 --- a/packages/react-router-remix-routes-option-adapter/tsup.config.ts +++ b/packages/react-router-remix-routes-option-adapter/tsup.config.ts @@ -11,7 +11,7 @@ export default defineConfig([ { clean: true, entry, - format: ["cjs"], + format: ["esm"], outDir: "dist", dts: true, banner: { diff --git a/packages/react-router-serve/.changes/major.switch-mjacksonnodefetchserver-remixrunnodefetchserver-can-directly-use.md b/packages/react-router-serve/.changes/major.switch-mjacksonnodefetchserver-remixrunnodefetchserver-can-directly-use.md new file mode 100644 index 0000000000..a8e09c7a0c --- /dev/null +++ b/packages/react-router-serve/.changes/major.switch-mjacksonnodefetchserver-remixrunnodefetchserver-can-directly-use.md @@ -0,0 +1 @@ +Switch from `@mjackson/node-fetch-server` to `@remix-run/node-fetch-server` now that we can directly use ESM-only packages diff --git a/packages/react-router-serve/.changes/major.update-minimum-node-version-2212.md b/packages/react-router-serve/.changes/major.update-minimum-node-version-2212.md new file mode 100644 index 0000000000..b0d1bbf11d --- /dev/null +++ b/packages/react-router-serve/.changes/major.update-minimum-node-version-2212.md @@ -0,0 +1 @@ +Update minimum Node version to 22.12.0, the first version where `require(esm)` is enabled by default diff --git a/packages/react-router-serve/bin.js b/packages/react-router-serve/bin.js index 0b2d4d9f03..ab20798855 100755 --- a/packages/react-router-serve/bin.js +++ b/packages/react-router-serve/bin.js @@ -1,7 +1,10 @@ #!/usr/bin/env node // If not already set, default `NODE_ENV=production` so React loads the proper -// version in it's CJS entry script +// version in its CJS entry script process.env.NODE_ENV = process.env.NODE_ENV ?? "production"; -require("./dist/cli"); +void import("./dist/cli.js").catch((error) => { + if (error) console.error(error); + process.exit(1); +}); diff --git a/packages/react-router-serve/cli.ts b/packages/react-router-serve/cli.ts index a8d7144838..0b90375069 100644 --- a/packages/react-router-serve/cli.ts +++ b/packages/react-router-serve/cli.ts @@ -5,7 +5,7 @@ import path from "node:path"; import url from "node:url"; import type { ServerBuild } from "react-router"; import { createRequestHandler } from "@react-router/express"; -import { createRequestListener } from "@mjackson/node-fetch-server"; +import { createRequestListener } from "@remix-run/node-fetch-server"; import compression from "compression"; import express from "express"; import morgan from "morgan"; diff --git a/packages/react-router-serve/package.json b/packages/react-router-serve/package.json index de0c4f7c1c..0fa2fd2331 100644 --- a/packages/react-router-serve/package.json +++ b/packages/react-router-serve/package.json @@ -1,5 +1,6 @@ { "name": "@react-router/serve", + "type": "module", "version": "7.15.1", "description": "Production application server for React Router", "bugs": { @@ -37,7 +38,7 @@ } }, "dependencies": { - "@mjackson/node-fetch-server": "^0.2.0", + "@remix-run/node-fetch-server": "^0.13.0", "@react-router/express": "workspace:*", "@react-router/node": "workspace:*", "compression": "^1.8.1", @@ -59,7 +60,7 @@ "wireit": "catalog:" }, "engines": { - "node": ">=20.0.0" + "node": ">=22.12.0" }, "files": [ "dist/", diff --git a/packages/react-router-serve/tsup.config.ts b/packages/react-router-serve/tsup.config.ts index 9bf81512e4..85924bcfb8 100644 --- a/packages/react-router-serve/tsup.config.ts +++ b/packages/react-router-serve/tsup.config.ts @@ -11,7 +11,7 @@ export default defineConfig([ { clean: true, entry, - format: ["cjs"], + format: ["esm"], outDir: "dist", dts: true, banner: { diff --git a/packages/react-router/.changes/major.remove-deprecated-data-parameter-favor-loaderdata.md b/packages/react-router/.changes/major.remove-deprecated-data-parameter-favor-loaderdata.md new file mode 100644 index 0000000000..a518db696e --- /dev/null +++ b/packages/react-router/.changes/major.remove-deprecated-data-parameter-favor-loaderdata.md @@ -0,0 +1,3 @@ +Remove deprecated `data` parameter in favor of `loaderData` for `meta` APIs (to align with `Route.ComponentProps`) + +- `Route.MetaArgs`, `Route.MetaMatch`, `MetaArgs`, `MetaMatch`, `Route.ComponentProps.matches`, `UIMatch` diff --git a/packages/react-router/.changes/major.update-minimum-node-version-2212.md b/packages/react-router/.changes/major.update-minimum-node-version-2212.md new file mode 100644 index 0000000000..b0d1bbf11d --- /dev/null +++ b/packages/react-router/.changes/major.update-minimum-node-version-2212.md @@ -0,0 +1 @@ +Update minimum Node version to 22.12.0, the first version where `require(esm)` is enabled by default diff --git a/packages/react-router/__tests__/__snapshots__/route-matching-test.tsx.snap b/packages/react-router/__tests__/__snapshots__/route-matching-test.tsx.snap index 15641631ec..d7b3d07516 100644 --- a/packages/react-router/__tests__/__snapshots__/route-matching-test.tsx.snap +++ b/packages/react-router/__tests__/__snapshots__/route-matching-test.tsx.snap @@ -1,4 +1,4 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing exports[`route matching using with elements renders the right elements at / 1`] = `

diff --git a/packages/react-router/__tests__/data-memory-router-test.tsx b/packages/react-router/__tests__/data-memory-router-test.tsx index b46e5d6576..a289014c7c 100644 --- a/packages/react-router/__tests__/data-memory-router-test.tsx +++ b/packages/react-router/__tests__/data-memory-router-test.tsx @@ -811,7 +811,6 @@ describe("createMemoryRouter", () => { await waitFor(() => screen.getByText("Bar")); expect(spy).toHaveBeenCalledWith("Layout", [ { - data: undefined, loaderData: undefined, handle: undefined, id: "0", @@ -819,7 +818,6 @@ describe("createMemoryRouter", () => { pathname: "/", }, { - data: "BAR LOADER", loaderData: "BAR LOADER", handle: { key: "value", diff --git a/packages/react-router/__tests__/dom/data-static-router-test.tsx b/packages/react-router/__tests__/dom/data-static-router-test.tsx index e2543258f1..650b9ccd13 100644 --- a/packages/react-router/__tests__/dom/data-static-router-test.tsx +++ b/packages/react-router/__tests__/dom/data-static-router-test.tsx @@ -112,9 +112,6 @@ describe("A ", () => { // @ts-expect-error expect(hooksData1.matches).toEqual([ { - data: { - key1: "value1", - }, loaderData: { key1: "value1", }, @@ -124,9 +121,6 @@ describe("A ", () => { pathname: "/the", }, { - data: { - key2: "value2", - }, loaderData: { key2: "value2", }, @@ -152,9 +146,6 @@ describe("A ", () => { // @ts-expect-error expect(hooksData2.matches).toEqual([ { - data: { - key1: "value1", - }, loaderData: { key1: "value1", }, @@ -164,9 +155,6 @@ describe("A ", () => { pathname: "/the", }, { - data: { - key2: "value2", - }, loaderData: { key2: "value2", }, @@ -271,9 +259,6 @@ describe("A ", () => { // @ts-expect-error expect(hooksData1.matches).toEqual([ { - data: { - key1: "value1", - }, loaderData: { key1: "value1", }, @@ -283,9 +268,6 @@ describe("A ", () => { pathname: "/the", }, { - data: { - key2: "value2", - }, loaderData: { key2: "value2", }, @@ -311,9 +293,6 @@ describe("A ", () => { // @ts-expect-error expect(hooksData2.matches).toEqual([ { - data: { - key1: "value1", - }, loaderData: { key1: "value1", }, @@ -323,9 +302,6 @@ describe("A ", () => { pathname: "/the", }, { - data: { - key2: "value2", - }, loaderData: { key2: "value2", }, diff --git a/packages/react-router/__tests__/dom/polyfills/drop-FormData-submitter.ts b/packages/react-router/__tests__/dom/polyfills/drop-FormData-submitter.ts index c3c93e0065..284d22026b 100644 --- a/packages/react-router/__tests__/dom/polyfills/drop-FormData-submitter.ts +++ b/packages/react-router/__tests__/dom/polyfills/drop-FormData-submitter.ts @@ -1,8 +1,11 @@ // Drop support for the submitter parameter, as in a legacy browser. This needs // to be a standalone module due to how jest requires things (i.e. we can't // just do this inline in data-browser-router-legacy-formdata-test.tsx) -window.FormData = class FormData extends window["FormData"] { +let FormDataWithoutSubmitter = class FormData extends window["FormData"] { constructor(form?: HTMLFormElement) { super(form, undefined); } }; + +window.FormData = FormDataWithoutSubmitter; +globalThis.FormData = FormDataWithoutSubmitter; diff --git a/packages/react-router/__tests__/dom/ssr/meta-test.tsx b/packages/react-router/__tests__/dom/ssr/meta-test.tsx index 3e5783b28f..ece98ad682 100644 --- a/packages/react-router/__tests__/dom/ssr/meta-test.tsx +++ b/packages/react-router/__tests__/dom/ssr/meta-test.tsx @@ -13,9 +13,9 @@ describe("meta", () => { { id: "root", path: "/", - meta: ({ data }) => [ - { name: "description", content: data.description }, - { title: data.title }, + meta: ({ loaderData }) => [ + { name: "description", content: loaderData.description }, + { title: loaderData.title }, ], Component() { return ( @@ -314,7 +314,7 @@ describe("meta", () => { let RoutesStub = createRoutesStub([ { path: "/", - meta: ({ data }) => data?.meta, + meta: ({ loaderData }) => loaderData.meta, loader: () => ({ meta: [ { diff --git a/packages/react-router/__tests__/router/fetchers-test.ts b/packages/react-router/__tests__/router/fetchers-test.ts index fea1fc24b4..ddf5f3271a 100644 --- a/packages/react-router/__tests__/router/fetchers-test.ts +++ b/packages/react-router/__tests__/router/fetchers-test.ts @@ -2301,26 +2301,26 @@ describe("fetchers", () => { expect(fetcherData.get(key)).toBe(1); expect(shouldRevalidate.mock.calls[0][0]).toMatchInlineSnapshot(` - { - "actionResult": null, - "actionStatus": undefined, - "currentParams": { - "a": "one", - }, - "currentUrl": "http://localhost/one", - "defaultShouldRevalidate": true, - "formAction": "/two/three", - "formData": FormData {}, - "formEncType": "application/x-www-form-urlencoded", - "formMethod": "POST", - "json": undefined, - "nextParams": { - "a": "two", - "b": "three", - }, - "nextUrl": "http://localhost/two/three", - "text": undefined, - } + { + "actionResult": null, + "actionStatus": undefined, + "currentParams": { + "a": "one", + }, + "currentUrl": "http://localhost/one", + "defaultShouldRevalidate": true, + "formAction": "/two/three", + "formData": FormDataWithSubmitter {}, + "formEncType": "application/x-www-form-urlencoded", + "formMethod": "POST", + "json": undefined, + "nextParams": { + "a": "two", + "b": "three", + }, + "nextUrl": "http://localhost/two/three", + "text": undefined, + } `); expect(router._internalFetchControllers.size).toBe(0); diff --git a/packages/react-router/__tests__/router/instrumentation-test.ts b/packages/react-router/__tests__/router/instrumentation-test.ts index 49d84ac871..151bbce1c2 100644 --- a/packages/react-router/__tests__/router/instrumentation-test.ts +++ b/packages/react-router/__tests__/router/instrumentation-test.ts @@ -2004,7 +2004,7 @@ describe("instrumentation", () => { get: expect.any(Function), }, }, - context: {}, + context: expect.anything(), }, ], ["loader"], @@ -2018,7 +2018,7 @@ describe("instrumentation", () => { get: expect.any(Function), }, }, - context: {}, + context: expect.anything(), }, ], ]); diff --git a/packages/react-router/__tests__/router/router-test.ts b/packages/react-router/__tests__/router/router-test.ts index 1e808f1df1..d7b67cae53 100644 --- a/packages/react-router/__tests__/router/router-test.ts +++ b/packages/react-router/__tests__/router/router-test.ts @@ -1,10 +1,7 @@ import type { HydrationState } from "../../lib/router/router"; import { createMemoryHistory } from "../../lib/router/history"; import { createRouter, IDLE_NAVIGATION } from "../../lib/router/router"; -import type { - AgnosticDataRouteObject, - AgnosticRouteObject, -} from "../../lib/router/utils"; +import type { DataRouteObject, RouteObject } from "../../lib/router/utils"; import { data, ErrorResponseImpl, redirect } from "../../lib/router/utils"; import { urlMatch } from "./utils/custom-matchers"; @@ -184,7 +181,7 @@ describe("a router", () => { }); it("throws if it finds index routes with children", async () => { - let routes: AgnosticRouteObject[] = [ + let routes: RouteObject[] = [ // @ts-expect-error { index: true, @@ -2736,7 +2733,7 @@ describe("a router", () => { it("should retain existing routes until revalidation completes on loader removal (fetch)", async () => { let rootDfd = createDeferred(); let fooDfd = createDeferred(); - let ogRoutes: AgnosticDataRouteObject[] = [ + let ogRoutes: DataRouteObject[] = [ { path: "/", id: "root", @@ -2777,7 +2774,7 @@ describe("a router", () => { expect(fetcherData.get(key)).toBe("FOO"); let rootDfd2 = createDeferred(); - let newRoutes: AgnosticDataRouteObject[] = [ + let newRoutes: DataRouteObject[] = [ { path: "/", id: "root", @@ -2846,7 +2843,7 @@ describe("a router", () => { it("should retain existing routes until revalidation completes on route removal (fetch)", async () => { let rootDfd = createDeferred(); let fooDfd = createDeferred(); - let ogRoutes: AgnosticDataRouteObject[] = [ + let ogRoutes: DataRouteObject[] = [ { path: "/", id: "root", @@ -2886,7 +2883,7 @@ describe("a router", () => { expect(fetcherData.get(key)).toBe("FOO"); let rootDfd2 = createDeferred(); - let newRoutes: AgnosticDataRouteObject[] = [ + let newRoutes: DataRouteObject[] = [ { path: "/", id: "root", diff --git a/packages/react-router/__tests__/router/should-revalidate-test.ts b/packages/react-router/__tests__/router/should-revalidate-test.ts index 707c270bfc..cb73b9dfa3 100644 --- a/packages/react-router/__tests__/router/should-revalidate-test.ts +++ b/packages/react-router/__tests__/router/should-revalidate-test.ts @@ -700,21 +700,21 @@ describe("shouldRevalidate", () => { let arg = shouldRevalidate.mock.calls[0][0]; expect(arg).toMatchInlineSnapshot(` - { - "actionResult": "FETCH", - "actionStatus": undefined, - "currentParams": {}, - "currentUrl": "http://localhost/", - "defaultShouldRevalidate": true, - "formAction": "/fetch", - "formData": FormData {}, - "formEncType": "application/x-www-form-urlencoded", - "formMethod": "POST", - "json": undefined, - "nextParams": {}, - "nextUrl": "http://localhost/", - "text": undefined, - } + { + "actionResult": "FETCH", + "actionStatus": undefined, + "currentParams": {}, + "currentUrl": "http://localhost/", + "defaultShouldRevalidate": true, + "formAction": "/fetch", + "formData": FormDataWithSubmitter {}, + "formEncType": "application/x-www-form-urlencoded", + "formMethod": "POST", + "json": undefined, + "nextParams": {}, + "nextUrl": "http://localhost/", + "text": undefined, + } `); expect(Object.fromEntries(arg.formData)).toEqual({ key: "value" }); @@ -763,21 +763,21 @@ describe("shouldRevalidate", () => { let arg = shouldRevalidate.mock.calls[0][0]; expect(arg).toMatchInlineSnapshot(` - { - "actionResult": undefined, - "actionStatus": undefined, - "currentParams": {}, - "currentUrl": "http://localhost/", - "defaultShouldRevalidate": true, - "formAction": "/fetch", - "formData": FormData {}, - "formEncType": "application/x-www-form-urlencoded", - "formMethod": "POST", - "json": undefined, - "nextParams": {}, - "nextUrl": "http://localhost/", - "text": undefined, - } + { + "actionResult": undefined, + "actionStatus": undefined, + "currentParams": {}, + "currentUrl": "http://localhost/", + "defaultShouldRevalidate": true, + "formAction": "/fetch", + "formData": FormDataWithSubmitter {}, + "formEncType": "application/x-www-form-urlencoded", + "formMethod": "POST", + "json": undefined, + "nextParams": {}, + "nextUrl": "http://localhost/", + "text": undefined, + } `); router.dispose(); diff --git a/packages/react-router/__tests__/router/ssr-test.ts b/packages/react-router/__tests__/router/ssr-test.ts index 3aa9b11512..4d5dfcd4a4 100644 --- a/packages/react-router/__tests__/router/ssr-test.ts +++ b/packages/react-router/__tests__/router/ssr-test.ts @@ -843,7 +843,7 @@ describe("ssr", () => { pattern: "/child", url: new URL("http://localhost/child"), params: {}, - context: {}, + context: expect.anything(), }); // @ts-expect-error let rootLoaderRequest = rootLoaderStub.mock.calls[0][0]?.request; @@ -856,7 +856,7 @@ describe("ssr", () => { pattern: "/child", url: new URL("http://localhost/child"), params: {}, - context: {}, + context: expect.anything(), }); // @ts-expect-error let childLoaderRequest = childLoaderStub.mock.calls[0][0]?.request; @@ -897,7 +897,7 @@ describe("ssr", () => { pattern: "/child", url: new URL("http://localhost/child"), params: {}, - context: {}, + context: expect.anything(), }); // @ts-expect-error let actionRequest = actionStub.mock.calls[0][0]?.request; @@ -914,7 +914,7 @@ describe("ssr", () => { pattern: "/child", url: new URL("http://localhost/child"), params: {}, - context: {}, + context: expect.anything(), }); // @ts-expect-error let rootLoaderRequest = rootLoaderStub.mock.calls[0][0]?.request; @@ -929,7 +929,7 @@ describe("ssr", () => { pattern: "/child", url: new URL("http://localhost/child"), params: {}, - context: {}, + context: expect.anything(), }); // @ts-expect-error let childLoaderRequest = childLoaderStub.mock.calls[0][0]?.request; diff --git a/packages/react-router/__tests__/router/utils/data-router-setup.ts b/packages/react-router/__tests__/router/utils/data-router-setup.ts index 4135bc9f30..6557faf51d 100644 --- a/packages/react-router/__tests__/router/utils/data-router-setup.ts +++ b/packages/react-router/__tests__/router/utils/data-router-setup.ts @@ -6,10 +6,7 @@ import type { RouterNavigateOptions, RouterInit, } from "../../../lib/router/router"; -import type { - AgnosticDataRouteObject, - AgnosticRouteMatch, -} from "../../../lib/router/utils"; +import type { DataRouteObject, RouteMatch } from "../../../lib/router/utils"; import { createRouter, IDLE_FETCHER } from "../../../lib/router/router"; import { createMemoryHistory, @@ -17,8 +14,8 @@ import { parsePath, } from "../../../lib/router/history"; import type { - AgnosticIndexRouteObject, - AgnosticNonIndexRouteObject, + IndexRouteObject, + NonIndexRouteObject, } from "../../../lib/router/utils"; import { matchRoutes, @@ -32,7 +29,7 @@ import { isRedirect, tick } from "./utils"; // indicating they want a stub. They get enhanced back to AgnosticRouteObjects // by our test harness export type TestIndexRouteObject = Pick< - AgnosticIndexRouteObject, + IndexRouteObject, | "id" | "index" | "path" @@ -47,7 +44,7 @@ export type TestIndexRouteObject = Pick< }; export type TestNonIndexRouteObject = Pick< - AgnosticNonIndexRouteObject, + NonIndexRouteObject, | "id" | "index" | "path" @@ -235,7 +232,7 @@ export function setup({ // active navigation loader/action function enhanceRoutes(_routes: TestRouteObject[]) { return _routes.map((r) => { - let enhancedRoute: AgnosticDataRouteObject = { + let enhancedRoute: DataRouteObject = { middleware: undefined, ...r, loader: undefined, @@ -299,7 +296,7 @@ export function setup({ ); }; } - if (!r.index && r.children) { + if (!r.index && "children" in r && r.children) { enhancedRoute.children = enhanceRoutes(r.children); } return enhancedRoute; @@ -419,7 +416,7 @@ export function setup({ } function getHelpers( - matches: AgnosticRouteMatch[], + matches: RouteMatch[], navigationId: number, addHelpers: (routeId: string, helpers: InternalHelpers) => void, ): Record { @@ -432,8 +429,8 @@ export function setup({ ); } - let inFlightRoutes: AgnosticDataRouteObject[] | undefined; - function _internalSetRoutes(routes: AgnosticDataRouteObject[]) { + let inFlightRoutes: DataRouteObject[] | undefined; + function _internalSetRoutes(routes: DataRouteObject[]) { inFlightRoutes = routes; currentRouter?._internalSetRoutes(routes); } diff --git a/packages/react-router/__tests__/setup.ts b/packages/react-router/__tests__/setup.ts index 423c0fb702..c8c4c50a90 100644 --- a/packages/react-router/__tests__/setup.ts +++ b/packages/react-router/__tests__/setup.ts @@ -1,41 +1,288 @@ +import { + ReadableStream, + TextDecoderStream, + TextEncoderStream, + TransformStream, + WritableStream, +} from "node:stream/web"; +import { TextDecoder, TextEncoder } from "node:util"; + // https://reactjs.org/blog/2022/03/08/react-18-upgrade-guide.html#configuring-your-testing-environment globalThis.IS_REACT_ACT_ENVIRONMENT = true; if (!globalThis.TextEncoder || !globalThis.TextDecoder) { - const { TextDecoder, TextEncoder } = require("node:util"); globalThis.TextEncoder = TextEncoder; globalThis.TextDecoder = TextDecoder; } if (!globalThis.ReadableStream || !globalThis.WritableStream) { - const { ReadableStream, WritableStream } = require("node:stream/web"); globalThis.ReadableStream = ReadableStream; globalThis.WritableStream = WritableStream; } +type SubmitterElement = HTMLButtonElement | HTMLInputElement; + +function isSubmitterElement( + element: Element | null, +): element is SubmitterElement { + return ( + element instanceof HTMLButtonElement || + (element instanceof HTMLInputElement && + (element.type === "submit" || element.type === "image")) + ); +} + +function getSubmitterElement(target: EventTarget | null) { + let element = + target instanceof Element ? target.closest("button, input") : null; + return isSubmitterElement(element) ? element : null; +} + +if ( + typeof window !== "undefined" && + window.FormData && + globalThis.FormData !== window.FormData +) { + globalThis.FormData = window.FormData; +} + +if (typeof document !== "undefined" && globalThis.FormData) { + let activeSubmitter: SubmitterElement | null = null; + let imageInputCoords = new WeakMap< + SubmitterElement, + { x: string; y: string } + >(); + let NativeFormData = globalThis.FormData; + + let cloneControl = (element: Element) => { + let clone = element.cloneNode(true) as Element; + + if ( + element instanceof HTMLInputElement && + clone instanceof HTMLInputElement + ) { + clone.checked = element.checked; + clone.value = element.value; + } else if ( + element instanceof HTMLTextAreaElement && + clone instanceof HTMLTextAreaElement + ) { + clone.value = element.value; + } else if ( + element instanceof HTMLSelectElement && + clone instanceof HTMLSelectElement + ) { + Array.from(element.options).forEach((option, index) => { + clone.options[index].selected = option.selected; + }); + } + + return clone; + }; + + let getControlEntries = (element: Element) => { + let form = document.createElement("form"); + form.appendChild(cloneControl(element)); + return Array.from(new NativeFormData(form).entries()); + }; + + let getSubmitterEntries = ( + submitter: SubmitterElement, + ): Array<[string, FormDataEntryValue]> => { + if (submitter instanceof HTMLInputElement && submitter.type === "image") { + let coords = imageInputCoords.get(submitter) ?? { x: "0", y: "0" }; + let prefix = submitter.name ? `${submitter.name}.` : ""; + return [ + [`${prefix}x`, coords.x], + [`${prefix}y`, coords.y], + ]; + } + + return submitter.name ? [[submitter.name, submitter.value]] : []; + }; + + let supportsFormDataSubmitter = () => { + let form = document.createElement("form"); + form.innerHTML = ` + + + + `; + let submitter = form.querySelector("button"); + if (!(submitter instanceof HTMLButtonElement)) { + return false; + } + + try { + return ( + JSON.stringify( + Array.from(new NativeFormData(form, submitter).entries()), + ) === + JSON.stringify([ + ["a", "1"], + ["b", "2"], + ["c", "3"], + ]) + ); + } catch { + return false; + } + }; + + if (!supportsFormDataSubmitter()) { + class FormDataWithSubmitter extends NativeFormData { + constructor(form?: HTMLFormElement, submitter?: SubmitterElement) { + if (submitter !== undefined && !isSubmitterElement(submitter)) { + throw new TypeError("Invalid submitter"); + } + + if ( + form instanceof HTMLFormElement && + submitter && + isSubmitterElement(submitter) + ) { + super(); + let elements = Array.from(form.elements).filter( + (element): element is Element => element instanceof Element, + ); + if ( + !elements.some( + (element) => + element === submitter || element.isSameNode(submitter), + ) + ) { + let index = elements.findIndex((element) => + Boolean( + submitter.compareDocumentPosition(element) & + Node.DOCUMENT_POSITION_FOLLOWING, + ), + ); + if (index >= 0) { + elements.splice(index, 0, submitter); + } else { + elements.push(submitter); + } + } + + for (let element of elements) { + if (!(element instanceof Element)) continue; + if (element === submitter || element.isSameNode(submitter)) { + for (let [key, value] of getSubmitterEntries(submitter)) { + this.append(key, value); + } + continue; + } + for (let [key, value] of getControlEntries(element)) { + this.append(key, value); + } + } + return; + } + + if (form instanceof HTMLFormElement) { + super(form); + return; + } + + super(); + } + } + + globalThis.FormData = FormDataWithSubmitter as typeof FormData; + window.FormData = globalThis.FormData; + } + + let supportsImageInputSubmit = () => { + let form = document.createElement("form"); + let input = document.createElement("input"); + input.type = "image"; + form.appendChild(input); + + let submitCount = 0; + form.addEventListener("submit", (event) => { + event.preventDefault(); + submitCount += 1; + }); + + input.click(); + return submitCount > 0; + }; + + // JSDOM submit events don't currently expose `SubmitEvent.submitter`. + document.addEventListener( + "click", + (event) => { + activeSubmitter = getSubmitterElement(event.target); + if ( + activeSubmitter instanceof HTMLInputElement && + activeSubmitter.type === "image" + ) { + imageInputCoords.set(activeSubmitter, { + x: String(event.clientX), + y: String(event.clientY), + }); + } + }, + true, + ); + if (!supportsImageInputSubmit()) { + document.addEventListener("click", (event) => { + let submitter = getSubmitterElement(event.target); + if ( + !event.defaultPrevented && + submitter instanceof HTMLInputElement && + submitter.type === "image" && + submitter.form + ) { + submitter.form.requestSubmit(submitter); + } + }); + } + document.addEventListener( + "submit", + (event) => { + if (!("submitter" in event)) { + Object.defineProperty(event, "submitter", { + configurable: true, + value: + event.target instanceof HTMLFormElement && + activeSubmitter?.form === event.target + ? activeSubmitter + : null, + }); + } + activeSubmitter = null; + }, + true, + ); +} + if (!globalThis.fetch) { - const { fetch, FormData, Request, Response, Headers } = require("undici"); + let { + fetch: undiciFetch, + FormData: UndiciFormData, + Headers: UndiciHeaders, + Request: UndiciRequest, + Response: UndiciResponse, + } = await import("undici"); - globalThis.fetch = fetch; - globalThis.Request = Request; - globalThis.Response = Response; - globalThis.Headers = Headers; + globalThis.fetch = undiciFetch; + globalThis.Request = UndiciRequest; + globalThis.Response = UndiciResponse; + globalThis.Headers = UndiciHeaders; - globalThis.FormData = globalThis.FormData || FormData; + globalThis.FormData = globalThis.FormData || UndiciFormData; } if (!globalThis.TextEncoderStream) { - const { TextEncoderStream } = require("node:stream/web"); globalThis.TextEncoderStream = TextEncoderStream; } if (!globalThis.TextDecoderStream) { - const { TextDecoderStream } = require("node:stream/web"); globalThis.TextDecoderStream = TextDecoderStream; } if (!globalThis.TransformStream) { - const { TransformStream } = require("node:stream/web"); globalThis.TransformStream = TransformStream; } diff --git a/packages/react-router/__tests__/utils/getWindow.ts b/packages/react-router/__tests__/utils/getWindow.ts index 78a3af7dd3..977e5d6a23 100644 --- a/packages/react-router/__tests__/utils/getWindow.ts +++ b/packages/react-router/__tests__/utils/getWindow.ts @@ -1,4 +1,13 @@ -import { JSDOM } from "jsdom"; +import path from "node:path"; +import { createRequire } from "node:module"; + +const nodeRequire = createRequire(import.meta.url); +const jestEnvironmentJsdomDir = path.dirname( + nodeRequire.resolve("jest-environment-jsdom/package.json"), +); +const { JSDOM } = nodeRequire( + path.join(jestEnvironmentJsdomDir, "../jsdom"), +) as typeof import("jsdom"); export default function getWindow(initialUrl: string, isHash = false): Window { // Need to use our own custom DOM in order to get a working history diff --git a/packages/react-router/jest.config.js b/packages/react-router/jest.config.js index dc45566ce5..507c0e1f31 100644 --- a/packages/react-router/jest.config.js +++ b/packages/react-router/jest.config.js @@ -1,7 +1,9 @@ +import sharedConfig from "../../jest/jest.config.shared.js"; + /** @type {import('jest').Config} */ -module.exports = { - ...require("../../jest/jest.config.shared"), - setupFiles: ["/__tests__/setup.ts"], +export default { + ...sharedConfig, + setupFiles: [...sharedConfig.setupFiles, "/__tests__/setup.ts"], setupFilesAfterEnv: ["@testing-library/jest-dom"], - testEnvironment: "jsdom", + testEnvironment: "jest-environment-jsdom", }; diff --git a/packages/react-router/lib/dom/lib.tsx b/packages/react-router/lib/dom/lib.tsx index b303a22a49..d32178b32b 100644 --- a/packages/react-router/lib/dom/lib.tsx +++ b/packages/react-router/lib/dom/lib.tsx @@ -1776,13 +1776,6 @@ interface SharedFormProps extends React.FormHTMLAttributes { */ preventScrollReset?: boolean; - /** - * A function to call when the form is submitted. If you call - * [`event.preventDefault()`](https://developer.mozilla.org/en-US/docs/Web/API/Event/preventDefault) - * then this form will not do anything. - */ - onSubmit?: React.FormEventHandler; - /** * Specify the default revalidation behavior after this submission * diff --git a/packages/react-router/lib/dom/ssr/components.tsx b/packages/react-router/lib/dom/ssr/components.tsx index a6474b8cc2..abff2b8877 100644 --- a/packages/react-router/lib/dom/ssr/components.tsx +++ b/packages/react-router/lib/dom/ssr/components.tsx @@ -634,7 +634,6 @@ export function Meta(): React.JSX.Element { let match: MetaMatch = { id: routeId, - data, loaderData: data, meta: [], params: _match.params, @@ -648,7 +647,6 @@ export function Meta(): React.JSX.Element { routeMeta = typeof routeModule.meta === "function" ? (routeModule.meta as MetaFunction)({ - data, loaderData: data, params, location, diff --git a/packages/react-router/lib/dom/ssr/routeModules.ts b/packages/react-router/lib/dom/ssr/routeModules.ts index 43a79a8ece..0c1f6aa983 100644 --- a/packages/react-router/lib/dom/ssr/routeModules.ts +++ b/packages/react-router/lib/dom/ssr/routeModules.ts @@ -131,10 +131,6 @@ export interface MetaMatch< > { id: RouteId; pathname: DataRouteMatch["pathname"]; - /** @deprecated Use `MetaMatch.loaderData` instead */ - data: Loader extends LoaderFunction | ClientLoaderFunction - ? SerializeFrom - : unknown; loaderData: Loader extends LoaderFunction | ClientLoaderFunction ? SerializeFrom : unknown; @@ -165,12 +161,6 @@ export interface MetaArgs< LoaderFunction | ClientLoaderFunction | unknown > = Record, > { - /** @deprecated Use `MetaArgs.loaderData` instead */ - data: - | (Loader extends LoaderFunction | ClientLoaderFunction - ? SerializeFrom - : unknown) - | undefined; loaderData: | (Loader extends LoaderFunction | ClientLoaderFunction ? SerializeFrom @@ -220,14 +210,14 @@ export interface MetaArgs< * "root": RootLoader, * "routes/sales": SalesLoader, * "routes/sales/customers": CustomersLoader, - * }> = ({ data, matches }) => { - * const { name } = data + * }> = ({ loaderData, matches }) => { + * const { name } = loaderData * // ^? string - * const { customerCount } = matches.find((match) => match.id === "routes/sales/customers").data + * const { customerCount } = matches.find((match) => match.id === "routes/sales/customers").loaderData * // ^? number - * const { salesCount } = matches.find((match) => match.id === "routes/sales").data + * const { salesCount } = matches.find((match) => match.id === "routes/sales").loaderData * // ^? number - * const { hello } = matches.find((match) => match.id === "root").data + * const { hello } = matches.find((match) => match.id === "root").loaderData * // ^? "world" * } * ``` diff --git a/packages/react-router/lib/router/router.ts b/packages/react-router/lib/router/router.ts index 90a98040ec..b4814f33a1 100644 --- a/packages/react-router/lib/router/router.ts +++ b/packages/react-router/lib/router/router.ts @@ -6922,7 +6922,8 @@ function createDataFunctionUrl(request: Request, path: To): URL { for (let value of indexValues.filter(Boolean)) { searchParams.append("index", value); } - url.search = searchParams.size ? `?${searchParams.toString()}` : ""; + let search = searchParams.toString(); + url.search = search ? `?${search}` : ""; } else { url.search = ""; } diff --git a/packages/react-router/lib/router/utils.ts b/packages/react-router/lib/router/utils.ts index c1ec6c55db..e187b340cc 100644 --- a/packages/react-router/lib/router/utils.ts +++ b/packages/react-router/lib/router/utils.ts @@ -1059,14 +1059,6 @@ export interface UIMatch { * {@link https://reactrouter.com/start/framework/routing#dynamic-segments Dynamic route params} for the matched route. */ params: RouteMatch["params"]; - /** - * The return value from the matched route's loader or clientLoader. This might - * be `undefined` if this route's `loader` (or a deeper route's `loader`) threw - * an error and we're currently displaying an `ErrorBoundary`. - * - * @deprecated Use `UIMatch.loaderData` instead - */ - data: Data | undefined; /** * The return value from the matched route's loader or clientLoader. This might * be `undefined` if this route's `loader` (or a deeper route's `loader`) threw @@ -1089,7 +1081,6 @@ export function convertRouteMatchToUiMatch( id: route.id, pathname, params, - data: loaderData[route.id], loaderData: loaderData[route.id], handle: route.handle, }; diff --git a/packages/react-router/lib/types/internal.ts b/packages/react-router/lib/types/internal.ts index 87e1104b05..bf683af2bd 100644 --- a/packages/react-router/lib/types/internal.ts +++ b/packages/react-router/lib/types/internal.ts @@ -1,9 +1,28 @@ export type { GetAnnotations } from "./route-module-annotations"; -import type { Params } from "./params"; -import type { RouteFiles } from "./register"; +import type { Register } from "react-router"; import type { GetLoaderData, GetActionData } from "./route-data"; -import type { RouteModule } from "./route-module.ts"; +import type { RouteModule } from "./route-module"; +import type { Normalize } from "./utils"; + +type AnyParams = Record; +type AnyPages = Record; +type Pages = Register extends { + pages: infer Registered extends AnyPages; +} + ? Registered + : AnyPages; + +type AnyRouteFiles = Record; +type RouteFiles = Register extends { + routeFiles: infer Registered extends AnyRouteFiles; +} + ? Registered + : AnyRouteFiles; + +type Params = Normalize< + Pages[RouteFiles[RouteFile]["page"]]["params"] +>; export type GetInfo = { diff --git a/packages/react-router/lib/types/route-module-annotations.ts b/packages/react-router/lib/types/route-module-annotations.ts index e4a98ed15b..8aa8d978a2 100644 --- a/packages/react-router/lib/types/route-module-annotations.ts +++ b/packages/react-router/lib/types/route-module-annotations.ts @@ -38,8 +38,6 @@ type MetaMatch = Pretty<{ params: Record; pathname: string; meta: MetaDescriptor[]; - /** @deprecated Use `MetaMatch.loaderData` instead */ - data: GetLoaderData; loaderData: GetLoaderData; handle?: unknown; error?: unknown; @@ -62,14 +60,6 @@ type CreateMetaArgs = { location: Location; /** {@link https://reactrouter.com/start/framework/routing#dynamic-segments Dynamic route params} for the current route. */ params: T["params"]; - /** - * The return value for this route's server loader function - * - * @deprecated Use `Route.MetaArgs.loaderData` instead - */ - data: - | T["loaderData"] - | (HasErrorBoundary extends true ? undefined : never); /** The return value for this route's server loader function */ loaderData: | T["loaderData"] @@ -143,8 +133,6 @@ type Match = Pretty<{ id: T["id"]; params: Record; pathname: string; - /** @deprecated Use `Match.loaderData` instead */ - data: GetLoaderData; loaderData: GetLoaderData; handle: unknown; }>; @@ -328,35 +316,5 @@ type __tests = [ }>["loaderData"], undefined > - >, - // Test that MetaArgs.data (deprecated) also follows the same pattern - Expect< - Equal< - CreateMetaArgs<{ - module: { - loader: () => { test: string }; - }; - loaderData: { test: string }; - params: unknown; - actionData: unknown; - matches: []; - }>["data"], - { test: string } - > - >, - Expect< - Equal< - CreateMetaArgs<{ - module: { - loader: () => { test: string }; - ErrorBoundary: Func; - }; - loaderData: { test: string }; - params: unknown; - actionData: unknown; - matches: []; - }>["data"], - { test: string } | undefined - > - >, + > ]; diff --git a/packages/react-router/package.json b/packages/react-router/package.json index 7498538c17..ec5f60ae17 100644 --- a/packages/react-router/package.json +++ b/packages/react-router/package.json @@ -1,5 +1,6 @@ { "name": "react-router", + "type": "module", "version": "7.15.1", "description": "Declarative routing for React", "keywords": [ @@ -18,88 +19,44 @@ "license": "MIT", "author": "Remix Software ", "sideEffects": false, - "types": "./dist/development/index.d.ts", - "main": "./dist/development/index.js", - "module": "./dist/development/index.mjs", "exports": { ".": { + "types": "./dist/production/index.d.ts", "react-server": { - "module": "./dist/development/index-react-server.mjs", - "default": "./dist/development/index-react-server.js" + "module-sync": { + "development": "./dist/development/index-react-server.js", + "default": "./dist/production/index-react-server.js" + }, + "development": "./dist/development/index-react-server.js", + "default": "./dist/production/index-react-server.js" }, - "node": { - "types": "./dist/development/index.d.ts", - "module": "./dist/development/index.mjs", - "module-sync": "./dist/development/index.mjs", - "default": "./dist/development/index.js" + "module-sync": { + "development": "./dist/development/index.js", + "default": "./dist/production/index.js" }, - "module": { - "types": "./dist/development/index.d.mts", - "default": "./dist/development/index.mjs" - }, - "import": { - "types": "./dist/development/index.d.mts", - "default": "./dist/development/index.mjs" - }, - "default": { - "types": "./dist/development/index.d.ts", - "default": "./dist/development/index.js" - } + "development": "./dist/development/index.js", + "default": "./dist/production/index.js" }, "./dom": { - "node": { - "types": "./dist/development/dom-export.d.ts", - "module": "./dist/development/dom-export.mjs", - "module-sync": "./dist/development/dom-export.mjs", - "default": "./dist/development/dom-export.js" - }, - "module": { - "types": "./dist/development/dom-export.d.mts", - "default": "./dist/development/dom-export.mjs" + "types": "./dist/production/dom-export.d.ts", + "module-sync": { + "development": "./dist/development/dom-export.js", + "default": "./dist/production/dom-export.js" }, - "import": { - "types": "./dist/development/dom-export.d.mts", - "default": "./dist/development/dom-export.mjs" - }, - "default": { - "types": "./dist/development/dom-export.d.ts", - "default": "./dist/development/dom-export.js" - } + "development": "./dist/development/dom-export.js", + "default": "./dist/production/dom-export.js" }, "./internal": { - "node": { - "types": "./dist/development/lib/types/internal.d.ts" - }, - "import": { - "types": "./dist/development/lib/types/internal.d.mts" - }, - "default": { - "types": "./dist/development/lib/types/index.d.ts" - } + "types": "./dist/development/lib/types/internal.d.ts" }, "./internal/react-server-client": { - "react-server": { - "module": "./dist/development/index-react-server-client.mjs", - "default": "./dist/development/index-react-server-client.js" - }, - "node": { - "types": "./dist/development/index.d.ts", - "module": "./dist/development/index.mjs", - "module-sync": "./dist/development/index.mjs", - "default": "./dist/development/index.js" - }, - "module": { - "types": "./dist/development/index.d.mts", - "default": "./dist/development/index.mjs" - }, - "import": { - "types": "./dist/development/index.d.mts", - "default": "./dist/development/index.mjs" + "types": "./dist/production/index-react-server-client.d.ts", + "module-sync": { + "development": "./dist/development/index-react-server-client.js", + "default": "./dist/production/index-react-server-client.js" }, - "default": { - "types": "./dist/development/index.d.ts", - "default": "./dist/development/index.js" - } + "development": "./dist/development/index-react-server-client.js", + "default": "./dist/production/index-react-server-client.js" }, "./package.json": "./package.json" }, @@ -158,6 +115,6 @@ "README.md" ], "engines": { - "node": ">=20.0.0" + "node": ">=22.12.0" } } diff --git a/packages/react-router/tsconfig.json b/packages/react-router/tsconfig.json index 8f3cb49e34..c42752a8a0 100644 --- a/packages/react-router/tsconfig.json +++ b/packages/react-router/tsconfig.json @@ -4,8 +4,8 @@ "compilerOptions": { "lib": ["ES2020", "DOM", "DOM.Iterable"], "target": "ES2020", - "module": "Node16", - "moduleResolution": "Node16", + "module": "ESNext", + "moduleResolution": "Bundler", "strict": true, "jsx": "react", @@ -19,7 +19,10 @@ "noEmit": true, "resolveJsonModule": true, "paths": { - "react-router": ["./index.ts"] + "react-router": ["./index.ts"], + "react-router/internal/react-server-client": [ + "./index-react-server-client.ts" + ] } } } diff --git a/packages/react-router/tsup.config.rsc.ts b/packages/react-router/tsup.config.rsc.ts index 3c350f1ee7..53cefe1dbb 100644 --- a/packages/react-router/tsup.config.rsc.ts +++ b/packages/react-router/tsup.config.rsc.ts @@ -10,25 +10,6 @@ const external = ["react-router", "react-router/internal/react-server-client"]; const config = (enableDevWarnings: boolean) => defineConfig([ - { - clean: false, - entry, - external, - format: ["cjs"], - removeNodeProtocol: false, - splitting: true, - outDir: enableDevWarnings ? "dist/development" : "dist/production", - dts: true, - banner: { - js: createBanner(pkg.name, pkg.version), - }, - define: { - "import.meta.hot": "undefined", - REACT_ROUTER_VERSION: JSON.stringify(pkg.version), - __DEV__: JSON.stringify(enableDevWarnings), - }, - treeshake: true, - }, { clean: false, entry, diff --git a/packages/react-router/tsup.config.ts b/packages/react-router/tsup.config.ts index e011390373..e2bbd48734 100644 --- a/packages/react-router/tsup.config.ts +++ b/packages/react-router/tsup.config.ts @@ -12,29 +12,14 @@ const entry = [ "lib/types/internal.ts", ]; +const external = ["react-router", "react-router/internal/react-server-client"]; + const config = (enableDevWarnings: boolean) => defineConfig([ { clean: false, entry, - format: ["cjs"], - splitting: true, - // Don't bundle `react-router` in sub-exports (i.e., `react-router/dom`) - external: ["react-router"], - outDir: enableDevWarnings ? "dist/development" : "dist/production", - dts: true, - banner: { - js: createBanner(pkg.name, pkg.version), - }, - define: { - "import.meta.hot": "undefined", - REACT_ROUTER_VERSION: JSON.stringify(pkg.version), - __DEV__: JSON.stringify(enableDevWarnings), - }, - }, - { - clean: false, - entry, + external, format: ["esm"], splitting: true, // We don't do the external thing for `react-router` here because it diff --git a/playground/framework-express/package.json b/playground/framework-express/package.json index d866f8f9ee..7185da353a 100644 --- a/playground/framework-express/package.json +++ b/playground/framework-express/package.json @@ -33,6 +33,6 @@ "vite": "^8.0.0" }, "engines": { - "node": ">=20.19.0" + "node": ">=22.12.0" } } diff --git a/playground/framework-spa/package.json b/playground/framework-spa/package.json index 20b0a15e2d..af7166aa59 100644 --- a/playground/framework-spa/package.json +++ b/playground/framework-spa/package.json @@ -25,6 +25,6 @@ "vite": "^8.0.0" }, "engines": { - "node": ">=20.19.0" + "node": ">=22.12.0" } } diff --git a/playground/framework-vite-5/package.json b/playground/framework-vite-5/package.json index 1f6cc67f12..ce97f176f6 100644 --- a/playground/framework-vite-5/package.json +++ b/playground/framework-vite-5/package.json @@ -27,6 +27,6 @@ "vite-tsconfig-paths": "^4.2.1" }, "engines": { - "node": ">=20.0.0" + "node": ">=22.12.0" } } diff --git a/playground/framework-vite-6/package.json b/playground/framework-vite-6/package.json index 78dbb2d18a..3764c85224 100644 --- a/playground/framework-vite-6/package.json +++ b/playground/framework-vite-6/package.json @@ -27,6 +27,6 @@ "vite-tsconfig-paths": "^4.2.1" }, "engines": { - "node": ">=20.0.0" + "node": ">=22.12.0" } } diff --git a/playground/framework-vite-7-beta/package.json b/playground/framework-vite-7-beta/package.json index 207e499fac..1e8d2f91a2 100644 --- a/playground/framework-vite-7-beta/package.json +++ b/playground/framework-vite-7-beta/package.json @@ -27,6 +27,6 @@ "vite-tsconfig-paths": "^4.2.1" }, "engines": { - "node": ">=20.0.0" + "node": ">=22.12.0" } } diff --git a/playground/framework/package.json b/playground/framework/package.json index f386574c50..fce916c91c 100644 --- a/playground/framework/package.json +++ b/playground/framework/package.json @@ -26,6 +26,6 @@ "vite": "^8.0.0" }, "engines": { - "node": ">=20.19.0" + "node": ">=22.12.0" } } diff --git a/playground/middleware/package.json b/playground/middleware/package.json index 85975d9b36..524438fdaf 100644 --- a/playground/middleware/package.json +++ b/playground/middleware/package.json @@ -37,6 +37,6 @@ "vite": "^8.0.0" }, "engines": { - "node": ">=20.19.0" + "node": ">=22.12.0" } } diff --git a/playground/performance/package.json b/playground/performance/package.json index 683fb9eb0f..9cb9c7ae2e 100644 --- a/playground/performance/package.json +++ b/playground/performance/package.json @@ -27,6 +27,6 @@ "vite": "^8.0.0" }, "engines": { - "node": ">=20.19.0" + "node": ">=22.12.0" } } diff --git a/playground/rsc-vite-7-framework/package.json b/playground/rsc-vite-7-framework/package.json index dec7b90fda..31808ff83d 100644 --- a/playground/rsc-vite-7-framework/package.json +++ b/playground/rsc-vite-7-framework/package.json @@ -28,7 +28,7 @@ "vite": "^7.3.1" }, "dependencies": { - "@mjackson/node-fetch-server": "0.6.1", + "@remix-run/node-fetch-server": "^0.13.0", "compression": "^1.8.1", "express": "^4.21.2", "react": "catalog:react-canary", diff --git a/playground/rsc-vite-7-framework/start-vite-middleware.js b/playground/rsc-vite-7-framework/start-vite-middleware.js index 33f48ef2c9..0d04e6e4b3 100644 --- a/playground/rsc-vite-7-framework/start-vite-middleware.js +++ b/playground/rsc-vite-7-framework/start-vite-middleware.js @@ -1,4 +1,4 @@ -import { createRequestListener } from "@mjackson/node-fetch-server"; +import { createRequestListener } from "@remix-run/node-fetch-server"; import express from "express"; const viteDevServer = diff --git a/playground/rsc-vite-7-framework/start.js b/playground/rsc-vite-7-framework/start.js index 91b7c93a3b..ee69fab674 100644 --- a/playground/rsc-vite-7-framework/start.js +++ b/playground/rsc-vite-7-framework/start.js @@ -1,4 +1,4 @@ -import { createRequestListener } from "@mjackson/node-fetch-server"; +import { createRequestListener } from "@remix-run/node-fetch-server"; import express from "express"; import reactRouterRequestHandler from "./build/server/index.js"; diff --git a/playground/rsc-vite-framework/app/routes/mdx-glob.$post/route.tsx b/playground/rsc-vite-framework/app/routes/mdx-glob.$post/route.tsx index 0ad3c2d7c0..c59ba8a014 100644 --- a/playground/rsc-vite-framework/app/routes/mdx-glob.$post/route.tsx +++ b/playground/rsc-vite-framework/app/routes/mdx-glob.$post/route.tsx @@ -2,7 +2,7 @@ import type { Route } from "./+types/route"; import { getPost } from "./posts/posts"; export async function loader({ params }: Route.LoaderArgs) { - const post = await getPost(params.post); + const post = await getPost(params.post as string); if (!post) { throw new Response("Not Found", { status: 404, statusText: "Not Found" }); diff --git a/playground/rsc-vite-framework/package.json b/playground/rsc-vite-framework/package.json index b210dae97d..1289683bab 100644 --- a/playground/rsc-vite-framework/package.json +++ b/playground/rsc-vite-framework/package.json @@ -29,7 +29,7 @@ "vite": "^8.0.0" }, "dependencies": { - "@mjackson/node-fetch-server": "0.6.1", + "@remix-run/node-fetch-server": "^0.13.0", "compression": "^1.8.1", "express": "^4.21.2", "react": "catalog:react-canary", diff --git a/playground/rsc-vite-framework/start-vite-middleware.js b/playground/rsc-vite-framework/start-vite-middleware.js index 33f48ef2c9..0d04e6e4b3 100644 --- a/playground/rsc-vite-framework/start-vite-middleware.js +++ b/playground/rsc-vite-framework/start-vite-middleware.js @@ -1,4 +1,4 @@ -import { createRequestListener } from "@mjackson/node-fetch-server"; +import { createRequestListener } from "@remix-run/node-fetch-server"; import express from "express"; const viteDevServer = diff --git a/playground/rsc-vite-framework/start.js b/playground/rsc-vite-framework/start.js index 91b7c93a3b..ee69fab674 100644 --- a/playground/rsc-vite-framework/start.js +++ b/playground/rsc-vite-framework/start.js @@ -1,4 +1,4 @@ -import { createRequestListener } from "@mjackson/node-fetch-server"; +import { createRequestListener } from "@remix-run/node-fetch-server"; import express from "express"; import reactRouterRequestHandler from "./build/server/index.js"; diff --git a/playground/rsc-vite/package.json b/playground/rsc-vite/package.json index 7f5b8e6767..c6cc1a72d2 100644 --- a/playground/rsc-vite/package.json +++ b/playground/rsc-vite/package.json @@ -21,7 +21,7 @@ "vite": "^6.3.0" }, "dependencies": { - "@mjackson/node-fetch-server": "0.6.1", + "@remix-run/node-fetch-server": "^0.13.0", "compression": "^1.8.1", "express": "^4.21.2", "react": "catalog:react-canary", diff --git a/playground/rsc-vite/server.js b/playground/rsc-vite/server.js index c897acd7ad..a572da1ec0 100644 --- a/playground/rsc-vite/server.js +++ b/playground/rsc-vite/server.js @@ -1,5 +1,5 @@ import { parseArgs } from "node:util"; -import { createRequestListener } from "@mjackson/node-fetch-server"; +import { createRequestListener } from "@remix-run/node-fetch-server"; import compression from "compression"; import express from "express"; diff --git a/playground/split-route-modules-spa/package.json b/playground/split-route-modules-spa/package.json index ba9e3b9e17..d51ce37716 100644 --- a/playground/split-route-modules-spa/package.json +++ b/playground/split-route-modules-spa/package.json @@ -25,6 +25,6 @@ "vite": "^8.0.0" }, "engines": { - "node": ">=20.19.0" + "node": ">=22.12.0" } } diff --git a/playground/split-route-modules/package.json b/playground/split-route-modules/package.json index 7c54f05683..94f4e3989d 100644 --- a/playground/split-route-modules/package.json +++ b/playground/split-route-modules/package.json @@ -26,6 +26,6 @@ "vite": "^8.0.0" }, "engines": { - "node": ">=20.19.0" + "node": ">=22.12.0" } } diff --git a/playground/vite-plugin-cloudflare/package.json b/playground/vite-plugin-cloudflare/package.json index 89a33bbce7..8b7459f068 100644 --- a/playground/vite-plugin-cloudflare/package.json +++ b/playground/vite-plugin-cloudflare/package.json @@ -32,6 +32,6 @@ "wrangler": "^4.23.0" }, "engines": { - "node": ">=20.0.0" + "node": ">=22.12.0" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4a2e547a06..2d4598a539 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -42,7 +42,6 @@ overrides: '@types/react': ^18.0.27 '@types/react-dom': ^18.0.10 '@types/react-test-renderer': ^18.3.1 - jsdom: 22.1.0 workerd: 1.20250705.0 react-is: 19.1.0 @@ -79,9 +78,12 @@ importers: '@playwright/test': specifier: ^1.58.2 version: 1.58.2 + '@remix-run/changelog-github': + specifier: ^0.0.5 + version: 0.0.5 '@types/jest': - specifier: ^29.5.4 - version: 29.5.12 + specifier: ^30.0.0 + version: 30.0.0 '@types/jsdom': specifier: ^21.1.1 version: 21.1.1 @@ -96,13 +98,13 @@ importers: version: 18.3.1 '@typescript-eslint/eslint-plugin': specifier: ^8.57.1 - version: 8.57.1(@typescript-eslint/parser@8.57.1(eslint@10.1.0(jiti@2.4.2))(typescript@5.4.5))(eslint@10.1.0(jiti@2.4.2))(typescript@5.4.5) + version: 8.57.2(@typescript-eslint/parser@8.57.2(eslint@10.1.0(jiti@2.4.2))(typescript@5.4.5))(eslint@10.1.0(jiti@2.4.2))(typescript@5.4.5) '@typescript-eslint/parser': specifier: ^8.57.1 - version: 8.57.1(eslint@10.1.0(jiti@2.4.2))(typescript@5.4.5) + version: 8.57.2(eslint@10.1.0(jiti@2.4.2))(typescript@5.4.5) babel-jest: - specifier: ^29.7.0 - version: 29.7.0(@babel/core@7.27.7) + specifier: ^30.3.0 + version: 30.3.0(@babel/core@7.27.7) babel-plugin-dev-expression: specifier: ^0.2.3 version: 0.2.3(@babel/core@7.27.7) @@ -114,19 +116,19 @@ importers: version: 10.1.0(jiti@2.4.2) eslint-config-react-app: specifier: ^7.0.1 - version: 7.0.1(@babel/plugin-syntax-flow@7.18.6(@babel/core@7.27.7))(@babel/plugin-transform-react-jsx@7.27.1(@babel/core@7.27.7))(eslint@10.1.0(jiti@2.4.2))(jest@29.7.0(@types/node@22.19.15)(babel-plugin-macros@3.1.0))(typescript@5.4.5) + version: 7.0.1(@babel/plugin-syntax-flow@7.18.6(@babel/core@7.27.7))(@babel/plugin-transform-react-jsx@7.27.1(@babel/core@7.27.7))(eslint@10.1.0(jiti@2.4.2))(jest@30.3.0(@types/node@20.19.37)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.4)))(typescript@5.4.5) eslint-plugin-flowtype: specifier: ^8.0.3 version: 8.0.3(@babel/plugin-syntax-flow@7.18.6(@babel/core@7.27.7))(@babel/plugin-transform-react-jsx@7.27.1(@babel/core@7.27.7))(eslint@10.1.0(jiti@2.4.2)) eslint-plugin-import: specifier: ^2.32.0 - version: 2.32.0(@typescript-eslint/parser@8.57.1(eslint@10.1.0(jiti@2.4.2))(typescript@5.4.5))(eslint@10.1.0(jiti@2.4.2)) + version: 2.32.0(@typescript-eslint/parser@8.57.2(eslint@10.1.0(jiti@2.4.2))(typescript@5.4.5))(eslint@10.1.0(jiti@2.4.2)) eslint-plugin-jest: specifier: ^29.15.0 - version: 29.15.0(@typescript-eslint/eslint-plugin@8.57.1(@typescript-eslint/parser@8.57.1(eslint@10.1.0(jiti@2.4.2))(typescript@5.4.5))(eslint@10.1.0(jiti@2.4.2))(typescript@5.4.5))(eslint@10.1.0(jiti@2.4.2))(jest@29.7.0(@types/node@22.19.15)(babel-plugin-macros@3.1.0))(typescript@5.4.5) + version: 29.15.1(@typescript-eslint/eslint-plugin@8.57.2(@typescript-eslint/parser@8.57.2(eslint@10.1.0(jiti@2.4.2))(typescript@5.4.5))(eslint@10.1.0(jiti@2.4.2))(typescript@5.4.5))(eslint@10.1.0(jiti@2.4.2))(jest@30.3.0(@types/node@20.19.37)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.4)))(typescript@5.4.5) eslint-plugin-jsdoc: specifier: ^62.8.0 - version: 62.8.0(eslint@10.1.0(jiti@2.4.2)) + version: 62.8.1(eslint@10.1.0(jiti@2.4.2)) eslint-plugin-jsx-a11y: specifier: ^6.10.2 version: 6.10.2(eslint@10.1.0(jiti@2.4.2)) @@ -135,7 +137,7 @@ importers: version: 7.37.5(eslint@10.1.0(jiti@2.4.2)) eslint-plugin-react-hooks: specifier: next - version: 7.1.1-canary-d1727fbf-20260417(eslint@10.1.0(jiti@2.4.2)) + version: 7.1.1-canary-d5736f09-20260507(eslint@10.1.0(jiti@2.4.2)) fast-glob: specifier: 3.2.11 version: 3.2.11 @@ -143,8 +145,14 @@ importers: specifier: ^5.1.11 version: 5.1.11 jest: - specifier: ^29.6.4 - version: 29.7.0(@types/node@22.19.15)(babel-plugin-macros@3.1.0) + specifier: ^30.3.0 + version: 30.3.0(@types/node@20.19.37)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.4)) + jest-environment-jsdom: + specifier: ^29.6.2 + version: 29.6.2 + jsdom: + specifier: ^29.0.0 + version: 29.0.1 jsonfile: specifier: ^6.1.0 version: 6.1.0 @@ -168,7 +176,7 @@ importers: version: 10.0.3 semver: specifier: ^7.5.4 - version: 7.7.4 + version: 7.7.2 typedoc: specifier: ^0.28.7 version: 0.28.7(typescript@5.4.5) @@ -183,10 +191,10 @@ importers: version: 3.1.1 vite: specifier: ^6.3.0 - version: 6.4.1(@types/node@22.19.15)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) + version: 6.4.1(@types/node@20.19.37)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) vitest: specifier: ^4.1.0 - version: 4.1.0(@types/node@22.19.15)(jsdom@22.1.0)(msw@2.7.5(@types/node@22.19.15)(typescript@5.4.5))(vite@6.4.1(@types/node@22.19.15)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)) + version: 4.1.1(@types/node@20.19.37)(jsdom@29.0.1)(msw@2.7.5(@types/node@20.19.37)(typescript@5.4.5))(vite@6.4.1(@types/node@20.19.37)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)) integration: dependencies: @@ -228,10 +236,10 @@ importers: version: 5.3.4 '@vanilla-extract/css': specifier: ^1.17.4 - version: 1.19.0(babel-plugin-macros@3.1.0) + version: 1.17.4(babel-plugin-macros@3.1.0) '@vanilla-extract/vite-plugin': specifier: ^5.1.1 - version: 5.2.0(@types/node@22.19.15)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0))(yaml@2.8.0) + version: 5.2.0(@types/node@22.19.18)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(vite@6.4.1(@types/node@22.19.18)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0))(yaml@2.8.0) cheerio: specifier: ^1.0.0-rc.12 version: 1.0.0 @@ -261,10 +269,10 @@ importers: version: 1.1.2 postcss: specifier: ^8.4.19 - version: 8.5.8 + version: 8.5.3 postcss-import: specifier: ^15.1.0 - version: 15.1.0(postcss@8.5.8) + version: 15.1.0(postcss@8.5.3) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -279,10 +287,10 @@ importers: version: link:../packages/react-router react-server-dom-webpack: specifier: 'catalog:' - version: 19.2.3(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(webpack@5.103.0) + version: 19.2.3(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(webpack@5.103.0(esbuild@0.27.4)) semver: specifier: ^7.7.2 - version: 7.7.4 + version: 7.7.2 serialize-javascript: specifier: ^6.0.1 version: 6.0.2 @@ -303,13 +311,13 @@ importers: version: 5.4.5 vite: specifier: ^6.3.0 - version: 6.4.1(@types/node@22.19.15)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) + version: 6.4.1(@types/node@22.19.18)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) vite-env-only: specifier: ^3.0.1 - version: 3.0.1(vite@6.4.1(@types/node@22.19.15)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)) + version: 3.0.1(vite@6.4.1(@types/node@22.19.18)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)) vite-tsconfig-paths: specifier: ^4.2.2 - version: 4.3.2(typescript@5.4.5)(vite@6.4.1(@types/node@22.19.15)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)) + version: 4.3.2(typescript@5.4.5)(vite@6.4.1(@types/node@22.19.18)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)) wait-on: specifier: ^7.0.1 version: 7.2.0 @@ -358,16 +366,16 @@ importers: version: 5.4.5 vite: specifier: ^6.3.0 - version: 6.4.1(@types/node@22.19.15)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) + version: 6.4.1(@types/node@22.19.18)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) wrangler: specifier: ^4.23.0 - version: 4.73.0(@cloudflare/workers-types@4.20250805.0) + version: 4.23.0(@cloudflare/workers-types@4.20250805.0) integration/helpers/rsc-vite: dependencies: - '@mjackson/node-fetch-server': - specifier: 0.6.1 - version: 0.6.1 + '@remix-run/node-fetch-server': + specifier: ^0.13.0 + version: 0.13.0 compression: specifier: ^1.8.1 version: 1.8.1 @@ -388,14 +396,14 @@ importers: version: link:../../../packages/react-router react-server-dom-webpack: specifier: catalog:react-canary - version: 19.2.3(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(webpack@5.103.0) + version: 19.2.3(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(webpack@5.103.0(esbuild@0.27.4)) devDependencies: '@types/express': specifier: ^5.0.0 version: 5.0.1 '@types/node': specifier: ^22.13.1 - version: 22.19.15 + version: 22.14.0 '@types/react': specifier: ^18.0.27 version: 18.2.18 @@ -404,25 +412,25 @@ importers: version: 18.2.7 '@vitejs/plugin-react': specifier: ^4.5.2 - version: 4.5.2(vite@6.4.1(@types/node@22.19.15)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)) + version: 4.5.2(vite@6.4.1(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)) '@vitejs/plugin-rsc': specifier: 'catalog:' - version: 0.5.21(react-dom@19.2.3(react@19.2.3))(react-server-dom-webpack@19.2.3(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(webpack@5.103.0))(react@19.2.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)) + version: 0.5.21(react-dom@19.2.3(react@19.2.3))(react-server-dom-webpack@19.2.3(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(webpack@5.103.0(esbuild@0.27.4)))(react@19.2.3)(vite@6.4.1(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)) typescript: specifier: 'catalog:' version: 5.4.5 vite: specifier: ^6.3.0 - version: 6.4.1(@types/node@22.19.15)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) + version: 6.4.1(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) integration/helpers/rsc-vite-framework: dependencies: - '@mjackson/node-fetch-server': - specifier: 0.6.1 - version: 0.6.1 '@react-router/serve': specifier: workspace:* version: link:../../../packages/react-router-serve + '@remix-run/node-fetch-server': + specifier: ^0.13.0 + version: 0.13.0 compression: specifier: ^1.8.1 version: 1.8.1 @@ -456,7 +464,7 @@ importers: version: 5.0.1 '@types/node': specifier: ^22.13.1 - version: 22.19.15 + version: 22.14.0 '@types/react': specifier: ^18.0.27 version: 18.2.18 @@ -465,16 +473,16 @@ importers: version: 18.2.7 '@vanilla-extract/css': specifier: ^1.17.4 - version: 1.19.0(babel-plugin-macros@3.1.0) + version: 1.17.4(babel-plugin-macros@3.1.0) '@vanilla-extract/vite-plugin': specifier: ^5.2.0 - version: 5.2.0(@types/node@22.19.15)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(vite@8.0.0(@types/node@22.19.15)(esbuild@0.27.4)(jiti@2.4.2)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0))(yaml@2.8.0) + version: 5.2.1(@types/node@22.14.0)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(vite@8.0.2(@types/node@22.14.0)(esbuild@0.27.4)(jiti@2.4.2)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0))(yaml@2.8.0) '@vitejs/plugin-react': specifier: ^6.0.1 - version: 6.0.1(vite@8.0.0(@types/node@22.19.15)(esbuild@0.27.4)(jiti@2.4.2)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)) + version: 6.0.1(vite@8.0.2(@types/node@22.14.0)(esbuild@0.27.4)(jiti@2.4.2)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)) '@vitejs/plugin-rsc': specifier: 'catalog:' - version: 0.5.21(react-dom@19.2.3(react@19.2.3))(react-server-dom-webpack@19.2.3(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(webpack@5.103.0(esbuild@0.27.4)))(react@19.2.3)(vite@8.0.0(@types/node@22.19.15)(esbuild@0.27.4)(jiti@2.4.2)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)) + version: 0.5.21(react-dom@19.2.3(react@19.2.3))(react-server-dom-webpack@19.2.3(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(webpack@5.103.0(esbuild@0.27.4)))(react@19.2.3)(vite@8.0.2(@types/node@22.14.0)(esbuild@0.27.4)(jiti@2.4.2)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)) cross-env: specifier: ^7.0.3 version: 7.0.3 @@ -483,10 +491,10 @@ importers: version: 5.4.5 vite: specifier: ^8.0.0 - version: 8.0.0(@types/node@22.19.15)(esbuild@0.27.4)(jiti@2.4.2)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) + version: 8.0.2(@types/node@22.14.0)(esbuild@0.27.4)(jiti@2.4.2)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) vite-env-only: specifier: ^3.0.1 - version: 3.0.1(vite@8.0.0(@types/node@22.19.15)(esbuild@0.27.4)(jiti@2.4.2)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)) + version: 3.0.1(vite@8.0.2(@types/node@22.14.0)(esbuild@0.27.4)(jiti@2.4.2)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)) integration/helpers/vite-5-template: dependencies: @@ -501,10 +509,10 @@ importers: version: link:../../../packages/react-router-serve '@vanilla-extract/css': specifier: ^1.17.4 - version: 1.19.0(babel-plugin-macros@3.1.0) + version: 1.17.4(babel-plugin-macros@3.1.0) '@vanilla-extract/vite-plugin': specifier: ^5.1.1 - version: 5.2.0(@types/node@22.19.15)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(vite@5.1.3(@types/node@22.19.15)(lightningcss@1.32.0)(terser@5.44.1))(yaml@2.8.0) + version: 5.2.0(@types/node@22.19.18)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(vite@5.1.3(@types/node@22.19.18)(lightningcss@1.32.0)(terser@5.44.1))(yaml@2.8.0) express: specifier: ^4.19.2 version: 4.21.2 @@ -547,13 +555,13 @@ importers: version: 5.4.5 vite: specifier: ^5.1.0 - version: 5.1.3(@types/node@22.19.15)(lightningcss@1.32.0)(terser@5.44.1) + version: 5.1.3(@types/node@22.19.18)(lightningcss@1.32.0)(terser@5.44.1) vite-env-only: specifier: ^3.0.1 - version: 3.0.1(vite@5.1.3(@types/node@22.19.15)(lightningcss@1.32.0)(terser@5.44.1)) + version: 3.0.1(vite@5.1.3(@types/node@22.19.18)(lightningcss@1.32.0)(terser@5.44.1)) vite-tsconfig-paths: specifier: ^4.2.1 - version: 4.3.2(typescript@5.4.5)(vite@5.1.3(@types/node@22.19.15)(lightningcss@1.32.0)(terser@5.44.1)) + version: 4.3.2(typescript@5.4.5)(vite@5.1.3(@types/node@22.19.18)(lightningcss@1.32.0)(terser@5.44.1)) integration/helpers/vite-6-template: dependencies: @@ -568,10 +576,10 @@ importers: version: link:../../../packages/react-router-serve '@vanilla-extract/css': specifier: ^1.17.4 - version: 1.19.0(babel-plugin-macros@3.1.0) + version: 1.17.4(babel-plugin-macros@3.1.0) '@vanilla-extract/vite-plugin': specifier: ^5.1.1 - version: 5.2.0(@types/node@22.19.15)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0))(yaml@2.8.0) + version: 5.2.0(@types/node@22.19.18)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(vite@6.4.1(@types/node@22.19.18)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0))(yaml@2.8.0) express: specifier: ^4.19.2 version: 4.21.2 @@ -614,13 +622,13 @@ importers: version: 5.4.5 vite: specifier: ^6.3.0 - version: 6.4.1(@types/node@22.19.15)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) + version: 6.4.1(@types/node@22.19.18)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) vite-env-only: specifier: ^3.0.1 - version: 3.0.1(vite@6.4.1(@types/node@22.19.15)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)) + version: 3.0.1(vite@6.4.1(@types/node@22.19.18)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)) vite-tsconfig-paths: specifier: ^4.2.1 - version: 4.3.2(typescript@5.4.5)(vite@6.4.1(@types/node@22.19.15)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)) + version: 4.3.2(typescript@5.4.5)(vite@6.4.1(@types/node@22.19.18)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)) integration/helpers/vite-7-beta-template: dependencies: @@ -635,10 +643,10 @@ importers: version: link:../../../packages/react-router-serve '@vanilla-extract/css': specifier: ^1.17.4 - version: 1.19.0(babel-plugin-macros@3.1.0) + version: 1.17.4(babel-plugin-macros@3.1.0) '@vanilla-extract/vite-plugin': specifier: ^5.1.1 - version: 5.2.0(@types/node@22.19.15)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(vite@7.0.0-beta.0(@types/node@22.19.15)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0))(yaml@2.8.0) + version: 5.2.0(@types/node@22.19.18)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(vite@7.0.0-beta.0(@types/node@22.19.18)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0))(yaml@2.8.0) express: specifier: ^4.19.2 version: 4.21.2 @@ -681,13 +689,13 @@ importers: version: 5.4.5 vite: specifier: 7.0.0-beta.0 - version: 7.0.0-beta.0(@types/node@22.19.15)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) + version: 7.0.0-beta.0(@types/node@22.19.18)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) vite-env-only: specifier: ^3.0.1 - version: 3.0.1(vite@7.0.0-beta.0(@types/node@22.19.15)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)) + version: 3.0.1(vite@7.0.0-beta.0(@types/node@22.19.18)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)) vite-tsconfig-paths: specifier: ^4.2.1 - version: 4.3.2(typescript@5.4.5)(vite@7.0.0-beta.0(@types/node@22.19.15)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)) + version: 4.3.2(typescript@5.4.5)(vite@7.0.0-beta.0(@types/node@22.19.18)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)) integration/helpers/vite-8-template: dependencies: @@ -702,10 +710,10 @@ importers: version: link:../../../packages/react-router-serve '@vanilla-extract/css': specifier: ^1.17.4 - version: 1.19.0(babel-plugin-macros@3.1.0) + version: 1.17.4(babel-plugin-macros@3.1.0) '@vanilla-extract/vite-plugin': specifier: ^5.2.0 - version: 5.2.0(@types/node@22.19.15)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(vite@8.0.0(@types/node@22.19.15)(esbuild@0.27.4)(jiti@2.4.2)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0))(yaml@2.8.0) + version: 5.2.1(@types/node@22.19.18)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(vite@8.0.2(@types/node@22.19.18)(esbuild@0.27.4)(jiti@2.4.2)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0))(yaml@2.8.0) express: specifier: ^4.19.2 version: 4.21.2 @@ -748,10 +756,10 @@ importers: version: 5.4.5 vite: specifier: ^8.0.0 - version: 8.0.0(@types/node@22.19.15)(esbuild@0.27.4)(jiti@2.4.2)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) + version: 8.0.2(@types/node@22.19.18)(esbuild@0.27.4)(jiti@2.4.2)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) vite-env-only: specifier: ^3.0.1 - version: 3.0.1(vite@8.0.0(@types/node@22.19.15)(esbuild@0.27.4)(jiti@2.4.2)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)) + version: 3.0.1(vite@8.0.2(@types/node@22.19.18)(esbuild@0.27.4)(jiti@2.4.2)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)) integration/helpers/vite-plugin-cloudflare-template: dependencies: @@ -776,7 +784,7 @@ importers: devDependencies: '@cloudflare/vite-plugin': specifier: ^1.9.0 - version: 1.28.0(vite@6.4.1(@types/node@20.19.37)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0))(workerd@1.20250705.0)(wrangler@4.73.0) + version: 1.9.0(rollup@4.43.0)(vite@6.4.1(@types/node@20.11.30)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0))(workerd@1.20250705.0)(wrangler@4.23.0(@cloudflare/workers-types@4.20250805.0)) '@react-router/dev': specifier: workspace:* version: link:../../../packages/react-router-dev @@ -785,7 +793,7 @@ importers: version: link:../../../packages/react-router-fs-routes '@types/node': specifier: ^20.0.0 - version: 20.19.37 + version: 20.11.30 '@types/react': specifier: ^18.0.27 version: 18.2.18 @@ -800,19 +808,16 @@ importers: version: 5.4.5 vite: specifier: ^6.3.0 - version: 6.4.1(@types/node@20.19.37)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) + version: 6.4.1(@types/node@20.11.30)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) vite-tsconfig-paths: specifier: ^4.2.1 - version: 4.3.2(typescript@5.4.5)(vite@6.4.1(@types/node@20.19.37)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)) + version: 4.3.2(typescript@5.4.5)(vite@6.4.1(@types/node@20.11.30)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)) wrangler: specifier: ^4.23.0 - version: 4.73.0(@cloudflare/workers-types@4.20250805.0) + version: 4.23.0(@cloudflare/workers-types@4.20250805.0) packages/create-react-router: dependencies: - '@remix-run/web-fetch': - specifier: ^4.4.2 - version: 4.4.2 arg: specifier: ^5.0.1 version: 5.0.2 @@ -828,12 +833,9 @@ importers: picocolors: specifier: ^1.1.1 version: 1.1.1 - proxy-agent: - specifier: ^6.3.0 - version: 6.4.0 semver: specifier: ^7.3.7 - version: 7.7.4 + version: 7.7.2 sisteransi: specifier: ^1.0.5 version: 1.0.5 @@ -867,7 +869,7 @@ importers: version: 3.6.0(esbuild@0.25.0) msw: specifier: ^2.7.5 - version: 2.7.5(@types/node@22.19.15)(typescript@5.4.5) + version: 2.7.5(@types/node@22.19.18)(typescript@5.4.5) tiny-invariant: specifier: ^1.2.0 version: 1.3.3 @@ -885,7 +887,7 @@ importers: dependencies: cookie: specifier: ^1.0.1 - version: 1.1.1 + version: 1.0.1 set-cookie-parser: specifier: ^2.6.0 version: 2.6.0 @@ -947,7 +949,7 @@ importers: version: 3.6.2 '@types/node': specifier: ^20.0.0 - version: 20.19.37 + version: 20.11.30 lambda-tester: specifier: ^4.0.1 version: 4.0.1 @@ -1067,16 +1069,16 @@ importers: version: 19.2.3(react-dom@19.3.0-canary-d763f313-20251210(react@19.3.0-canary-d763f313-20251210))(react@19.3.0-canary-d763f313-20251210)(webpack@5.103.0(@swc/core@1.11.24)(esbuild@0.27.4)) semver: specifier: ^7.3.7 - version: 7.7.4 + version: 7.7.2 tinyglobby: specifier: ^0.2.14 - version: 0.2.15 + version: 0.2.14 valibot: specifier: ^1.2.0 version: 1.2.0(typescript@5.4.5) vite-node: specifier: ^3.2.2 - version: 3.2.4(@types/node@20.19.37)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) + version: 3.2.4(@types/node@20.11.30)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) devDependencies: '@react-router/serve': specifier: workspace:* @@ -1107,7 +1109,7 @@ importers: version: 4.17.0 '@types/node': specifier: ^20.0.0 - version: 20.19.37 + version: 20.11.30 '@types/npmcli__package-json': specifier: ^4.0.0 version: 4.0.4 @@ -1116,7 +1118,7 @@ importers: version: 7.7.0 '@vitejs/plugin-rsc': specifier: 'catalog:' - version: 0.5.21(react-dom@19.3.0-canary-d763f313-20251210(react@19.3.0-canary-d763f313-20251210))(react-server-dom-webpack@19.2.3(react-dom@19.3.0-canary-d763f313-20251210(react@19.3.0-canary-d763f313-20251210))(react@19.3.0-canary-d763f313-20251210)(webpack@5.103.0(@swc/core@1.11.24)(esbuild@0.27.4)))(react@19.3.0-canary-d763f313-20251210)(vite@6.4.1(@types/node@20.19.37)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)) + version: 0.5.21(react-dom@19.3.0-canary-d763f313-20251210(react@19.3.0-canary-d763f313-20251210))(react-server-dom-webpack@19.2.3(react-dom@19.3.0-canary-d763f313-20251210(react@19.3.0-canary-d763f313-20251210))(react@19.3.0-canary-d763f313-20251210)(webpack@5.103.0(@swc/core@1.11.24)(esbuild@0.27.4)))(react@19.3.0-canary-d763f313-20251210)(vite@6.4.1(@types/node@20.11.30)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)) esbuild-register: specifier: ^3.6.0 version: 3.6.0(esbuild@0.27.4) @@ -1140,13 +1142,13 @@ importers: version: 5.4.5 vite: specifier: ^6.3.0 - version: 6.4.1(@types/node@20.19.37)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) + version: 6.4.1(@types/node@20.11.30)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) wireit: specifier: 'catalog:' version: 0.14.9 wrangler: specifier: ^4.23.0 - version: 4.73.0(@cloudflare/workers-types@4.20250805.0) + version: 4.23.0(@cloudflare/workers-types@4.20250805.0) packages/react-router-dom: dependencies: @@ -1184,7 +1186,7 @@ importers: version: 4.17.21 '@types/node': specifier: ^20.0.0 - version: 20.19.37 + version: 20.11.30 '@types/supertest': specifier: ^2.0.10 version: 2.0.16 @@ -1228,9 +1230,9 @@ importers: packages/react-router-node: dependencies: - '@mjackson/node-fetch-server': - specifier: ^0.2.0 - version: 0.2.0 + '@remix-run/node-fetch-server': + specifier: ^0.13.0 + version: 0.13.0 devDependencies: react-router: specifier: workspace:* @@ -1262,15 +1264,15 @@ importers: packages/react-router-serve: dependencies: - '@mjackson/node-fetch-server': - specifier: ^0.2.0 - version: 0.2.0 '@react-router/express': specifier: workspace:* version: link:../react-router-express '@react-router/node': specifier: workspace:* version: link:../react-router-node + '@remix-run/node-fetch-server': + specifier: ^0.13.0 + version: 0.13.0 compression: specifier: ^1.8.1 version: 1.8.1 @@ -1332,13 +1334,13 @@ importers: version: 18.2.7 '@vitejs/plugin-react': specifier: ^4 - version: 4.5.2(vite@6.4.1(@types/node@22.19.15)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)) + version: 4.5.2(vite@6.4.1(@types/node@22.19.18)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)) typescript: specifier: 'catalog:' version: 5.4.5 vite: specifier: 6.4.1 - version: 6.4.1(@types/node@22.19.15)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) + version: 6.4.1(@types/node@22.19.18)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) playground/framework: dependencies: @@ -1375,7 +1377,7 @@ importers: version: 5.4.5 vite: specifier: ^8.0.0 - version: 8.0.0(@types/node@22.19.15)(esbuild@0.27.4)(jiti@2.4.2)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) + version: 8.0.2(@types/node@22.19.18)(esbuild@0.27.4)(jiti@2.4.2)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) playground/framework-express: dependencies: @@ -1433,7 +1435,7 @@ importers: version: 5.4.5 vite: specifier: ^8.0.0 - version: 8.0.0(@types/node@22.19.15)(esbuild@0.27.4)(jiti@2.4.2)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) + version: 8.0.2(@types/node@22.19.18)(esbuild@0.27.4)(jiti@2.4.2)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) playground/framework-spa: dependencies: @@ -1467,7 +1469,7 @@ importers: version: 5.4.5 vite: specifier: ^8.0.0 - version: 8.0.0(@types/node@22.19.15)(esbuild@0.27.4)(jiti@2.4.2)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) + version: 8.0.2(@types/node@22.19.18)(esbuild@0.27.4)(jiti@2.4.2)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) playground/framework-vite-5: dependencies: @@ -1504,10 +1506,10 @@ importers: version: 5.4.5 vite: specifier: ^5.1.0 - version: 5.1.3(@types/node@22.19.15)(lightningcss@1.32.0)(terser@5.44.1) + version: 5.1.3(@types/node@22.19.18)(lightningcss@1.32.0)(terser@5.44.1) vite-tsconfig-paths: specifier: ^4.2.1 - version: 4.3.2(typescript@5.4.5)(vite@5.1.3(@types/node@22.19.15)(lightningcss@1.32.0)(terser@5.44.1)) + version: 4.3.2(typescript@5.4.5)(vite@5.1.3(@types/node@22.19.18)(lightningcss@1.32.0)(terser@5.44.1)) playground/framework-vite-6: dependencies: @@ -1544,10 +1546,10 @@ importers: version: 5.4.5 vite: specifier: ^6.3.0 - version: 6.4.1(@types/node@22.19.15)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) + version: 6.4.1(@types/node@22.19.18)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) vite-tsconfig-paths: specifier: ^4.2.1 - version: 4.3.2(typescript@5.4.5)(vite@6.4.1(@types/node@22.19.15)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)) + version: 4.3.2(typescript@5.4.5)(vite@6.4.1(@types/node@22.19.18)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)) playground/framework-vite-7-beta: dependencies: @@ -1584,10 +1586,10 @@ importers: version: 5.4.5 vite: specifier: 7.0.0-beta.0 - version: 7.0.0-beta.0(@types/node@22.19.15)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) + version: 7.0.0-beta.0(@types/node@22.19.18)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) vite-tsconfig-paths: specifier: ^4.2.1 - version: 4.3.2(typescript@5.4.5)(vite@7.0.0-beta.0(@types/node@22.19.15)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)) + version: 4.3.2(typescript@5.4.5)(vite@7.0.0-beta.0(@types/node@22.19.18)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)) playground/middleware: dependencies: @@ -1657,7 +1659,7 @@ importers: version: 5.4.5 vite: specifier: ^8.0.0 - version: 8.0.0(@types/node@20.19.37)(esbuild@0.27.4)(jiti@2.4.2)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) + version: 8.0.2(@types/node@20.19.37)(esbuild@0.27.4)(jiti@2.4.2)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) playground/performance: dependencies: @@ -1694,13 +1696,13 @@ importers: version: 5.4.5 vite: specifier: ^8.0.0 - version: 8.0.0(@types/node@22.19.15)(esbuild@0.27.4)(jiti@2.4.2)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) + version: 8.0.0(@types/node@22.19.18)(esbuild@0.27.4)(jiti@2.4.2)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) playground/rsc-vite: dependencies: - '@mjackson/node-fetch-server': - specifier: 0.6.1 - version: 0.6.1 + '@remix-run/node-fetch-server': + specifier: ^0.13.0 + version: 0.13.0 compression: specifier: ^1.8.1 version: 1.8.1 @@ -1718,14 +1720,14 @@ importers: version: link:../../packages/react-router react-server-dom-webpack: specifier: catalog:react-canary - version: 19.2.3(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(webpack@5.103.0) + version: 19.2.3(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(webpack@5.103.0(esbuild@0.27.4)) devDependencies: '@types/express': specifier: ^5.0.0 version: 5.0.1 '@types/node': specifier: ^22.13.1 - version: 22.19.15 + version: 22.14.0 '@types/react': specifier: ^18.0.27 version: 18.2.18 @@ -1734,10 +1736,10 @@ importers: version: 18.2.7 '@vitejs/plugin-react': specifier: ^4.5.2 - version: 4.5.2(vite@6.4.1(@types/node@22.19.15)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)) + version: 4.5.2(vite@6.4.1(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)) '@vitejs/plugin-rsc': specifier: 'catalog:' - version: 0.5.21(react-dom@19.2.3(react@19.2.3))(react-server-dom-webpack@19.2.3(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(webpack@5.103.0))(react@19.2.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)) + version: 0.5.21(react-dom@19.2.3(react@19.2.3))(react-server-dom-webpack@19.2.3(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(webpack@5.103.0(esbuild@0.27.4)))(react@19.2.3)(vite@6.4.1(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)) cross-env: specifier: ^7.0.3 version: 7.0.3 @@ -1746,13 +1748,13 @@ importers: version: 5.4.5 vite: specifier: ^6.3.0 - version: 6.4.1(@types/node@22.19.15)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) + version: 6.4.1(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) playground/rsc-vite-7-framework: dependencies: - '@mjackson/node-fetch-server': - specifier: 0.6.1 - version: 0.6.1 + '@remix-run/node-fetch-server': + specifier: ^0.13.0 + version: 0.13.0 compression: specifier: ^1.8.1 version: 1.8.1 @@ -1770,7 +1772,7 @@ importers: version: link:../../packages/react-router react-server-dom-webpack: specifier: catalog:react-canary - version: 19.2.3(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(webpack@5.103.0) + version: 19.2.3(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(webpack@5.103.0(esbuild@0.27.4)) remix-utils: specifier: ^8.7.0 version: 8.7.0(react-router@packages+react-router)(react@19.2.3)(zod@3.24.2) @@ -1792,7 +1794,7 @@ importers: version: 5.0.1 '@types/node': specifier: ^22.13.1 - version: 22.19.15 + version: 22.14.0 '@types/react': specifier: ^18.0.27 version: 18.2.18 @@ -1801,7 +1803,7 @@ importers: version: 18.2.7 '@vitejs/plugin-rsc': specifier: 'catalog:' - version: 0.5.21(react-dom@19.2.3(react@19.2.3))(react-server-dom-webpack@19.2.3(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(webpack@5.103.0))(react@19.2.3)(vite@7.3.1(@types/node@22.19.15)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)) + version: 0.5.21(react-dom@19.2.3(react@19.2.3))(react-server-dom-webpack@19.2.3(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(webpack@5.103.0(esbuild@0.27.4)))(react@19.2.3)(vite@7.3.1(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)) cross-env: specifier: ^7.0.3 version: 7.0.3 @@ -1816,13 +1818,13 @@ importers: version: 5.4.5 vite: specifier: ^7.3.1 - version: 7.3.1(@types/node@22.19.15)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) + version: 7.3.1(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) playground/rsc-vite-framework: dependencies: - '@mjackson/node-fetch-server': - specifier: 0.6.1 - version: 0.6.1 + '@remix-run/node-fetch-server': + specifier: ^0.13.0 + version: 0.13.0 compression: specifier: ^1.8.1 version: 1.8.1 @@ -1862,7 +1864,7 @@ importers: version: 5.0.1 '@types/node': specifier: ^22.13.1 - version: 22.19.15 + version: 22.14.0 '@types/react': specifier: ^18.0.27 version: 18.2.18 @@ -1871,10 +1873,10 @@ importers: version: 18.2.7 '@vitejs/plugin-react': specifier: ^6.0.1 - version: 6.0.1(vite@8.0.0(@types/node@22.19.15)(esbuild@0.27.4)(jiti@2.4.2)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)) + version: 6.0.1(vite@8.0.2(@types/node@22.14.0)(esbuild@0.27.4)(jiti@2.4.2)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)) '@vitejs/plugin-rsc': specifier: 'catalog:' - version: 0.5.21(react-dom@19.2.3(react@19.2.3))(react-server-dom-webpack@19.2.3(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(webpack@5.103.0(esbuild@0.27.4)))(react@19.2.3)(vite@8.0.0(@types/node@22.19.15)(esbuild@0.27.4)(jiti@2.4.2)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)) + version: 0.5.21(react-dom@19.2.3(react@19.2.3))(react-server-dom-webpack@19.2.3(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(webpack@5.103.0(esbuild@0.27.4)))(react@19.2.3)(vite@8.0.2(@types/node@22.14.0)(esbuild@0.27.4)(jiti@2.4.2)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)) cross-env: specifier: ^7.0.3 version: 7.0.3 @@ -1889,7 +1891,7 @@ importers: version: 5.4.5 vite: specifier: ^8.0.0 - version: 8.0.0(@types/node@22.19.15)(esbuild@0.27.4)(jiti@2.4.2)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) + version: 8.0.2(@types/node@22.14.0)(esbuild@0.27.4)(jiti@2.4.2)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) playground/split-route-modules: dependencies: @@ -1926,7 +1928,7 @@ importers: version: 5.4.5 vite: specifier: ^8.0.0 - version: 8.0.0(@types/node@22.19.15)(esbuild@0.27.4)(jiti@2.4.2)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) + version: 8.0.2(@types/node@22.19.18)(esbuild@0.27.4)(jiti@2.4.2)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) playground/split-route-modules-spa: dependencies: @@ -1960,7 +1962,7 @@ importers: version: 5.4.5 vite: specifier: ^8.0.0 - version: 8.0.0(@types/node@22.19.15)(esbuild@0.27.4)(jiti@2.4.2)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) + version: 8.0.2(@types/node@22.19.18)(esbuild@0.27.4)(jiti@2.4.2)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) playground/vite-plugin-cloudflare: dependencies: @@ -1985,7 +1987,7 @@ importers: devDependencies: '@cloudflare/vite-plugin': specifier: ^1.9.0 - version: 1.28.0(vite@6.4.1(@types/node@20.19.37)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0))(workerd@1.20250705.0)(wrangler@4.73.0) + version: 1.9.0(rollup@4.43.0)(vite@6.4.1(@types/node@20.11.30)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0))(workerd@1.20250705.0)(wrangler@4.23.0(@cloudflare/workers-types@4.20250805.0)) '@react-router/dev': specifier: workspace:* version: link:../../packages/react-router-dev @@ -1994,7 +1996,7 @@ importers: version: link:../../packages/react-router-fs-routes '@types/node': specifier: ^20.0.0 - version: 20.19.37 + version: 20.11.30 '@types/react': specifier: ^18.0.27 version: 18.2.18 @@ -2009,13 +2011,13 @@ importers: version: 5.4.5 vite: specifier: ^6.3.0 - version: 6.4.1(@types/node@20.19.37)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) + version: 6.4.1(@types/node@20.11.30)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) vite-tsconfig-paths: specifier: ^4.2.1 - version: 4.3.2(typescript@5.4.5)(vite@6.4.1(@types/node@20.19.37)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)) + version: 4.3.2(typescript@5.4.5)(vite@6.4.1(@types/node@20.11.30)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)) wrangler: specifier: ^4.23.0 - version: 4.73.0(@cloudflare/workers-types@4.20250805.0) + version: 4.23.0(@cloudflare/workers-types@4.20250805.0) scripts: dependencies: @@ -2031,7 +2033,7 @@ importers: devDependencies: '@types/node': specifier: ^22.18.0 - version: 22.19.15 + version: 22.19.18 '@types/prompts': specifier: ^2.4.9 version: 2.4.9 @@ -2056,6 +2058,17 @@ packages: resolution: {integrity: sha512-6HumTH9885uMAZ9yIEBUi8RmgzFTQoGefd6CD6sNkVzoZM2QCyk4BRfKvo8hdgm+AxDjkZdvA/4kaj5K7680Bg==} engines: {node: '>=14'} + '@asamuzakjp/css-color@5.0.1': + resolution: {integrity: sha512-2SZFvqMyvboVV1d15lMf7XiI3m7SDqXUuKaTymJYLN6dSGadqp+fVojqJlVoMlbZnlTmu3S0TLwLTJpvBMO1Aw==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} + + '@asamuzakjp/dom-selector@7.0.4': + resolution: {integrity: sha512-jXR6x4AcT3eIrS2fSNAwJpwirOkGcd+E7F7CP3zjdTqz9B/2huHOL8YJZBgekKwLML+u7qB/6P1LXQuMScsx0w==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} + + '@asamuzakjp/nwsapi@2.3.9': + resolution: {integrity: sha512-n8GuYSrI9bF7FFZ/SjhwevlHc8xaVlb/7HmHelnc/PZXBD2ZR49NnN9sMMuDdEGPeeRQ5d0hqlSlEpgCX3Wl0Q==} + '@babel/code-frame@7.27.1': resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} engines: {node: '>=6.9.0'} @@ -2271,6 +2284,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-class-static-block@7.14.5': + resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-decorators@7.24.1': resolution: {integrity: sha512-05RJdO/cCrtVWuAaSn1tS3bH8jbsJa/Y1uD186u6J4C/1mnHFxseeuWpsqr9anvo7TUulev7tm7GDwRV+VuhDw==} engines: {node: '>=6.9.0'} @@ -2761,6 +2780,10 @@ packages: '@bcoe/v8-coverage@0.2.3': resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} + '@bramus/specificity@2.4.2': + resolution: {integrity: sha512-ctxtJ/eA+t+6q2++vj5j7FYX3nRu311q1wfYH3xjlLOsczhlhxAg2FWNUXhpGvAw3BWo1xBcvOV6/YLc2r5FJw==} + hasBin: true + '@bundled-es-modules/cookie@2.0.1': resolution: {integrity: sha512-8o+5fRPLNbjbdGRRmJj3h6Hh1AQJf2dk3qQ/5ZFb+PXkRNiSoMGGUKlsgLfrxneb72axVJyIYji64E2+nNfYyw==} @@ -2770,27 +2793,36 @@ packages: '@bundled-es-modules/tough-cookie@0.1.6': resolution: {integrity: sha512-dvMHbL464C0zI+Yqxbz6kZ5TOEp7GLW+pry/RWndAR8MJQAXZ2rPmIs8tziTZjeIyhSNZgZbCePtfSbdWqStJw==} + '@changesets/errors@0.1.4': + resolution: {integrity: sha512-HAcqPF7snsUJ/QzkWoKfRfXushHTu+K5KZLJWPb34s4eCZShIf8BFO3fwq6KU8+G7L5KdtN2BzQAXOSXEyiY9Q==} + + '@changesets/get-github-info@0.5.1': + resolution: {integrity: sha512-w2yl3AuG+hFuEEmT6j1zDlg7GQLM/J2UxTmk0uJBMdRqHni4zXGe/vUlPfLom5KfX3cRfHc0hzGvloDPjWFNZw==} + '@changesets/types@4.1.0': resolution: {integrity: sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==} - '@cloudflare/kv-asset-handler@0.4.2': - resolution: {integrity: sha512-SIOD2DxrRRwQ+jgzlXCqoEFiKOFqaPjhnNTGKXSRLvp1HiOvapLaFG2kEr9dYQTYe8rKrd9uvDUzmAITeNyaHQ==} + '@changesets/types@5.2.1': + resolution: {integrity: sha512-myLfHbVOqaq9UtUKqR/nZA/OY7xFjQMdfgfqeZIBK4d0hA6pgxArvdv8M+6NUzzBsjWLOtvApv8YHr4qM+Kpfg==} + + '@cloudflare/kv-asset-handler@0.4.0': + resolution: {integrity: sha512-+tv3z+SPp+gqTIcImN9o0hqE9xyfQjI1XD9pL6NuKjua9B1y7mNYv0S9cP+QEbA4ppVgGZEmKOvHX5G5Ei1CVA==} engines: {node: '>=18.0.0'} - '@cloudflare/unenv-preset@2.15.0': - resolution: {integrity: sha512-EGYmJaGZKWl+X8tXxcnx4v2bOZSjQeNI5dWFeXivgX9+YCT69AkzHHwlNbVpqtEUTbew8eQurpyOpeN8fg00nw==} + '@cloudflare/unenv-preset@2.3.3': + resolution: {integrity: sha512-/M3MEcj3V2WHIRSW1eAQBPRJ6JnGQHc6JKMAPLkDb7pLs3m6X9ES/+K3ceGqxI6TKeF32AWAi7ls0AYzVxCP0A==} peerDependencies: - unenv: 2.0.0-rc.24 + unenv: 2.0.0-rc.17 workerd: 1.20250705.0 peerDependenciesMeta: workerd: optional: true - '@cloudflare/vite-plugin@1.28.0': - resolution: {integrity: sha512-h2idr5fZ5GojyWZOZ506NHaDAVq3zpvcKgk8ZzDLlnHHvOwXZlFDPRf9Kkffv0fe+J6GPn7gVjJxgT0YRXAbew==} + '@cloudflare/vite-plugin@1.9.0': + resolution: {integrity: sha512-YYmWZklDPF7Ay97JX51bZzKGNP7Z6Sme0+Pje1g5Jr7M6oU6L3NmmvIi8VKFLM48FRlSpXRmTF1tULJng6d6vg==} peerDependencies: vite: ^6.1.0 || ^7.0.0 - wrangler: ^4.73.0 + wrangler: ^3.101.0 || ^4.0.0 '@cloudflare/workerd-darwin-64@1.20250705.0': resolution: {integrity: sha512-cLF8juQZuoSwyw6+kiLXuHQ2tYcVXiyRF2qpmViJ3Ilqj6zQ654vcrtl+B5Ab1xwpfnX35+/0ItTtL8hoX5QLg==} @@ -2829,11 +2861,56 @@ packages: resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} - '@emnapi/core@1.9.0': - resolution: {integrity: sha512-0DQ98G9ZQZOxfUcQn1waV2yS8aWdZ6kJMbYCJB3oUBecjWYO1fqJ+a1DRfPF3O5JEkwqwP1A9QEN/9mYm2Yd0w==} + '@csstools/color-helpers@6.0.2': + resolution: {integrity: sha512-LMGQLS9EuADloEFkcTBR3BwV/CGHV7zyDxVRtVDTwdI2Ca4it0CCVTT9wCkxSgokjE5Ho41hEPgb8OEUwoXr6Q==} + engines: {node: '>=20.19.0'} + + '@csstools/css-calc@3.1.1': + resolution: {integrity: sha512-HJ26Z/vmsZQqs/o3a6bgKslXGFAungXGbinULZO3eMsOyNJHeBBZfup5FiZInOghgoM4Hwnmw+OgbJCNg1wwUQ==} + engines: {node: '>=20.19.0'} + peerDependencies: + '@csstools/css-parser-algorithms': ^4.0.0 + '@csstools/css-tokenizer': ^4.0.0 + + '@csstools/css-color-parser@4.0.2': + resolution: {integrity: sha512-0GEfbBLmTFf0dJlpsNU7zwxRIH0/BGEMuXLTCvFYxuL1tNhqzTbtnFICyJLTNK4a+RechKP75e7w42ClXSnJQw==} + engines: {node: '>=20.19.0'} + peerDependencies: + '@csstools/css-parser-algorithms': ^4.0.0 + '@csstools/css-tokenizer': ^4.0.0 + + '@csstools/css-parser-algorithms@4.0.0': + resolution: {integrity: sha512-+B87qS7fIG3L5h3qwJ/IFbjoVoOe/bpOdh9hAjXbvx0o8ImEmUsGXN0inFOnk2ChCFgqkkGFQ+TpM5rbhkKe4w==} + engines: {node: '>=20.19.0'} + peerDependencies: + '@csstools/css-tokenizer': ^4.0.0 + + '@csstools/css-syntax-patches-for-csstree@1.1.1': + resolution: {integrity: sha512-BvqN0AMWNAnLk9G8jnUT77D+mUbY/H2b3uDTvg2isJkHaOufUE2R3AOwxWo7VBQKT1lOdwdvorddo2B/lk64+w==} + peerDependencies: + css-tree: ^3.2.1 + peerDependenciesMeta: + css-tree: + optional: true + + '@csstools/css-tokenizer@4.0.0': + resolution: {integrity: sha512-QxULHAm7cNu72w97JUNCBFODFaXpbDg+dP8b/oWFAZ2MTRppA3U00Y2L1HqaS4J6yBqxwa/Y3nMBaxVKbB/NsA==} + engines: {node: '>=20.19.0'} + + '@emnapi/core@1.4.3': + resolution: {integrity: sha512-4m62DuCE07lw01soJwPiBGC0nAww0Q+RY70VZ+n49yDIO13yyinhbWCeNnaob0lakDtWQzSdtNWzJeOJt2ma+g==} + + '@emnapi/core@1.9.1': + resolution: {integrity: sha512-mukuNALVsoix/w1BJwFzwXBN/dHeejQtuVzcDsfOEsdpCumXb/E9j8w11h5S54tT1xhifGfbbSm/ICrObRb3KA==} + + '@emnapi/runtime@1.4.3': + resolution: {integrity: sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==} - '@emnapi/runtime@1.9.0': - resolution: {integrity: sha512-QN75eB0IH2ywSpRpNddCRfQIhmJYBCJ1x5Lb3IscKAL8bMnVAKnRg8dCoXbHzVLLH7P38N2Z3mtulB7W0J0FKw==} + '@emnapi/runtime@1.9.1': + resolution: {integrity: sha512-VYi5+ZVLhpgK4hQ0TAjiQiZ6ol0oe4mBx7mVv7IflsiEp0OWoVsp/+f9Vc1hOhE0TtkORVrI1GvzyreqpgWtkA==} + + '@emnapi/wasi-threads@1.0.2': + resolution: {integrity: sha512-5n3nTJblwRi8LlXkJ9eBzu+kZR8Yxcc7ubakyQTFzPMtIhFpUBRbsnc2Dv88IZDIbCDlBiWrknhB4Lsz7mg6BA==} '@emnapi/wasi-threads@1.2.0': resolution: {integrity: sha512-N10dEJNSsUx41Z6pZsXU8FjPjpBEplgH24sfkmITrBED1/U2Esum9F3lfLrMjKHHjmi557zQn7kR9R+XWXu5Rg==} @@ -2861,8 +2938,8 @@ packages: cpu: [ppc64] os: [aix] - '@esbuild/aix-ppc64@0.27.3': - resolution: {integrity: sha512-9fJMTNFTWZMh5qwrBItuziu834eOCUcEqymSH7pY+zoMVEZg3gcPuBNxH1EvfVYe9h0x/Ptw8KBzv7qxb7l8dg==} + '@esbuild/aix-ppc64@0.25.4': + resolution: {integrity: sha512-1VCICWypeQKhVbE9oW/sJaAmjLxhVqacdkvPLEjwlttjfwENRSClS8EjBz0KzRyFSCPDIkuXW34Je/vk7zdB7Q==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] @@ -2885,8 +2962,8 @@ packages: cpu: [arm64] os: [android] - '@esbuild/android-arm64@0.27.3': - resolution: {integrity: sha512-YdghPYUmj/FX2SYKJ0OZxf+iaKgMsKHVPF1MAq/P8WirnSpCStzKJFjOjzsW0QQ7oIAiccHdcqjbHmJxRb/dmg==} + '@esbuild/android-arm64@0.25.4': + resolution: {integrity: sha512-bBy69pgfhMGtCnwpC/x5QhfxAz/cBgQ9enbtwjf6V9lnPI/hMyT9iWpR1arm0l3kttTr4L0KSLpKmLp/ilKS9A==} engines: {node: '>=18'} cpu: [arm64] os: [android] @@ -2909,8 +2986,8 @@ packages: cpu: [arm] os: [android] - '@esbuild/android-arm@0.27.3': - resolution: {integrity: sha512-i5D1hPY7GIQmXlXhs2w8AWHhenb00+GxjxRncS2ZM7YNVGNfaMxgzSGuO8o8SJzRc/oZwU2bcScvVERk03QhzA==} + '@esbuild/android-arm@0.25.4': + resolution: {integrity: sha512-QNdQEps7DfFwE3hXiU4BZeOV68HHzYwGd0Nthhd3uCkkEKK7/R6MTgM0P7H7FAs5pU/DIWsviMmEGxEoxIZ+ZQ==} engines: {node: '>=18'} cpu: [arm] os: [android] @@ -2933,8 +3010,8 @@ packages: cpu: [x64] os: [android] - '@esbuild/android-x64@0.27.3': - resolution: {integrity: sha512-IN/0BNTkHtk8lkOM8JWAYFg4ORxBkZQf9zXiEOfERX/CzxW3Vg1ewAhU7QSWQpVIzTW+b8Xy+lGzdYXV6UZObQ==} + '@esbuild/android-x64@0.25.4': + resolution: {integrity: sha512-TVhdVtQIFuVpIIR282btcGC2oGQoSfZfmBdTip2anCaVYcqWlZXGcdcKIUklfX2wj0JklNYgz39OBqh2cqXvcQ==} engines: {node: '>=18'} cpu: [x64] os: [android] @@ -2957,8 +3034,8 @@ packages: cpu: [arm64] os: [darwin] - '@esbuild/darwin-arm64@0.27.3': - resolution: {integrity: sha512-Re491k7ByTVRy0t3EKWajdLIr0gz2kKKfzafkth4Q8A5n1xTHrkqZgLLjFEHVD+AXdUGgQMq+Godfq45mGpCKg==} + '@esbuild/darwin-arm64@0.25.4': + resolution: {integrity: sha512-Y1giCfM4nlHDWEfSckMzeWNdQS31BQGs9/rouw6Ub91tkK79aIMTH3q9xHvzH8d0wDru5Ci0kWB8b3up/nl16g==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] @@ -2981,8 +3058,8 @@ packages: cpu: [x64] os: [darwin] - '@esbuild/darwin-x64@0.27.3': - resolution: {integrity: sha512-vHk/hA7/1AckjGzRqi6wbo+jaShzRowYip6rt6q7VYEDX4LEy1pZfDpdxCBnGtl+A5zq8iXDcyuxwtv3hNtHFg==} + '@esbuild/darwin-x64@0.25.4': + resolution: {integrity: sha512-CJsry8ZGM5VFVeyUYB3cdKpd/H69PYez4eJh1W/t38vzutdjEjtP7hB6eLKBoOdxcAlCtEYHzQ/PJ/oU9I4u0A==} engines: {node: '>=18'} cpu: [x64] os: [darwin] @@ -3005,8 +3082,8 @@ packages: cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-arm64@0.27.3': - resolution: {integrity: sha512-ipTYM2fjt3kQAYOvo6vcxJx3nBYAzPjgTCk7QEgZG8AUO3ydUhvelmhrbOheMnGOlaSFUoHXB6un+A7q4ygY9w==} + '@esbuild/freebsd-arm64@0.25.4': + resolution: {integrity: sha512-yYq+39NlTRzU2XmoPW4l5Ifpl9fqSk0nAJYM/V/WUGPEFfek1epLHJIkTQM6bBs1swApjO5nWgvr843g6TjxuQ==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] @@ -3029,8 +3106,8 @@ packages: cpu: [x64] os: [freebsd] - '@esbuild/freebsd-x64@0.27.3': - resolution: {integrity: sha512-dDk0X87T7mI6U3K9VjWtHOXqwAMJBNN2r7bejDsc+j03SEjtD9HrOl8gVFByeM0aJksoUuUVU9TBaZa2rgj0oA==} + '@esbuild/freebsd-x64@0.25.4': + resolution: {integrity: sha512-0FgvOJ6UUMflsHSPLzdfDnnBBVoCDtBTVyn/MrWloUNvq/5SFmh13l3dvgRPkDihRxb77Y17MbqbCAa2strMQQ==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] @@ -3053,8 +3130,8 @@ packages: cpu: [arm64] os: [linux] - '@esbuild/linux-arm64@0.27.3': - resolution: {integrity: sha512-sZOuFz/xWnZ4KH3YfFrKCf1WyPZHakVzTiqji3WDc0BCl2kBwiJLCXpzLzUBLgmp4veFZdvN5ChW4Eq/8Fc2Fg==} + '@esbuild/linux-arm64@0.25.4': + resolution: {integrity: sha512-+89UsQTfXdmjIvZS6nUnOOLoXnkUTB9hR5QAeLrQdzOSWZvNSAXAtcRDHWtqAUtAmv7ZM1WPOOeSxDzzzMogiQ==} engines: {node: '>=18'} cpu: [arm64] os: [linux] @@ -3077,8 +3154,8 @@ packages: cpu: [arm] os: [linux] - '@esbuild/linux-arm@0.27.3': - resolution: {integrity: sha512-s6nPv2QkSupJwLYyfS+gwdirm0ukyTFNl3KTgZEAiJDd+iHZcbTPPcWCcRYH+WlNbwChgH2QkE9NSlNrMT8Gfw==} + '@esbuild/linux-arm@0.25.4': + resolution: {integrity: sha512-kro4c0P85GMfFYqW4TWOpvmF8rFShbWGnrLqlzp4X1TNWjRY3JMYUfDCtOxPKOIY8B0WC8HN51hGP4I4hz4AaQ==} engines: {node: '>=18'} cpu: [arm] os: [linux] @@ -3101,8 +3178,8 @@ packages: cpu: [ia32] os: [linux] - '@esbuild/linux-ia32@0.27.3': - resolution: {integrity: sha512-yGlQYjdxtLdh0a3jHjuwOrxQjOZYD/C9PfdbgJJF3TIZWnm/tMd/RcNiLngiu4iwcBAOezdnSLAwQDPqTmtTYg==} + '@esbuild/linux-ia32@0.25.4': + resolution: {integrity: sha512-yTEjoapy8UP3rv8dB0ip3AfMpRbyhSN3+hY8mo/i4QXFeDxmiYbEKp3ZRjBKcOP862Ua4b1PDfwlvbuwY7hIGQ==} engines: {node: '>=18'} cpu: [ia32] os: [linux] @@ -3125,8 +3202,8 @@ packages: cpu: [loong64] os: [linux] - '@esbuild/linux-loong64@0.27.3': - resolution: {integrity: sha512-WO60Sn8ly3gtzhyjATDgieJNet/KqsDlX5nRC5Y3oTFcS1l0KWba+SEa9Ja1GfDqSF1z6hif/SkpQJbL63cgOA==} + '@esbuild/linux-loong64@0.25.4': + resolution: {integrity: sha512-NeqqYkrcGzFwi6CGRGNMOjWGGSYOpqwCjS9fvaUlX5s3zwOtn1qwg1s2iE2svBe4Q/YOG1q6875lcAoQK/F4VA==} engines: {node: '>=18'} cpu: [loong64] os: [linux] @@ -3149,8 +3226,8 @@ packages: cpu: [mips64el] os: [linux] - '@esbuild/linux-mips64el@0.27.3': - resolution: {integrity: sha512-APsymYA6sGcZ4pD6k+UxbDjOFSvPWyZhjaiPyl/f79xKxwTnrn5QUnXR5prvetuaSMsb4jgeHewIDCIWljrSxw==} + '@esbuild/linux-mips64el@0.25.4': + resolution: {integrity: sha512-IcvTlF9dtLrfL/M8WgNI/qJYBENP3ekgsHbYUIzEzq5XJzzVEV/fXY9WFPfEEXmu3ck2qJP8LG/p3Q8f7Zc2Xg==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] @@ -3173,8 +3250,8 @@ packages: cpu: [ppc64] os: [linux] - '@esbuild/linux-ppc64@0.27.3': - resolution: {integrity: sha512-eizBnTeBefojtDb9nSh4vvVQ3V9Qf9Df01PfawPcRzJH4gFSgrObw+LveUyDoKU3kxi5+9RJTCWlj4FjYXVPEA==} + '@esbuild/linux-ppc64@0.25.4': + resolution: {integrity: sha512-HOy0aLTJTVtoTeGZh4HSXaO6M95qu4k5lJcH4gxv56iaycfz1S8GO/5Jh6X4Y1YiI0h7cRyLi+HixMR+88swag==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] @@ -3197,8 +3274,8 @@ packages: cpu: [riscv64] os: [linux] - '@esbuild/linux-riscv64@0.27.3': - resolution: {integrity: sha512-3Emwh0r5wmfm3ssTWRQSyVhbOHvqegUDRd0WhmXKX2mkHJe1SFCMJhagUleMq+Uci34wLSipf8Lagt4LlpRFWQ==} + '@esbuild/linux-riscv64@0.25.4': + resolution: {integrity: sha512-i8JUDAufpz9jOzo4yIShCTcXzS07vEgWzyX3NH2G7LEFVgrLEhjwL3ajFE4fZI3I4ZgiM7JH3GQ7ReObROvSUA==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] @@ -3221,8 +3298,8 @@ packages: cpu: [s390x] os: [linux] - '@esbuild/linux-s390x@0.27.3': - resolution: {integrity: sha512-pBHUx9LzXWBc7MFIEEL0yD/ZVtNgLytvx60gES28GcWMqil8ElCYR4kvbV2BDqsHOvVDRrOxGySBM9Fcv744hw==} + '@esbuild/linux-s390x@0.25.4': + resolution: {integrity: sha512-jFnu+6UbLlzIjPQpWCNh5QtrcNfMLjgIavnwPQAfoGx4q17ocOU9MsQ2QVvFxwQoWpZT8DvTLooTvmOQXkO51g==} engines: {node: '>=18'} cpu: [s390x] os: [linux] @@ -3245,8 +3322,8 @@ packages: cpu: [x64] os: [linux] - '@esbuild/linux-x64@0.27.3': - resolution: {integrity: sha512-Czi8yzXUWIQYAtL/2y6vogER8pvcsOsk5cpwL4Gk5nJqH5UZiVByIY8Eorm5R13gq+DQKYg0+JyQoytLQas4dA==} + '@esbuild/linux-x64@0.25.4': + resolution: {integrity: sha512-6e0cvXwzOnVWJHq+mskP8DNSrKBr1bULBvnFLpc1KY+d+irZSgZ02TGse5FsafKS5jg2e4pbvK6TPXaF/A6+CA==} engines: {node: '>=18'} cpu: [x64] os: [linux] @@ -3263,8 +3340,8 @@ packages: cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-arm64@0.27.3': - resolution: {integrity: sha512-sDpk0RgmTCR/5HguIZa9n9u+HVKf40fbEUt+iTzSnCaGvY9kFP0YKBWZtJaraonFnqef5SlJ8/TiPAxzyS+UoA==} + '@esbuild/netbsd-arm64@0.25.4': + resolution: {integrity: sha512-vUnkBYxZW4hL/ie91hSqaSNjulOnYXE1VSLusnvHg2u3jewJBz3YzB9+oCw8DABeVqZGg94t9tyZFoHma8gWZQ==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] @@ -3287,8 +3364,8 @@ packages: cpu: [x64] os: [netbsd] - '@esbuild/netbsd-x64@0.27.3': - resolution: {integrity: sha512-P14lFKJl/DdaE00LItAukUdZO5iqNH7+PjoBm+fLQjtxfcfFE20Xf5CrLsmZdq5LFFZzb5JMZ9grUwvtVYzjiA==} + '@esbuild/netbsd-x64@0.25.4': + resolution: {integrity: sha512-XAg8pIQn5CzhOB8odIcAm42QsOfa98SBeKUdo4xa8OvX8LbMZqEtgeWE9P/Wxt7MlG2QqvjGths+nq48TrUiKw==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] @@ -3305,8 +3382,8 @@ packages: cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-arm64@0.27.3': - resolution: {integrity: sha512-AIcMP77AvirGbRl/UZFTq5hjXK+2wC7qFRGoHSDrZ5v5b8DK/GYpXW3CPRL53NkvDqb9D+alBiC/dV0Fb7eJcw==} + '@esbuild/openbsd-arm64@0.25.4': + resolution: {integrity: sha512-Ct2WcFEANlFDtp1nVAXSNBPDxyU+j7+tId//iHXU2f/lN5AmO4zLyhDcpR5Cz1r08mVxzt3Jpyt4PmXQ1O6+7A==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] @@ -3329,8 +3406,8 @@ packages: cpu: [x64] os: [openbsd] - '@esbuild/openbsd-x64@0.27.3': - resolution: {integrity: sha512-DnW2sRrBzA+YnE70LKqnM3P+z8vehfJWHXECbwBmH/CU51z6FiqTQTHFenPlHmo3a8UgpLyH3PT+87OViOh1AQ==} + '@esbuild/openbsd-x64@0.25.4': + resolution: {integrity: sha512-xAGGhyOQ9Otm1Xu8NT1ifGLnA6M3sJxZ6ixylb+vIUVzvvd6GOALpwQrYrtlPouMqd/vSbgehz6HaVk4+7Afhw==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] @@ -3341,12 +3418,6 @@ packages: cpu: [x64] os: [openbsd] - '@esbuild/openharmony-arm64@0.27.3': - resolution: {integrity: sha512-NinAEgr/etERPTsZJ7aEZQvvg/A6IsZG/LgZy+81wON2huV7SrK3e63dU0XhyZP4RKGyTm7aOgmQk0bGp0fy2g==} - engines: {node: '>=18'} - cpu: [arm64] - os: [openharmony] - '@esbuild/openharmony-arm64@0.27.4': resolution: {integrity: sha512-JkTZrl6VbyO8lDQO3yv26nNr2RM2yZzNrNHEsj9bm6dOwwu9OYN28CjzZkH57bh4w0I2F7IodpQvUAEd1mbWXg==} engines: {node: '>=18'} @@ -3365,8 +3436,8 @@ packages: cpu: [x64] os: [sunos] - '@esbuild/sunos-x64@0.27.3': - resolution: {integrity: sha512-PanZ+nEz+eWoBJ8/f8HKxTTD172SKwdXebZ0ndd953gt1HRBbhMsaNqjTyYLGLPdoWHy4zLU7bDVJztF5f3BHA==} + '@esbuild/sunos-x64@0.25.4': + resolution: {integrity: sha512-Mw+tzy4pp6wZEK0+Lwr76pWLjrtjmJyUB23tHKqEDP74R3q95luY/bXqXZeYl4NYlvwOqoRKlInQialgCKy67Q==} engines: {node: '>=18'} cpu: [x64] os: [sunos] @@ -3389,8 +3460,8 @@ packages: cpu: [arm64] os: [win32] - '@esbuild/win32-arm64@0.27.3': - resolution: {integrity: sha512-B2t59lWWYrbRDw/tjiWOuzSsFh1Y/E95ofKz7rIVYSQkUYBjfSgf6oeYPNWHToFRr2zx52JKApIcAS/D5TUBnA==} + '@esbuild/win32-arm64@0.25.4': + resolution: {integrity: sha512-AVUP428VQTSddguz9dO9ngb+E5aScyg7nOeJDrF1HPYu555gmza3bDGMPhmVXL8svDSoqPCsCPjb265yG/kLKQ==} engines: {node: '>=18'} cpu: [arm64] os: [win32] @@ -3413,8 +3484,8 @@ packages: cpu: [ia32] os: [win32] - '@esbuild/win32-ia32@0.27.3': - resolution: {integrity: sha512-QLKSFeXNS8+tHW7tZpMtjlNb7HKau0QDpwm49u0vUp9y1WOF+PEzkU84y9GqYaAVW8aH8f3GcBck26jh54cX4Q==} + '@esbuild/win32-ia32@0.25.4': + resolution: {integrity: sha512-i1sW+1i+oWvQzSgfRcxxG2k4I9n3O9NRqy8U+uugaT2Dy7kLO9Y7wI72haOahxceMX8hZAzgGou1FhndRldxRg==} engines: {node: '>=18'} cpu: [ia32] os: [win32] @@ -3437,8 +3508,8 @@ packages: cpu: [x64] os: [win32] - '@esbuild/win32-x64@0.27.3': - resolution: {integrity: sha512-4uJGhsxuptu3OcpVAzli+/gWusVGwZZHTlS63hh++ehExkVT8SgiEf7/uC/PclrPPkLhZqGgCTjd0VWLo6xMqA==} + '@esbuild/win32-x64@0.25.4': + resolution: {integrity: sha512-nOT2vZNw6hJ+z43oP1SPea/G/6AbN6X+bGNhNuq8NtRHy4wsMhw765IKLNmnjek7GvjWBYQ8Q5VBoYTFg9y1UQ==} engines: {node: '>=18'} cpu: [x64] os: [win32] @@ -3449,12 +3520,22 @@ packages: cpu: [x64] os: [win32] + '@eslint-community/eslint-utils@4.4.0': + resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + '@eslint-community/eslint-utils@4.9.1': resolution: {integrity: sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + '@eslint-community/regexpp@4.10.0': + resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + '@eslint-community/regexpp@4.12.2': resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} @@ -3496,6 +3577,15 @@ packages: resolution: {integrity: sha512-iH1B076HoAshH1mLpHMgwdGeTs0CYwL0SPMkGuSebZrwBp16v415e9NZXg2jtrqPVQjf6IANe2Vtlr5KswtcZQ==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} + '@exodus/bytes@1.15.0': + resolution: {integrity: sha512-UY0nlA+feH81UGSHv92sLEPLCeZFjXOuHhrIo0HQydScuQc8s0A7kL/UdgwgDq8g8ilksmuoF35YVTNphV2aBQ==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} + peerDependencies: + '@noble/hashes': ^1.8.0 || ^2.0.0 + peerDependenciesMeta: + '@noble/hashes': + optional: true + '@extra-number/significant-digits@1.3.9': resolution: {integrity: sha512-E5PY/bCwrNqEHh4QS6AQBinLZ+sxM1lT8tsSVYk8VwhWIPp6fCU/BMRVq0V8iJ8LwS3FHmaA4vUzb78s4BIIyA==} deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. @@ -3538,139 +3628,107 @@ packages: resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} engines: {node: '>=18.18'} - '@img/colour@1.1.0': - resolution: {integrity: sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==} - engines: {node: '>=18'} - - '@img/sharp-darwin-arm64@0.34.5': - resolution: {integrity: sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==} + '@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.34.5': - resolution: {integrity: sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==} + '@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.2.4': - resolution: {integrity: sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==} + '@img/sharp-libvips-darwin-arm64@1.0.4': + resolution: {integrity: sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==} cpu: [arm64] os: [darwin] - '@img/sharp-libvips-darwin-x64@1.2.4': - resolution: {integrity: sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==} + '@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.2.4': - resolution: {integrity: sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==} + '@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.2.4': - resolution: {integrity: sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==} + '@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-ppc64@1.2.4': - resolution: {integrity: sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==} - cpu: [ppc64] - os: [linux] - - '@img/sharp-libvips-linux-riscv64@1.2.4': - resolution: {integrity: sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==} - cpu: [riscv64] - os: [linux] - - '@img/sharp-libvips-linux-s390x@1.2.4': - resolution: {integrity: sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==} + '@img/sharp-libvips-linux-s390x@1.0.4': + resolution: {integrity: sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==} cpu: [s390x] os: [linux] - '@img/sharp-libvips-linux-x64@1.2.4': - resolution: {integrity: sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==} + '@img/sharp-libvips-linux-x64@1.0.4': + resolution: {integrity: sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==} cpu: [x64] os: [linux] - '@img/sharp-libvips-linuxmusl-arm64@1.2.4': - resolution: {integrity: sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==} + '@img/sharp-libvips-linuxmusl-arm64@1.0.4': + resolution: {integrity: sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==} cpu: [arm64] os: [linux] - '@img/sharp-libvips-linuxmusl-x64@1.2.4': - resolution: {integrity: sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==} + '@img/sharp-libvips-linuxmusl-x64@1.0.4': + resolution: {integrity: sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==} cpu: [x64] os: [linux] - '@img/sharp-linux-arm64@0.34.5': - resolution: {integrity: sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==} + '@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.34.5': - resolution: {integrity: sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==} + '@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-ppc64@0.34.5': - resolution: {integrity: sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [ppc64] - os: [linux] - - '@img/sharp-linux-riscv64@0.34.5': - resolution: {integrity: sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [riscv64] - os: [linux] - - '@img/sharp-linux-s390x@0.34.5': - resolution: {integrity: sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==} + '@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.34.5': - resolution: {integrity: sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==} + '@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.34.5': - resolution: {integrity: sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==} + '@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.34.5': - resolution: {integrity: sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==} + '@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.34.5': - resolution: {integrity: sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==} + '@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-arm64@0.34.5': - resolution: {integrity: sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [arm64] - os: [win32] - - '@img/sharp-win32-ia32@0.34.5': - resolution: {integrity: sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==} + '@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.34.5': - resolution: {integrity: sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==} + '@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] @@ -3718,42 +3776,66 @@ packages: resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} engines: {node: '>=8'} - '@jest/console@29.7.0': - resolution: {integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/console@30.3.0': + resolution: {integrity: sha512-PAwCvFJ4696XP2qZj+LAn1BWjZaJ6RjG6c7/lkMaUJnkyMS34ucuIsfqYvfskVNvUI27R/u4P1HMYFnlVXG/Ww==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/core@29.7.0': - resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/core@30.3.0': + resolution: {integrity: sha512-U5mVPsBxLSO6xYbf+tgkymLx+iAhvZX43/xI1+ej2ZOPnPdkdO1CzDmFKh2mZBn2s4XZixszHeQnzp1gm/DIxw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 peerDependenciesMeta: node-notifier: optional: true + '@jest/diff-sequences@30.3.0': + resolution: {integrity: sha512-cG51MVnLq1ecVUaQ3fr6YuuAOitHK1S4WUJHnsPFE/quQr33ADUx1FfrTCpMCRxvy0Yr9BThKpDjSlcTi91tMA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + '@jest/environment@29.7.0': resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/environment@30.3.0': + resolution: {integrity: sha512-SlLSF4Be735yQXyh2+mctBOzNDx5s5uLv88/j8Qn1wH679PDcwy67+YdADn8NJnGjzlXtN62asGH/T4vWOkfaw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + '@jest/expect-utils@29.7.0': resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - '@jest/expect@29.7.0': - resolution: {integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/expect-utils@30.3.0': + resolution: {integrity: sha512-j0+W5iQQ8hBh7tHZkTQv3q2Fh/M7Je72cIsYqC4OaktgtO7v1So9UTjp6uPBHIaB6beoF/RRsCgMJKvti0wADA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + '@jest/expect@30.3.0': + resolution: {integrity: sha512-76Nlh4xJxk2D/9URCn3wFi98d2hb19uWE1idLsTt2ywhvdOldbw3S570hBgn25P4ICUZ/cBjybrBex2g17IDbg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} '@jest/fake-timers@29.7.0': resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - '@jest/globals@29.7.0': - resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/fake-timers@30.3.0': + resolution: {integrity: sha512-WUQDs8SOP9URStX1DzhD425CqbN/HxUYCTwVrT8sTVBfMvFqYt/s61EK5T05qnHu0po6RitXIvP9otZxYDzTGQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/reporters@29.7.0': - resolution: {integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/get-type@30.1.0': + resolution: {integrity: sha512-eMbZE2hUnx1WV0pmURZY9XoXPkUYjpc55mb0CrhtdWLtzMQPFvu/rZkTLZFTsdaVQa+Tr4eWAteqcUzoawq/uA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + '@jest/globals@30.3.0': + resolution: {integrity: sha512-+owLCBBdfpgL3HU+BD5etr1SvbXpSitJK0is1kiYjJxAAJggYMRQz5hSdd5pq1sSggfxPbw2ld71pt4x5wwViA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + '@jest/pattern@30.0.1': + resolution: {integrity: sha512-gWp7NfQW27LaBQz3TITS8L7ZCQ0TLvtmI//4OwlQRx4rnWxcPNIYjxZpDcN4+UlGxgm3jS5QPz8IPTCkb59wZA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + '@jest/reporters@30.3.0': + resolution: {integrity: sha512-a09z89S+PkQnL055bVj8+pe2Caed2PBOaczHcXCykW5ngxX9EWx/1uAwncxc/HiU0oZqfwseMjyhxgRjS49qPw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 peerDependenciesMeta: @@ -3764,26 +3846,38 @@ packages: resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - '@jest/source-map@29.6.3': - resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/schemas@30.0.5': + resolution: {integrity: sha512-DmdYgtezMkh3cpU8/1uyXakv3tJRcmcXxBOcO0tbaozPwpmh4YMsnWrQm9ZmZMfa5ocbxzbFk6O4bDPEc/iAnA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/test-result@29.7.0': - resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/snapshot-utils@30.3.0': + resolution: {integrity: sha512-ORbRN9sf5PP82v3FXNSwmO1OTDR2vzR2YTaR+E3VkSBZ8zadQE6IqYdYEeFH1NIkeB2HIGdF02dapb6K0Mj05g==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/test-sequencer@29.7.0': - resolution: {integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/source-map@30.0.1': + resolution: {integrity: sha512-MIRWMUUR3sdbP36oyNyhbThLHyJ2eEDClPCiHVbrYAe5g3CHRArIVpBw7cdSB5fr+ofSfIb2Tnsw8iEHL0PYQg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/transform@29.7.0': - resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/test-result@30.3.0': + resolution: {integrity: sha512-e/52nJGuD74AKTSe0P4y5wFRlaXP0qmrS17rqOMHeSwm278VyNyXE3gFO/4DTGF9w+65ra3lo3VKj0LBrzmgdQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + '@jest/test-sequencer@30.3.0': + resolution: {integrity: sha512-dgbWy9b8QDlQeRZcv7LNF+/jFiiYHTKho1xirauZ7kVwY7avjFF6uTT0RqlgudB5OuIPagFdVtfFMosjVbk1eA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + '@jest/transform@30.3.0': + resolution: {integrity: sha512-TLKY33fSLVd/lKB2YI1pH69ijyUblO/BQvCj566YvnwuzoTNr648iE0j22vRvVNk2HsPwByPxATg3MleS3gf5A==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} '@jest/types@29.6.3': resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/types@30.3.0': + resolution: {integrity: sha512-JHm87k7bA33hpBngtU8h6UBub/fqqA9uXfw+21j5Hmk7ooPHlboRNxHq0JcMtC+n8VJGP1mcfnD3Mk+XKe1oSw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + '@jridgewell/gen-mapping@0.3.8': resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} engines: {node: '>=6.0.0'} @@ -3822,9 +3916,6 @@ packages: peerDependencies: rollup: '>=2' - '@mjackson/node-fetch-server@0.2.0': - resolution: {integrity: sha512-EMlH1e30yzmTpGLQjlFmaDAjyOeZhng1/XCd7DExR8PNAnG/G1tyruZxEoUe11ClnwGhGrtsdnyyUx1frSzjng==} - '@mjackson/node-fetch-server@0.6.1': resolution: {integrity: sha512-9ZJnk/DJjt805uv5PPv11haJIW+HHf3YEEyVXv+8iLQxLD/iXA68FH220XoiTPBC4gCg5q+IMadDw8qPqlA5wg==} @@ -3832,6 +3923,9 @@ packages: resolution: {integrity: sha512-wK+5pLK5XFmgtH3aQ2YVvA3HohS3xqV/OxuVOdNx9Wpnz7VE/fnC+e1A7ln6LFYeck7gOJ/dsZV6OLplOtAJ2w==} engines: {node: '>=18'} + '@napi-rs/wasm-runtime@0.2.11': + resolution: {integrity: sha512-9DPkXtvHydrcOsopiYpUgPHpmj0HWZKMUnL2dZqpvC42lsratuBG06V5ipyno0fUek5VlFsNQ+AcFATSrJXgMA==} + '@napi-rs/wasm-runtime@1.1.1': resolution: {integrity: sha512-p64ah1M1ld8xjWv3qbvFwHiFVWrq1yFvV4f7w+mzaqiR4IlSgkqhcRdHwsGgomwzBH51sRY4NEowLxnaBjcW/A==} @@ -3884,42 +3978,33 @@ packages: '@oxc-project/types@0.115.0': resolution: {integrity: sha512-4n91DKnebUS4yjUHl2g3/b2T+IUdCfmoZGhmwsovZCDaJSs+QkVAM+0AqqTxHSsHfeiMuueT75cZaZcT/m0pSw==} + '@oxc-project/types@0.122.0': + resolution: {integrity: sha512-oLAl5kBpV4w69UtFZ9xqcmTi+GENWOcPF7FCrczTiBbmC0ibXxCwyvZGbO39rCVEuLGAZM84DH0pUIyyv/YJzA==} + '@pkgjs/parseargs@0.11.0': resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} + '@pkgr/core@0.2.9': + resolution: {integrity: sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + '@playwright/test@1.58.2': resolution: {integrity: sha512-akea+6bHYBBfA9uQqSYmlJXn61cTa+jbO87xVLCWbTqbWadRVmhxlXATaOjOgcBaWU4ePo0wB41KMFv3o35IXA==} engines: {node: '>=18'} hasBin: true - '@poppinss/colors@4.1.6': - resolution: {integrity: sha512-H9xkIdFswbS8n1d6vmRd8+c10t2Qe+rZITbbDHHkQixH5+2x1FDGmi/0K+WgWiqQFKPSlIYB7jlH6Kpfn6Fleg==} - - '@poppinss/dumper@0.6.5': - resolution: {integrity: sha512-NBdYIb90J7LfOI32dOewKI1r7wnkiH6m920puQ3qHUeZkxNkQiFnXVWoE6YtFSv6QOiPPf7ys6i+HWWecDz7sw==} - - '@poppinss/exception@1.2.3': - resolution: {integrity: sha512-dCED+QRChTVatE9ibtoaxc+WkdzOSjYTKi/+uacHWIsfodVfpsueo3+DKpgU5Px8qXjgmXkSvhXvSCz3fnP9lw==} + '@remix-run/changelog-github@0.0.5': + resolution: {integrity: sha512-43tqwUqWqirbv6D9uzo55ASPsCJ61Ein1k/M8qn+Qpros0MmbmuzjLVPmtaxfxfe2ANX0LefLvCD0pAgr1tp4g==} '@remix-run/node-fetch-server@0.13.0': resolution: {integrity: sha512-1EsNo0ZpgXu/90AWoRZf/oE3RVTUS80tiTUpt+hv5pjtAkw7icN4WskDwz/KdAw5ARbJLMhZBrO1NqThmy/McA==} - '@remix-run/web-blob@3.1.0': - resolution: {integrity: sha512-owGzFLbqPH9PlKb8KvpNJ0NO74HWE2euAn61eEiyCXX/oteoVzTVSN8mpLgDjaxBf2btj5/nUllSUgpyd6IH6g==} - - '@remix-run/web-fetch@4.4.2': - resolution: {integrity: sha512-jgKfzA713/4kAW/oZ4bC3MoLWyjModOVDjFPNseVqcJKSafgIscrYL9G50SurEYLswPuoU3HzSbO0jQCMYWHhA==} - engines: {node: ^10.17 || >=12.3} - - '@remix-run/web-file@3.1.0': - resolution: {integrity: sha512-dW2MNGwoiEYhlspOAXFBasmLeYshyAyhIdrlXBi06Duex5tDr3ut2LFKVj7tyHLmn8nnNwFf1BjNbkQpygC2aQ==} - - '@remix-run/web-form-data@3.1.0': - resolution: {integrity: sha512-NdeohLMdrb+pHxMQ/Geuzdp0eqPbea+Ieo8M8Jx2lGC6TBHsgHzYcBvr0LyPdPVycNRDEpWpiDdCOdCryo3f9A==} - - '@remix-run/web-stream@1.1.0': - resolution: {integrity: sha512-KRJtwrjRV5Bb+pM7zxcTJkhIqWWSy+MYsIxHK+0m5atcznsf15YwUBWHWulZerV2+vvHH1Lp1DD7pw6qKW8SgA==} + '@rolldown/binding-android-arm64@1.0.0-rc.11': + resolution: {integrity: sha512-SJ+/g+xNnOh6NqYxD0V3uVN4W3VfnrGsC9/hoglicgTNfABFG9JjISvkkU0dNY84MNHLWyOgxP9v9Y9pX4S7+A==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [android] '@rolldown/binding-android-arm64@1.0.0-rc.9': resolution: {integrity: sha512-lcJL0bN5hpgJfSIz/8PIf02irmyL43P+j1pTCfbD1DbLkmGRuFIA4DD3B3ZOvGqG0XiVvRznbKtN0COQVaKUTg==} @@ -3927,83 +4012,166 @@ packages: cpu: [arm64] os: [android] + '@rolldown/binding-darwin-arm64@1.0.0-rc.11': + resolution: {integrity: sha512-7WQgR8SfOPwmDZGFkThUvsmd/nwAWv91oCO4I5LS7RKrssPZmOt7jONN0cW17ydGC1n/+puol1IpoieKqQidmg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [darwin] + '@rolldown/binding-darwin-arm64@1.0.0-rc.9': resolution: {integrity: sha512-J7Zk3kLYFsLtuH6U+F4pS2sYVzac0qkjcO5QxHS7OS7yZu2LRs+IXo+uvJ/mvpyUljDJ3LROZPoQfgBIpCMhdQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] + '@rolldown/binding-darwin-x64@1.0.0-rc.11': + resolution: {integrity: sha512-39Ks6UvIHq4rEogIfQBoBRusj0Q0nPVWIvqmwBLaT6aqQGIakHdESBVOPRRLacy4WwUPIx4ZKzfZ9PMW+IeyUQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [darwin] + '@rolldown/binding-darwin-x64@1.0.0-rc.9': resolution: {integrity: sha512-iwtmmghy8nhfRGeNAIltcNXzD0QMNaaA5U/NyZc1Ia4bxrzFByNMDoppoC+hl7cDiUq5/1CnFthpT9n+UtfFyg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] + '@rolldown/binding-freebsd-x64@1.0.0-rc.11': + resolution: {integrity: sha512-jfsm0ZHfhiqrvWjJAmzsqiIFPz5e7mAoCOPBNTcNgkiid/LaFKiq92+0ojH+nmJmKYkre4t71BWXUZDNp7vsag==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [freebsd] + '@rolldown/binding-freebsd-x64@1.0.0-rc.9': resolution: {integrity: sha512-DLFYI78SCiZr5VvdEplsVC2Vx53lnA4/Ga5C65iyldMVaErr86aiqCoNBLl92PXPfDtUYjUh+xFFor40ueNs4Q==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.11': + resolution: {integrity: sha512-zjQaUtSyq1nVe3nxmlSCuR96T1LPlpvmJ0SZy0WJFEsV4kFbXcq2u68L4E6O0XeFj4aex9bEauqjW8UQBeAvfQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.9': resolution: {integrity: sha512-CsjTmTwd0Hri6iTw/DRMK7kOZ7FwAkrO4h8YWKoX/kcj833e4coqo2wzIFywtch/8Eb5enQ/lwLM7w6JX1W5RQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] + '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.11': + resolution: {integrity: sha512-WMW1yE6IOnehTcFE9eipFkm3XN63zypWlrJQ2iF7NrQ9b2LDRjumFoOGJE8RJJTJCTBAdmLMnJ8uVitACUUo1Q==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.9': resolution: {integrity: sha512-2x9O2JbSPxpxMDhP9Z74mahAStibTlrBMW0520+epJH5sac7/LwZW5Bmg/E6CXuEF53JJFW509uP+lSedaUNxg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] + '@rolldown/binding-linux-arm64-musl@1.0.0-rc.11': + resolution: {integrity: sha512-jfndI9tsfm4APzjNt6QdBkYwre5lRPUgHeDHoI7ydKUuJvz3lZeCfMsI56BZj+7BYqiKsJm7cfd/6KYV7ubrBg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + '@rolldown/binding-linux-arm64-musl@1.0.0-rc.9': resolution: {integrity: sha512-JA1QRW31ogheAIRhIg9tjMfsYbglXXYGNPLdPEYrwFxdbkQCAzvpSCSHCDWNl4hTtrol8WeboCSEpjdZK8qrCg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] + '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.11': + resolution: {integrity: sha512-ZlFgw46NOAGMgcdvdYwAGu2Q+SLFA9LzbJLW+iyMOJyhj5wk6P3KEE9Gct4xWwSzFoPI7JCdYmYMzVtlgQ+zfw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ppc64] + os: [linux] + '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.9': resolution: {integrity: sha512-aOKU9dJheda8Kj8Y3w9gnt9QFOO+qKPAl8SWd7JPHP+Cu0EuDAE5wokQubLzIDQWg2myXq2XhTpOVS07qqvT+w==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] + '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.11': + resolution: {integrity: sha512-hIOYmuT6ofM4K04XAZd3OzMySEO4K0/nc9+jmNcxNAxRi6c5UWpqfw3KMFV4MVFWL+jQsSh+bGw2VqmaPMTLyw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [s390x] + os: [linux] + '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.9': resolution: {integrity: sha512-OalO94fqj7IWRn3VdXWty75jC5dk4C197AWEuMhIpvVv2lw9fiPhud0+bW2ctCxb3YoBZor71QHbY+9/WToadA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] + '@rolldown/binding-linux-x64-gnu@1.0.0-rc.11': + resolution: {integrity: sha512-qXBQQO9OvkjjQPLdUVr7Nr2t3QTZI7s4KZtfw7HzBgjbmAPSFwSv4rmET9lLSgq3rH/ndA3ngv3Qb8l2njoPNA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + '@rolldown/binding-linux-x64-gnu@1.0.0-rc.9': resolution: {integrity: sha512-cVEl1vZtBsBZna3YMjGXNvnYYrOJ7RzuWvZU0ffvJUexWkukMaDuGhUXn0rjnV0ptzGVkvc+vW9Yqy6h8YX4pg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] + '@rolldown/binding-linux-x64-musl@1.0.0-rc.11': + resolution: {integrity: sha512-/tpFfoSTzUkH9LPY+cYbqZBDyyX62w5fICq9qzsHLL8uTI6BHip3Q9Uzft0wylk/i8OOwKik8OxW+QAhDmzwmg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + '@rolldown/binding-linux-x64-musl@1.0.0-rc.9': resolution: {integrity: sha512-UzYnKCIIc4heAKgI4PZ3dfBGUZefGCJ1TPDuLHoCzgrMYPb5Rv6TLFuYtyM4rWyHM7hymNdsg5ik2C+UD9VDbA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] + '@rolldown/binding-openharmony-arm64@1.0.0-rc.11': + resolution: {integrity: sha512-mcp3Rio2w72IvdZG0oQ4bM2c2oumtwHfUfKncUM6zGgz0KgPz4YmDPQfnXEiY5t3+KD/i8HG2rOB/LxdmieK2g==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [openharmony] + '@rolldown/binding-openharmony-arm64@1.0.0-rc.9': resolution: {integrity: sha512-+6zoiF+RRyf5cdlFQP7nm58mq7+/2PFaY2DNQeD4B87N36JzfF/l9mdBkkmTvSYcYPE8tMh/o3cRlsx1ldLfog==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] + '@rolldown/binding-wasm32-wasi@1.0.0-rc.11': + resolution: {integrity: sha512-LXk5Hii1Ph9asuGRjBuz8TUxdc1lWzB7nyfdoRgI0WGPZKmCxvlKk8KfYysqtr4MfGElu/f/pEQRh8fcEgkrWw==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + '@rolldown/binding-wasm32-wasi@1.0.0-rc.9': resolution: {integrity: sha512-rgFN6sA/dyebil3YTlL2evvi/M+ivhfnyxec7AccTpRPccno/rPoNlqybEZQBkcbZu8Hy+eqNJCqfBR8P7Pg8g==} engines: {node: '>=14.0.0'} cpu: [wasm32] + '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.11': + resolution: {integrity: sha512-dDwf5otnx0XgRY1yqxOC4ITizcdzS/8cQ3goOWv3jFAo4F+xQYni+hnMuO6+LssHHdJW7+OCVL3CoU4ycnh35Q==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [win32] + '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.9': resolution: {integrity: sha512-lHVNUG/8nlF1IQk1C0Ci574qKYyty2goMiPlRqkC5R+3LkXDkL5Dhx8ytbxq35m+pkHVIvIxviD+TWLdfeuadA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] + '@rolldown/binding-win32-x64-msvc@1.0.0-rc.11': + resolution: {integrity: sha512-LN4/skhSggybX71ews7dAj6r2geaMJfm3kMbK2KhFMg9B10AZXnKoLCVVgzhMHL0S+aKtr4p8QbAW8k+w95bAA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [win32] + '@rolldown/binding-win32-x64-msvc@1.0.0-rc.9': resolution: {integrity: sha512-G0oA4+w1iY5AGi5HcDTxWsoxF509hrFIPB2rduV5aDqS9FtDg1CAfa7V34qImbjfhIcA8C+RekocJZA96EarwQ==} engines: {node: ^20.19.0 || >=22.12.0} @@ -4013,6 +4181,9 @@ packages: '@rolldown/pluginutils@1.0.0-beta.11': resolution: {integrity: sha512-L/gAA/hyCSuzTF1ftlzUSI/IKr2POHsv1Dd78GfqkR83KMNuswWD61JxGV2L7nRwBBBSDr6R1gCkdTmoN7W4ag==} + '@rolldown/pluginutils@1.0.0-rc.11': + resolution: {integrity: sha512-xQO9vbwBecJRv9EUcQ/y0dzSTJgA7Q6UVN7xp6B81+tBGSLVAK03yJ9NkJaUA7JFD91kbjxRSC/mDnmvXzbHoQ==} + '@rolldown/pluginutils@1.0.0-rc.5': resolution: {integrity: sha512-RxlLX/DPoarZ9PtxVrQgZhPoor987YtKQqCo5zkjX+0S0yLJ7Vv515Wk6+xtTL67VONKJKxETWZwuZjss2idYw==} @@ -4022,6 +4193,15 @@ packages: '@rolldown/pluginutils@1.0.0-rc.9': resolution: {integrity: sha512-w6oiRWgEBl04QkFZgmW+jnU1EC9b57Oihi2ot3HNWIQRqgHp5PnYDia5iZ5FF7rpa4EQdiqMDXjlqKGXBhsoXw==} + '@rollup/plugin-replace@6.0.2': + resolution: {integrity: sha512-7QaYCf8bqF04dOy7w/eHmJeNExxTYwvKAmlSAH/EaWWUzbT0h5sbF6bktFoX/0F/0qwng5/dWFMyf3gzaM8DsQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + '@rollup/pluginutils@5.1.0': resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} engines: {node: '>=14.0.0'} @@ -4167,14 +4347,13 @@ packages: '@sinclair/typebox@0.27.8': resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + '@sinclair/typebox@0.34.48': + resolution: {integrity: sha512-kKJTNuK3AQOrgjjotVxMrCn1sUJwM76wMszfq1kdU4uYVJjvEWuFQ6HgvLt4Xz3fSmZlTOxJ/Ie13KnIcWQXFA==} + '@sindresorhus/base62@1.0.0': resolution: {integrity: sha512-TeheYy0ILzBEI/CO55CP6zJCSdSWeRtGnHy8U8dWSUH4I68iqTsy7HkMktR4xakThc9jotkPQUXT4ITdbV7cHA==} engines: {node: '>=18'} - '@sindresorhus/is@7.2.0': - resolution: {integrity: sha512-P1Cz1dWaFfR4IR+U13mqqiGsLFf1KbayybWwdd2vfctdV6hDpUkgCY0nKOLLTMSoRd/jJNjtbqzf13K8DCCXQw==} - engines: {node: '>=18'} - '@sindresorhus/merge-streams@4.0.0': resolution: {integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==} engines: {node: '>=18'} @@ -4182,11 +4361,14 @@ packages: '@sinonjs/commons@2.0.0': resolution: {integrity: sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==} + '@sinonjs/commons@3.0.1': + resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==} + '@sinonjs/fake-timers@10.0.2': resolution: {integrity: sha512-SwUDyjWnah1AaNl7kxsa7cfLhlTYoiyhDAIgyh+El30YvXs/o7OLXpYH88Zdhyx9JExKrmHDJ+10bwIcY80Jmw==} - '@speed-highlight/core@1.2.14': - resolution: {integrity: sha512-G4ewlBNhUtlLvrJTb88d2mdy2KRijzs4UhnlrOSRT4bmjh/IqNElZa3zkrZ+TC47TwtlDWzVLFADljF1Ijp5hA==} + '@sinonjs/fake-timers@15.1.1': + resolution: {integrity: sha512-cO5W33JgAPbOh07tvZjUOJ7oWhtaqGHiZw+11DPbyqh2kHTBc3eF/CjJDeQ4205RLQsX6rxCuYOroFQwl7JDRw==} '@standard-schema/spec@1.1.0': resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==} @@ -4299,12 +4481,12 @@ packages: resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} engines: {node: '>= 10'} - '@tootallnate/quickjs-emscripten@0.23.0': - resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==} - '@tybys/wasm-util@0.10.1': resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==} + '@tybys/wasm-util@0.9.0': + resolution: {integrity: sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==} + '@types/acorn@4.0.6': resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==} @@ -4392,9 +4574,6 @@ packages: '@types/glob@8.1.0': resolution: {integrity: sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==} - '@types/graceful-fs@4.1.6': - resolution: {integrity: sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==} - '@types/gunzip-maybe@1.4.2': resolution: {integrity: sha512-2uqXZg1jTCKE1Pjbab8qb74+f2+i9h/jz8rQ+jRR+zaNJF75zWwrpbX8/TjF4m56m3KFOg9umHdCJ074KwiVxg==} @@ -4407,15 +4586,24 @@ packages: '@types/istanbul-lib-coverage@2.0.4': resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==} + '@types/istanbul-lib-coverage@2.0.6': + resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} + '@types/istanbul-lib-report@3.0.0': resolution: {integrity: sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==} '@types/istanbul-reports@3.0.1': resolution: {integrity: sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==} + '@types/istanbul-reports@3.0.4': + resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} + '@types/jest@29.5.12': resolution: {integrity: sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==} + '@types/jest@30.0.0': + resolution: {integrity: sha512-XTYugzhuwqWjws0CVz8QpM36+T+Dz5mTEBKhNs/esGLnCIlGdRy+Dq78NRjd7ls7r8BC8ZRMOrKlkO1hU0JOwA==} + '@types/jsdom@20.0.1': resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==} @@ -4467,11 +4655,17 @@ packages: '@types/node@12.20.55': resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} + '@types/node@20.11.30': + resolution: {integrity: sha512-dHM6ZxwlmuZaRmUPfv1p+KrdD1Dci04FbdEm/9wEMouFqxYoFl5aMkt0VMAUtYRQDyYvD41WJLukhq/ha3YuTw==} + '@types/node@20.19.37': resolution: {integrity: sha512-8kzdPJ3FsNsVIurqBs7oodNnCEVbni9yUEkaHbgptDACOPW04jimGagZ51E6+lXUwJjgnBw+hyko/lkFWCldqw==} - '@types/node@22.19.15': - resolution: {integrity: sha512-F0R/h2+dsy5wJAUe3tAU6oqa2qbWY5TpNfL/RGmo1y38hiyO1w3x2jPtt76wmuaJI4DQnOBu21cNXQ2STIUUWg==} + '@types/node@22.14.0': + resolution: {integrity: sha512-Kmpl+z84ILoG+3T/zQFyAJsU6EPTmOCj8/2+83fSN6djd6I4o7uOuGIH6vq3PrjY5BGitSbFuMN18j3iknubbA==} + + '@types/node@22.19.18': + resolution: {integrity: sha512-9v00a+dn2yWVsYDEunWC4g/TcRKVq3r8N5FuZp7u0SGrPvdN9c2yXI9bBuf5Fl0hNCb+QTIePTn5pJs2pwBOQQ==} '@types/npmcli__package-json@4.0.4': resolution: {integrity: sha512-6QjlFUSHBmZJWuC08bz1ZCx6tm4t+7+OJXAdvM6tL2pI7n6Bh5SIp/YxQvnOLFf8MzCXs2ijyFgrzaiu1UFBGA==} @@ -4527,6 +4721,9 @@ packages: '@types/stack-utils@2.0.1': resolution: {integrity: sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==} + '@types/stack-utils@2.0.3': + resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} + '@types/statuses@2.0.5': resolution: {integrity: sha512-jmIUGWrAiwu3dZpxntxieC+1n/5c3mjrImkmOSQ2NC5uP6cYO4aAZDdSmRcI5C1oiTmqlZGHC+/NmJrKogbP5A==} @@ -4560,6 +4757,9 @@ packages: '@types/yargs@17.0.24': resolution: {integrity: sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==} + '@types/yargs@17.0.35': + resolution: {integrity: sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==} + '@typescript-eslint/eslint-plugin@5.62.0': resolution: {integrity: sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -4571,11 +4771,11 @@ packages: typescript: optional: true - '@typescript-eslint/eslint-plugin@8.57.1': - resolution: {integrity: sha512-Gn3aqnvNl4NGc6x3/Bqk1AOn0thyTU9bqDRhiRnUWezgvr2OnhYCWCgC8zXXRVqBsIL1pSDt7T9nJUe0oM0kDQ==} + '@typescript-eslint/eslint-plugin@8.57.2': + resolution: {integrity: sha512-NZZgp0Fm2IkD+La5PR81sd+g+8oS6JwJje+aRWsDocxHkjyRw0J5L5ZTlN3LI1LlOcGL7ph3eaIUmTXMIjLk0w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.57.1 + '@typescript-eslint/parser': ^8.57.2 eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.0.0' @@ -4595,15 +4795,15 @@ packages: typescript: optional: true - '@typescript-eslint/parser@8.57.1': - resolution: {integrity: sha512-k4eNDan0EIMTT/dUKc/g+rsJ6wcHYhNPdY19VoX/EOtaAG8DLtKCykhrUnuHPYvinn5jhAPgD2Qw9hXBwrahsw==} + '@typescript-eslint/parser@8.57.2': + resolution: {integrity: sha512-30ScMRHIAD33JJQkgfGW1t8CURZtjc2JpTrq5n2HFhOefbAhb7ucc7xJwdWcrEtqUIYJ73Nybpsggii6GtAHjA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/project-service@8.57.1': - resolution: {integrity: sha512-vx1F37BRO1OftsYlmG9xay1TqnjNVlqALymwWVuYTdo18XuKxtBpCj1QlzNIEHlvlB27osvXFWptYiEWsVdYsg==} + '@typescript-eslint/project-service@8.57.2': + resolution: {integrity: sha512-FuH0wipFywXRTHf+bTTjNyuNQQsQC3qh/dYzaM4I4W0jrCqjCVuUh99+xd9KamUfmCGPvbO8NDngo/vsnNVqgw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' @@ -4612,12 +4812,12 @@ packages: resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@typescript-eslint/scope-manager@8.57.1': - resolution: {integrity: sha512-hs/QcpCwlwT2L5S+3fT6gp0PabyGk4Q0Rv2doJXA0435/OpnSR3VRgvrp8Xdoc3UAYSg9cyUjTeFXZEPg/3OKg==} + '@typescript-eslint/scope-manager@8.57.2': + resolution: {integrity: sha512-snZKH+W4WbWkrBqj4gUNRIGb/jipDW3qMqVJ4C9rzdFc+wLwruxk+2a5D+uoFcKPAqyqEnSb4l2ULuZf95eSkw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/tsconfig-utils@8.57.1': - resolution: {integrity: sha512-0lgOZB8cl19fHO4eI46YUx2EceQqhgkPSuCGLlGi79L2jwYY1cxeYc1Nae8Aw1xjgW3PKVDLlr3YJ6Bxx8HkWg==} + '@typescript-eslint/tsconfig-utils@8.57.2': + resolution: {integrity: sha512-3Lm5DSM+DCowsUOJC+YqHHnKEfFh5CoGkj5Z31NQSNF4l5wdOwqGn99wmwN/LImhfY3KJnmordBq/4+VDe2eKw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' @@ -4632,8 +4832,8 @@ packages: typescript: optional: true - '@typescript-eslint/type-utils@8.57.1': - resolution: {integrity: sha512-+Bwwm0ScukFdyoJsh2u6pp4S9ktegF98pYUU0hkphOOqdMB+1sNQhIz8y5E9+4pOioZijrkfNO/HUJVAFFfPKA==} + '@typescript-eslint/type-utils@8.57.2': + resolution: {integrity: sha512-Co6ZCShm6kIbAM/s+oYVpKFfW7LBc6FXoPXjTRQ449PPNBY8U0KZXuevz5IFuuUj2H9ss40atTaf9dlGLzbWZg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 @@ -4643,8 +4843,8 @@ packages: resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@typescript-eslint/types@8.57.1': - resolution: {integrity: sha512-S29BOBPJSFUiblEl6RzPPjJt6w25A6XsBqRVDt53tA/tlL8q7ceQNZHTjPeONt/3S7KRI4quk+yP9jK2WjBiPQ==} + '@typescript-eslint/types@8.57.2': + resolution: {integrity: sha512-/iZM6FnM4tnx9csuTxspMW4BOSegshwX5oBDznJ7S4WggL7Vczz5d2W11ecc4vRrQMQHXRSxzrCsyG5EsPPTbA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript-eslint/typescript-estree@5.62.0': @@ -4656,8 +4856,8 @@ packages: typescript: optional: true - '@typescript-eslint/typescript-estree@8.57.1': - resolution: {integrity: sha512-ybe2hS9G6pXpqGtPli9Gx9quNV0TWLOmh58ADlmZe9DguLq0tiAKVjirSbtM1szG6+QH6rVXyU6GTLQbWnMY+g==} + '@typescript-eslint/typescript-estree@8.57.2': + resolution: {integrity: sha512-2MKM+I6g8tJxfSmFKOnHv2t8Sk3T6rF20A1Puk0svLK+uVapDZB/4pfAeB7nE83uAZrU6OxW+HmOd5wHVdXwXA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' @@ -4668,8 +4868,8 @@ packages: peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - '@typescript-eslint/utils@8.57.1': - resolution: {integrity: sha512-XUNSJ/lEVFttPMMoDVA2r2bwrl8/oPx8cURtczkSEswY5T3AeLmCy+EKWQNdL4u0MmAHOjcWrqJp2cdvgjn8dQ==} + '@typescript-eslint/utils@8.57.2': + resolution: {integrity: sha512-krRIbvPK1ju1WBKIefiX+bngPs+odIQUtR7kymzPfo1POVw3jlF+nLkmexdSSd4UCbDcQn+wMBATOOmpBbqgKg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 @@ -4679,51 +4879,163 @@ packages: resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@typescript-eslint/visitor-keys@8.57.1': - resolution: {integrity: sha512-YWnmJkXbofiz9KbnbbwuA2rpGkFPLbAIetcCNO6mJ8gdhdZ/v7WDXsoGFAJuM6ikUFKTlSQnjWnVO4ux+UzS6A==} + '@typescript-eslint/visitor-keys@8.57.2': + resolution: {integrity: sha512-zhahknjobV2FiD6Ee9iLbS7OV9zi10rG26odsQdfBO/hjSzUQbkIYgda+iNKK1zNiW2ey+Lf8MU5btN17V3dUw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@ungap/structured-clone@1.2.0': resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - '@vanilla-extract/babel-plugin-debug-ids@1.2.2': - resolution: {integrity: sha512-MeDWGICAF9zA/OZLOKwhoRlsUW+fiMwnfuOAqFVohL31Agj7Q/RBWAYweqjHLgFBCsdnr6XIfwjJnmb2znEWxw==} + '@ungap/structured-clone@1.3.0': + resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} - '@vanilla-extract/compiler@0.5.0': - resolution: {integrity: sha512-Uia72osEn72NIJBgBSYUc4Z08MItLKO+xzEsyJvz/C/dsxSPs2s5ru2tkCK2xEbiABDmYnzQcLUrsv9vCUb2fw==} + '@unrs/resolver-binding-android-arm-eabi@1.11.1': + resolution: {integrity: sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==} + cpu: [arm] + os: [android] - '@vanilla-extract/css@1.19.0': - resolution: {integrity: sha512-CmiHmTn0VXYW2/A575zzAJ+gJWBRdpEhEseg93WBst0QNQJiHO3cQXyVMIW+RhPi5D9TM8W4U929/ELDaXq6yQ==} + '@unrs/resolver-binding-android-arm64@1.11.1': + resolution: {integrity: sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g==} + cpu: [arm64] + os: [android] - '@vanilla-extract/integration@8.0.8': - resolution: {integrity: sha512-/MIdmUzeTHdGY00BJVGk9IPYxOkzVIzSpnxiyr2aoZnlxDyvCpjApQSwtMaP0a01T3xiROufDCn4cmSnOjwr1Q==} + '@unrs/resolver-binding-darwin-arm64@1.11.1': + resolution: {integrity: sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g==} + cpu: [arm64] + os: [darwin] - '@vanilla-extract/private@1.0.9': - resolution: {integrity: sha512-gT2jbfZuaaCLrAxwXbRgIhGhcXbRZCG3v4TTUnjw0EJ7ArdBRxkq4msNJkbuRkCgfIK5ATmprB5t9ljvLeFDEA==} + '@unrs/resolver-binding-darwin-x64@1.11.1': + resolution: {integrity: sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ==} + cpu: [x64] + os: [darwin] - '@vanilla-extract/vite-plugin@5.2.0': - resolution: {integrity: sha512-FM2DP/jJG2BOdK83nZe+w5+2+Qv3oYlckApAOWMTnSG9rWBdBeh4L7PzJKcix9RctvuaRC0ogY1GOnoP99+BsQ==} - peerDependencies: - vite: ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 + '@unrs/resolver-binding-freebsd-x64@1.11.1': + resolution: {integrity: sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw==} + cpu: [x64] + os: [freebsd] - '@vitejs/plugin-react@4.5.2': - resolution: {integrity: sha512-QNVT3/Lxx99nMQWJWF7K4N6apUEuT0KlZA3mx/mVaoGj3smm/8rc8ezz15J1pcbcjDK0V15rpHetVfya08r76Q==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - vite: ^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0 + '@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1': + resolution: {integrity: sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw==} + cpu: [arm] + os: [linux] - '@vitejs/plugin-react@6.0.1': - resolution: {integrity: sha512-l9X/E3cDb+xY3SWzlG1MOGt2usfEHGMNIaegaUGFsLkb3RCn/k8/TOXBcab+OndDI4TBtktT8/9BwwW8Vi9KUQ==} - engines: {node: ^20.19.0 || >=22.12.0} - peerDependencies: - '@rolldown/plugin-babel': ^0.1.7 || ^0.2.0 - babel-plugin-react-compiler: ^1.0.0 - vite: ^8.0.0 - peerDependenciesMeta: - '@rolldown/plugin-babel': - optional: true - babel-plugin-react-compiler: - optional: true + '@unrs/resolver-binding-linux-arm-musleabihf@1.11.1': + resolution: {integrity: sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw==} + cpu: [arm] + os: [linux] + + '@unrs/resolver-binding-linux-arm64-gnu@1.11.1': + resolution: {integrity: sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==} + cpu: [arm64] + os: [linux] + + '@unrs/resolver-binding-linux-arm64-musl@1.11.1': + resolution: {integrity: sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==} + cpu: [arm64] + os: [linux] + + '@unrs/resolver-binding-linux-ppc64-gnu@1.11.1': + resolution: {integrity: sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==} + cpu: [ppc64] + os: [linux] + + '@unrs/resolver-binding-linux-riscv64-gnu@1.11.1': + resolution: {integrity: sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==} + cpu: [riscv64] + os: [linux] + + '@unrs/resolver-binding-linux-riscv64-musl@1.11.1': + resolution: {integrity: sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==} + cpu: [riscv64] + os: [linux] + + '@unrs/resolver-binding-linux-s390x-gnu@1.11.1': + resolution: {integrity: sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==} + cpu: [s390x] + os: [linux] + + '@unrs/resolver-binding-linux-x64-gnu@1.11.1': + resolution: {integrity: sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==} + cpu: [x64] + os: [linux] + + '@unrs/resolver-binding-linux-x64-musl@1.11.1': + resolution: {integrity: sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==} + cpu: [x64] + os: [linux] + + '@unrs/resolver-binding-wasm32-wasi@1.11.1': + resolution: {integrity: sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + + '@unrs/resolver-binding-win32-arm64-msvc@1.11.1': + resolution: {integrity: sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw==} + cpu: [arm64] + os: [win32] + + '@unrs/resolver-binding-win32-ia32-msvc@1.11.1': + resolution: {integrity: sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ==} + cpu: [ia32] + os: [win32] + + '@unrs/resolver-binding-win32-x64-msvc@1.11.1': + resolution: {integrity: sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g==} + cpu: [x64] + os: [win32] + + '@vanilla-extract/babel-plugin-debug-ids@1.2.2': + resolution: {integrity: sha512-MeDWGICAF9zA/OZLOKwhoRlsUW+fiMwnfuOAqFVohL31Agj7Q/RBWAYweqjHLgFBCsdnr6XIfwjJnmb2znEWxw==} + + '@vanilla-extract/compiler@0.5.0': + resolution: {integrity: sha512-Uia72osEn72NIJBgBSYUc4Z08MItLKO+xzEsyJvz/C/dsxSPs2s5ru2tkCK2xEbiABDmYnzQcLUrsv9vCUb2fw==} + + '@vanilla-extract/compiler@0.6.0': + resolution: {integrity: sha512-FlZM8s/h1obGHdYSTo05iIXUr6hsNvoE/okv/e9Sq7GN+niofhUKyuZPSwZNVYMK49xxeWNH9mopOlGRRPV4mw==} + + '@vanilla-extract/css@1.17.4': + resolution: {integrity: sha512-m3g9nQDWPtL+sTFdtCGRMI1Vrp86Ay4PBYq1Bo7Bnchj5ElNtAJpOqD+zg+apthVA4fB7oVpMWNjwpa6ElDWFQ==} + + '@vanilla-extract/css@1.19.0': + resolution: {integrity: sha512-CmiHmTn0VXYW2/A575zzAJ+gJWBRdpEhEseg93WBst0QNQJiHO3cQXyVMIW+RhPi5D9TM8W4U929/ELDaXq6yQ==} + + '@vanilla-extract/css@1.20.0': + resolution: {integrity: sha512-yKuajXFlghIjRZmEfy95z6MYj+mzJPoD3nbNLVAUB8Np6I1P9g5vBlznQPD+0A46osCn0za/wIvp/cg8HU3aig==} + + '@vanilla-extract/integration@8.0.9': + resolution: {integrity: sha512-NP+CSo5IYHDmkMMy5vAxY4R9i2+CAg4sxgvVaxuHiuY9q30i6dNUTujNNKZGW2urEkd4HVVI6NggeIyYjbGPwA==} + + '@vanilla-extract/private@1.0.9': + resolution: {integrity: sha512-gT2jbfZuaaCLrAxwXbRgIhGhcXbRZCG3v4TTUnjw0EJ7ArdBRxkq4msNJkbuRkCgfIK5ATmprB5t9ljvLeFDEA==} + + '@vanilla-extract/vite-plugin@5.2.0': + resolution: {integrity: sha512-FM2DP/jJG2BOdK83nZe+w5+2+Qv3oYlckApAOWMTnSG9rWBdBeh4L7PzJKcix9RctvuaRC0ogY1GOnoP99+BsQ==} + peerDependencies: + vite: ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 + + '@vanilla-extract/vite-plugin@5.2.1': + resolution: {integrity: sha512-1dmCgmTmls/c4G+t453vZIzZ+82ftr+JC2J48C1drVkiwtZ7DscYSIko9Ci0CyDptBLWz5EO9fWnqzfHnns8tg==} + peerDependencies: + vite: ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 + + '@vitejs/plugin-react@4.5.2': + resolution: {integrity: sha512-QNVT3/Lxx99nMQWJWF7K4N6apUEuT0KlZA3mx/mVaoGj3smm/8rc8ezz15J1pcbcjDK0V15rpHetVfya08r76Q==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: ^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0 + + '@vitejs/plugin-react@6.0.1': + resolution: {integrity: sha512-l9X/E3cDb+xY3SWzlG1MOGt2usfEHGMNIaegaUGFsLkb3RCn/k8/TOXBcab+OndDI4TBtktT8/9BwwW8Vi9KUQ==} + engines: {node: ^20.19.0 || >=22.12.0} + peerDependencies: + '@rolldown/plugin-babel': ^0.1.7 || ^0.2.0 + babel-plugin-react-compiler: ^1.0.0 + vite: ^8.0.0 + peerDependenciesMeta: + '@rolldown/plugin-babel': + optional: true + babel-plugin-react-compiler: + optional: true '@vitejs/plugin-rsc@0.5.21': resolution: {integrity: sha512-uNayLT8IKvWoznvQyfwKuGiEFV28o7lxUDnw/Av36VCuGpDFZnMmvVCwR37gTvnSmnpul9V0tdJqY3tBKEaDqw==} @@ -4736,37 +5048,34 @@ packages: react-server-dom-webpack: optional: true - '@vitest/expect@4.1.0': - resolution: {integrity: sha512-EIxG7k4wlWweuCLG9Y5InKFwpMEOyrMb6ZJ1ihYu02LVj/bzUwn2VMU+13PinsjRW75XnITeFrQBMH5+dLvCDA==} + '@vitest/expect@4.1.1': + resolution: {integrity: sha512-xAV0fqBTk44Rn6SjJReEQkHP3RrqbJo6JQ4zZ7/uVOiJZRarBtblzrOfFIZeYUrukp2YD6snZG6IBqhOoHTm+A==} - '@vitest/mocker@4.1.0': - resolution: {integrity: sha512-evxREh+Hork43+Y4IOhTo+h5lGmVRyjqI739Rz4RlUPqwrkFFDF6EMvOOYjTx4E8Tl6gyCLRL8Mu7Ry12a13Tw==} + '@vitest/mocker@4.1.1': + resolution: {integrity: sha512-h3BOylsfsCLPeceuCPAAJ+BvNwSENgJa4hXoXu4im0bs9Lyp4URc4JYK4pWLZ4pG/UQn7AT92K6IByi6rE6g3A==} peerDependencies: msw: ^2.4.9 - vite: ^6.0.0 || ^7.0.0 || ^8.0.0-0 + vite: ^6.0.0 || ^7.0.0 || ^8.0.0 peerDependenciesMeta: msw: optional: true vite: optional: true - '@vitest/pretty-format@4.1.0': - resolution: {integrity: sha512-3RZLZlh88Ib0J7NQTRATfc/3ZPOnSUn2uDBUoGNn5T36+bALixmzphN26OUD3LRXWkJu4H0s5vvUeqBiw+kS0A==} - - '@vitest/runner@4.1.0': - resolution: {integrity: sha512-Duvx2OzQ7d6OjchL+trw+aSrb9idh7pnNfxrklo14p3zmNL4qPCDeIJAK+eBKYjkIwG96Bc6vYuxhqDXQOWpoQ==} + '@vitest/pretty-format@4.1.1': + resolution: {integrity: sha512-GM+TEQN5WhOygr1lp7skeVjdLPqqWMHsfzXrcHAqZJi/lIVh63H0kaRCY8MDhNWikx19zBUK8ceaLB7X5AH9NQ==} - '@vitest/snapshot@4.1.0': - resolution: {integrity: sha512-0Vy9euT1kgsnj1CHttwi9i9o+4rRLEaPRSOJ5gyv579GJkNpgJK+B4HSv/rAWixx2wdAFci1X4CEPjiu2bXIMg==} + '@vitest/runner@4.1.1': + resolution: {integrity: sha512-f7+FPy75vN91QGWsITueq0gedwUZy1fLtHOCMeQpjs8jTekAHeKP80zfDEnhrleviLHzVSDXIWuCIOFn3D3f8A==} - '@vitest/spy@4.1.0': - resolution: {integrity: sha512-pz77k+PgNpyMDv2FV6qmk5ZVau6c3R8HC8v342T2xlFxQKTrSeYw9waIJG8KgV9fFwAtTu4ceRzMivPTH6wSxw==} + '@vitest/snapshot@4.1.1': + resolution: {integrity: sha512-kMVSgcegWV2FibXEx9p9WIKgje58lcTbXgnJixfcg15iK8nzCXhmalL0ZLtTWLW9PH1+1NEDShiFFedB3tEgWg==} - '@vitest/utils@4.1.0': - resolution: {integrity: sha512-XfPXT6a8TZY3dcGY8EdwsBulFCIw+BeeX0RZn2x/BtiY/75YGh8FeWGG8QISN/WhaqSrE2OrlDgtF8q5uhOTmw==} + '@vitest/spy@4.1.1': + resolution: {integrity: sha512-6Ti/KT5OVaiupdIZEuZN7l3CZcR0cxnxt70Z0//3CtwgObwA6jZhmVBA3yrXSVN3gmwjgd7oDNLlsXz526gpRA==} - '@web3-storage/multipart-parser@1.0.0': - resolution: {integrity: sha512-BEO6al7BYqcnfX15W2cnGR+Q566ACXAT9UQykORCWW80lmkpWsnEob6zJS1ZVBKsSJC8+7vJkHwlp+lXG1UCdw==} + '@vitest/utils@4.1.1': + resolution: {integrity: sha512-cNxAlaB3sHoCdL6pj6yyUXv9Gry1NHNg0kFTXdvSIZXLHsqKH7chiWOkwJ5s5+d/oMwcoG9T0bKU38JZWKusrQ==} '@webassemblyjs/ast@1.14.1': resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} @@ -4819,21 +5128,17 @@ packages: '@xtuc/long@4.2.2': resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} - '@zxing/text-encoding@0.9.0': - resolution: {integrity: sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==} - abab@2.0.6: resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} deprecated: Use your platform's native atob() and btoa() methods instead - abort-controller@3.0.0: - resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} - engines: {node: '>=6.5'} - accepts@1.3.8: resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} engines: {node: '>= 0.6'} + acorn-globals@7.0.1: + resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==} + acorn-import-phases@1.0.4: resolution: {integrity: sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==} engines: {node: '>=10.13.0'} @@ -4858,6 +5163,11 @@ packages: engines: {node: '>=0.4.0'} hasBin: true + acorn@8.15.0: + resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} + engines: {node: '>=0.4.0'} + hasBin: true + acorn@8.16.0: resolution: {integrity: sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==} engines: {node: '>=0.4.0'} @@ -4867,10 +5177,6 @@ packages: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} - agent-base@7.1.1: - resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==} - engines: {node: '>= 14'} - ajv-formats@2.1.1: resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} peerDependencies: @@ -4884,6 +5190,9 @@ packages: peerDependencies: ajv: ^8.8.2 + ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + ajv@6.14.0: resolution: {integrity: sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==} @@ -4949,6 +5258,10 @@ packages: resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} engines: {node: '>= 0.4'} + array-buffer-byte-length@1.0.1: + resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} + engines: {node: '>= 0.4'} + array-buffer-byte-length@1.0.2: resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} engines: {node: '>= 0.4'} @@ -4956,6 +5269,10 @@ packages: array-flatten@1.1.1: resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} + array-includes@3.1.8: + resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} + engines: {node: '>= 0.4'} + array-includes@3.1.9: resolution: {integrity: sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==} engines: {node: '>= 0.4'} @@ -4972,10 +5289,18 @@ packages: resolution: {integrity: sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==} engines: {node: '>= 0.4'} + array.prototype.flat@1.3.2: + resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} + engines: {node: '>= 0.4'} + array.prototype.flat@1.3.3: resolution: {integrity: sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==} engines: {node: '>= 0.4'} + array.prototype.flatmap@1.3.2: + resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} + engines: {node: '>= 0.4'} + array.prototype.flatmap@1.3.3: resolution: {integrity: sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==} engines: {node: '>= 0.4'} @@ -4984,6 +5309,10 @@ packages: resolution: {integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==} engines: {node: '>= 0.4'} + arraybuffer.prototype.slice@1.0.3: + resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} + engines: {node: '>= 0.4'} + arraybuffer.prototype.slice@1.0.4: resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==} engines: {node: '>= 0.4'} @@ -5001,10 +5330,6 @@ packages: ast-types-flow@0.0.8: resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} - ast-types@0.13.4: - resolution: {integrity: sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==} - engines: {node: '>=4'} - astring@1.8.6: resolution: {integrity: sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==} hasBin: true @@ -5030,24 +5355,24 @@ packages: babel-dead-code-elimination@1.0.10: resolution: {integrity: sha512-DV5bdJZTzZ0zn0DC24v3jD7Mnidh6xhKa4GfKCbq3sfW8kaWhDdZjP3i81geA8T33tdYqWKw4D3fVv0CwEgKVA==} - babel-jest@29.7.0: - resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + babel-jest@30.3.0: + resolution: {integrity: sha512-gRpauEU2KRrCox5Z296aeVHR4jQ98BCnu0IO332D/xpHNOsIH/bgSRk9k6GbKIbBw8vFeN6ctuu6tV8WOyVfYQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} peerDependencies: - '@babel/core': ^7.8.0 + '@babel/core': ^7.11.0 || ^8.0.0-0 babel-plugin-dev-expression@0.2.3: resolution: {integrity: sha512-rP5LK9QQTzCW61nVVzw88En1oK8t8gTsIeC6E61oelxNsU842yMjF0G1MxhvUpCkxCEIj7sE8/e5ieTheT//uw==} peerDependencies: '@babel/core': ^7.0.0 - babel-plugin-istanbul@6.1.1: - resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} - engines: {node: '>=8'} + babel-plugin-istanbul@7.0.1: + resolution: {integrity: sha512-D8Z6Qm8jCvVXtIRkBnqNHX0zJ37rQcFJ9u8WOS6tkYOsRdHBzypCstaxWiu5ZIlqQtviRYbgnRLSoCEvjqcqbA==} + engines: {node: '>=12'} - babel-plugin-jest-hoist@29.6.3: - resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + babel-plugin-jest-hoist@30.3.0: + resolution: {integrity: sha512-+TRkByhsws6sfPjVaitzadk1I0F5sPvOVUH5tyTSzhePpsGIVrdeunHSw/C36QeocS95OOk8lunc4rlu5Anwsg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} babel-plugin-macros@3.1.0: resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==} @@ -5086,16 +5411,16 @@ packages: babel-plugin-transform-react-remove-prop-types@0.4.24: resolution: {integrity: sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==} - babel-preset-current-node-syntax@1.0.1: - resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} + babel-preset-current-node-syntax@1.2.0: + resolution: {integrity: sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==} peerDependencies: - '@babel/core': ^7.0.0 + '@babel/core': ^7.0.0 || ^8.0.0-0 - babel-preset-jest@29.6.3: - resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + babel-preset-jest@30.3.0: + resolution: {integrity: sha512-6ZcUbWHC+dMz2vfzdNwi87Z1gQsLNK2uLuK1Q89R11xdvejcivlYYwDlEv0FHX3VwEXpbBQ9uufB/MUNpZGfhQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} peerDependencies: - '@babel/core': ^7.0.0 + '@babel/core': ^7.11.0 || ^8.0.0-beta.1 babel-preset-react-app@10.0.1: resolution: {integrity: sha512-b0D9IZ1WhhCWkrTXyFuIIgqGzSkRIH5D5AmB0bXbzYAB1OBAwHcUeyWW2LorutLWF5btNo/N7r/cIdmvvKJlYg==} @@ -5125,10 +5450,8 @@ packages: resolution: {integrity: sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==} engines: {node: '>= 0.8'} - basic-ftp@5.0.5: - resolution: {integrity: sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==} - engines: {node: '>=10.0.0'} - deprecated: Security vulnerability fixed in 5.2.1, please upgrade + bidi-js@1.0.3: + resolution: {integrity: sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw==} binary-extensions@2.3.0: resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} @@ -5157,8 +5480,8 @@ packages: resolution: {integrity: sha512-l/mOwLWs7BQIgOKrL46dIAbyCKvPV7YJPDspkuc88rHsZRlg3hptUGdU7Trv0VFP4d3xnSGBQrKu5ZvGB7UeIw==} engines: {node: '>= 18'} - brace-expansion@5.0.4: - resolution: {integrity: sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==} + brace-expansion@5.0.5: + resolution: {integrity: sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==} engines: {node: 18 || 20 || >=22} braces@3.0.2: @@ -5200,6 +5523,10 @@ packages: resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} engines: {node: '>= 0.4'} + call-bind@1.0.7: + resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + engines: {node: '>= 0.4'} + call-bind@1.0.8: resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} engines: {node: '>= 0.4'} @@ -5280,8 +5607,12 @@ packages: resolution: {integrity: sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==} engines: {node: '>=8'} - cjs-module-lexer@1.2.2: - resolution: {integrity: sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==} + ci-info@4.4.0: + resolution: {integrity: sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==} + engines: {node: '>=8'} + + cjs-module-lexer@2.2.0: + resolution: {integrity: sha512-4bHTS2YuzUvtoLjdy+98ykbNB5jS0+07EvFNXerqZQJ89F7DI6ET7OQo/HJuW6K0aVsKA9hj9/RVb2kQVOrPDQ==} cli-cursor@4.0.0: resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} @@ -5306,8 +5637,8 @@ packages: collapse-white-space@2.1.0: resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==} - collect-v8-coverage@1.0.1: - resolution: {integrity: sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==} + collect-v8-coverage@1.0.3: + resolution: {integrity: sha512-1L5aqIkwPfiodaMgQunkF1zRhNqifHBmtbbbxcr6yVxxBnliw4TDOW6NxpO8DJLgJ16OT+Y4ztZqP6p/FtXnAw==} color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} @@ -5316,6 +5647,13 @@ packages: color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + color-string@1.9.1: + resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} + + color@4.2.3: + resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} + engines: {node: '>=12.5.0'} + combined-stream@1.0.8: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} @@ -5398,8 +5736,8 @@ packages: resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} engines: {node: '>= 0.6'} - cookie@1.1.1: - resolution: {integrity: sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==} + cookie@1.0.1: + resolution: {integrity: sha512-Xd8lFX4LM9QEEwxQpF9J9NTUh8pmdJO0cyRJhFiDoLTk2eH8FXlRv2IFGYVadZpqI3j8fhNrSdKCeYPxiAhLXw==} engines: {node: '>=18'} cookiejar@2.1.4: @@ -5415,11 +5753,6 @@ packages: resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} engines: {node: '>=10'} - create-jest@29.7.0: - resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true - cross-env@7.0.3: resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==} engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} @@ -5436,6 +5769,10 @@ packages: css-select@5.1.0: resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} + css-tree@3.2.1: + resolution: {integrity: sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + css-what@6.1.0: resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} engines: {node: '>= 6'} @@ -5448,9 +5785,18 @@ packages: engines: {node: '>=4'} hasBin: true - cssstyle@3.0.0: - resolution: {integrity: sha512-N4u2ABATi3Qplzf0hWbVCdjenim8F3ojEXpBDF5hBpjzW182MjNGLqfmQ0SkSPeQ+V86ZXgeH8aXj6kayd4jgg==} - engines: {node: '>=14'} + cssom@0.3.8: + resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} + + cssom@0.5.0: + resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==} + + cssstyle@2.3.0: + resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==} + engines: {node: '>=8'} + + csstype@3.1.1: + resolution: {integrity: sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==} csstype@3.2.3: resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} @@ -5461,30 +5807,41 @@ packages: data-uri-to-buffer@2.0.2: resolution: {integrity: sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==} - data-uri-to-buffer@3.0.1: - resolution: {integrity: sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==} - engines: {node: '>= 6'} + data-urls@3.0.2: + resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==} + engines: {node: '>=12'} - data-uri-to-buffer@6.0.2: - resolution: {integrity: sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==} - engines: {node: '>= 14'} + data-urls@7.0.0: + resolution: {integrity: sha512-23XHcCF+coGYevirZceTVD7NdJOqVn+49IHyxgszm+JIiHLoB2TkmPtsYkNWT1pvRSGkc35L6NHs0yHkN2SumA==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} - data-urls@4.0.0: - resolution: {integrity: sha512-/mMTei/JXPqvFqQtfyTowxmJVwr2PVAeCcDxyFf6LhoOu/09TX2OX3kb2wzi4DMXcfj4OItwDOnhl5oziPnT6g==} - engines: {node: '>=14'} + data-view-buffer@1.0.1: + resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} + engines: {node: '>= 0.4'} data-view-buffer@1.0.2: resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==} engines: {node: '>= 0.4'} + data-view-byte-length@1.0.1: + resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} + engines: {node: '>= 0.4'} + data-view-byte-length@1.0.2: resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==} engines: {node: '>= 0.4'} + data-view-byte-offset@1.0.0: + resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} + engines: {node: '>= 0.4'} + data-view-byte-offset@1.0.1: resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==} engines: {node: '>= 0.4'} + dataloader@1.4.0: + resolution: {integrity: sha512-68s5jYdlvasItOJnCuI2Q9s4q98g0pCyL3HrcKJu8KNugUl8ahgmZYg38ysLTgQjjXX3H8CJLkAvWrclWfcalw==} + debug@2.6.9: resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} peerDependencies: @@ -5501,6 +5858,15 @@ packages: supports-color: optional: true + debug@4.4.1: + resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + debug@4.4.3: resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} engines: {node: '>=6.0'} @@ -5513,6 +5879,9 @@ packages: decimal.js@10.4.3: resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} + decimal.js@10.6.0: + resolution: {integrity: sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==} + decode-named-character-reference@1.0.2: resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} @@ -5527,6 +5896,14 @@ packages: babel-plugin-macros: optional: true + dedent@1.7.2: + resolution: {integrity: sha512-WzMx3mW98SN+zn3hgemf4OzdmyNhhhKz5Ay0pUfQiMQ3e1g+xmTJWp/pKdwKVXhdSkAEGIIzqeuWrL3mV/AXbA==} + peerDependencies: + babel-plugin-macros: ^3.1.0 + peerDependenciesMeta: + babel-plugin-macros: + optional: true + deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} @@ -5545,9 +5922,8 @@ packages: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} - degenerator@5.0.1: - resolution: {integrity: sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==} - engines: {node: '>= 14'} + defu@6.1.4: + resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} delayed-stream@1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} @@ -5573,8 +5949,8 @@ packages: resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} engines: {node: '>=8'} - detect-libc@2.1.2: - resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} + detect-libc@2.0.3: + resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} engines: {node: '>=8'} detect-newline@3.1.0: @@ -5694,11 +6070,16 @@ packages: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} + entities@6.0.1: + resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} + engines: {node: '>=0.12'} + error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} - error-stack-parser-es@1.0.5: - resolution: {integrity: sha512-5qucVt2XcuGMcEGgWI7i+yZpmpByQ8J1lHhcL7PwqCwu9FPP3VUXzT4ltHe5i2z9dePwEHcDVOAfSnHsOlCXRA==} + es-abstract@1.23.3: + resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==} + engines: {node: '>= 0.4'} es-abstract@1.24.1: resolution: {integrity: sha512-zHXBLhP+QehSSbsS9Pt23Gg964240DPd6QCf8WpkqEXxQ7fhdZzYsocOr5u7apWonsS5EjZDmTF+/slGMyasvw==} @@ -5726,14 +6107,25 @@ packages: resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} engines: {node: '>= 0.4'} + es-set-tostringtag@2.0.3: + resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} + engines: {node: '>= 0.4'} + es-set-tostringtag@2.1.0: resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} engines: {node: '>= 0.4'} + es-shim-unscopables@1.0.2: + resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} + es-shim-unscopables@1.1.0: resolution: {integrity: sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==} engines: {node: '>= 0.4'} + es-to-primitive@1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + engines: {node: '>= 0.4'} + es-to-primitive@1.3.0: resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} engines: {node: '>= 0.4'} @@ -5753,8 +6145,8 @@ packages: engines: {node: '>=18'} hasBin: true - esbuild@0.27.3: - resolution: {integrity: sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg==} + esbuild@0.25.4: + resolution: {integrity: sha512-8pgjLUcUjcgDg+2Q4NYXnPbo/vncAY4UmyaCm0jZevERqCHZIaWwdJHkf8XQtu4AxSKCdvrUbT0XUr1IdZzI8Q==} engines: {node: '>=18'} hasBin: true @@ -5852,14 +6244,14 @@ packages: jest: optional: true - eslint-plugin-jest@29.15.0: - resolution: {integrity: sha512-ZCGr7vTH2WSo2hrK5oM2RULFmMruQ7W3cX7YfwoTiPfzTGTFBMmrVIz45jZHd++cGKj/kWf02li/RhTGcANJSA==} + eslint-plugin-jest@29.15.1: + resolution: {integrity: sha512-6BjyErCQauz3zfJvzLw/kAez2lf4LEpbHLvWBfEcG4EI0ZiRSwjoH2uZulMouU8kRkBH+S0rhqn11IhTvxKgKw==} engines: {node: ^20.12.0 || ^22.0.0 || >=24.0.0} peerDependencies: '@typescript-eslint/eslint-plugin': ^8.0.0 eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 jest: '*' - typescript: '>=4.8.4 <6.0.0' + typescript: '>=4.8.4 <7.0.0' peerDependenciesMeta: '@typescript-eslint/eslint-plugin': optional: true @@ -5868,8 +6260,8 @@ packages: typescript: optional: true - eslint-plugin-jsdoc@62.8.0: - resolution: {integrity: sha512-hu3r9/6JBmPG6wTcqtYzgZAnjEG2eqRUATfkFscokESg1VDxZM21ZaMire0KjeMwfj+SXvgB4Rvh5LBuesj92w==} + eslint-plugin-jsdoc@62.8.1: + resolution: {integrity: sha512-e9358PdHgvcMF98foNd3L7hVCw70Lt+YcSL7JzlJebB8eT5oRJtW6bHMQKoAwJtw6q0q0w/fRIr2kwnHdFDI6A==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} peerDependencies: eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0 @@ -5886,8 +6278,8 @@ packages: peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 - eslint-plugin-react-hooks@7.1.1-canary-d1727fbf-20260417: - resolution: {integrity: sha512-lGcF2qMJEgVLjyqMqoYUWjMqIqyd09FfXpbw9yVyvsVz6rcPdoPZheTReIiNtC/CaF5YKpGlVhyRw2VnpFwuRQ==} + eslint-plugin-react-hooks@7.1.1-canary-d5736f09-20260507: + resolution: {integrity: sha512-RQYy8OszUjO7INbw59O7pBCS/8PR9cRKSoOky4dW1kdG4LeIgtk/h1QLbD3N1dTq3X4/u/w/GDPwtx583XVyvA==} engines: {node: '>=18'} peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 || ^10.0.0 @@ -5957,6 +6349,10 @@ packages: engines: {node: '>=4'} hasBin: true + esquery@1.6.0: + resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} + engines: {node: '>=0.10'} + esquery@1.7.0: resolution: {integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==} engines: {node: '>=0.10'} @@ -6012,10 +6408,6 @@ packages: resolution: {integrity: sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw==} engines: {node: '>= 0.8'} - 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'} @@ -6032,8 +6424,8 @@ packages: resolution: {integrity: sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw==} engines: {node: '>=6'} - exit@0.1.2: - resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} + exit-x@0.2.2: + resolution: {integrity: sha512-+I6B/IkJc1o/2tiURyz/ivu/O0nKNEArIUB5O7zBrlDVJr22SCLH3xTeEry428LvFhRzIA1g8izguxJ/gbNcVQ==} engines: {node: '>= 0.8.0'} expect-type@1.3.0: @@ -6044,6 +6436,10 @@ packages: resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + expect@30.3.0: + resolution: {integrity: sha512-1zQrciTiQfRdo7qJM1uG4navm8DayFa2TgCSRlzUyNkhcJ6XUZF3hjnpkyr3VhAqPH7i/9GkG7Tv5abz6fqz0Q==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + express@4.21.2: resolution: {integrity: sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==} engines: {node: '>= 0.10.0'} @@ -6054,6 +6450,9 @@ packages: extend@3.0.2: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + extendable-error@0.1.7: + resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==} + fast-content-type-parse@2.0.1: resolution: {integrity: sha512-nGqtvLrj5w0naR6tDPfB4cUmYCqouzyQiz6C5y/LtcDllJdrcc6WaWW6iXyIIOErTa/XRybj28aasdn4LkVk6Q==} @@ -6085,6 +6484,14 @@ packages: fb-watchman@2.0.2: resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} + fdir@6.4.6: + resolution: {integrity: sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + fdir@6.5.0: resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} engines: {node: '>=12.0.0'} @@ -6133,6 +6540,9 @@ packages: resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} engines: {node: '>=16'} + flatted@3.2.7: + resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} + flatted@3.4.2: resolution: {integrity: sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==} @@ -6145,6 +6555,9 @@ packages: debug: optional: true + for-each@0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + for-each@0.3.5: resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} engines: {node: '>= 0.4'} @@ -6176,10 +6589,6 @@ packages: fs-constants@1.0.0: resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} - fs-extra@11.2.0: - resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} - engines: {node: '>=14.14'} - fs-extra@8.1.0: resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} engines: {node: '>=6 <7 || >=8'} @@ -6200,6 +6609,10 @@ packages: function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + function.prototype.name@1.1.6: + resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} + engines: {node: '>= 0.4'} + function.prototype.name@1.1.8: resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==} engines: {node: '>= 0.4'} @@ -6227,6 +6640,10 @@ packages: resolution: {integrity: sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==} engines: {node: '>=8'} + get-port@7.1.0: + resolution: {integrity: sha512-QB9NKEeDg3xxVwCCwJQ9+xycaz6pBB6iQ76wiWMl1927n0Kir6alPiP+yuiICLLU4jpMe08dXfpebuQppFA2zw==} + engines: {node: '>=16'} + get-proto@1.0.1: resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} engines: {node: '>= 0.4'} @@ -6242,6 +6659,10 @@ packages: resolution: {integrity: sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==} engines: {node: '>=18'} + get-symbol-description@1.0.2: + resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} + engines: {node: '>= 0.4'} + get-symbol-description@1.1.0: resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} engines: {node: '>= 0.4'} @@ -6249,10 +6670,6 @@ packages: get-tsconfig@4.10.0: resolution: {integrity: sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A==} - get-uri@6.0.3: - resolution: {integrity: sha512-BzUrJBS9EcUb4cFol8r4W3v1cPsSyajLSthNkz5BxbpDcHN5tIrM10E2eNvfnvBn3DaT3DUgx0OpsBKkaOpanw==} - engines: {node: '>= 14'} - git-hooks-list@1.0.3: resolution: {integrity: sha512-Y7wLWcrLUXwk2noSka166byGCvhMtDRpgHdzCno1UQv/n/Hegp++a2xBWJL1lJarnKD3SWaljD+0z1ztqxuKyQ==} @@ -6267,9 +6684,8 @@ packages: glob-to-regexp@0.4.1: resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} - glob@10.3.10: - resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} - engines: {node: '>=16 || 14 >=14.17'} + glob@10.5.0: + resolution: {integrity: sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==} deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me hasBin: true @@ -6290,6 +6706,10 @@ packages: resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} engines: {node: '>=8'} + globalthis@1.0.3: + resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} + engines: {node: '>= 0.4'} + globalthis@1.0.4: resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} engines: {node: '>= 0.4'} @@ -6333,6 +6753,10 @@ packages: has-property-descriptors@1.0.2: resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + has-proto@1.0.3: + resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} + engines: {node: '>= 0.4'} + has-proto@1.2.0: resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==} engines: {node: '>= 0.4'} @@ -6375,6 +6799,10 @@ packages: resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} engines: {node: '>=12'} + html-encoding-sniffer@6.0.0: + resolution: {integrity: sha512-CV9TW3Y3f8/wT0BRFc1/KAVQ3TUHiXmaAb6VW9vtiMFf7SLoMd1PdAc4W3KFOFETBJUb90KatHqlsZMWV+R9Gg==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} + html-entities@2.6.0: resolution: {integrity: sha512-kig+rMn/QOVRvr7c86gQ8lWXq+Hkv6CbAH1hLu+RG338StTpE8Z0b44SDVaqVu7HGKf27frdmUYEs9hTUX/cLQ==} @@ -6392,18 +6820,10 @@ packages: resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} engines: {node: '>= 6'} - http-proxy-agent@7.0.2: - resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} - engines: {node: '>= 14'} - https-proxy-agent@5.0.1: resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} engines: {node: '>= 6'} - https-proxy-agent@7.0.5: - resolution: {integrity: sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==} - engines: {node: '>= 14'} - human-signals@2.1.0: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} @@ -6435,8 +6855,8 @@ packages: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} engines: {node: '>=6'} - import-local@3.1.0: - resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==} + import-local@3.2.0: + resolution: {integrity: sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==} engines: {node: '>=8'} hasBin: true @@ -6461,6 +6881,10 @@ packages: inline-style-parser@0.2.3: resolution: {integrity: sha512-qlD8YNDqyTKTyuITrDOffsl6Tdhv+UC4hcdAVuQsK4IMQ99nSgd1MIA/Q+jQYoh9r3hVUXhYh7urSRmXPkW04g==} + internal-slot@1.0.7: + resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} + engines: {node: '>= 0.4'} + internal-slot@1.1.0: resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} engines: {node: '>= 0.4'} @@ -6469,10 +6893,6 @@ packages: resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==} engines: {node: '>= 0.10'} - ip-address@9.0.5: - resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==} - engines: {node: '>= 12'} - ipaddr.js@1.9.1: resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} engines: {node: '>= 0.10'} @@ -6483,8 +6903,8 @@ packages: is-alphanumerical@2.0.1: resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} - is-arguments@1.1.1: - resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} + is-array-buffer@3.0.4: + resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} engines: {node: '>= 0.4'} is-array-buffer@3.0.5: @@ -6494,10 +6914,16 @@ packages: is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + is-arrayish@0.3.2: + resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} + is-async-function@2.0.0: resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} engines: {node: '>= 0.4'} + is-bigint@1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + is-bigint@1.1.0: resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==} engines: {node: '>= 0.4'} @@ -6506,6 +6932,10 @@ packages: resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} engines: {node: '>=8'} + is-boolean-object@1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + engines: {node: '>= 0.4'} + is-boolean-object@1.2.2: resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==} engines: {node: '>= 0.4'} @@ -6522,10 +6952,18 @@ packages: resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} engines: {node: '>= 0.4'} + is-data-view@1.0.1: + resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} + engines: {node: '>= 0.4'} + is-data-view@1.0.2: resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==} engines: {node: '>= 0.4'} + is-date-object@1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + engines: {node: '>= 0.4'} + is-date-object@1.1.0: resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==} engines: {node: '>= 0.4'} @@ -6540,6 +6978,9 @@ packages: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} + is-finalizationregistry@1.0.2: + resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} + is-finalizationregistry@1.1.1: resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==} engines: {node: '>= 0.4'} @@ -6582,6 +7023,10 @@ packages: is-node-process@1.2.0: resolution: {integrity: sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw==} + is-number-object@1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + engines: {node: '>= 0.4'} + is-number-object@1.1.1: resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==} engines: {node: '>= 0.4'} @@ -6612,6 +7057,10 @@ packages: is-reference@3.0.2: resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==} + is-regex@1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + engines: {node: '>= 0.4'} + is-regex@1.2.1: resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} engines: {node: '>= 0.4'} @@ -6620,6 +7069,10 @@ packages: resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} engines: {node: '>= 0.4'} + is-shared-array-buffer@1.0.3: + resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} + engines: {node: '>= 0.4'} + is-shared-array-buffer@1.0.4: resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==} engines: {node: '>= 0.4'} @@ -6632,14 +7085,26 @@ packages: resolution: {integrity: sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==} engines: {node: '>=18'} + is-string@1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + engines: {node: '>= 0.4'} + is-string@1.1.1: resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==} engines: {node: '>= 0.4'} + is-symbol@1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + engines: {node: '>= 0.4'} + is-symbol@1.1.1: resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==} engines: {node: '>= 0.4'} + is-typed-array@1.1.13: + resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} + engines: {node: '>= 0.4'} + is-typed-array@1.1.15: resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} engines: {node: '>= 0.4'} @@ -6652,6 +7117,9 @@ packages: resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} engines: {node: '>= 0.4'} + is-weakref@1.0.2: + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + is-weakref@1.1.1: resolution: {integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==} engines: {node: '>= 0.4'} @@ -6685,10 +7153,6 @@ packages: resolution: {integrity: sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==} engines: {node: '>=8'} - istanbul-lib-instrument@5.2.1: - resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} - engines: {node: '>=8'} - istanbul-lib-instrument@6.0.2: resolution: {integrity: sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==} engines: {node: '>=10'} @@ -6697,8 +7161,8 @@ packages: resolution: {integrity: sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==} engines: {node: '>=8'} - istanbul-lib-source-maps@4.0.1: - resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} + istanbul-lib-source-maps@5.0.6: + resolution: {integrity: sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==} engines: {node: '>=10'} istanbul-reports@3.1.5: @@ -6709,24 +7173,23 @@ packages: resolution: {integrity: sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==} engines: {node: '>= 0.4'} - jackspeak@2.3.6: - resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} - engines: {node: '>=14'} + jackspeak@3.4.3: + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} javascript-stringify@2.1.0: resolution: {integrity: sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg==} - jest-changed-files@29.7.0: - resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-changed-files@30.3.0: + resolution: {integrity: sha512-B/7Cny6cV5At6M25EWDgf9S617lHivamL8vl6KEpJqkStauzcG4e+WPfDgMMF+H4FVH4A2PLRyvgDJan4441QA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-circus@29.7.0: - resolution: {integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-circus@30.3.0: + resolution: {integrity: sha512-PyXq5szeSfR/4f1lYqCmmQjh0vqDkURUYi9N6whnHjlRz4IUQfMcXkGLeEoiJtxtyPqgUaUUfyQlApXWBSN1RA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-cli@29.7.0: - resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-cli@30.3.0: + resolution: {integrity: sha512-l6Tqx+j1fDXJEW5bqYykDQQ7mQg+9mhWXtnj+tQZrTWYHyHoi6Be8HPumDSA+UiX2/2buEgjA58iJzdj146uCw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} hasBin: true peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 @@ -6734,15 +7197,18 @@ packages: node-notifier: optional: true - jest-config@29.7.0: - resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-config@30.3.0: + resolution: {integrity: sha512-WPMAkMAtNDY9P/oKObtsRG/6KTrhtgPJoBTmk20uDn4Uy6/3EJnnaZJre/FMT1KVRx8cve1r7/FlMIOfRVWL4w==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} peerDependencies: '@types/node': '*' + esbuild-register: '>=3.4.0' ts-node: '>=9.0.0' peerDependenciesMeta: '@types/node': optional: true + esbuild-register: + optional: true ts-node: optional: true @@ -6750,13 +7216,17 @@ packages: resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - jest-docblock@29.7.0: - resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-diff@30.3.0: + resolution: {integrity: sha512-n3q4PDQjS4LrKxfWB3Z5KNk1XjXtZTBwQp71OP0Jo03Z6V60x++K5L8k6ZrW8MY8pOFylZvHM0zsjS1RqlHJZQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-each@29.7.0: - resolution: {integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-docblock@30.2.0: + resolution: {integrity: sha512-tR/FFgZKS1CXluOQzZvNH3+0z9jXr3ldGSD8bhyuxvlVUwbeLOGynkunvlTMxchC5urrKndYiwCFC0DLVjpOCA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + jest-each@30.3.0: + resolution: {integrity: sha512-V8eMndg/aZ+3LnCJgSm13IxS5XSBM22QSZc9BtPK8Dek6pm+hfUNfwBdvsB3d342bo1q7wnSkC38zjX259qZNA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} jest-environment-jsdom@29.6.2: resolution: {integrity: sha512-7oa/+266AAEgkzae8i1awNEfTfjwawWKLpiw2XesZmaoVVj9u9t8JOYx18cG29rbPNtkUlZ8V4b5Jb36y/VxoQ==} @@ -6767,34 +7237,46 @@ packages: canvas: optional: true - jest-environment-node@29.7.0: - resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-environment-node@30.3.0: + resolution: {integrity: sha512-4i6HItw/JSiJVsC5q0hnKIe/hbYfZLVG9YJ/0pU9Hz2n/9qZe3Rhn5s5CUZA5ORZlcdT/vmAXRMyONXJwPrmYQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} jest-get-type@29.6.3: resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - jest-haste-map@29.7.0: - resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-haste-map@30.3.0: + resolution: {integrity: sha512-mMi2oqG4KRU0R9QEtscl87JzMXfUhbKaFqOxmjb2CKcbHcUGFrJCBWHmnTiUqi6JcnzoBlO4rWfpdl2k/RfLCA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-leak-detector@29.7.0: - resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-leak-detector@30.3.0: + resolution: {integrity: sha512-cuKmUUGIjfXZAiGJ7TbEMx0bcqNdPPI6P1V+7aF+m/FUJqFDxkFR4JqkTu8ZOiU5AaX/x0hZ20KaaIPXQzbMGQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} jest-matcher-utils@29.7.0: resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-matcher-utils@30.3.0: + resolution: {integrity: sha512-HEtc9uFQgaUHkC7nLSlQL3Tph4Pjxt/yiPvkIrrDCt9jhoLIgxaubo1G+CFOnmHYMxHwwdaSN7mkIFs6ZK8OhA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + jest-message-util@29.7.0: resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-message-util@30.3.0: + resolution: {integrity: sha512-Z/j4Bo+4ySJ+JPJN3b2Qbl9hDq3VrXmnjjGEWD/x0BCXeOXPTV1iZYYzl2X8c1MaCOL+ewMyNBcm88sboE6YWw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + jest-mock@29.7.0: resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-mock@30.3.0: + resolution: {integrity: sha512-OTzICK8CpE+t4ndhKrwlIdbM6Pn8j00lvmSmq5ejiO+KxukbLjgOflKWMn3KE34EZdQm5RqTuKj+5RIEniYhog==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + jest-pnp-resolver@1.2.3: resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} engines: {node: '>=6'} @@ -6804,53 +7286,57 @@ packages: jest-resolve: optional: true - jest-regex-util@29.6.3: - resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-regex-util@30.0.1: + resolution: {integrity: sha512-jHEQgBXAgc+Gh4g0p3bCevgRCVRkB4VB70zhoAE48gxeSr1hfUOsM/C2WoJgVL7Eyg//hudYENbm3Ne+/dRVVA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-resolve-dependencies@29.7.0: - resolution: {integrity: sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-resolve-dependencies@30.3.0: + resolution: {integrity: sha512-9ev8s3YN6Hsyz9LV75XUwkCVFlwPbaFn6Wp75qnI0wzAINYWY8Fb3+6y59Rwd3QaS3kKXffHXsZMziMavfz/nw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-resolve@29.7.0: - resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-resolve@30.3.0: + resolution: {integrity: sha512-NRtTAHQlpd15F9rUR36jqwelbrDV/dY4vzNte3S2kxCKUJRYNd5/6nTSbYiak1VX5g8IoFF23Uj5TURkUW8O5g==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-runner@29.7.0: - resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-runner@30.3.0: + resolution: {integrity: sha512-gDv6C9LGKWDPLia9TSzZwf4h3kMQCqyTpq+95PODnTRDO0g9os48XIYYkS6D236vjpBir2fF63YmJFtqkS5Duw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-runtime@29.7.0: - resolution: {integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-runtime@30.3.0: + resolution: {integrity: sha512-CgC+hIBJbuh78HEffkhNKcbXAytQViplcl8xupqeIWyKQF50kCQA8J7GeJCkjisC6hpnC9Muf8jV5RdtdFbGng==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-snapshot@29.7.0: - resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-snapshot@30.3.0: + resolution: {integrity: sha512-f14c7atpb4O2DeNhwcvS810Y63wEn8O1HqK/luJ4F6M4NjvxmAKQwBUWjbExUtMxWJQ0wVgmCKymeJK6NZMnfQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} jest-util@29.7.0: resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - jest-validate@29.7.0: - resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-util@30.3.0: + resolution: {integrity: sha512-/jZDa00a3Sz7rdyu55NLrQCIrbyIkbBxareejQI315f/i8HjYN+ZWsDLLpoQSiUIEIyZF/R8fDg3BmB8AtHttg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-watcher@29.7.0: - resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-validate@30.3.0: + resolution: {integrity: sha512-I/xzC8h5G+SHCb2P2gWkJYrNiTbeL47KvKeW5EzplkyxzBRBw1ssSHlI/jXec0ukH2q7x2zAWQm7015iusg62Q==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + jest-watcher@30.3.0: + resolution: {integrity: sha512-PJ1d9ThtTR8aMiBWUdcownq9mDdLXsQzJayTk4kmaBRHKvwNQn+ANveuhEBUyNI2hR1TVhvQ8D5kHubbzBHR/w==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} jest-worker@27.5.1: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} - jest-worker@29.7.0: - resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-worker@30.3.0: + resolution: {integrity: sha512-DrCKkaQwHexjRUFTmPzs7sHQe0TSj9nvDALKGdwmK5mW9v7j90BudWirKAJHt3QQ9Dhrg1F7DogPzhChppkJpQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest@29.7.0: - resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest@30.3.0: + resolution: {integrity: sha512-AkXIIFcaazymvey2i/+F94XRnM6TsVLZDhBMLsd1Sf/W0wzsvvpjeyUrCZD6HGG4SDYPgDJDBKeiJTBb10WzMg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} hasBin: true peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 @@ -6883,9 +7369,6 @@ packages: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true - jsbn@1.1.0: - resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==} - jsdoc-type-pratt-parser@7.1.1: resolution: {integrity: sha512-/2uqY7x6bsrpi3i9LVU6J89352C0rpMk0as8trXxCtvd4kPk1ke/Eyif6wqfSLvoNJqcDG9Vk4UsXgygzCt2xA==} engines: {node: '>=20.0.0'} @@ -6895,15 +7378,24 @@ packages: engines: {node: '>=10'} hasBin: true - jsdom@22.1.0: - resolution: {integrity: sha512-/9AVW7xNbsBv6GfWho4TTNjEo9fe6Zhf9O7s0Fhhr3u+awPwAJMKwAMXnkk5vBxflqLW9hTHX/0cs+P3gW+cQw==} - engines: {node: '>=16'} + jsdom@20.0.3: + resolution: {integrity: sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==} + engines: {node: '>=14'} peerDependencies: canvas: ^2.5.0 peerDependenciesMeta: canvas: optional: true + jsdom@29.0.1: + resolution: {integrity: sha512-z6JOK5gRO7aMybVq/y/MlIpKh8JIi68FBKMUtKkK2KH/wMSRlCxQ682d08LB9fYXplyY/UXG8P4XXTScmdjApg==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24.0.0} + peerDependencies: + canvas: ^3.0.0 + peerDependenciesMeta: + canvas: + optional: true + jsesc@3.0.2: resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} engines: {node: '>=6'} @@ -7113,13 +7605,13 @@ packages: lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + lru-cache@11.2.7: + resolution: {integrity: sha512-aY/R+aEsRelme17KGQa/1ZSIpLpNYYrhcrepKTZgE+W3WM16YMCaPwOHLHsmopZHELU0Ojin1lPVxKR0MihncA==} + engines: {node: 20 || >=22} + lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - lru-cache@7.18.3: - resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} - engines: {node: '>=12'} - lunr@2.3.9: resolution: {integrity: sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==} @@ -7219,6 +7711,9 @@ packages: mdast-util-to-string@4.0.0: resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} + mdn-data@2.27.1: + resolution: {integrity: sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==} + mdurl@1.0.1: resolution: {integrity: sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==} @@ -7443,8 +7938,13 @@ packages: engines: {node: '>=4.0.0'} hasBin: true - mimic-fn@2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + mime@3.0.0: + resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} + engines: {node: '>=10.0.0'} + hasBin: true + + mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} min-indent@1.0.1: @@ -7456,8 +7956,8 @@ packages: engines: {node: '>=16.13'} hasBin: true - miniflare@4.20260312.0: - resolution: {integrity: sha512-pieP2rfXynPT6VRINYaiHe/tfMJ4c5OIhqRlIdLF6iZ9g5xgpEmvimvIgMpgAdDJuFlrLcwDUi8MfAo2R6dt/w==} + miniflare@4.20250617.5: + resolution: {integrity: sha512-Qqn30jR6dCjXaKVizT6vH4KOb+GyLccoxLNOJEfu63yBPn8eoXa7PrdiSGTmjs2RY8/tr7eTO8Wu/Yr14k0xVA==} engines: {node: '>=18.0.0'} hasBin: true @@ -7500,10 +8000,6 @@ packages: resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} engines: {node: '>=4'} - mrmime@1.0.1: - resolution: {integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==} - engines: {node: '>=10'} - ms@2.0.0: resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} @@ -7536,6 +8032,16 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + nanoid@3.3.8: + resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + napi-postinstall@0.3.4: + resolution: {integrity: sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + hasBin: true + natural-compare-lite@1.4.0: resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} @@ -7553,9 +8059,14 @@ packages: neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} - netmask@2.0.2: - resolution: {integrity: sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==} - engines: {node: '>= 0.4.0'} + node-fetch@2.6.7: + resolution: {integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true node-int64@0.4.0: resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} @@ -7604,6 +8115,10 @@ packages: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} engines: {node: '>= 0.4'} + object.assign@4.1.5: + resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} + engines: {node: '>= 0.4'} + object.assign@4.1.7: resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} engines: {node: '>= 0.4'} @@ -7620,6 +8135,10 @@ packages: resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} engines: {node: '>= 0.4'} + object.values@1.2.0: + resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} + engines: {node: '>= 0.4'} + object.values@1.2.1: resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} engines: {node: '>= 0.4'} @@ -7627,6 +8146,9 @@ packages: obug@2.1.1: resolution: {integrity: sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==} + ohash@2.0.11: + resolution: {integrity: sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==} + on-finished@2.3.0: resolution: {integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==} engines: {node: '>= 0.8'} @@ -7681,13 +8203,8 @@ packages: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} - pac-proxy-agent@7.0.2: - resolution: {integrity: sha512-BFi3vZnO9X5Qt6NRz7ZOaPja3ic0PhlsmCRYLOpN11+mWBCR6XJDqW5RF3j8jm4WGGQZtBA+bTfxYzeKW73eHg==} - engines: {node: '>= 14'} - - pac-resolver@7.0.1: - resolution: {integrity: sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==} - engines: {node: '>= 14'} + package-json-from-dist@1.0.1: + resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} pako@0.2.9: resolution: {integrity: sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==} @@ -7722,6 +8239,9 @@ packages: parse5@7.1.2: resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} + parse5@8.0.0: + resolution: {integrity: sha512-9m4m5GSgXjL4AjumKzq1Fgfp3Z8rsvjRNbnkVwfu2ImRqE5D0LnY2QfDen18FSY9C573YU5XxSapdHZTZ2WolA==} + parseurl@1.3.3: resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} engines: {node: '>= 0.8'} @@ -7745,9 +8265,9 @@ packages: path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - path-scurry@1.10.2: - resolution: {integrity: sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==} - engines: {node: '>=16 || 14 >=14.17'} + path-scurry@1.11.1: + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} path-to-regexp@0.1.12: resolution: {integrity: sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==} @@ -7781,8 +8301,12 @@ packages: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} - picomatch@4.0.3: - resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} + picomatch@4.0.2: + resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} + engines: {node: '>=12'} + + picomatch@4.0.4: + resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==} engines: {node: '>=12'} pify@2.3.0: @@ -7793,8 +8317,8 @@ packages: resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} engines: {node: '>=6'} - pirates@4.0.5: - resolution: {integrity: sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==} + pirates@4.0.7: + resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==} engines: {node: '>= 6'} pkg-dir@4.2.0: @@ -7848,6 +8372,10 @@ packages: postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + postcss@8.5.3: + resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==} + engines: {node: ^10 || ^12 || >=14} + postcss@8.5.8: resolution: {integrity: sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg==} engines: {node: ^10 || ^12 || >=14} @@ -7874,6 +8402,10 @@ packages: resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + pretty-format@30.3.0: + resolution: {integrity: sha512-oG4T3wCbfeuvljnyAzhBvpN45E8iOTXCU/TD3zXW80HA3dQ4ahdqMkWGiPWZvjpQwlbyHrPTWUAqUzGzv4l1JQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + pretty-ms@9.3.0: resolution: {integrity: sha512-gjVS5hOP+M3wMm5nmNOucbIrqudzs9v/57bWRHQWLYklXqoXKrVfYW2W9+glfGsqtPgpiz5WwyEEB+ksXIx3gQ==} engines: {node: '>=18'} @@ -7901,10 +8433,6 @@ packages: resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} engines: {node: '>= 0.10'} - proxy-agent@6.4.0: - resolution: {integrity: sha512-u0piLU+nCOHMgGjRbimiXmA9kM/L9EHh3zL81xCdp7m+Y2pHIsnmbdDoEDoAz5geaonNR6q6+yOPQs6n4T6sBQ==} - engines: {node: '>= 14'} - proxy-from-env@1.1.0: resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} @@ -7928,8 +8456,12 @@ packages: resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} engines: {node: '>=6'} - pure-rand@6.0.2: - resolution: {integrity: sha512-6Yg0ekpKICSjPswYOuC5sku/TSWaRYlA0qsXqJgM/d/4pLPHPuTxK7Nbf7jFKzAeedUhR8C7K9Uv63FBsSo8xQ==} + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + pure-rand@7.0.1: + resolution: {integrity: sha512-oTUZM/NAZS8p7ANR3SHh30kXB+zK2r2BPcEn/awJIbOvq82WoMN4p62AWWp3Hhw50G0xMsw1mhIBLqHw64EcNQ==} qs@6.13.0: resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} @@ -8037,6 +8569,10 @@ packages: resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} engines: {node: '>= 0.4'} + reflect.getprototypeof@1.0.6: + resolution: {integrity: sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==} + engines: {node: '>= 0.4'} + regenerate-unicode-properties@10.2.0: resolution: {integrity: sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==} engines: {node: '>=4'} @@ -8047,6 +8583,10 @@ packages: regenerator-runtime@0.14.1: resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} + regexp.prototype.flags@1.5.2: + resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} + engines: {node: '>= 0.4'} + regexp.prototype.flags@1.5.4: resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} engines: {node: '>= 0.4'} @@ -8155,10 +8695,6 @@ packages: resolve-pkg-maps@1.0.0: resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} - resolve.exports@2.0.2: - resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==} - engines: {node: '>=10'} - resolve@1.22.10: resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} engines: {node: '>= 0.4'} @@ -8188,6 +8724,11 @@ packages: rndm@1.2.0: resolution: {integrity: sha512-fJhQQI5tLrQvYIYFpOnFinzv9dwmR7hRnUz1XqP3OJ1jIweTNOd6aTO4jwQSgcBSFUB+/KHJxuGneime+FdzOw==} + rolldown@1.0.0-rc.11: + resolution: {integrity: sha512-NRjoKMusSjfRbSYiH3VSumlkgFe7kYAa3pzVOsVYVFY3zb5d7nS+a3KGQ7hJKXuYWbzJKPVQ9Wxq2UvyK+ENpw==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + rolldown@1.0.0-rc.9: resolution: {integrity: sha512-9EbgWge7ZH+yqb4d2EnELAntgPTWbfL8ajiTW+SyhJEC4qhBbkCKbqFV4Ge4zmu5ziQuVbWxb/XwLZ+RIO7E8Q==} engines: {node: ^20.19.0 || >=22.12.0} @@ -8198,9 +8739,6 @@ packages: engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true - rrweb-cssom@0.6.0: - resolution: {integrity: sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==} - run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} @@ -8214,6 +8752,10 @@ packages: resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} engines: {node: '>=6'} + safe-array-concat@1.1.2: + resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} + engines: {node: '>=0.4'} + safe-array-concat@1.1.3: resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} engines: {node: '>=0.4'} @@ -8228,6 +8770,10 @@ packages: resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==} engines: {node: '>= 0.4'} + safe-regex-test@1.0.3: + resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} + engines: {node: '>= 0.4'} + safe-regex-test@1.1.0: resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} engines: {node: '>= 0.4'} @@ -8256,6 +8802,11 @@ packages: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true + semver@7.7.2: + resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==} + engines: {node: '>=10'} + hasBin: true + semver@7.7.4: resolution: {integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==} engines: {node: '>=10'} @@ -8294,8 +8845,8 @@ packages: resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==} engines: {node: '>=8'} - sharp@0.34.5: - resolution: {integrity: sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==} + 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: @@ -8337,6 +8888,9 @@ packages: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} + simple-swizzle@0.2.2: + resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} + sisteransi@1.0.5: resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} @@ -8348,18 +8902,6 @@ packages: resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} engines: {node: '>=12'} - smart-buffer@4.2.0: - resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} - engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} - - socks-proxy-agent@8.0.4: - resolution: {integrity: sha512-GNAq/eg8Udq2x0eNiFkr9gRg5bA7PXEWagQdeRX4cPSG+X/8V38v637gim9bjFptMk1QWsCTr0ttrJEiXbNnRw==} - engines: {node: '>= 14'} - - socks@2.8.3: - resolution: {integrity: sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==} - engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} - sort-object-keys@1.1.3: resolution: {integrity: sha512-855pvK+VkU7PaKYPc+Jjnmt4EzejQHyhhF33q31qG8x7maDzkeFhAAThdCYay11CISO+qAMwjOBP+fPZe0IPyg==} @@ -8405,11 +8947,8 @@ packages: sprintf-js@1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} - sprintf-js@1.1.3: - resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} - - srvx@0.11.12: - resolution: {integrity: sha512-AQfrGqntqVPXgP03pvBDN1KyevHC+KmYVqb8vVf4N+aomQqdhaZxjvoVp+AOm4u6x+GgNQY3MVzAUIn+TqwkOA==} + srvx@0.11.13: + resolution: {integrity: sha512-oknN6qduuMPafxKtHucUeG32Q963pjriA5g3/Bl05cwEsUe5VVbIU4qR9LrALHbipSCyBe+VmfDGGydqazDRkw==} engines: {node: '>=20.16.0'} hasBin: true @@ -8474,6 +9013,13 @@ packages: resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==} engines: {node: '>= 0.4'} + string.prototype.trim@1.2.9: + resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} + engines: {node: '>= 0.4'} + + string.prototype.trimend@1.0.8: + resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} + string.prototype.trimend@1.0.9: resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==} engines: {node: '>= 0.4'} @@ -8537,17 +9083,13 @@ packages: superagent@8.1.2: resolution: {integrity: sha512-6WTxW1EB6yCxV5VFOIPQruWGHqc3yI7hEmZK6h+pyk69Lk/Ut7rLUY6W/ONF2MjBuGjvmMiIpsrVJ2vjrHlslA==} engines: {node: '>=6.4.0 <13 || >=14'} - deprecated: Please upgrade to superagent v10.2.2+, see release notes at https://github.com/forwardemail/superagent/releases/tag/v10.2.2 - maintenance is supported by Forward Email @ https://forwardemail.net + deprecated: Please upgrade to v9.0.0+ as we have fixed a public vulnerability with formidable dependency. Note that v9.0.0+ requires Node.js v14.18.0+. See https://github.com/ladjs/superagent/pull/1800 for insight. This project is supported and maintained by the team at Forward Email @ https://forwardemail.net supertest@6.3.4: resolution: {integrity: sha512-erY3HFDG0dPnhw4U+udPfrzXa4xhSG+n4rxfRuZWCUvjFWwKl+OxWf/7zk50s84/fAAs7vf5QAb9uRa0cCykxw==} engines: {node: '>=6.4.0'} deprecated: Please upgrade to supertest v7.1.3+, see release notes at https://github.com/forwardemail/supertest/releases/tag/v7.1.3 - maintenance is supported by Forward Email @ https://forwardemail.net - supports-color@10.2.2: - resolution: {integrity: sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g==} - engines: {node: '>=18'} - supports-color@7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} @@ -8563,6 +9105,10 @@ packages: symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} + synckit@0.11.12: + resolution: {integrity: sha512-Bh7QjT8/SuKUIfObSXNHNSK6WHo6J1tHCqJsuaFDP7gP0fkzSfTxI8y85JrppZ0h8l0maIgc2tfuZQ6/t3GtnQ==} + engines: {node: ^14.18.0 || >=16.0.0} + tapable@2.3.0: resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==} engines: {node: '>=6'} @@ -8625,6 +9171,10 @@ packages: resolution: {integrity: sha512-u9r3uZC0bdpGOXtlxUIdwf9pkmvhqJdrVCH9fapQtgy/OeTTMZ1nqH7agtvEfmGui6e1XxjcdrlxvxJvc3sMqw==} engines: {node: '>=18'} + tinyglobby@0.2.14: + resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==} + engines: {node: '>=12.0.0'} + tinyglobby@0.2.15: resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} engines: {node: '>=12.0.0'} @@ -8633,6 +9183,13 @@ packages: resolution: {integrity: sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw==} engines: {node: '>=14.0.0'} + tldts-core@7.0.27: + resolution: {integrity: sha512-YQ7uPjgWUibIK6DW5lrKujGwUKhLevU4hcGbP5O6TcIUb+oTjJYJVWPS4nZsIHrEEEG6myk/oqAJUEQmpZrHsg==} + + tldts@7.0.27: + resolution: {integrity: sha512-I4FZcVFcqCRuT0ph6dCDpPuO4Xgzvh+spkcTr1gK7peIvxWauoloVO0vuy1FQnijT63ss6AsHB6+OIM4aXHbPg==} + hasBin: true + tmpl@1.0.5: resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} @@ -8655,12 +9212,23 @@ packages: resolution: {integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==} engines: {node: '>=6'} + tough-cookie@6.0.1: + resolution: {integrity: sha512-LktZQb3IeoUWB9lqR5EWTHgW/VTITCXg4D21M+lvybRVdylLrRMnqaIONLVb5mav8vM19m44HIcGq4qASeu2Qw==} + engines: {node: '>=16'} + + tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + tr46@1.0.1: resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} - tr46@4.1.1: - resolution: {integrity: sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==} - engines: {node: '>=14'} + tr46@3.0.0: + resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} + engines: {node: '>=12'} + + tr46@6.0.0: + resolution: {integrity: sha512-bLVMLPtstlZ4iMQHpFHTR7GAGj2jxi8Dg0s2h2MafAE4uSWF98FC/3MomU51iQAMf8/qDUbKWf5GxuvvVcXEhw==} + engines: {node: '>=20'} tree-kill@1.2.2: resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} @@ -8765,18 +9333,34 @@ packages: resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} engines: {node: '>= 0.6'} + typed-array-buffer@1.0.2: + resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} + engines: {node: '>= 0.4'} + typed-array-buffer@1.0.3: resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} engines: {node: '>= 0.4'} + typed-array-byte-length@1.0.1: + resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} + engines: {node: '>= 0.4'} + typed-array-byte-length@1.0.3: resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==} engines: {node: '>= 0.4'} + typed-array-byte-offset@1.0.2: + resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} + engines: {node: '>= 0.4'} + typed-array-byte-offset@1.0.4: resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==} engines: {node: '>= 0.4'} + typed-array-length@1.0.6: + resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} + engines: {node: '>= 0.4'} + typed-array-length@1.0.7: resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} engines: {node: '>= 0.4'} @@ -8806,10 +9390,16 @@ packages: resolution: {integrity: sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==} engines: {node: '>= 0.8'} + unbox-primitive@1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + unbox-primitive@1.1.0: resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} engines: {node: '>= 0.4'} + undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + undici-types@6.21.0: resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} @@ -8821,12 +9411,12 @@ packages: resolution: {integrity: sha512-AjQF1QsmqfJys+LXfGTNum+qw4S88CojRInG/6t31W/1fk6G59s92bnAvGz5Cmur+kQv2SURXEvvudLmbrE8QA==} engines: {node: '>=18.17'} - undici@7.18.2: - resolution: {integrity: sha512-y+8YjDFzWdQlSE9N5nzKMT3g4a5UBX1HKowfdXh0uvAnTaqqwqB92Jt4UXBAeKekDs5IaDKyJFR4X1gYVCgXcw==} + undici@7.24.6: + resolution: {integrity: sha512-Xi4agocCbRzt0yYMZGMA6ApD7gvtUFaxm4ZmeacWI4cZxaF6C+8I8QfofC20NAePiB/IcvZmzkJ7XPa471AEtA==} engines: {node: '>=20.18.1'} - unenv@2.0.0-rc.24: - resolution: {integrity: sha512-i7qRCmY42zmCwnYlh9H2SvLEypEFGye5iRmEMKjcGi7zk9UquigRjFtTLz0TYqr0ZGLZhaMHl/foy1bZR+Cwlw==} + unenv@2.0.0-rc.17: + resolution: {integrity: sha512-B06u0wXkEd+o5gOCMl/ZHl5cfpYbDZKAT+HWTL+Hws6jWu7dCiqBBXXXzMFcFVJb8D4ytAnYmxJA83uwOQRSsg==} unicode-canonical-property-names-ecmascript@2.0.0: resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} @@ -8912,6 +9502,9 @@ packages: resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} engines: {node: '>= 0.8'} + unrs-resolver@1.11.1: + resolution: {integrity: sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==} + update-browserslist-db@1.2.2: resolution: {integrity: sha512-E85pfNzMQ9jpKkA7+TJAi4TJN+tBCuWh5rUcS/sv6cFi+1q9LYDwDI5dpUL0u/73EElyQ8d3TEaeW4sPedBqYA==} hasBin: true @@ -8927,9 +9520,6 @@ packages: util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - util@0.12.5: - resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==} - utils-merge@1.0.1: resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} engines: {node: '>= 0.4.0'} @@ -9188,6 +9778,49 @@ packages: yaml: optional: true + vite@8.0.2: + resolution: {integrity: sha512-1gFhNi+bHhRE/qKZOJXACm6tX4bA3Isy9KuKF15AgSRuRazNBOJfdDemPBU16/mpMxApDPrWvZ08DcLPEoRnuA==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + peerDependencies: + '@types/node': ^20.19.0 || >=22.12.0 + '@vitejs/devtools': ^0.1.0 + esbuild: ^0.27.0 + jiti: '>=1.21.0' + less: ^4.0.0 + sass: ^1.70.0 + sass-embedded: ^1.70.0 + stylus: '>=0.54.8' + sugarss: ^5.0.0 + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + '@types/node': + optional: true + '@vitejs/devtools': + optional: true + esbuild: + optional: true + jiti: + optional: true + less: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + vitefu@1.1.2: resolution: {integrity: sha512-zpKATdUbzbsycPFBN71nS2uzBUQiVnFoOrr2rvqv34S1lcAgMKKkjWleLGeiJlZ8lwCXvtWaRn7R3ZC16SYRuw==} peerDependencies: @@ -9196,21 +9829,21 @@ packages: vite: optional: true - vitest@4.1.0: - resolution: {integrity: sha512-YbDrMF9jM2Lqc++2530UourxZHmkKLxrs4+mYhEwqWS97WJ7wOYEkcr+QfRgJ3PW9wz3odRijLZjHEaRLTNbqw==} + vitest@4.1.1: + resolution: {integrity: sha512-yF+o4POL41rpAzj5KVILUxm1GCjKnELvaqmU9TLLUbMfDzuN0UpUR9uaDs+mCtjPe+uYPksXDRLQGGPvj1cTmA==} engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' '@opentelemetry/api': ^1.9.0 '@types/node': ^20.0.0 || ^22.0.0 || >=24.0.0 - '@vitest/browser-playwright': 4.1.0 - '@vitest/browser-preview': 4.1.0 - '@vitest/browser-webdriverio': 4.1.0 - '@vitest/ui': 4.1.0 + '@vitest/browser-playwright': 4.1.1 + '@vitest/browser-preview': 4.1.1 + '@vitest/browser-webdriverio': 4.1.1 + '@vitest/ui': 4.1.1 happy-dom: '*' - jsdom: 22.1.0 - vite: ^6.0.0 || ^7.0.0 || ^8.0.0-0 + jsdom: '*' + vite: ^6.0.0 || ^7.0.0 || ^8.0.0 peerDependenciesMeta: '@edge-runtime/vm': optional: true @@ -9235,6 +9868,10 @@ packages: resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==} engines: {node: '>=14'} + w3c-xmlserializer@5.0.0: + resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==} + engines: {node: '>=18'} + wait-on@7.2.0: resolution: {integrity: sha512-wCQcHkRazgjG5XoAq9jbTMLpNIjoSlZslrJ2+N9MxDsGEv1HnFoVjOCexL0ESva7Y9cu350j+DWADdk54s4AFQ==} engines: {node: '>=12.0.0'} @@ -9247,12 +9884,8 @@ packages: resolution: {integrity: sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA==} engines: {node: '>=10.13.0'} - web-encoding@1.1.5: - resolution: {integrity: sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA==} - - web-streams-polyfill@3.3.3: - resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} - engines: {node: '>= 8'} + 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==} @@ -9261,6 +9894,10 @@ packages: resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} engines: {node: '>=12'} + webidl-conversions@8.0.1: + resolution: {integrity: sha512-BMhLD/Sw+GbJC21C/UgyaZX41nPt8bUTg+jWyDeg7e7YN4xOM05YPSIXceACnXVtqyEw/LMClUQMtMZ+PGGpqQ==} + engines: {node: '>=20'} + webpack-sources@3.3.3: resolution: {integrity: sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==} engines: {node: '>=10.13.0'} @@ -9293,17 +9930,35 @@ packages: resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} engines: {node: '>=18'} - whatwg-url@12.0.1: - resolution: {integrity: sha512-Ed/LrqB8EPlGxjS+TrsXcpUond1mhccS3pchLhzSgPCnTimUCKj3IZE75pAs5m6heB2U2TMerKFUXheyHY+VDQ==} - engines: {node: '>=14'} + whatwg-mimetype@5.0.0: + resolution: {integrity: sha512-sXcNcHOC51uPGF0P/D4NVtrkjSU2fNsm9iog4ZvZJsL3rjoDAzXZhkm2MWt1y+PUdggKAYVoMAIYcs78wJ51Cw==} + engines: {node: '>=20'} + + whatwg-url@11.0.0: + resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==} + engines: {node: '>=12'} + + whatwg-url@16.0.1: + resolution: {integrity: sha512-1to4zXBxmXHV3IiSSEInrreIlu02vUOvrhxJJH5vcxYTBDAx51cqZiKdyTxlecdKNSjj8EcxGBxNf6Vg+945gw==} + engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} + + whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} whatwg-url@7.1.0: resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} + which-boxed-primitive@1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + which-boxed-primitive@1.1.1: resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} engines: {node: '>= 0.4'} + which-builtin-type@1.1.3: + resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==} + engines: {node: '>= 0.4'} + which-builtin-type@1.2.1: resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==} engines: {node: '>= 0.4'} @@ -9312,6 +9967,10 @@ packages: resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} engines: {node: '>= 0.4'} + which-typed-array@1.1.15: + resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} + engines: {node: '>= 0.4'} + which-typed-array@1.1.20: resolution: {integrity: sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==} engines: {node: '>= 0.4'} @@ -9336,12 +9995,12 @@ packages: engines: {node: '>=16'} hasBin: true - wrangler@4.73.0: - resolution: {integrity: sha512-VJXsqKDFCp6OtFEHXITSOR5kh95JOknwPY8m7RyQuWJQguSybJy43m4vhoCSt42prutTef7eeuw7L4V4xiynGw==} - engines: {node: '>=20.0.0'} + wrangler@4.23.0: + resolution: {integrity: sha512-JSeDt3IwA4TEmg/V3tRblImPjdxynBt9PUVO/acQJ83XGlMMSwswDKL1FuwvbFzgX6+JXc3GMHeu7r8AQIxw9w==} + engines: {node: '>=18.0.0'} hasBin: true peerDependencies: - '@cloudflare/workers-types': ^4.20260312.1 + '@cloudflare/workers-types': ^4.20250617.0 peerDependenciesMeta: '@cloudflare/workers-types': optional: true @@ -9361,9 +10020,9 @@ packages: wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - write-file-atomic@4.0.2: - resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + write-file-atomic@5.0.1: + resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} ws@8.18.0: resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} @@ -9381,6 +10040,10 @@ packages: resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} engines: {node: '>=12'} + xml-name-validator@5.0.0: + resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==} + engines: {node: '>=18'} + xmlchars@2.2.0: resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} @@ -9424,15 +10087,9 @@ packages: resolution: {integrity: sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug==} engines: {node: '>=18'} - youch-core@0.3.3: - resolution: {integrity: sha512-ho7XuGjLaJ2hWHoK8yFnsUGy2Y5uDpqSTq1FkHLK4/oqKtyUU1AFbOOxY4IpC9f0fTLjwYbslUz0Po5BpD1wrA==} - youch@3.3.4: resolution: {integrity: sha512-UeVBXie8cA35DS6+nBkls68xaBBXCye0CNznrhszZjTbRVnJKQuNsyLKBTTL4ln1o1rh2PKtv35twV7irj5SEg==} - youch@4.1.0-beta.10: - resolution: {integrity: sha512-rLfVLB4FgQneDr0dv1oddCVZmKjcJ6yX6mS4pU82Mq/Dt9a3cLZQ62pDBL4AUO+uVrCvtWz3ZFUL2HFAFJ/BXQ==} - zimmerframe@1.1.2: resolution: {integrity: sha512-rAbqEGa8ovJy4pyBxZM70hg4pE6gDgaQ0Sl9M3enG3I0d6H4XSAM3GeNGLKnsBpuijUow064sf7ww1nutC5/3w==} @@ -9475,6 +10132,24 @@ snapshots: run-waterfall: 1.1.7 uid-safe: 2.1.5 + '@asamuzakjp/css-color@5.0.1': + dependencies: + '@csstools/css-calc': 3.1.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) + '@csstools/css-color-parser': 4.0.2(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) + '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0) + '@csstools/css-tokenizer': 4.0.0 + lru-cache: 11.2.7 + + '@asamuzakjp/dom-selector@7.0.4': + dependencies: + '@asamuzakjp/nwsapi': 2.3.9 + bidi-js: 1.0.3 + css-tree: 3.2.1 + is-potential-custom-element-name: 1.0.1 + lru-cache: 11.2.7 + + '@asamuzakjp/nwsapi@2.3.9': {} + '@babel/code-frame@7.27.1': dependencies: '@babel/helper-validator-identifier': 7.27.1 @@ -9496,7 +10171,7 @@ snapshots: '@babel/traverse': 7.27.7 '@babel/types': 7.27.7 convert-source-map: 2.0.0 - debug: 4.4.3 + debug: 4.4.1 gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -9556,7 +10231,7 @@ snapshots: '@babel/core': 7.27.7 '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-plugin-utils': 7.27.1 - debug: 4.4.3 + debug: 4.4.1 lodash.debounce: 4.0.8 resolve: 1.22.10 semver: 6.3.1 @@ -9568,7 +10243,7 @@ snapshots: '@babel/core': 7.27.7 '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-plugin-utils': 7.27.1 - debug: 4.4.3 + debug: 4.4.1 lodash.debounce: 4.0.8 resolve: 1.22.10 transitivePeerDependencies: @@ -9761,6 +10436,11 @@ snapshots: '@babel/core': 7.27.7 '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.27.7)': + dependencies: + '@babel/core': 7.27.7 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-decorators@7.24.1(@babel/core@7.27.7)': dependencies: '@babel/core': 7.27.7 @@ -10362,7 +11042,7 @@ snapshots: '@babel/parser': 7.27.7 '@babel/template': 7.27.2 '@babel/types': 7.27.7 - debug: 4.4.3 + debug: 4.4.1 globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -10374,6 +11054,10 @@ snapshots: '@bcoe/v8-coverage@0.2.3': {} + '@bramus/specificity@2.4.2': + dependencies: + css-tree: 3.2.1 + '@bundled-es-modules/cookie@2.0.1': dependencies: cookie: 0.7.2 @@ -10387,26 +11071,47 @@ snapshots: '@types/tough-cookie': 4.0.5 tough-cookie: 4.1.4 + '@changesets/errors@0.1.4': + dependencies: + extendable-error: 0.1.7 + + '@changesets/get-github-info@0.5.1': + dependencies: + dataloader: 1.4.0 + node-fetch: 2.6.7 + transitivePeerDependencies: + - encoding + '@changesets/types@4.1.0': {} - '@cloudflare/kv-asset-handler@0.4.2': {} + '@changesets/types@5.2.1': {} + + '@cloudflare/kv-asset-handler@0.4.0': + dependencies: + mime: 3.0.0 - '@cloudflare/unenv-preset@2.15.0(unenv@2.0.0-rc.24)(workerd@1.20250705.0)': + '@cloudflare/unenv-preset@2.3.3(unenv@2.0.0-rc.17)(workerd@1.20250705.0)': dependencies: - unenv: 2.0.0-rc.24 + unenv: 2.0.0-rc.17 optionalDependencies: workerd: 1.20250705.0 - '@cloudflare/vite-plugin@1.28.0(vite@6.4.1(@types/node@20.19.37)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0))(workerd@1.20250705.0)(wrangler@4.73.0)': + '@cloudflare/vite-plugin@1.9.0(rollup@4.43.0)(vite@6.4.1(@types/node@20.11.30)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0))(workerd@1.20250705.0)(wrangler@4.23.0(@cloudflare/workers-types@4.20250805.0))': dependencies: - '@cloudflare/unenv-preset': 2.15.0(unenv@2.0.0-rc.24)(workerd@1.20250705.0) - miniflare: 4.20260312.0 - unenv: 2.0.0-rc.24 - vite: 6.4.1(@types/node@20.19.37)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) - wrangler: 4.73.0(@cloudflare/workers-types@4.20250805.0) + '@cloudflare/unenv-preset': 2.3.3(unenv@2.0.0-rc.17)(workerd@1.20250705.0) + '@mjackson/node-fetch-server': 0.6.1 + '@rollup/plugin-replace': 6.0.2(rollup@4.43.0) + get-port: 7.1.0 + miniflare: 4.20250617.5 + picocolors: 1.1.1 + tinyglobby: 0.2.14 + unenv: 2.0.0-rc.17 + vite: 6.4.1(@types/node@20.11.30)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) + wrangler: 4.23.0(@cloudflare/workers-types@4.20250805.0) ws: 8.18.0 transitivePeerDependencies: - bufferutil + - rollup - utf-8-validate - workerd @@ -10431,13 +11136,53 @@ snapshots: dependencies: '@jridgewell/trace-mapping': 0.3.9 - '@emnapi/core@1.9.0': + '@csstools/color-helpers@6.0.2': {} + + '@csstools/css-calc@3.1.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)': + dependencies: + '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0) + '@csstools/css-tokenizer': 4.0.0 + + '@csstools/css-color-parser@4.0.2(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)': + dependencies: + '@csstools/color-helpers': 6.0.2 + '@csstools/css-calc': 3.1.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) + '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0) + '@csstools/css-tokenizer': 4.0.0 + + '@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0)': + dependencies: + '@csstools/css-tokenizer': 4.0.0 + + '@csstools/css-syntax-patches-for-csstree@1.1.1(css-tree@3.2.1)': + optionalDependencies: + css-tree: 3.2.1 + + '@csstools/css-tokenizer@4.0.0': {} + + '@emnapi/core@1.4.3': + dependencies: + '@emnapi/wasi-threads': 1.0.2 + tslib: 2.8.1 + optional: true + + '@emnapi/core@1.9.1': dependencies: '@emnapi/wasi-threads': 1.2.0 tslib: 2.8.1 optional: true - '@emnapi/runtime@1.9.0': + '@emnapi/runtime@1.4.3': + dependencies: + tslib: 2.8.1 + optional: true + + '@emnapi/runtime@1.9.1': + dependencies: + tslib: 2.8.1 + optional: true + + '@emnapi/wasi-threads@1.0.2': dependencies: tslib: 2.8.1 optional: true @@ -10452,7 +11197,7 @@ snapshots: '@es-joy/jsdoccomment@0.84.0': dependencies: '@types/estree': 1.0.8 - '@typescript-eslint/types': 8.57.1 + '@typescript-eslint/types': 8.57.2 comment-parser: 1.4.5 esquery: 1.7.0 jsdoc-type-pratt-parser: 7.1.1 @@ -10465,7 +11210,7 @@ snapshots: '@esbuild/aix-ppc64@0.25.0': optional: true - '@esbuild/aix-ppc64@0.27.3': + '@esbuild/aix-ppc64@0.25.4': optional: true '@esbuild/aix-ppc64@0.27.4': @@ -10477,7 +11222,7 @@ snapshots: '@esbuild/android-arm64@0.25.0': optional: true - '@esbuild/android-arm64@0.27.3': + '@esbuild/android-arm64@0.25.4': optional: true '@esbuild/android-arm64@0.27.4': @@ -10489,7 +11234,7 @@ snapshots: '@esbuild/android-arm@0.25.0': optional: true - '@esbuild/android-arm@0.27.3': + '@esbuild/android-arm@0.25.4': optional: true '@esbuild/android-arm@0.27.4': @@ -10501,7 +11246,7 @@ snapshots: '@esbuild/android-x64@0.25.0': optional: true - '@esbuild/android-x64@0.27.3': + '@esbuild/android-x64@0.25.4': optional: true '@esbuild/android-x64@0.27.4': @@ -10513,7 +11258,7 @@ snapshots: '@esbuild/darwin-arm64@0.25.0': optional: true - '@esbuild/darwin-arm64@0.27.3': + '@esbuild/darwin-arm64@0.25.4': optional: true '@esbuild/darwin-arm64@0.27.4': @@ -10525,7 +11270,7 @@ snapshots: '@esbuild/darwin-x64@0.25.0': optional: true - '@esbuild/darwin-x64@0.27.3': + '@esbuild/darwin-x64@0.25.4': optional: true '@esbuild/darwin-x64@0.27.4': @@ -10537,7 +11282,7 @@ snapshots: '@esbuild/freebsd-arm64@0.25.0': optional: true - '@esbuild/freebsd-arm64@0.27.3': + '@esbuild/freebsd-arm64@0.25.4': optional: true '@esbuild/freebsd-arm64@0.27.4': @@ -10549,7 +11294,7 @@ snapshots: '@esbuild/freebsd-x64@0.25.0': optional: true - '@esbuild/freebsd-x64@0.27.3': + '@esbuild/freebsd-x64@0.25.4': optional: true '@esbuild/freebsd-x64@0.27.4': @@ -10561,7 +11306,7 @@ snapshots: '@esbuild/linux-arm64@0.25.0': optional: true - '@esbuild/linux-arm64@0.27.3': + '@esbuild/linux-arm64@0.25.4': optional: true '@esbuild/linux-arm64@0.27.4': @@ -10573,7 +11318,7 @@ snapshots: '@esbuild/linux-arm@0.25.0': optional: true - '@esbuild/linux-arm@0.27.3': + '@esbuild/linux-arm@0.25.4': optional: true '@esbuild/linux-arm@0.27.4': @@ -10585,7 +11330,7 @@ snapshots: '@esbuild/linux-ia32@0.25.0': optional: true - '@esbuild/linux-ia32@0.27.3': + '@esbuild/linux-ia32@0.25.4': optional: true '@esbuild/linux-ia32@0.27.4': @@ -10597,7 +11342,7 @@ snapshots: '@esbuild/linux-loong64@0.25.0': optional: true - '@esbuild/linux-loong64@0.27.3': + '@esbuild/linux-loong64@0.25.4': optional: true '@esbuild/linux-loong64@0.27.4': @@ -10609,7 +11354,7 @@ snapshots: '@esbuild/linux-mips64el@0.25.0': optional: true - '@esbuild/linux-mips64el@0.27.3': + '@esbuild/linux-mips64el@0.25.4': optional: true '@esbuild/linux-mips64el@0.27.4': @@ -10621,7 +11366,7 @@ snapshots: '@esbuild/linux-ppc64@0.25.0': optional: true - '@esbuild/linux-ppc64@0.27.3': + '@esbuild/linux-ppc64@0.25.4': optional: true '@esbuild/linux-ppc64@0.27.4': @@ -10633,7 +11378,7 @@ snapshots: '@esbuild/linux-riscv64@0.25.0': optional: true - '@esbuild/linux-riscv64@0.27.3': + '@esbuild/linux-riscv64@0.25.4': optional: true '@esbuild/linux-riscv64@0.27.4': @@ -10645,7 +11390,7 @@ snapshots: '@esbuild/linux-s390x@0.25.0': optional: true - '@esbuild/linux-s390x@0.27.3': + '@esbuild/linux-s390x@0.25.4': optional: true '@esbuild/linux-s390x@0.27.4': @@ -10657,7 +11402,7 @@ snapshots: '@esbuild/linux-x64@0.25.0': optional: true - '@esbuild/linux-x64@0.27.3': + '@esbuild/linux-x64@0.25.4': optional: true '@esbuild/linux-x64@0.27.4': @@ -10666,7 +11411,7 @@ snapshots: '@esbuild/netbsd-arm64@0.25.0': optional: true - '@esbuild/netbsd-arm64@0.27.3': + '@esbuild/netbsd-arm64@0.25.4': optional: true '@esbuild/netbsd-arm64@0.27.4': @@ -10678,7 +11423,7 @@ snapshots: '@esbuild/netbsd-x64@0.25.0': optional: true - '@esbuild/netbsd-x64@0.27.3': + '@esbuild/netbsd-x64@0.25.4': optional: true '@esbuild/netbsd-x64@0.27.4': @@ -10687,7 +11432,7 @@ snapshots: '@esbuild/openbsd-arm64@0.25.0': optional: true - '@esbuild/openbsd-arm64@0.27.3': + '@esbuild/openbsd-arm64@0.25.4': optional: true '@esbuild/openbsd-arm64@0.27.4': @@ -10699,15 +11444,12 @@ snapshots: '@esbuild/openbsd-x64@0.25.0': optional: true - '@esbuild/openbsd-x64@0.27.3': + '@esbuild/openbsd-x64@0.25.4': optional: true '@esbuild/openbsd-x64@0.27.4': optional: true - '@esbuild/openharmony-arm64@0.27.3': - optional: true - '@esbuild/openharmony-arm64@0.27.4': optional: true @@ -10717,7 +11459,7 @@ snapshots: '@esbuild/sunos-x64@0.25.0': optional: true - '@esbuild/sunos-x64@0.27.3': + '@esbuild/sunos-x64@0.25.4': optional: true '@esbuild/sunos-x64@0.27.4': @@ -10729,7 +11471,7 @@ snapshots: '@esbuild/win32-arm64@0.25.0': optional: true - '@esbuild/win32-arm64@0.27.3': + '@esbuild/win32-arm64@0.25.4': optional: true '@esbuild/win32-arm64@0.27.4': @@ -10741,7 +11483,7 @@ snapshots: '@esbuild/win32-ia32@0.25.0': optional: true - '@esbuild/win32-ia32@0.27.3': + '@esbuild/win32-ia32@0.25.4': optional: true '@esbuild/win32-ia32@0.27.4': @@ -10753,22 +11495,29 @@ snapshots: '@esbuild/win32-x64@0.25.0': optional: true - '@esbuild/win32-x64@0.27.3': + '@esbuild/win32-x64@0.25.4': optional: true '@esbuild/win32-x64@0.27.4': optional: true - '@eslint-community/eslint-utils@4.9.1(eslint@10.1.0(jiti@2.4.2))': + '@eslint-community/eslint-utils@4.4.0(eslint@10.1.0(jiti@2.4.2))': dependencies: eslint: 10.1.0(jiti@2.4.2) eslint-visitor-keys: 3.4.3 - '@eslint-community/eslint-utils@4.9.1(eslint@8.57.0)': + '@eslint-community/eslint-utils@4.4.0(eslint@8.57.0)': dependencies: eslint: 8.57.0 eslint-visitor-keys: 3.4.3 + '@eslint-community/eslint-utils@4.9.1(eslint@10.1.0(jiti@2.4.2))': + dependencies: + eslint: 10.1.0(jiti@2.4.2) + eslint-visitor-keys: 3.4.3 + + '@eslint-community/regexpp@4.10.0': {} + '@eslint-community/regexpp@4.12.2': {} '@eslint/compat@2.0.3(eslint@10.1.0(jiti@2.4.2))': @@ -10780,7 +11529,7 @@ snapshots: '@eslint/config-array@0.23.3': dependencies: '@eslint/object-schema': 3.0.3 - debug: 4.4.3 + debug: 4.4.1 minimatch: 10.2.4 transitivePeerDependencies: - supports-color @@ -10795,8 +11544,8 @@ snapshots: '@eslint/eslintrc@2.1.4': dependencies: - ajv: 6.14.0 - debug: 4.4.3 + ajv: 6.12.6 + debug: 4.4.1 espree: 9.6.1 globals: 13.24.0 ignore: 5.3.1 @@ -10816,6 +11565,8 @@ snapshots: '@eslint/core': 1.1.1 levn: 0.4.1 + '@exodus/bytes@1.15.0': {} + '@extra-number/significant-digits@1.3.9': {} '@fastify/busboy@2.1.1': {} @@ -10844,7 +11595,7 @@ snapshots: '@humanwhocodes/config-array@0.11.14': dependencies: '@humanwhocodes/object-schema': 2.0.3 - debug: 4.4.3 + debug: 4.4.1 minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -10855,113 +11606,100 @@ snapshots: '@humanwhocodes/retry@0.4.3': {} - '@img/colour@1.1.0': {} - - '@img/sharp-darwin-arm64@0.34.5': + '@img/sharp-darwin-arm64@0.33.5': optionalDependencies: - '@img/sharp-libvips-darwin-arm64': 1.2.4 + '@img/sharp-libvips-darwin-arm64': 1.0.4 optional: true - '@img/sharp-darwin-x64@0.34.5': + '@img/sharp-darwin-x64@0.33.5': optionalDependencies: - '@img/sharp-libvips-darwin-x64': 1.2.4 - optional: true - - '@img/sharp-libvips-darwin-arm64@1.2.4': - optional: true - - '@img/sharp-libvips-darwin-x64@1.2.4': - optional: true - - '@img/sharp-libvips-linux-arm64@1.2.4': - optional: true - - '@img/sharp-libvips-linux-arm@1.2.4': + '@img/sharp-libvips-darwin-x64': 1.0.4 optional: true - '@img/sharp-libvips-linux-ppc64@1.2.4': + '@img/sharp-libvips-darwin-arm64@1.0.4': optional: true - '@img/sharp-libvips-linux-riscv64@1.2.4': + '@img/sharp-libvips-darwin-x64@1.0.4': optional: true - '@img/sharp-libvips-linux-s390x@1.2.4': + '@img/sharp-libvips-linux-arm64@1.0.4': optional: true - '@img/sharp-libvips-linux-x64@1.2.4': + '@img/sharp-libvips-linux-arm@1.0.5': optional: true - '@img/sharp-libvips-linuxmusl-arm64@1.2.4': + '@img/sharp-libvips-linux-s390x@1.0.4': optional: true - '@img/sharp-libvips-linuxmusl-x64@1.2.4': + '@img/sharp-libvips-linux-x64@1.0.4': optional: true - '@img/sharp-linux-arm64@0.34.5': - optionalDependencies: - '@img/sharp-libvips-linux-arm64': 1.2.4 + '@img/sharp-libvips-linuxmusl-arm64@1.0.4': optional: true - '@img/sharp-linux-arm@0.34.5': - optionalDependencies: - '@img/sharp-libvips-linux-arm': 1.2.4 + '@img/sharp-libvips-linuxmusl-x64@1.0.4': optional: true - '@img/sharp-linux-ppc64@0.34.5': + '@img/sharp-linux-arm64@0.33.5': optionalDependencies: - '@img/sharp-libvips-linux-ppc64': 1.2.4 + '@img/sharp-libvips-linux-arm64': 1.0.4 optional: true - '@img/sharp-linux-riscv64@0.34.5': + '@img/sharp-linux-arm@0.33.5': optionalDependencies: - '@img/sharp-libvips-linux-riscv64': 1.2.4 + '@img/sharp-libvips-linux-arm': 1.0.5 optional: true - '@img/sharp-linux-s390x@0.34.5': + '@img/sharp-linux-s390x@0.33.5': optionalDependencies: - '@img/sharp-libvips-linux-s390x': 1.2.4 + '@img/sharp-libvips-linux-s390x': 1.0.4 optional: true - '@img/sharp-linux-x64@0.34.5': + '@img/sharp-linux-x64@0.33.5': optionalDependencies: - '@img/sharp-libvips-linux-x64': 1.2.4 + '@img/sharp-libvips-linux-x64': 1.0.4 optional: true - '@img/sharp-linuxmusl-arm64@0.34.5': + '@img/sharp-linuxmusl-arm64@0.33.5': optionalDependencies: - '@img/sharp-libvips-linuxmusl-arm64': 1.2.4 + '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 optional: true - '@img/sharp-linuxmusl-x64@0.34.5': + '@img/sharp-linuxmusl-x64@0.33.5': optionalDependencies: - '@img/sharp-libvips-linuxmusl-x64': 1.2.4 + '@img/sharp-libvips-linuxmusl-x64': 1.0.4 optional: true - '@img/sharp-wasm32@0.34.5': + '@img/sharp-wasm32@0.33.5': dependencies: - '@emnapi/runtime': 1.9.0 + '@emnapi/runtime': 1.4.3 optional: true - '@img/sharp-win32-arm64@0.34.5': + '@img/sharp-win32-ia32@0.33.5': optional: true - '@img/sharp-win32-ia32@0.34.5': + '@img/sharp-win32-x64@0.33.5': optional: true - '@img/sharp-win32-x64@0.34.5': + '@inquirer/confirm@5.1.9(@types/node@20.19.37)': + dependencies: + '@inquirer/core': 10.1.10(@types/node@20.19.37) + '@inquirer/type': 3.0.6(@types/node@20.19.37) + optionalDependencies: + '@types/node': 20.19.37 optional: true - '@inquirer/confirm@5.1.9(@types/node@22.19.15)': + '@inquirer/confirm@5.1.9(@types/node@22.19.18)': dependencies: - '@inquirer/core': 10.1.10(@types/node@22.19.15) - '@inquirer/type': 3.0.6(@types/node@22.19.15) + '@inquirer/core': 10.1.10(@types/node@22.19.18) + '@inquirer/type': 3.0.6(@types/node@22.19.18) optionalDependencies: - '@types/node': 22.19.15 + '@types/node': 22.19.18 - '@inquirer/core@10.1.10(@types/node@22.19.15)': + '@inquirer/core@10.1.10(@types/node@20.19.37)': dependencies: '@inquirer/figures': 1.0.11 - '@inquirer/type': 3.0.6(@types/node@22.19.15) + '@inquirer/type': 3.0.6(@types/node@20.19.37) ansi-escapes: 4.3.2 cli-width: 4.1.0 mute-stream: 2.0.0 @@ -10969,13 +11707,32 @@ snapshots: wrap-ansi: 6.2.0 yoctocolors-cjs: 2.1.2 optionalDependencies: - '@types/node': 22.19.15 + '@types/node': 20.19.37 + optional: true + + '@inquirer/core@10.1.10(@types/node@22.19.18)': + dependencies: + '@inquirer/figures': 1.0.11 + '@inquirer/type': 3.0.6(@types/node@22.19.18) + ansi-escapes: 4.3.2 + cli-width: 4.1.0 + mute-stream: 2.0.0 + signal-exit: 4.1.0 + wrap-ansi: 6.2.0 + yoctocolors-cjs: 2.1.2 + optionalDependencies: + '@types/node': 22.19.18 '@inquirer/figures@1.0.11': {} - '@inquirer/type@3.0.6(@types/node@22.19.15)': + '@inquirer/type@3.0.6(@types/node@20.19.37)': + optionalDependencies: + '@types/node': 20.19.37 + optional: true + + '@inquirer/type@3.0.6(@types/node@22.19.18)': optionalDependencies: - '@types/node': 22.19.15 + '@types/node': 22.19.18 '@isaacs/cliui@8.0.2': dependencies: @@ -10996,65 +11753,78 @@ snapshots: '@istanbuljs/schema@0.1.3': {} - '@jest/console@29.7.0': + '@jest/console@30.3.0': dependencies: - '@jest/types': 29.6.3 - '@types/node': 22.19.15 + '@jest/types': 30.3.0 + '@types/node': 20.19.37 chalk: 4.1.2 - jest-message-util: 29.7.0 - jest-util: 29.7.0 + jest-message-util: 30.3.0 + jest-util: 30.3.0 slash: 3.0.0 - '@jest/core@29.7.0(babel-plugin-macros@3.1.0)': + '@jest/core@30.3.0(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.4))': dependencies: - '@jest/console': 29.7.0 - '@jest/reporters': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 22.19.15 + '@jest/console': 30.3.0 + '@jest/pattern': 30.0.1 + '@jest/reporters': 30.3.0 + '@jest/test-result': 30.3.0 + '@jest/transform': 30.3.0 + '@jest/types': 30.3.0 + '@types/node': 20.19.37 ansi-escapes: 4.3.2 chalk: 4.1.2 - ci-info: 3.8.0 - exit: 0.1.2 + ci-info: 4.4.0 + exit-x: 0.2.2 graceful-fs: 4.2.11 - jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@22.19.15)(babel-plugin-macros@3.1.0) - jest-haste-map: 29.7.0 - jest-message-util: 29.7.0 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-resolve-dependencies: 29.7.0 - jest-runner: 29.7.0 - jest-runtime: 29.7.0 - jest-snapshot: 29.7.0 - jest-util: 29.7.0 - jest-validate: 29.7.0 - jest-watcher: 29.7.0 - micromatch: 4.0.5 - pretty-format: 29.7.0 + jest-changed-files: 30.3.0 + jest-config: 30.3.0(@types/node@20.19.37)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.4)) + jest-haste-map: 30.3.0 + jest-message-util: 30.3.0 + jest-regex-util: 30.0.1 + jest-resolve: 30.3.0 + jest-resolve-dependencies: 30.3.0 + jest-runner: 30.3.0 + jest-runtime: 30.3.0 + jest-snapshot: 30.3.0 + jest-util: 30.3.0 + jest-validate: 30.3.0 + jest-watcher: 30.3.0 + pretty-format: 30.3.0 slash: 3.0.0 - strip-ansi: 6.0.1 transitivePeerDependencies: - babel-plugin-macros + - esbuild-register - supports-color - ts-node + '@jest/diff-sequences@30.3.0': {} + '@jest/environment@29.7.0': dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.19.15 + '@types/node': 20.19.37 jest-mock: 29.7.0 - '@jest/expect-utils@29.7.0': + '@jest/environment@30.3.0': dependencies: - jest-get-type: 29.6.3 + '@jest/fake-timers': 30.3.0 + '@jest/types': 30.3.0 + '@types/node': 20.19.37 + jest-mock: 30.3.0 - '@jest/expect@29.7.0': + '@jest/expect-utils@29.7.0': dependencies: - expect: 29.7.0 - jest-snapshot: 29.7.0 + jest-get-type: 29.6.3 + + '@jest/expect-utils@30.3.0': + dependencies: + '@jest/get-type': 30.1.0 + + '@jest/expect@30.3.0': + dependencies: + expect: 30.3.0 + jest-snapshot: 30.3.0 transitivePeerDependencies: - supports-color @@ -11062,45 +11832,60 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.0.2 - '@types/node': 22.19.15 + '@types/node': 20.19.37 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 - '@jest/globals@29.7.0': + '@jest/fake-timers@30.3.0': dependencies: - '@jest/environment': 29.7.0 - '@jest/expect': 29.7.0 - '@jest/types': 29.6.3 - jest-mock: 29.7.0 + '@jest/types': 30.3.0 + '@sinonjs/fake-timers': 15.1.1 + '@types/node': 20.19.37 + jest-message-util: 30.3.0 + jest-mock: 30.3.0 + jest-util: 30.3.0 + + '@jest/get-type@30.1.0': {} + + '@jest/globals@30.3.0': + dependencies: + '@jest/environment': 30.3.0 + '@jest/expect': 30.3.0 + '@jest/types': 30.3.0 + jest-mock: 30.3.0 transitivePeerDependencies: - supports-color - '@jest/reporters@29.7.0': + '@jest/pattern@30.0.1': + dependencies: + '@types/node': 20.19.37 + jest-regex-util: 30.0.1 + + '@jest/reporters@30.3.0': dependencies: '@bcoe/v8-coverage': 0.2.3 - '@jest/console': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 + '@jest/console': 30.3.0 + '@jest/test-result': 30.3.0 + '@jest/transform': 30.3.0 + '@jest/types': 30.3.0 '@jridgewell/trace-mapping': 0.3.25 - '@types/node': 22.19.15 + '@types/node': 20.19.37 chalk: 4.1.2 - collect-v8-coverage: 1.0.1 - exit: 0.1.2 - glob: 7.2.3 + collect-v8-coverage: 1.0.3 + exit-x: 0.2.2 + glob: 10.5.0 graceful-fs: 4.2.11 istanbul-lib-coverage: 3.2.0 istanbul-lib-instrument: 6.0.2 istanbul-lib-report: 3.0.0 - istanbul-lib-source-maps: 4.0.1 + istanbul-lib-source-maps: 5.0.6 istanbul-reports: 3.1.5 - jest-message-util: 29.7.0 - jest-util: 29.7.0 - jest-worker: 29.7.0 + jest-message-util: 30.3.0 + jest-util: 30.3.0 + jest-worker: 30.3.0 slash: 3.0.0 string-length: 4.0.2 - strip-ansi: 6.0.1 v8-to-istanbul: 9.1.0 transitivePeerDependencies: - supports-color @@ -11109,43 +11894,53 @@ snapshots: dependencies: '@sinclair/typebox': 0.27.8 - '@jest/source-map@29.6.3': + '@jest/schemas@30.0.5': + dependencies: + '@sinclair/typebox': 0.34.48 + + '@jest/snapshot-utils@30.3.0': + dependencies: + '@jest/types': 30.3.0 + chalk: 4.1.2 + graceful-fs: 4.2.11 + natural-compare: 1.4.0 + + '@jest/source-map@30.0.1': dependencies: '@jridgewell/trace-mapping': 0.3.25 callsites: 3.1.0 graceful-fs: 4.2.11 - '@jest/test-result@29.7.0': + '@jest/test-result@30.3.0': dependencies: - '@jest/console': 29.7.0 - '@jest/types': 29.6.3 - '@types/istanbul-lib-coverage': 2.0.4 - collect-v8-coverage: 1.0.1 + '@jest/console': 30.3.0 + '@jest/types': 30.3.0 + '@types/istanbul-lib-coverage': 2.0.6 + collect-v8-coverage: 1.0.3 - '@jest/test-sequencer@29.7.0': + '@jest/test-sequencer@30.3.0': dependencies: - '@jest/test-result': 29.7.0 + '@jest/test-result': 30.3.0 graceful-fs: 4.2.11 - jest-haste-map: 29.7.0 + jest-haste-map: 30.3.0 slash: 3.0.0 - '@jest/transform@29.7.0': + '@jest/transform@30.3.0': dependencies: '@babel/core': 7.27.7 - '@jest/types': 29.6.3 + '@jest/types': 30.3.0 '@jridgewell/trace-mapping': 0.3.25 - babel-plugin-istanbul: 6.1.1 + babel-plugin-istanbul: 7.0.1 chalk: 4.1.2 convert-source-map: 2.0.0 fast-json-stable-stringify: 2.1.0 graceful-fs: 4.2.11 - jest-haste-map: 29.7.0 - jest-regex-util: 29.6.3 - jest-util: 29.7.0 - micromatch: 4.0.5 - pirates: 4.0.5 + jest-haste-map: 30.3.0 + jest-regex-util: 30.0.1 + jest-util: 30.3.0 + pirates: 4.0.7 slash: 3.0.0 - write-file-atomic: 4.0.2 + write-file-atomic: 5.0.1 transitivePeerDependencies: - supports-color @@ -11154,10 +11949,20 @@ snapshots: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 - '@types/node': 22.19.15 + '@types/node': 20.19.37 '@types/yargs': 17.0.24 chalk: 4.1.2 + '@jest/types@30.3.0': + dependencies: + '@jest/pattern': 30.0.1 + '@jest/schemas': 30.0.5 + '@types/istanbul-lib-coverage': 2.0.6 + '@types/istanbul-reports': 3.0.4 + '@types/node': 20.19.37 + '@types/yargs': 17.0.35 + chalk: 4.1.2 + '@jridgewell/gen-mapping@0.3.8': dependencies: '@jridgewell/set-array': 1.2.1 @@ -11239,8 +12044,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@mjackson/node-fetch-server@0.2.0': {} - '@mjackson/node-fetch-server@0.6.1': {} '@mswjs/interceptors@0.37.6': @@ -11252,10 +12055,17 @@ snapshots: outvariant: 1.4.3 strict-event-emitter: 0.5.1 + '@napi-rs/wasm-runtime@0.2.11': + dependencies: + '@emnapi/core': 1.4.3 + '@emnapi/runtime': 1.4.3 + '@tybys/wasm-util': 0.9.0 + optional: true + '@napi-rs/wasm-runtime@1.1.1': dependencies: - '@emnapi/core': 1.9.0 - '@emnapi/runtime': 1.9.0 + '@emnapi/core': 1.9.1 + '@emnapi/runtime': 1.9.1 '@tybys/wasm-util': 0.10.1 optional: true @@ -11311,110 +12121,139 @@ snapshots: '@oxc-project/types@0.115.0': {} + '@oxc-project/types@0.122.0': {} + '@pkgjs/parseargs@0.11.0': optional: true + '@pkgr/core@0.2.9': {} + '@playwright/test@1.58.2': dependencies: playwright: 1.58.2 - '@poppinss/colors@4.1.6': + '@remix-run/changelog-github@0.0.5': dependencies: - kleur: 4.1.5 - - '@poppinss/dumper@0.6.5': - dependencies: - '@poppinss/colors': 4.1.6 - '@sindresorhus/is': 7.2.0 - supports-color: 10.2.2 - - '@poppinss/exception@1.2.3': {} + '@changesets/errors': 0.1.4 + '@changesets/get-github-info': 0.5.1 + '@changesets/types': 5.2.1 + dotenv: 8.6.0 + transitivePeerDependencies: + - encoding '@remix-run/node-fetch-server@0.13.0': {} - '@remix-run/web-blob@3.1.0': - dependencies: - '@remix-run/web-stream': 1.1.0 - web-encoding: 1.1.5 - - '@remix-run/web-fetch@4.4.2': - dependencies: - '@remix-run/web-blob': 3.1.0 - '@remix-run/web-file': 3.1.0 - '@remix-run/web-form-data': 3.1.0 - '@remix-run/web-stream': 1.1.0 - '@web3-storage/multipart-parser': 1.0.0 - abort-controller: 3.0.0 - data-uri-to-buffer: 3.0.1 - mrmime: 1.0.1 - - '@remix-run/web-file@3.1.0': - dependencies: - '@remix-run/web-blob': 3.1.0 - - '@remix-run/web-form-data@3.1.0': - dependencies: - web-encoding: 1.1.5 - - '@remix-run/web-stream@1.1.0': - dependencies: - web-streams-polyfill: 3.3.3 + '@rolldown/binding-android-arm64@1.0.0-rc.11': + optional: true '@rolldown/binding-android-arm64@1.0.0-rc.9': optional: true + '@rolldown/binding-darwin-arm64@1.0.0-rc.11': + optional: true + '@rolldown/binding-darwin-arm64@1.0.0-rc.9': optional: true + '@rolldown/binding-darwin-x64@1.0.0-rc.11': + optional: true + '@rolldown/binding-darwin-x64@1.0.0-rc.9': optional: true + '@rolldown/binding-freebsd-x64@1.0.0-rc.11': + optional: true + '@rolldown/binding-freebsd-x64@1.0.0-rc.9': optional: true + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.11': + optional: true + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.9': optional: true + '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.11': + optional: true + '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.9': optional: true + '@rolldown/binding-linux-arm64-musl@1.0.0-rc.11': + optional: true + '@rolldown/binding-linux-arm64-musl@1.0.0-rc.9': optional: true + '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.11': + optional: true + '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.9': optional: true + '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.11': + optional: true + '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.9': optional: true + '@rolldown/binding-linux-x64-gnu@1.0.0-rc.11': + optional: true + '@rolldown/binding-linux-x64-gnu@1.0.0-rc.9': optional: true + '@rolldown/binding-linux-x64-musl@1.0.0-rc.11': + optional: true + '@rolldown/binding-linux-x64-musl@1.0.0-rc.9': optional: true + '@rolldown/binding-openharmony-arm64@1.0.0-rc.11': + optional: true + '@rolldown/binding-openharmony-arm64@1.0.0-rc.9': optional: true + '@rolldown/binding-wasm32-wasi@1.0.0-rc.11': + dependencies: + '@napi-rs/wasm-runtime': 1.1.1 + optional: true + '@rolldown/binding-wasm32-wasi@1.0.0-rc.9': dependencies: '@napi-rs/wasm-runtime': 1.1.1 optional: true + '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.11': + optional: true + '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.9': optional: true + '@rolldown/binding-win32-x64-msvc@1.0.0-rc.11': + optional: true + '@rolldown/binding-win32-x64-msvc@1.0.0-rc.9': optional: true '@rolldown/pluginutils@1.0.0-beta.11': {} + '@rolldown/pluginutils@1.0.0-rc.11': {} + '@rolldown/pluginutils@1.0.0-rc.5': {} '@rolldown/pluginutils@1.0.0-rc.7': {} '@rolldown/pluginutils@1.0.0-rc.9': {} + '@rollup/plugin-replace@6.0.2(rollup@4.43.0)': + dependencies: + '@rollup/pluginutils': 5.1.0(rollup@4.43.0) + magic-string: 0.30.21 + optionalDependencies: + rollup: 4.43.0 + '@rollup/pluginutils@5.1.0(rollup@4.43.0)': dependencies: '@types/estree': 1.0.8 @@ -11519,9 +12358,9 @@ snapshots: '@sinclair/typebox@0.27.8': {} - '@sindresorhus/base62@1.0.0': {} + '@sinclair/typebox@0.34.48': {} - '@sindresorhus/is@7.2.0': {} + '@sindresorhus/base62@1.0.0': {} '@sindresorhus/merge-streams@4.0.0': {} @@ -11529,11 +12368,17 @@ snapshots: dependencies: type-detect: 4.0.8 + '@sinonjs/commons@3.0.1': + dependencies: + type-detect: 4.0.8 + '@sinonjs/fake-timers@10.0.2': dependencies: '@sinonjs/commons': 2.0.0 - '@speed-highlight/core@1.2.14': {} + '@sinonjs/fake-timers@15.1.1': + dependencies: + '@sinonjs/commons': 3.0.1 '@standard-schema/spec@1.1.0': {} @@ -11606,7 +12451,7 @@ snapshots: '@testing-library/jest-dom@6.6.3': dependencies: '@adobe/css-tools': 4.4.2 - aria-query: 5.3.2 + aria-query: 5.3.0 chalk: 3.0.0 css.escape: 1.5.1 dom-accessibility-api: 0.6.3 @@ -11629,13 +12474,16 @@ snapshots: '@tootallnate/once@2.0.0': {} - '@tootallnate/quickjs-emscripten@0.23.0': {} - '@tybys/wasm-util@0.10.1': dependencies: tslib: 2.8.1 optional: true + '@tybys/wasm-util@0.9.0': + dependencies: + tslib: 2.8.1 + optional: true + '@types/acorn@4.0.6': dependencies: '@types/estree': 1.0.8 @@ -11668,7 +12516,7 @@ snapshots: '@types/body-parser@1.19.5': dependencies: '@types/connect': 3.4.38 - '@types/node': 22.19.15 + '@types/node': 20.19.37 '@types/chai@5.2.3': dependencies: @@ -11678,11 +12526,11 @@ snapshots: '@types/compression@1.8.1': dependencies: '@types/express': 4.17.21 - '@types/node': 22.19.15 + '@types/node': 22.14.0 '@types/connect@3.4.38': dependencies: - '@types/node': 22.19.15 + '@types/node': 20.19.37 '@types/cookie@0.6.0': {} @@ -11690,7 +12538,7 @@ snapshots: '@types/cross-spawn@6.0.6': dependencies: - '@types/node': 22.19.15 + '@types/node': 22.14.0 '@types/debug@4.1.12': dependencies: @@ -11722,14 +12570,14 @@ snapshots: '@types/express-serve-static-core@4.17.43': dependencies: - '@types/node': 22.19.15 + '@types/node': 20.19.37 '@types/qs': 6.9.14 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 '@types/express-serve-static-core@5.0.6': dependencies: - '@types/node': 22.19.15 + '@types/node': 20.19.37 '@types/qs': 6.9.14 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -11750,20 +12598,16 @@ snapshots: '@types/glob@7.2.0': dependencies: '@types/minimatch': 5.1.2 - '@types/node': 22.19.15 + '@types/node': 20.19.37 '@types/glob@8.1.0': dependencies: '@types/minimatch': 5.1.2 - '@types/node': 22.19.15 - - '@types/graceful-fs@4.1.6': - dependencies: - '@types/node': 22.19.15 + '@types/node': 22.14.0 '@types/gunzip-maybe@1.4.2': dependencies: - '@types/node': 22.19.15 + '@types/node': 22.14.0 '@types/hast@3.0.4': dependencies: @@ -11773,6 +12617,8 @@ snapshots: '@types/istanbul-lib-coverage@2.0.4': {} + '@types/istanbul-lib-coverage@2.0.6': {} + '@types/istanbul-lib-report@3.0.0': dependencies: '@types/istanbul-lib-coverage': 2.0.4 @@ -11781,20 +12627,29 @@ snapshots: dependencies: '@types/istanbul-lib-report': 3.0.0 + '@types/istanbul-reports@3.0.4': + dependencies: + '@types/istanbul-lib-report': 3.0.0 + '@types/jest@29.5.12': dependencies: expect: 29.7.0 pretty-format: 29.7.0 + '@types/jest@30.0.0': + dependencies: + expect: 30.3.0 + pretty-format: 30.3.0 + '@types/jsdom@20.0.1': dependencies: - '@types/node': 22.19.15 + '@types/node': 20.19.37 '@types/tough-cookie': 4.0.5 parse5: 7.1.2 '@types/jsdom@21.1.1': dependencies: - '@types/node': 22.19.15 + '@types/node': 20.19.37 '@types/tough-cookie': 4.0.5 parse5: 7.1.2 @@ -11830,17 +12685,25 @@ snapshots: '@types/morgan@1.9.10': dependencies: - '@types/node': 22.19.15 + '@types/node': 22.14.0 '@types/ms@0.7.34': {} '@types/node@12.20.55': {} + '@types/node@20.11.30': + dependencies: + undici-types: 5.26.5 + '@types/node@20.19.37': dependencies: undici-types: 6.21.0 - '@types/node@22.19.15': + '@types/node@22.14.0': + dependencies: + undici-types: 6.21.0 + + '@types/node@22.19.18': dependencies: undici-types: 6.21.0 @@ -11850,7 +12713,7 @@ snapshots: '@types/prompts@2.4.9': dependencies: - '@types/node': 22.19.15 + '@types/node': 22.19.18 kleur: 3.0.3 '@types/prop-types@15.7.5': {} @@ -11871,11 +12734,11 @@ snapshots: dependencies: '@types/prop-types': 15.7.5 '@types/scheduler': 0.16.2 - csstype: 3.2.3 + csstype: 3.1.1 '@types/recursive-readdir@2.2.4': dependencies: - '@types/node': 22.19.15 + '@types/node': 22.14.0 '@types/scheduler@0.16.2': {} @@ -11884,22 +12747,22 @@ snapshots: '@types/send@0.17.4': dependencies: '@types/mime': 1.3.5 - '@types/node': 22.19.15 + '@types/node': 20.19.37 '@types/serve-static@1.15.5': dependencies: '@types/http-errors': 2.0.4 '@types/mime': 3.0.4 - '@types/node': 22.19.15 + '@types/node': 20.19.37 '@types/set-cookie-parser@2.4.7': dependencies: - '@types/node': 22.19.15 + '@types/node': 22.14.0 '@types/shelljs@0.8.16': dependencies: '@types/glob': 7.2.0 - '@types/node': 22.19.15 + '@types/node': 22.14.0 '@types/source-map-support@0.5.10': dependencies: @@ -11907,13 +12770,15 @@ snapshots: '@types/stack-utils@2.0.1': {} + '@types/stack-utils@2.0.3': {} + '@types/statuses@2.0.5': {} '@types/superagent@8.1.6': dependencies: '@types/cookiejar': 2.1.5 '@types/methods': 1.1.4 - '@types/node': 22.19.15 + '@types/node': 20.19.37 '@types/supertest@2.0.16': dependencies: @@ -11921,12 +12786,12 @@ snapshots: '@types/tar-fs@2.0.4': dependencies: - '@types/node': 22.19.15 + '@types/node': 22.14.0 '@types/tar-stream': 3.1.3 '@types/tar-stream@3.1.3': dependencies: - '@types/node': 22.19.15 + '@types/node': 20.19.37 '@types/tough-cookie@4.0.5': {} @@ -11936,7 +12801,7 @@ snapshots: '@types/wait-on@5.3.4': dependencies: - '@types/node': 22.19.15 + '@types/node': 22.14.0 '@types/yargs-parser@21.0.0': {} @@ -11944,33 +12809,37 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.0 + '@types/yargs@17.0.35': + dependencies: + '@types/yargs-parser': 21.0.0 + '@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@10.1.0(jiti@2.4.2))(typescript@5.4.5))(eslint@10.1.0(jiti@2.4.2))(typescript@5.4.5)': dependencies: - '@eslint-community/regexpp': 4.12.2 + '@eslint-community/regexpp': 4.10.0 '@typescript-eslint/parser': 5.62.0(eslint@10.1.0(jiti@2.4.2))(typescript@5.4.5) '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/type-utils': 5.62.0(eslint@10.1.0(jiti@2.4.2))(typescript@5.4.5) '@typescript-eslint/utils': 5.62.0(eslint@10.1.0(jiti@2.4.2))(typescript@5.4.5) - debug: 4.4.3 + debug: 4.4.1 eslint: 10.1.0(jiti@2.4.2) graphemer: 1.4.0 ignore: 5.3.1 natural-compare-lite: 1.4.0 - semver: 7.7.4 + semver: 7.7.2 tsutils: 3.21.0(typescript@5.4.5) optionalDependencies: typescript: 5.4.5 transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@8.57.1(@typescript-eslint/parser@8.57.1(eslint@10.1.0(jiti@2.4.2))(typescript@5.4.5))(eslint@10.1.0(jiti@2.4.2))(typescript@5.4.5)': + '@typescript-eslint/eslint-plugin@8.57.2(@typescript-eslint/parser@8.57.2(eslint@10.1.0(jiti@2.4.2))(typescript@5.4.5))(eslint@10.1.0(jiti@2.4.2))(typescript@5.4.5)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.57.1(eslint@10.1.0(jiti@2.4.2))(typescript@5.4.5) - '@typescript-eslint/scope-manager': 8.57.1 - '@typescript-eslint/type-utils': 8.57.1(eslint@10.1.0(jiti@2.4.2))(typescript@5.4.5) - '@typescript-eslint/utils': 8.57.1(eslint@10.1.0(jiti@2.4.2))(typescript@5.4.5) - '@typescript-eslint/visitor-keys': 8.57.1 + '@typescript-eslint/parser': 8.57.2(eslint@10.1.0(jiti@2.4.2))(typescript@5.4.5) + '@typescript-eslint/scope-manager': 8.57.2 + '@typescript-eslint/type-utils': 8.57.2(eslint@10.1.0(jiti@2.4.2))(typescript@5.4.5) + '@typescript-eslint/utils': 8.57.2(eslint@10.1.0(jiti@2.4.2))(typescript@5.4.5) + '@typescript-eslint/visitor-keys': 8.57.2 eslint: 10.1.0(jiti@2.4.2) ignore: 7.0.5 natural-compare: 1.4.0 @@ -11992,29 +12861,29 @@ snapshots: '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.4.5) - debug: 4.4.3 + debug: 4.4.1 eslint: 10.1.0(jiti@2.4.2) optionalDependencies: typescript: 5.4.5 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.57.1(eslint@10.1.0(jiti@2.4.2))(typescript@5.4.5)': + '@typescript-eslint/parser@8.57.2(eslint@10.1.0(jiti@2.4.2))(typescript@5.4.5)': dependencies: - '@typescript-eslint/scope-manager': 8.57.1 - '@typescript-eslint/types': 8.57.1 - '@typescript-eslint/typescript-estree': 8.57.1(typescript@5.4.5) - '@typescript-eslint/visitor-keys': 8.57.1 + '@typescript-eslint/scope-manager': 8.57.2 + '@typescript-eslint/types': 8.57.2 + '@typescript-eslint/typescript-estree': 8.57.2(typescript@5.4.5) + '@typescript-eslint/visitor-keys': 8.57.2 debug: 4.4.3 eslint: 10.1.0(jiti@2.4.2) typescript: 5.4.5 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.57.1(typescript@5.4.5)': + '@typescript-eslint/project-service@8.57.2(typescript@5.4.5)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.57.1(typescript@5.4.5) - '@typescript-eslint/types': 8.57.1 + '@typescript-eslint/tsconfig-utils': 8.57.2(typescript@5.4.5) + '@typescript-eslint/types': 8.57.2 debug: 4.4.3 typescript: 5.4.5 transitivePeerDependencies: @@ -12025,12 +12894,12 @@ snapshots: '@typescript-eslint/types': 5.62.0 '@typescript-eslint/visitor-keys': 5.62.0 - '@typescript-eslint/scope-manager@8.57.1': + '@typescript-eslint/scope-manager@8.57.2': dependencies: - '@typescript-eslint/types': 8.57.1 - '@typescript-eslint/visitor-keys': 8.57.1 + '@typescript-eslint/types': 8.57.2 + '@typescript-eslint/visitor-keys': 8.57.2 - '@typescript-eslint/tsconfig-utils@8.57.1(typescript@5.4.5)': + '@typescript-eslint/tsconfig-utils@8.57.2(typescript@5.4.5)': dependencies: typescript: 5.4.5 @@ -12038,7 +12907,7 @@ snapshots: dependencies: '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.4.5) '@typescript-eslint/utils': 5.62.0(eslint@10.1.0(jiti@2.4.2))(typescript@5.4.5) - debug: 4.4.3 + debug: 4.4.1 eslint: 10.1.0(jiti@2.4.2) tsutils: 3.21.0(typescript@5.4.5) optionalDependencies: @@ -12046,11 +12915,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@8.57.1(eslint@10.1.0(jiti@2.4.2))(typescript@5.4.5)': + '@typescript-eslint/type-utils@8.57.2(eslint@10.1.0(jiti@2.4.2))(typescript@5.4.5)': dependencies: - '@typescript-eslint/types': 8.57.1 - '@typescript-eslint/typescript-estree': 8.57.1(typescript@5.4.5) - '@typescript-eslint/utils': 8.57.1(eslint@10.1.0(jiti@2.4.2))(typescript@5.4.5) + '@typescript-eslint/types': 8.57.2 + '@typescript-eslint/typescript-estree': 8.57.2(typescript@5.4.5) + '@typescript-eslint/utils': 8.57.2(eslint@10.1.0(jiti@2.4.2))(typescript@5.4.5) debug: 4.4.3 eslint: 10.1.0(jiti@2.4.2) ts-api-utils: 2.5.0(typescript@5.4.5) @@ -12060,28 +12929,28 @@ snapshots: '@typescript-eslint/types@5.62.0': {} - '@typescript-eslint/types@8.57.1': {} + '@typescript-eslint/types@8.57.2': {} '@typescript-eslint/typescript-estree@5.62.0(typescript@5.4.5)': dependencies: '@typescript-eslint/types': 5.62.0 '@typescript-eslint/visitor-keys': 5.62.0 - debug: 4.4.3 + debug: 4.4.1 globby: 11.1.0 is-glob: 4.0.3 - semver: 7.7.4 + semver: 7.7.2 tsutils: 3.21.0(typescript@5.4.5) optionalDependencies: typescript: 5.4.5 transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.57.1(typescript@5.4.5)': + '@typescript-eslint/typescript-estree@8.57.2(typescript@5.4.5)': dependencies: - '@typescript-eslint/project-service': 8.57.1(typescript@5.4.5) - '@typescript-eslint/tsconfig-utils': 8.57.1(typescript@5.4.5) - '@typescript-eslint/types': 8.57.1 - '@typescript-eslint/visitor-keys': 8.57.1 + '@typescript-eslint/project-service': 8.57.2(typescript@5.4.5) + '@typescript-eslint/tsconfig-utils': 8.57.2(typescript@5.4.5) + '@typescript-eslint/types': 8.57.2 + '@typescript-eslint/visitor-keys': 8.57.2 debug: 4.4.3 minimatch: 10.2.4 semver: 7.7.4 @@ -12093,7 +12962,7 @@ snapshots: '@typescript-eslint/utils@5.62.0(eslint@10.1.0(jiti@2.4.2))(typescript@5.4.5)': dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.1.0(jiti@2.4.2)) + '@eslint-community/eslint-utils': 4.4.0(eslint@10.1.0(jiti@2.4.2)) '@types/json-schema': 7.0.15 '@types/semver': 7.7.0 '@typescript-eslint/scope-manager': 5.62.0 @@ -12101,17 +12970,17 @@ snapshots: '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.4.5) eslint: 10.1.0(jiti@2.4.2) eslint-scope: 5.1.1 - semver: 7.7.4 + semver: 7.7.2 transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/utils@8.57.1(eslint@10.1.0(jiti@2.4.2))(typescript@5.4.5)': + '@typescript-eslint/utils@8.57.2(eslint@10.1.0(jiti@2.4.2))(typescript@5.4.5)': dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@10.1.0(jiti@2.4.2)) - '@typescript-eslint/scope-manager': 8.57.1 - '@typescript-eslint/types': 8.57.1 - '@typescript-eslint/typescript-estree': 8.57.1(typescript@5.4.5) + '@typescript-eslint/scope-manager': 8.57.2 + '@typescript-eslint/types': 8.57.2 + '@typescript-eslint/typescript-estree': 8.57.2(typescript@5.4.5) eslint: 10.1.0(jiti@2.4.2) typescript: 5.4.5 transitivePeerDependencies: @@ -12122,25 +12991,107 @@ snapshots: '@typescript-eslint/types': 5.62.0 eslint-visitor-keys: 3.4.3 - '@typescript-eslint/visitor-keys@8.57.1': + '@typescript-eslint/visitor-keys@8.57.2': dependencies: - '@typescript-eslint/types': 8.57.1 + '@typescript-eslint/types': 8.57.2 eslint-visitor-keys: 5.0.1 '@ungap/structured-clone@1.2.0': {} + '@ungap/structured-clone@1.3.0': {} + + '@unrs/resolver-binding-android-arm-eabi@1.11.1': + optional: true + + '@unrs/resolver-binding-android-arm64@1.11.1': + optional: true + + '@unrs/resolver-binding-darwin-arm64@1.11.1': + optional: true + + '@unrs/resolver-binding-darwin-x64@1.11.1': + optional: true + + '@unrs/resolver-binding-freebsd-x64@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-arm-musleabihf@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-arm64-gnu@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-arm64-musl@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-ppc64-gnu@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-riscv64-gnu@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-riscv64-musl@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-s390x-gnu@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-x64-gnu@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-x64-musl@1.11.1': + optional: true + + '@unrs/resolver-binding-wasm32-wasi@1.11.1': + dependencies: + '@napi-rs/wasm-runtime': 0.2.11 + optional: true + + '@unrs/resolver-binding-win32-arm64-msvc@1.11.1': + optional: true + + '@unrs/resolver-binding-win32-ia32-msvc@1.11.1': + optional: true + + '@unrs/resolver-binding-win32-x64-msvc@1.11.1': + optional: true + '@vanilla-extract/babel-plugin-debug-ids@1.2.2': dependencies: '@babel/core': 7.27.7 transitivePeerDependencies: - supports-color - '@vanilla-extract/compiler@0.5.0(@types/node@22.19.15)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)': + '@vanilla-extract/compiler@0.5.0(@types/node@22.19.18)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)': dependencies: '@vanilla-extract/css': 1.19.0(babel-plugin-macros@3.1.0) - '@vanilla-extract/integration': 8.0.8(babel-plugin-macros@3.1.0) - vite: 6.4.1(@types/node@22.19.15)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) - vite-node: 3.2.4(@types/node@22.19.15)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) + '@vanilla-extract/integration': 8.0.9(babel-plugin-macros@3.1.0) + vite: 6.4.1(@types/node@22.19.18)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) + vite-node: 3.2.4(@types/node@22.19.18)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - jiti + - less + - lightningcss + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - yaml + + '@vanilla-extract/compiler@0.6.0(@types/node@22.14.0)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)': + dependencies: + '@vanilla-extract/css': 1.20.0(babel-plugin-macros@3.1.0) + '@vanilla-extract/integration': 8.0.9(babel-plugin-macros@3.1.0) + vite: 6.4.1(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) + vite-node: 3.2.4(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -12156,6 +13107,44 @@ snapshots: - tsx - yaml + '@vanilla-extract/compiler@0.6.0(@types/node@22.19.18)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)': + dependencies: + '@vanilla-extract/css': 1.20.0(babel-plugin-macros@3.1.0) + '@vanilla-extract/integration': 8.0.9(babel-plugin-macros@3.1.0) + vite: 6.4.1(@types/node@22.19.18)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) + vite-node: 3.2.4(@types/node@22.19.18)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - jiti + - less + - lightningcss + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - yaml + + '@vanilla-extract/css@1.17.4(babel-plugin-macros@3.1.0)': + dependencies: + '@emotion/hash': 0.9.1 + '@vanilla-extract/private': 1.0.9 + css-what: 6.1.0 + cssesc: 3.0.0 + csstype: 3.1.1 + dedent: 1.5.3(babel-plugin-macros@3.1.0) + deep-object-diff: 1.1.9 + deepmerge: 4.3.1 + lru-cache: 10.4.3 + media-query-parser: 2.0.2 + modern-ahocorasick: 1.0.1 + picocolors: 1.1.1 + transitivePeerDependencies: + - babel-plugin-macros + '@vanilla-extract/css@1.19.0(babel-plugin-macros@3.1.0)': dependencies: '@emotion/hash': 0.9.1 @@ -12173,13 +13162,30 @@ snapshots: transitivePeerDependencies: - babel-plugin-macros - '@vanilla-extract/integration@8.0.8(babel-plugin-macros@3.1.0)': + '@vanilla-extract/css@1.20.0(babel-plugin-macros@3.1.0)': + dependencies: + '@emotion/hash': 0.9.1 + '@vanilla-extract/private': 1.0.9 + css-what: 6.1.0 + cssesc: 3.0.0 + csstype: 3.2.3 + dedent: 1.7.2(babel-plugin-macros@3.1.0) + deep-object-diff: 1.1.9 + deepmerge: 4.3.1 + lru-cache: 10.4.3 + media-query-parser: 2.0.2 + modern-ahocorasick: 1.0.1 + picocolors: 1.1.1 + transitivePeerDependencies: + - babel-plugin-macros + + '@vanilla-extract/integration@8.0.9(babel-plugin-macros@3.1.0)': dependencies: '@babel/core': 7.27.7 '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.27.7) '@vanilla-extract/babel-plugin-debug-ids': 1.2.2 - '@vanilla-extract/css': 1.19.0(babel-plugin-macros@3.1.0) - dedent: 1.5.3(babel-plugin-macros@3.1.0) + '@vanilla-extract/css': 1.20.0(babel-plugin-macros@3.1.0) + dedent: 1.7.2(babel-plugin-macros@3.1.0) esbuild: 0.25.0 eval: 0.1.8 find-up: 5.0.0 @@ -12191,11 +13197,31 @@ snapshots: '@vanilla-extract/private@1.0.9': {} - '@vanilla-extract/vite-plugin@5.2.0(@types/node@22.19.15)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(vite@5.1.3(@types/node@22.19.15)(lightningcss@1.32.0)(terser@5.44.1))(yaml@2.8.0)': + '@vanilla-extract/vite-plugin@5.2.0(@types/node@22.19.18)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(vite@5.1.3(@types/node@22.19.18)(lightningcss@1.32.0)(terser@5.44.1))(yaml@2.8.0)': + dependencies: + '@vanilla-extract/compiler': 0.5.0(@types/node@22.19.18)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) + '@vanilla-extract/integration': 8.0.9(babel-plugin-macros@3.1.0) + vite: 5.1.3(@types/node@22.19.18)(lightningcss@1.32.0)(terser@5.44.1) + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - jiti + - less + - lightningcss + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - yaml + + '@vanilla-extract/vite-plugin@5.2.0(@types/node@22.19.18)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(vite@6.4.1(@types/node@22.19.18)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0))(yaml@2.8.0)': dependencies: - '@vanilla-extract/compiler': 0.5.0(@types/node@22.19.15)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) - '@vanilla-extract/integration': 8.0.8(babel-plugin-macros@3.1.0) - vite: 5.1.3(@types/node@22.19.15)(lightningcss@1.32.0)(terser@5.44.1) + '@vanilla-extract/compiler': 0.5.0(@types/node@22.19.18)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) + '@vanilla-extract/integration': 8.0.9(babel-plugin-macros@3.1.0) + vite: 6.4.1(@types/node@22.19.18)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -12211,11 +13237,11 @@ snapshots: - tsx - yaml - '@vanilla-extract/vite-plugin@5.2.0(@types/node@22.19.15)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0))(yaml@2.8.0)': + '@vanilla-extract/vite-plugin@5.2.0(@types/node@22.19.18)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(vite@7.0.0-beta.0(@types/node@22.19.18)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0))(yaml@2.8.0)': dependencies: - '@vanilla-extract/compiler': 0.5.0(@types/node@22.19.15)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) - '@vanilla-extract/integration': 8.0.8(babel-plugin-macros@3.1.0) - vite: 6.4.1(@types/node@22.19.15)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) + '@vanilla-extract/compiler': 0.5.0(@types/node@22.19.18)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) + '@vanilla-extract/integration': 8.0.9(babel-plugin-macros@3.1.0) + vite: 7.0.0-beta.0(@types/node@22.19.18)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -12231,11 +13257,11 @@ snapshots: - tsx - yaml - '@vanilla-extract/vite-plugin@5.2.0(@types/node@22.19.15)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(vite@7.0.0-beta.0(@types/node@22.19.15)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0))(yaml@2.8.0)': + '@vanilla-extract/vite-plugin@5.2.1(@types/node@22.14.0)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(vite@8.0.2(@types/node@22.14.0)(esbuild@0.27.4)(jiti@2.4.2)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0))(yaml@2.8.0)': dependencies: - '@vanilla-extract/compiler': 0.5.0(@types/node@22.19.15)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) - '@vanilla-extract/integration': 8.0.8(babel-plugin-macros@3.1.0) - vite: 7.0.0-beta.0(@types/node@22.19.15)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) + '@vanilla-extract/compiler': 0.6.0(@types/node@22.14.0)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) + '@vanilla-extract/integration': 8.0.9(babel-plugin-macros@3.1.0) + vite: 8.0.2(@types/node@22.14.0)(esbuild@0.27.4)(jiti@2.4.2)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -12251,11 +13277,11 @@ snapshots: - tsx - yaml - '@vanilla-extract/vite-plugin@5.2.0(@types/node@22.19.15)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(vite@8.0.0(@types/node@22.19.15)(esbuild@0.27.4)(jiti@2.4.2)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0))(yaml@2.8.0)': + '@vanilla-extract/vite-plugin@5.2.1(@types/node@22.19.18)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(vite@8.0.2(@types/node@22.19.18)(esbuild@0.27.4)(jiti@2.4.2)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0))(yaml@2.8.0)': dependencies: - '@vanilla-extract/compiler': 0.5.0(@types/node@22.19.15)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) - '@vanilla-extract/integration': 8.0.8(babel-plugin-macros@3.1.0) - vite: 8.0.0(@types/node@22.19.15)(esbuild@0.27.4)(jiti@2.4.2)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) + '@vanilla-extract/compiler': 0.6.0(@types/node@22.19.18)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) + '@vanilla-extract/integration': 8.0.9(babel-plugin-macros@3.1.0) + vite: 8.0.2(@types/node@22.19.18)(esbuild@0.27.4)(jiti@2.4.2)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -12271,7 +13297,19 @@ snapshots: - tsx - yaml - '@vitejs/plugin-react@4.5.2(vite@6.4.1(@types/node@22.19.15)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0))': + '@vitejs/plugin-react@4.5.2(vite@6.4.1(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0))': + dependencies: + '@babel/core': 7.27.7 + '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.27.7) + '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.27.7) + '@rolldown/pluginutils': 1.0.0-beta.11 + '@types/babel__core': 7.20.5 + react-refresh: 0.17.0 + vite: 6.4.1(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) + transitivePeerDependencies: + - supports-color + + '@vitejs/plugin-react@4.5.2(vite@6.4.1(@types/node@22.19.18)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0))': dependencies: '@babel/core': 7.27.7 '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.27.7) @@ -12279,16 +13317,16 @@ snapshots: '@rolldown/pluginutils': 1.0.0-beta.11 '@types/babel__core': 7.20.5 react-refresh: 0.17.0 - vite: 6.4.1(@types/node@22.19.15)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) + vite: 6.4.1(@types/node@22.19.18)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) transitivePeerDependencies: - supports-color - '@vitejs/plugin-react@6.0.1(vite@8.0.0(@types/node@22.19.15)(esbuild@0.27.4)(jiti@2.4.2)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0))': + '@vitejs/plugin-react@6.0.1(vite@8.0.2(@types/node@22.14.0)(esbuild@0.27.4)(jiti@2.4.2)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0))': dependencies: '@rolldown/pluginutils': 1.0.0-rc.7 - vite: 8.0.0(@types/node@22.19.15)(esbuild@0.27.4)(jiti@2.4.2)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) + vite: 8.0.2(@types/node@22.14.0)(esbuild@0.27.4)(jiti@2.4.2)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) - '@vitejs/plugin-rsc@0.5.21(react-dom@19.2.3(react@19.2.3))(react-server-dom-webpack@19.2.3(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(webpack@5.103.0(esbuild@0.27.4)))(react@19.2.3)(vite@8.0.0(@types/node@22.19.15)(esbuild@0.27.4)(jiti@2.4.2)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0))': + '@vitejs/plugin-rsc@0.5.21(react-dom@19.2.3(react@19.2.3))(react-server-dom-webpack@19.2.3(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(webpack@5.103.0(esbuild@0.27.4)))(react@19.2.3)(vite@6.4.1(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0))': dependencies: '@rolldown/pluginutils': 1.0.0-rc.5 es-module-lexer: 2.0.0 @@ -12297,15 +13335,15 @@ snapshots: periscopic: 4.0.2 react: 19.2.3 react-dom: 19.2.3(react@19.2.3) - srvx: 0.11.12 + srvx: 0.11.13 strip-literal: 3.1.0 turbo-stream: 3.1.0 - vite: 8.0.0(@types/node@22.19.15)(esbuild@0.27.4)(jiti@2.4.2)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) - vitefu: 1.1.2(vite@8.0.0(@types/node@22.19.15)(esbuild@0.27.4)(jiti@2.4.2)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)) + vite: 6.4.1(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) + vitefu: 1.1.2(vite@6.4.1(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)) optionalDependencies: react-server-dom-webpack: 19.2.3(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(webpack@5.103.0(esbuild@0.27.4)) - '@vitejs/plugin-rsc@0.5.21(react-dom@19.2.3(react@19.2.3))(react-server-dom-webpack@19.2.3(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(webpack@5.103.0))(react@19.2.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0))': + '@vitejs/plugin-rsc@0.5.21(react-dom@19.2.3(react@19.2.3))(react-server-dom-webpack@19.2.3(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(webpack@5.103.0(esbuild@0.27.4)))(react@19.2.3)(vite@7.3.1(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0))': dependencies: '@rolldown/pluginutils': 1.0.0-rc.5 es-module-lexer: 2.0.0 @@ -12314,15 +13352,15 @@ snapshots: periscopic: 4.0.2 react: 19.2.3 react-dom: 19.2.3(react@19.2.3) - srvx: 0.11.12 + srvx: 0.11.13 strip-literal: 3.1.0 turbo-stream: 3.1.0 - vite: 6.4.1(@types/node@22.19.15)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) - vitefu: 1.1.2(vite@6.4.1(@types/node@22.19.15)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)) + vite: 7.3.1(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) + vitefu: 1.1.2(vite@7.3.1(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)) optionalDependencies: - react-server-dom-webpack: 19.2.3(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(webpack@5.103.0) + react-server-dom-webpack: 19.2.3(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(webpack@5.103.0(esbuild@0.27.4)) - '@vitejs/plugin-rsc@0.5.21(react-dom@19.2.3(react@19.2.3))(react-server-dom-webpack@19.2.3(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(webpack@5.103.0))(react@19.2.3)(vite@7.3.1(@types/node@22.19.15)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0))': + '@vitejs/plugin-rsc@0.5.21(react-dom@19.2.3(react@19.2.3))(react-server-dom-webpack@19.2.3(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(webpack@5.103.0(esbuild@0.27.4)))(react@19.2.3)(vite@8.0.2(@types/node@22.14.0)(esbuild@0.27.4)(jiti@2.4.2)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0))': dependencies: '@rolldown/pluginutils': 1.0.0-rc.5 es-module-lexer: 2.0.0 @@ -12331,15 +13369,15 @@ snapshots: periscopic: 4.0.2 react: 19.2.3 react-dom: 19.2.3(react@19.2.3) - srvx: 0.11.12 + srvx: 0.11.13 strip-literal: 3.1.0 turbo-stream: 3.1.0 - vite: 7.3.1(@types/node@22.19.15)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) - vitefu: 1.1.2(vite@7.3.1(@types/node@22.19.15)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)) + vite: 8.0.2(@types/node@22.14.0)(esbuild@0.27.4)(jiti@2.4.2)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) + vitefu: 1.1.2(vite@8.0.2(@types/node@22.14.0)(esbuild@0.27.4)(jiti@2.4.2)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)) optionalDependencies: - react-server-dom-webpack: 19.2.3(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(webpack@5.103.0) + react-server-dom-webpack: 19.2.3(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(webpack@5.103.0(esbuild@0.27.4)) - '@vitejs/plugin-rsc@0.5.21(react-dom@19.3.0-canary-d763f313-20251210(react@19.3.0-canary-d763f313-20251210))(react-server-dom-webpack@19.2.3(react-dom@19.3.0-canary-d763f313-20251210(react@19.3.0-canary-d763f313-20251210))(react@19.3.0-canary-d763f313-20251210)(webpack@5.103.0(@swc/core@1.11.24)(esbuild@0.27.4)))(react@19.3.0-canary-d763f313-20251210)(vite@6.4.1(@types/node@20.19.37)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0))': + '@vitejs/plugin-rsc@0.5.21(react-dom@19.3.0-canary-d763f313-20251210(react@19.3.0-canary-d763f313-20251210))(react-server-dom-webpack@19.2.3(react-dom@19.3.0-canary-d763f313-20251210(react@19.3.0-canary-d763f313-20251210))(react@19.3.0-canary-d763f313-20251210)(webpack@5.103.0(@swc/core@1.11.24)(esbuild@0.27.4)))(react@19.3.0-canary-d763f313-20251210)(vite@6.4.1(@types/node@20.11.30)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0))': dependencies: '@rolldown/pluginutils': 1.0.0-rc.5 es-module-lexer: 2.0.0 @@ -12348,58 +13386,56 @@ snapshots: periscopic: 4.0.2 react: 19.3.0-canary-d763f313-20251210 react-dom: 19.3.0-canary-d763f313-20251210(react@19.3.0-canary-d763f313-20251210) - srvx: 0.11.12 + srvx: 0.11.13 strip-literal: 3.1.0 turbo-stream: 3.1.0 - vite: 6.4.1(@types/node@20.19.37)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) - vitefu: 1.1.2(vite@6.4.1(@types/node@20.19.37)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)) + vite: 6.4.1(@types/node@20.11.30)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) + vitefu: 1.1.2(vite@6.4.1(@types/node@20.11.30)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)) optionalDependencies: react-server-dom-webpack: 19.2.3(react-dom@19.3.0-canary-d763f313-20251210(react@19.3.0-canary-d763f313-20251210))(react@19.3.0-canary-d763f313-20251210)(webpack@5.103.0(@swc/core@1.11.24)(esbuild@0.27.4)) - '@vitest/expect@4.1.0': + '@vitest/expect@4.1.1': dependencies: '@standard-schema/spec': 1.1.0 '@types/chai': 5.2.3 - '@vitest/spy': 4.1.0 - '@vitest/utils': 4.1.0 + '@vitest/spy': 4.1.1 + '@vitest/utils': 4.1.1 chai: 6.2.2 tinyrainbow: 3.1.0 - '@vitest/mocker@4.1.0(msw@2.7.5(@types/node@22.19.15)(typescript@5.4.5))(vite@6.4.1(@types/node@22.19.15)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0))': + '@vitest/mocker@4.1.1(msw@2.7.5(@types/node@20.19.37)(typescript@5.4.5))(vite@6.4.1(@types/node@20.19.37)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0))': dependencies: - '@vitest/spy': 4.1.0 + '@vitest/spy': 4.1.1 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - msw: 2.7.5(@types/node@22.19.15)(typescript@5.4.5) - vite: 6.4.1(@types/node@22.19.15)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) + msw: 2.7.5(@types/node@20.19.37)(typescript@5.4.5) + vite: 6.4.1(@types/node@20.19.37)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) - '@vitest/pretty-format@4.1.0': + '@vitest/pretty-format@4.1.1': dependencies: tinyrainbow: 3.1.0 - '@vitest/runner@4.1.0': + '@vitest/runner@4.1.1': dependencies: - '@vitest/utils': 4.1.0 + '@vitest/utils': 4.1.1 pathe: 2.0.3 - '@vitest/snapshot@4.1.0': + '@vitest/snapshot@4.1.1': dependencies: - '@vitest/pretty-format': 4.1.0 - '@vitest/utils': 4.1.0 + '@vitest/pretty-format': 4.1.1 + '@vitest/utils': 4.1.1 magic-string: 0.30.21 pathe: 2.0.3 - '@vitest/spy@4.1.0': {} + '@vitest/spy@4.1.1': {} - '@vitest/utils@4.1.0': + '@vitest/utils@4.1.1': dependencies: - '@vitest/pretty-format': 4.1.0 + '@vitest/pretty-format': 4.1.1 convert-source-map: 2.0.0 tinyrainbow: 3.1.0 - '@web3-storage/multipart-parser@1.0.0': {} - '@webassemblyjs/ast@1.14.1': dependencies: '@webassemblyjs/helper-numbers': 1.13.2 @@ -12480,24 +13516,26 @@ snapshots: '@xtuc/long@4.2.2': {} - '@zxing/text-encoding@0.9.0': - optional: true - abab@2.0.6: {} - abort-controller@3.0.0: - dependencies: - event-target-shim: 5.0.1 - accepts@1.3.8: dependencies: mime-types: 2.1.35 negotiator: 0.6.3 + acorn-globals@7.0.1: + dependencies: + acorn: 8.15.0 + acorn-walk: 8.3.2 + acorn-import-phases@1.0.4(acorn@8.16.0): dependencies: acorn: 8.16.0 + acorn-jsx@5.3.2(acorn@8.15.0): + dependencies: + acorn: 8.15.0 + acorn-jsx@5.3.2(acorn@8.16.0): dependencies: acorn: 8.16.0 @@ -12510,17 +13548,13 @@ snapshots: acorn@8.14.0: {} + acorn@8.15.0: {} + acorn@8.16.0: {} agent-base@6.0.2: dependencies: - debug: 4.4.3 - transitivePeerDependencies: - - supports-color - - agent-base@7.1.1: - dependencies: - debug: 4.4.3 + debug: 4.4.1 transitivePeerDependencies: - supports-color @@ -12533,6 +13567,13 @@ snapshots: ajv: 8.17.1 fast-deep-equal: 3.1.3 + ajv@6.12.6: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + ajv@6.14.0: dependencies: fast-deep-equal: 3.1.3 @@ -12592,6 +13633,11 @@ snapshots: aria-query@5.3.2: {} + array-buffer-byte-length@1.0.1: + dependencies: + call-bind: 1.0.7 + is-array-buffer: 3.0.4 + array-buffer-byte-length@1.0.2: dependencies: call-bound: 1.0.4 @@ -12599,6 +13645,15 @@ snapshots: array-flatten@1.1.1: {} + array-includes@3.1.8: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-object-atoms: 1.1.1 + get-intrinsic: 1.3.0 + is-string: 1.0.7 + array-includes@3.1.9: dependencies: call-bind: 1.0.8 @@ -12614,12 +13669,12 @@ snapshots: array.prototype.findlast@1.2.5: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.23.3 es-errors: 1.3.0 es-object-atoms: 1.1.1 - es-shim-unscopables: 1.1.0 + es-shim-unscopables: 1.0.2 array.prototype.findlastindex@1.2.6: dependencies: @@ -12631,27 +13686,52 @@ snapshots: es-object-atoms: 1.1.1 es-shim-unscopables: 1.1.0 + array.prototype.flat@1.3.2: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-shim-unscopables: 1.0.2 + array.prototype.flat@1.3.3: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 es-abstract: 1.24.1 - es-shim-unscopables: 1.1.0 + es-shim-unscopables: 1.0.2 + + array.prototype.flatmap@1.3.2: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-shim-unscopables: 1.0.2 array.prototype.flatmap@1.3.3: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 es-abstract: 1.24.1 - es-shim-unscopables: 1.1.0 + es-shim-unscopables: 1.0.2 array.prototype.tosorted@1.1.4: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.23.3 es-errors: 1.3.0 - es-shim-unscopables: 1.1.0 + es-shim-unscopables: 1.0.2 + + arraybuffer.prototype.slice@1.0.3: + dependencies: + array-buffer-byte-length: 1.0.1 + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + is-array-buffer: 3.0.4 + is-shared-array-buffer: 1.0.3 arraybuffer.prototype.slice@1.0.4: dependencies: @@ -12673,10 +13753,6 @@ snapshots: ast-types-flow@0.0.8: {} - ast-types@0.13.4: - dependencies: - tslib: 2.8.1 - astring@1.8.6: {} asynckit@0.4.0: {} @@ -12706,13 +13782,13 @@ snapshots: transitivePeerDependencies: - supports-color - babel-jest@29.7.0(@babel/core@7.27.7): + babel-jest@30.3.0(@babel/core@7.27.7): dependencies: '@babel/core': 7.27.7 - '@jest/transform': 29.7.0 + '@jest/transform': 30.3.0 '@types/babel__core': 7.20.5 - babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 29.6.3(@babel/core@7.27.7) + babel-plugin-istanbul: 7.0.1 + babel-preset-jest: 30.3.0(@babel/core@7.27.7) chalk: 4.1.2 graceful-fs: 4.2.11 slash: 3.0.0 @@ -12723,22 +13799,19 @@ snapshots: dependencies: '@babel/core': 7.27.7 - babel-plugin-istanbul@6.1.1: + babel-plugin-istanbul@7.0.1: dependencies: '@babel/helper-plugin-utils': 7.27.1 '@istanbuljs/load-nyc-config': 1.1.0 '@istanbuljs/schema': 0.1.3 - istanbul-lib-instrument: 5.2.1 + istanbul-lib-instrument: 6.0.2 test-exclude: 6.0.0 transitivePeerDependencies: - supports-color - babel-plugin-jest-hoist@29.6.3: + babel-plugin-jest-hoist@30.3.0: dependencies: - '@babel/template': 7.27.2 - '@babel/types': 7.27.7 '@types/babel__core': 7.20.5 - '@types/babel__traverse': 7.20.7 babel-plugin-macros@3.1.0: dependencies: @@ -12796,12 +13869,14 @@ snapshots: babel-plugin-transform-react-remove-prop-types@0.4.24: {} - babel-preset-current-node-syntax@1.0.1(@babel/core@7.27.7): + babel-preset-current-node-syntax@1.2.0(@babel/core@7.27.7): dependencies: '@babel/core': 7.27.7 '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.27.7) '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.27.7) '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.27.7) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.27.7) + '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.27.7) '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.27.7) '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.27.7) '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.27.7) @@ -12810,13 +13885,14 @@ snapshots: '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.27.7) '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.27.7) '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.27.7) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.27.7) '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.27.7) - babel-preset-jest@29.6.3(@babel/core@7.27.7): + babel-preset-jest@30.3.0(@babel/core@7.27.7): dependencies: '@babel/core': 7.27.7 - babel-plugin-jest-hoist: 29.6.3 - babel-preset-current-node-syntax: 1.0.1(@babel/core@7.27.7) + babel-plugin-jest-hoist: 30.3.0 + babel-preset-current-node-syntax: 1.2.0(@babel/core@7.27.7) babel-preset-react-app@10.0.1: dependencies: @@ -12856,7 +13932,9 @@ snapshots: dependencies: safe-buffer: 5.1.2 - basic-ftp@5.0.5: {} + bidi-js@1.0.3: + dependencies: + require-from-string: 2.0.2 binary-extensions@2.3.0: {} @@ -12900,7 +13978,7 @@ snapshots: dependencies: balanced-match: 3.0.1 - brace-expansion@5.0.4: + brace-expansion@5.0.5: dependencies: balanced-match: 4.0.4 @@ -12945,6 +14023,14 @@ snapshots: es-errors: 1.3.0 function-bind: 1.1.2 + call-bind@1.0.7: + dependencies: + es-define-property: 1.0.1 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.3.0 + set-function-length: 1.2.2 + call-bind@1.0.8: dependencies: call-bind-apply-helpers: 1.0.2 @@ -13034,7 +14120,9 @@ snapshots: ci-info@3.8.0: {} - cjs-module-lexer@1.2.2: {} + ci-info@4.4.0: {} + + cjs-module-lexer@2.2.0: {} cli-cursor@4.0.0: dependencies: @@ -13058,7 +14146,7 @@ snapshots: collapse-white-space@2.1.0: {} - collect-v8-coverage@1.0.1: {} + collect-v8-coverage@1.0.3: {} color-convert@2.0.1: dependencies: @@ -13066,6 +14154,16 @@ snapshots: color-name@1.1.4: {} + color-string@1.9.1: + dependencies: + color-name: 1.1.4 + simple-swizzle: 0.2.2 + + color@4.2.3: + dependencies: + color-convert: 2.0.1 + color-string: 1.9.1 + combined-stream@1.0.8: dependencies: delayed-stream: 1.0.0 @@ -13128,7 +14226,7 @@ snapshots: cookie@0.7.2: {} - cookie@1.1.1: {} + cookie@1.0.1: {} cookiejar@2.1.4: {} @@ -13146,21 +14244,6 @@ snapshots: path-type: 4.0.0 yaml: 1.10.2 - create-jest@29.7.0(@types/node@22.19.15)(babel-plugin-macros@3.1.0): - dependencies: - '@jest/types': 29.6.3 - chalk: 4.1.2 - exit: 0.1.2 - graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@22.19.15)(babel-plugin-macros@3.1.0) - jest-util: 29.7.0 - prompts: 2.4.2 - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - cross-env@7.0.3: dependencies: cross-spawn: 7.0.6 @@ -13185,15 +14268,26 @@ snapshots: domutils: 3.1.0 nth-check: 2.1.1 + css-tree@3.2.1: + dependencies: + mdn-data: 2.27.1 + source-map-js: 1.2.1 + css-what@6.1.0: {} css.escape@1.5.1: {} cssesc@3.0.0: {} - cssstyle@3.0.0: + cssom@0.3.8: {} + + cssom@0.5.0: {} + + cssstyle@2.3.0: dependencies: - rrweb-cssom: 0.6.0 + cssom: 0.3.8 + + csstype@3.1.1: {} csstype@3.2.3: {} @@ -13201,15 +14295,24 @@ snapshots: data-uri-to-buffer@2.0.2: {} - data-uri-to-buffer@3.0.1: {} - - data-uri-to-buffer@6.0.2: {} - - data-urls@4.0.0: + data-urls@3.0.2: dependencies: abab: 2.0.6 whatwg-mimetype: 3.0.0 - whatwg-url: 12.0.1 + whatwg-url: 11.0.0 + + data-urls@7.0.0: + dependencies: + whatwg-mimetype: 5.0.0 + whatwg-url: 16.0.1 + transitivePeerDependencies: + - '@noble/hashes' + + data-view-buffer@1.0.1: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 data-view-buffer@1.0.2: dependencies: @@ -13217,18 +14320,32 @@ snapshots: es-errors: 1.3.0 is-data-view: 1.0.2 + data-view-byte-length@1.0.1: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 + data-view-byte-length@1.0.2: dependencies: call-bound: 1.0.4 es-errors: 1.3.0 is-data-view: 1.0.2 + data-view-byte-offset@1.0.0: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 + data-view-byte-offset@1.0.1: dependencies: call-bound: 1.0.4 es-errors: 1.3.0 is-data-view: 1.0.2 + dataloader@1.4.0: {} + debug@2.6.9: dependencies: ms: 2.0.0 @@ -13237,12 +14354,18 @@ snapshots: dependencies: ms: 2.1.3 + debug@4.4.1: + dependencies: + ms: 2.1.3 + debug@4.4.3: dependencies: ms: 2.1.3 decimal.js@10.4.3: {} + decimal.js@10.6.0: {} + decode-named-character-reference@1.0.2: dependencies: character-entities: 2.0.2 @@ -13253,6 +14376,10 @@ snapshots: optionalDependencies: babel-plugin-macros: 3.1.0 + dedent@1.7.2(babel-plugin-macros@3.1.0): + optionalDependencies: + babel-plugin-macros: 3.1.0 + deep-is@0.1.4: {} deep-object-diff@1.1.9: {} @@ -13271,11 +14398,7 @@ snapshots: has-property-descriptors: 1.0.2 object-keys: 1.1.1 - degenerator@5.0.1: - dependencies: - ast-types: 0.13.4 - escodegen: 2.1.0 - esprima: 4.0.1 + defu@6.1.4: {} delayed-stream@1.0.0: {} @@ -13289,7 +14412,7 @@ snapshots: detect-indent@6.1.0: {} - detect-libc@2.1.2: {} + detect-libc@2.0.3: {} detect-newline@3.1.0: {} @@ -13401,11 +14524,60 @@ snapshots: entities@4.5.0: {} + entities@6.0.1: {} + error-ex@1.3.2: dependencies: is-arrayish: 0.2.1 - error-stack-parser-es@1.0.5: {} + es-abstract@1.23.3: + dependencies: + array-buffer-byte-length: 1.0.1 + arraybuffer.prototype.slice: 1.0.3 + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 + data-view-buffer: 1.0.1 + data-view-byte-length: 1.0.1 + data-view-byte-offset: 1.0.0 + es-define-property: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + es-set-tostringtag: 2.0.3 + es-to-primitive: 1.2.1 + function.prototype.name: 1.1.6 + get-intrinsic: 1.3.0 + get-symbol-description: 1.0.2 + globalthis: 1.0.3 + gopd: 1.2.0 + has-property-descriptors: 1.0.2 + has-proto: 1.0.3 + has-symbols: 1.1.0 + hasown: 2.0.2 + internal-slot: 1.0.7 + is-array-buffer: 3.0.4 + is-callable: 1.2.7 + is-data-view: 1.0.1 + is-negative-zero: 2.0.3 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.3 + is-string: 1.0.7 + is-typed-array: 1.1.13 + is-weakref: 1.0.2 + object-inspect: 1.13.4 + object-keys: 1.1.1 + object.assign: 4.1.5 + regexp.prototype.flags: 1.5.2 + safe-array-concat: 1.1.2 + safe-regex-test: 1.0.3 + string.prototype.trim: 1.2.9 + string.prototype.trimend: 1.0.8 + string.prototype.trimstart: 1.0.8 + typed-array-buffer: 1.0.2 + typed-array-byte-length: 1.0.1 + typed-array-byte-offset: 1.0.2 + typed-array-length: 1.0.6 + unbox-primitive: 1.0.2 + which-typed-array: 1.1.15 es-abstract@1.24.1: dependencies: @@ -13496,6 +14668,12 @@ snapshots: dependencies: es-errors: 1.3.0 + es-set-tostringtag@2.0.3: + dependencies: + get-intrinsic: 1.3.0 + has-tostringtag: 1.0.2 + hasown: 2.0.2 + es-set-tostringtag@2.1.0: dependencies: es-errors: 1.3.0 @@ -13503,26 +14681,36 @@ snapshots: has-tostringtag: 1.0.2 hasown: 2.0.2 + es-shim-unscopables@1.0.2: + dependencies: + hasown: 2.0.2 + es-shim-unscopables@1.1.0: dependencies: hasown: 2.0.2 + es-to-primitive@1.2.1: + dependencies: + is-callable: 1.2.7 + is-date-object: 1.0.5 + is-symbol: 1.0.4 + es-to-primitive@1.3.0: dependencies: is-callable: 1.2.7 - is-date-object: 1.1.0 - is-symbol: 1.1.1 + is-date-object: 1.0.5 + is-symbol: 1.0.4 esbuild-register@3.6.0(esbuild@0.25.0): dependencies: - debug: 4.4.3 + debug: 4.4.1 esbuild: 0.25.0 transitivePeerDependencies: - supports-color esbuild-register@3.6.0(esbuild@0.27.4): dependencies: - debug: 4.4.3 + debug: 4.4.1 esbuild: 0.27.4 transitivePeerDependencies: - supports-color @@ -13581,34 +14769,33 @@ snapshots: '@esbuild/win32-ia32': 0.25.0 '@esbuild/win32-x64': 0.25.0 - esbuild@0.27.3: + esbuild@0.25.4: optionalDependencies: - '@esbuild/aix-ppc64': 0.27.3 - '@esbuild/android-arm': 0.27.3 - '@esbuild/android-arm64': 0.27.3 - '@esbuild/android-x64': 0.27.3 - '@esbuild/darwin-arm64': 0.27.3 - '@esbuild/darwin-x64': 0.27.3 - '@esbuild/freebsd-arm64': 0.27.3 - '@esbuild/freebsd-x64': 0.27.3 - '@esbuild/linux-arm': 0.27.3 - '@esbuild/linux-arm64': 0.27.3 - '@esbuild/linux-ia32': 0.27.3 - '@esbuild/linux-loong64': 0.27.3 - '@esbuild/linux-mips64el': 0.27.3 - '@esbuild/linux-ppc64': 0.27.3 - '@esbuild/linux-riscv64': 0.27.3 - '@esbuild/linux-s390x': 0.27.3 - '@esbuild/linux-x64': 0.27.3 - '@esbuild/netbsd-arm64': 0.27.3 - '@esbuild/netbsd-x64': 0.27.3 - '@esbuild/openbsd-arm64': 0.27.3 - '@esbuild/openbsd-x64': 0.27.3 - '@esbuild/openharmony-arm64': 0.27.3 - '@esbuild/sunos-x64': 0.27.3 - '@esbuild/win32-arm64': 0.27.3 - '@esbuild/win32-ia32': 0.27.3 - '@esbuild/win32-x64': 0.27.3 + '@esbuild/aix-ppc64': 0.25.4 + '@esbuild/android-arm': 0.25.4 + '@esbuild/android-arm64': 0.25.4 + '@esbuild/android-x64': 0.25.4 + '@esbuild/darwin-arm64': 0.25.4 + '@esbuild/darwin-x64': 0.25.4 + '@esbuild/freebsd-arm64': 0.25.4 + '@esbuild/freebsd-x64': 0.25.4 + '@esbuild/linux-arm': 0.25.4 + '@esbuild/linux-arm64': 0.25.4 + '@esbuild/linux-ia32': 0.25.4 + '@esbuild/linux-loong64': 0.25.4 + '@esbuild/linux-mips64el': 0.25.4 + '@esbuild/linux-ppc64': 0.25.4 + '@esbuild/linux-riscv64': 0.25.4 + '@esbuild/linux-s390x': 0.25.4 + '@esbuild/linux-x64': 0.25.4 + '@esbuild/netbsd-arm64': 0.25.4 + '@esbuild/netbsd-x64': 0.25.4 + '@esbuild/openbsd-arm64': 0.25.4 + '@esbuild/openbsd-x64': 0.25.4 + '@esbuild/sunos-x64': 0.25.4 + '@esbuild/win32-arm64': 0.25.4 + '@esbuild/win32-ia32': 0.25.4 + '@esbuild/win32-x64': 0.25.4 esbuild@0.27.4: optionalDependencies: @@ -13657,7 +14844,7 @@ snapshots: optionalDependencies: source-map: 0.6.1 - eslint-config-react-app@7.0.1(@babel/plugin-syntax-flow@7.18.6(@babel/core@7.27.7))(@babel/plugin-transform-react-jsx@7.27.1(@babel/core@7.27.7))(eslint@10.1.0(jiti@2.4.2))(jest@29.7.0(@types/node@22.19.15)(babel-plugin-macros@3.1.0))(typescript@5.4.5): + eslint-config-react-app@7.0.1(@babel/plugin-syntax-flow@7.18.6(@babel/core@7.27.7))(@babel/plugin-transform-react-jsx@7.27.1(@babel/core@7.27.7))(eslint@10.1.0(jiti@2.4.2))(jest@30.3.0(@types/node@20.19.37)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.4)))(typescript@5.4.5): dependencies: '@babel/core': 7.27.7 '@babel/eslint-parser': 7.24.1(@babel/core@7.27.7)(eslint@10.1.0(jiti@2.4.2)) @@ -13669,7 +14856,7 @@ snapshots: eslint: 10.1.0(jiti@2.4.2) eslint-plugin-flowtype: 8.0.3(@babel/plugin-syntax-flow@7.18.6(@babel/core@7.27.7))(@babel/plugin-transform-react-jsx@7.27.1(@babel/core@7.27.7))(eslint@10.1.0(jiti@2.4.2)) eslint-plugin-import: 2.32.0(@typescript-eslint/parser@5.62.0(eslint@10.1.0(jiti@2.4.2))(typescript@5.4.5))(eslint@10.1.0(jiti@2.4.2)) - eslint-plugin-jest: 25.7.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@10.1.0(jiti@2.4.2))(typescript@5.4.5))(eslint@10.1.0(jiti@2.4.2))(typescript@5.4.5))(eslint@10.1.0(jiti@2.4.2))(jest@29.7.0(@types/node@22.19.15)(babel-plugin-macros@3.1.0))(typescript@5.4.5) + eslint-plugin-jest: 25.7.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@10.1.0(jiti@2.4.2))(typescript@5.4.5))(eslint@10.1.0(jiti@2.4.2))(typescript@5.4.5))(eslint@10.1.0(jiti@2.4.2))(jest@30.3.0(@types/node@20.19.37)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.4)))(typescript@5.4.5) eslint-plugin-jsx-a11y: 6.10.2(eslint@10.1.0(jiti@2.4.2)) eslint-plugin-react: 7.37.5(eslint@10.1.0(jiti@2.4.2)) eslint-plugin-react-hooks: 4.6.2(eslint@10.1.0(jiti@2.4.2)) @@ -13702,11 +14889,11 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.1(@typescript-eslint/parser@8.57.1(eslint@10.1.0(jiti@2.4.2))(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint@10.1.0(jiti@2.4.2)): + eslint-module-utils@2.12.1(@typescript-eslint/parser@8.57.2(eslint@10.1.0(jiti@2.4.2))(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint@10.1.0(jiti@2.4.2)): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 8.57.1(eslint@10.1.0(jiti@2.4.2))(typescript@5.4.5) + '@typescript-eslint/parser': 8.57.2(eslint@10.1.0(jiti@2.4.2))(typescript@5.4.5) eslint: 10.1.0(jiti@2.4.2) eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: @@ -13749,7 +14936,7 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.57.1(eslint@10.1.0(jiti@2.4.2))(typescript@5.4.5))(eslint@10.1.0(jiti@2.4.2)): + eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.57.2(eslint@10.1.0(jiti@2.4.2))(typescript@5.4.5))(eslint@10.1.0(jiti@2.4.2)): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.9 @@ -13760,7 +14947,7 @@ snapshots: doctrine: 2.1.0 eslint: 10.1.0(jiti@2.4.2) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.57.1(eslint@10.1.0(jiti@2.4.2))(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint@10.1.0(jiti@2.4.2)) + eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.57.2(eslint@10.1.0(jiti@2.4.2))(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint@10.1.0(jiti@2.4.2)) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -13772,35 +14959,35 @@ snapshots: string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.57.1(eslint@10.1.0(jiti@2.4.2))(typescript@5.4.5) + '@typescript-eslint/parser': 8.57.2(eslint@10.1.0(jiti@2.4.2))(typescript@5.4.5) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-jest@25.7.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@10.1.0(jiti@2.4.2))(typescript@5.4.5))(eslint@10.1.0(jiti@2.4.2))(typescript@5.4.5))(eslint@10.1.0(jiti@2.4.2))(jest@29.7.0(@types/node@22.19.15)(babel-plugin-macros@3.1.0))(typescript@5.4.5): + eslint-plugin-jest@25.7.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@10.1.0(jiti@2.4.2))(typescript@5.4.5))(eslint@10.1.0(jiti@2.4.2))(typescript@5.4.5))(eslint@10.1.0(jiti@2.4.2))(jest@30.3.0(@types/node@20.19.37)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.4)))(typescript@5.4.5): dependencies: '@typescript-eslint/experimental-utils': 5.62.0(eslint@10.1.0(jiti@2.4.2))(typescript@5.4.5) eslint: 10.1.0(jiti@2.4.2) optionalDependencies: '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0(eslint@10.1.0(jiti@2.4.2))(typescript@5.4.5))(eslint@10.1.0(jiti@2.4.2))(typescript@5.4.5) - jest: 29.7.0(@types/node@22.19.15)(babel-plugin-macros@3.1.0) + jest: 30.3.0(@types/node@20.19.37)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.4)) transitivePeerDependencies: - supports-color - typescript - eslint-plugin-jest@29.15.0(@typescript-eslint/eslint-plugin@8.57.1(@typescript-eslint/parser@8.57.1(eslint@10.1.0(jiti@2.4.2))(typescript@5.4.5))(eslint@10.1.0(jiti@2.4.2))(typescript@5.4.5))(eslint@10.1.0(jiti@2.4.2))(jest@29.7.0(@types/node@22.19.15)(babel-plugin-macros@3.1.0))(typescript@5.4.5): + eslint-plugin-jest@29.15.1(@typescript-eslint/eslint-plugin@8.57.2(@typescript-eslint/parser@8.57.2(eslint@10.1.0(jiti@2.4.2))(typescript@5.4.5))(eslint@10.1.0(jiti@2.4.2))(typescript@5.4.5))(eslint@10.1.0(jiti@2.4.2))(jest@30.3.0(@types/node@20.19.37)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.4)))(typescript@5.4.5): dependencies: - '@typescript-eslint/utils': 8.57.1(eslint@10.1.0(jiti@2.4.2))(typescript@5.4.5) + '@typescript-eslint/utils': 8.57.2(eslint@10.1.0(jiti@2.4.2))(typescript@5.4.5) eslint: 10.1.0(jiti@2.4.2) optionalDependencies: - '@typescript-eslint/eslint-plugin': 8.57.1(@typescript-eslint/parser@8.57.1(eslint@10.1.0(jiti@2.4.2))(typescript@5.4.5))(eslint@10.1.0(jiti@2.4.2))(typescript@5.4.5) - jest: 29.7.0(@types/node@22.19.15)(babel-plugin-macros@3.1.0) + '@typescript-eslint/eslint-plugin': 8.57.2(@typescript-eslint/parser@8.57.2(eslint@10.1.0(jiti@2.4.2))(typescript@5.4.5))(eslint@10.1.0(jiti@2.4.2))(typescript@5.4.5) + jest: 30.3.0(@types/node@20.19.37)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.4)) typescript: 5.4.5 transitivePeerDependencies: - supports-color - eslint-plugin-jsdoc@62.8.0(eslint@10.1.0(jiti@2.4.2)): + eslint-plugin-jsdoc@62.8.1(eslint@10.1.0(jiti@2.4.2)): dependencies: '@es-joy/jsdoccomment': 0.84.0 '@es-joy/resolve.exports': 1.2.0 @@ -13823,8 +15010,8 @@ snapshots: eslint-plugin-jsx-a11y@6.10.2(eslint@10.1.0(jiti@2.4.2)): dependencies: aria-query: 5.3.2 - array-includes: 3.1.9 - array.prototype.flatmap: 1.3.3 + array-includes: 3.1.8 + array.prototype.flatmap: 1.3.2 ast-types-flow: 0.0.8 axe-core: 4.11.1 axobject-query: 4.1.0 @@ -13836,14 +15023,14 @@ snapshots: language-tags: 1.0.9 minimatch: 3.1.2 object.fromentries: 2.0.8 - safe-regex-test: 1.1.0 + safe-regex-test: 1.0.3 string.prototype.includes: 2.0.1 eslint-plugin-react-hooks@4.6.2(eslint@10.1.0(jiti@2.4.2)): dependencies: eslint: 10.1.0(jiti@2.4.2) - eslint-plugin-react-hooks@7.1.1-canary-d1727fbf-20260417(eslint@10.1.0(jiti@2.4.2)): + eslint-plugin-react-hooks@7.1.1-canary-d5736f09-20260507(eslint@10.1.0(jiti@2.4.2)): dependencies: '@babel/core': 7.27.7 '@babel/parser': 7.27.7 @@ -13856,7 +15043,7 @@ snapshots: eslint-plugin-react@7.37.5(eslint@10.1.0(jiti@2.4.2)): dependencies: - array-includes: 3.1.9 + array-includes: 3.1.8 array.prototype.findlast: 1.2.5 array.prototype.flatmap: 1.3.3 array.prototype.tosorted: 1.1.4 @@ -13921,7 +15108,7 @@ snapshots: '@types/estree': 1.0.8 ajv: 6.14.0 cross-spawn: 7.0.6 - debug: 4.4.3 + debug: 4.4.1 escape-string-regexp: 4.0.0 eslint-scope: 9.1.2 eslint-visitor-keys: 5.0.1 @@ -13946,24 +15133,24 @@ snapshots: eslint@8.57.0: dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@8.57.0) - '@eslint-community/regexpp': 4.12.2 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@eslint-community/regexpp': 4.10.0 '@eslint/eslintrc': 2.1.4 '@eslint/js': 8.57.0 '@humanwhocodes/config-array': 0.11.14 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 '@ungap/structured-clone': 1.2.0 - ajv: 6.14.0 + ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.6 - debug: 4.4.3 + debug: 4.4.1 doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.2.2 eslint-visitor-keys: 3.4.3 espree: 9.6.1 - esquery: 1.7.0 + esquery: 1.6.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 file-entry-cache: 6.0.1 @@ -13995,12 +15182,16 @@ snapshots: espree@9.6.1: dependencies: - acorn: 8.16.0 - acorn-jsx: 5.3.2(acorn@8.16.0) + acorn: 8.15.0 + acorn-jsx: 5.3.2(acorn@8.15.0) eslint-visitor-keys: 3.4.3 esprima@4.0.1: {} + esquery@1.6.0: + dependencies: + estraverse: 5.3.0 + esquery@1.7.0: dependencies: estraverse: 5.3.0 @@ -14058,11 +15249,9 @@ snapshots: eval@0.1.8: dependencies: - '@types/node': 22.19.15 + '@types/node': 22.19.18 require-like: 0.1.2 - event-target-shim@5.0.1: {} - events@3.3.0: {} execa@5.1.1: @@ -14094,7 +15283,7 @@ snapshots: exit-hook@2.2.1: {} - exit@0.1.2: {} + exit-x@0.2.2: {} expect-type@1.3.0: {} @@ -14106,6 +15295,15 @@ snapshots: jest-message-util: 29.7.0 jest-util: 29.7.0 + expect@30.3.0: + dependencies: + '@jest/expect-utils': 30.3.0 + '@jest/get-type': 30.1.0 + jest-matcher-utils: 30.3.0 + jest-message-util: 30.3.0 + jest-mock: 30.3.0 + jest-util: 30.3.0 + express@4.21.2: dependencies: accepts: 1.3.8 @@ -14146,6 +15344,8 @@ snapshots: extend@3.0.2: {} + extendable-error@0.1.7: {} + fast-content-type-parse@2.0.1: {} fast-deep-equal@3.1.3: {} @@ -14178,9 +15378,13 @@ snapshots: dependencies: bser: 2.1.1 - fdir@6.5.0(picomatch@4.0.3): + fdir@6.4.6(picomatch@4.0.2): + optionalDependencies: + picomatch: 4.0.2 + + fdir@6.5.0(picomatch@4.0.4): optionalDependencies: - picomatch: 4.0.3 + picomatch: 4.0.4 figures@6.1.0: dependencies: @@ -14228,7 +15432,7 @@ snapshots: flat-cache@3.0.4: dependencies: - flatted: 3.4.2 + flatted: 3.2.7 rimraf: 3.0.2 flat-cache@4.0.1: @@ -14236,10 +15440,16 @@ snapshots: flatted: 3.4.2 keyv: 4.5.4 + flatted@3.2.7: {} + flatted@3.4.2: {} follow-redirects@1.15.6: {} + for-each@0.3.3: + dependencies: + is-callable: 1.2.7 + for-each@0.3.5: dependencies: is-callable: 1.2.7 @@ -14270,12 +15480,6 @@ snapshots: fs-constants@1.0.0: {} - fs-extra@11.2.0: - dependencies: - graceful-fs: 4.2.11 - jsonfile: 6.1.0 - universalify: 2.0.0 - fs-extra@8.1.0: dependencies: graceful-fs: 4.2.11 @@ -14292,6 +15496,13 @@ snapshots: function-bind@1.1.2: {} + function.prototype.name@1.1.6: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + functions-have-names: 1.2.3 + function.prototype.name@1.1.8: dependencies: call-bind: 1.0.8 @@ -14324,6 +15535,8 @@ snapshots: get-port@5.1.1: {} + get-port@7.1.0: {} + get-proto@1.0.1: dependencies: dunder-proto: 1.0.1 @@ -14341,6 +15554,12 @@ snapshots: '@sec-ant/readable-stream': 0.4.1 is-stream: 4.0.1 + get-symbol-description@1.0.2: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + get-symbol-description@1.1.0: dependencies: call-bound: 1.0.4 @@ -14351,15 +15570,6 @@ snapshots: dependencies: resolve-pkg-maps: 1.0.0 - get-uri@6.0.3: - dependencies: - basic-ftp: 5.0.5 - data-uri-to-buffer: 6.0.2 - debug: 4.4.3 - fs-extra: 11.2.0 - transitivePeerDependencies: - - supports-color - git-hooks-list@1.0.3: {} glob-parent@5.1.2: @@ -14372,13 +15582,14 @@ snapshots: glob-to-regexp@0.4.1: {} - glob@10.3.10: + glob@10.5.0: dependencies: foreground-child: 3.1.1 - jackspeak: 2.3.6 + jackspeak: 3.4.3 minimatch: 9.0.5 minipass: 7.1.2 - path-scurry: 1.10.2 + package-json-from-dist: 1.0.1 + path-scurry: 1.11.1 glob@7.2.3: dependencies: @@ -14403,6 +15614,10 @@ snapshots: dependencies: type-fest: 0.20.2 + globalthis@1.0.3: + dependencies: + define-properties: 1.2.1 + globalthis@1.0.4: dependencies: define-properties: 1.2.1 @@ -14455,6 +15670,8 @@ snapshots: dependencies: es-define-property: 1.0.1 + has-proto@1.0.3: {} + has-proto@1.2.0: dependencies: dunder-proto: 1.0.1 @@ -14528,6 +15745,12 @@ snapshots: dependencies: whatwg-encoding: 2.0.0 + html-encoding-sniffer@6.0.0: + dependencies: + '@exodus/bytes': 1.15.0 + transitivePeerDependencies: + - '@noble/hashes' + html-entities@2.6.0: {} html-escaper@2.0.2: {} @@ -14551,28 +15774,14 @@ snapshots: dependencies: '@tootallnate/once': 2.0.0 agent-base: 6.0.2 - debug: 4.4.3 - transitivePeerDependencies: - - supports-color - - http-proxy-agent@7.0.2: - dependencies: - agent-base: 7.1.1 - debug: 4.4.3 + debug: 4.4.1 transitivePeerDependencies: - supports-color https-proxy-agent@5.0.1: dependencies: agent-base: 6.0.2 - debug: 4.4.3 - transitivePeerDependencies: - - supports-color - - https-proxy-agent@7.0.5: - dependencies: - agent-base: 7.1.1 - debug: 4.4.3 + debug: 4.4.1 transitivePeerDependencies: - supports-color @@ -14599,7 +15808,7 @@ snapshots: parent-module: 1.0.1 resolve-from: 4.0.0 - import-local@3.1.0: + import-local@3.2.0: dependencies: pkg-dir: 4.2.0 resolve-cwd: 3.0.0 @@ -14619,6 +15828,12 @@ snapshots: inline-style-parser@0.2.3: {} + internal-slot@1.0.7: + dependencies: + es-errors: 1.3.0 + hasown: 2.0.2 + side-channel: 1.1.0 + internal-slot@1.1.0: dependencies: es-errors: 1.3.0 @@ -14627,11 +15842,6 @@ snapshots: interpret@1.4.0: {} - ip-address@9.0.5: - dependencies: - jsbn: 1.1.0 - sprintf-js: 1.1.3 - ipaddr.js@1.9.1: {} is-alphabetical@2.0.1: {} @@ -14641,10 +15851,10 @@ snapshots: is-alphabetical: 2.0.1 is-decimal: 2.0.1 - is-arguments@1.1.1: - dependencies: - call-bind: 1.0.8 - has-tostringtag: 1.0.2 + is-array-buffer@3.0.4: + dependencies: + call-bind: 1.0.7 + get-intrinsic: 1.3.0 is-array-buffer@3.0.5: dependencies: @@ -14654,10 +15864,16 @@ snapshots: is-arrayish@0.2.1: {} + is-arrayish@0.3.2: {} + is-async-function@2.0.0: dependencies: has-tostringtag: 1.0.2 + is-bigint@1.0.4: + dependencies: + has-bigints: 1.0.2 + is-bigint@1.1.0: dependencies: has-bigints: 1.0.2 @@ -14666,6 +15882,11 @@ snapshots: dependencies: binary-extensions: 2.3.0 + is-boolean-object@1.1.2: + dependencies: + call-bind: 1.0.7 + has-tostringtag: 1.0.2 + is-boolean-object@1.2.2: dependencies: call-bound: 1.0.4 @@ -14679,12 +15900,20 @@ snapshots: dependencies: hasown: 2.0.2 + is-data-view@1.0.1: + dependencies: + is-typed-array: 1.1.13 + is-data-view@1.0.2: dependencies: call-bound: 1.0.4 get-intrinsic: 1.3.0 is-typed-array: 1.1.15 + is-date-object@1.0.5: + dependencies: + has-tostringtag: 1.0.2 + is-date-object@1.1.0: dependencies: call-bound: 1.0.4 @@ -14696,6 +15925,10 @@ snapshots: is-extglob@2.1.1: {} + is-finalizationregistry@1.0.2: + dependencies: + call-bind: 1.0.8 + is-finalizationregistry@1.1.1: dependencies: call-bound: 1.0.4 @@ -14724,6 +15957,10 @@ snapshots: is-node-process@1.2.0: {} + is-number-object@1.0.7: + dependencies: + has-tostringtag: 1.0.2 + is-number-object@1.1.1: dependencies: call-bound: 1.0.4 @@ -14747,6 +15984,11 @@ snapshots: dependencies: '@types/estree': 1.0.8 + is-regex@1.1.4: + dependencies: + call-bind: 1.0.7 + has-tostringtag: 1.0.2 + is-regex@1.2.1: dependencies: call-bound: 1.0.4 @@ -14756,6 +15998,10 @@ snapshots: is-set@2.0.3: {} + is-shared-array-buffer@1.0.3: + dependencies: + call-bind: 1.0.7 + is-shared-array-buffer@1.0.4: dependencies: call-bound: 1.0.4 @@ -14764,17 +16010,29 @@ snapshots: is-stream@4.0.1: {} + is-string@1.0.7: + dependencies: + has-tostringtag: 1.0.2 + is-string@1.1.1: dependencies: call-bound: 1.0.4 has-tostringtag: 1.0.2 + is-symbol@1.0.4: + dependencies: + has-symbols: 1.1.0 + is-symbol@1.1.1: dependencies: call-bound: 1.0.4 has-symbols: 1.1.0 safe-regex-test: 1.1.0 + is-typed-array@1.1.13: + dependencies: + which-typed-array: 1.1.15 + is-typed-array@1.1.15: dependencies: which-typed-array: 1.1.20 @@ -14783,6 +16041,10 @@ snapshots: is-weakmap@2.0.2: {} + is-weakref@1.0.2: + dependencies: + call-bind: 1.0.7 + is-weakref@1.1.1: dependencies: call-bound: 1.0.4 @@ -14806,23 +16068,13 @@ snapshots: istanbul-lib-coverage@3.2.0: {} - istanbul-lib-instrument@5.2.1: - dependencies: - '@babel/core': 7.27.7 - '@babel/parser': 7.27.7 - '@istanbuljs/schema': 0.1.3 - istanbul-lib-coverage: 3.2.0 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - istanbul-lib-instrument@6.0.2: dependencies: '@babel/core': 7.27.7 '@babel/parser': 7.27.7 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.0 - semver: 7.7.4 + semver: 7.7.2 transitivePeerDependencies: - supports-color @@ -14832,11 +16084,11 @@ snapshots: make-dir: 3.1.0 supports-color: 7.2.0 - istanbul-lib-source-maps@4.0.1: + istanbul-lib-source-maps@5.0.6: dependencies: - debug: 4.4.3 + '@jridgewell/trace-mapping': 0.3.25 + debug: 4.4.1 istanbul-lib-coverage: 3.2.0 - source-map: 0.6.1 transitivePeerDependencies: - supports-color @@ -14854,7 +16106,7 @@ snapshots: has-symbols: 1.1.0 set-function-name: 2.0.2 - jackspeak@2.3.6: + jackspeak@3.4.3: dependencies: '@isaacs/cliui': 8.0.2 optionalDependencies: @@ -14862,83 +16114,85 @@ snapshots: javascript-stringify@2.1.0: {} - jest-changed-files@29.7.0: + jest-changed-files@30.3.0: dependencies: execa: 5.1.1 - jest-util: 29.7.0 + jest-util: 30.3.0 p-limit: 3.1.0 - jest-circus@29.7.0(babel-plugin-macros@3.1.0): + jest-circus@30.3.0(babel-plugin-macros@3.1.0): dependencies: - '@jest/environment': 29.7.0 - '@jest/expect': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 22.19.15 + '@jest/environment': 30.3.0 + '@jest/expect': 30.3.0 + '@jest/test-result': 30.3.0 + '@jest/types': 30.3.0 + '@types/node': 20.19.37 chalk: 4.1.2 co: 4.6.0 - dedent: 1.5.3(babel-plugin-macros@3.1.0) + dedent: 1.7.2(babel-plugin-macros@3.1.0) is-generator-fn: 2.1.0 - jest-each: 29.7.0 - jest-matcher-utils: 29.7.0 - jest-message-util: 29.7.0 - jest-runtime: 29.7.0 - jest-snapshot: 29.7.0 - jest-util: 29.7.0 + jest-each: 30.3.0 + jest-matcher-utils: 30.3.0 + jest-message-util: 30.3.0 + jest-runtime: 30.3.0 + jest-snapshot: 30.3.0 + jest-util: 30.3.0 p-limit: 3.1.0 - pretty-format: 29.7.0 - pure-rand: 6.0.2 + pretty-format: 30.3.0 + pure-rand: 7.0.1 slash: 3.0.0 stack-utils: 2.0.6 transitivePeerDependencies: - babel-plugin-macros - supports-color - jest-cli@29.7.0(@types/node@22.19.15)(babel-plugin-macros@3.1.0): + jest-cli@30.3.0(@types/node@20.19.37)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.4)): dependencies: - '@jest/core': 29.7.0(babel-plugin-macros@3.1.0) - '@jest/test-result': 29.7.0 - '@jest/types': 29.6.3 + '@jest/core': 30.3.0(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.4)) + '@jest/test-result': 30.3.0 + '@jest/types': 30.3.0 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@22.19.15)(babel-plugin-macros@3.1.0) - exit: 0.1.2 - import-local: 3.1.0 - jest-config: 29.7.0(@types/node@22.19.15)(babel-plugin-macros@3.1.0) - jest-util: 29.7.0 - jest-validate: 29.7.0 + exit-x: 0.2.2 + import-local: 3.2.0 + jest-config: 30.3.0(@types/node@20.19.37)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.4)) + jest-util: 30.3.0 + jest-validate: 30.3.0 yargs: 17.7.2 transitivePeerDependencies: - '@types/node' - babel-plugin-macros + - esbuild-register - supports-color - ts-node - jest-config@29.7.0(@types/node@22.19.15)(babel-plugin-macros@3.1.0): + jest-config@30.3.0(@types/node@20.19.37)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.4)): dependencies: '@babel/core': 7.27.7 - '@jest/test-sequencer': 29.7.0 - '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.27.7) + '@jest/get-type': 30.1.0 + '@jest/pattern': 30.0.1 + '@jest/test-sequencer': 30.3.0 + '@jest/types': 30.3.0 + babel-jest: 30.3.0(@babel/core@7.27.7) chalk: 4.1.2 - ci-info: 3.8.0 + ci-info: 4.4.0 deepmerge: 4.3.1 - glob: 7.2.3 + glob: 10.5.0 graceful-fs: 4.2.11 - jest-circus: 29.7.0(babel-plugin-macros@3.1.0) - jest-environment-node: 29.7.0 - jest-get-type: 29.6.3 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-runner: 29.7.0 - jest-util: 29.7.0 - jest-validate: 29.7.0 - micromatch: 4.0.5 + jest-circus: 30.3.0(babel-plugin-macros@3.1.0) + jest-docblock: 30.2.0 + jest-environment-node: 30.3.0 + jest-regex-util: 30.0.1 + jest-resolve: 30.3.0 + jest-runner: 30.3.0 + jest-util: 30.3.0 + jest-validate: 30.3.0 parse-json: 5.2.0 - pretty-format: 29.7.0 + pretty-format: 30.3.0 slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 22.19.15 + '@types/node': 20.19.37 + esbuild-register: 3.6.0(esbuild@0.27.4) transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -14950,17 +16204,24 @@ snapshots: jest-get-type: 29.6.3 pretty-format: 29.7.0 - jest-docblock@29.7.0: + jest-diff@30.3.0: + dependencies: + '@jest/diff-sequences': 30.3.0 + '@jest/get-type': 30.1.0 + chalk: 4.1.2 + pretty-format: 30.3.0 + + jest-docblock@30.2.0: dependencies: detect-newline: 3.1.0 - jest-each@29.7.0: + jest-each@30.3.0: dependencies: - '@jest/types': 29.6.3 + '@jest/get-type': 30.1.0 + '@jest/types': 30.3.0 chalk: 4.1.2 - jest-get-type: 29.6.3 - jest-util: 29.7.0 - pretty-format: 29.7.0 + jest-util: 30.3.0 + pretty-format: 30.3.0 jest-environment-jsdom@29.6.2: dependencies: @@ -14968,46 +16229,46 @@ snapshots: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 '@types/jsdom': 20.0.1 - '@types/node': 22.19.15 + '@types/node': 22.14.0 jest-mock: 29.7.0 jest-util: 29.7.0 - jsdom: 22.1.0 + jsdom: 20.0.3 transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate - jest-environment-node@29.7.0: + jest-environment-node@30.3.0: dependencies: - '@jest/environment': 29.7.0 - '@jest/fake-timers': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 22.19.15 - jest-mock: 29.7.0 - jest-util: 29.7.0 + '@jest/environment': 30.3.0 + '@jest/fake-timers': 30.3.0 + '@jest/types': 30.3.0 + '@types/node': 20.19.37 + jest-mock: 30.3.0 + jest-util: 30.3.0 + jest-validate: 30.3.0 jest-get-type@29.6.3: {} - jest-haste-map@29.7.0: + jest-haste-map@30.3.0: dependencies: - '@jest/types': 29.6.3 - '@types/graceful-fs': 4.1.6 - '@types/node': 22.19.15 + '@jest/types': 30.3.0 + '@types/node': 20.19.37 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 - jest-regex-util: 29.6.3 - jest-util: 29.7.0 - jest-worker: 29.7.0 - micromatch: 4.0.5 + jest-regex-util: 30.0.1 + jest-util: 30.3.0 + jest-worker: 30.3.0 + picomatch: 4.0.4 walker: 1.0.8 optionalDependencies: fsevents: 2.3.3 - jest-leak-detector@29.7.0: + jest-leak-detector@30.3.0: dependencies: - jest-get-type: 29.6.3 - pretty-format: 29.7.0 + '@jest/get-type': 30.1.0 + pretty-format: 30.3.0 jest-matcher-utils@29.7.0: dependencies: @@ -15016,6 +16277,13 @@ snapshots: jest-get-type: 29.6.3 pretty-format: 29.7.0 + jest-matcher-utils@30.3.0: + dependencies: + '@jest/get-type': 30.1.0 + chalk: 4.1.2 + jest-diff: 30.3.0 + pretty-format: 30.3.0 + jest-message-util@29.7.0: dependencies: '@babel/code-frame': 7.27.1 @@ -15028,166 +16296,196 @@ snapshots: slash: 3.0.0 stack-utils: 2.0.6 + jest-message-util@30.3.0: + dependencies: + '@babel/code-frame': 7.27.1 + '@jest/types': 30.3.0 + '@types/stack-utils': 2.0.3 + chalk: 4.1.2 + graceful-fs: 4.2.11 + picomatch: 4.0.4 + pretty-format: 30.3.0 + slash: 3.0.0 + stack-utils: 2.0.6 + jest-mock@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 22.19.15 + '@types/node': 20.19.37 jest-util: 29.7.0 - jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): + jest-mock@30.3.0: + dependencies: + '@jest/types': 30.3.0 + '@types/node': 20.19.37 + jest-util: 30.3.0 + + jest-pnp-resolver@1.2.3(jest-resolve@30.3.0): optionalDependencies: - jest-resolve: 29.7.0 + jest-resolve: 30.3.0 - jest-regex-util@29.6.3: {} + jest-regex-util@30.0.1: {} - jest-resolve-dependencies@29.7.0: + jest-resolve-dependencies@30.3.0: dependencies: - jest-regex-util: 29.6.3 - jest-snapshot: 29.7.0 + jest-regex-util: 30.0.1 + jest-snapshot: 30.3.0 transitivePeerDependencies: - supports-color - jest-resolve@29.7.0: + jest-resolve@30.3.0: dependencies: chalk: 4.1.2 graceful-fs: 4.2.11 - jest-haste-map: 29.7.0 - jest-pnp-resolver: 1.2.3(jest-resolve@29.7.0) - jest-util: 29.7.0 - jest-validate: 29.7.0 - resolve: 1.22.10 - resolve.exports: 2.0.2 + jest-haste-map: 30.3.0 + jest-pnp-resolver: 1.2.3(jest-resolve@30.3.0) + jest-util: 30.3.0 + jest-validate: 30.3.0 slash: 3.0.0 + unrs-resolver: 1.11.1 - jest-runner@29.7.0: + jest-runner@30.3.0: dependencies: - '@jest/console': 29.7.0 - '@jest/environment': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 22.19.15 + '@jest/console': 30.3.0 + '@jest/environment': 30.3.0 + '@jest/test-result': 30.3.0 + '@jest/transform': 30.3.0 + '@jest/types': 30.3.0 + '@types/node': 20.19.37 chalk: 4.1.2 emittery: 0.13.1 + exit-x: 0.2.2 graceful-fs: 4.2.11 - jest-docblock: 29.7.0 - jest-environment-node: 29.7.0 - jest-haste-map: 29.7.0 - jest-leak-detector: 29.7.0 - jest-message-util: 29.7.0 - jest-resolve: 29.7.0 - jest-runtime: 29.7.0 - jest-util: 29.7.0 - jest-watcher: 29.7.0 - jest-worker: 29.7.0 + jest-docblock: 30.2.0 + jest-environment-node: 30.3.0 + jest-haste-map: 30.3.0 + jest-leak-detector: 30.3.0 + jest-message-util: 30.3.0 + jest-resolve: 30.3.0 + jest-runtime: 30.3.0 + jest-util: 30.3.0 + jest-watcher: 30.3.0 + jest-worker: 30.3.0 p-limit: 3.1.0 source-map-support: 0.5.13 transitivePeerDependencies: - supports-color - jest-runtime@29.7.0: + jest-runtime@30.3.0: dependencies: - '@jest/environment': 29.7.0 - '@jest/fake-timers': 29.7.0 - '@jest/globals': 29.7.0 - '@jest/source-map': 29.6.3 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 22.19.15 + '@jest/environment': 30.3.0 + '@jest/fake-timers': 30.3.0 + '@jest/globals': 30.3.0 + '@jest/source-map': 30.0.1 + '@jest/test-result': 30.3.0 + '@jest/transform': 30.3.0 + '@jest/types': 30.3.0 + '@types/node': 20.19.37 chalk: 4.1.2 - cjs-module-lexer: 1.2.2 - collect-v8-coverage: 1.0.1 - glob: 7.2.3 + cjs-module-lexer: 2.2.0 + collect-v8-coverage: 1.0.3 + glob: 10.5.0 graceful-fs: 4.2.11 - jest-haste-map: 29.7.0 - jest-message-util: 29.7.0 - jest-mock: 29.7.0 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-snapshot: 29.7.0 - jest-util: 29.7.0 + jest-haste-map: 30.3.0 + jest-message-util: 30.3.0 + jest-mock: 30.3.0 + jest-regex-util: 30.0.1 + jest-resolve: 30.3.0 + jest-snapshot: 30.3.0 + jest-util: 30.3.0 slash: 3.0.0 strip-bom: 4.0.0 transitivePeerDependencies: - supports-color - jest-snapshot@29.7.0: + jest-snapshot@30.3.0: dependencies: '@babel/core': 7.27.7 '@babel/generator': 7.27.5 '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.27.7) '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.27.7) '@babel/types': 7.27.7 - '@jest/expect-utils': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - babel-preset-current-node-syntax: 1.0.1(@babel/core@7.27.7) + '@jest/expect-utils': 30.3.0 + '@jest/get-type': 30.1.0 + '@jest/snapshot-utils': 30.3.0 + '@jest/transform': 30.3.0 + '@jest/types': 30.3.0 + babel-preset-current-node-syntax: 1.2.0(@babel/core@7.27.7) chalk: 4.1.2 - expect: 29.7.0 + expect: 30.3.0 graceful-fs: 4.2.11 - jest-diff: 29.7.0 - jest-get-type: 29.6.3 - jest-matcher-utils: 29.7.0 - jest-message-util: 29.7.0 - jest-util: 29.7.0 - natural-compare: 1.4.0 - pretty-format: 29.7.0 - semver: 7.7.4 + jest-diff: 30.3.0 + jest-matcher-utils: 30.3.0 + jest-message-util: 30.3.0 + jest-util: 30.3.0 + pretty-format: 30.3.0 + semver: 7.7.2 + synckit: 0.11.12 transitivePeerDependencies: - supports-color jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 22.19.15 + '@types/node': 20.19.37 chalk: 4.1.2 ci-info: 3.8.0 graceful-fs: 4.2.11 picomatch: 2.3.1 - jest-validate@29.7.0: + jest-util@30.3.0: dependencies: - '@jest/types': 29.6.3 + '@jest/types': 30.3.0 + '@types/node': 20.19.37 + chalk: 4.1.2 + ci-info: 4.4.0 + graceful-fs: 4.2.11 + picomatch: 4.0.4 + + jest-validate@30.3.0: + dependencies: + '@jest/get-type': 30.1.0 + '@jest/types': 30.3.0 camelcase: 6.3.0 chalk: 4.1.2 - jest-get-type: 29.6.3 leven: 3.1.0 - pretty-format: 29.7.0 + pretty-format: 30.3.0 - jest-watcher@29.7.0: + jest-watcher@30.3.0: dependencies: - '@jest/test-result': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 22.19.15 + '@jest/test-result': 30.3.0 + '@jest/types': 30.3.0 + '@types/node': 20.19.37 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 - jest-util: 29.7.0 + jest-util: 30.3.0 string-length: 4.0.2 jest-worker@27.5.1: dependencies: - '@types/node': 22.19.15 + '@types/node': 22.19.18 merge-stream: 2.0.0 supports-color: 8.1.1 - jest-worker@29.7.0: + jest-worker@30.3.0: dependencies: - '@types/node': 22.19.15 - jest-util: 29.7.0 + '@types/node': 20.19.37 + '@ungap/structured-clone': 1.3.0 + jest-util: 30.3.0 merge-stream: 2.0.0 supports-color: 8.1.1 - jest@29.7.0(@types/node@22.19.15)(babel-plugin-macros@3.1.0): + jest@30.3.0(@types/node@20.19.37)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.4)): dependencies: - '@jest/core': 29.7.0(babel-plugin-macros@3.1.0) - '@jest/types': 29.6.3 - import-local: 3.1.0 - jest-cli: 29.7.0(@types/node@22.19.15)(babel-plugin-macros@3.1.0) + '@jest/core': 30.3.0(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.4)) + '@jest/types': 30.3.0 + import-local: 3.2.0 + jest-cli: 30.3.0(@types/node@20.19.37)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.27.4)) transitivePeerDependencies: - '@types/node' - babel-plugin-macros + - esbuild-register - supports-color - ts-node @@ -15217,19 +16515,21 @@ snapshots: dependencies: argparse: 2.0.1 - jsbn@1.1.0: {} - jsdoc-type-pratt-parser@7.1.1: {} jsdoctypeparser@9.0.0: {} - jsdom@22.1.0: + jsdom@20.0.3: dependencies: abab: 2.0.6 - cssstyle: 3.0.0 - data-urls: 4.0.0 + acorn: 8.15.0 + acorn-globals: 7.0.1 + cssom: 0.5.0 + cssstyle: 2.3.0 + data-urls: 3.0.2 decimal.js: 10.4.3 domexception: 4.0.0 + escodegen: 2.1.0 form-data: 4.0.0 html-encoding-sniffer: 3.0.0 http-proxy-agent: 5.0.0 @@ -15237,7 +16537,6 @@ snapshots: is-potential-custom-element-name: 1.0.1 nwsapi: 2.2.4 parse5: 7.1.2 - rrweb-cssom: 0.6.0 saxes: 6.0.0 symbol-tree: 3.2.4 tough-cookie: 4.1.4 @@ -15245,7 +16544,7 @@ snapshots: webidl-conversions: 7.0.0 whatwg-encoding: 2.0.0 whatwg-mimetype: 3.0.0 - whatwg-url: 12.0.1 + whatwg-url: 11.0.0 ws: 8.18.0 xml-name-validator: 4.0.0 transitivePeerDependencies: @@ -15253,6 +16552,32 @@ snapshots: - supports-color - utf-8-validate + jsdom@29.0.1: + dependencies: + '@asamuzakjp/css-color': 5.0.1 + '@asamuzakjp/dom-selector': 7.0.4 + '@bramus/specificity': 2.4.2 + '@csstools/css-syntax-patches-for-csstree': 1.1.1(css-tree@3.2.1) + '@exodus/bytes': 1.15.0 + css-tree: 3.2.1 + data-urls: 7.0.0 + decimal.js: 10.6.0 + html-encoding-sniffer: 6.0.0 + is-potential-custom-element-name: 1.0.1 + lru-cache: 11.2.7 + parse5: 8.0.0 + saxes: 6.0.0 + symbol-tree: 3.2.4 + tough-cookie: 6.0.1 + undici: 7.24.6 + w3c-xmlserializer: 5.0.0 + webidl-conversions: 8.0.1 + whatwg-mimetype: 5.0.0 + whatwg-url: 16.0.1 + xml-name-validator: 5.0.0 + transitivePeerDependencies: + - '@noble/hashes' + jsesc@3.0.2: {} json-buffer@3.0.1: {} @@ -15285,10 +16610,10 @@ snapshots: jsx-ast-utils@3.3.5: dependencies: - array-includes: 3.1.9 - array.prototype.flat: 1.3.3 - object.assign: 4.1.7 - object.values: 1.2.1 + array-includes: 3.1.8 + array.prototype.flat: 1.3.2 + object.assign: 4.1.5 + object.values: 1.2.0 keyv@4.5.4: dependencies: @@ -15368,7 +16693,7 @@ snapshots: lightningcss@1.32.0: dependencies: - detect-libc: 2.1.2 + detect-libc: 2.0.3 optionalDependencies: lightningcss-android-arm64: 1.32.0 lightningcss-darwin-arm64: 1.32.0 @@ -15430,12 +16755,12 @@ snapshots: lru-cache@10.4.3: {} + lru-cache@11.2.7: {} + lru-cache@5.1.1: dependencies: yallist: 3.1.1 - lru-cache@7.18.3: {} - lunr@2.3.9: {} lz-string@1.5.0: {} @@ -15673,6 +16998,8 @@ snapshots: dependencies: '@types/mdast': 4.0.3 + mdn-data@2.27.1: {} + mdurl@1.0.1: {} mdurl@2.0.0: {} @@ -15836,8 +17163,8 @@ snapshots: micromark-extension-mdxjs@3.0.0: dependencies: - acorn: 8.16.0 - acorn-jsx: 5.3.2(acorn@8.16.0) + acorn: 8.15.0 + acorn-jsx: 5.3.2(acorn@8.15.0) micromark-extension-mdx-expression: 3.0.0 micromark-extension-mdx-jsx: 3.0.0 micromark-extension-mdx-md: 2.0.0 @@ -16054,7 +17381,7 @@ snapshots: micromark@3.2.0: dependencies: '@types/debug': 4.1.12 - debug: 4.4.3 + debug: 4.4.1 decode-named-character-reference: 1.0.2 micromark-core-commonmark: 1.1.0 micromark-factory-space: 1.1.0 @@ -16076,7 +17403,7 @@ snapshots: micromark@4.0.0: dependencies: '@types/debug': 4.1.12 - debug: 4.4.3 + debug: 4.4.1 decode-named-character-reference: 1.0.2 devlop: 1.1.0 micromark-core-commonmark: 2.0.0 @@ -16112,6 +17439,8 @@ snapshots: mime@2.6.0: {} + mime@3.0.0: {} + mimic-fn@2.1.0: {} min-indent@1.0.1: {} @@ -16133,21 +17462,27 @@ snapshots: - bufferutil - utf-8-validate - miniflare@4.20260312.0: + miniflare@4.20250617.5: dependencies: '@cspotcode/source-map-support': 0.8.1 - sharp: 0.34.5 - undici: 7.18.2 + acorn: 8.14.0 + acorn-walk: 8.3.2 + exit-hook: 2.2.1 + glob-to-regexp: 0.4.1 + sharp: 0.33.5 + stoppable: 1.1.0 + undici: 5.28.5 workerd: 1.20250705.0 ws: 8.18.0 - youch: 4.1.0-beta.10 + youch: 3.3.4 + zod: 3.22.3 transitivePeerDependencies: - bufferutil - utf-8-validate minimatch@10.2.4: dependencies: - brace-expansion: 5.0.4 + brace-expansion: 5.0.5 minimatch@3.1.2: dependencies: @@ -16188,18 +17523,42 @@ snapshots: mri@1.2.0: {} - mrmime@1.0.1: {} - ms@2.0.0: {} ms@2.1.3: {} - msw@2.7.5(@types/node@22.19.15)(typescript@5.4.5): + msw@2.7.5(@types/node@20.19.37)(typescript@5.4.5): + dependencies: + '@bundled-es-modules/cookie': 2.0.1 + '@bundled-es-modules/statuses': 1.0.1 + '@bundled-es-modules/tough-cookie': 0.1.6 + '@inquirer/confirm': 5.1.9(@types/node@20.19.37) + '@mswjs/interceptors': 0.37.6 + '@open-draft/deferred-promise': 2.2.0 + '@open-draft/until': 2.1.0 + '@types/cookie': 0.6.0 + '@types/statuses': 2.0.5 + graphql: 16.9.0 + headers-polyfill: 4.0.3 + is-node-process: 1.2.0 + outvariant: 1.4.3 + path-to-regexp: 6.3.0 + picocolors: 1.1.1 + strict-event-emitter: 0.5.1 + type-fest: 4.40.1 + yargs: 17.7.2 + optionalDependencies: + typescript: 5.4.5 + transitivePeerDependencies: + - '@types/node' + optional: true + + msw@2.7.5(@types/node@22.19.18)(typescript@5.4.5): dependencies: '@bundled-es-modules/cookie': 2.0.1 '@bundled-es-modules/statuses': 1.0.1 '@bundled-es-modules/tough-cookie': 0.1.6 - '@inquirer/confirm': 5.1.9(@types/node@22.19.15) + '@inquirer/confirm': 5.1.9(@types/node@22.19.18) '@mswjs/interceptors': 0.37.6 '@open-draft/deferred-promise': 2.2.0 '@open-draft/until': 2.1.0 @@ -16231,6 +17590,10 @@ snapshots: nanoid@3.3.11: {} + nanoid@3.3.8: {} + + napi-postinstall@0.3.4: {} + natural-compare-lite@1.4.0: {} natural-compare@1.4.0: {} @@ -16241,14 +17604,16 @@ snapshots: neo-async@2.6.2: {} - netmask@2.0.2: {} + node-fetch@2.6.7: + dependencies: + whatwg-url: 5.0.0 node-int64@0.4.0: {} node-mocks-http@1.14.1: dependencies: '@types/express': 4.17.21 - '@types/node': 20.19.37 + '@types/node': 20.11.30 accepts: 1.3.8 content-disposition: 0.5.4 depd: 1.1.2 @@ -16289,6 +17654,13 @@ snapshots: object-keys@1.1.1: {} + object.assign@4.1.5: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + has-symbols: 1.1.0 + object-keys: 1.1.1 + object.assign@4.1.7: dependencies: call-bind: 1.0.8 @@ -16307,16 +17679,22 @@ snapshots: object.fromentries@2.0.8: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.23.3 es-object-atoms: 1.1.1 object.groupby@1.0.3: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.23.3 + + object.values@1.2.0: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-object-atoms: 1.1.1 object.values@1.2.1: dependencies: @@ -16327,6 +17705,8 @@ snapshots: obug@2.1.1: {} + ohash@2.0.11: {} + on-finished@2.3.0: dependencies: ee-first: 1.1.1 @@ -16382,23 +17762,7 @@ snapshots: p-try@2.2.0: {} - pac-proxy-agent@7.0.2: - dependencies: - '@tootallnate/quickjs-emscripten': 0.23.0 - agent-base: 7.1.1 - debug: 4.4.3 - get-uri: 6.0.3 - http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.5 - pac-resolver: 7.0.1 - socks-proxy-agent: 8.0.4 - transitivePeerDependencies: - - supports-color - - pac-resolver@7.0.1: - dependencies: - degenerator: 5.0.1 - netmask: 2.0.2 + package-json-from-dist@1.0.1: {} pako@0.2.9: {} @@ -16445,6 +17809,10 @@ snapshots: dependencies: entities: 4.5.0 + parse5@8.0.0: + dependencies: + entities: 6.0.1 + parseurl@1.3.3: {} path-exists@4.0.0: {} @@ -16457,7 +17825,7 @@ snapshots: path-parse@1.0.7: {} - path-scurry@1.10.2: + path-scurry@1.11.1: dependencies: lru-cache: 10.4.3 minipass: 7.1.2 @@ -16494,13 +17862,15 @@ snapshots: picomatch@2.3.1: {} - picomatch@4.0.3: {} + picomatch@4.0.2: {} + + picomatch@4.0.4: {} pify@2.3.0: {} pify@4.0.1: {} - pirates@4.0.5: {} + pirates@4.0.7: {} pkg-dir@4.2.0: dependencies: @@ -16528,9 +17898,9 @@ snapshots: possible-typed-array-names@1.0.0: {} - postcss-import@15.1.0(postcss@8.5.8): + postcss-import@15.1.0(postcss@8.5.3): dependencies: - postcss: 8.5.8 + postcss: 8.5.3 postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.10 @@ -16546,6 +17916,12 @@ snapshots: postcss-value-parser@4.2.0: {} + postcss@8.5.3: + dependencies: + nanoid: 3.3.8 + picocolors: 1.1.1 + source-map-js: 1.2.1 + postcss@8.5.8: dependencies: nanoid: 3.3.11 @@ -16570,6 +17946,12 @@ snapshots: ansi-styles: 5.2.0 react-is: 19.1.0 + pretty-format@30.3.0: + dependencies: + '@jest/schemas': 30.0.5 + ansi-styles: 5.2.0 + react-is: 19.1.0 + pretty-ms@9.3.0: dependencies: parse-ms: 4.0.0 @@ -16602,19 +17984,6 @@ snapshots: forwarded: 0.2.0 ipaddr.js: 1.9.1 - proxy-agent@6.4.0: - dependencies: - agent-base: 7.1.1 - debug: 4.4.3 - http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.5 - lru-cache: 7.18.3 - pac-proxy-agent: 7.0.2 - proxy-from-env: 1.1.0 - socks-proxy-agent: 8.0.4 - transitivePeerDependencies: - - supports-color - proxy-from-env@1.1.0: {} psl@1.9.0: {} @@ -16639,7 +18008,9 @@ snapshots: punycode@2.3.0: {} - pure-rand@6.0.2: {} + punycode@2.3.1: {} + + pure-rand@7.0.1: {} qs@6.13.0: dependencies: @@ -16693,15 +18064,6 @@ snapshots: webpack: 5.103.0(esbuild@0.27.4) webpack-sources: 3.3.3 - react-server-dom-webpack@19.2.3(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(webpack@5.103.0): - dependencies: - acorn-loose: 8.5.2 - neo-async: 2.6.2 - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) - webpack: 5.103.0 - webpack-sources: 3.3.3 - react-server-dom-webpack@19.2.3(react-dom@19.3.0-canary-d763f313-20251210(react@19.3.0-canary-d763f313-20251210))(react@19.3.0-canary-d763f313-20251210)(webpack@5.103.0(@swc/core@1.11.24)(esbuild@0.27.4)): dependencies: acorn-loose: 8.5.2 @@ -16774,6 +18136,16 @@ snapshots: get-proto: 1.0.1 which-builtin-type: 1.2.1 + reflect.getprototypeof@1.0.6: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.24.1 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + globalthis: 1.0.4 + which-builtin-type: 1.1.3 + regenerate-unicode-properties@10.2.0: dependencies: regenerate: 1.4.2 @@ -16782,6 +18154,13 @@ snapshots: regenerator-runtime@0.14.1: {} + regexp.prototype.flags@1.5.2: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-errors: 1.3.0 + set-function-name: 2.0.2 + regexp.prototype.flags@1.5.4: dependencies: call-bind: 1.0.8 @@ -16899,8 +18278,6 @@ snapshots: resolve-pkg-maps@1.0.0: {} - resolve.exports@2.0.2: {} - resolve@1.22.10: dependencies: is-core-module: 2.16.1 @@ -16928,6 +18305,27 @@ snapshots: rndm@1.2.0: {} + rolldown@1.0.0-rc.11: + dependencies: + '@oxc-project/types': 0.122.0 + '@rolldown/pluginutils': 1.0.0-rc.11 + optionalDependencies: + '@rolldown/binding-android-arm64': 1.0.0-rc.11 + '@rolldown/binding-darwin-arm64': 1.0.0-rc.11 + '@rolldown/binding-darwin-x64': 1.0.0-rc.11 + '@rolldown/binding-freebsd-x64': 1.0.0-rc.11 + '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-rc.11 + '@rolldown/binding-linux-arm64-gnu': 1.0.0-rc.11 + '@rolldown/binding-linux-arm64-musl': 1.0.0-rc.11 + '@rolldown/binding-linux-ppc64-gnu': 1.0.0-rc.11 + '@rolldown/binding-linux-s390x-gnu': 1.0.0-rc.11 + '@rolldown/binding-linux-x64-gnu': 1.0.0-rc.11 + '@rolldown/binding-linux-x64-musl': 1.0.0-rc.11 + '@rolldown/binding-openharmony-arm64': 1.0.0-rc.11 + '@rolldown/binding-wasm32-wasi': 1.0.0-rc.11 + '@rolldown/binding-win32-arm64-msvc': 1.0.0-rc.11 + '@rolldown/binding-win32-x64-msvc': 1.0.0-rc.11 + rolldown@1.0.0-rc.9: dependencies: '@oxc-project/types': 0.115.0 @@ -16975,8 +18373,6 @@ snapshots: '@rollup/rollup-win32-x64-msvc': 4.43.0 fsevents: 2.3.3 - rrweb-cssom@0.6.0: {} - run-parallel@1.2.0: dependencies: queue-microtask: 1.2.3 @@ -16991,6 +18387,13 @@ snapshots: dependencies: mri: 1.2.0 + safe-array-concat@1.1.2: + dependencies: + call-bind: 1.0.7 + get-intrinsic: 1.3.0 + has-symbols: 1.1.0 + isarray: 2.0.5 + safe-array-concat@1.1.3: dependencies: call-bind: 1.0.8 @@ -17008,6 +18411,12 @@ snapshots: es-errors: 1.3.0 isarray: 2.0.5 + safe-regex-test@1.0.3: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-regex: 1.1.4 + safe-regex-test@1.1.0: dependencies: call-bound: 1.0.4 @@ -17035,6 +18444,8 @@ snapshots: semver@6.3.1: {} + semver@7.7.2: {} + semver@7.7.4: {} send@0.19.0: @@ -17098,36 +18509,31 @@ snapshots: dependencies: kind-of: 6.0.3 - sharp@0.34.5: + sharp@0.33.5: dependencies: - '@img/colour': 1.1.0 - detect-libc: 2.1.2 - semver: 7.7.4 + color: 4.2.3 + detect-libc: 2.0.3 + semver: 7.7.2 optionalDependencies: - '@img/sharp-darwin-arm64': 0.34.5 - '@img/sharp-darwin-x64': 0.34.5 - '@img/sharp-libvips-darwin-arm64': 1.2.4 - '@img/sharp-libvips-darwin-x64': 1.2.4 - '@img/sharp-libvips-linux-arm': 1.2.4 - '@img/sharp-libvips-linux-arm64': 1.2.4 - '@img/sharp-libvips-linux-ppc64': 1.2.4 - '@img/sharp-libvips-linux-riscv64': 1.2.4 - '@img/sharp-libvips-linux-s390x': 1.2.4 - '@img/sharp-libvips-linux-x64': 1.2.4 - '@img/sharp-libvips-linuxmusl-arm64': 1.2.4 - '@img/sharp-libvips-linuxmusl-x64': 1.2.4 - '@img/sharp-linux-arm': 0.34.5 - '@img/sharp-linux-arm64': 0.34.5 - '@img/sharp-linux-ppc64': 0.34.5 - '@img/sharp-linux-riscv64': 0.34.5 - '@img/sharp-linux-s390x': 0.34.5 - '@img/sharp-linux-x64': 0.34.5 - '@img/sharp-linuxmusl-arm64': 0.34.5 - '@img/sharp-linuxmusl-x64': 0.34.5 - '@img/sharp-wasm32': 0.34.5 - '@img/sharp-win32-arm64': 0.34.5 - '@img/sharp-win32-ia32': 0.34.5 - '@img/sharp-win32-x64': 0.34.5 + '@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: @@ -17175,6 +18581,10 @@ snapshots: signal-exit@4.1.0: {} + simple-swizzle@0.2.2: + dependencies: + is-arrayish: 0.3.2 + sisteransi@1.0.5: {} slash@3.0.0: {} @@ -17184,21 +18594,6 @@ snapshots: ansi-styles: 6.2.1 is-fullwidth-code-point: 4.0.0 - smart-buffer@4.2.0: {} - - socks-proxy-agent@8.0.4: - dependencies: - agent-base: 7.1.1 - debug: 4.4.3 - socks: 2.8.3 - transitivePeerDependencies: - - supports-color - - socks@2.8.3: - dependencies: - ip-address: 9.0.5 - smart-buffer: 4.2.0 - sort-object-keys@1.1.3: {} sort-package-json@1.57.0: @@ -17243,9 +18638,7 @@ snapshots: sprintf-js@1.0.3: {} - sprintf-js@1.1.3: {} - - srvx@0.11.12: {} + srvx@0.11.13: {} stack-utils@2.0.6: dependencies: @@ -17294,9 +18687,9 @@ snapshots: string.prototype.includes@2.0.1: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.23.3 string.prototype.matchall@4.0.12: dependencies: @@ -17317,7 +18710,7 @@ snapshots: string.prototype.repeat@1.0.0: dependencies: define-properties: 1.2.1 - es-abstract: 1.24.1 + es-abstract: 1.23.3 string.prototype.trim@1.2.10: dependencies: @@ -17329,6 +18722,19 @@ snapshots: es-object-atoms: 1.1.1 has-property-descriptors: 1.0.2 + string.prototype.trim@1.2.9: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-object-atoms: 1.1.1 + + string.prototype.trimend@1.0.8: + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-object-atoms: 1.1.1 + string.prototype.trimend@1.0.9: dependencies: call-bind: 1.0.8 @@ -17338,7 +18744,7 @@ snapshots: string.prototype.trimstart@1.0.8: dependencies: - call-bind: 1.0.8 + call-bind: 1.0.7 define-properties: 1.2.1 es-object-atoms: 1.1.1 @@ -17389,24 +18795,24 @@ snapshots: dependencies: '@jridgewell/gen-mapping': 0.3.8 commander: 4.1.1 - glob: 10.3.10 + glob: 10.5.0 lines-and-columns: 1.2.4 mz: 2.7.0 - pirates: 4.0.5 + pirates: 4.0.7 ts-interface-checker: 0.1.13 superagent@8.1.2: dependencies: component-emitter: 1.3.0 cookiejar: 2.1.4 - debug: 4.4.3 + debug: 4.4.1 fast-safe-stringify: 2.1.1 form-data: 4.0.0 formidable: 2.1.2 methods: 1.1.2 mime: 2.6.0 qs: 6.14.0 - semver: 7.7.4 + semver: 7.7.2 transitivePeerDependencies: - supports-color @@ -17417,8 +18823,6 @@ snapshots: transitivePeerDependencies: - supports-color - supports-color@10.2.2: {} - supports-color@7.2.0: dependencies: has-flag: 4.0.0 @@ -17431,6 +18835,10 @@ snapshots: symbol-tree@3.2.4: {} + synckit@0.11.12: + dependencies: + '@pkgr/core': 0.2.9 + tapable@2.3.0: {} tar-fs@2.1.3: @@ -17471,15 +18879,6 @@ snapshots: optionalDependencies: esbuild: 0.27.4 - terser-webpack-plugin@5.3.15(webpack@5.103.0): - dependencies: - '@jridgewell/trace-mapping': 0.3.25 - jest-worker: 27.5.1 - schema-utils: 4.3.3 - serialize-javascript: 6.0.2 - terser: 5.44.1 - webpack: 5.103.0 - terser@5.44.1: dependencies: '@jridgewell/source-map': 0.3.6 @@ -17516,13 +18915,24 @@ snapshots: tinyexec@1.0.4: {} + tinyglobby@0.2.14: + dependencies: + fdir: 6.4.6(picomatch@4.0.2) + picomatch: 4.0.2 + tinyglobby@0.2.15: dependencies: - fdir: 6.5.0(picomatch@4.0.3) - picomatch: 4.0.3 + fdir: 6.5.0(picomatch@4.0.4) + picomatch: 4.0.4 tinyrainbow@3.1.0: {} + tldts-core@7.0.27: {} + + tldts@7.0.27: + dependencies: + tldts-core: 7.0.27 + tmpl@1.0.5: {} to-regex-range@5.0.1: @@ -17545,14 +18955,24 @@ snapshots: universalify: 0.2.0 url-parse: 1.5.10 + tough-cookie@6.0.1: + dependencies: + tldts: 7.0.27 + + tr46@0.0.3: {} + tr46@1.0.1: dependencies: - punycode: 2.3.0 + punycode: 2.3.1 - tr46@4.1.1: + tr46@3.0.0: dependencies: punycode: 2.3.0 + tr46@6.0.0: + dependencies: + punycode: 2.3.1 + tree-kill@1.2.2: {} trim-lines@3.0.1: {} @@ -17644,38 +19064,70 @@ snapshots: media-typer: 0.3.0 mime-types: 2.1.35 + typed-array-buffer@1.0.2: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-typed-array: 1.1.13 + typed-array-buffer@1.0.3: dependencies: call-bound: 1.0.4 es-errors: 1.3.0 is-typed-array: 1.1.15 + typed-array-byte-length@1.0.1: + dependencies: + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.2.0 + has-proto: 1.0.3 + is-typed-array: 1.1.13 + typed-array-byte-length@1.0.3: dependencies: call-bind: 1.0.8 - for-each: 0.3.5 + for-each: 0.3.3 gopd: 1.2.0 has-proto: 1.2.0 is-typed-array: 1.1.15 + typed-array-byte-offset@1.0.2: + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.2.0 + has-proto: 1.0.3 + is-typed-array: 1.1.13 + typed-array-byte-offset@1.0.4: dependencies: available-typed-arrays: 1.0.7 call-bind: 1.0.8 - for-each: 0.3.5 + for-each: 0.3.3 gopd: 1.2.0 has-proto: 1.2.0 is-typed-array: 1.1.15 reflect.getprototypeof: 1.0.10 + typed-array-length@1.0.6: + dependencies: + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.2.0 + has-proto: 1.0.3 + is-typed-array: 1.1.13 + possible-typed-array-names: 1.0.0 + typed-array-length@1.0.7: dependencies: call-bind: 1.0.8 - for-each: 0.3.5 + for-each: 0.3.3 gopd: 1.2.0 is-typed-array: 1.1.15 possible-typed-array-names: 1.0.0 - reflect.getprototypeof: 1.0.10 + reflect.getprototypeof: 1.0.6 typedoc@0.28.7(typescript@5.4.5): dependencies: @@ -17698,6 +19150,13 @@ snapshots: dependencies: random-bytes: 1.0.0 + unbox-primitive@1.0.2: + dependencies: + call-bind: 1.0.7 + has-bigints: 1.0.2 + has-symbols: 1.1.0 + which-boxed-primitive: 1.0.2 + unbox-primitive@1.1.0: dependencies: call-bound: 1.0.4 @@ -17705,6 +19164,8 @@ snapshots: has-symbols: 1.1.0 which-boxed-primitive: 1.1.1 + undici-types@5.26.5: {} + undici-types@6.21.0: {} undici@5.28.5: @@ -17713,11 +19174,15 @@ snapshots: undici@6.20.1: {} - undici@7.18.2: {} + undici@7.24.6: {} - unenv@2.0.0-rc.24: + unenv@2.0.0-rc.17: dependencies: + defu: 6.1.4 + exsolve: 1.0.8 + ohash: 2.0.11 pathe: 2.0.3 + ufo: 1.6.1 unicode-canonical-property-names-ecmascript@2.0.0: {} @@ -17829,6 +19294,30 @@ snapshots: unpipe@1.0.0: {} + unrs-resolver@1.11.1: + dependencies: + napi-postinstall: 0.3.4 + optionalDependencies: + '@unrs/resolver-binding-android-arm-eabi': 1.11.1 + '@unrs/resolver-binding-android-arm64': 1.11.1 + '@unrs/resolver-binding-darwin-arm64': 1.11.1 + '@unrs/resolver-binding-darwin-x64': 1.11.1 + '@unrs/resolver-binding-freebsd-x64': 1.11.1 + '@unrs/resolver-binding-linux-arm-gnueabihf': 1.11.1 + '@unrs/resolver-binding-linux-arm-musleabihf': 1.11.1 + '@unrs/resolver-binding-linux-arm64-gnu': 1.11.1 + '@unrs/resolver-binding-linux-arm64-musl': 1.11.1 + '@unrs/resolver-binding-linux-ppc64-gnu': 1.11.1 + '@unrs/resolver-binding-linux-riscv64-gnu': 1.11.1 + '@unrs/resolver-binding-linux-riscv64-musl': 1.11.1 + '@unrs/resolver-binding-linux-s390x-gnu': 1.11.1 + '@unrs/resolver-binding-linux-x64-gnu': 1.11.1 + '@unrs/resolver-binding-linux-x64-musl': 1.11.1 + '@unrs/resolver-binding-wasm32-wasi': 1.11.1 + '@unrs/resolver-binding-win32-arm64-msvc': 1.11.1 + '@unrs/resolver-binding-win32-ia32-msvc': 1.11.1 + '@unrs/resolver-binding-win32-x64-msvc': 1.11.1 + update-browserslist-db@1.2.2(browserslist@4.28.1): dependencies: browserslist: 4.28.1 @@ -17846,14 +19335,6 @@ snapshots: util-deprecate@1.0.2: {} - util@0.12.5: - dependencies: - inherits: 2.0.4 - is-arguments: 1.1.1 - is-generator-function: 1.0.10 - is-typed-array: 1.1.15 - which-typed-array: 1.1.20 - utils-merge@1.0.1: {} uuid@3.4.0: {} @@ -17904,7 +19385,20 @@ snapshots: unist-util-stringify-position: 4.0.0 vfile-message: 4.0.2 - vite-env-only@3.0.1(vite@5.1.3(@types/node@22.19.15)(lightningcss@1.32.0)(terser@5.44.1)): + vite-env-only@3.0.1(vite@5.1.3(@types/node@22.19.18)(lightningcss@1.32.0)(terser@5.44.1)): + dependencies: + '@babel/core': 7.27.7 + '@babel/generator': 7.27.5 + '@babel/parser': 7.27.7 + '@babel/traverse': 7.27.7 + '@babel/types': 7.27.7 + babel-dead-code-elimination: 1.0.10 + micromatch: 4.0.5 + vite: 5.1.3(@types/node@22.19.18)(lightningcss@1.32.0)(terser@5.44.1) + transitivePeerDependencies: + - supports-color + + vite-env-only@3.0.1(vite@6.4.1(@types/node@22.19.18)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)): dependencies: '@babel/core': 7.27.7 '@babel/generator': 7.27.5 @@ -17913,11 +19407,11 @@ snapshots: '@babel/types': 7.27.7 babel-dead-code-elimination: 1.0.10 micromatch: 4.0.5 - vite: 5.1.3(@types/node@22.19.15)(lightningcss@1.32.0)(terser@5.44.1) + vite: 6.4.1(@types/node@22.19.18)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) transitivePeerDependencies: - supports-color - vite-env-only@3.0.1(vite@6.4.1(@types/node@22.19.15)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)): + vite-env-only@3.0.1(vite@7.0.0-beta.0(@types/node@22.19.18)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)): dependencies: '@babel/core': 7.27.7 '@babel/generator': 7.27.5 @@ -17926,11 +19420,11 @@ snapshots: '@babel/types': 7.27.7 babel-dead-code-elimination: 1.0.10 micromatch: 4.0.5 - vite: 6.4.1(@types/node@22.19.15)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) + vite: 7.0.0-beta.0(@types/node@22.19.18)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) transitivePeerDependencies: - supports-color - vite-env-only@3.0.1(vite@7.0.0-beta.0(@types/node@22.19.15)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)): + vite-env-only@3.0.1(vite@8.0.2(@types/node@22.14.0)(esbuild@0.27.4)(jiti@2.4.2)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)): dependencies: '@babel/core': 7.27.7 '@babel/generator': 7.27.5 @@ -17939,11 +19433,11 @@ snapshots: '@babel/types': 7.27.7 babel-dead-code-elimination: 1.0.10 micromatch: 4.0.5 - vite: 7.0.0-beta.0(@types/node@22.19.15)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) + vite: 8.0.2(@types/node@22.14.0)(esbuild@0.27.4)(jiti@2.4.2)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) transitivePeerDependencies: - supports-color - vite-env-only@3.0.1(vite@8.0.0(@types/node@22.19.15)(esbuild@0.27.4)(jiti@2.4.2)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)): + vite-env-only@3.0.1(vite@8.0.2(@types/node@22.19.18)(esbuild@0.27.4)(jiti@2.4.2)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)): dependencies: '@babel/core': 7.27.7 '@babel/generator': 7.27.5 @@ -17952,17 +19446,17 @@ snapshots: '@babel/types': 7.27.7 babel-dead-code-elimination: 1.0.10 micromatch: 4.0.5 - vite: 8.0.0(@types/node@22.19.15)(esbuild@0.27.4)(jiti@2.4.2)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) + vite: 8.0.2(@types/node@22.19.18)(esbuild@0.27.4)(jiti@2.4.2)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) transitivePeerDependencies: - supports-color - vite-node@3.2.4(@types/node@20.19.37)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0): + vite-node@3.2.4(@types/node@20.11.30)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0): dependencies: cac: 6.7.14 - debug: 4.4.3 + debug: 4.4.1 es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 6.4.1(@types/node@20.19.37)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) + vite: 6.4.1(@types/node@20.11.30)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) transitivePeerDependencies: - '@types/node' - jiti @@ -17977,13 +19471,13 @@ snapshots: - tsx - yaml - vite-node@3.2.4(@types/node@22.19.15)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0): + vite-node@3.2.4(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0): dependencies: cac: 6.7.14 - debug: 4.4.3 + debug: 4.4.1 es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 6.4.1(@types/node@22.19.15)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) + vite: 6.4.1(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) transitivePeerDependencies: - '@types/node' - jiti @@ -17998,69 +19492,107 @@ snapshots: - tsx - yaml - vite-tsconfig-paths@4.3.2(typescript@5.4.5)(vite@5.1.3(@types/node@22.19.15)(lightningcss@1.32.0)(terser@5.44.1)): + vite-node@3.2.4(@types/node@22.19.18)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0): dependencies: - debug: 4.4.3 + cac: 6.7.14 + debug: 4.4.1 + es-module-lexer: 1.7.0 + pathe: 2.0.3 + vite: 6.4.1(@types/node@22.19.18)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) + transitivePeerDependencies: + - '@types/node' + - jiti + - less + - lightningcss + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - yaml + + vite-tsconfig-paths@4.3.2(typescript@5.4.5)(vite@5.1.3(@types/node@22.19.18)(lightningcss@1.32.0)(terser@5.44.1)): + dependencies: + debug: 4.4.1 globrex: 0.1.2 tsconfck: 3.0.3(typescript@5.4.5) optionalDependencies: - vite: 5.1.3(@types/node@22.19.15)(lightningcss@1.32.0)(terser@5.44.1) + vite: 5.1.3(@types/node@22.19.18)(lightningcss@1.32.0)(terser@5.44.1) transitivePeerDependencies: - supports-color - typescript - vite-tsconfig-paths@4.3.2(typescript@5.4.5)(vite@6.4.1(@types/node@20.19.37)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)): + vite-tsconfig-paths@4.3.2(typescript@5.4.5)(vite@6.4.1(@types/node@20.11.30)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)): dependencies: - debug: 4.4.3 + debug: 4.4.1 globrex: 0.1.2 tsconfck: 3.0.3(typescript@5.4.5) optionalDependencies: - vite: 6.4.1(@types/node@20.19.37)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) + vite: 6.4.1(@types/node@20.11.30)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) transitivePeerDependencies: - supports-color - typescript - vite-tsconfig-paths@4.3.2(typescript@5.4.5)(vite@6.4.1(@types/node@22.19.15)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)): + vite-tsconfig-paths@4.3.2(typescript@5.4.5)(vite@6.4.1(@types/node@22.19.18)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)): dependencies: - debug: 4.4.3 + debug: 4.4.1 globrex: 0.1.2 tsconfck: 3.0.3(typescript@5.4.5) optionalDependencies: - vite: 6.4.1(@types/node@22.19.15)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) + vite: 6.4.1(@types/node@22.19.18)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) transitivePeerDependencies: - supports-color - typescript - vite-tsconfig-paths@4.3.2(typescript@5.4.5)(vite@7.0.0-beta.0(@types/node@22.19.15)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)): + vite-tsconfig-paths@4.3.2(typescript@5.4.5)(vite@7.0.0-beta.0(@types/node@22.19.18)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)): dependencies: - debug: 4.4.3 + debug: 4.4.1 globrex: 0.1.2 tsconfck: 3.0.3(typescript@5.4.5) optionalDependencies: - vite: 7.0.0-beta.0(@types/node@22.19.15)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) + vite: 7.0.0-beta.0(@types/node@22.19.18)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) transitivePeerDependencies: - supports-color - typescript - vite@5.1.3(@types/node@22.19.15)(lightningcss@1.32.0)(terser@5.44.1): + vite@5.1.3(@types/node@22.19.18)(lightningcss@1.32.0)(terser@5.44.1): dependencies: esbuild: 0.19.12 - postcss: 8.5.8 + postcss: 8.5.3 + rollup: 4.43.0 + optionalDependencies: + '@types/node': 22.19.18 + fsevents: 2.3.3 + lightningcss: 1.32.0 + terser: 5.44.1 + + vite@6.4.1(@types/node@20.11.30)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0): + dependencies: + esbuild: 0.25.0 + fdir: 6.4.6(picomatch@4.0.2) + picomatch: 4.0.2 + postcss: 8.5.3 rollup: 4.43.0 + tinyglobby: 0.2.14 optionalDependencies: - '@types/node': 22.19.15 + '@types/node': 20.11.30 fsevents: 2.3.3 + jiti: 2.4.2 lightningcss: 1.32.0 terser: 5.44.1 + tsx: 4.19.3 + yaml: 2.8.0 vite@6.4.1(@types/node@20.19.37)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0): dependencies: esbuild: 0.25.0 - fdir: 6.5.0(picomatch@4.0.3) - picomatch: 4.0.3 - postcss: 8.5.8 + fdir: 6.4.6(picomatch@4.0.2) + picomatch: 4.0.2 + postcss: 8.5.3 rollup: 4.43.0 - tinyglobby: 0.2.15 + tinyglobby: 0.2.14 optionalDependencies: '@types/node': 20.19.37 fsevents: 2.3.3 @@ -18070,16 +19602,33 @@ snapshots: tsx: 4.19.3 yaml: 2.8.0 - vite@6.4.1(@types/node@22.19.15)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0): + vite@6.4.1(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0): dependencies: esbuild: 0.25.0 - fdir: 6.5.0(picomatch@4.0.3) - picomatch: 4.0.3 - postcss: 8.5.8 + fdir: 6.4.6(picomatch@4.0.2) + picomatch: 4.0.2 + postcss: 8.5.3 rollup: 4.43.0 - tinyglobby: 0.2.15 + tinyglobby: 0.2.14 + optionalDependencies: + '@types/node': 22.14.0 + fsevents: 2.3.3 + jiti: 2.4.2 + lightningcss: 1.32.0 + terser: 5.44.1 + tsx: 4.19.3 + yaml: 2.8.0 + + vite@6.4.1(@types/node@22.19.18)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0): + dependencies: + esbuild: 0.25.0 + fdir: 6.4.6(picomatch@4.0.2) + picomatch: 4.0.2 + postcss: 8.5.3 + rollup: 4.43.0 + tinyglobby: 0.2.14 optionalDependencies: - '@types/node': 22.19.15 + '@types/node': 22.19.18 fsevents: 2.3.3 jiti: 2.4.2 lightningcss: 1.32.0 @@ -18087,16 +19636,16 @@ snapshots: tsx: 4.19.3 yaml: 2.8.0 - vite@7.0.0-beta.0(@types/node@22.19.15)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0): + vite@7.0.0-beta.0(@types/node@22.19.18)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0): dependencies: esbuild: 0.25.0 - fdir: 6.5.0(picomatch@4.0.3) - picomatch: 4.0.3 + fdir: 6.5.0(picomatch@4.0.4) + picomatch: 4.0.4 postcss: 8.5.8 rollup: 4.43.0 tinyglobby: 0.2.15 optionalDependencies: - '@types/node': 22.19.15 + '@types/node': 22.19.18 fsevents: 2.3.3 jiti: 2.4.2 lightningcss: 1.32.0 @@ -18104,16 +19653,16 @@ snapshots: tsx: 4.19.3 yaml: 2.8.0 - vite@7.3.1(@types/node@22.19.15)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0): + vite@7.3.1(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0): dependencies: esbuild: 0.27.4 - fdir: 6.5.0(picomatch@4.0.3) - picomatch: 4.0.3 + fdir: 6.5.0(picomatch@4.0.4) + picomatch: 4.0.4 postcss: 8.5.8 rollup: 4.43.0 tinyglobby: 0.2.15 optionalDependencies: - '@types/node': 22.19.15 + '@types/node': 22.14.0 fsevents: 2.3.3 jiti: 2.4.2 lightningcss: 1.32.0 @@ -18121,14 +19670,30 @@ snapshots: tsx: 4.19.3 yaml: 2.8.0 - vite@8.0.0(@types/node@20.19.37)(esbuild@0.27.4)(jiti@2.4.2)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0): + vite@8.0.0(@types/node@22.19.18)(esbuild@0.27.4)(jiti@2.4.2)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0): dependencies: '@oxc-project/runtime': 0.115.0 lightningcss: 1.32.0 - picomatch: 4.0.3 + picomatch: 4.0.4 postcss: 8.5.8 rolldown: 1.0.0-rc.9 tinyglobby: 0.2.15 + optionalDependencies: + '@types/node': 22.19.18 + esbuild: 0.27.4 + fsevents: 2.3.3 + jiti: 2.4.2 + terser: 5.44.1 + tsx: 4.19.3 + yaml: 2.8.0 + + vite@8.0.2(@types/node@20.19.37)(esbuild@0.27.4)(jiti@2.4.2)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0): + dependencies: + lightningcss: 1.32.0 + picomatch: 4.0.4 + postcss: 8.5.8 + rolldown: 1.0.0-rc.11 + tinyglobby: 0.2.15 optionalDependencies: '@types/node': 20.19.37 esbuild: 0.27.4 @@ -18138,16 +19703,31 @@ snapshots: tsx: 4.19.3 yaml: 2.8.0 - vite@8.0.0(@types/node@22.19.15)(esbuild@0.27.4)(jiti@2.4.2)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0): + vite@8.0.2(@types/node@22.14.0)(esbuild@0.27.4)(jiti@2.4.2)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0): dependencies: - '@oxc-project/runtime': 0.115.0 lightningcss: 1.32.0 - picomatch: 4.0.3 + picomatch: 4.0.4 postcss: 8.5.8 - rolldown: 1.0.0-rc.9 + rolldown: 1.0.0-rc.11 + tinyglobby: 0.2.15 + optionalDependencies: + '@types/node': 22.14.0 + esbuild: 0.27.4 + fsevents: 2.3.3 + jiti: 2.4.2 + terser: 5.44.1 + tsx: 4.19.3 + yaml: 2.8.0 + + vite@8.0.2(@types/node@22.19.18)(esbuild@0.27.4)(jiti@2.4.2)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0): + dependencies: + lightningcss: 1.32.0 + picomatch: 4.0.4 + postcss: 8.5.8 + rolldown: 1.0.0-rc.11 tinyglobby: 0.2.15 optionalDependencies: - '@types/node': 22.19.15 + '@types/node': 22.19.18 esbuild: 0.27.4 fsevents: 2.3.3 jiti: 2.4.2 @@ -18155,47 +19735,47 @@ snapshots: tsx: 4.19.3 yaml: 2.8.0 - vitefu@1.1.2(vite@6.4.1(@types/node@20.19.37)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)): + vitefu@1.1.2(vite@6.4.1(@types/node@20.11.30)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)): optionalDependencies: - vite: 6.4.1(@types/node@20.19.37)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) + vite: 6.4.1(@types/node@20.11.30)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) - vitefu@1.1.2(vite@6.4.1(@types/node@22.19.15)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)): + vitefu@1.1.2(vite@6.4.1(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)): optionalDependencies: - vite: 6.4.1(@types/node@22.19.15)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) + vite: 6.4.1(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) - vitefu@1.1.2(vite@7.3.1(@types/node@22.19.15)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)): + vitefu@1.1.2(vite@7.3.1(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)): optionalDependencies: - vite: 7.3.1(@types/node@22.19.15)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) + vite: 7.3.1(@types/node@22.14.0)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) - vitefu@1.1.2(vite@8.0.0(@types/node@22.19.15)(esbuild@0.27.4)(jiti@2.4.2)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)): + vitefu@1.1.2(vite@8.0.2(@types/node@22.14.0)(esbuild@0.27.4)(jiti@2.4.2)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)): optionalDependencies: - vite: 8.0.0(@types/node@22.19.15)(esbuild@0.27.4)(jiti@2.4.2)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) + vite: 8.0.2(@types/node@22.14.0)(esbuild@0.27.4)(jiti@2.4.2)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) - vitest@4.1.0(@types/node@22.19.15)(jsdom@22.1.0)(msw@2.7.5(@types/node@22.19.15)(typescript@5.4.5))(vite@6.4.1(@types/node@22.19.15)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)): + vitest@4.1.1(@types/node@20.19.37)(jsdom@29.0.1)(msw@2.7.5(@types/node@20.19.37)(typescript@5.4.5))(vite@6.4.1(@types/node@20.19.37)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)): dependencies: - '@vitest/expect': 4.1.0 - '@vitest/mocker': 4.1.0(msw@2.7.5(@types/node@22.19.15)(typescript@5.4.5))(vite@6.4.1(@types/node@22.19.15)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)) - '@vitest/pretty-format': 4.1.0 - '@vitest/runner': 4.1.0 - '@vitest/snapshot': 4.1.0 - '@vitest/spy': 4.1.0 - '@vitest/utils': 4.1.0 + '@vitest/expect': 4.1.1 + '@vitest/mocker': 4.1.1(msw@2.7.5(@types/node@20.19.37)(typescript@5.4.5))(vite@6.4.1(@types/node@20.19.37)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0)) + '@vitest/pretty-format': 4.1.1 + '@vitest/runner': 4.1.1 + '@vitest/snapshot': 4.1.1 + '@vitest/spy': 4.1.1 + '@vitest/utils': 4.1.1 es-module-lexer: 2.0.0 expect-type: 1.3.0 magic-string: 0.30.21 obug: 2.1.1 pathe: 2.0.3 - picomatch: 4.0.3 + picomatch: 4.0.4 std-env: 4.0.0 tinybench: 2.9.0 tinyexec: 1.0.4 tinyglobby: 0.2.15 tinyrainbow: 3.1.0 - vite: 6.4.1(@types/node@22.19.15)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) + vite: 6.4.1(@types/node@20.19.37)(jiti@2.4.2)(lightningcss@1.32.0)(terser@5.44.1)(tsx@4.19.3)(yaml@2.8.0) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 22.19.15 - jsdom: 22.1.0 + '@types/node': 20.19.37 + jsdom: 29.0.1 transitivePeerDependencies: - msw @@ -18203,6 +19783,10 @@ snapshots: dependencies: xml-name-validator: 4.0.0 + w3c-xmlserializer@5.0.0: + dependencies: + xml-name-validator: 5.0.0 + wait-on@7.2.0: dependencies: axios: 1.6.8 @@ -18222,51 +19806,15 @@ snapshots: glob-to-regexp: 0.4.1 graceful-fs: 4.2.11 - web-encoding@1.1.5: - dependencies: - util: 0.12.5 - optionalDependencies: - '@zxing/text-encoding': 0.9.0 - - web-streams-polyfill@3.3.3: {} + webidl-conversions@3.0.1: {} webidl-conversions@4.0.2: {} webidl-conversions@7.0.0: {} - webpack-sources@3.3.3: {} + webidl-conversions@8.0.1: {} - webpack@5.103.0: - dependencies: - '@types/eslint-scope': 3.7.7 - '@types/estree': 1.0.8 - '@types/json-schema': 7.0.15 - '@webassemblyjs/ast': 1.14.1 - '@webassemblyjs/wasm-edit': 1.14.1 - '@webassemblyjs/wasm-parser': 1.14.1 - acorn: 8.16.0 - acorn-import-phases: 1.0.4(acorn@8.16.0) - browserslist: 4.28.1 - chrome-trace-event: 1.0.4 - enhanced-resolve: 5.18.3 - es-module-lexer: 1.7.0 - eslint-scope: 5.1.1 - events: 3.3.0 - glob-to-regexp: 0.4.1 - graceful-fs: 4.2.11 - json-parse-even-better-errors: 2.3.1 - loader-runner: 4.3.1 - mime-types: 2.1.35 - neo-async: 2.6.2 - schema-utils: 4.3.3 - tapable: 2.3.0 - terser-webpack-plugin: 5.3.15(webpack@5.103.0) - watchpack: 2.4.4 - webpack-sources: 3.3.3 - transitivePeerDependencies: - - '@swc/core' - - esbuild - - uglify-js + webpack-sources@3.3.3: {} webpack@5.103.0(@swc/core@1.11.24)(esbuild@0.27.4): dependencies: @@ -18344,17 +19892,40 @@ snapshots: whatwg-mimetype@4.0.0: {} - whatwg-url@12.0.1: + whatwg-mimetype@5.0.0: {} + + whatwg-url@11.0.0: dependencies: - tr46: 4.1.1 + tr46: 3.0.0 webidl-conversions: 7.0.0 + whatwg-url@16.0.1: + dependencies: + '@exodus/bytes': 1.15.0 + tr46: 6.0.0 + webidl-conversions: 8.0.1 + transitivePeerDependencies: + - '@noble/hashes' + + 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-boxed-primitive@1.0.2: + dependencies: + is-bigint: 1.0.4 + is-boolean-object: 1.1.2 + is-number-object: 1.0.7 + is-string: 1.0.7 + is-symbol: 1.0.4 + which-boxed-primitive@1.1.1: dependencies: is-bigint: 1.1.0 @@ -18363,6 +19934,21 @@ snapshots: is-string: 1.1.1 is-symbol: 1.1.1 + which-builtin-type@1.1.3: + dependencies: + function.prototype.name: 1.1.8 + has-tostringtag: 1.0.2 + is-async-function: 2.0.0 + is-date-object: 1.0.5 + is-finalizationregistry: 1.0.2 + is-generator-function: 1.0.10 + is-regex: 1.2.1 + is-weakref: 1.1.1 + isarray: 2.0.5 + which-boxed-primitive: 1.0.2 + which-collection: 1.0.2 + which-typed-array: 1.1.20 + which-builtin-type@1.2.1: dependencies: call-bound: 1.0.4 @@ -18386,6 +19972,14 @@ snapshots: is-weakmap: 2.0.2 is-weakset: 2.0.3 + which-typed-array@1.1.15: + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.2.0 + has-tostringtag: 1.0.2 + which-typed-array@1.1.20: dependencies: available-typed-arrays: 1.0.7 @@ -18421,15 +20015,15 @@ snapshots: '@cloudflare/workerd-linux-arm64': 1.20250705.0 '@cloudflare/workerd-windows-64': 1.20250705.0 - wrangler@4.73.0(@cloudflare/workers-types@4.20250805.0): + wrangler@4.23.0(@cloudflare/workers-types@4.20250805.0): dependencies: - '@cloudflare/kv-asset-handler': 0.4.2 - '@cloudflare/unenv-preset': 2.15.0(unenv@2.0.0-rc.24)(workerd@1.20250705.0) + '@cloudflare/kv-asset-handler': 0.4.0 + '@cloudflare/unenv-preset': 2.3.3(unenv@2.0.0-rc.17)(workerd@1.20250705.0) blake3-wasm: 2.1.5 - esbuild: 0.27.3 - miniflare: 4.20260312.0 + esbuild: 0.25.4 + miniflare: 4.20250617.5 path-to-regexp: 6.3.0 - unenv: 2.0.0-rc.24 + unenv: 2.0.0-rc.17 workerd: 1.20250705.0 optionalDependencies: '@cloudflare/workers-types': 4.20250805.0 @@ -18458,15 +20052,17 @@ snapshots: wrappy@1.0.2: {} - write-file-atomic@4.0.2: + write-file-atomic@5.0.1: dependencies: imurmurhash: 0.1.4 - signal-exit: 3.0.7 + signal-exit: 4.1.0 ws@8.18.0: {} xml-name-validator@4.0.0: {} + xml-name-validator@5.0.0: {} + xmlchars@2.2.0: {} xtend@4.0.2: {} @@ -18497,25 +20093,12 @@ snapshots: yoctocolors@2.1.2: {} - youch-core@0.3.3: - dependencies: - '@poppinss/exception': 1.2.3 - error-stack-parser-es: 1.0.5 - youch@3.3.4: dependencies: cookie: 0.7.2 mustache: 4.2.0 stacktracey: 2.1.8 - youch@4.1.0-beta.10: - dependencies: - '@poppinss/colors': 4.1.6 - '@poppinss/dumper': 0.6.5 - '@speed-highlight/core': 1.2.14 - cookie: 1.1.1 - youch-core: 0.3.3 - zimmerframe@1.1.2: {} zod-validation-error@4.0.2(zod@4.1.12): diff --git a/prettier.config.js b/prettier.config.js index 6588ba1fea..bc2780924d 100644 --- a/prettier.config.js +++ b/prettier.config.js @@ -1,4 +1,4 @@ /** * @type {import('prettier').Options} */ -module.exports = {}; +export default {}; diff --git a/scripts/constants.js b/scripts/constants.js index c2b3ebeea4..c676b0eff4 100644 --- a/scripts/constants.js +++ b/scripts/constants.js @@ -1,9 +1,9 @@ -const path = require("path"); +import path from "node:path"; +import { fileURLToPath } from "node:url"; + +const __dirname = path.dirname(fileURLToPath(import.meta.url)); const ROOT_DIR = path.resolve(__dirname, ".."); const EXAMPLES_DIR = path.resolve(ROOT_DIR, "examples"); -module.exports = { - ROOT_DIR, - EXAMPLES_DIR, -}; +export { ROOT_DIR, EXAMPLES_DIR }; diff --git a/scripts/package.json b/scripts/package.json index 406777e2d3..5280488a2a 100644 --- a/scripts/package.json +++ b/scripts/package.json @@ -13,7 +13,7 @@ "@types/semver": "^7.7.0" }, "engines": { - "node": "^22.18" + "node": ">=24" }, "scripts": { "typecheck": "tsc --noEmit" diff --git a/scripts/playground.js b/scripts/playground.js index 20ea5648b0..f075e27ed1 100644 --- a/scripts/playground.js +++ b/scripts/playground.js @@ -1,10 +1,13 @@ #!/usr/bin/env node -let { existsSync, readdirSync } = require("node:fs"); -let { cp } = require("node:fs/promises"); -let path = require("node:path"); -let prompts = require("prompts"); -let pc = require("picocolors"); +import { existsSync, readdirSync } from "node:fs"; +import { cp } from "node:fs/promises"; +import path from "node:path"; +import { fileURLToPath } from "node:url"; +import prompts from "prompts"; +import pc from "picocolors"; + +const __dirname = path.dirname(fileURLToPath(import.meta.url)); copyPlayground(); diff --git a/scripts/utils.js b/scripts/utils.js index 3c5e91cd3d..d9eb338a2f 100644 --- a/scripts/utils.js +++ b/scripts/utils.js @@ -1,9 +1,9 @@ -const fsp = require("fs").promises; -const path = require("path"); -const { execSync } = require("child_process"); -const jsonfile = require("jsonfile"); +import { execSync } from "node:child_process"; +import { promises as fsp } from "node:fs"; +import path from "node:path"; +import jsonfile from "jsonfile"; -const { ROOT_DIR, EXAMPLES_DIR } = require("./constants"); +import { EXAMPLES_DIR, ROOT_DIR } from "./constants.js"; /** * @param {string} packageName @@ -85,7 +85,7 @@ function invariant(cond, message) { if (!cond) throw new Error(message); } -module.exports = { +export { fileExists, packageJson, getPackageVersion, diff --git a/tutorials/address-book/package.json b/tutorials/address-book/package.json index c40e860fc9..2603bf56c5 100644 --- a/tutorials/address-book/package.json +++ b/tutorials/address-book/package.json @@ -28,6 +28,6 @@ "vite": "^5.4.11" }, "engines": { - "node": ">=20.0.0" + "node": ">=22.12.0" } }