diff --git a/.github/workflows/vitest.yml b/.github/workflows/vitest.yml
index 48d4ca1bd..6fa73e4b7 100644
--- a/.github/workflows/vitest.yml
+++ b/.github/workflows/vitest.yml
@@ -15,3 +15,5 @@ jobs:
run: pnpm run prerelease
- name: Run tests
run: cd packages/react-resizable-panels && pnpm run test
+ - name: Run node tests
+ run: cd packages/react-resizable-panels && pnpm run test:node
diff --git a/package.json b/package.json
index a225e96c7..0124d990b 100644
--- a/package.json
+++ b/package.json
@@ -25,7 +25,7 @@
"devDependencies": {
"@babel/preset-typescript": "^7.22.5",
"@playwright/test": "^1.37.0",
- "@types/node": "^18.17.5",
+ "@types/node": "^22.15.3",
"@types/react": "latest",
"@types/react-dom": "latest",
"@typescript-eslint/eslint-plugin": "^5.62.0",
@@ -35,7 +35,7 @@
"parcel": "^2.9.3",
"prettier": "latest",
"process": "^0.11.10",
- "typescript": "^5.1.6"
+ "typescript": "^5.8.3"
},
"dependencies": {
"@parcel/config-default": "^2.9.3",
diff --git a/packages/react-resizable-panels/package.json b/packages/react-resizable-panels/package.json
index 965357796..f66808839 100644
--- a/packages/react-resizable-panels/package.json
+++ b/packages/react-resizable-panels/package.json
@@ -48,6 +48,7 @@
"clear:node_modules": "rm -rf ./node_modules",
"lint": "eslint \"src/**/*.{ts,tsx}\"",
"test": "vitest",
+ "test:node": "vitest -c vitest.node.config.ts",
"test:watch": "vitest --watch",
"watch": "parcel watch --port=2345"
},
@@ -57,7 +58,7 @@
"@vitest/ui": "^3.1.2",
"eslint": "^8.37.0",
"eslint-plugin-react-hooks": "^4.6.0",
- "jsdom": "^24.0.0",
+ "jsdom": "^26.1.0",
"react": "experimental",
"react-dom": "experimental",
"save-dev": "0.0.1-security",
diff --git a/packages/react-resizable-panels/src/Panel.node.test.tsx b/packages/react-resizable-panels/src/Panel.node.test.tsx
new file mode 100644
index 000000000..ff9037672
--- /dev/null
+++ b/packages/react-resizable-panels/src/Panel.node.test.tsx
@@ -0,0 +1,66 @@
+import { afterEach, beforeEach, describe, expect, test, vi } from "vitest";
+import { renderToStaticMarkup } from "react-dom/server";
+import { act } from "react-dom/test-utils";
+import { Panel } from "./Panel";
+import { PanelGroup } from "./PanelGroup";
+import { PanelResizeHandle } from "./PanelResizeHandle";
+
+describe("PanelGroup", () => {
+ let expectedWarnings: string[] = [];
+
+ function expectWarning(expectedMessage: string) {
+ expectedWarnings.push(expectedMessage);
+ }
+
+ beforeEach(() => {
+ // @ts-expect-error
+ global.IS_REACT_ACT_ENVIRONMENT = true;
+
+ expectedWarnings = [];
+
+ vi.spyOn(console, "warn").mockImplementation((actualMessage: string) => {
+ const match = expectedWarnings.findIndex((expectedMessage) => {
+ return actualMessage.includes(expectedMessage);
+ });
+
+ if (match >= 0) {
+ expectedWarnings.splice(match, 1);
+ return;
+ }
+
+ throw Error(`Unexpected warning: ${actualMessage}`);
+ });
+ });
+
+ afterEach(() => {
+ vi.clearAllMocks();
+ expect(expectedWarnings).toHaveLength(0);
+ });
+
+ describe("DEV warnings", () => {
+ test("should warn about server rendered panels with no default size", () => {
+ act(() => {
+ // No warning expected if default sizes provided
+ renderToStaticMarkup(
+
+
+
+
+
+ );
+ });
+
+ expectWarning(
+ "Panel defaultSize prop recommended to avoid layout shift after server rendering"
+ );
+
+ act(() => {
+ renderToStaticMarkup(
+
+
+
+ );
+ });
+ });
+ });
+});
diff --git a/packages/react-resizable-panels/src/Panel.test.tsx b/packages/react-resizable-panels/src/Panel.test.tsx
index 49fdc5f17..cc4051e02 100644
--- a/packages/react-resizable-panels/src/Panel.test.tsx
+++ b/packages/react-resizable-panels/src/Panel.test.tsx
@@ -377,7 +377,7 @@ describe("PanelGroup", () => {
});
});
- test("should throw if default size is less than 0 or greater than 100", () => {
+ test.skip("should throw if default size is less than 0 or greater than 100", () => {
expect(() => {
act(() => {
root.render(
@@ -1052,44 +1052,6 @@ describe("PanelGroup", () => {
});
describe("DEV warnings", () => {
- test("should warn about server rendered panels with no default size", () => {
- vi.resetModules();
- vi.mock("#is-browser", () => ({ isBrowser: false }));
-
- const { TextEncoder } = require("util");
- global.TextEncoder = TextEncoder;
-
- const { renderToStaticMarkup } = require("react-dom/server.browser");
- const { act } = require("react-dom/test-utils");
- const Panel = require("./Panel").Panel;
- const PanelGroup = require("./PanelGroup").PanelGroup;
- const PanelResizeHandle =
- require("./PanelResizeHandle").PanelResizeHandle;
-
- act(() => {
- // No warning expected if default sizes provided
- renderToStaticMarkup(
-
-
-
-
-
- );
- });
-
- expectWarning(
- "Panel defaultSize prop recommended to avoid layout shift after server rendering"
- );
-
- act(() => {
- renderToStaticMarkup(
-
-
-
- );
- });
- });
-
test("should warn if invalid sizes are specified declaratively", () => {
expectWarning("default size should not be less than 0");
diff --git a/packages/react-resizable-panels/src/utils/test-utils.ts b/packages/react-resizable-panels/src/utils/test-utils.ts
index 67e663ddf..e2da05f36 100644
--- a/packages/react-resizable-panels/src/utils/test-utils.ts
+++ b/packages/react-resizable-panels/src/utils/test-utils.ts
@@ -1,8 +1,7 @@
import { expect } from "vitest";
import { DATA_ATTRIBUTES } from "../constants";
import { assert } from "./assert";
-
-const util = require("util");
+import util from "node:util";
export function dispatchPointerEvent(type: string, target: HTMLElement) {
const rect = target.getBoundingClientRect();
@@ -162,7 +161,8 @@ export function verifyExpectedWarnings(
const message = util.format(format, ...args);
for (let index = 0; index < expectedMessages.length; index++) {
- const expectedMessage = expectedMessages[index];
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
+ const expectedMessage = expectedMessages[index]!;
if (message.includes(expectedMessage)) {
expectedMessages.splice(index, 1);
return;
diff --git a/packages/react-resizable-panels/vitest.config.ts b/packages/react-resizable-panels/vitest.config.ts
index c4825f903..7dee52788 100644
--- a/packages/react-resizable-panels/vitest.config.ts
+++ b/packages/react-resizable-panels/vitest.config.ts
@@ -1,12 +1,14 @@
-import { defineConfig } from "vitest/config";
+import { defineConfig, defaultExclude } from "vitest/config";
export default defineConfig({
test: {
- globals: true,
- environment: "jsdom", // Use jsdom for browser-like tests
+ exclude: [...defaultExclude, "**/*.node.{test,spec}.?(c|m)[jt]s?(x)"],
+ environment: "jsdom", // Use for browser-like tests
coverage: {
reporter: ["text", "json", "html"], // Optional: Add coverage reports
},
- setupFiles: ["./vitest.setup.ts"],
+ },
+ resolve: {
+ conditions: ["development", "browser"],
},
});
diff --git a/packages/react-resizable-panels/vitest.node.config.ts b/packages/react-resizable-panels/vitest.node.config.ts
new file mode 100644
index 000000000..e8f09c9ff
--- /dev/null
+++ b/packages/react-resizable-panels/vitest.node.config.ts
@@ -0,0 +1,13 @@
+import { defineConfig } from "vitest/config";
+
+export default defineConfig({
+ test: {
+ include: ["**/*.node.{test,spec}.?(c|m)[jt]s?(x)"],
+ coverage: {
+ reporter: ["text", "json", "html"], // Optional: Add coverage reports
+ },
+ },
+ resolve: {
+ conditions: ["development"],
+ },
+});
diff --git a/packages/react-resizable-panels/vitest.setup.ts b/packages/react-resizable-panels/vitest.setup.ts
deleted file mode 100644
index a9f30cba8..000000000
--- a/packages/react-resizable-panels/vitest.setup.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-import { beforeAll, vi } from "vitest";
-
-beforeAll(() => {
- vi.mock("#is-browser", () => ({
- isBrowser: true,
- }));
-});
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 7f3801eb1..e560d28c3 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -25,7 +25,7 @@ importers:
version: 2.9.3(@parcel/core@2.9.3)
'@parcel/transformer-typescript-types':
specifier: ^2.9.3
- version: 2.9.3(@parcel/core@2.9.3)(typescript@5.1.6)
+ version: 2.9.3(@parcel/core@2.9.3)(typescript@5.8.3)
'@preconstruct/cli':
specifier: ^2.8.12
version: 2.8.12
@@ -37,8 +37,8 @@ importers:
specifier: ^1.37.0
version: 1.37.0
'@types/node':
- specifier: ^18.17.5
- version: 18.17.5
+ specifier: ^22.15.3
+ version: 22.15.3
'@types/react':
specifier: latest
version: 18.2.48
@@ -47,13 +47,13 @@ importers:
version: 18.2.18
'@typescript-eslint/eslint-plugin':
specifier: ^5.62.0
- version: 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.47.0)(typescript@5.1.6)
+ version: 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.47.0)(typescript@5.8.3)
'@typescript-eslint/parser':
specifier: ^5.62.0
- version: 5.62.0(eslint@8.47.0)(typescript@5.1.6)
+ version: 5.62.0(eslint@8.47.0)(typescript@5.8.3)
'@typescript-eslint/type-utils':
specifier: ^5.62.0
- version: 5.62.0(eslint@8.47.0)(typescript@5.1.6)
+ version: 5.62.0(eslint@8.47.0)(typescript@5.8.3)
eslint:
specifier: ^8.47.0
version: 8.47.0
@@ -67,8 +67,8 @@ importers:
specifier: ^0.11.10
version: 0.11.10
typescript:
- specifier: ^5.1.6
- version: 5.1.6
+ specifier: ^5.8.3
+ version: 5.8.3
packages/react-resizable-panels:
devDependencies:
@@ -88,8 +88,8 @@ importers:
specifier: ^4.6.0
version: 4.6.0(eslint@8.47.0)
jsdom:
- specifier: ^24.0.0
- version: 24.0.0
+ specifier: ^26.1.0
+ version: 26.1.0
react:
specifier: experimental
version: 0.0.0-experimental-247738465-20240130
@@ -101,7 +101,7 @@ importers:
version: 0.0.1-security
vitest:
specifier: ^3.1.2
- version: 3.1.2(@types/node@18.17.5)(@vitest/ui@3.1.2)(jsdom@24.0.0)
+ version: 3.1.2(@types/node@22.15.3)(@vitest/ui@3.1.2)(jsdom@26.1.0)
packages/react-resizable-panels-website:
dependencies:
@@ -171,6 +171,16 @@ packages:
'@jridgewell/gen-mapping': 0.3.3
'@jridgewell/trace-mapping': 0.3.19
+ /@asamuzakjp/css-color@3.1.5:
+ resolution: {integrity: sha512-w7AmVyTTiU41fNLsFDf+gA2Dwtbx2EJtn2pbJNAGSRAg50loXy1uLXA3hEpD8+eydcomTurw09tq5/AyceCaGg==}
+ dependencies:
+ '@csstools/css-calc': 2.1.3(@csstools/css-parser-algorithms@3.0.4)(@csstools/css-tokenizer@3.0.3)
+ '@csstools/css-color-parser': 3.0.9(@csstools/css-parser-algorithms@3.0.4)(@csstools/css-tokenizer@3.0.3)
+ '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3)
+ '@csstools/css-tokenizer': 3.0.3
+ lru-cache: 10.4.3
+ dev: true
+
/@babel/code-frame@7.22.13:
resolution: {integrity: sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==}
engines: {node: '>=6.9.0'}
@@ -602,6 +612,49 @@ packages:
w3c-keyname: 2.2.8
dev: false
+ /@csstools/color-helpers@5.0.2:
+ resolution: {integrity: sha512-JqWH1vsgdGcw2RR6VliXXdA0/59LttzlU8UlRT/iUUsEeWfYq8I+K0yhihEUTTHLRm1EXvpsCx3083EU15ecsA==}
+ engines: {node: '>=18'}
+ dev: true
+
+ /@csstools/css-calc@2.1.3(@csstools/css-parser-algorithms@3.0.4)(@csstools/css-tokenizer@3.0.3):
+ resolution: {integrity: sha512-XBG3talrhid44BY1x3MHzUx/aTG8+x/Zi57M4aTKK9RFB4aLlF3TTSzfzn8nWVHWL3FgAXAxmupmDd6VWww+pw==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ '@csstools/css-parser-algorithms': ^3.0.4
+ '@csstools/css-tokenizer': ^3.0.3
+ dependencies:
+ '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3)
+ '@csstools/css-tokenizer': 3.0.3
+ dev: true
+
+ /@csstools/css-color-parser@3.0.9(@csstools/css-parser-algorithms@3.0.4)(@csstools/css-tokenizer@3.0.3):
+ resolution: {integrity: sha512-wILs5Zk7BU86UArYBJTPy/FMPPKVKHMj1ycCEyf3VUptol0JNRLFU/BZsJ4aiIHJEbSLiizzRrw8Pc1uAEDrXw==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ '@csstools/css-parser-algorithms': ^3.0.4
+ '@csstools/css-tokenizer': ^3.0.3
+ dependencies:
+ '@csstools/color-helpers': 5.0.2
+ '@csstools/css-calc': 2.1.3(@csstools/css-parser-algorithms@3.0.4)(@csstools/css-tokenizer@3.0.3)
+ '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3)
+ '@csstools/css-tokenizer': 3.0.3
+ dev: true
+
+ /@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3):
+ resolution: {integrity: sha512-Up7rBoV77rv29d3uKHUIVubz1BTcgyUK72IvCQAbfbMv584xHcGKCKbWh7i8hPrRJ7qU4Y8IO3IY9m+iTB7P3A==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ '@csstools/css-tokenizer': ^3.0.3
+ dependencies:
+ '@csstools/css-tokenizer': 3.0.3
+ dev: true
+
+ /@csstools/css-tokenizer@3.0.3:
+ resolution: {integrity: sha512-UJnjoFsmxfKUdNYdWgOB0mWUypuLvAfQPH1+pyvRJs6euowbFkFC6P13w1l8mJyi3vxYMxc9kld5jZEGRQs6bw==}
+ engines: {node: '>=18'}
+ dev: true
+
/@esbuild/aix-ppc64@0.21.5:
resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==}
engines: {node: '>=12'}
@@ -1660,7 +1713,7 @@ packages:
transitivePeerDependencies:
- '@parcel/core'
- /@parcel/transformer-typescript-types@2.9.3(@parcel/core@2.9.3)(typescript@5.1.6):
+ /@parcel/transformer-typescript-types@2.9.3(@parcel/core@2.9.3)(typescript@5.8.3):
resolution: {integrity: sha512-W+Ze3aUTdZuBQokXlkEQ/1hUApUm6VRyYzPqEs9jcqCqU8mv18i5ZGAz4bMuIJOBprp7M2wt10SJJx/SC1pl1A==}
engines: {node: '>= 12.0.0', parcel: ^2.9.3}
peerDependencies:
@@ -1669,22 +1722,22 @@ packages:
'@parcel/diagnostic': 2.9.3
'@parcel/plugin': 2.9.3(@parcel/core@2.9.3)
'@parcel/source-map': 2.1.1
- '@parcel/ts-utils': 2.9.3(typescript@5.1.6)
+ '@parcel/ts-utils': 2.9.3(typescript@5.8.3)
'@parcel/utils': 2.9.3
nullthrows: 1.1.1
- typescript: 5.1.6
+ typescript: 5.8.3
transitivePeerDependencies:
- '@parcel/core'
dev: false
- /@parcel/ts-utils@2.9.3(typescript@5.1.6):
+ /@parcel/ts-utils@2.9.3(typescript@5.8.3):
resolution: {integrity: sha512-MiQoXFV8I4IWZT/q5yolKN/gnEY5gZfGB2X7W9WHJbRgyjlT/A5cPERXzVBj6mc3/VM1GdZJz76w637GUcQhow==}
engines: {node: '>= 12.0.0'}
peerDependencies:
typescript: '>=3.0.0'
dependencies:
nullthrows: 1.1.1
- typescript: 5.1.6
+ typescript: 5.8.3
dev: false
/@parcel/types@2.9.3(@parcel/core@2.9.3):
@@ -1832,7 +1885,7 @@ packages:
engines: {node: '>=16'}
hasBin: true
dependencies:
- '@types/node': 18.17.5
+ '@types/node': 22.15.3
playwright-core: 1.37.0
optionalDependencies:
fsevents: 2.3.2
@@ -2227,8 +2280,10 @@ packages:
resolution: {integrity: sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==}
dev: true
- /@types/node@18.17.5:
- resolution: {integrity: sha512-xNbS75FxH6P4UXTPUJp/zNPq6/xsfdJKussCWNOnz4aULWIRwMgP1LgaB5RiBnMX1DPCYenuqGZfnIAx5mbFLA==}
+ /@types/node@22.15.3:
+ resolution: {integrity: sha512-lX7HFZeHf4QG/J7tBZqrCAXwz9J5RD56Y6MpP0eJkka8p+K0RY/yBTW7CYFJ4VGCclxqOLKmiGP5juQc6MKgcw==}
+ dependencies:
+ undici-types: 6.21.0
/@types/prop-types@15.7.5:
resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==}
@@ -2251,7 +2306,7 @@ packages:
/@types/resolve@1.17.1:
resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==}
dependencies:
- '@types/node': 18.17.5
+ '@types/node': 22.15.3
dev: false
/@types/scheduler@0.16.3:
@@ -2262,7 +2317,7 @@ packages:
resolution: {integrity: sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==}
dev: true
- /@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.47.0)(typescript@5.1.6):
+ /@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.47.0)(typescript@5.8.3):
resolution: {integrity: sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
@@ -2274,23 +2329,23 @@ packages:
optional: true
dependencies:
'@eslint-community/regexpp': 4.8.0
- '@typescript-eslint/parser': 5.62.0(eslint@8.47.0)(typescript@5.1.6)
+ '@typescript-eslint/parser': 5.62.0(eslint@8.47.0)(typescript@5.8.3)
'@typescript-eslint/scope-manager': 5.62.0
- '@typescript-eslint/type-utils': 5.62.0(eslint@8.47.0)(typescript@5.1.6)
- '@typescript-eslint/utils': 5.62.0(eslint@8.47.0)(typescript@5.1.6)
+ '@typescript-eslint/type-utils': 5.62.0(eslint@8.47.0)(typescript@5.8.3)
+ '@typescript-eslint/utils': 5.62.0(eslint@8.47.0)(typescript@5.8.3)
debug: 4.3.4
eslint: 8.47.0
graphemer: 1.4.0
ignore: 5.2.4
natural-compare-lite: 1.4.0
semver: 7.5.4
- tsutils: 3.21.0(typescript@5.1.6)
- typescript: 5.1.6
+ tsutils: 3.21.0(typescript@5.8.3)
+ typescript: 5.8.3
transitivePeerDependencies:
- supports-color
dev: true
- /@typescript-eslint/parser@5.62.0(eslint@8.47.0)(typescript@5.1.6):
+ /@typescript-eslint/parser@5.62.0(eslint@8.47.0)(typescript@5.8.3):
resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
@@ -2302,10 +2357,10 @@ packages:
dependencies:
'@typescript-eslint/scope-manager': 5.62.0
'@typescript-eslint/types': 5.62.0
- '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.1.6)
+ '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.8.3)
debug: 4.3.4
eslint: 8.47.0
- typescript: 5.1.6
+ typescript: 5.8.3
transitivePeerDependencies:
- supports-color
dev: true
@@ -2318,7 +2373,7 @@ packages:
'@typescript-eslint/visitor-keys': 5.62.0
dev: true
- /@typescript-eslint/type-utils@5.62.0(eslint@8.47.0)(typescript@5.1.6):
+ /@typescript-eslint/type-utils@5.62.0(eslint@8.47.0)(typescript@5.8.3):
resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
@@ -2328,12 +2383,12 @@ packages:
typescript:
optional: true
dependencies:
- '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.1.6)
- '@typescript-eslint/utils': 5.62.0(eslint@8.47.0)(typescript@5.1.6)
+ '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.8.3)
+ '@typescript-eslint/utils': 5.62.0(eslint@8.47.0)(typescript@5.8.3)
debug: 4.3.4
eslint: 8.47.0
- tsutils: 3.21.0(typescript@5.1.6)
- typescript: 5.1.6
+ tsutils: 3.21.0(typescript@5.8.3)
+ typescript: 5.8.3
transitivePeerDependencies:
- supports-color
dev: true
@@ -2343,7 +2398,7 @@ packages:
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dev: true
- /@typescript-eslint/typescript-estree@5.62.0(typescript@5.1.6):
+ /@typescript-eslint/typescript-estree@5.62.0(typescript@5.8.3):
resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
@@ -2358,13 +2413,13 @@ packages:
globby: 11.1.0
is-glob: 4.0.3
semver: 7.5.4
- tsutils: 3.21.0(typescript@5.1.6)
- typescript: 5.1.6
+ tsutils: 3.21.0(typescript@5.8.3)
+ typescript: 5.8.3
transitivePeerDependencies:
- supports-color
dev: true
- /@typescript-eslint/utils@5.62.0(eslint@8.47.0)(typescript@5.1.6):
+ /@typescript-eslint/utils@5.62.0(eslint@8.47.0)(typescript@5.8.3):
resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
@@ -2375,7 +2430,7 @@ packages:
'@types/semver': 7.5.0
'@typescript-eslint/scope-manager': 5.62.0
'@typescript-eslint/types': 5.62.0
- '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.1.6)
+ '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.8.3)
eslint: 8.47.0
eslint-scope: 5.1.1
semver: 7.5.4
@@ -2415,7 +2470,7 @@ packages:
'@vitest/spy': 3.1.2
estree-walker: 3.0.3
magic-string: 0.30.17
- vite: 5.3.5(@types/node@18.17.5)
+ vite: 5.3.5(@types/node@22.15.3)
dev: true
/@vitest/pretty-format@3.1.2:
@@ -2457,7 +2512,7 @@ packages:
sirv: 3.0.1
tinyglobby: 0.2.13
tinyrainbow: 2.0.0
- vitest: 3.1.2(@types/node@18.17.5)(@vitest/ui@3.1.2)(jsdom@24.0.0)
+ vitest: 3.1.2(@types/node@22.15.3)(@vitest/ui@3.1.2)(jsdom@26.1.0)
dev: true
/@vitest/utils@3.1.2:
@@ -2484,13 +2539,9 @@ packages:
engines: {node: '>=0.4.0'}
hasBin: true
- /agent-base@7.1.0:
- resolution: {integrity: sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==}
+ /agent-base@7.1.3:
+ resolution: {integrity: sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==}
engines: {node: '>= 14'}
- dependencies:
- debug: 4.4.0
- transitivePeerDependencies:
- - supports-color
dev: true
/ajv@6.12.6:
@@ -2540,10 +2591,6 @@ packages:
engines: {node: '>=12'}
dev: true
- /asynckit@0.4.0:
- resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
- dev: true
-
/at-least-node@1.0.0:
resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==}
engines: {node: '>= 4.0.0'}
@@ -2664,13 +2711,6 @@ packages:
/color-name@1.1.4:
resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
- /combined-stream@1.0.8:
- resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
- engines: {node: '>= 0.8'}
- dependencies:
- delayed-stream: 1.0.0
- dev: true
-
/commander@2.20.3:
resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
dev: false
@@ -2737,11 +2777,12 @@ packages:
dependencies:
css-tree: 1.1.3
- /cssstyle@4.0.1:
- resolution: {integrity: sha512-8ZYiJ3A/3OkDd093CBT/0UKDWry7ak4BdPTFP2+QEP7cmhouyq/Up709ASSj2cK02BbZiMgk7kYjZNS4QP5qrQ==}
+ /cssstyle@4.3.1:
+ resolution: {integrity: sha512-ZgW+Jgdd7i52AaLYCriF8Mxqft0gD/R9i9wi6RWBhs1pqdPEzPjym7rvRKi397WmQFf3SlyUsszhw+VVCbx79Q==}
engines: {node: '>=18'}
dependencies:
- rrweb-cssom: 0.6.0
+ '@asamuzakjp/css-color': 3.1.5
+ rrweb-cssom: 0.8.0
dev: true
/csstype@3.1.2:
@@ -2753,7 +2794,7 @@ packages:
engines: {node: '>=18'}
dependencies:
whatwg-mimetype: 4.0.0
- whatwg-url: 14.0.0
+ whatwg-url: 14.2.0
dev: true
/dataloader@2.2.2:
@@ -2783,8 +2824,8 @@ packages:
dependencies:
ms: 2.1.3
- /decimal.js@10.4.3:
- resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==}
+ /decimal.js@10.5.0:
+ resolution: {integrity: sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw==}
dev: true
/deep-eql@5.0.1:
@@ -2801,11 +2842,6 @@ packages:
engines: {node: '>=0.10.0'}
dev: false
- /delayed-stream@1.0.0:
- resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
- engines: {node: '>=0.4.0'}
- dev: true
-
/detect-indent@6.1.0:
resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==}
engines: {node: '>=8'}
@@ -2878,8 +2914,8 @@ packages:
resolution: {integrity: sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==}
engines: {node: '>=0.12'}
- /entities@4.5.0:
- resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
+ /entities@6.0.0:
+ resolution: {integrity: sha512-aKstq2TDOndCn4diEyp9Uq/Flu2i1GlLkc6XIDQSDMuaFE3OPW5OphLCyQ5SpSJZTb4reN+kTcYru5yIfXoRPw==}
engines: {node: '>=0.12'}
dev: true
@@ -3153,15 +3189,6 @@ packages:
resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==}
dev: true
- /form-data@4.0.0:
- resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==}
- engines: {node: '>= 6'}
- dependencies:
- asynckit: 0.4.0
- combined-stream: 1.0.8
- mime-types: 2.1.35
- dev: true
-
/fs-extra@9.1.0:
resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==}
engines: {node: '>=10'}
@@ -3338,21 +3365,21 @@ packages:
domutils: 2.8.0
entities: 3.0.1
- /http-proxy-agent@7.0.0:
- resolution: {integrity: sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==}
+ /http-proxy-agent@7.0.2:
+ resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==}
engines: {node: '>= 14'}
dependencies:
- agent-base: 7.1.0
+ agent-base: 7.1.3
debug: 4.4.0
transitivePeerDependencies:
- supports-color
dev: true
- /https-proxy-agent@7.0.2:
- resolution: {integrity: sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==}
+ /https-proxy-agent@7.0.6:
+ resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==}
engines: {node: '>= 14'}
dependencies:
- agent-base: 7.1.0
+ agent-base: 7.1.3
debug: 4.4.0
transitivePeerDependencies:
- supports-color
@@ -3477,7 +3504,7 @@ packages:
resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==}
engines: {node: '>= 10.13.0'}
dependencies:
- '@types/node': 18.17.5
+ '@types/node': 22.15.3
merge-stream: 2.0.0
supports-color: 7.2.0
dev: false
@@ -3491,34 +3518,33 @@ packages:
dependencies:
argparse: 2.0.1
- /jsdom@24.0.0:
- resolution: {integrity: sha512-UDS2NayCvmXSXVP6mpTj+73JnNQadZlr9N68189xib2tx5Mls7swlTNao26IoHv46BZJFvXygyRtyXd1feAk1A==}
+ /jsdom@26.1.0:
+ resolution: {integrity: sha512-Cvc9WUhxSMEo4McES3P7oK3QaXldCfNWp7pl2NNeiIFlCoLr3kfq9kb1fxftiwk1FLV7CvpvDfonxtzUDeSOPg==}
engines: {node: '>=18'}
peerDependencies:
- canvas: ^2.11.2
+ canvas: ^3.0.0
peerDependenciesMeta:
canvas:
optional: true
dependencies:
- cssstyle: 4.0.1
+ cssstyle: 4.3.1
data-urls: 5.0.0
- decimal.js: 10.4.3
- form-data: 4.0.0
+ decimal.js: 10.5.0
html-encoding-sniffer: 4.0.0
- http-proxy-agent: 7.0.0
- https-proxy-agent: 7.0.2
+ http-proxy-agent: 7.0.2
+ https-proxy-agent: 7.0.6
is-potential-custom-element-name: 1.0.1
- nwsapi: 2.2.7
- parse5: 7.1.2
- rrweb-cssom: 0.6.0
+ nwsapi: 2.2.20
+ parse5: 7.3.0
+ rrweb-cssom: 0.8.0
saxes: 6.0.0
symbol-tree: 3.2.4
- tough-cookie: 4.1.4
+ tough-cookie: 5.1.2
w3c-xmlserializer: 5.0.0
webidl-conversions: 7.0.0
whatwg-encoding: 3.1.1
whatwg-mimetype: 4.0.0
- whatwg-url: 14.0.0
+ whatwg-url: 14.2.0
ws: 8.18.1
xml-name-validator: 5.0.0
transitivePeerDependencies:
@@ -3715,6 +3741,10 @@ packages:
resolution: {integrity: sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug==}
dev: true
+ /lru-cache@10.4.3:
+ resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==}
+ dev: true
+
/lru-cache@5.1.1:
resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
dependencies:
@@ -3770,18 +3800,6 @@ packages:
braces: 3.0.2
picomatch: 2.3.1
- /mime-db@1.52.0:
- resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
- engines: {node: '>= 0.6'}
- dev: true
-
- /mime-types@2.1.35:
- resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
- engines: {node: '>= 0.6'}
- dependencies:
- mime-db: 1.52.0
- dev: true
-
/minimatch@3.1.2:
resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
dependencies:
@@ -3898,8 +3916,8 @@ packages:
/nullthrows@1.1.1:
resolution: {integrity: sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==}
- /nwsapi@2.2.7:
- resolution: {integrity: sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==}
+ /nwsapi@2.2.20:
+ resolution: {integrity: sha512-/ieB+mDe4MrrKMT8z+mQL8klXydZWGR5Dowt4RAGKbJ3kIGEx3X4ljUo+6V73IXtUPWgfOlU5B9MlGxFO5T+cA==}
dev: true
/object-path@0.6.0:
@@ -3995,10 +4013,10 @@ packages:
json-parse-even-better-errors: 2.3.1
lines-and-columns: 1.2.4
- /parse5@7.1.2:
- resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==}
+ /parse5@7.3.0:
+ resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==}
dependencies:
- entities: 4.5.0
+ entities: 6.0.0
dev: true
/path-exists@4.0.0:
@@ -4116,10 +4134,6 @@ packages:
engines: {node: '>= 0.6.0'}
dev: true
- /psl@1.9.0:
- resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==}
- dev: true
-
/punycode@2.3.0:
resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==}
engines: {node: '>=6'}
@@ -4130,10 +4144,6 @@ packages:
engines: {node: '>=6'}
dev: true
- /querystringify@2.2.0:
- resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==}
- dev: true
-
/queue-microtask@1.2.3:
resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
@@ -4208,10 +4218,6 @@ packages:
resolution: {integrity: sha512-8g3/Otx1eJaVD12e31UbJj1YzdtVvzH85HV7t+9MJYk/u3XmkOUJ5Ys9wQrf9PCPK8+xn4ymzqYCiZl6QWKn+A==}
dev: false
- /requires-port@1.0.0:
- resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==}
- dev: true
-
/resolve-from@4.0.0:
resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
engines: {node: '>=4'}
@@ -4275,8 +4281,8 @@ packages:
fsevents: 2.3.3
dev: true
- /rrweb-cssom@0.6.0:
- resolution: {integrity: sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==}
+ /rrweb-cssom@0.8.0:
+ resolution: {integrity: sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==}
dev: true
/run-parallel@1.2.0:
@@ -4515,6 +4521,17 @@ packages:
engines: {node: '>=14.0.0'}
dev: true
+ /tldts-core@6.1.86:
+ resolution: {integrity: sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==}
+ dev: true
+
+ /tldts@6.1.86:
+ resolution: {integrity: sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ==}
+ hasBin: true
+ dependencies:
+ tldts-core: 6.1.86
+ dev: true
+
/to-fast-properties@2.0.0:
resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==}
engines: {node: '>=4'}
@@ -4530,18 +4547,15 @@ packages:
engines: {node: '>=6'}
dev: true
- /tough-cookie@4.1.4:
- resolution: {integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==}
- engines: {node: '>=6'}
+ /tough-cookie@5.1.2:
+ resolution: {integrity: sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==}
+ engines: {node: '>=16'}
dependencies:
- psl: 1.9.0
- punycode: 2.3.0
- universalify: 0.2.0
- url-parse: 1.5.10
+ tldts: 6.1.86
dev: true
- /tr46@5.0.0:
- resolution: {integrity: sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==}
+ /tr46@5.1.1:
+ resolution: {integrity: sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==}
engines: {node: '>=18'}
dependencies:
punycode: 2.3.1
@@ -4554,14 +4568,14 @@ packages:
/tslib@2.6.2:
resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==}
- /tsutils@3.21.0(typescript@5.1.6):
+ /tsutils@3.21.0(typescript@5.8.3):
resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==}
engines: {node: '>= 6'}
peerDependencies:
typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta'
dependencies:
tslib: 1.14.1
- typescript: 5.1.6
+ typescript: 5.8.3
dev: true
/type-check@0.4.0:
@@ -4575,15 +4589,13 @@ packages:
resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
engines: {node: '>=10'}
- /typescript@5.1.6:
- resolution: {integrity: sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==}
+ /typescript@5.8.3:
+ resolution: {integrity: sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==}
engines: {node: '>=14.17'}
hasBin: true
- /universalify@0.2.0:
- resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==}
- engines: {node: '>= 4.0.0'}
- dev: true
+ /undici-types@6.21.0:
+ resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==}
/universalify@2.0.0:
resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==}
@@ -4606,13 +4618,6 @@ packages:
punycode: 2.3.0
dev: true
- /url-parse@1.5.10:
- resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==}
- dependencies:
- querystringify: 2.2.0
- requires-port: 1.0.0
- dev: true
-
/utility-types@3.10.0:
resolution: {integrity: sha512-O11mqxmi7wMKCo6HKFt5AhO4BwY3VV68YU07tgxfz8zJTIxr4BpsezN49Ffwy9j3ZpwwJp4fkRwjRzq3uWE6Rg==}
engines: {node: '>= 4'}
@@ -4621,7 +4626,7 @@ packages:
resolution: {integrity: sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==}
dev: false
- /vite-node@3.1.2(@types/node@18.17.5):
+ /vite-node@3.1.2(@types/node@22.15.3):
resolution: {integrity: sha512-/8iMryv46J3aK13iUXsei5G/A3CUlW4665THCPS+K8xAaqrVWiGB4RfXMQXCLjpK9P2eK//BczrVkn5JLAk6DA==}
engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
hasBin: true
@@ -4630,7 +4635,7 @@ packages:
debug: 4.4.0
es-module-lexer: 1.7.0
pathe: 2.0.3
- vite: 5.3.5(@types/node@18.17.5)
+ vite: 5.3.5(@types/node@22.15.3)
transitivePeerDependencies:
- '@types/node'
- less
@@ -4642,7 +4647,7 @@ packages:
- terser
dev: true
- /vite@5.3.5(@types/node@18.17.5):
+ /vite@5.3.5(@types/node@22.15.3):
resolution: {integrity: sha512-MdjglKR6AQXQb9JGiS7Rc2wC6uMjcm7Go/NHNO63EwiJXfuk9PgqiP/n5IDJCziMkfw9n4Ubp7lttNwz+8ZVKA==}
engines: {node: ^18.0.0 || >=20.0.0}
hasBin: true
@@ -4670,7 +4675,7 @@ packages:
terser:
optional: true
dependencies:
- '@types/node': 18.17.5
+ '@types/node': 22.15.3
esbuild: 0.21.5
postcss: 8.4.40
rollup: 4.19.0
@@ -4678,7 +4683,7 @@ packages:
fsevents: 2.3.3
dev: true
- /vitest@3.1.2(@types/node@18.17.5)(@vitest/ui@3.1.2)(jsdom@24.0.0):
+ /vitest@3.1.2(@types/node@22.15.3)(@vitest/ui@3.1.2)(jsdom@26.1.0):
resolution: {integrity: sha512-WaxpJe092ID1C0mr+LH9MmNrhfzi8I65EX/NRU/Ld016KqQNRgxSOlGNP1hHN+a/F8L15Mh8klwaF77zR3GeDQ==}
engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
hasBin: true
@@ -4706,7 +4711,7 @@ packages:
jsdom:
optional: true
dependencies:
- '@types/node': 18.17.5
+ '@types/node': 22.15.3
'@vitest/expect': 3.1.2
'@vitest/mocker': 3.1.2(vite@5.3.5)
'@vitest/pretty-format': 3.1.2
@@ -4718,7 +4723,7 @@ packages:
chai: 5.2.0
debug: 4.4.0
expect-type: 1.2.1
- jsdom: 24.0.0
+ jsdom: 26.1.0
magic-string: 0.30.17
pathe: 2.0.3
std-env: 3.9.0
@@ -4727,8 +4732,8 @@ packages:
tinyglobby: 0.2.13
tinypool: 1.0.2
tinyrainbow: 2.0.0
- vite: 5.3.5(@types/node@18.17.5)
- vite-node: 3.1.2(@types/node@18.17.5)
+ vite: 5.3.5(@types/node@22.15.3)
+ vite-node: 3.1.2(@types/node@22.15.3)
why-is-node-running: 2.3.0
transitivePeerDependencies:
- less
@@ -4772,11 +4777,11 @@ packages:
engines: {node: '>=18'}
dev: true
- /whatwg-url@14.0.0:
- resolution: {integrity: sha512-1lfMEm2IEr7RIV+f4lUNPOqfFL+pO+Xw3fJSqmjX9AbXcXcYOkCe1P6+9VBZB6n94af16NfZf+sSk0JCBZC9aw==}
+ /whatwg-url@14.2.0:
+ resolution: {integrity: sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==}
engines: {node: '>=18'}
dependencies:
- tr46: 5.0.0
+ tr46: 5.1.1
webidl-conversions: 7.0.0
dev: true
diff --git a/tsconfig.json b/tsconfig.json
index a27c8c286..f9f99bc5f 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -8,6 +8,7 @@
"noImplicitAny": true,
"noUncheckedIndexedAccess": true,
"strict": true,
+ "target": "ESNext",
"typeRoots": ["node_modules/@types"],
"types": ["node"],
},