From bb73d6be3ffd21c166065c06559634076ea243e6 Mon Sep 17 00:00:00 2001
From: Chris Zetter <253059100+zetter-rpf@users.noreply.github.com>
Date: Fri, 21 Aug 2026 16:37:23 +0100
Subject: [PATCH 01/16] Migrate ScratchContainer test file to Vitest
Previously ScratchContainer.test.jsx only ran under Jest, blocked by
the window.localStorage gap fixed in an earlier commit.
This change swaps jest.fn/jest.mock/jest.clearAllMocks/
jest.useFakeTimers/jest.useRealTimers/jest.advanceTimersByTime for
their vi equivalents and jest.requireActual for the async
vi.importActual pattern.
The test used require("./ScratchContainer") instead of a static
import specifically so the module loaded after the overlayscrollbars
mocks were set up - ScratchContainer.jsx calls
OverlayScrollbars.plugin() at module scope, not just inside the
component. Vitest does not resolve a bare require() the way Jest
does, so this switched to a static import, which surfaced the same
ordering problem in ESM form: vi.mock is hoisted above the import,
but the mock factories referenced mockOverlayScrollbarsComponent and
mockPlugin, plain consts declared below the (also hoisted) mocks,
so ScratchContainer.jsx ran into them before initialization. Moved
those declarations into a vi.hoisted() block, which Vitest hoists to
the same position as vi.mock, resolving the ordering.
Confirmed via full Jest and Vitest runs: 176 Jest + 875 Vitest tests
pass, the same total as before the move.
---
.../Editor/Project/ScratchContainer.test.jsx | 61 +++++++++++--------
test-runner-migration.js | 1 -
2 files changed, 34 insertions(+), 28 deletions(-)
diff --git a/src/components/Editor/Project/ScratchContainer.test.jsx b/src/components/Editor/Project/ScratchContainer.test.jsx
index 0e8ecc776..5df3447c5 100644
--- a/src/components/Editor/Project/ScratchContainer.test.jsx
+++ b/src/components/Editor/Project/ScratchContainer.test.jsx
@@ -2,6 +2,7 @@ import { render, screen } from "@testing-library/react";
import React, { act } from "react";
import { Provider } from "react-redux";
import { configureStore } from "@reduxjs/toolkit";
+import ScratchContainer from "./ScratchContainer";
import EditorReducer from "../../../redux/EditorSlice";
import * as scratchIframeUtils from "../../../utils/scratchIframe";
import webComponentStore from "../../../redux/stores/WebComponentStore";
@@ -9,39 +10,45 @@ import { setUser } from "../../../redux/WebComponentAuthSlice";
import { resetStore } from "../../../redux/RootSlice";
import { resetRunEventCodeSnapshot } from "../../WebComponentProject/runEventCodeSnapshot";
-jest.mock("../../../utils/scratchIframe", () => ({
- ...jest.requireActual("../../../utils/scratchIframe"),
- postMessageToScratchIframe: jest.fn(),
+vi.mock("../../../utils/scratchIframe", async () => ({
+ ...(await vi.importActual("../../../utils/scratchIframe")),
+ postMessageToScratchIframe: vi.fn(),
}));
-const renderMockOverlayScrollbarsComponent = ({
- children,
- className,
- "data-testid": dataTestId,
-}) => (
-
- {children}
-
-);
-
-const mockOverlayScrollbarsComponent = jest.fn(
+const {
renderMockOverlayScrollbarsComponent,
-);
-const mockPlugin = jest.fn();
+ mockOverlayScrollbarsComponent,
+ mockPlugin,
+} = vi.hoisted(() => {
+ const renderMockOverlayScrollbarsComponent = ({
+ children,
+ className,
+ "data-testid": dataTestId,
+ }) =>
+ React.createElement(
+ "div",
+ { className, "data-testid": dataTestId },
+ children,
+ );
-jest.mock("overlayscrollbars-react", () => ({
+ return {
+ renderMockOverlayScrollbarsComponent,
+ mockOverlayScrollbarsComponent: vi.fn(renderMockOverlayScrollbarsComponent),
+ mockPlugin: vi.fn(),
+ };
+});
+
+vi.mock("overlayscrollbars-react", () => ({
OverlayScrollbarsComponent: (props) => mockOverlayScrollbarsComponent(props),
}));
-jest.mock("overlayscrollbars", () => ({
+vi.mock("overlayscrollbars", () => ({
ClickScrollPlugin: { name: "ClickScrollPlugin" },
OverlayScrollbars: {
plugin: (...args) => mockPlugin(...args),
},
}));
-const ScratchContainer = require("./ScratchContainer").default;
-
describe("ScratchContainer", () => {
const defaultEditorState = {
project: {
@@ -134,7 +141,7 @@ describe("ScratchContainer", () => {
afterEach(() => {
process.env.REACT_APP_SCRATCH_FRAME_URL = originalScratchFrameUrl;
- jest.clearAllMocks();
+ vi.clearAllMocks();
});
test("renders iframe with src built from project_id and api_url", () => {
@@ -191,20 +198,20 @@ describe("ScratchContainer", () => {
let runStartedHandler;
beforeEach(() => {
- jest.useFakeTimers();
+ vi.useFakeTimers();
resetRunEventCodeSnapshot();
- runStartedHandler = jest.fn();
+ runStartedHandler = vi.fn();
document.addEventListener("editor-runStarted", runStartedHandler);
});
afterEach(() => {
- jest.useRealTimers();
+ vi.useRealTimers();
document.removeEventListener("editor-runStarted", runStartedHandler);
});
const flushScratchRunDebounce = () => {
act(() => {
- jest.advanceTimersByTime(250);
+ vi.advanceTimersByTime(250);
});
};
@@ -325,7 +332,7 @@ describe("ScratchContainer", () => {
flushScratchRunDebounce();
act(() => {
- jest.advanceTimersByTime(250);
+ vi.advanceTimersByTime(250);
});
act(() => {
@@ -377,7 +384,7 @@ describe("ScratchContainer", () => {
flushScratchRunDebounce();
act(() => {
- jest.advanceTimersByTime(250);
+ vi.advanceTimersByTime(250);
});
act(() => {
diff --git a/test-runner-migration.js b/test-runner-migration.js
index 198ab5ffd..70d5f312e 100644
--- a/test-runner-migration.js
+++ b/test-runner-migration.js
@@ -7,7 +7,6 @@
// any new test file.
const JEST_ONLY_TEST_FILES = [
"src/components/Editor/Project/Project.test.jsx",
- "src/components/Editor/Project/ScratchContainer.test.jsx",
"src/components/Editor/Runners/HtmlRunner/HtmlRunner.test.jsx",
"src/components/Editor/Runners/PythonRunner/PyodideRunner/PyodideRunner.test.jsx",
"src/components/Editor/Runners/PythonRunner/PyodideRunner/PyodideWorker.test.js",
From df4400be66b7deff2c4135716d083a9c4d228885 Mon Sep 17 00:00:00 2001
From: Chris Zetter <253059100+zetter-rpf@users.noreply.github.com>
Date: Fri, 21 Aug 2026 16:39:31 +0100
Subject: [PATCH 02/16] Migrate HtmlRunner test file to Vitest
Previously HtmlRunner.test.jsx only ran under Jest, blocked by the
window.localStorage gap fixed in an earlier commit (HtmlRunner.jsx
calls localStorage.setItem).
This change swaps jest.spyOn for vi.spyOn, and jest.requireActual for
the async vi.importActual pattern for both the react-responsive mock
and the node-html-parser mock. The latter also called
jest.requireActual("node-html-parser") a second time, synchronously,
inside a later beforeEachs mockImplementation callback - not possible
with vi.importActuals async API, so that beforeEach now reuses a
single actualParseHtml reference resolved once via a top-level await
vi.importActual(...) instead of re-requiring the real module on every
render.
Confirmed via full Jest and Vitest runs: 158 Jest + 893 Vitest tests
pass, the same total as before the move.
---
.../Runners/HtmlRunner/HtmlRunner.test.jsx | 18 +++++++++---------
test-runner-migration.js | 1 -
2 files changed, 9 insertions(+), 10 deletions(-)
diff --git a/src/components/Editor/Runners/HtmlRunner/HtmlRunner.test.jsx b/src/components/Editor/Runners/HtmlRunner/HtmlRunner.test.jsx
index f5aec0e94..5889c00d3 100644
--- a/src/components/Editor/Runners/HtmlRunner/HtmlRunner.test.jsx
+++ b/src/components/Editor/Runners/HtmlRunner/HtmlRunner.test.jsx
@@ -25,16 +25,18 @@ let mockMediaQuery = (query) => {
return matchMedia(query).matches;
};
-jest.mock("react-responsive", () => ({
- ...jest.requireActual("react-responsive"),
+vi.mock("react-responsive", async () => ({
+ ...(await vi.importActual("react-responsive")),
useMediaQuery: ({ query }) => mockMediaQuery(query),
}));
-jest.mock("node-html-parser", () => {
- const actual = jest.requireActual("node-html-parser");
+const { parse: actualParseHtml } = await vi.importActual("node-html-parser");
+
+vi.mock("node-html-parser", async () => {
+ const actual = await vi.importActual("node-html-parser");
return {
...actual,
- parse: jest.fn((...args) => actual.parse(...args)),
+ parse: vi.fn((...args) => actual.parse(...args)),
};
});
@@ -272,9 +274,7 @@ describe("When run is triggered", () => {
};
store = mockStore(initialState);
- parseHtml.mockImplementation((...args) =>
- jest.requireActual("node-html-parser").parse(...args),
- );
+ parseHtml.mockImplementation((...args) => actualParseHtml(...args));
render(
@@ -287,7 +287,7 @@ describe("When run is triggered", () => {
);
const iframe = screen.getByTitle("runners.HtmlOutput");
- mockPostMessageFn = jest
+ mockPostMessageFn = vi
.spyOn(iframe.contentWindow, "postMessage")
.mockImplementation(() => {});
diff --git a/test-runner-migration.js b/test-runner-migration.js
index 70d5f312e..2b33ddefa 100644
--- a/test-runner-migration.js
+++ b/test-runner-migration.js
@@ -7,7 +7,6 @@
// any new test file.
const JEST_ONLY_TEST_FILES = [
"src/components/Editor/Project/Project.test.jsx",
- "src/components/Editor/Runners/HtmlRunner/HtmlRunner.test.jsx",
"src/components/Editor/Runners/PythonRunner/PyodideRunner/PyodideRunner.test.jsx",
"src/components/Editor/Runners/PythonRunner/PyodideRunner/PyodideWorker.test.js",
"src/components/Editor/Runners/PythonRunner/PyodideRunner/VisualOutputPane.test.jsx",
From 4d390ee11113c096dcbbc2e8fab84ecade040ca1 Mon Sep 17 00:00:00 2001
From: Chris Zetter <253059100+zetter-rpf@users.noreply.github.com>
Date: Fri, 21 Aug 2026 16:41:38 +0100
Subject: [PATCH 03/16] Migrate PythonRunner test file to Vitest
Previously PythonRunner.test.jsx only ran under Jest. It has no
Jest-only APIs itself, but rendering it crashed under Vitest because
PyodideRunner.jsx constructs `new Worker(...)` on mount and Vitests
jsdom environment, unlike jest-environment-jsdom, does not define a
global Worker. setupTests.vitest.js now defines a minimal stub
Worker class, matching the window.Worker = PyodideWorker stub
setupTests.js already installs for Jest via
PyodideWorker.mock.js, which fixes this for any test that mounts a
component constructing a Worker, not just this one.
Confirmed via full Jest and Vitest runs: 144 Jest + 907 Vitest tests
pass, the same total as before the move.
---
src/utils/setupTests.vitest.js | 5 +++++
test-runner-migration.js | 1 -
2 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/src/utils/setupTests.vitest.js b/src/utils/setupTests.vitest.js
index 7f1497d1d..a590da840 100644
--- a/src/utils/setupTests.vitest.js
+++ b/src/utils/setupTests.vitest.js
@@ -36,6 +36,11 @@ Object.defineProperty(window, "localStorage", {
configurable: true,
});
+window.Worker = class {
+ postMessage = vi.fn();
+ onmessage = null;
+};
+
window.matchMedia = (query) => ({
matches: false,
media: query,
diff --git a/test-runner-migration.js b/test-runner-migration.js
index 2b33ddefa..ad57dd402 100644
--- a/test-runner-migration.js
+++ b/test-runner-migration.js
@@ -10,7 +10,6 @@ const JEST_ONLY_TEST_FILES = [
"src/components/Editor/Runners/PythonRunner/PyodideRunner/PyodideRunner.test.jsx",
"src/components/Editor/Runners/PythonRunner/PyodideRunner/PyodideWorker.test.js",
"src/components/Editor/Runners/PythonRunner/PyodideRunner/VisualOutputPane.test.jsx",
- "src/components/Editor/Runners/PythonRunner/PythonRunner.test.jsx",
"src/components/Editor/Runners/PythonRunner/SkulptRunner/SkulptRunner.test.jsx",
];
From f355deb4bb2edab671097c66be106a7e101df886 Mon Sep 17 00:00:00 2001
From: Chris Zetter <253059100+zetter-rpf@users.noreply.github.com>
Date: Fri, 21 Aug 2026 16:47:35 +0100
Subject: [PATCH 04/16] Migrate PyodideRunner test file to Vitest
Previously PyodideRunner.test.jsx only ran under Jest. Rendering it
needs window.Worker, since PyodideRunner.jsx constructs one on mount,
and it also imports the shared PyodideWorker.mock.js directly to
track and drive worker instances via getLastInstance() -
that mock file uses jest.fn(), so it does not work under Vitest.
Added PyodideWorker.mock.vitest.js as its vi.fn()-based counterpart,
used by this test.
Rather than installing window.Worker globally in
setupTests.vitest.js as first attempted, both this file and
PythonRunner.test.jsx (migrated previously) now set it themselves,
right where its needed - Vitest gives each test file its own fresh
window, so a module-scope assignment cant leak into other test
files, and nothing here reassigns it between tests, so no
before/after hook is needed either.
The "When friendly errors are enabled" tests used
require("@raspberrypifoundation/python-friendly-error-messages")
inside a beforeEach specifically to read back the (Jest-)global-mocked
functions without going through ESM import hoisting. Vitest cant
resolve that packages real dist build via require any better than via
import, so this switched to a static import of the same three
functions, which Vitests hoisted vi.mock in setupTests.vitest.js
already intercepts.
Confirmed via full Jest and Vitest runs: 101 Jest + 950 Vitest tests
pass, the same total as before the move.
---
.../PyodideRunner/PyodideRunner.test.jsx | 29 +++++++------------
.../PyodideWorker.mock.vitest.js | 25 ++++++++++++++++
.../PythonRunner/PythonRunner.test.jsx | 3 ++
src/utils/setupTests.vitest.js | 5 ----
test-runner-migration.js | 1 -
5 files changed, 39 insertions(+), 24 deletions(-)
create mode 100644 src/components/Editor/Runners/PythonRunner/PyodideRunner/PyodideWorker.mock.vitest.js
diff --git a/src/components/Editor/Runners/PythonRunner/PyodideRunner/PyodideRunner.test.jsx b/src/components/Editor/Runners/PythonRunner/PyodideRunner/PyodideRunner.test.jsx
index 9b9c7745f..167660b44 100644
--- a/src/components/Editor/Runners/PythonRunner/PyodideRunner/PyodideRunner.test.jsx
+++ b/src/components/Editor/Runners/PythonRunner/PyodideRunner/PyodideRunner.test.jsx
@@ -8,7 +8,12 @@ import {
import PyodideRunner from "./PyodideRunner";
import { Provider } from "react-redux";
-import PyodideWorker, { postMessage } from "./PyodideWorker.mock.js";
+import PyodideWorker, { postMessage } from "./PyodideWorker.mock.vitest.js";
+import {
+ loadCopydeckFor,
+ registerAdapter,
+ friendlyExplain,
+} from "@raspberrypifoundation/python-friendly-error-messages";
import {
resetState,
@@ -24,8 +29,9 @@ import {
} from "../../../../../redux/EditorSlice.js";
import store from "../../../../../app/store";
-jest.mock("fs");
-global.fetch = jest.fn();
+vi.mock("fs");
+global.fetch = vi.fn();
+window.Worker = PyodideWorker;
const project = {
components: [
@@ -57,7 +63,7 @@ let dispatchSpy;
beforeEach(() => {
store.dispatch(resetState());
window.crossOriginIsolated = true;
- dispatchSpy = jest.spyOn(store, "dispatch");
+ dispatchSpy = vi.spyOn(store, "dispatch");
fetch.mockClear();
});
@@ -289,7 +295,7 @@ describe("When output is received", () => {
);
const worker = PyodideWorker.getLastInstance();
- worker.postMessage = jest.fn();
+ worker.postMessage = vi.fn();
worker.postMessageFromWorker({
method: "handleOutput",
stream: "stdout",
@@ -532,10 +538,6 @@ describe("When an error is received", () => {
});
describe("When friendly errors are enabled", () => {
- let loadCopydeckFor;
- let registerAdapter;
- let friendlyExplain;
-
const friendlyErrorHtml =
'Friendly error title
' +
'A friendly summary of the error
';
@@ -549,15 +551,6 @@ describe("When an error is received", () => {
mistake: "if score = 10:\n ^^^^^^^^^^",
};
- beforeEach(() => {
- ({
- // Using the global mock in setupTests.js to track calls to these functions
- loadCopydeckFor,
- registerAdapter,
- friendlyExplain,
- } = require("@raspberrypifoundation/python-friendly-error-messages"));
- });
-
describe("on mount", () => {
beforeEach(() => {
render(
diff --git a/src/components/Editor/Runners/PythonRunner/PyodideRunner/PyodideWorker.mock.vitest.js b/src/components/Editor/Runners/PythonRunner/PyodideRunner/PyodideWorker.mock.vitest.js
new file mode 100644
index 000000000..f6230cb9e
--- /dev/null
+++ b/src/components/Editor/Runners/PythonRunner/PyodideRunner/PyodideWorker.mock.vitest.js
@@ -0,0 +1,25 @@
+import { vi } from "vitest";
+
+export const postMessage = vi.fn((...args) => {
+ console.log("Received postMessage with", args);
+});
+
+class PyodideWorker {
+ constructor() {
+ this.postMessage = postMessage;
+ this.onmessage = null;
+ PyodideWorker.lastInstance = this;
+ }
+
+ postMessageFromWorker(message) {
+ if (this.onmessage) {
+ this.onmessage({ data: message });
+ }
+ }
+
+ static getLastInstance() {
+ return PyodideWorker.lastInstance;
+ }
+}
+
+export default PyodideWorker;
diff --git a/src/components/Editor/Runners/PythonRunner/PythonRunner.test.jsx b/src/components/Editor/Runners/PythonRunner/PythonRunner.test.jsx
index b92f9cf3f..43113819e 100644
--- a/src/components/Editor/Runners/PythonRunner/PythonRunner.test.jsx
+++ b/src/components/Editor/Runners/PythonRunner/PythonRunner.test.jsx
@@ -2,6 +2,7 @@ import { render, within } from "@testing-library/react";
import { Provider } from "react-redux";
import { act } from "react-dom/test-utils";
import PythonRunner from "./PythonRunner";
+import PyodideWorker from "./PyodideRunner/PyodideWorker.mock.vitest.js";
import {
triggerCodeRun,
setProject,
@@ -9,6 +10,8 @@ import {
} from "../../../../redux/EditorSlice";
import store from "../../../../app/store";
+window.Worker = PyodideWorker;
+
const initialState = {
editor: {
project: {
diff --git a/src/utils/setupTests.vitest.js b/src/utils/setupTests.vitest.js
index a590da840..7f1497d1d 100644
--- a/src/utils/setupTests.vitest.js
+++ b/src/utils/setupTests.vitest.js
@@ -36,11 +36,6 @@ Object.defineProperty(window, "localStorage", {
configurable: true,
});
-window.Worker = class {
- postMessage = vi.fn();
- onmessage = null;
-};
-
window.matchMedia = (query) => ({
matches: false,
media: query,
diff --git a/test-runner-migration.js b/test-runner-migration.js
index ad57dd402..15dbf26a6 100644
--- a/test-runner-migration.js
+++ b/test-runner-migration.js
@@ -7,7 +7,6 @@
// any new test file.
const JEST_ONLY_TEST_FILES = [
"src/components/Editor/Project/Project.test.jsx",
- "src/components/Editor/Runners/PythonRunner/PyodideRunner/PyodideRunner.test.jsx",
"src/components/Editor/Runners/PythonRunner/PyodideRunner/PyodideWorker.test.js",
"src/components/Editor/Runners/PythonRunner/PyodideRunner/VisualOutputPane.test.jsx",
"src/components/Editor/Runners/PythonRunner/SkulptRunner/SkulptRunner.test.jsx",
From 5d8b0c670e51735d671300e18166ab67172b4e25 Mon Sep 17 00:00:00 2001
From: Chris Zetter <253059100+zetter-rpf@users.noreply.github.com>
Date: Fri, 21 Aug 2026 16:49:27 +0100
Subject: [PATCH 05/16] Migrate SkulptRunner test file to Vitest
Previously SkulptRunner.test.jsx only ran under Jest.
This change swaps jest.fn/jest.spyOn for vi equivalents and
jest.requireActual for the async vi.importActual pattern for the
react-responsive mock. As with PyodideRunner, the "When friendly
errors are enabled" tests used
require("@raspberrypifoundation/python-friendly-error-messages")
inside a beforeEach to read back the global-mocked functions; that
require call is replaced with a static import of the same three
functions, resolved via the hoisted vi.mock in setupTests.vitest.js.
Confirmed via full Jest and Vitest runs: 42 Jest + 1009 Vitest tests
pass, the same total as before the move.
---
.../SkulptRunner/SkulptRunner.test.jsx | 34 ++++++++-----------
test-runner-migration.js | 1 -
2 files changed, 14 insertions(+), 21 deletions(-)
diff --git a/src/components/Editor/Runners/PythonRunner/SkulptRunner/SkulptRunner.test.jsx b/src/components/Editor/Runners/PythonRunner/SkulptRunner/SkulptRunner.test.jsx
index b2e2e659e..038205b4b 100644
--- a/src/components/Editor/Runners/PythonRunner/SkulptRunner/SkulptRunner.test.jsx
+++ b/src/components/Editor/Runners/PythonRunner/SkulptRunner/SkulptRunner.test.jsx
@@ -19,13 +19,18 @@ import editorReducer from "../../../../../redux/EditorSlice";
import { SettingsContext } from "../../../../../utils/settings";
import { matchMedia, setMedia } from "mock-match-media";
import { MOBILE_BREAKPOINT } from "../../../../../utils/mediaQueryBreakpoints";
+import {
+ loadCopydeckFor,
+ registerAdapter,
+ friendlyExplain,
+} from "@raspberrypifoundation/python-friendly-error-messages";
let mockMediaQuery = (query) => {
return matchMedia(query).matches;
};
-jest.mock("react-responsive", () => ({
- ...jest.requireActual("react-responsive"),
+vi.mock("react-responsive", async () => ({
+ ...(await vi.importActual("react-responsive")),
useMediaQuery: ({ query }) => mockMediaQuery(query),
}));
@@ -279,18 +284,7 @@ describe("When an error occurs", () => {
});
describe("When friendly errors are enabled", () => {
- let loadCopydeckFor;
- let registerAdapter;
- let friendlyExplain;
-
beforeEach(() => {
- ({
- // Using the global mock in setupTests.js to track calls to these functions
- loadCopydeckFor,
- registerAdapter,
- friendlyExplain,
- } = require("@raspberrypifoundation/python-friendly-error-messages"));
-
friendlyExplain.mockReturnValue({
html: friendlyErrorHtml,
});
@@ -401,7 +395,7 @@ describe("When native code called from Python throws a plain JS error (e.g. the
let asyncToPromiseSpy;
beforeEach(() => {
- asyncToPromiseSpy = jest
+ asyncToPromiseSpy = vi
.spyOn(Sk.misceval, "asyncToPromise")
.mockReturnValue(
Promise.reject(
@@ -1465,7 +1459,7 @@ describe("When not active", () => {
describe("When not active and a code run has been triggered", () => {
beforeEach(() => {
- Sk.misceval.asyncToPromise = jest.fn();
+ Sk.misceval.asyncToPromise = vi.fn();
const middlewares = [];
const mockStore = configureMockStore(middlewares);
const initialState = {
@@ -1510,7 +1504,7 @@ describe("When turtle run setup is applied", () => {
originalConfigure = Sk.configure;
originalGetElementById = document.getElementById;
- Sk.configure = jest.fn();
+ Sk.configure = vi.fn();
});
afterEach(() => {
@@ -1521,8 +1515,8 @@ describe("When turtle run setup is applied", () => {
});
test("binds turtle target from VisualOutputPane ref before execution", () => {
- Sk.importMainWithBody = jest.fn();
- Sk.misceval.asyncToPromise = jest.fn(() => Promise.resolve());
+ Sk.importMainWithBody = vi.fn();
+ Sk.misceval.asyncToPromise = vi.fn(() => Promise.resolve());
const middlewares = [];
const mockStore = configureMockStore(middlewares);
@@ -1560,11 +1554,11 @@ describe("When turtle run setup is applied", () => {
resolveRun = resolve;
});
- Sk.importMainWithBody = jest.fn(() => {
+ Sk.importMainWithBody = vi.fn(() => {
turtleLookupTarget = document.getElementById("turtle");
return {};
});
- Sk.misceval.asyncToPromise = jest.fn((runner) => {
+ Sk.misceval.asyncToPromise = vi.fn((runner) => {
runner();
return runPromise;
});
diff --git a/test-runner-migration.js b/test-runner-migration.js
index 15dbf26a6..ac1b8d9af 100644
--- a/test-runner-migration.js
+++ b/test-runner-migration.js
@@ -9,7 +9,6 @@ const JEST_ONLY_TEST_FILES = [
"src/components/Editor/Project/Project.test.jsx",
"src/components/Editor/Runners/PythonRunner/PyodideRunner/PyodideWorker.test.js",
"src/components/Editor/Runners/PythonRunner/PyodideRunner/VisualOutputPane.test.jsx",
- "src/components/Editor/Runners/PythonRunner/SkulptRunner/SkulptRunner.test.jsx",
];
module.exports = { JEST_ONLY_TEST_FILES };
From 46f89b26a676ba8b2a2ce0aaf51a8709f5d954cb Mon Sep 17 00:00:00 2001
From: Chris Zetter <253059100+zetter-rpf@users.noreply.github.com>
Date: Fri, 21 Aug 2026 16:54:29 +0100
Subject: [PATCH 06/16] Migrate VisualOutputPane test file to Vitest
Previously VisualOutputPane.test.jsx only ran under Jest.
This change swaps jest.mock for vi.mock, and adds a local vi.mock for
plotly.js (also wrapped with a default key, since the component
imports it as a default and Vitest does not apply Jests CJS
default-export interop to mock factories) rather than relying on
setupTests.js global plotly.js mock, which has no Vitest
counterpart - this component is the only place plotly.js is imported,
so the mock belongs with the test that needs it rather than in
shared setup.
"it applies the attributes within turtle" asserted a style value of
color: "red" (with literal quotes) applied via node.setAttribute in
elementFromProps, then re-parsed through innerHTML. Vitests newer
jsdom/cssstyle rejects that malformed color value as invalid CSS and
drops the declaration entirely, where Jests older jsdom apparently
tolerated it - fixed the fixture to the valid color: red, and updated
the assertion to color: rgb(255, 0, 0), which is what jest-dom
normalizes a parsed color attribute to.
Confirmed via full Jest and Vitest runs: 30 Jest + 1021 Vitest tests
pass, the same total as before the move.
---
.../PyodideRunner/VisualOutputPane.test.jsx | 16 +++++++++++++---
test-runner-migration.js | 1 -
2 files changed, 13 insertions(+), 4 deletions(-)
diff --git a/src/components/Editor/Runners/PythonRunner/PyodideRunner/VisualOutputPane.test.jsx b/src/components/Editor/Runners/PythonRunner/PyodideRunner/VisualOutputPane.test.jsx
index c0c842afa..7dda413ff 100644
--- a/src/components/Editor/Runners/PythonRunner/PyodideRunner/VisualOutputPane.test.jsx
+++ b/src/components/Editor/Runners/PythonRunner/PyodideRunner/VisualOutputPane.test.jsx
@@ -6,7 +6,15 @@ import VisualOutputPane from "./VisualOutputPane.jsx";
import Highcharts from "highcharts";
import Plotly from "plotly.js";
-jest.mock("highcharts");
+vi.mock("highcharts");
+vi.mock("plotly.js", () => {
+ const plotly = {
+ newPlot: vi.fn(),
+ react: vi.fn(),
+ purge: vi.fn(),
+ };
+ return { ...plotly, default: plotly };
+});
const renderPaneWithVisuals = (visuals) => {
const middlewares = [];
@@ -72,7 +80,7 @@ describe("When there is turtle output", () => {
Object.entries({
tag: "p",
children: [new Map(Object.entries({ text: "hello world" }))],
- props: new Map(Object.entries({ style: 'color: "red"' })),
+ props: new Map(Object.entries({ style: "color: red" })),
}),
),
},
@@ -85,7 +93,9 @@ describe("When there is turtle output", () => {
});
test("it applies the attributes within turtle", () => {
- expect(screen.queryByText("hello world")).toHaveStyle('color: "red"');
+ expect(screen.queryByText("hello world")).toHaveStyle(
+ "color: rgb(255, 0, 0)",
+ );
});
});
diff --git a/test-runner-migration.js b/test-runner-migration.js
index ac1b8d9af..beb1e734f 100644
--- a/test-runner-migration.js
+++ b/test-runner-migration.js
@@ -8,7 +8,6 @@
const JEST_ONLY_TEST_FILES = [
"src/components/Editor/Project/Project.test.jsx",
"src/components/Editor/Runners/PythonRunner/PyodideRunner/PyodideWorker.test.js",
- "src/components/Editor/Runners/PythonRunner/PyodideRunner/VisualOutputPane.test.jsx",
];
module.exports = { JEST_ONLY_TEST_FILES };
From 0b4bd323b9c6935e892835a236c23db760a9679c Mon Sep 17 00:00:00 2001
From: Chris Zetter <253059100+zetter-rpf@users.noreply.github.com>
Date: Fri, 21 Aug 2026 16:57:19 +0100
Subject: [PATCH 07/16] Migrate PyodideWorker test file to Vitest
Previously PyodideWorker.test.jsx only ran under Jest, per the
earlier note that it dynamically re-imports the worker script per
test via resetModules but TextEncoder broke post-reset.
This change swaps jest.fn for vi.fn and jest.resetModules() for
vi.resetModules(), and switches the per-test require() of
PyodideWorker.js (needed to get a fresh module each test, since the
script assigns globalThis.PyodideWorker as a side effect and closes
over per-worker state) to an awaited dynamic import() in an async
beforeEach, since Vitest does not support a bare require() the way
Jest does.
The actual TextEncoder break was unrelated to resetModules: the test
imported TextEncoder from "util" and assigned it to
global.TextEncoder, but that named import resolves to undefined under
Vitest, so the file was really assigning global.TextEncoder =
undefined. Removed the import and the reassignment entirely -
TextEncoder is already a real global under Vitests jsdom environment
(Node has provided it as a global since v11), so the tests remaining
`new TextEncoder()` calls resolve correctly on their own.
Confirmed via full Jest and Vitest runs: 8 Jest + 1043 Vitest tests
pass, the same total as before the move.
---
.../PyodideRunner/PyodideWorker.test.js | 36 +++++++++----------
test-runner-migration.js | 1 -
2 files changed, 17 insertions(+), 20 deletions(-)
diff --git a/src/components/Editor/Runners/PythonRunner/PyodideRunner/PyodideWorker.test.js b/src/components/Editor/Runners/PythonRunner/PyodideRunner/PyodideWorker.test.js
index 5c8f811e4..248210680 100644
--- a/src/components/Editor/Runners/PythonRunner/PyodideRunner/PyodideWorker.test.js
+++ b/src/components/Editor/Runners/PythonRunner/PyodideRunner/PyodideWorker.test.js
@@ -1,7 +1,6 @@
/* global globalThis */
import { waitFor } from "@testing-library/react";
-import { TextEncoder } from "util";
class MockPythonArray extends Array {
toJs() {
return this;
@@ -9,9 +8,8 @@ class MockPythonArray extends Array {
}
// Mock global functions
-global.postMessage = jest.fn();
-global.importScripts = jest.fn();
-global.TextEncoder = TextEncoder;
+global.postMessage = vi.fn();
+global.importScripts = vi.fn();
global.pygal = {};
global._internal_sense_hat = {};
@@ -33,8 +31,8 @@ describe("PyodideWorker", () => {
let worker;
let pyodide;
- beforeEach(() => {
- jest.resetModules();
+ beforeEach(async () => {
+ vi.resetModules();
pyodide = {
_api: {
pyodide_code: {
@@ -45,23 +43,23 @@ describe("PyodideWorker", () => {
PythonError: Error,
},
FS: {
- readdir: jest.fn().mockReturnValue([]),
- writeFile: jest.fn(),
+ readdir: vi.fn().mockReturnValue([]),
+ writeFile: vi.fn(),
},
- loadPackage: jest.fn().mockReturnValue({ catch: jest.fn() }),
- loadPackagesFromImports: jest.fn(),
+ loadPackage: vi.fn().mockReturnValue({ catch: vi.fn() }),
+ loadPackagesFromImports: vi.fn(),
micropip: {
- install: jest.fn().mockReturnValue({ catch: jest.fn() }),
+ install: vi.fn().mockReturnValue({ catch: vi.fn() }),
},
- pyimport: jest.fn(),
- registerJsModule: jest.fn(),
- runPython: jest.fn(),
- runPythonAsync: jest.fn(),
- setInterruptBuffer: jest.fn(),
- setStdin: jest.fn(),
+ pyimport: vi.fn(),
+ registerJsModule: vi.fn(),
+ runPython: vi.fn(),
+ runPythonAsync: vi.fn(),
+ setInterruptBuffer: vi.fn(),
+ setStdin: vi.fn(),
};
- global.loadPyodide = jest.fn().mockResolvedValue(pyodide);
- require("../../../../../PyodideWorker.js");
+ global.loadPyodide = vi.fn().mockResolvedValue(pyodide);
+ await import("../../../../../PyodideWorker.js");
worker = globalThis.PyodideWorker();
});
diff --git a/test-runner-migration.js b/test-runner-migration.js
index beb1e734f..b54b3b4ab 100644
--- a/test-runner-migration.js
+++ b/test-runner-migration.js
@@ -7,7 +7,6 @@
// any new test file.
const JEST_ONLY_TEST_FILES = [
"src/components/Editor/Project/Project.test.jsx",
- "src/components/Editor/Runners/PythonRunner/PyodideRunner/PyodideWorker.test.js",
];
module.exports = { JEST_ONLY_TEST_FILES };
From 9640275f1ac69444a768d966eba8944fe9456e31 Mon Sep 17 00:00:00 2001
From: Chris Zetter <253059100+zetter-rpf@users.noreply.github.com>
Date: Mon, 24 Aug 2026 08:52:53 +0100
Subject: [PATCH 08/16] Migrate Project test file to Vitest
Previously Project.test.jsx only ran under Jest, per the earlier note
that its module-level jest.useFakeTimers() produced an empty render
under Vitest.
This change swaps jest.fn/jest.mock for vi equivalents and
jest.requireActual for the async vi.importActual pattern for the
react-router-dom mock. The useFakeTimers() call itself is dropped
entirely: nothing in the file ever advances or asserts against fake
time, and the one test using waitFor() (for a project-saved message
dispatched from a plain useEffect, not a timer) hung indefinitely
under Vitest with fake timers active, since testing-library dom
waitFor only knows how to drive Jests fake timers forward - it
detects them by checking for a global `jest`, so under Vitest it
falls back to real timers for its own polling, which fake timers had
already intercepted.
This is the last file on the Jest list: test-runner-migration.js
JEST_ONLY_TEST_FILES is now empty, so every test in the repo runs
under Vitest. An empty array made jest.config.js testMatch fall back
to Jests own defaults and match all 267 test files instead of none,
so testMatch now matches an always-empty path once the list is
empty. yarn test now exits 1 with "no tests found" rather than
running the whole suite under the wrong runner; whether to add
--passWithNoTests or retire the Jest CI step and config entirely is
still an open follow-up.
Confirmed via full Vitest run: 1051 tests pass, the same total as
before the move.
---
jest.config.js | 4 +++-
.../Editor/Project/Project.test.jsx | 20 +++++++++----------
test-runner-migration.js | 4 +---
3 files changed, 13 insertions(+), 15 deletions(-)
diff --git a/jest.config.js b/jest.config.js
index d2c05d705..abc54edce 100644
--- a/jest.config.js
+++ b/jest.config.js
@@ -5,7 +5,9 @@ module.exports = {
collectCoverageFrom: ["src/**/*.{js,jsx,ts,tsx}", "!src/**/*.d.ts"],
setupFiles: ["react-app-polyfill/jsdom"],
setupFilesAfterEnv: ["/src/utils/setupTests.js"],
- testMatch: JEST_ONLY_TEST_FILES.map((file) => `/${file}`),
+ testMatch: JEST_ONLY_TEST_FILES.length
+ ? JEST_ONLY_TEST_FILES.map((file) => `/${file}`)
+ : ["/no-jest-only-test-files-remain"],
testEnvironment: "jsdom",
testEnvironmentOptions: {
resources: "usable",
diff --git a/src/components/Editor/Project/Project.test.jsx b/src/components/Editor/Project/Project.test.jsx
index 00fd62ee6..94669a752 100644
--- a/src/components/Editor/Project/Project.test.jsx
+++ b/src/components/Editor/Project/Project.test.jsx
@@ -8,22 +8,20 @@ import { showSavedMessage } from "../../../utils/Notifications";
import { MemoryRouter } from "react-router-dom";
import { useContainerMinWidth } from "../../../hooks/useContainerMinWidth";
-window.HTMLElement.prototype.scrollIntoView = jest.fn();
+window.HTMLElement.prototype.scrollIntoView = vi.fn();
-jest.mock("react-router-dom", () => ({
- ...jest.requireActual("react-router-dom"),
- useNavigate: () => jest.fn(),
+vi.mock("react-router-dom", async () => ({
+ ...(await vi.importActual("react-router-dom")),
+ useNavigate: () => vi.fn(),
}));
-jest.mock("../../../utils/Notifications");
-jest.mock("../../../hooks/useContainerMinWidth", () => ({
- useContainerMinWidth: jest.fn(),
+vi.mock("../../../utils/Notifications");
+vi.mock("../../../hooks/useContainerMinWidth", () => ({
+ useContainerMinWidth: vi.fn(),
}));
-jest.useFakeTimers();
-
beforeEach(() => {
- useContainerMinWidth.mockReturnValue([false, jest.fn()]);
+ useContainerMinWidth.mockReturnValue([false, vi.fn()]);
});
const user1 = {
@@ -214,7 +212,7 @@ describe("When not logged in and falling on default container width", () => {
});
test("Shows right drag bar with expected params on desktop containers", () => {
- useContainerMinWidth.mockReturnValue([true, jest.fn()]);
+ useContainerMinWidth.mockReturnValue([true, vi.fn()]);
const middlewares = [];
const mockStore = configureStore(middlewares);
diff --git a/test-runner-migration.js b/test-runner-migration.js
index b54b3b4ab..9fdc58e0f 100644
--- a/test-runner-migration.js
+++ b/test-runner-migration.js
@@ -5,8 +5,6 @@
// Vitest equivalents (vi.fn/vi.mock/etc.) and its assertions verified under
// Vitest - anything not listed here runs under Vitest by default, including
// any new test file.
-const JEST_ONLY_TEST_FILES = [
- "src/components/Editor/Project/Project.test.jsx",
-];
+const JEST_ONLY_TEST_FILES = [];
module.exports = { JEST_ONLY_TEST_FILES };
From f26938e80bbba58880bdc9a0863c28a3c496959d Mon Sep 17 00:00:00 2001
From: Chris Zetter <253059100+zetter-rpf@users.noreply.github.com>
Date: Mon, 24 Aug 2026 09:09:34 +0100
Subject: [PATCH 09/16] Remove Jest config now that all tests run on Vitest
Previously the repo ran tests under Jest via jest.config.js,
config/jest/babelTransform.js, scripts/test.js and
src/utils/setupTests.js, kept alive alongside Vitest by
test-runner-migration.js listing any files not yet ported. That list
is now empty, so nothing exercises the Jest path any more, and
.babelrc (only read by the Jest babel transform) and
PyodideWorker.mock.js (only imported by the removed Jest setup file)
were dead weight too.
This change deletes those Jest-only files and drops
vite.config.js/setupTests.vitest.js references to the now-removed
test-runner-migration.js, leaving Vitest as the sole test runner.
---
.babelrc | 3 -
config/jest/babelTransform.js | 29 --------
jest.config.js | 59 ----------------
scripts/test.js | 60 ----------------
.../PyodideRunner/PyodideWorker.mock.js | 23 ------
src/utils/setupTests.js | 70 -------------------
src/utils/setupTests.vitest.js | 2 -
test-runner-migration.js | 10 ---
vite.config.js | 3 +-
9 files changed, 1 insertion(+), 258 deletions(-)
delete mode 100644 .babelrc
delete mode 100644 config/jest/babelTransform.js
delete mode 100644 jest.config.js
delete mode 100644 scripts/test.js
delete mode 100644 src/components/Editor/Runners/PythonRunner/PyodideRunner/PyodideWorker.mock.js
delete mode 100644 src/utils/setupTests.js
delete mode 100644 test-runner-migration.js
diff --git a/.babelrc b/.babelrc
deleted file mode 100644
index c14b2828d..000000000
--- a/.babelrc
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "presets": ["react-app"]
-}
diff --git a/config/jest/babelTransform.js b/config/jest/babelTransform.js
deleted file mode 100644
index dabf5a8cb..000000000
--- a/config/jest/babelTransform.js
+++ /dev/null
@@ -1,29 +0,0 @@
-'use strict';
-
-const babelJest = require('babel-jest');
-
-const hasJsxRuntime = (() => {
- if (process.env.DISABLE_NEW_JSX_TRANSFORM === 'true') {
- return false;
- }
-
- try {
- require.resolve('react/jsx-runtime');
- return true;
- } catch (e) {
- return false;
- }
-})();
-
-module.exports = babelJest.createTransformer({
- presets: [
- [
- require.resolve('babel-preset-react-app'),
- {
- runtime: hasJsxRuntime ? 'automatic' : 'classic',
- },
- ],
- ],
- babelrc: false,
- configFile: false,
-});
diff --git a/jest.config.js b/jest.config.js
deleted file mode 100644
index abc54edce..000000000
--- a/jest.config.js
+++ /dev/null
@@ -1,59 +0,0 @@
-const { JEST_ONLY_TEST_FILES } = require("./test-runner-migration.js");
-
-module.exports = {
- roots: ["/src"],
- collectCoverageFrom: ["src/**/*.{js,jsx,ts,tsx}", "!src/**/*.d.ts"],
- setupFiles: ["react-app-polyfill/jsdom"],
- setupFilesAfterEnv: ["/src/utils/setupTests.js"],
- testMatch: JEST_ONLY_TEST_FILES.length
- ? JEST_ONLY_TEST_FILES.map((file) => `/${file}`)
- : ["/no-jest-only-test-files-remain"],
- testEnvironment: "jsdom",
- testEnvironmentOptions: {
- resources: "usable",
- },
- testRunner: "jest-circus/runner",
- transform: {
- "^.+\\.(js|jsx|mjs|cjs|ts|tsx)$": "/config/jest/babelTransform.js",
- ".+\\.css$": "/node_modules/jest-css-modules-transform",
- "^.+\\.scss$": "/node_modules/jest-scss-transform",
- "^.+\\.svg$": "jest-transformer-svg",
- "^(?!.*\\.(js|jsx|mjs|cjs|ts|tsx|css|scss|svg|json)$)":
- "/node_modules/jest-transform-stub",
- },
- transformIgnorePatterns: [
- // Ignore everything under node_modules except the packages listed below,
- // which Jest has to transform because they are "type": "module" with no
- // CommonJS entry point: rpf-markdown-core's CJS build requires marked and
- // scratchblocks/index.js, so their raw `export` syntax would otherwise
- // reach the CJS loader. A nested copy (rpf-markdown-core/node_modules/
- // scratchblocks) is also exempted.
- "^(?!.*[/\\\\]node_modules[/\\\\](?:three|marked|scratchblocks)[/\\\\]).*[/\\\\]node_modules[/\\\\].+\\.(js|jsx|mjs|cjs|ts|tsx)$",
- "^.+\\.module\\.(css|sass|scss)$",
- ],
- modulePaths: [],
- moduleNameMapper: {
- "^react-native$": "react-native-web",
- "^(.+\\.scss)\\?inline$": "$1",
- "^(.+\\.css)\\?inline$": "$1",
- "^(.+\\.md)\\?raw$": "$1",
- "^.+\\.module\\.(css|sass|scss)$": "identity-obj-proxy",
- },
- moduleFileExtensions: [
- "web.js",
- "js",
- "web.ts",
- "ts",
- "web.tsx",
- "tsx",
- "json",
- "web.jsx",
- "jsx",
- "node",
- ],
- watchPlugins: [
- "jest-watch-typeahead/filename",
- "jest-watch-typeahead/testname",
- ],
- resetMocks: true,
-};
diff --git a/scripts/test.js b/scripts/test.js
deleted file mode 100644
index d439e0e36..000000000
--- a/scripts/test.js
+++ /dev/null
@@ -1,60 +0,0 @@
-// Do this as the first thing so that any code reading it knows the right env.
-process.env.BABEL_ENV = "test";
-process.env.NODE_ENV = "test";
-process.env.PUBLIC_URL = "";
-
-// Makes the script crash on unhandled rejections instead of silently
-// ignoring them. In the future, promise rejections that are not handled will
-// terminate the Node.js process with a non-zero exit code.
-process.on("unhandledRejection", (err) => {
- throw err;
-});
-
-// Load environment variables from .env* files, matching CRA's precedence:
-// .env.test.local, .env.test, .env (`.env.local` is skipped for test runs, so
-// tests produce the same results for everyone). dotenv never overwrites a
-// variable already set in process.env, so earlier files here win.
-const fs = require("fs");
-const path = require("path");
-const dotenv = require("dotenv");
-const dotenvExpand = require("dotenv-expand");
-
-const dotenvPath = path.resolve(__dirname, "..", ".env");
-[`${dotenvPath}.test.local`, `${dotenvPath}.test`, dotenvPath]
- .filter((file) => fs.existsSync(file))
- .forEach((file) => dotenvExpand(dotenv.config({ path: file })));
-
-const jest = require("jest");
-const execSync = require("child_process").execSync;
-let argv = process.argv.slice(2);
-
-function isInGitRepository() {
- try {
- execSync("git rev-parse --is-inside-work-tree", { stdio: "ignore" });
- return true;
- } catch (e) {
- return false;
- }
-}
-
-function isInMercurialRepository() {
- try {
- execSync("hg --cwd . root", { stdio: "ignore" });
- return true;
- } catch (e) {
- return false;
- }
-}
-
-// Watch unless on CI or explicitly running all tests
-if (
- !process.env.CI &&
- argv.indexOf("--watchAll") === -1 &&
- argv.indexOf("--watchAll=false") === -1
-) {
- // https://github.com/facebook/create-react-app/issues/5210
- const hasSourceControl = isInGitRepository() || isInMercurialRepository();
- argv.push(hasSourceControl ? "--watch" : "--watchAll");
-}
-
-jest.run(argv);
diff --git a/src/components/Editor/Runners/PythonRunner/PyodideRunner/PyodideWorker.mock.js b/src/components/Editor/Runners/PythonRunner/PyodideRunner/PyodideWorker.mock.js
deleted file mode 100644
index f261b26da..000000000
--- a/src/components/Editor/Runners/PythonRunner/PyodideRunner/PyodideWorker.mock.js
+++ /dev/null
@@ -1,23 +0,0 @@
-export const postMessage = jest.fn((...args) => {
- console.log("Received postMessage with", args);
-});
-
-class PyodideWorker {
- constructor() {
- this.postMessage = postMessage;
- this.onmessage = null;
- PyodideWorker.lastInstance = this;
- }
-
- postMessageFromWorker(message) {
- if (this.onmessage) {
- this.onmessage({ data: message });
- }
- }
-
- static getLastInstance() {
- return PyodideWorker.lastInstance;
- }
-}
-
-export default PyodideWorker;
diff --git a/src/utils/setupTests.js b/src/utils/setupTests.js
deleted file mode 100644
index 6ccf273b1..000000000
--- a/src/utils/setupTests.js
+++ /dev/null
@@ -1,70 +0,0 @@
-// jest-dom adds custom jest matchers for asserting on DOM nodes.
-// allows you to do things like:
-// expect(element).toHaveTextContent(/react/i)
-// learn more: https://github.com/testing-library/jest-dom
-import "@testing-library/jest-dom";
-import "jest-canvas-mock";
-import PyodideWorker from "../components/Editor/Runners/PythonRunner/PyodideRunner/PyodideWorker.mock.js";
-
-// Polyfill TextEncoder/TextDecoder for Jest environment
-// Required by @raspberrypifoundation/design-system-react components
-import { TextEncoder, TextDecoder } from "util";
-Object.assign(global, { TextDecoder, TextEncoder });
-
-/* global globalThis */
-globalThis.IS_REACT_ACT_ENVIRONMENT = true;
-
-window.matchMedia = (query) => ({
- matches: false,
- media: query,
- onchange: null,
- addListener: jest.fn(), // Deprecated
- removeListener: jest.fn(), // Deprecated
- addEventListener: jest.fn(),
- removeEventListener: jest.fn(),
- dispatchEvent: jest.fn(),
-});
-
-window.plausible = jest.fn();
-
-jest.mock("react-i18next", () => ({
- // this mock makes sure any components using the translate hook can use it without a warning being shown
- useTranslation: () => {
- return {
- t: (str) => (str.includes("null") ? null : str),
- i18n: {
- changeLanguage: () => new Promise(() => {}),
- language: "ja-JP",
- options: {
- locales: ["en", "es-LA", "fr-FR", "ja-JP"],
- },
- },
- };
- },
- Trans: ({ children, i18nKey }) => children || i18nKey,
-}));
-
-jest.mock("./i18n", () => ({
- t: (string) => string,
-}));
-
-jest.mock("../assets/markdown/demoInstructions.md", () => {
- return "demoInstructions.md";
-});
-
-jest.mock("@raspberrypifoundation/python-friendly-error-messages", () => ({
- loadCopydeckFor: jest.fn(),
- registerAdapter: jest.fn(),
- cpythonAdapter: {},
- friendlyExplain: jest.fn(),
-}));
-
-jest.mock("plotly.js", () => ({
- newPlot: jest.fn(),
- react: jest.fn(),
- purge: jest.fn(),
-}));
-
-global.Blob = jest.fn();
-window.URL.createObjectURL = jest.fn();
-window.Worker = PyodideWorker;
diff --git a/src/utils/setupTests.vitest.js b/src/utils/setupTests.vitest.js
index 7f1497d1d..5ce828991 100644
--- a/src/utils/setupTests.vitest.js
+++ b/src/utils/setupTests.vitest.js
@@ -1,5 +1,3 @@
-// Vitest equivalent of setupTests.js, used by every file not listed in
-// JEST_ONLY_TEST_FILES (test-runner-migration.js).
import "@testing-library/jest-dom";
import { vi } from "vitest";
diff --git a/test-runner-migration.js b/test-runner-migration.js
deleted file mode 100644
index 9fdc58e0f..000000000
--- a/test-runner-migration.js
+++ /dev/null
@@ -1,10 +0,0 @@
-// Single source of truth for which test files still run under Jest.
-// Populated as a snapshot of every test file when Jest/Vitest started
-// running side by side (see vite.config.js and jest.config.js). Remove a
-// path once its Jest-only APIs (jest.fn/jest.mock/etc.) have been ported to
-// Vitest equivalents (vi.fn/vi.mock/etc.) and its assertions verified under
-// Vitest - anything not listed here runs under Vitest by default, including
-// any new test file.
-const JEST_ONLY_TEST_FILES = [];
-
-module.exports = { JEST_ONLY_TEST_FILES };
diff --git a/vite.config.js b/vite.config.js
index 369e45770..96dcce2f5 100644
--- a/vite.config.js
+++ b/vite.config.js
@@ -17,7 +17,6 @@ const {
classicIifeBuildOptions,
copyDirectoryContentsTarget,
} = require("./vite.lib.js");
-const { JEST_ONLY_TEST_FILES } = require("./test-runner-migration.js");
const crossOriginResourcePolicyPaths = [
"/pyodide/shims/_internal_sense_hat.js",
@@ -176,7 +175,7 @@ export default defineConfig(async ({ mode }) => {
"src/**/__tests__/**/*.{js,jsx,ts,tsx}",
"src/**/*.{spec,test}.{js,jsx,ts,tsx}",
],
- exclude: [...configDefaults.exclude, ...JEST_ONLY_TEST_FILES],
+ exclude: configDefaults.exclude,
},
};
});
From 1edf29a442dfe1bd97202d8263db17f844e00644 Mon Sep 17 00:00:00 2001
From: Chris Zetter <253059100+zetter-rpf@users.noreply.github.com>
Date: Mon, 24 Aug 2026 09:13:35 +0100
Subject: [PATCH 10/16] Run tests on Vitest only, drop CI coverage PR comment
Previously "yarn test" shelled out to Jest (scripts/test.js, now
removed) and CI ran both a Jest pass and a separate Vitest pass, with
Jest's "--coverage" output feeding a "Record coverage" step that
posts the clover coverage percentage as a PR comment. Vitest's CI
step never passed "--coverage" and no @vitest/coverage-* provider is
installed, so that comment was already effectively dead code, only
still fed by the Jest run. Nothing in CI enforces a coverage
threshold or otherwise checks this output; it was purely informational
and nobody currently relies on it, so dropping it removes no active
guarantee.
This change makes "yarn test" run Vitest directly (watch mode
locally, single run in CI, matching the previous Jest behaviour),
drops the now-redundant "test:vitest"/"test:all" scripts, and removes
the separate Jest CI step, the "Record coverage" step and its script,
and the JEST_JUNIT_OUTPUT_DIR env var. The VS Code task and
dev container extension/setting for running the current test file are
updated to invoke Vitest instead of Jest.
Alternatively we could have kept the coverage PR comment by adding
@vitest/coverage-v8 and clover reporter config, but that is a new
feature rather than a like-for-like removal, so it is left for a
separate change if wanted.
---
.devcontainer/devcontainer.json | 3 +-
.github/workflows/ci-cd.yml | 12 +---
.github/workflows/record_coverage | 92 -------------------------------
.vscode/tasks.json | 5 +-
package.json | 4 +-
5 files changed, 5 insertions(+), 111 deletions(-)
delete mode 100755 .github/workflows/record_coverage
diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json
index 3859cfdc3..ad192b0c8 100644
--- a/.devcontainer/devcontainer.json
+++ b/.devcontainer/devcontainer.json
@@ -53,7 +53,7 @@
"github.remotehub",
"circleci.circleci",
"stylelint.vscode-stylelint",
- "Orta.vscode-jest",
+ "vitest.explorer",
"christian-kohler.path-intellisense",
"esbenp.prettier-vscode",
"avraammavridis.vsc-react-documentation",
@@ -65,7 +65,6 @@
],
"settings": {
"terminal.integrated.defaultProfile.linux": "zsh",
- "jest.jestCommandLine": "yarn test",
"eslint.enable": true,
"eslint.validate": ["javascript", "javascriptreact"],
"stylelint.enable": true,
diff --git a/.github/workflows/ci-cd.yml b/.github/workflows/ci-cd.yml
index 0136a6ab5..8f6fe914a 100644
--- a/.github/workflows/ci-cd.yml
+++ b/.github/workflows/ci-cd.yml
@@ -76,20 +76,10 @@ jobs:
run: yarn install --immutable
- name: Run tests
- run: yarn run test --coverage --maxWorkers=4 --workerThreads=true --reporters=default --reporters=jest-junit --reporters=jest-github-actions-reporter
+ run: yarn test --run
env:
- JEST_JUNIT_OUTPUT_DIR: ./coverage/
REACT_APP_API_ENDPOINT: http://localhost:3009
REACT_APP_SCRATCH_FRAME_URL: "http://scratch-frame.example.com"
- - name: Run Vitest tests
- run: yarn test:vitest
- env:
- REACT_APP_API_ENDPOINT: http://localhost:3009
- REACT_APP_SCRATCH_FRAME_URL: "http://scratch-frame.example.com"
- - name: Record coverage
- run: ./.github/workflows/record_coverage
- env:
- GITHUB_TOKEN: ${{ github.token }}
- name: Run Scratch Frame tests
run: yarn run test:scratch-frame
diff --git a/.github/workflows/record_coverage b/.github/workflows/record_coverage
deleted file mode 100755
index 344524f28..000000000
--- a/.github/workflows/record_coverage
+++ /dev/null
@@ -1,92 +0,0 @@
-#!/bin/bash -eu
-
-# Record coverage
-#
-# This script uses the Github APIs to poke a comment into a PR about test coverage.
-#
-# To work, the GITHUB_TOKEN var must be in the environment
-#
-
-CURL_ARGS="-s -S -f"
-
-function graceful_exit() {
- echo "*** Something failed! Exiting gracefully so the build doesn't fail overall"
- exit 0
-}
-
-#
-# Wrapper for the Github GraphQL API
-#
-function gh_query() {
- # Build and escape our JSON
- json=$(jq -n --arg q "$*" '{query: $q}')
- curl $CURL_ARGS -H "Authorization: bearer $GITHUB_TOKEN" -X POST -d "$json" https://api.github.com/graphql
-}
-
-
-# Trap any fails, and force a successful exit.
-trap graceful_exit ERR
-
-clover_xml=coverage/clover.xml
-if ! [ -s $clover_xml ] ; then
- echo "*** No $clover_xml file found."
- exit 0
-fi
-
-sudo apt update -qq
-sudo apt install -qq --no-install-recommends -y xmlstarlet
-which jq > /dev/null || sudo apt-get install -y jq
-which curl > /dev/null || sudo apt-get install -y curl
-
-# This is the message that makes it into github
-msg="* Github [Run ${GITHUB_RUN_ID}]($GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID)\n"
-msg="$msg* Test coverage: "
-
-statements=$(xmlstarlet sel -t -v '/coverage/project[@name="All files"]/metrics/@statements' $clover_xml)
-coveredstatements=$(xmlstarlet sel -t -v '/coverage/project[@name="All files"]/metrics/@coveredstatements' $clover_xml)
-# Bash doesn't do floating point.
-coverage=$((coveredstatements*100/statements))
-
-if [ "${coverage}" = "null" ] ; then
- echo "*** Failed to determine coverage"
- exit 0
-fi
-
-msg="$msg $coverage%\n\n"
-
-# Find associated PR. *NB* we're assuming that the first, open PR is the one
-# to comment on.
-q="query {
- repository(name: \"${GITHUB_REPOSITORY##*/}\", owner: \"${GITHUB_REPOSITORY%%/*}\") {
- ref(qualifiedName: \"${GITHUB_REF_NAME}\") {
- associatedPullRequests(first: 1) {
- nodes {
- id
- }
- }
- }
- }
-}"
-
-pr_response=$(gh_query $q)
-pr_node=$(echo $pr_response | jq -r ".data.repository.ref.associatedPullRequests.nodes[0].id")
-
-if [ "$pr_node" = "null" ] ; then
- echo "*** No PR found"
- exit 0
-fi
-
-
-echo ">>> Posting code coverage comment"
-m="mutation {
- addComment(input: {
- subjectId: \"${pr_node}\",
- body: \"${msg}\"
- }) {
- subject {
- id
- }
- }
-}"
-
-gh_query $m
diff --git a/.vscode/tasks.json b/.vscode/tasks.json
index d67743bd1..6fea49392 100644
--- a/.vscode/tasks.json
+++ b/.vscode/tasks.json
@@ -2,13 +2,12 @@
"version": "2.0.0",
"tasks": [
{
- "label": "Test Current File (Jest)",
+ "label": "Test Current File (Vitest)",
"type": "shell",
"command": "yarn",
"args": [
"test",
- "--runTestsByPath",
- "--watchAll=false",
+ "--run",
"${file}"
],
"options": {
diff --git a/package.json b/package.json
index cf2bfb402..6a851585e 100644
--- a/package.json
+++ b/package.json
@@ -81,9 +81,7 @@
"lint": "eslint 'src/**/*.{js,jsx}' 'cypress/**/*.js' 'apps/**/*.{js,jsx}'",
"lint:fix": "eslint --fix 'src/**/*.{js,jsx}' 'cypress/**/*.js' 'apps/**/*.{js,jsx}'",
"stylelint": "stylelint 'src/**/*.scss' 'apps/**/*.scss'",
- "test": "node scripts/test.js",
- "test:vitest": "vitest run",
- "test:all": "yarn test --watchAll=false && yarn test:vitest",
+ "test": "vitest",
"test:scratch-frame": "yarn workspace @raspberrypifoundation/scratch-frame test",
"watch-css": "sass --load-path=./ -q --watch src:src"
},
From 1c7a7acca7fd6799cd6597d436f533866ff97b38 Mon Sep 17 00:00:00 2001
From: Chris Zetter <253059100+zetter-rpf@users.noreply.github.com>
Date: Mon, 24 Aug 2026 09:15:01 +0100
Subject: [PATCH 11/16] Keep test-file linting working without the Jest eslint
plugin
Previously .eslintrc.json extended "react-app/jest", which pulled in
eslint-plugin-jest for the "jest" globals env (describe/it/expect/etc)
and a subset of eslint-plugin-testing-library rules on test files. With
Jest removed there is no reason to keep eslint-plugin-jest installed,
but dropping it blindly would leave every Vitest test file failing
"no-undef" on those globals and lose the testing-library lint
coverage.
This change removes the "react-app/jest" extend and the "jest" eslint
plugin, declares the Vitest globals (describe/it/test/expect/
beforeEach/afterEach/beforeAll/afterAll) explicitly on the existing
test-file overrides, and swaps in "plugin:testing-library/react" on
those same overrides so the equivalent testing-library rules still
apply. "yarn lint" is clean with no new warnings.
---
.eslintrc.json | 23 +++++++++++++++++++----
1 file changed, 19 insertions(+), 4 deletions(-)
diff --git a/.eslintrc.json b/.eslintrc.json
index 9cfc35411..7214bb631 100644
--- a/.eslintrc.json
+++ b/.eslintrc.json
@@ -2,14 +2,13 @@
"root": true,
"extends": [
"react-app",
- "react-app/jest",
"plugin:prettier/recommended"
],
"plugins": [
"prettier",
"react",
"jsx-a11y",
- "jest"
+ "testing-library"
],
"settings": {
"react": {
@@ -54,16 +53,32 @@
},
{
"files": ["apps/scratch-frame/**/*.test.js", "apps/scratch-frame/**/*.test.jsx"],
+ "extends": ["plugin:testing-library/react"],
"globals": {
"vi": "readonly",
"test": "readonly",
- "describe": "readonly"
+ "describe": "readonly",
+ "it": "readonly",
+ "expect": "readonly",
+ "beforeEach": "readonly",
+ "afterEach": "readonly",
+ "beforeAll": "readonly",
+ "afterAll": "readonly"
}
},
{
"files": ["src/**/__tests__/**/*.{js,jsx,ts,tsx}", "src/**/*.{spec,test}.{js,jsx,ts,tsx}"],
+ "extends": ["plugin:testing-library/react"],
"globals": {
- "vi": "readonly"
+ "vi": "readonly",
+ "describe": "readonly",
+ "test": "readonly",
+ "it": "readonly",
+ "expect": "readonly",
+ "beforeEach": "readonly",
+ "afterEach": "readonly",
+ "beforeAll": "readonly",
+ "afterAll": "readonly"
}
}
]
From 0ac6da8360c6516dd4ae2ff50da85d521887e432 Mon Sep 17 00:00:00 2001
From: Chris Zetter <253059100+zetter-rpf@users.noreply.github.com>
Date: Mon, 24 Aug 2026 09:16:02 +0100
Subject: [PATCH 12/16] Drop Jest and Jest-only npm packages
Previously Jest and its supporting packages (jest, jest-circus,
jest-environment-jsdom, jest-css-modules-transform,
jest-scss-transform, jest-transform-stub, jest-transformer-svg,
jest-watch-typeahead, jest-canvas-mock, jest-junit,
jest-github-actions-reporter, babel-jest, eslint-plugin-jest) stayed
installed to run the Jest half of the test suite. All tests now run
on Vitest and the Jest config/scripts were removed in earlier
commits, so these are unused.
This change removes them via "yarn remove" and updates yarn.lock.
"jest-axe" and "@testing-library/jest-dom" are kept: despite the
name, they are matcher libraries used directly in test files and work
independently of which test runner executes them.
"yarn lint", "yarn test --run" and "yarn build" all still pass.
---
package.json | 13 -
yarn.lock | 2035 ++------------------------------------------------
2 files changed, 73 insertions(+), 1975 deletions(-)
diff --git a/package.json b/package.json
index 6a851585e..8af812389 100644
--- a/package.json
+++ b/package.json
@@ -35,7 +35,6 @@
"i18next-http-backend": "^3.0.5",
"identity-obj-proxy": "3.0.0",
"jest-axe": "^7.0.0",
- "jest-canvas-mock": "^2.5.2",
"js-convert-case": "^4.2.0",
"jszip": "^3.10.1",
"jszip-utils": "^0.1.0",
@@ -107,7 +106,6 @@
"@typescript-eslint/parser": "^4.5.0",
"@vitejs/plugin-react": "^6",
"babel-eslint": "^10.1.0",
- "babel-jest": "^29.1.2",
"babel-preset-react-app": "^10.0.1",
"browserslist": "^4.28.6",
"browserslist-to-esbuild": "^2.1.1",
@@ -120,22 +118,11 @@
"eslint-config-react-app": "^6.0.0",
"eslint-plugin-flowtype": "^5.2.0",
"eslint-plugin-import": "^2.22.1",
- "eslint-plugin-jest": "^24.1.0",
"eslint-plugin-jsx-a11y": "^6.3.1",
"eslint-plugin-prettier": "^5.2.1",
"eslint-plugin-react": "^7.21.5",
"eslint-plugin-react-hooks": "^4.2.0",
"eslint-plugin-testing-library": "^3.9.2",
- "jest": "^29.1.2",
- "jest-circus": "^29.1.2",
- "jest-css-modules-transform": "^4.4.2",
- "jest-environment-jsdom": "^29.1.2",
- "jest-github-actions-reporter": "^1.0.3",
- "jest-junit": "^14.0.1",
- "jest-scss-transform": "^1.0.3",
- "jest-transform-stub": "^2.0.0",
- "jest-transformer-svg": "^2.0.0",
- "jest-watch-typeahead": "^2.2.0",
"jsdom": "^29.1.1",
"mock-match-media": "^0.4.3",
"path-browserify": "^1.0.1",
diff --git a/yarn.lock b/yarn.lock
index 03d993ce5..b48f9e47b 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -94,42 +94,6 @@ __metadata:
languageName: node
linkType: hard
-"@actions/core@npm:^1.2.0":
- version: 1.11.1
- resolution: "@actions/core@npm:1.11.1"
- dependencies:
- "@actions/exec": "npm:^1.1.1"
- "@actions/http-client": "npm:^2.0.1"
- checksum: 10/94f260e33607cc16567ce4c88014f069cd7da92baaa443b72cff80fdf4f1dcd18192e135df0d51ec29e8b82cfe214218715d482f2a7804efa5095737d1245f38
- languageName: node
- linkType: hard
-
-"@actions/exec@npm:^1.1.1":
- version: 1.1.1
- resolution: "@actions/exec@npm:1.1.1"
- dependencies:
- "@actions/io": "npm:^1.0.1"
- checksum: 10/c04bd25191e522841c7e17862d70099de8db61278d2b4c744b69ac0197a48f85c75dba548e1c29c695c4cc5363d558846b4dcd3db9013463c18ba8cf36497c6d
- languageName: node
- linkType: hard
-
-"@actions/http-client@npm:^2.0.1":
- version: 2.2.3
- resolution: "@actions/http-client@npm:2.2.3"
- dependencies:
- tunnel: "npm:^0.0.6"
- undici: "npm:^5.25.4"
- checksum: 10/0c0a540c79e50f795d214f696710bb9c50bdf5bb1458be288140f2aae3686adec73fdb464c43da5ef94f985ac7736273efef21cb5ba5a3b09e85b403d852c04b
- languageName: node
- linkType: hard
-
-"@actions/io@npm:^1.0.1":
- version: 1.1.3
- resolution: "@actions/io@npm:1.1.3"
- checksum: 10/4de44e8d428ba9f20049c844b37ecd486b589ed201f8cc8c5b550a9e4c72d1f594271ee2a7a6cfe8a42ebfb5dd527ef65016454656db391a353d41eab4f147e1
- languageName: node
- linkType: hard
-
"@adobe/css-tools@npm:^4.0.1":
version: 4.4.0
resolution: "@adobe/css-tools@npm:4.4.0"
@@ -292,7 +256,7 @@ __metadata:
languageName: node
linkType: hard
-"@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.16.0, @babel/core@npm:^7.17.10, @babel/core@npm:^7.23.9":
+"@babel/core@npm:^7.16.0, @babel/core@npm:^7.17.10":
version: 7.25.8
resolution: "@babel/core@npm:7.25.8"
dependencies:
@@ -338,7 +302,7 @@ __metadata:
languageName: node
linkType: hard
-"@babel/generator@npm:^7.25.7, @babel/generator@npm:^7.7.2":
+"@babel/generator@npm:^7.25.7":
version: 7.25.7
resolution: "@babel/generator@npm:7.25.7"
dependencies:
@@ -569,7 +533,7 @@ __metadata:
languageName: node
linkType: hard
-"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.20.2, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.25.7, @babel/helper-plugin-utils@npm:^7.8.0":
+"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.20.2, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.25.7, @babel/helper-plugin-utils@npm:^7.8.0":
version: 7.25.7
resolution: "@babel/helper-plugin-utils@npm:7.25.7"
checksum: 10/e1b0ea5e67b05378d6360e3fc370e99bfb247eed9f68145b5cce541da703424e1887fb6fc60ab2f7f743c72dcbfbed79d3032af43f2c251c229c734dc2572a5b
@@ -735,7 +699,7 @@ __metadata:
languageName: node
linkType: hard
-"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.23.9, @babel/parser@npm:^7.25.7, @babel/parser@npm:^7.25.8, @babel/parser@npm:^7.7.0":
+"@babel/parser@npm:^7.25.7, @babel/parser@npm:^7.25.8, @babel/parser@npm:^7.7.0":
version: 7.25.8
resolution: "@babel/parser@npm:7.25.8"
dependencies:
@@ -924,50 +888,6 @@ __metadata:
languageName: node
linkType: hard
-"@babel/plugin-syntax-async-generators@npm:^7.8.4":
- version: 7.8.4
- resolution: "@babel/plugin-syntax-async-generators@npm:7.8.4"
- dependencies:
- "@babel/helper-plugin-utils": "npm:^7.8.0"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/7ed1c1d9b9e5b64ef028ea5e755c0be2d4e5e4e3d6cf7df757b9a8c4cfa4193d268176d0f1f7fbecdda6fe722885c7fda681f480f3741d8a2d26854736f05367
- languageName: node
- linkType: hard
-
-"@babel/plugin-syntax-bigint@npm:^7.8.3":
- version: 7.8.3
- resolution: "@babel/plugin-syntax-bigint@npm:7.8.3"
- dependencies:
- "@babel/helper-plugin-utils": "npm:^7.8.0"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/3a10849d83e47aec50f367a9e56a6b22d662ddce643334b087f9828f4c3dd73bdc5909aaeabe123fed78515767f9ca43498a0e621c438d1cd2802d7fae3c9648
- languageName: node
- linkType: hard
-
-"@babel/plugin-syntax-class-properties@npm:^7.12.13":
- version: 7.12.13
- resolution: "@babel/plugin-syntax-class-properties@npm:7.12.13"
- dependencies:
- "@babel/helper-plugin-utils": "npm:^7.12.13"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/24f34b196d6342f28d4bad303612d7ff566ab0a013ce89e775d98d6f832969462e7235f3e7eaf17678a533d4be0ba45d3ae34ab4e5a9dcbda5d98d49e5efa2fc
- languageName: node
- linkType: hard
-
-"@babel/plugin-syntax-class-static-block@npm:^7.14.5":
- version: 7.14.5
- resolution: "@babel/plugin-syntax-class-static-block@npm:7.14.5"
- dependencies:
- "@babel/helper-plugin-utils": "npm:^7.14.5"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/3e80814b5b6d4fe17826093918680a351c2d34398a914ce6e55d8083d72a9bdde4fbaf6a2dcea0e23a03de26dc2917ae3efd603d27099e2b98380345703bf948
- languageName: node
- linkType: hard
-
"@babel/plugin-syntax-decorators@npm:^7.25.7":
version: 7.25.7
resolution: "@babel/plugin-syntax-decorators@npm:7.25.7"
@@ -1001,7 +921,7 @@ __metadata:
languageName: node
linkType: hard
-"@babel/plugin-syntax-import-attributes@npm:^7.24.7, @babel/plugin-syntax-import-attributes@npm:^7.25.7":
+"@babel/plugin-syntax-import-attributes@npm:^7.25.7":
version: 7.25.7
resolution: "@babel/plugin-syntax-import-attributes@npm:7.25.7"
dependencies:
@@ -1012,29 +932,7 @@ __metadata:
languageName: node
linkType: hard
-"@babel/plugin-syntax-import-meta@npm:^7.10.4":
- version: 7.10.4
- resolution: "@babel/plugin-syntax-import-meta@npm:7.10.4"
- dependencies:
- "@babel/helper-plugin-utils": "npm:^7.10.4"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/166ac1125d10b9c0c430e4156249a13858c0366d38844883d75d27389621ebe651115cb2ceb6dc011534d5055719fa1727b59f39e1ab3ca97820eef3dcab5b9b
- languageName: node
- linkType: hard
-
-"@babel/plugin-syntax-json-strings@npm:^7.8.3":
- version: 7.8.3
- resolution: "@babel/plugin-syntax-json-strings@npm:7.8.3"
- dependencies:
- "@babel/helper-plugin-utils": "npm:^7.8.0"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/bf5aea1f3188c9a507e16efe030efb996853ca3cadd6512c51db7233cc58f3ac89ff8c6bdfb01d30843b161cfe7d321e1bf28da82f7ab8d7e6bc5464666f354a
- languageName: node
- linkType: hard
-
-"@babel/plugin-syntax-jsx@npm:^7.25.7, @babel/plugin-syntax-jsx@npm:^7.7.2":
+"@babel/plugin-syntax-jsx@npm:^7.25.7":
version: 7.25.7
resolution: "@babel/plugin-syntax-jsx@npm:7.25.7"
dependencies:
@@ -1045,17 +943,6 @@ __metadata:
languageName: node
linkType: hard
-"@babel/plugin-syntax-logical-assignment-operators@npm:^7.10.4":
- version: 7.10.4
- resolution: "@babel/plugin-syntax-logical-assignment-operators@npm:7.10.4"
- dependencies:
- "@babel/helper-plugin-utils": "npm:^7.10.4"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/aff33577037e34e515911255cdbb1fd39efee33658aa00b8a5fd3a4b903585112d037cce1cc9e4632f0487dc554486106b79ccd5ea63a2e00df4363f6d4ff886
- languageName: node
- linkType: hard
-
"@babel/plugin-syntax-nullish-coalescing-operator@npm:^7.8.3":
version: 7.8.3
resolution: "@babel/plugin-syntax-nullish-coalescing-operator@npm:7.8.3"
@@ -1078,28 +965,6 @@ __metadata:
languageName: node
linkType: hard
-"@babel/plugin-syntax-object-rest-spread@npm:^7.8.3":
- version: 7.8.3
- resolution: "@babel/plugin-syntax-object-rest-spread@npm:7.8.3"
- dependencies:
- "@babel/helper-plugin-utils": "npm:^7.8.0"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/fddcf581a57f77e80eb6b981b10658421bc321ba5f0a5b754118c6a92a5448f12a0c336f77b8abf734841e102e5126d69110a306eadb03ca3e1547cab31f5cbf
- languageName: node
- linkType: hard
-
-"@babel/plugin-syntax-optional-catch-binding@npm:^7.8.3":
- version: 7.8.3
- resolution: "@babel/plugin-syntax-optional-catch-binding@npm:7.8.3"
- dependencies:
- "@babel/helper-plugin-utils": "npm:^7.8.0"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/910d90e72bc90ea1ce698e89c1027fed8845212d5ab588e35ef91f13b93143845f94e2539d831dc8d8ededc14ec02f04f7bd6a8179edd43a326c784e7ed7f0b9
- languageName: node
- linkType: hard
-
"@babel/plugin-syntax-optional-chaining@npm:^7.8.3":
version: 7.8.3
resolution: "@babel/plugin-syntax-optional-chaining@npm:7.8.3"
@@ -1122,18 +987,7 @@ __metadata:
languageName: node
linkType: hard
-"@babel/plugin-syntax-top-level-await@npm:^7.14.5":
- version: 7.14.5
- resolution: "@babel/plugin-syntax-top-level-await@npm:7.14.5"
- dependencies:
- "@babel/helper-plugin-utils": "npm:^7.14.5"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/bbd1a56b095be7820029b209677b194db9b1d26691fe999856462e66b25b281f031f3dfd91b1619e9dcf95bebe336211833b854d0fb8780d618e35667c2d0d7e
- languageName: node
- linkType: hard
-
-"@babel/plugin-syntax-typescript@npm:^7.25.7, @babel/plugin-syntax-typescript@npm:^7.7.2":
+"@babel/plugin-syntax-typescript@npm:^7.25.7":
version: 7.25.7
resolution: "@babel/plugin-syntax-typescript@npm:7.25.7"
dependencies:
@@ -1977,7 +1831,7 @@ __metadata:
languageName: node
linkType: hard
-"@babel/template@npm:^7.25.7, @babel/template@npm:^7.3.3":
+"@babel/template@npm:^7.25.7":
version: 7.25.7
resolution: "@babel/template@npm:7.25.7"
dependencies:
@@ -2055,17 +1909,6 @@ __metadata:
languageName: node
linkType: hard
-"@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.25.7, @babel/types@npm:^7.25.8, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4, @babel/types@npm:^7.7.0":
- version: 7.25.8
- resolution: "@babel/types@npm:7.25.8"
- dependencies:
- "@babel/helper-string-parser": "npm:^7.25.7"
- "@babel/helper-validator-identifier": "npm:^7.25.7"
- to-fast-properties: "npm:^2.0.0"
- checksum: 10/973108dbb189916bb87360f2beff43ae97f1b08f1c071bc6499d363cce48b3c71674bf3b59dfd617f8c5062d1c76dc2a64232bc07b6ccef831fd0c06162d44d9
- languageName: node
- linkType: hard
-
"@babel/types@npm:^7.21.3, @babel/types@npm:^7.29.7":
version: 7.29.7
resolution: "@babel/types@npm:7.29.7"
@@ -2076,6 +1919,17 @@ __metadata:
languageName: node
linkType: hard
+"@babel/types@npm:^7.25.7, @babel/types@npm:^7.25.8, @babel/types@npm:^7.4.4, @babel/types@npm:^7.7.0":
+ version: 7.25.8
+ resolution: "@babel/types@npm:7.25.8"
+ dependencies:
+ "@babel/helper-string-parser": "npm:^7.25.7"
+ "@babel/helper-validator-identifier": "npm:^7.25.7"
+ to-fast-properties: "npm:^2.0.0"
+ checksum: 10/973108dbb189916bb87360f2beff43ae97f1b08f1c071bc6499d363cce48b3c71674bf3b59dfd617f8c5062d1c76dc2a64232bc07b6ccef831fd0c06162d44d9
+ languageName: node
+ linkType: hard
+
"@babel/types@npm:^7.28.6, @babel/types@npm:^7.29.0":
version: 7.29.0
resolution: "@babel/types@npm:7.29.0"
@@ -2086,13 +1940,6 @@ __metadata:
languageName: node
linkType: hard
-"@bcoe/v8-coverage@npm:^0.2.3":
- version: 0.2.3
- resolution: "@bcoe/v8-coverage@npm:0.2.3"
- checksum: 10/1a1f0e356a3bb30b5f1ced6f79c413e6ebacf130421f15fac5fcd8be5ddf98aedb4404d7f5624e3285b700e041f9ef938321f3ca4d359d5b716f96afa120d88d
- languageName: node
- linkType: hard
-
"@blockly/continuous-toolbox@npm:^7.0.8":
version: 7.0.8
resolution: "@blockly/continuous-toolbox@npm:7.0.8"
@@ -2792,13 +2639,6 @@ __metadata:
languageName: node
linkType: hard
-"@fastify/busboy@npm:^2.0.0":
- version: 2.1.1
- resolution: "@fastify/busboy@npm:2.1.1"
- checksum: 10/2bb8a7eca8289ed14c9eb15239bc1019797454624e769b39a0b90ed204d032403adc0f8ed0d2aef8a18c772205fa7808cf5a1b91f21c7bfc7b6032150b1062c5
- languageName: node
- linkType: hard
-
"@floating-ui/core@npm:^1.7.4":
version: 1.7.4
resolution: "@floating-ui/core@npm:1.7.4"
@@ -2986,93 +2826,6 @@ __metadata:
languageName: node
linkType: hard
-"@istanbuljs/load-nyc-config@npm:^1.0.0":
- version: 1.1.0
- resolution: "@istanbuljs/load-nyc-config@npm:1.1.0"
- dependencies:
- camelcase: "npm:^5.3.1"
- find-up: "npm:^4.1.0"
- get-package-type: "npm:^0.1.0"
- js-yaml: "npm:^3.13.1"
- resolve-from: "npm:^5.0.0"
- checksum: 10/b000a5acd8d4fe6e34e25c399c8bdbb5d3a202b4e10416e17bfc25e12bab90bb56d33db6089ae30569b52686f4b35ff28ef26e88e21e69821d2b85884bd055b8
- languageName: node
- linkType: hard
-
-"@istanbuljs/schema@npm:^0.1.2, @istanbuljs/schema@npm:^0.1.3":
- version: 0.1.3
- resolution: "@istanbuljs/schema@npm:0.1.3"
- checksum: 10/a9b1e49acdf5efc2f5b2359f2df7f90c5c725f2656f16099e8b2cd3a000619ecca9fc48cf693ba789cf0fd989f6e0df6a22bc05574be4223ecdbb7997d04384b
- languageName: node
- linkType: hard
-
-"@jest/console@npm:^29.7.0":
- version: 29.7.0
- resolution: "@jest/console@npm:29.7.0"
- dependencies:
- "@jest/types": "npm:^29.6.3"
- "@types/node": "npm:*"
- chalk: "npm:^4.0.0"
- jest-message-util: "npm:^29.7.0"
- jest-util: "npm:^29.7.0"
- slash: "npm:^3.0.0"
- checksum: 10/4a80c750e8a31f344233cb9951dee9b77bf6b89377cb131f8b3cde07ff218f504370133a5963f6a786af4d2ce7f85642db206ff7a15f99fe58df4c38ac04899e
- languageName: node
- linkType: hard
-
-"@jest/core@npm:^29.7.0":
- version: 29.7.0
- resolution: "@jest/core@npm:29.7.0"
- dependencies:
- "@jest/console": "npm:^29.7.0"
- "@jest/reporters": "npm:^29.7.0"
- "@jest/test-result": "npm:^29.7.0"
- "@jest/transform": "npm:^29.7.0"
- "@jest/types": "npm:^29.6.3"
- "@types/node": "npm:*"
- ansi-escapes: "npm:^4.2.1"
- chalk: "npm:^4.0.0"
- ci-info: "npm:^3.2.0"
- exit: "npm:^0.1.2"
- graceful-fs: "npm:^4.2.9"
- jest-changed-files: "npm:^29.7.0"
- jest-config: "npm:^29.7.0"
- jest-haste-map: "npm:^29.7.0"
- jest-message-util: "npm:^29.7.0"
- jest-regex-util: "npm:^29.6.3"
- jest-resolve: "npm:^29.7.0"
- jest-resolve-dependencies: "npm:^29.7.0"
- jest-runner: "npm:^29.7.0"
- jest-runtime: "npm:^29.7.0"
- jest-snapshot: "npm:^29.7.0"
- jest-util: "npm:^29.7.0"
- jest-validate: "npm:^29.7.0"
- jest-watcher: "npm:^29.7.0"
- micromatch: "npm:^4.0.4"
- pretty-format: "npm:^29.7.0"
- slash: "npm:^3.0.0"
- strip-ansi: "npm:^6.0.0"
- peerDependencies:
- node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
- peerDependenciesMeta:
- node-notifier:
- optional: true
- checksum: 10/ab6ac2e562d083faac7d8152ec1cc4eccc80f62e9579b69ed40aedf7211a6b2d57024a6cd53c4e35fd051c39a236e86257d1d99ebdb122291969a0a04563b51e
- languageName: node
- linkType: hard
-
-"@jest/environment@npm:^29.7.0":
- version: 29.7.0
- resolution: "@jest/environment@npm:29.7.0"
- dependencies:
- "@jest/fake-timers": "npm:^29.7.0"
- "@jest/types": "npm:^29.6.3"
- "@types/node": "npm:*"
- jest-mock: "npm:^29.7.0"
- checksum: 10/90b5844a9a9d8097f2cf107b1b5e57007c552f64315da8c1f51217eeb0a9664889d3f145cdf8acf23a84f4d8309a6675e27d5b059659a004db0ea9546d1c81a8
- languageName: node
- linkType: hard
-
"@jest/expect-utils@npm:^29.7.0":
version: 29.7.0
resolution: "@jest/expect-utils@npm:29.7.0"
@@ -3082,79 +2835,6 @@ __metadata:
languageName: node
linkType: hard
-"@jest/expect@npm:^29.7.0":
- version: 29.7.0
- resolution: "@jest/expect@npm:29.7.0"
- dependencies:
- expect: "npm:^29.7.0"
- jest-snapshot: "npm:^29.7.0"
- checksum: 10/fea6c3317a8da5c840429d90bfe49d928e89c9e89fceee2149b93a11b7e9c73d2f6e4d7cdf647163da938fc4e2169e4490be6bae64952902bc7a701033fd4880
- languageName: node
- linkType: hard
-
-"@jest/fake-timers@npm:^29.7.0":
- version: 29.7.0
- resolution: "@jest/fake-timers@npm:29.7.0"
- dependencies:
- "@jest/types": "npm:^29.6.3"
- "@sinonjs/fake-timers": "npm:^10.0.2"
- "@types/node": "npm:*"
- jest-message-util: "npm:^29.7.0"
- jest-mock: "npm:^29.7.0"
- jest-util: "npm:^29.7.0"
- checksum: 10/9b394e04ffc46f91725ecfdff34c4e043eb7a16e1d78964094c9db3fde0b1c8803e45943a980e8c740d0a3d45661906de1416ca5891a538b0660481a3a828c27
- languageName: node
- linkType: hard
-
-"@jest/globals@npm:^29.7.0":
- version: 29.7.0
- resolution: "@jest/globals@npm:29.7.0"
- dependencies:
- "@jest/environment": "npm:^29.7.0"
- "@jest/expect": "npm:^29.7.0"
- "@jest/types": "npm:^29.6.3"
- jest-mock: "npm:^29.7.0"
- checksum: 10/97dbb9459135693ad3a422e65ca1c250f03d82b2a77f6207e7fa0edd2c9d2015fbe4346f3dc9ebff1678b9d8da74754d4d440b7837497f8927059c0642a22123
- languageName: node
- linkType: hard
-
-"@jest/reporters@npm:^29.7.0":
- version: 29.7.0
- resolution: "@jest/reporters@npm:29.7.0"
- dependencies:
- "@bcoe/v8-coverage": "npm:^0.2.3"
- "@jest/console": "npm:^29.7.0"
- "@jest/test-result": "npm:^29.7.0"
- "@jest/transform": "npm:^29.7.0"
- "@jest/types": "npm:^29.6.3"
- "@jridgewell/trace-mapping": "npm:^0.3.18"
- "@types/node": "npm:*"
- chalk: "npm:^4.0.0"
- collect-v8-coverage: "npm:^1.0.0"
- exit: "npm:^0.1.2"
- glob: "npm:^7.1.3"
- graceful-fs: "npm:^4.2.9"
- istanbul-lib-coverage: "npm:^3.0.0"
- istanbul-lib-instrument: "npm:^6.0.0"
- istanbul-lib-report: "npm:^3.0.0"
- istanbul-lib-source-maps: "npm:^4.0.0"
- istanbul-reports: "npm:^3.1.3"
- jest-message-util: "npm:^29.7.0"
- jest-util: "npm:^29.7.0"
- jest-worker: "npm:^29.7.0"
- slash: "npm:^3.0.0"
- string-length: "npm:^4.0.1"
- strip-ansi: "npm:^6.0.0"
- v8-to-istanbul: "npm:^9.0.1"
- peerDependencies:
- node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
- peerDependenciesMeta:
- node-notifier:
- optional: true
- checksum: 10/a17d1644b26dea14445cedd45567f4ba7834f980be2ef74447204e14238f121b50d8b858fde648083d2cd8f305f81ba434ba49e37a5f4237a6f2a61180cc73dc
- languageName: node
- linkType: hard
-
"@jest/schemas@npm:^29.6.3":
version: 29.6.3
resolution: "@jest/schemas@npm:29.6.3"
@@ -3164,64 +2844,6 @@ __metadata:
languageName: node
linkType: hard
-"@jest/source-map@npm:^29.6.3":
- version: 29.6.3
- resolution: "@jest/source-map@npm:29.6.3"
- dependencies:
- "@jridgewell/trace-mapping": "npm:^0.3.18"
- callsites: "npm:^3.0.0"
- graceful-fs: "npm:^4.2.9"
- checksum: 10/bcc5a8697d471396c0003b0bfa09722c3cd879ad697eb9c431e6164e2ea7008238a01a07193dfe3cbb48b1d258eb7251f6efcea36f64e1ebc464ea3c03ae2deb
- languageName: node
- linkType: hard
-
-"@jest/test-result@npm:^29.7.0":
- version: 29.7.0
- resolution: "@jest/test-result@npm:29.7.0"
- dependencies:
- "@jest/console": "npm:^29.7.0"
- "@jest/types": "npm:^29.6.3"
- "@types/istanbul-lib-coverage": "npm:^2.0.0"
- collect-v8-coverage: "npm:^1.0.0"
- checksum: 10/c073ab7dfe3c562bff2b8fee6cc724ccc20aa96bcd8ab48ccb2aa309b4c0c1923a9e703cea386bd6ae9b71133e92810475bb9c7c22328fc63f797ad3324ed189
- languageName: node
- linkType: hard
-
-"@jest/test-sequencer@npm:^29.7.0":
- version: 29.7.0
- resolution: "@jest/test-sequencer@npm:29.7.0"
- dependencies:
- "@jest/test-result": "npm:^29.7.0"
- graceful-fs: "npm:^4.2.9"
- jest-haste-map: "npm:^29.7.0"
- slash: "npm:^3.0.0"
- checksum: 10/4420c26a0baa7035c5419b0892ff8ffe9a41b1583ec54a10db3037cd46a7e29dd3d7202f8aa9d376e9e53be5f8b1bc0d16e1de6880a6d319b033b01dc4c8f639
- languageName: node
- linkType: hard
-
-"@jest/transform@npm:^29.7.0":
- version: 29.7.0
- resolution: "@jest/transform@npm:29.7.0"
- dependencies:
- "@babel/core": "npm:^7.11.6"
- "@jest/types": "npm:^29.6.3"
- "@jridgewell/trace-mapping": "npm:^0.3.18"
- babel-plugin-istanbul: "npm:^6.1.1"
- chalk: "npm:^4.0.0"
- convert-source-map: "npm:^2.0.0"
- fast-json-stable-stringify: "npm:^2.1.0"
- graceful-fs: "npm:^4.2.9"
- jest-haste-map: "npm:^29.7.0"
- jest-regex-util: "npm:^29.6.3"
- jest-util: "npm:^29.7.0"
- micromatch: "npm:^4.0.4"
- pirates: "npm:^4.0.4"
- slash: "npm:^3.0.0"
- write-file-atomic: "npm:^4.0.2"
- checksum: 10/30f42293545ab037d5799c81d3e12515790bb58513d37f788ce32d53326d0d72ebf5b40f989e6896739aa50a5f77be44686e510966370d58511d5ad2637c68c1
- languageName: node
- linkType: hard
-
"@jest/types@npm:^29.6.3":
version: 29.6.3
resolution: "@jest/types@npm:29.6.3"
@@ -3295,7 +2917,7 @@ __metadata:
languageName: node
linkType: hard
-"@jridgewell/trace-mapping@npm:^0.3.12, @jridgewell/trace-mapping@npm:^0.3.18, @jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25":
+"@jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25":
version: 0.3.25
resolution: "@jridgewell/trace-mapping@npm:0.3.25"
dependencies:
@@ -4397,7 +4019,6 @@ __metadata:
assert: "npm:^2.1.0"
axios: "npm:^1.15.2"
babel-eslint: "npm:^10.1.0"
- babel-jest: "npm:^29.1.2"
babel-preset-react-app: "npm:^10.0.1"
browserslist: "npm:^4.28.6"
browserslist-to-esbuild: "npm:^2.1.1"
@@ -4415,7 +4036,6 @@ __metadata:
eslint-config-react-app: "npm:^6.0.0"
eslint-plugin-flowtype: "npm:^5.2.0"
eslint-plugin-import: "npm:^2.22.1"
- eslint-plugin-jest: "npm:^24.1.0"
eslint-plugin-jsx-a11y: "npm:^6.3.1"
eslint-plugin-prettier: "npm:^5.2.1"
eslint-plugin-react: "npm:^7.21.5"
@@ -4426,18 +4046,7 @@ __metadata:
i18next: "npm:^22.0.3"
i18next-http-backend: "npm:^3.0.5"
identity-obj-proxy: "npm:3.0.0"
- jest: "npm:^29.1.2"
jest-axe: "npm:^7.0.0"
- jest-canvas-mock: "npm:^2.5.2"
- jest-circus: "npm:^29.1.2"
- jest-css-modules-transform: "npm:^4.4.2"
- jest-environment-jsdom: "npm:^29.1.2"
- jest-github-actions-reporter: "npm:^1.0.3"
- jest-junit: "npm:^14.0.1"
- jest-scss-transform: "npm:^1.0.3"
- jest-transform-stub: "npm:^2.0.0"
- jest-transformer-svg: "npm:^2.0.0"
- jest-watch-typeahead: "npm:^2.2.0"
js-convert-case: "npm:^4.2.0"
jsdom: "npm:^29.1.1"
jszip: "npm:^3.10.1"
@@ -5081,24 +4690,6 @@ __metadata:
languageName: node
linkType: hard
-"@sinonjs/commons@npm:^3.0.0":
- version: 3.0.1
- resolution: "@sinonjs/commons@npm:3.0.1"
- dependencies:
- type-detect: "npm:4.0.8"
- checksum: 10/a0af217ba7044426c78df52c23cedede6daf377586f3ac58857c565769358ab1f44ebf95ba04bbe38814fba6e316ca6f02870a009328294fc2c555d0f85a7117
- languageName: node
- linkType: hard
-
-"@sinonjs/fake-timers@npm:^10.0.2":
- version: 10.3.0
- resolution: "@sinonjs/fake-timers@npm:10.3.0"
- dependencies:
- "@sinonjs/commons": "npm:^3.0.0"
- checksum: 10/78155c7bd866a85df85e22028e046b8d46cf3e840f72260954f5e3ed5bd97d66c595524305a6841ffb3f681a08f6e5cef572a2cce5442a8a232dc29fb409b83e
- languageName: node
- linkType: hard
-
"@standard-schema/spec@npm:^1.1.0":
version: 1.1.0
resolution: "@standard-schema/spec@npm:1.1.0"
@@ -5450,13 +5041,6 @@ __metadata:
languageName: node
linkType: hard
-"@tootallnate/once@npm:2":
- version: 2.0.1
- resolution: "@tootallnate/once@npm:2.0.1"
- checksum: 10/487b59b5adb8458dc13394a5aae997bf9705c51fa1e2396c50cd967019d06b273faba3c4d9e7895a996b9e9b055f1c55e53d822e54b3e9c298bcb4f6967cd0d5
- languageName: node
- linkType: hard
-
"@transifex/api@npm:7.1.6":
version: 7.1.6
resolution: "@transifex/api@npm:7.1.6"
@@ -5545,47 +5129,6 @@ __metadata:
languageName: node
linkType: hard
-"@types/babel__core@npm:^7.1.14":
- version: 7.20.5
- resolution: "@types/babel__core@npm:7.20.5"
- dependencies:
- "@babel/parser": "npm:^7.20.7"
- "@babel/types": "npm:^7.20.7"
- "@types/babel__generator": "npm:*"
- "@types/babel__template": "npm:*"
- "@types/babel__traverse": "npm:*"
- checksum: 10/c32838d280b5ab59d62557f9e331d3831f8e547ee10b4f85cb78753d97d521270cebfc73ce501e9fb27fe71884d1ba75e18658692c2f4117543f0fc4e3e118b3
- languageName: node
- linkType: hard
-
-"@types/babel__generator@npm:*":
- version: 7.6.8
- resolution: "@types/babel__generator@npm:7.6.8"
- dependencies:
- "@babel/types": "npm:^7.0.0"
- checksum: 10/b53c215e9074c69d212402990b0ca8fa57595d09e10d94bda3130aa22b55d796e50449199867879e4ea0ee968f3a2099e009cfb21a726a53324483abbf25cd30
- languageName: node
- linkType: hard
-
-"@types/babel__template@npm:*":
- version: 7.4.4
- resolution: "@types/babel__template@npm:7.4.4"
- dependencies:
- "@babel/parser": "npm:^7.1.0"
- "@babel/types": "npm:^7.0.0"
- checksum: 10/d7a02d2a9b67e822694d8e6a7ddb8f2b71a1d6962dfd266554d2513eefbb205b33ca71a0d163b1caea3981ccf849211f9964d8bd0727124d18ace45aa6c9ae29
- languageName: node
- linkType: hard
-
-"@types/babel__traverse@npm:*, @types/babel__traverse@npm:^7.0.6":
- version: 7.20.6
- resolution: "@types/babel__traverse@npm:7.20.6"
- dependencies:
- "@babel/types": "npm:^7.20.7"
- checksum: 10/63d13a3789aa1e783b87a8b03d9fb2c2c90078de7782422feff1631b8c2a25db626e63a63ac5a1465d47359201c73069dacb4b52149d17c568187625da3064ae
- languageName: node
- linkType: hard
-
"@types/chai@npm:^5.2.2":
version: 5.2.3
resolution: "@types/chai@npm:5.2.3"
@@ -5640,15 +5183,6 @@ __metadata:
languageName: node
linkType: hard
-"@types/graceful-fs@npm:^4.1.3":
- version: 4.1.9
- resolution: "@types/graceful-fs@npm:4.1.9"
- dependencies:
- "@types/node": "npm:*"
- checksum: 10/79d746a8f053954bba36bd3d94a90c78de995d126289d656fb3271dd9f1229d33f678da04d10bce6be440494a5a73438e2e363e92802d16b8315b051036c5256
- languageName: node
- linkType: hard
-
"@types/hoist-non-react-statics@npm:3":
version: 3.3.7
resolution: "@types/hoist-non-react-statics@npm:3.3.7"
@@ -5670,7 +5204,7 @@ __metadata:
languageName: node
linkType: hard
-"@types/istanbul-lib-coverage@npm:*, @types/istanbul-lib-coverage@npm:^2.0.0, @types/istanbul-lib-coverage@npm:^2.0.1":
+"@types/istanbul-lib-coverage@npm:*, @types/istanbul-lib-coverage@npm:^2.0.0":
version: 2.0.6
resolution: "@types/istanbul-lib-coverage@npm:2.0.6"
checksum: 10/3feac423fd3e5449485afac999dcfcb3d44a37c830af898b689fadc65d26526460bedb889db278e0d4d815a670331796494d073a10ee6e3a6526301fe7415778
@@ -5705,17 +5239,6 @@ __metadata:
languageName: node
linkType: hard
-"@types/jsdom@npm:^20.0.0":
- version: 20.0.1
- resolution: "@types/jsdom@npm:20.0.1"
- dependencies:
- "@types/node": "npm:*"
- "@types/tough-cookie": "npm:*"
- parse5: "npm:^7.0.0"
- checksum: 10/15fbb9a0bfb4a5845cf6e795f2fd12400aacfca53b8c7e5bca4a3e5e8fa8629f676327964d64258aefb127d2d8a2be86dad46359efbfca0e8c9c2b790e7f8a88
- languageName: node
- linkType: hard
-
"@types/json-schema@npm:^7.0.3, @types/json-schema@npm:^7.0.7, @types/json-schema@npm:^7.0.8":
version: 7.0.15
resolution: "@types/json-schema@npm:7.0.15"
@@ -5932,13 +5455,6 @@ __metadata:
languageName: node
linkType: hard
-"@types/tough-cookie@npm:*":
- version: 4.0.5
- resolution: "@types/tough-cookie@npm:4.0.5"
- checksum: 10/01fd82efc8202670865928629697b62fe9bf0c0dcbc5b1c115831caeb073a2c0abb871ff393d7df1ae94ea41e256cb87d2a5a91fd03cdb1b0b4384e08d4ee482
- languageName: node
- linkType: hard
-
"@types/trusted-types@npm:^2.0.7":
version: 2.0.7
resolution: "@types/trusted-types@npm:2.0.7"
@@ -6046,7 +5562,7 @@ __metadata:
languageName: node
linkType: hard
-"@typescript-eslint/experimental-utils@npm:4.33.0, @typescript-eslint/experimental-utils@npm:^4.0.1":
+"@typescript-eslint/experimental-utils@npm:4.33.0":
version: 4.33.0
resolution: "@typescript-eslint/experimental-utils@npm:4.33.0"
dependencies:
@@ -6306,13 +5822,6 @@ __metadata:
languageName: node
linkType: hard
-"abab@npm:^2.0.6":
- version: 2.0.6
- resolution: "abab@npm:2.0.6"
- checksum: 10/ebe95d7278999e605823fc515a3b05d689bc72e7f825536e73c95ebf621636874c6de1b749b3c4bf866b96ccd4b3a2802efa313d0e45ad51a413c8c73247db20
- languageName: node
- linkType: hard
-
"abbrev@npm:^2.0.0":
version: 2.0.0
resolution: "abbrev@npm:2.0.0"
@@ -6327,16 +5836,6 @@ __metadata:
languageName: node
linkType: hard
-"acorn-globals@npm:^7.0.0":
- version: 7.0.1
- resolution: "acorn-globals@npm:7.0.1"
- dependencies:
- acorn: "npm:^8.1.0"
- acorn-walk: "npm:^8.0.2"
- checksum: 10/2a2998a547af6d0db5f0cdb90acaa7c3cbca6709010e02121fb8b8617c0fbd8bab0b869579903fde358ac78454356a14fadcc1a672ecb97b04b1c2ccba955ce8
- languageName: node
- linkType: hard
-
"acorn-jsx@npm:^5.3.1":
version: 5.3.2
resolution: "acorn-jsx@npm:5.3.2"
@@ -6346,15 +5845,6 @@ __metadata:
languageName: node
linkType: hard
-"acorn-walk@npm:^8.0.2":
- version: 8.3.4
- resolution: "acorn-walk@npm:8.3.4"
- dependencies:
- acorn: "npm:^8.11.0"
- checksum: 10/871386764e1451c637bb8ab9f76f4995d408057e9909be6fb5ad68537ae3375d85e6a6f170b98989f44ab3ff6c74ad120bc2779a3d577606e7a0cd2b4efcaf77
- languageName: node
- linkType: hard
-
"acorn@npm:^7.1.1, acorn@npm:^7.4.0, acorn@npm:^7.4.1":
version: 7.4.1
resolution: "acorn@npm:7.4.1"
@@ -6364,24 +5854,6 @@ __metadata:
languageName: node
linkType: hard
-"acorn@npm:^8.1.0, acorn@npm:^8.11.0, acorn@npm:^8.8.1":
- version: 8.13.0
- resolution: "acorn@npm:8.13.0"
- bin:
- acorn: bin/acorn
- checksum: 10/33e3a03114b02b3bc5009463b3d9549b31a90ee38ebccd5e66515830a02acf62a90edcc12abfb6c9fb3837b6c17a3ec9b72b3bf52ac31d8ad8248a4af871e0f5
- languageName: node
- linkType: hard
-
-"agent-base@npm:6":
- version: 6.0.2
- resolution: "agent-base@npm:6.0.2"
- dependencies:
- debug: "npm:4"
- checksum: 10/21fb903e0917e5cb16591b4d0ef6a028a54b83ac30cd1fca58dece3d4e0990512a8723f9f83130d88a41e2af8b1f7be1386fda3ea2d181bb1a62155e75e95e23
- languageName: node
- linkType: hard
-
"agent-base@npm:^7.0.2, agent-base@npm:^7.1.0, agent-base@npm:^7.1.1":
version: 7.1.1
resolution: "agent-base@npm:7.1.1"
@@ -6448,7 +5920,7 @@ __metadata:
languageName: node
linkType: hard
-"ansi-escapes@npm:^4.2.1, ansi-escapes@npm:^4.3.0":
+"ansi-escapes@npm:^4.3.0":
version: 4.3.2
resolution: "ansi-escapes@npm:4.3.2"
dependencies:
@@ -6457,13 +5929,6 @@ __metadata:
languageName: node
linkType: hard
-"ansi-escapes@npm:^6.0.0":
- version: 6.2.1
- resolution: "ansi-escapes@npm:6.2.1"
- checksum: 10/3b064937dc8a0645ed8094bc8b09483ee718f3aa3139746280e6c2ea80e28c0a3ce66973d0f33e88e60021abbf67e5f877deabfc810e75edf8a19dfa128850be
- languageName: node
- linkType: hard
-
"ansi-regex@npm:^5.0.1":
version: 5.0.1
resolution: "ansi-regex@npm:5.0.1"
@@ -6524,7 +5989,7 @@ __metadata:
languageName: node
linkType: hard
-"anymatch@npm:^3.0.3, anymatch@npm:~3.1.2":
+"anymatch@npm:~3.1.2":
version: 3.1.3
resolution: "anymatch@npm:3.1.3"
dependencies:
@@ -6956,48 +6421,6 @@ __metadata:
languageName: node
linkType: hard
-"babel-jest@npm:^29.1.2, babel-jest@npm:^29.7.0":
- version: 29.7.0
- resolution: "babel-jest@npm:29.7.0"
- dependencies:
- "@jest/transform": "npm:^29.7.0"
- "@types/babel__core": "npm:^7.1.14"
- babel-plugin-istanbul: "npm:^6.1.1"
- babel-preset-jest: "npm:^29.6.3"
- chalk: "npm:^4.0.0"
- graceful-fs: "npm:^4.2.9"
- slash: "npm:^3.0.0"
- peerDependencies:
- "@babel/core": ^7.8.0
- checksum: 10/8a0953bd813b3a8926008f7351611055548869e9a53dd36d6e7e96679001f71e65fd7dbfe253265c3ba6a4e630dc7c845cf3e78b17d758ef1880313ce8fba258
- languageName: node
- linkType: hard
-
-"babel-plugin-istanbul@npm:^6.1.1":
- version: 6.1.1
- resolution: "babel-plugin-istanbul@npm:6.1.1"
- dependencies:
- "@babel/helper-plugin-utils": "npm:^7.0.0"
- "@istanbuljs/load-nyc-config": "npm:^1.0.0"
- "@istanbuljs/schema": "npm:^0.1.2"
- istanbul-lib-instrument: "npm:^5.0.4"
- test-exclude: "npm:^6.0.0"
- checksum: 10/ffd436bb2a77bbe1942a33245d770506ab2262d9c1b3c1f1da7f0592f78ee7445a95bc2efafe619dd9c1b6ee52c10033d6c7d29ddefe6f5383568e60f31dfe8d
- languageName: node
- linkType: hard
-
-"babel-plugin-jest-hoist@npm:^29.6.3":
- version: 29.6.3
- resolution: "babel-plugin-jest-hoist@npm:29.6.3"
- dependencies:
- "@babel/template": "npm:^7.3.3"
- "@babel/types": "npm:^7.3.3"
- "@types/babel__core": "npm:^7.1.14"
- "@types/babel__traverse": "npm:^7.0.6"
- checksum: 10/9bfa86ec4170bd805ab8ca5001ae50d8afcb30554d236ba4a7ffc156c1a92452e220e4acbd98daefc12bf0216fccd092d0a2efed49e7e384ec59e0597a926d65
- languageName: node
- linkType: hard
-
"babel-plugin-macros@npm:^3.1.0":
version: 3.1.0
resolution: "babel-plugin-macros@npm:3.1.0"
@@ -7052,43 +6475,6 @@ __metadata:
languageName: node
linkType: hard
-"babel-preset-current-node-syntax@npm:^1.0.0":
- version: 1.1.0
- resolution: "babel-preset-current-node-syntax@npm:1.1.0"
- dependencies:
- "@babel/plugin-syntax-async-generators": "npm:^7.8.4"
- "@babel/plugin-syntax-bigint": "npm:^7.8.3"
- "@babel/plugin-syntax-class-properties": "npm:^7.12.13"
- "@babel/plugin-syntax-class-static-block": "npm:^7.14.5"
- "@babel/plugin-syntax-import-attributes": "npm:^7.24.7"
- "@babel/plugin-syntax-import-meta": "npm:^7.10.4"
- "@babel/plugin-syntax-json-strings": "npm:^7.8.3"
- "@babel/plugin-syntax-logical-assignment-operators": "npm:^7.10.4"
- "@babel/plugin-syntax-nullish-coalescing-operator": "npm:^7.8.3"
- "@babel/plugin-syntax-numeric-separator": "npm:^7.10.4"
- "@babel/plugin-syntax-object-rest-spread": "npm:^7.8.3"
- "@babel/plugin-syntax-optional-catch-binding": "npm:^7.8.3"
- "@babel/plugin-syntax-optional-chaining": "npm:^7.8.3"
- "@babel/plugin-syntax-private-property-in-object": "npm:^7.14.5"
- "@babel/plugin-syntax-top-level-await": "npm:^7.14.5"
- peerDependencies:
- "@babel/core": ^7.0.0
- checksum: 10/46331111ae72b7121172fd9e6a4a7830f651ad44bf26dbbf77b3c8a60a18009411a3eacb5e72274004290c110371230272109957d5224d155436b4794ead2f1b
- languageName: node
- linkType: hard
-
-"babel-preset-jest@npm:^29.6.3":
- version: 29.6.3
- resolution: "babel-preset-jest@npm:29.6.3"
- dependencies:
- babel-plugin-jest-hoist: "npm:^29.6.3"
- babel-preset-current-node-syntax: "npm:^1.0.0"
- peerDependencies:
- "@babel/core": ^7.0.0
- checksum: 10/aa4ff2a8a728d9d698ed521e3461a109a1e66202b13d3494e41eea30729a5e7cc03b3a2d56c594423a135429c37bf63a9fa8b0b9ce275298be3095a88c69f6fb
- languageName: node
- linkType: hard
-
"babel-preset-react-app@npm:^10.0.1":
version: 10.0.1
resolution: "babel-preset-react-app@npm:10.0.1"
@@ -7469,15 +6855,6 @@ __metadata:
languageName: node
linkType: hard
-"bser@npm:2.1.1":
- version: 2.1.1
- resolution: "bser@npm:2.1.1"
- dependencies:
- node-int64: "npm:^0.4.0"
- checksum: 10/edba1b65bae682450be4117b695997972bd9a3c4dfee029cab5bcb72ae5393a79a8f909b8bc77957eb0deec1c7168670f18f4d5c556f46cdd3bca5f3b3a8d020
- languageName: node
- linkType: hard
-
"btoa@npm:1.2.1":
version: 1.2.1
resolution: "btoa@npm:1.2.1"
@@ -7678,20 +7055,13 @@ __metadata:
languageName: node
linkType: hard
-"camelcase@npm:6.3.0, camelcase@npm:^6.1.0, camelcase@npm:^6.2.0":
+"camelcase@npm:^6.1.0, camelcase@npm:^6.2.0":
version: 6.3.0
resolution: "camelcase@npm:6.3.0"
checksum: 10/8c96818a9076434998511251dcb2761a94817ea17dbdc37f47ac080bd088fc62c7369429a19e2178b993497132c8cbcf5cc1f44ba963e76782ba469c0474938d
languageName: node
linkType: hard
-"camelcase@npm:^5.3.1":
- version: 5.3.1
- resolution: "camelcase@npm:5.3.1"
- checksum: 10/e6effce26b9404e3c0f301498184f243811c30dfe6d0b9051863bd8e4034d09c8c2923794f280d6827e5aa055f6c434115ff97864a16a963366fb35fd673024b
- languageName: node
- linkType: hard
-
"camera-controls@npm:^3.1.0":
version: 3.1.2
resolution: "camera-controls@npm:3.1.2"
@@ -7776,27 +7146,6 @@ __metadata:
languageName: node
linkType: hard
-"chalk@npm:^5.2.0":
- version: 5.3.0
- resolution: "chalk@npm:5.3.0"
- checksum: 10/6373caaab21bd64c405bfc4bd9672b145647fc9482657b5ea1d549b3b2765054e9d3d928870cdf764fb4aad67555f5061538ff247b8310f110c5c888d92397ea
- languageName: node
- linkType: hard
-
-"char-regex@npm:^1.0.2":
- version: 1.0.2
- resolution: "char-regex@npm:1.0.2"
- checksum: 10/1ec5c2906adb9f84e7f6732a40baef05d7c85401b82ffcbc44b85fbd0f7a2b0c2a96f2eb9cf55cae3235dc12d4023003b88f09bcae8be9ae894f52ed746f4d48
- languageName: node
- linkType: hard
-
-"char-regex@npm:^2.0.0":
- version: 2.0.1
- resolution: "char-regex@npm:2.0.1"
- checksum: 10/fadd100b963c160a70192e47e122c654cadf447c2c8f23b0bda4dc9ef1a02c993abbb0f21f50e2e58f90a8453ca019b3c86f001688cb42fb7b54af4e661b1ada
- languageName: node
- linkType: hard
-
"check-more-types@npm:^2.24.0":
version: 2.24.0
resolution: "check-more-types@npm:2.24.0"
@@ -7864,13 +7213,6 @@ __metadata:
languageName: node
linkType: hard
-"cjs-module-lexer@npm:^1.0.0":
- version: 1.4.1
- resolution: "cjs-module-lexer@npm:1.4.1"
- checksum: 10/6e830a1e00a34d416949bbc1924f3e8da65cef4a6a09e2b7fa35722e2d1c34bf378d3baca987b698d1cbc3eb83e44b044039b4e82755c96f30e0f03d1d227637
- languageName: node
- linkType: hard
-
"clamp@npm:^1.0.1":
version: 1.0.1
resolution: "clamp@npm:1.0.1"
@@ -7935,17 +7277,6 @@ __metadata:
languageName: node
linkType: hard
-"cliui@npm:^8.0.1":
- version: 8.0.1
- resolution: "cliui@npm:8.0.1"
- dependencies:
- string-width: "npm:^4.2.0"
- strip-ansi: "npm:^6.0.1"
- wrap-ansi: "npm:^7.0.0"
- checksum: 10/eaa5561aeb3135c2cddf7a3b3f562fc4238ff3b3fc666869ef2adf264be0f372136702f16add9299087fb1907c2e4ec5dbfe83bd24bce815c70a80c6c1a2e950
- languageName: node
- linkType: hard
-
"cliui@npm:^9.0.1":
version: 9.0.1
resolution: "cliui@npm:9.0.1"
@@ -7971,13 +7302,6 @@ __metadata:
languageName: node
linkType: hard
-"co@npm:^4.6.0":
- version: 4.6.0
- resolution: "co@npm:4.6.0"
- checksum: 10/a5d9f37091c70398a269e625cedff5622f200ed0aa0cff22ee7b55ed74a123834b58711776eb0f1dc58eb6ebbc1185aa7567b57bd5979a948c6e4f85073e2c05
- languageName: node
- linkType: hard
-
"codemirror@npm:^6.0.1":
version: 6.0.1
resolution: "codemirror@npm:6.0.1"
@@ -7993,13 +7317,6 @@ __metadata:
languageName: node
linkType: hard
-"collect-v8-coverage@npm:^1.0.0":
- version: 1.0.2
- resolution: "collect-v8-coverage@npm:1.0.2"
- checksum: 10/30ea7d5c9ee51f2fdba4901d4186c5b7114a088ef98fd53eda3979da77eed96758a2cae81cc6d97e239aaea6065868cf908b24980663f7b7e96aa291b3e12fa4
- languageName: node
- linkType: hard
-
"color-alpha@npm:1.0.4":
version: 1.0.4
resolution: "color-alpha@npm:1.0.4"
@@ -8059,7 +7376,7 @@ __metadata:
languageName: node
linkType: hard
-"color-name@npm:^1.0.0, color-name@npm:^1.1.4, color-name@npm:~1.1.4":
+"color-name@npm:^1.0.0, color-name@npm:~1.1.4":
version: 1.1.4
resolution: "color-name@npm:1.1.4"
checksum: 10/b0445859521eb4021cd0fb0cc1a75cecf67fceecae89b63f62b201cca8d345baf8b952c966862a9d9a2632987d4f6581f0ec8d957dfacece86f0a7919316f610
@@ -8465,23 +7782,6 @@ __metadata:
languageName: node
linkType: hard
-"create-jest@npm:^29.7.0":
- version: 29.7.0
- resolution: "create-jest@npm:29.7.0"
- dependencies:
- "@jest/types": "npm:^29.6.3"
- chalk: "npm:^4.0.0"
- exit: "npm:^0.1.2"
- graceful-fs: "npm:^4.2.9"
- jest-config: "npm:^29.7.0"
- jest-util: "npm:^29.7.0"
- prompts: "npm:^2.0.1"
- bin:
- create-jest: bin/create-jest.js
- checksum: 10/847b4764451672b4174be4d5c6d7d63442ec3aa5f3de52af924e4d996d87d7801c18e125504f25232fc75840f6625b3ac85860fac6ce799b5efae7bdcaf4a2b7
- languageName: node
- linkType: hard
-
"create-require@npm:^1.1.1":
version: 1.1.1
resolution: "create-require@npm:1.1.1"
@@ -8517,7 +7817,7 @@ __metadata:
languageName: node
linkType: hard
-"cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.1, cross-spawn@npm:^7.0.2, cross-spawn@npm:^7.0.3":
+"cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.1, cross-spawn@npm:^7.0.2":
version: 7.0.3
resolution: "cross-spawn@npm:7.0.3"
dependencies:
@@ -8729,36 +8029,6 @@ __metadata:
languageName: node
linkType: hard
-"cssfontparser@npm:^1.2.1":
- version: 1.2.1
- resolution: "cssfontparser@npm:1.2.1"
- checksum: 10/952d487cddab591fb944f2a4c326a7736bc963784a6d92b6ad4051f3bf5ee49a732eff62e29a52ff085197cb07f5bd66525a2245ded7fd356113ac81be9238b9
- languageName: node
- linkType: hard
-
-"cssom@npm:^0.5.0":
- version: 0.5.0
- resolution: "cssom@npm:0.5.0"
- checksum: 10/b502a315b1ce020a692036cc38cb36afa44157219b80deadfa040ab800aa9321fcfbecf02fd2e6ec87db169715e27978b4ab3701f916461e9cf7808899f23b54
- languageName: node
- linkType: hard
-
-"cssom@npm:~0.3.6":
- version: 0.3.8
- resolution: "cssom@npm:0.3.8"
- checksum: 10/49eacc88077555e419646c0ea84ddc73c97e3a346ad7cb95e22f9413a9722d8964b91d781ce21d378bd5ae058af9a745402383fa4e35e9cdfd19654b63f892a9
- languageName: node
- linkType: hard
-
-"cssstyle@npm:^2.3.0":
- version: 2.3.0
- resolution: "cssstyle@npm:2.3.0"
- dependencies:
- cssom: "npm:~0.3.6"
- checksum: 10/46f7f05a153446c4018b0454ee1464b50f606cb1803c90d203524834b7438eb52f3b173ba0891c618f380ced34ee12020675dc0052a7f1be755fe4ebc27ee977
- languageName: node
- linkType: hard
-
"cssstyle@npm:^4.2.1":
version: 4.6.0
resolution: "cssstyle@npm:4.6.0"
@@ -9031,17 +8301,6 @@ __metadata:
languageName: node
linkType: hard
-"data-urls@npm:^3.0.2":
- version: 3.0.2
- resolution: "data-urls@npm:3.0.2"
- dependencies:
- abab: "npm:^2.0.6"
- whatwg-mimetype: "npm:^3.0.0"
- whatwg-url: "npm:^11.0.0"
- checksum: 10/033fc3dd0fba6d24bc9a024ddcf9923691dd24f90a3d26f6545d6a2f71ec6956f93462f2cdf2183cc46f10dc01ed3bcb36731a8208456eb1a08147e571fe2a76
- languageName: node
- linkType: hard
-
"data-urls@npm:^5.0.0":
version: 5.0.0
resolution: "data-urls@npm:5.0.0"
@@ -9160,13 +8419,6 @@ __metadata:
languageName: node
linkType: hard
-"decimal.js@npm:^10.4.2":
- version: 10.4.3
- resolution: "decimal.js@npm:10.4.3"
- checksum: 10/de663a7bc4d368e3877db95fcd5c87b965569b58d16cdc4258c063d231ca7118748738df17cd638f7e9dd0be8e34cec08d7234b20f1f2a756a52fc5a38b188d0
- languageName: node
- linkType: hard
-
"decimal.js@npm:^10.5.0, decimal.js@npm:^10.6.0":
version: 10.6.0
resolution: "decimal.js@npm:10.6.0"
@@ -9188,18 +8440,6 @@ __metadata:
languageName: node
linkType: hard
-"dedent@npm:^1.0.0":
- version: 1.5.3
- resolution: "dedent@npm:1.5.3"
- peerDependencies:
- babel-plugin-macros: ^3.1.0
- peerDependenciesMeta:
- babel-plugin-macros:
- optional: true
- checksum: 10/e5277f6268f288649503125b781a7b7a2c9b22d011139688c0b3619fe40121e600eb1f077c891938d4b2428bdb6326cc3c77a763e4b1cc681bd9666ab1bad2a1
- languageName: node
- linkType: hard
-
"deep-equal@npm:^2.0.5":
version: 2.2.3
resolution: "deep-equal@npm:2.2.3"
@@ -9233,13 +8473,6 @@ __metadata:
languageName: node
linkType: hard
-"deepmerge@npm:^4.2.2":
- version: 4.3.1
- resolution: "deepmerge@npm:4.3.1"
- checksum: 10/058d9e1b0ff1a154468bf3837aea436abcfea1ba1d165ddaaf48ca93765fdd01a30d33c36173da8fbbed951dd0a267602bc782fe288b0fc4b7e1e7091afc4529
- languageName: node
- linkType: hard
-
"default-browser-id@npm:^5.0.0":
version: 5.0.0
resolution: "default-browser-id@npm:5.0.0"
@@ -9349,13 +8582,6 @@ __metadata:
languageName: node
linkType: hard
-"detect-newline@npm:^3.0.0":
- version: 3.1.0
- resolution: "detect-newline@npm:3.1.0"
- checksum: 10/ae6cd429c41ad01b164c59ea36f264a2c479598e61cba7c99da24175a7ab80ddf066420f2bec9a1c57a6bead411b4655ff15ad7d281c000a89791f48cbe939e7
- languageName: node
- linkType: hard
-
"detect-node-es@npm:^1.1.0":
version: 1.1.0
resolution: "detect-node-es@npm:1.1.0"
@@ -9488,15 +8714,6 @@ __metadata:
languageName: node
linkType: hard
-"domexception@npm:^4.0.0":
- version: 4.0.0
- resolution: "domexception@npm:4.0.0"
- dependencies:
- webidl-conversions: "npm:^7.0.0"
- checksum: 10/4ed443227d2871d76c58d852b2e93c68e0443815b2741348f20881bedee8c1ad4f9bfc5d30c7dec433cd026b57da63407c010260b1682fef4c8847e7181ea43f
- languageName: node
- linkType: hard
-
"domhandler@npm:^2.3.0":
version: 2.4.2
resolution: "domhandler@npm:2.4.2"
@@ -9730,13 +8947,6 @@ __metadata:
languageName: node
linkType: hard
-"emittery@npm:^0.13.1":
- version: 0.13.1
- resolution: "emittery@npm:0.13.1"
- checksum: 10/fbe214171d878b924eedf1757badf58a5dce071cd1fa7f620fa841a0901a80d6da47ff05929d53163105e621ce11a71b9d8acb1148ffe1745e045145f6e69521
- languageName: node
- linkType: hard
-
"emoji-regex@npm:^10.3.0":
version: 10.6.0
resolution: "emoji-regex@npm:10.6.0"
@@ -9816,7 +9026,7 @@ __metadata:
languageName: node
linkType: hard
-"entities@npm:^4.2.0, entities@npm:^4.4.0, entities@npm:^4.5.0":
+"entities@npm:^4.2.0, entities@npm:^4.4.0":
version: 4.5.0
resolution: "entities@npm:4.5.0"
checksum: 10/ede2a35c9bce1aeccd055a1b445d41c75a14a2bb1cd22e242f20cf04d236cdcd7f9c859eb83f76885327bfae0c25bf03303665ee1ce3d47c5927b98b0e3e3d48
@@ -10220,7 +9430,7 @@ __metadata:
languageName: node
linkType: hard
-"escodegen@npm:^2.0.0, escodegen@npm:^2.1.0":
+"escodegen@npm:^2.1.0":
version: 2.1.0
resolution: "escodegen@npm:2.1.0"
dependencies:
@@ -10358,21 +9568,6 @@ __metadata:
languageName: node
linkType: hard
-"eslint-plugin-jest@npm:^24.1.0":
- version: 24.7.0
- resolution: "eslint-plugin-jest@npm:24.7.0"
- dependencies:
- "@typescript-eslint/experimental-utils": "npm:^4.0.1"
- peerDependencies:
- "@typescript-eslint/eslint-plugin": ">= 4"
- eslint: ">=5"
- peerDependenciesMeta:
- "@typescript-eslint/eslint-plugin":
- optional: true
- checksum: 10/e8d2ca1d8eed602d5cce36c2359c81870c65c6d639f100b13a749a293da7f932aac99f570d0538ccb6c99a865bbcb58e79de98c89fe6066df01e78ddae354b9e
- languageName: node
- linkType: hard
-
"eslint-plugin-jsx-a11y@npm:^6.3.1":
version: 6.10.0
resolution: "eslint-plugin-jsx-a11y@npm:6.10.0"
@@ -10711,23 +9906,6 @@ __metadata:
languageName: node
linkType: hard
-"execa@npm:^5.0.0":
- version: 5.1.1
- resolution: "execa@npm:5.1.1"
- dependencies:
- cross-spawn: "npm:^7.0.3"
- get-stream: "npm:^6.0.0"
- human-signals: "npm:^2.1.0"
- is-stream: "npm:^2.0.0"
- merge-stream: "npm:^2.0.0"
- npm-run-path: "npm:^4.0.1"
- onetime: "npm:^5.1.2"
- signal-exit: "npm:^3.0.3"
- strip-final-newline: "npm:^2.0.0"
- checksum: 10/8ada91f2d70f7dff702c861c2c64f21dfdc1525628f3c0454fd6f02fce65f7b958616cbd2b99ca7fa4d474e461a3d363824e91b3eb881705231abbf387470597
- languageName: node
- linkType: hard
-
"executable@npm:^4.1.1":
version: 4.1.1
resolution: "executable@npm:4.1.1"
@@ -10744,13 +9922,6 @@ __metadata:
languageName: node
linkType: hard
-"exit@npm:^0.1.2":
- version: 0.1.2
- resolution: "exit@npm:0.1.2"
- checksum: 10/387555050c5b3c10e7a9e8df5f43194e95d7737c74532c409910e585d5554eaff34960c166643f5e23d042196529daad059c292dcf1fb61b8ca878d3677f4b87
- languageName: node
- linkType: hard
-
"expect-type@npm:^1.3.0":
version: 1.4.0
resolution: "expect-type@npm:1.4.0"
@@ -10758,7 +9929,7 @@ __metadata:
languageName: node
linkType: hard
-"expect@npm:^29.0.0, expect@npm:^29.7.0":
+"expect@npm:^29.0.0":
version: 29.7.0
resolution: "expect@npm:29.7.0"
dependencies:
@@ -10884,7 +10055,7 @@ __metadata:
languageName: node
linkType: hard
-"fast-json-stable-stringify@npm:^2.0.0, fast-json-stable-stringify@npm:^2.1.0":
+"fast-json-stable-stringify@npm:^2.0.0":
version: 2.1.0
resolution: "fast-json-stable-stringify@npm:2.1.0"
checksum: 10/2c20055c1fa43c922428f16ca8bb29f2807de63e5c851f665f7ac9790176c01c3b40335257736b299764a8d383388dabc73c8083b8e1bc3d99f0a941444ec60e
@@ -10928,15 +10099,6 @@ __metadata:
languageName: node
linkType: hard
-"fb-watchman@npm:^2.0.0":
- version: 2.0.2
- resolution: "fb-watchman@npm:2.0.2"
- dependencies:
- bser: "npm:2.1.1"
- checksum: 10/4f95d336fb805786759e383fd7fff342ceb7680f53efcc0ef82f502eb479ce35b98e8b207b6dfdfeea0eba845862107dc73813775fc6b56b3098c6e90a2dad77
- languageName: node
- linkType: hard
-
"fd-slicer@npm:~1.1.0":
version: 1.1.0
resolution: "fd-slicer@npm:1.1.0"
@@ -11026,7 +10188,7 @@ __metadata:
languageName: node
linkType: hard
-"find-up@npm:^4.0.0, find-up@npm:^4.1.0":
+"find-up@npm:^4.0.0":
version: 4.1.0
resolution: "find-up@npm:4.1.0"
dependencies:
@@ -11159,17 +10321,6 @@ __metadata:
languageName: node
linkType: hard
-"form-data@npm:^4.0.0":
- version: 4.0.1
- resolution: "form-data@npm:4.0.1"
- dependencies:
- asynckit: "npm:^0.4.0"
- combined-stream: "npm:^1.0.8"
- mime-types: "npm:^2.1.12"
- checksum: 10/6adb1cff557328bc6eb8a68da205f9ae44ab0e88d4d9237aaf91eed591ffc64f77411efb9016af7d87f23d0a038c45a788aa1c6634e51175c4efa36c2bc53774
- languageName: node
- linkType: hard
-
"form-data@npm:^4.0.4, form-data@npm:^4.0.5, form-data@npm:~4.0.4":
version: 4.0.5
resolution: "form-data@npm:4.0.5"
@@ -11286,7 +10437,7 @@ __metadata:
languageName: node
linkType: hard
-"fsevents@npm:^2.3.2, fsevents@npm:~2.3.2, fsevents@npm:~2.3.3":
+"fsevents@npm:~2.3.2, fsevents@npm:~2.3.3":
version: 2.3.3
resolution: "fsevents@npm:2.3.3"
dependencies:
@@ -11296,7 +10447,7 @@ __metadata:
languageName: node
linkType: hard
-"fsevents@patch:fsevents@npm%3A^2.3.2#optional!builtin, fsevents@patch:fsevents@npm%3A~2.3.2#optional!builtin, fsevents@patch:fsevents@npm%3A~2.3.3#optional!builtin":
+"fsevents@patch:fsevents@npm%3A~2.3.2#optional!builtin, fsevents@patch:fsevents@npm%3A~2.3.3#optional!builtin":
version: 2.3.3
resolution: "fsevents@patch:fsevents@npm%3A2.3.3#optional!builtin::version=2.3.3&hash=df0bf1"
dependencies:
@@ -11460,13 +10611,6 @@ __metadata:
languageName: node
linkType: hard
-"get-package-type@npm:^0.1.0":
- version: 0.1.0
- resolution: "get-package-type@npm:0.1.0"
- checksum: 10/bba0811116d11e56d702682ddef7c73ba3481f114590e705fc549f4d868972263896af313c57a25c076e3c0d567e11d919a64ba1b30c879be985fc9d44f96148
- languageName: node
- linkType: hard
-
"get-proto@npm:^1.0.0, get-proto@npm:^1.0.1":
version: 1.0.1
resolution: "get-proto@npm:1.0.1"
@@ -11486,7 +10630,7 @@ __metadata:
languageName: node
linkType: hard
-"get-stream@npm:^6.0.0, get-stream@npm:^6.0.1":
+"get-stream@npm:^6.0.1":
version: 6.0.1
resolution: "get-stream@npm:6.0.1"
checksum: 10/781266d29725f35c59f1d214aedc92b0ae855800a980800e2923b3fbc4e56b3cb6e462c42e09a1cf1a00c64e056a78fa407cbe06c7c92b7e5cd49b4b85c2a497
@@ -12240,15 +11384,6 @@ __metadata:
languageName: node
linkType: hard
-"html-encoding-sniffer@npm:^3.0.0":
- version: 3.0.0
- resolution: "html-encoding-sniffer@npm:3.0.0"
- dependencies:
- whatwg-encoding: "npm:^2.0.0"
- checksum: 10/707a812ec2acaf8bb5614c8618dc81e2fb6b4399d03e95ff18b65679989a072f4e919b9bef472039301a1bbfba64063ba4c79ea6e851c653ac9db80dbefe8fe5
- languageName: node
- linkType: hard
-
"html-encoding-sniffer@npm:^4.0.0":
version: 4.0.0
resolution: "html-encoding-sniffer@npm:4.0.0"
@@ -12267,13 +11402,6 @@ __metadata:
languageName: node
linkType: hard
-"html-escaper@npm:^2.0.0":
- version: 2.0.2
- resolution: "html-escaper@npm:2.0.2"
- checksum: 10/034d74029dcca544a34fb6135e98d427acd73019796ffc17383eaa3ec2fe1c0471dcbbc8f8ed39e46e86d43ccd753a160631615e4048285e313569609b66d5b7
- languageName: node
- linkType: hard
-
"html-parse-stringify@npm:^3.0.1":
version: 3.0.1
resolution: "html-parse-stringify@npm:3.0.1"
@@ -12311,17 +11439,6 @@ __metadata:
languageName: node
linkType: hard
-"http-proxy-agent@npm:^5.0.0":
- version: 5.0.0
- resolution: "http-proxy-agent@npm:5.0.0"
- dependencies:
- "@tootallnate/once": "npm:2"
- agent-base: "npm:6"
- debug: "npm:4"
- checksum: 10/5ee19423bc3e0fd5f23ce991b0755699ad2a46a440ce9cec99e8126bb98448ad3479d2c0ea54be5519db5b19a4ffaa69616bac01540db18506dd4dac3dc418f0
- languageName: node
- linkType: hard
-
"http-proxy-agent@npm:^7.0.0, http-proxy-agent@npm:^7.0.2":
version: 7.0.2
resolution: "http-proxy-agent@npm:7.0.2"
@@ -12361,16 +11478,6 @@ __metadata:
languageName: node
linkType: hard
-"https-proxy-agent@npm:^5.0.1":
- version: 5.0.1
- resolution: "https-proxy-agent@npm:5.0.1"
- dependencies:
- agent-base: "npm:6"
- debug: "npm:4"
- checksum: 10/f0dce7bdcac5e8eaa0be3c7368bb8836ed010fb5b6349ffb412b172a203efe8f807d9a6681319105ea1b6901e1972c7b5ea899672a7b9aad58309f766dcbe0df
- languageName: node
- linkType: hard
-
"https-proxy-agent@npm:^7.0.1":
version: 7.0.5
resolution: "https-proxy-agent@npm:7.0.5"
@@ -12405,13 +11512,6 @@ __metadata:
languageName: node
linkType: hard
-"human-signals@npm:^2.1.0":
- version: 2.1.0
- resolution: "human-signals@npm:2.1.0"
- checksum: 10/df59be9e0af479036798a881d1f136c4a29e0b518d4abb863afbd11bf30efa3eeb1d0425fc65942dcc05ab3bf40205ea436b0ff389f2cd20b75b8643d539bf86
- languageName: node
- linkType: hard
-
"hyphenate-style-name@npm:^1.0.0":
version: 1.1.0
resolution: "hyphenate-style-name@npm:1.1.0"
@@ -12554,18 +11654,6 @@ __metadata:
languageName: node
linkType: hard
-"import-local@npm:^3.0.2":
- version: 3.2.0
- resolution: "import-local@npm:3.2.0"
- dependencies:
- pkg-dir: "npm:^4.2.0"
- resolve-cwd: "npm:^3.0.0"
- bin:
- import-local-fixture: fixtures/cli.js
- checksum: 10/0b0b0b412b2521739fbb85eeed834a3c34de9bc67e670b3d0b86248fc460d990a7b116ad056c084b87a693ef73d1f17268d6a5be626bb43c998a8b1c8a230004
- languageName: node
- linkType: hard
-
"import-meta-resolve@npm:^4.2.0":
version: 4.2.0
resolution: "import-meta-resolve@npm:4.2.0"
@@ -12849,13 +11937,6 @@ __metadata:
languageName: node
linkType: hard
-"is-generator-fn@npm:^2.0.0":
- version: 2.1.0
- resolution: "is-generator-fn@npm:2.1.0"
- checksum: 10/a6ad5492cf9d1746f73b6744e0c43c0020510b59d56ddcb78a91cbc173f09b5e6beff53d75c9c5a29feb618bfef2bf458e025ecf3a57ad2268e2fb2569f56215
- languageName: node
- linkType: hard
-
"is-generator-function@npm:^1.0.10":
version: 1.0.10
resolution: "is-generator-function@npm:1.0.10"
@@ -13234,71 +12315,6 @@ __metadata:
languageName: node
linkType: hard
-"istanbul-lib-coverage@npm:^3.0.0, istanbul-lib-coverage@npm:^3.2.0":
- version: 3.2.2
- resolution: "istanbul-lib-coverage@npm:3.2.2"
- checksum: 10/40bbdd1e937dfd8c830fa286d0f665e81b7a78bdabcd4565f6d5667c99828bda3db7fb7ac6b96a3e2e8a2461ddbc5452d9f8bc7d00cb00075fa6a3e99f5b6a81
- languageName: node
- linkType: hard
-
-"istanbul-lib-instrument@npm:^5.0.4":
- version: 5.2.1
- resolution: "istanbul-lib-instrument@npm:5.2.1"
- dependencies:
- "@babel/core": "npm:^7.12.3"
- "@babel/parser": "npm:^7.14.7"
- "@istanbuljs/schema": "npm:^0.1.2"
- istanbul-lib-coverage: "npm:^3.2.0"
- semver: "npm:^6.3.0"
- checksum: 10/bbc4496c2f304d799f8ec22202ab38c010ac265c441947f075c0f7d46bd440b45c00e46017cf9053453d42182d768b1d6ed0e70a142c95ab00df9843aa5ab80e
- languageName: node
- linkType: hard
-
-"istanbul-lib-instrument@npm:^6.0.0":
- version: 6.0.3
- resolution: "istanbul-lib-instrument@npm:6.0.3"
- dependencies:
- "@babel/core": "npm:^7.23.9"
- "@babel/parser": "npm:^7.23.9"
- "@istanbuljs/schema": "npm:^0.1.3"
- istanbul-lib-coverage: "npm:^3.2.0"
- semver: "npm:^7.5.4"
- checksum: 10/aa5271c0008dfa71b6ecc9ba1e801bf77b49dc05524e8c30d58aaf5b9505e0cd12f25f93165464d4266a518c5c75284ecb598fbd89fec081ae77d2c9d3327695
- languageName: node
- linkType: hard
-
-"istanbul-lib-report@npm:^3.0.0":
- version: 3.0.1
- resolution: "istanbul-lib-report@npm:3.0.1"
- dependencies:
- istanbul-lib-coverage: "npm:^3.0.0"
- make-dir: "npm:^4.0.0"
- supports-color: "npm:^7.1.0"
- checksum: 10/86a83421ca1cf2109a9f6d193c06c31ef04a45e72a74579b11060b1e7bb9b6337a4e6f04abfb8857e2d569c271273c65e855ee429376a0d7c91ad91db42accd1
- languageName: node
- linkType: hard
-
-"istanbul-lib-source-maps@npm:^4.0.0":
- version: 4.0.1
- resolution: "istanbul-lib-source-maps@npm:4.0.1"
- dependencies:
- debug: "npm:^4.1.1"
- istanbul-lib-coverage: "npm:^3.0.0"
- source-map: "npm:^0.6.1"
- checksum: 10/5526983462799aced011d776af166e350191b816821ea7bcf71cab3e5272657b062c47dc30697a22a43656e3ced78893a42de677f9ccf276a28c913190953b82
- languageName: node
- linkType: hard
-
-"istanbul-reports@npm:^3.1.3":
- version: 3.1.7
- resolution: "istanbul-reports@npm:3.1.7"
- dependencies:
- html-escaper: "npm:^2.0.0"
- istanbul-lib-report: "npm:^3.0.0"
- checksum: 10/f1faaa4684efaf57d64087776018d7426312a59aa6eeb4e0e3a777347d23cd286ad18f427e98f0e3dee666103d7404c9d7abc5f240406a912fa16bd6695437fa
- languageName: node
- linkType: hard
-
"iterator.prototype@npm:^1.1.3":
version: 1.1.3
resolution: "iterator.prototype@npm:1.1.3"
@@ -13348,130 +12364,6 @@ __metadata:
languageName: node
linkType: hard
-"jest-canvas-mock@npm:^2.5.2":
- version: 2.5.2
- resolution: "jest-canvas-mock@npm:2.5.2"
- dependencies:
- cssfontparser: "npm:^1.2.1"
- moo-color: "npm:^1.0.2"
- checksum: 10/094e2e1c773c658fab7e91e9279027fc38a55060865b5b6a3c9acc47fc912fb9d3451ab4fdf544d016578f77b975626707c3a62e396575aa878f46d939c7ca5e
- languageName: node
- linkType: hard
-
-"jest-changed-files@npm:^29.7.0":
- version: 29.7.0
- resolution: "jest-changed-files@npm:29.7.0"
- dependencies:
- execa: "npm:^5.0.0"
- jest-util: "npm:^29.7.0"
- p-limit: "npm:^3.1.0"
- checksum: 10/3d93742e56b1a73a145d55b66e96711fbf87ef89b96c2fab7cfdfba8ec06612591a982111ca2b712bb853dbc16831ec8b43585a2a96b83862d6767de59cbf83d
- languageName: node
- linkType: hard
-
-"jest-circus@npm:^29.1.2, jest-circus@npm:^29.7.0":
- version: 29.7.0
- resolution: "jest-circus@npm:29.7.0"
- dependencies:
- "@jest/environment": "npm:^29.7.0"
- "@jest/expect": "npm:^29.7.0"
- "@jest/test-result": "npm:^29.7.0"
- "@jest/types": "npm:^29.6.3"
- "@types/node": "npm:*"
- chalk: "npm:^4.0.0"
- co: "npm:^4.6.0"
- dedent: "npm:^1.0.0"
- is-generator-fn: "npm:^2.0.0"
- jest-each: "npm:^29.7.0"
- jest-matcher-utils: "npm:^29.7.0"
- jest-message-util: "npm:^29.7.0"
- jest-runtime: "npm:^29.7.0"
- jest-snapshot: "npm:^29.7.0"
- jest-util: "npm:^29.7.0"
- p-limit: "npm:^3.1.0"
- pretty-format: "npm:^29.7.0"
- pure-rand: "npm:^6.0.0"
- slash: "npm:^3.0.0"
- stack-utils: "npm:^2.0.3"
- checksum: 10/716a8e3f40572fd0213bcfc1da90274bf30d856e5133af58089a6ce45089b63f4d679bd44e6be9d320e8390483ebc3ae9921981993986d21639d9019b523123d
- languageName: node
- linkType: hard
-
-"jest-cli@npm:^29.7.0":
- version: 29.7.0
- resolution: "jest-cli@npm:29.7.0"
- dependencies:
- "@jest/core": "npm:^29.7.0"
- "@jest/test-result": "npm:^29.7.0"
- "@jest/types": "npm:^29.6.3"
- chalk: "npm:^4.0.0"
- create-jest: "npm:^29.7.0"
- exit: "npm:^0.1.2"
- import-local: "npm:^3.0.2"
- jest-config: "npm:^29.7.0"
- jest-util: "npm:^29.7.0"
- jest-validate: "npm:^29.7.0"
- yargs: "npm:^17.3.1"
- peerDependencies:
- node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
- peerDependenciesMeta:
- node-notifier:
- optional: true
- bin:
- jest: bin/jest.js
- checksum: 10/6cc62b34d002c034203065a31e5e9a19e7c76d9e8ef447a6f70f759c0714cb212c6245f75e270ba458620f9c7b26063cd8cf6cd1f7e3afd659a7cc08add17307
- languageName: node
- linkType: hard
-
-"jest-config@npm:^29.7.0":
- version: 29.7.0
- resolution: "jest-config@npm:29.7.0"
- dependencies:
- "@babel/core": "npm:^7.11.6"
- "@jest/test-sequencer": "npm:^29.7.0"
- "@jest/types": "npm:^29.6.3"
- babel-jest: "npm:^29.7.0"
- chalk: "npm:^4.0.0"
- ci-info: "npm:^3.2.0"
- deepmerge: "npm:^4.2.2"
- glob: "npm:^7.1.3"
- graceful-fs: "npm:^4.2.9"
- jest-circus: "npm:^29.7.0"
- jest-environment-node: "npm:^29.7.0"
- jest-get-type: "npm:^29.6.3"
- jest-regex-util: "npm:^29.6.3"
- jest-resolve: "npm:^29.7.0"
- jest-runner: "npm:^29.7.0"
- jest-util: "npm:^29.7.0"
- jest-validate: "npm:^29.7.0"
- micromatch: "npm:^4.0.4"
- parse-json: "npm:^5.2.0"
- pretty-format: "npm:^29.7.0"
- slash: "npm:^3.0.0"
- strip-json-comments: "npm:^3.1.1"
- peerDependencies:
- "@types/node": "*"
- ts-node: ">=9.0.0"
- peerDependenciesMeta:
- "@types/node":
- optional: true
- ts-node:
- optional: true
- checksum: 10/6bdf570e9592e7d7dd5124fc0e21f5fe92bd15033513632431b211797e3ab57eaa312f83cc6481b3094b72324e369e876f163579d60016677c117ec4853cf02b
- languageName: node
- linkType: hard
-
-"jest-css-modules-transform@npm:^4.4.2":
- version: 4.4.2
- resolution: "jest-css-modules-transform@npm:4.4.2"
- dependencies:
- camelcase: "npm:6.3.0"
- postcss: "npm:^7.0.30 || ^8.0.0"
- postcss-nested: "npm:^4.2.1 || ^5.0.0"
- checksum: 10/e61a9efc1952541a713f48939ba43f91267c3b286b1e1dd8e06ee817fbaefc040cd4b6271cce629182dd0d901e1ecc89dcb8edcaa6be9d3560aeb76fdb8c56b6
- languageName: node
- linkType: hard
-
"jest-diff@npm:^29.2.1, jest-diff@npm:^29.7.0":
version: 29.7.0
resolution: "jest-diff@npm:29.7.0"
@@ -13484,63 +12376,6 @@ __metadata:
languageName: node
linkType: hard
-"jest-docblock@npm:^29.7.0":
- version: 29.7.0
- resolution: "jest-docblock@npm:29.7.0"
- dependencies:
- detect-newline: "npm:^3.0.0"
- checksum: 10/8d48818055bc96c9e4ec2e217a5a375623c0d0bfae8d22c26e011074940c202aa2534a3362294c81d981046885c05d304376afba9f2874143025981148f3e96d
- languageName: node
- linkType: hard
-
-"jest-each@npm:^29.7.0":
- version: 29.7.0
- resolution: "jest-each@npm:29.7.0"
- dependencies:
- "@jest/types": "npm:^29.6.3"
- chalk: "npm:^4.0.0"
- jest-get-type: "npm:^29.6.3"
- jest-util: "npm:^29.7.0"
- pretty-format: "npm:^29.7.0"
- checksum: 10/bd1a077654bdaa013b590deb5f7e7ade68f2e3289180a8c8f53bc8a49f3b40740c0ec2d3a3c1aee906f682775be2bebbac37491d80b634d15276b0aa0f2e3fda
- languageName: node
- linkType: hard
-
-"jest-environment-jsdom@npm:^29.1.2":
- version: 29.7.0
- resolution: "jest-environment-jsdom@npm:29.7.0"
- dependencies:
- "@jest/environment": "npm:^29.7.0"
- "@jest/fake-timers": "npm:^29.7.0"
- "@jest/types": "npm:^29.6.3"
- "@types/jsdom": "npm:^20.0.0"
- "@types/node": "npm:*"
- jest-mock: "npm:^29.7.0"
- jest-util: "npm:^29.7.0"
- jsdom: "npm:^20.0.0"
- peerDependencies:
- canvas: ^2.5.0
- peerDependenciesMeta:
- canvas:
- optional: true
- checksum: 10/23bbfc9bca914baef4b654f7983175a4d49b0f515a5094ebcb8f819f28ec186f53c0ba06af1855eac04bab1457f4ea79dae05f70052cf899863e8096daa6e0f5
- languageName: node
- linkType: hard
-
-"jest-environment-node@npm:^29.7.0":
- version: 29.7.0
- resolution: "jest-environment-node@npm:29.7.0"
- dependencies:
- "@jest/environment": "npm:^29.7.0"
- "@jest/fake-timers": "npm:^29.7.0"
- "@jest/types": "npm:^29.6.3"
- "@types/node": "npm:*"
- jest-mock: "npm:^29.7.0"
- jest-util: "npm:^29.7.0"
- checksum: 10/9cf7045adf2307cc93aed2f8488942e39388bff47ec1df149a997c6f714bfc66b2056768973770d3f8b1bf47396c19aa564877eb10ec978b952c6018ed1bd637
- languageName: node
- linkType: hard
-
"jest-get-type@npm:^29.2.0, jest-get-type@npm:^29.6.3":
version: 29.6.3
resolution: "jest-get-type@npm:29.6.3"
@@ -13548,60 +12383,6 @@ __metadata:
languageName: node
linkType: hard
-"jest-github-actions-reporter@npm:^1.0.3":
- version: 1.0.3
- resolution: "jest-github-actions-reporter@npm:1.0.3"
- dependencies:
- "@actions/core": "npm:^1.2.0"
- checksum: 10/90bd39c73afd6bebeffb634b61087e56a8148119423f1acb438384f3ade13ff2fbdfb94988e7c028981a7679ac71fdee4963e09ee8b51fc646e00731db8baf4e
- languageName: node
- linkType: hard
-
-"jest-haste-map@npm:^29.7.0":
- version: 29.7.0
- resolution: "jest-haste-map@npm:29.7.0"
- dependencies:
- "@jest/types": "npm:^29.6.3"
- "@types/graceful-fs": "npm:^4.1.3"
- "@types/node": "npm:*"
- anymatch: "npm:^3.0.3"
- fb-watchman: "npm:^2.0.0"
- fsevents: "npm:^2.3.2"
- graceful-fs: "npm:^4.2.9"
- jest-regex-util: "npm:^29.6.3"
- jest-util: "npm:^29.7.0"
- jest-worker: "npm:^29.7.0"
- micromatch: "npm:^4.0.4"
- walker: "npm:^1.0.8"
- dependenciesMeta:
- fsevents:
- optional: true
- checksum: 10/8531b42003581cb18a69a2774e68c456fb5a5c3280b1b9b77475af9e346b6a457250f9d756bfeeae2fe6cbc9ef28434c205edab9390ee970a919baddfa08bb85
- languageName: node
- linkType: hard
-
-"jest-junit@npm:^14.0.1":
- version: 14.0.1
- resolution: "jest-junit@npm:14.0.1"
- dependencies:
- mkdirp: "npm:^1.0.4"
- strip-ansi: "npm:^6.0.1"
- uuid: "npm:^8.3.2"
- xml: "npm:^1.0.1"
- checksum: 10/a3a960c233d3be178327be1d34a52b97f90177d0aee0be5c92d060a97aefc0e0b18ef26cbdb96a8305ecd7b5b9e033a9ee1eab4223af2a6cc316bffb51387598
- languageName: node
- linkType: hard
-
-"jest-leak-detector@npm:^29.7.0":
- version: 29.7.0
- resolution: "jest-leak-detector@npm:29.7.0"
- dependencies:
- jest-get-type: "npm:^29.6.3"
- pretty-format: "npm:^29.7.0"
- checksum: 10/e3950e3ddd71e1d0c22924c51a300a1c2db6cf69ec1e51f95ccf424bcc070f78664813bef7aed4b16b96dfbdeea53fe358f8aeaaea84346ae15c3735758f1605
- languageName: node
- linkType: hard
-
"jest-matcher-utils@npm:29.2.2":
version: 29.2.2
resolution: "jest-matcher-utils@npm:29.2.2"
@@ -13619,289 +12400,41 @@ __metadata:
resolution: "jest-matcher-utils@npm:29.7.0"
dependencies:
chalk: "npm:^4.0.0"
- jest-diff: "npm:^29.7.0"
- jest-get-type: "npm:^29.6.3"
- pretty-format: "npm:^29.7.0"
- checksum: 10/981904a494299cf1e3baed352f8a3bd8b50a8c13a662c509b6a53c31461f94ea3bfeffa9d5efcfeb248e384e318c87de7e3baa6af0f79674e987482aa189af40
- languageName: node
- linkType: hard
-
-"jest-message-util@npm:^29.7.0":
- version: 29.7.0
- resolution: "jest-message-util@npm:29.7.0"
- dependencies:
- "@babel/code-frame": "npm:^7.12.13"
- "@jest/types": "npm:^29.6.3"
- "@types/stack-utils": "npm:^2.0.0"
- chalk: "npm:^4.0.0"
- graceful-fs: "npm:^4.2.9"
- micromatch: "npm:^4.0.4"
- pretty-format: "npm:^29.7.0"
- slash: "npm:^3.0.0"
- stack-utils: "npm:^2.0.3"
- checksum: 10/31d53c6ed22095d86bab9d14c0fa70c4a92c749ea6ceece82cf30c22c9c0e26407acdfbdb0231435dc85a98d6d65ca0d9cbcd25cd1abb377fe945e843fb770b9
- languageName: node
- linkType: hard
-
-"jest-mock@npm:^29.7.0":
- version: 29.7.0
- resolution: "jest-mock@npm:29.7.0"
- dependencies:
- "@jest/types": "npm:^29.6.3"
- "@types/node": "npm:*"
- jest-util: "npm:^29.7.0"
- checksum: 10/ae51d1b4f898724be5e0e52b2268a68fcd876d9b20633c864a6dd6b1994cbc48d62402b0f40f3a1b669b30ebd648821f086c26c08ffde192ced951ff4670d51c
- languageName: node
- linkType: hard
-
-"jest-pnp-resolver@npm:^1.2.2":
- version: 1.2.3
- resolution: "jest-pnp-resolver@npm:1.2.3"
- peerDependencies:
- jest-resolve: "*"
- peerDependenciesMeta:
- jest-resolve:
- optional: true
- checksum: 10/db1a8ab2cb97ca19c01b1cfa9a9c8c69a143fde833c14df1fab0766f411b1148ff0df878adea09007ac6a2085ec116ba9a996a6ad104b1e58c20adbf88eed9b2
- languageName: node
- linkType: hard
-
-"jest-regex-util@npm:^29.0.0, jest-regex-util@npm:^29.6.3":
- version: 29.6.3
- resolution: "jest-regex-util@npm:29.6.3"
- checksum: 10/0518beeb9bf1228261695e54f0feaad3606df26a19764bc19541e0fc6e2a3737191904607fb72f3f2ce85d9c16b28df79b7b1ec9443aa08c3ef0e9efda6f8f2a
- languageName: node
- linkType: hard
-
-"jest-resolve-dependencies@npm:^29.7.0":
- version: 29.7.0
- resolution: "jest-resolve-dependencies@npm:29.7.0"
- dependencies:
- jest-regex-util: "npm:^29.6.3"
- jest-snapshot: "npm:^29.7.0"
- checksum: 10/1e206f94a660d81e977bcfb1baae6450cb4a81c92e06fad376cc5ea16b8e8c6ea78c383f39e95591a9eb7f925b6a1021086c38941aa7c1b8a6a813c2f6e93675
- languageName: node
- linkType: hard
-
-"jest-resolve@npm:^29.7.0":
- version: 29.7.0
- resolution: "jest-resolve@npm:29.7.0"
- dependencies:
- chalk: "npm:^4.0.0"
- graceful-fs: "npm:^4.2.9"
- jest-haste-map: "npm:^29.7.0"
- jest-pnp-resolver: "npm:^1.2.2"
- jest-util: "npm:^29.7.0"
- jest-validate: "npm:^29.7.0"
- resolve: "npm:^1.20.0"
- resolve.exports: "npm:^2.0.0"
- slash: "npm:^3.0.0"
- checksum: 10/faa466fd9bc69ea6c37a545a7c6e808e073c66f46ab7d3d8a6ef084f8708f201b85d5fe1799789578b8b47fa1de47b9ee47b414d1863bc117a49e032ba77b7c7
- languageName: node
- linkType: hard
-
-"jest-runner@npm:^29.7.0":
- version: 29.7.0
- resolution: "jest-runner@npm:29.7.0"
- dependencies:
- "@jest/console": "npm:^29.7.0"
- "@jest/environment": "npm:^29.7.0"
- "@jest/test-result": "npm:^29.7.0"
- "@jest/transform": "npm:^29.7.0"
- "@jest/types": "npm:^29.6.3"
- "@types/node": "npm:*"
- chalk: "npm:^4.0.0"
- emittery: "npm:^0.13.1"
- graceful-fs: "npm:^4.2.9"
- jest-docblock: "npm:^29.7.0"
- jest-environment-node: "npm:^29.7.0"
- jest-haste-map: "npm:^29.7.0"
- jest-leak-detector: "npm:^29.7.0"
- jest-message-util: "npm:^29.7.0"
- jest-resolve: "npm:^29.7.0"
- jest-runtime: "npm:^29.7.0"
- jest-util: "npm:^29.7.0"
- jest-watcher: "npm:^29.7.0"
- jest-worker: "npm:^29.7.0"
- p-limit: "npm:^3.1.0"
- source-map-support: "npm:0.5.13"
- checksum: 10/9d8748a494bd90f5c82acea99be9e99f21358263ce6feae44d3f1b0cd90991b5df5d18d607e73c07be95861ee86d1cbab2a3fc6ca4b21805f07ac29d47c1da1e
- languageName: node
- linkType: hard
-
-"jest-runtime@npm:^29.7.0":
- version: 29.7.0
- resolution: "jest-runtime@npm:29.7.0"
- dependencies:
- "@jest/environment": "npm:^29.7.0"
- "@jest/fake-timers": "npm:^29.7.0"
- "@jest/globals": "npm:^29.7.0"
- "@jest/source-map": "npm:^29.6.3"
- "@jest/test-result": "npm:^29.7.0"
- "@jest/transform": "npm:^29.7.0"
- "@jest/types": "npm:^29.6.3"
- "@types/node": "npm:*"
- chalk: "npm:^4.0.0"
- cjs-module-lexer: "npm:^1.0.0"
- collect-v8-coverage: "npm:^1.0.0"
- glob: "npm:^7.1.3"
- graceful-fs: "npm:^4.2.9"
- jest-haste-map: "npm:^29.7.0"
- jest-message-util: "npm:^29.7.0"
- jest-mock: "npm:^29.7.0"
- jest-regex-util: "npm:^29.6.3"
- jest-resolve: "npm:^29.7.0"
- jest-snapshot: "npm:^29.7.0"
- jest-util: "npm:^29.7.0"
- slash: "npm:^3.0.0"
- strip-bom: "npm:^4.0.0"
- checksum: 10/59eb58eb7e150e0834a2d0c0d94f2a0b963ae7182cfa6c63f2b49b9c6ef794e5193ef1634e01db41420c36a94cefc512cdd67a055cd3e6fa2f41eaf0f82f5a20
- languageName: node
- linkType: hard
-
-"jest-scss-transform@npm:^1.0.3":
- version: 1.0.4
- resolution: "jest-scss-transform@npm:1.0.4"
- peerDependencies:
- babel-jest: ">=24.8.0"
- checksum: 10/a622631eed719578f5802c46b7834e101215f4e8bec33ce6912c0cc673c62a5bacde8a5a31e5cf522dbea831e47f996ccf402d81b361b3878a34bc46dbddbeaa
- languageName: node
- linkType: hard
-
-"jest-snapshot@npm:^29.7.0":
- version: 29.7.0
- resolution: "jest-snapshot@npm:29.7.0"
- dependencies:
- "@babel/core": "npm:^7.11.6"
- "@babel/generator": "npm:^7.7.2"
- "@babel/plugin-syntax-jsx": "npm:^7.7.2"
- "@babel/plugin-syntax-typescript": "npm:^7.7.2"
- "@babel/types": "npm:^7.3.3"
- "@jest/expect-utils": "npm:^29.7.0"
- "@jest/transform": "npm:^29.7.0"
- "@jest/types": "npm:^29.6.3"
- babel-preset-current-node-syntax: "npm:^1.0.0"
- chalk: "npm:^4.0.0"
- expect: "npm:^29.7.0"
- graceful-fs: "npm:^4.2.9"
- jest-diff: "npm:^29.7.0"
- jest-get-type: "npm:^29.6.3"
- jest-matcher-utils: "npm:^29.7.0"
- jest-message-util: "npm:^29.7.0"
- jest-util: "npm:^29.7.0"
- natural-compare: "npm:^1.4.0"
- pretty-format: "npm:^29.7.0"
- semver: "npm:^7.5.3"
- checksum: 10/cb19a3948256de5f922d52f251821f99657339969bf86843bd26cf3332eae94883e8260e3d2fba46129a27c3971c1aa522490e460e16c7fad516e82d10bbf9f8
- languageName: node
- linkType: hard
-
-"jest-transform-stub@npm:^2.0.0":
- version: 2.0.0
- resolution: "jest-transform-stub@npm:2.0.0"
- checksum: 10/c46134257e5fb047f5952e4a4a1339925dd009da15aa8d3310ba1d3e4d22266ed6c675cd18e58c9d5ca2246718d6cc8ff00ea6a4b6f3b2a6b285b6426f6ae8fe
- languageName: node
- linkType: hard
-
-"jest-transformer-svg@npm:^2.0.0":
- version: 2.0.2
- resolution: "jest-transformer-svg@npm:2.0.2"
- peerDependencies:
- jest: ">= 28.1.0"
- react: ^17.0.0 || ^18.0.0
- checksum: 10/06b9c18334f20bbf1f1e924d3d273a9de78e38da2e102222b9ca5c18991cc09aefe176dbe447afb7fc713ec0f6e4e3412b1bc91bbefeb5f0233d074d907fb1ae
- languageName: node
- linkType: hard
-
-"jest-util@npm:^29.7.0":
- version: 29.7.0
- resolution: "jest-util@npm:29.7.0"
- dependencies:
- "@jest/types": "npm:^29.6.3"
- "@types/node": "npm:*"
- chalk: "npm:^4.0.0"
- ci-info: "npm:^3.2.0"
- graceful-fs: "npm:^4.2.9"
- picomatch: "npm:^2.2.3"
- checksum: 10/30d58af6967e7d42bd903ccc098f3b4d3859ed46238fbc88d4add6a3f10bea00c226b93660285f058bc7a65f6f9529cf4eb80f8d4707f79f9e3a23686b4ab8f3
- languageName: node
- linkType: hard
-
-"jest-validate@npm:^29.7.0":
- version: 29.7.0
- resolution: "jest-validate@npm:29.7.0"
- dependencies:
- "@jest/types": "npm:^29.6.3"
- camelcase: "npm:^6.2.0"
- chalk: "npm:^4.0.0"
- jest-get-type: "npm:^29.6.3"
- leven: "npm:^3.1.0"
- pretty-format: "npm:^29.7.0"
- checksum: 10/8ee1163666d8eaa16d90a989edba2b4a3c8ab0ffaa95ad91b08ca42b015bfb70e164b247a5b17f9de32d096987cada63ed8491ab82761bfb9a28bc34b27ae161
- languageName: node
- linkType: hard
-
-"jest-watch-typeahead@npm:^2.2.0":
- version: 2.2.2
- resolution: "jest-watch-typeahead@npm:2.2.2"
- dependencies:
- ansi-escapes: "npm:^6.0.0"
- chalk: "npm:^5.2.0"
- jest-regex-util: "npm:^29.0.0"
- jest-watcher: "npm:^29.0.0"
- slash: "npm:^5.0.0"
- string-length: "npm:^5.0.1"
- strip-ansi: "npm:^7.0.1"
- peerDependencies:
- jest: ^27.0.0 || ^28.0.0 || ^29.0.0
- checksum: 10/8685277ce1b96ec775882111ec55ce90a862cc57acb21ce94f8ac44a25f6fb34c7a7ce119e07b2d8ff5353a8d9e4f981cf96fa35532f71ddba6ca8fedc05bd8e
- languageName: node
- linkType: hard
-
-"jest-watcher@npm:^29.0.0, jest-watcher@npm:^29.7.0":
- version: 29.7.0
- resolution: "jest-watcher@npm:29.7.0"
- dependencies:
- "@jest/test-result": "npm:^29.7.0"
- "@jest/types": "npm:^29.6.3"
- "@types/node": "npm:*"
- ansi-escapes: "npm:^4.2.1"
- chalk: "npm:^4.0.0"
- emittery: "npm:^0.13.1"
- jest-util: "npm:^29.7.0"
- string-length: "npm:^4.0.1"
- checksum: 10/4f616e0345676631a7034b1d94971aaa719f0cd4a6041be2aa299be437ea047afd4fe05c48873b7963f5687a2f6c7cbf51244be8b14e313b97bfe32b1e127e55
+ jest-diff: "npm:^29.7.0"
+ jest-get-type: "npm:^29.6.3"
+ pretty-format: "npm:^29.7.0"
+ checksum: 10/981904a494299cf1e3baed352f8a3bd8b50a8c13a662c509b6a53c31461f94ea3bfeffa9d5efcfeb248e384e318c87de7e3baa6af0f79674e987482aa189af40
languageName: node
linkType: hard
-"jest-worker@npm:^29.7.0":
+"jest-message-util@npm:^29.7.0":
version: 29.7.0
- resolution: "jest-worker@npm:29.7.0"
+ resolution: "jest-message-util@npm:29.7.0"
dependencies:
- "@types/node": "npm:*"
- jest-util: "npm:^29.7.0"
- merge-stream: "npm:^2.0.0"
- supports-color: "npm:^8.0.0"
- checksum: 10/364cbaef00d8a2729fc760227ad34b5e60829e0869bd84976bdfbd8c0d0f9c2f22677b3e6dd8afa76ed174765351cd12bae3d4530c62eefb3791055127ca9745
+ "@babel/code-frame": "npm:^7.12.13"
+ "@jest/types": "npm:^29.6.3"
+ "@types/stack-utils": "npm:^2.0.0"
+ chalk: "npm:^4.0.0"
+ graceful-fs: "npm:^4.2.9"
+ micromatch: "npm:^4.0.4"
+ pretty-format: "npm:^29.7.0"
+ slash: "npm:^3.0.0"
+ stack-utils: "npm:^2.0.3"
+ checksum: 10/31d53c6ed22095d86bab9d14c0fa70c4a92c749ea6ceece82cf30c22c9c0e26407acdfbdb0231435dc85a98d6d65ca0d9cbcd25cd1abb377fe945e843fb770b9
languageName: node
linkType: hard
-"jest@npm:^29.1.2":
+"jest-util@npm:^29.7.0":
version: 29.7.0
- resolution: "jest@npm:29.7.0"
+ resolution: "jest-util@npm:29.7.0"
dependencies:
- "@jest/core": "npm:^29.7.0"
"@jest/types": "npm:^29.6.3"
- import-local: "npm:^3.0.2"
- jest-cli: "npm:^29.7.0"
- peerDependencies:
- node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
- peerDependenciesMeta:
- node-notifier:
- optional: true
- bin:
- jest: bin/jest.js
- checksum: 10/97023d78446098c586faaa467fbf2c6b07ff06e2c85a19e3926adb5b0effe9ac60c4913ae03e2719f9c01ae8ffd8d92f6b262cedb9555ceeb5d19263d8c6362a
+ "@types/node": "npm:*"
+ chalk: "npm:^4.0.0"
+ ci-info: "npm:^3.2.0"
+ graceful-fs: "npm:^4.2.9"
+ picomatch: "npm:^2.2.3"
+ checksum: 10/30d58af6967e7d42bd903ccc098f3b4d3859ed46238fbc88d4add6a3f10bea00c226b93660285f058bc7a65f6f9529cf4eb80f8d4707f79f9e3a23686b4ab8f3
languageName: node
linkType: hard
@@ -14010,45 +12543,6 @@ __metadata:
languageName: node
linkType: hard
-"jsdom@npm:^20.0.0":
- version: 20.0.3
- resolution: "jsdom@npm:20.0.3"
- dependencies:
- abab: "npm:^2.0.6"
- acorn: "npm:^8.8.1"
- acorn-globals: "npm:^7.0.0"
- cssom: "npm:^0.5.0"
- cssstyle: "npm:^2.3.0"
- data-urls: "npm:^3.0.2"
- decimal.js: "npm:^10.4.2"
- domexception: "npm:^4.0.0"
- escodegen: "npm:^2.0.0"
- form-data: "npm:^4.0.0"
- html-encoding-sniffer: "npm:^3.0.0"
- http-proxy-agent: "npm:^5.0.0"
- https-proxy-agent: "npm:^5.0.1"
- is-potential-custom-element-name: "npm:^1.0.1"
- nwsapi: "npm:^2.2.2"
- parse5: "npm:^7.1.1"
- saxes: "npm:^6.0.0"
- symbol-tree: "npm:^3.2.4"
- tough-cookie: "npm:^4.1.2"
- w3c-xmlserializer: "npm:^4.0.0"
- webidl-conversions: "npm:^7.0.0"
- whatwg-encoding: "npm:^2.0.0"
- whatwg-mimetype: "npm:^3.0.0"
- whatwg-url: "npm:^11.0.0"
- ws: "npm:^8.11.0"
- xml-name-validator: "npm:^4.0.0"
- peerDependencies:
- canvas: ^2.5.0
- peerDependenciesMeta:
- canvas:
- optional: true
- checksum: 10/a4cdcff5b07eed87da90b146b82936321533b5efe8124492acf7160ebd5b9cf2b3c2435683592bf1cffb479615245756efb6c173effc1906f845a86ed22af985
- languageName: node
- linkType: hard
-
"jsdom@npm:^28.0.0":
version: 28.1.0
resolution: "jsdom@npm:28.1.0"
@@ -14316,13 +12810,6 @@ __metadata:
languageName: node
linkType: hard
-"kleur@npm:^3.0.3":
- version: 3.0.3
- resolution: "kleur@npm:3.0.3"
- checksum: 10/0c0ecaf00a5c6173d25059c7db2113850b5457016dfa1d0e3ef26da4704fbb186b4938d7611246d86f0ddf1bccf26828daa5877b1f232a65e7373d0122a83e7f
- languageName: node
- linkType: hard
-
"klona@npm:^2.0.4":
version: 2.0.6
resolution: "klona@npm:2.0.6"
@@ -14360,13 +12847,6 @@ __metadata:
languageName: node
linkType: hard
-"leven@npm:^3.1.0":
- version: 3.1.0
- resolution: "leven@npm:3.1.0"
- checksum: 10/638401d534585261b6003db9d99afd244dfe82d75ddb6db5c0df412842d5ab30b2ef18de471aaec70fe69a46f17b4ae3c7f01d8a4e6580ef7adb9f4273ad1e55
- languageName: node
- linkType: hard
-
"levn@npm:^0.4.1":
version: 0.4.1
resolution: "levn@npm:0.4.1"
@@ -14856,15 +13336,6 @@ __metadata:
languageName: node
linkType: hard
-"make-dir@npm:^4.0.0":
- version: 4.0.0
- resolution: "make-dir@npm:4.0.0"
- dependencies:
- semver: "npm:^7.5.3"
- checksum: 10/bf0731a2dd3aab4db6f3de1585cea0b746bb73eb5a02e3d8d72757e376e64e6ada190b1eddcde5b2f24a81b688a9897efd5018737d05e02e2a671dda9cff8a8a
- languageName: node
- linkType: hard
-
"make-fetch-happen@npm:^13.0.0":
version: 13.0.1
resolution: "make-fetch-happen@npm:13.0.1"
@@ -14885,15 +13356,6 @@ __metadata:
languageName: node
linkType: hard
-"makeerror@npm:1.0.12":
- version: 1.0.12
- resolution: "makeerror@npm:1.0.12"
- dependencies:
- tmpl: "npm:1.0.5"
- checksum: 10/4c66ddfc654537333da952c084f507fa4c30c707b1635344eb35be894d797ba44c901a9cebe914aa29a7f61357543ba09b09dddbd7f65b4aee756b450f169f40
- languageName: node
- linkType: hard
-
"map-limit@npm:0.0.1":
version: 0.0.1
resolution: "map-limit@npm:0.0.1"
@@ -15354,15 +13816,6 @@ __metadata:
languageName: node
linkType: hard
-"moo-color@npm:^1.0.2":
- version: 1.0.3
- resolution: "moo-color@npm:1.0.3"
- dependencies:
- color-name: "npm:^1.1.4"
- checksum: 10/a0c48927214d2acb02b3fd1a2b1439fa8130edbda7406594748146e398c22336af855b7d348ba9e657995909c9099084635a199db1e2098efd7117d92eb2cb59
- languageName: node
- linkType: hard
-
"mouse-change@npm:^1.4.0":
version: 1.4.0
resolution: "mouse-change@npm:1.4.0"
@@ -15445,15 +13898,6 @@ __metadata:
languageName: node
linkType: hard
-"nanoid@npm:^3.3.7":
- version: 3.3.7
- resolution: "nanoid@npm:3.3.7"
- bin:
- nanoid: bin/nanoid.cjs
- checksum: 10/ac1eb60f615b272bccb0e2b9cd933720dad30bf9708424f691b8113826bb91aca7e9d14ef5d9415a6ba15c266b37817256f58d8ce980c82b0ba3185352565679
- languageName: node
- linkType: hard
-
"native-promise-only@npm:^0.8.1":
version: 0.8.1
resolution: "native-promise-only@npm:0.8.1"
@@ -15572,13 +14016,6 @@ __metadata:
languageName: node
linkType: hard
-"node-int64@npm:^0.4.0":
- version: 0.4.0
- resolution: "node-int64@npm:0.4.0"
- checksum: 10/b7afc2b65e56f7035b1a2eec57ae0fbdee7d742b1cdcd0f4387562b6527a011ab1cbe9f64cc8b3cca61e3297c9637c8bf61cec2e6b8d3a711d4b5267dfafbe02
- languageName: node
- linkType: hard
-
"node-releases@npm:^2.0.18":
version: 2.0.18
resolution: "node-releases@npm:2.0.18"
@@ -15688,7 +14125,7 @@ __metadata:
languageName: node
linkType: hard
-"npm-run-path@npm:^4.0.0, npm-run-path@npm:^4.0.1":
+"npm-run-path@npm:^4.0.0":
version: 4.0.1
resolution: "npm-run-path@npm:4.0.1"
dependencies:
@@ -15729,13 +14166,6 @@ __metadata:
languageName: node
linkType: hard
-"nwsapi@npm:^2.2.2":
- version: 2.2.13
- resolution: "nwsapi@npm:2.2.13"
- checksum: 10/f7f30a236f2ee513ea8042f1a987481dc2b900167c47f7163882f0fcfe7ccb57b5c8daaf2c91008dc20a204fcd79e050aee25001433ad99990bbed5a8c74121c
- languageName: node
- linkType: hard
-
"oauth-sign@npm:~0.9.0":
version: 0.9.0
resolution: "oauth-sign@npm:0.9.0"
@@ -15890,7 +14320,7 @@ __metadata:
languageName: node
linkType: hard
-"onetime@npm:^5.1.0, onetime@npm:^5.1.2":
+"onetime@npm:^5.1.0":
version: 5.1.2
resolution: "onetime@npm:5.1.2"
dependencies:
@@ -15981,7 +14411,7 @@ __metadata:
languageName: node
linkType: hard
-"p-limit@npm:^3.0.2, p-limit@npm:^3.1.0":
+"p-limit@npm:^3.0.2":
version: 3.1.0
resolution: "p-limit@npm:3.1.0"
dependencies:
@@ -16139,15 +14569,6 @@ __metadata:
languageName: node
linkType: hard
-"parse5@npm:^7.0.0, parse5@npm:^7.1.1":
- version: 7.2.0
- resolution: "parse5@npm:7.2.0"
- dependencies:
- entities: "npm:^4.5.0"
- checksum: 10/49dabfe848f00e8cad8d9198a094d667fbdecbfa5143ddf8fb708e499b5ba76426c16135c8993b1d8e01827b92e8cfab0a9a248afa6ad7cc6f38aecf5bd017e6
- languageName: node
- linkType: hard
-
"parse5@npm:^7.2.1":
version: 7.3.0
resolution: "parse5@npm:7.3.0"
@@ -16323,14 +14744,7 @@ __metadata:
languageName: node
linkType: hard
-"pirates@npm:^4.0.4":
- version: 4.0.6
- resolution: "pirates@npm:4.0.6"
- checksum: 10/d02dda76f4fec1cbdf395c36c11cf26f76a644f9f9a1bfa84d3167d0d3154d5289aacc72677aa20d599bb4a6937a471de1b65c995e2aea2d8687cbcd7e43ea5f
- languageName: node
- linkType: hard
-
-"pkg-dir@npm:^4.1.0, pkg-dir@npm:^4.2.0":
+"pkg-dir@npm:^4.1.0":
version: 4.2.0
resolution: "pkg-dir@npm:4.2.0"
dependencies:
@@ -16506,17 +14920,6 @@ __metadata:
languageName: node
linkType: hard
-"postcss-nested@npm:^4.2.1 || ^5.0.0":
- version: 5.0.6
- resolution: "postcss-nested@npm:5.0.6"
- dependencies:
- postcss-selector-parser: "npm:^6.0.6"
- peerDependencies:
- postcss: ^8.2.14
- checksum: 10/713ec75c156e9a428c37767ea24c676e06e24a9a9bf9300372b61f038cc564d2af0bc7f5b8076c313cf583c62902a08de4e52ba0094e3a35554a2541942ee66a
- languageName: node
- linkType: hard
-
"postcss-resolve-nested-selector@npm:^0.1.6":
version: 0.1.6
resolution: "postcss-resolve-nested-selector@npm:0.1.6"
@@ -16542,16 +14945,6 @@ __metadata:
languageName: node
linkType: hard
-"postcss-selector-parser@npm:^6.0.6":
- version: 6.1.2
- resolution: "postcss-selector-parser@npm:6.1.2"
- dependencies:
- cssesc: "npm:^3.0.0"
- util-deprecate: "npm:^1.0.2"
- checksum: 10/190034c94d809c115cd2f32ee6aade84e933450a43ec3899c3e78e7d7b33efd3a2a975bb45d7700b6c5b196c06a7d9acf3f1ba6f1d87032d9675a29d8bca1dd3
- languageName: node
- linkType: hard
-
"postcss-selector-parser@npm:^7.0.0, postcss-selector-parser@npm:^7.1.1":
version: 7.1.1
resolution: "postcss-selector-parser@npm:7.1.1"
@@ -16595,17 +14988,6 @@ __metadata:
languageName: node
linkType: hard
-"postcss@npm:^7.0.30 || ^8.0.0":
- version: 8.4.47
- resolution: "postcss@npm:8.4.47"
- dependencies:
- nanoid: "npm:^3.3.7"
- picocolors: "npm:^1.1.0"
- source-map-js: "npm:^1.2.1"
- checksum: 10/f2b50ba9b6fcb795232b6bb20de7cdc538c0025989a8ed9c4438d1960196ba3b7eaff41fdb1a5c701b3504651ea87aeb685577707f0ae4d6ce6f3eae5df79a81
- languageName: node
- linkType: hard
-
"postcss@npm:^8.2.15":
version: 8.5.6
resolution: "postcss@npm:8.5.6"
@@ -16832,16 +15214,6 @@ __metadata:
languageName: node
linkType: hard
-"prompts@npm:^2.0.1":
- version: 2.4.2
- resolution: "prompts@npm:2.4.2"
- dependencies:
- kleur: "npm:^3.0.3"
- sisteransi: "npm:^1.0.5"
- checksum: 10/c52536521a4d21eff4f2f2aa4572446cad227464066365a7167e52ccf8d9839c099f9afec1aba0eed3d5a2514b3e79e0b3e7a1dc326b9acde6b75d27ed74b1a9
- languageName: node
- linkType: hard
-
"prop-types@npm:15.8.1, prop-types@npm:^15.5.0, prop-types@npm:^15.5.10, prop-types@npm:^15.5.4, prop-types@npm:^15.6.0, prop-types@npm:^15.6.1, prop-types@npm:^15.7.2, prop-types@npm:^15.8.1":
version: 15.8.1
resolution: "prop-types@npm:15.8.1"
@@ -16874,7 +15246,7 @@ __metadata:
languageName: node
linkType: hard
-"psl@npm:^1.1.28, psl@npm:^1.1.33":
+"psl@npm:^1.1.28":
version: 1.9.0
resolution: "psl@npm:1.9.0"
checksum: 10/d07879d4bfd0ac74796306a8e5a36a93cfb9c4f4e8ee8e63fbb909066c192fe1008cd8f12abd8ba2f62ca28247949a20c8fb32e1d18831d9e71285a1569720f9
@@ -16919,13 +15291,6 @@ __metadata:
languageName: node
linkType: hard
-"pure-rand@npm:^6.0.0":
- version: 6.1.0
- resolution: "pure-rand@npm:6.1.0"
- checksum: 10/256aa4bcaf9297256f552914e03cbdb0039c8fe1db11fa1e6d3f80790e16e563eb0a859a1e61082a95e224fc0c608661839439f8ecc6a3db4e48d46d99216ee4
- languageName: node
- linkType: hard
-
"qified@npm:^0.6.0":
version: 0.6.0
resolution: "qified@npm:0.6.0"
@@ -16978,13 +15343,6 @@ __metadata:
languageName: node
linkType: hard
-"querystringify@npm:^2.1.1":
- version: 2.2.0
- resolution: "querystringify@npm:2.2.0"
- checksum: 10/46ab16f252fd892fc29d6af60966d338cdfeea68a231e9457631ffd22d67cec1e00141e0a5236a2eb16c0d7d74175d9ec1d6f963660c6f2b1c2fc85b194c5680
- languageName: node
- linkType: hard
-
"queue-microtask@npm:^1.2.2":
version: 1.2.3
resolution: "queue-microtask@npm:1.2.3"
@@ -17899,13 +16257,6 @@ __metadata:
languageName: node
linkType: hard
-"requires-port@npm:^1.0.0":
- version: 1.0.0
- resolution: "requires-port@npm:1.0.0"
- checksum: 10/878880ee78ccdce372784f62f52a272048e2d0827c29ae31e7f99da18b62a2b9463ea03a75f277352f4697c100183debb0532371ad515a2d49d4bfe596dd4c20
- languageName: node
- linkType: hard
-
"reselect@npm:^4.1.8":
version: 4.1.8
resolution: "reselect@npm:4.1.8"
@@ -17913,15 +16264,6 @@ __metadata:
languageName: node
linkType: hard
-"resolve-cwd@npm:^3.0.0":
- version: 3.0.0
- resolution: "resolve-cwd@npm:3.0.0"
- dependencies:
- resolve-from: "npm:^5.0.0"
- checksum: 10/546e0816012d65778e580ad62b29e975a642989108d9a3c5beabfb2304192fa3c9f9146fbdfe213563c6ff51975ae41bac1d3c6e047dd9572c94863a057b4d81
- languageName: node
- linkType: hard
-
"resolve-from@npm:^4.0.0":
version: 4.0.0
resolution: "resolve-from@npm:4.0.0"
@@ -17929,13 +16271,6 @@ __metadata:
languageName: node
linkType: hard
-"resolve-from@npm:^5.0.0":
- version: 5.0.0
- resolution: "resolve-from@npm:5.0.0"
- checksum: 10/be18a5e4d76dd711778664829841cde690971d02b6cbae277735a09c1c28f407b99ef6ef3cd585a1e6546d4097b28df40ed32c4a287b9699dcf6d7f208495e23
- languageName: node
- linkType: hard
-
"resolve-pkg-maps@npm:^1.0.0":
version: 1.0.0
resolution: "resolve-pkg-maps@npm:1.0.0"
@@ -17952,13 +16287,6 @@ __metadata:
languageName: node
linkType: hard
-"resolve.exports@npm:^2.0.0":
- version: 2.0.2
- resolution: "resolve.exports@npm:2.0.2"
- checksum: 10/f1cc0b6680f9a7e0345d783e0547f2a5110d8336b3c2a4227231dd007271ffd331fd722df934f017af90bae0373920ca0d4005da6f76cb3176c8ae426370f893
- languageName: node
- linkType: hard
-
"resolve@npm:^0.6.1":
version: 0.6.3
resolution: "resolve@npm:0.6.3"
@@ -17992,7 +16320,7 @@ __metadata:
languageName: node
linkType: hard
-"resolve@npm:^1.12.0, resolve@npm:^1.14.2, resolve@npm:^1.19.0, resolve@npm:^1.20.0, resolve@npm:^1.22.4":
+"resolve@npm:^1.12.0, resolve@npm:^1.14.2, resolve@npm:^1.19.0, resolve@npm:^1.22.4":
version: 1.22.8
resolution: "resolve@npm:1.22.8"
dependencies:
@@ -18065,7 +16393,7 @@ __metadata:
languageName: node
linkType: hard
-"resolve@patch:resolve@npm%3A^1.12.0#optional!builtin, resolve@patch:resolve@npm%3A^1.14.2#optional!builtin, resolve@patch:resolve@npm%3A^1.19.0#optional!builtin, resolve@patch:resolve@npm%3A^1.20.0#optional!builtin, resolve@patch:resolve@npm%3A^1.22.4#optional!builtin":
+"resolve@patch:resolve@npm%3A^1.12.0#optional!builtin, resolve@patch:resolve@npm%3A^1.14.2#optional!builtin, resolve@patch:resolve@npm%3A^1.19.0#optional!builtin, resolve@patch:resolve@npm%3A^1.22.4#optional!builtin":
version: 1.22.8
resolution: "resolve@patch:resolve@npm%3A1.22.8#optional!builtin::version=1.22.8&hash=c3c19d"
dependencies:
@@ -18606,7 +16934,7 @@ __metadata:
languageName: node
linkType: hard
-"semver@npm:^6.0.0, semver@npm:^6.3.0, semver@npm:^6.3.1":
+"semver@npm:^6.0.0, semver@npm:^6.3.1":
version: 6.3.1
resolution: "semver@npm:6.3.1"
bin:
@@ -18615,7 +16943,7 @@ __metadata:
languageName: node
linkType: hard
-"semver@npm:^7.2.1, semver@npm:^7.3.2, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.5.3, semver@npm:^7.5.4":
+"semver@npm:^7.2.1, semver@npm:^7.3.2, semver@npm:^7.3.4, semver@npm:^7.3.5":
version: 7.6.3
resolution: "semver@npm:7.6.3"
bin:
@@ -18850,7 +17178,7 @@ __metadata:
languageName: node
linkType: hard
-"signal-exit@npm:^3.0.2, signal-exit@npm:^3.0.3, signal-exit@npm:^3.0.7":
+"signal-exit@npm:^3.0.2":
version: 3.0.7
resolution: "signal-exit@npm:3.0.7"
checksum: 10/a2f098f247adc367dffc27845853e9959b9e88b01cb301658cfe4194352d8d2bb32e18467c786a7fe15f1d44b233ea35633d076d5e737870b7139949d1ab6318
@@ -18871,13 +17199,6 @@ __metadata:
languageName: node
linkType: hard
-"sisteransi@npm:^1.0.5":
- version: 1.0.5
- resolution: "sisteransi@npm:1.0.5"
- checksum: 10/aba6438f46d2bfcef94cf112c835ab395172c75f67453fe05c340c770d3c402363018ae1ab4172a1026a90c47eaccf3af7b6ff6fa749a680c2929bd7fa2b37a4
- languageName: node
- linkType: hard
-
"skulpt@npm:^1.2.0":
version: 1.2.0
resolution: "skulpt@npm:1.2.0"
@@ -18894,7 +17215,7 @@ __metadata:
languageName: node
linkType: hard
-"slash@npm:^5.0.0, slash@npm:^5.1.0":
+"slash@npm:^5.1.0":
version: 5.1.0
resolution: "slash@npm:5.1.0"
checksum: 10/2c41ec6fb1414cd9bba0fa6b1dd00e8be739e3fe85d079c69d4b09ca5f2f86eafd18d9ce611c0c0f686428638a36c272a6ac14799146a8295f259c10cc45cde4
@@ -18975,16 +17296,6 @@ __metadata:
languageName: node
linkType: hard
-"source-map-support@npm:0.5.13":
- version: 0.5.13
- resolution: "source-map-support@npm:0.5.13"
- dependencies:
- buffer-from: "npm:^1.0.0"
- source-map: "npm:^0.6.0"
- checksum: 10/d1514a922ac9c7e4786037eeff6c3322f461cd25da34bb9fefb15387b3490531774e6e31d95ab6d5b84a3e139af9c3a570ccaee6b47bd7ea262691ed3a8bc34e
- languageName: node
- linkType: hard
-
"source-map@npm:^0.5.6":
version: 0.5.7
resolution: "source-map@npm:0.5.7"
@@ -18992,7 +17303,7 @@ __metadata:
languageName: node
linkType: hard
-"source-map@npm:^0.6.0, source-map@npm:^0.6.1, source-map@npm:~0.6.1":
+"source-map@npm:^0.6.1, source-map@npm:~0.6.1":
version: 0.6.1
resolution: "source-map@npm:0.6.1"
checksum: 10/59ef7462f1c29d502b3057e822cdbdae0b0e565302c4dd1a95e11e793d8d9d62006cdc10e0fd99163ca33ff2071360cf50ee13f90440806e7ed57d81cba2f7ff
@@ -19235,26 +17546,6 @@ __metadata:
languageName: node
linkType: hard
-"string-length@npm:^4.0.1":
- version: 4.0.2
- resolution: "string-length@npm:4.0.2"
- dependencies:
- char-regex: "npm:^1.0.2"
- strip-ansi: "npm:^6.0.0"
- checksum: 10/ce85533ef5113fcb7e522bcf9e62cb33871aa99b3729cec5595f4447f660b0cefd542ca6df4150c97a677d58b0cb727a3fe09ac1de94071d05526c73579bf505
- languageName: node
- linkType: hard
-
-"string-length@npm:^5.0.1":
- version: 5.0.1
- resolution: "string-length@npm:5.0.1"
- dependencies:
- char-regex: "npm:^2.0.0"
- strip-ansi: "npm:^7.0.1"
- checksum: 10/71f73b8c8a743e01dcd001bcf1b197db78d5e5e53b12bd898cddaf0961be09f947dfd8c429783db3694b55b05cb5a51de6406c5085ff1aaa10c4771440c8396d
- languageName: node
- linkType: hard
-
"string-natural-compare@npm:^3.0.1":
version: 3.0.1
resolution: "string-natural-compare@npm:3.0.1"
@@ -19448,13 +17739,6 @@ __metadata:
languageName: node
linkType: hard
-"strip-bom@npm:^4.0.0":
- version: 4.0.0
- resolution: "strip-bom@npm:4.0.0"
- checksum: 10/9dbcfbaf503c57c06af15fe2c8176fb1bf3af5ff65003851a102749f875a6dbe0ab3b30115eccf6e805e9d756830d3e40ec508b62b3f1ddf3761a20ebe29d3f3
- languageName: node
- linkType: hard
-
"strip-final-newline@npm:^2.0.0":
version: 2.0.0
resolution: "strip-final-newline@npm:2.0.0"
@@ -19660,7 +17944,7 @@ __metadata:
languageName: node
linkType: hard
-"supports-color@npm:^8.0.0, supports-color@npm:^8.1.1":
+"supports-color@npm:^8.1.1":
version: 8.1.1
resolution: "supports-color@npm:8.1.1"
dependencies:
@@ -19797,17 +18081,6 @@ __metadata:
languageName: node
linkType: hard
-"test-exclude@npm:^6.0.0":
- version: 6.0.0
- resolution: "test-exclude@npm:6.0.0"
- dependencies:
- "@istanbuljs/schema": "npm:^0.1.2"
- glob: "npm:^7.1.4"
- minimatch: "npm:^3.0.4"
- checksum: 10/8fccb2cb6c8fcb6bb4115394feb833f8b6cf4b9503ec2485c2c90febf435cac62abe882a0c5c51a37b9bbe70640cdd05acf5f45e486ac4583389f4b0855f69e5
- languageName: node
- linkType: hard
-
"text-encoding@npm:0.7.0, text-encoding@npm:^0.7.0":
version: 0.7.0
resolution: "text-encoding@npm:0.7.0"
@@ -20013,13 +18286,6 @@ __metadata:
languageName: node
linkType: hard
-"tmpl@npm:1.0.5":
- version: 1.0.5
- resolution: "tmpl@npm:1.0.5"
- checksum: 10/cd922d9b853c00fe414c5a774817be65b058d54a2d01ebb415840960406c669a0fc632f66df885e24cb022ec812739199ccbdb8d1164c3e513f85bfca5ab2873
- languageName: node
- linkType: hard
-
"to-buffer@npm:^1.2.0, to-buffer@npm:^1.2.1, to-buffer@npm:^1.2.2":
version: 1.2.2
resolution: "to-buffer@npm:1.2.2"
@@ -20092,18 +18358,6 @@ __metadata:
languageName: node
linkType: hard
-"tough-cookie@npm:^4.1.2":
- version: 4.1.4
- resolution: "tough-cookie@npm:4.1.4"
- dependencies:
- psl: "npm:^1.1.33"
- punycode: "npm:^2.1.1"
- universalify: "npm:^0.2.0"
- url-parse: "npm:^1.5.3"
- checksum: 10/75663f4e2cd085f16af0b217e4218772adf0617fb3227171102618a54ce0187a164e505d61f773ed7d65988f8ff8a8f935d381f87da981752c1171b076b4afac
- languageName: node
- linkType: hard
-
"tough-cookie@npm:^5.0.0, tough-cookie@npm:^5.1.1":
version: 5.1.2
resolution: "tough-cookie@npm:5.1.2"
@@ -20141,15 +18395,6 @@ __metadata:
languageName: node
linkType: hard
-"tr46@npm:^3.0.0":
- version: 3.0.0
- resolution: "tr46@npm:3.0.0"
- dependencies:
- punycode: "npm:^2.1.1"
- checksum: 10/b09a15886cbfaee419a3469081223489051ce9dca3374dd9500d2378adedbee84a3c73f83bfdd6bb13d53657753fc0d4e20a46bfcd3f1b9057ef528426ad7ce4
- languageName: node
- linkType: hard
-
"tr46@npm:^5.1.0":
version: 5.1.1
resolution: "tr46@npm:5.1.1"
@@ -20336,13 +18581,6 @@ __metadata:
languageName: node
linkType: hard
-"tunnel@npm:^0.0.6":
- version: 0.0.6
- resolution: "tunnel@npm:0.0.6"
- checksum: 10/cf1ffed5e67159b901a924dbf94c989f20b2b3b65649cfbbe4b6abb35955ce2cf7433b23498bdb2c5530ab185b82190fce531597b3b4a649f06a907fc8702405
- languageName: node
- linkType: hard
-
"tweetnacl@npm:^0.14.3, tweetnacl@npm:~0.14.0":
version: 0.14.5
resolution: "tweetnacl@npm:0.14.5"
@@ -20375,13 +18613,6 @@ __metadata:
languageName: node
linkType: hard
-"type-detect@npm:4.0.8":
- version: 4.0.8
- resolution: "type-detect@npm:4.0.8"
- checksum: 10/5179e3b8ebc51fce1b13efb75fdea4595484433f9683bbc2dca6d99789dba4e602ab7922d2656f2ce8383987467f7770131d4a7f06a26287db0615d2f4c4ce7d
- languageName: node
- linkType: hard
-
"type-fest@npm:^0.20.2":
version: 0.20.2
resolution: "type-fest@npm:0.20.2"
@@ -20516,15 +18747,6 @@ __metadata:
languageName: node
linkType: hard
-"undici@npm:^5.25.4":
- version: 5.29.0
- resolution: "undici@npm:5.29.0"
- dependencies:
- "@fastify/busboy": "npm:^2.0.0"
- checksum: 10/0ceca8924a32acdcc0cfb8dd2d368c217840970aa3f5e314fc169608474be6341c5b8e50cad7bd257dbe3b4e432bc5d0a0d000f83644b54fa11a48735ec52b93
- languageName: node
- linkType: hard
-
"undici@npm:^7.21.0":
version: 7.25.0
resolution: "undici@npm:7.25.0"
@@ -20633,13 +18855,6 @@ __metadata:
languageName: node
linkType: hard
-"universalify@npm:^0.2.0":
- version: 0.2.0
- resolution: "universalify@npm:0.2.0"
- checksum: 10/e86134cb12919d177c2353196a4cc09981524ee87abf621f7bc8d249dbbbebaec5e7d1314b96061497981350df786e4c5128dbf442eba104d6e765bc260678b5
- languageName: node
- linkType: hard
-
"universalify@npm:^2.0.0":
version: 2.0.1
resolution: "universalify@npm:2.0.1"
@@ -20705,16 +18920,6 @@ __metadata:
languageName: node
linkType: hard
-"url-parse@npm:^1.5.3":
- version: 1.5.10
- resolution: "url-parse@npm:1.5.10"
- dependencies:
- querystringify: "npm:^2.1.1"
- requires-port: "npm:^1.0.0"
- checksum: 10/c9e96bc8c5b34e9f05ddfeffc12f6aadecbb0d971b3cc26015b58d5b44676a99f50d5aeb1e5c9e61fa4d49961ae3ab1ae997369ed44da51b2f5ac010d188e6ad
- languageName: node
- linkType: hard
-
"url@npm:^0.11.4":
version: 0.11.4
resolution: "url@npm:0.11.4"
@@ -20844,17 +19049,6 @@ __metadata:
languageName: node
linkType: hard
-"v8-to-istanbul@npm:^9.0.1":
- version: 9.3.0
- resolution: "v8-to-istanbul@npm:9.3.0"
- dependencies:
- "@jridgewell/trace-mapping": "npm:^0.3.12"
- "@types/istanbul-lib-coverage": "npm:^2.0.1"
- convert-source-map: "npm:^2.0.0"
- checksum: 10/fb1d70f1176cb9dc46cabbb3fd5c52c8f3e8738b61877b6e7266029aed0870b04140e3f9f4550ac32aebcfe1d0f38b0bac57e1e8fb97d68fec82f2b416148166
- languageName: node
- linkType: hard
-
"validate-npm-package-license@npm:^3.0.1":
version: 3.0.4
resolution: "validate-npm-package-license@npm:3.0.4"
@@ -21136,15 +19330,6 @@ __metadata:
languageName: node
linkType: hard
-"w3c-xmlserializer@npm:^4.0.0":
- version: 4.0.0
- resolution: "w3c-xmlserializer@npm:4.0.0"
- dependencies:
- xml-name-validator: "npm:^4.0.0"
- checksum: 10/9a00c412b5496f4f040842c9520bc0aaec6e0c015d06412a91a723cd7d84ea605ab903965f546b4ecdb3eae267f5145ba08565222b1d6cb443ee488cda9a0aee
- languageName: node
- linkType: hard
-
"w3c-xmlserializer@npm:^5.0.0":
version: 5.0.0
resolution: "w3c-xmlserializer@npm:5.0.0"
@@ -21154,15 +19339,6 @@ __metadata:
languageName: node
linkType: hard
-"walker@npm:^1.0.8":
- version: 1.0.8
- resolution: "walker@npm:1.0.8"
- dependencies:
- makeerror: "npm:1.0.12"
- checksum: 10/ad7a257ea1e662e57ef2e018f97b3c02a7240ad5093c392186ce0bcf1f1a60bbadd520d073b9beb921ed99f64f065efb63dfc8eec689a80e569f93c1c5d5e16c
- languageName: node
- linkType: hard
-
"warning@npm:^4.0.3":
version: 4.0.3
resolution: "warning@npm:4.0.3"
@@ -21240,15 +19416,6 @@ __metadata:
languageName: node
linkType: hard
-"whatwg-encoding@npm:^2.0.0":
- version: 2.0.0
- resolution: "whatwg-encoding@npm:2.0.0"
- dependencies:
- iconv-lite: "npm:0.6.3"
- checksum: 10/162d712d88fd134a4fe587e53302da812eb4215a1baa4c394dfd86eff31d0a079ff932c05233857997de07481093358d6e7587997358f49b8a580a777be22089
- languageName: node
- linkType: hard
-
"whatwg-encoding@npm:^3.1.1":
version: 3.1.1
resolution: "whatwg-encoding@npm:3.1.1"
@@ -21286,16 +19453,6 @@ __metadata:
languageName: node
linkType: hard
-"whatwg-url@npm:^11.0.0":
- version: 11.0.0
- resolution: "whatwg-url@npm:11.0.0"
- dependencies:
- tr46: "npm:^3.0.0"
- webidl-conversions: "npm:^7.0.0"
- checksum: 10/dfcd51c6f4bfb54685528fb10927f3fd3d7c809b5671beef4a8cdd7b1408a7abf3343a35bc71dab83a1424f1c1e92cc2700d7930d95d231df0fac361de0c7648
- languageName: node
- linkType: hard
-
"whatwg-url@npm:^14.0.0, whatwg-url@npm:^14.1.1":
version: 14.2.0
resolution: "whatwg-url@npm:14.2.0"
@@ -21512,16 +19669,6 @@ __metadata:
languageName: node
linkType: hard
-"write-file-atomic@npm:^4.0.2":
- version: 4.0.2
- resolution: "write-file-atomic@npm:4.0.2"
- dependencies:
- imurmurhash: "npm:^0.1.4"
- signal-exit: "npm:^3.0.7"
- checksum: 10/3be1f5508a46c190619d5386b1ac8f3af3dbe951ed0f7b0b4a0961eed6fc626bd84b50cf4be768dabc0a05b672f5d0c5ee7f42daa557b14415d18c3a13c7d246
- languageName: node
- linkType: hard
-
"write-file-atomic@npm:^7.0.0":
version: 7.0.1
resolution: "write-file-atomic@npm:7.0.1"
@@ -21531,7 +19678,7 @@ __metadata:
languageName: node
linkType: hard
-"ws@npm:^8.11.0, ws@npm:^8.18.0":
+"ws@npm:^8.18.0":
version: 8.20.1
resolution: "ws@npm:8.20.1"
peerDependencies:
@@ -21583,13 +19730,6 @@ __metadata:
languageName: node
linkType: hard
-"xml-name-validator@npm:^4.0.0":
- version: 4.0.0
- resolution: "xml-name-validator@npm:4.0.0"
- checksum: 10/f9582a3f281f790344a471c207516e29e293c6041b2c20d84dd6e58832cd7c19796c47e108fd4fd4b164a5e72ad94f2268f8ace8231cde4a2c6428d6aa220f92
- languageName: node
- linkType: hard
-
"xml-name-validator@npm:^5.0.0":
version: 5.0.0
resolution: "xml-name-validator@npm:5.0.0"
@@ -21597,13 +19737,6 @@ __metadata:
languageName: node
linkType: hard
-"xml@npm:^1.0.1":
- version: 1.0.1
- resolution: "xml@npm:1.0.1"
- checksum: 10/6c4c31a1308e45732e5ac6b50edbca0e8f7abe5cb5de10215d8e3c688819fe7c7706e056f6fb59b1a23fdf1000c2d7a8bba0a89e94aa1796cd2376d9a5ba401e
- languageName: node
- linkType: hard
-
"xmlchars@npm:^2.2.0":
version: 2.2.0
resolution: "xmlchars@npm:2.2.0"
@@ -21660,13 +19793,6 @@ __metadata:
languageName: node
linkType: hard
-"yargs-parser@npm:^21.1.1":
- version: 21.1.1
- resolution: "yargs-parser@npm:21.1.1"
- checksum: 10/9dc2c217ea3bf8d858041252d43e074f7166b53f3d010a8c711275e09cd3d62a002969a39858b92bbda2a6a63a585c7127014534a560b9c69ed2d923d113406e
- languageName: node
- linkType: hard
-
"yargs-parser@npm:^22.0.0":
version: 22.0.0
resolution: "yargs-parser@npm:22.0.0"
@@ -21689,21 +19815,6 @@ __metadata:
languageName: node
linkType: hard
-"yargs@npm:^17.3.1":
- version: 17.7.2
- resolution: "yargs@npm:17.7.2"
- dependencies:
- cliui: "npm:^8.0.1"
- escalade: "npm:^3.1.1"
- get-caller-file: "npm:^2.0.5"
- require-directory: "npm:^2.1.1"
- string-width: "npm:^4.2.3"
- y18n: "npm:^5.0.5"
- yargs-parser: "npm:^21.1.1"
- checksum: 10/abb3e37678d6e38ea85485ed86ebe0d1e3464c640d7d9069805ea0da12f69d5a32df8e5625e370f9c96dd1c2dc088ab2d0a4dd32af18222ef3c4224a19471576
- languageName: node
- linkType: hard
-
"yargs@npm:^18.0.0":
version: 18.0.0
resolution: "yargs@npm:18.0.0"
From d5f9b9be3ac3f064d5defca11aa232f1951bcfed Mon Sep 17 00:00:00 2001
From: Chris Zetter <253059100+zetter-rpf@users.noreply.github.com>
Date: Mon, 24 Aug 2026 09:17:19 +0100
Subject: [PATCH 13/16] Update docs to describe Vitest instead of Jest
Previously README.md and AGENTS.md (CLAUDE.md) described the project
as testing on Jest, documented the old combined Jest+Vitest CI
command with Jest-specific coverage/reporter flags, and listed
config/ as holding Jest config. Jest has now been fully removed and
config/ only holds the nginx deploy template.
This change updates both docs to describe Vitest as the test runner,
simplifies the documented CI test command to "yarn test --run", and
corrects the config/ directory description.
---
AGENTS.md | 11 ++++-------
README.md | 4 ++--
2 files changed, 6 insertions(+), 9 deletions(-)
diff --git a/AGENTS.md b/AGENTS.md
index 5ccb7f040..397fca5d8 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -1,7 +1,6 @@
# Project Overview
- Web component version of Raspberry Pi Code Editor, built with React and
- Vite (migrated from an ejected-CRA webpack setup; the Jest test setup from
- that era is unchanged, see Testing & CI below).
+ Vite (migrated from an ejected-CRA webpack setup).
- Primary entry is the web component bundle served by the dev server at
`http://localhost:3011`.
- Three Vite configs at the repo root, each producing one unhashed, classic
@@ -14,8 +13,7 @@
- `src/`: application code, redux, web component entrypoints.
- `public/`: static assets, Python/Skulpt libraries and shims.
- `cypress/`: end-to-end tests and fixtures.
-- `config/`: Jest config and build helpers (CRA/webpack-era leftovers; not used
- by the Vite build).
+- `config/`: deploy helpers (e.g. `nginx.conf.erb`); not used by the Vite build.
- `.github/workflows/`: CI/CD and deploy pipelines.
## Quickstart Commands
@@ -38,8 +36,7 @@ yarn start
```
yarn install --immutable
yarn lint
-yarn run test --coverage --maxWorkers=4 --workerThreads=true \
- --reporters=default --reporters=jest-junit --reporters=jest-github-actions-reporter
+yarn test --run
```
- Cypress in CI starts the app with `yarn start` and runs against
`http://localhost:3011` with `REACT_APP_API_ENDPOINT`, `PUBLIC_URL`,
@@ -93,7 +90,7 @@ yarn exec cypress open
Deploys are driven by `.github/workflows/deploy.yml`.
### Running tests
-- Unit tests: `CI=true yarn test` (without `CI=true`, Jest enters interactive watch mode which hangs).
+- Unit tests: `CI=true yarn test` (without `CI=true`, Vitest enters interactive watch mode which hangs).
- Lint: `yarn lint` (runs ESLint on `src/` and `cypress/`).
- Cypress e2e requires the dev server to be running first (`yarn start`).
diff --git a/README.md b/README.md
index 1a8fa3813..b0a1effce 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
# Getting Started
-This project provides a web component containing the Raspberry Pi Code Editor for use on other sites. It was originally bootstrapped with [Create React App](https://github.com/facebook/create-react-app) and later ejected; the build now runs on [Vite](https://vite.dev) (see `vite.config.js`, `vite.html-renderer.config.js` and `vite.worker.config.js`), while tests still run on the Jest setup CRA generated.
+This project provides a web component containing the Raspberry Pi Code Editor for use on other sites. It was originally bootstrapped with [Create React App](https://github.com/facebook/create-react-app) and later ejected; the build now runs on [Vite](https://vite.dev) (see `vite.config.js`, `vite.html-renderer.config.js` and `vite.worker.config.js`), and tests run on [Vitest](https://vitest.dev).
## Install dependencies
@@ -101,7 +101,7 @@ Note: Both eslint and stylelint are run as part of the CI pipeline.
## Testing
-Automated unit tests can be run via the `yarn test` command. These unit tests are written using the JavaScript testing framework `Jest` and make use of the tools provided by the [React Testing Library](https://testing-library.com/docs/). Automated accessibility testing for components is available via the `jest-axe` library. This can be achieved using the `haveNoViolations` matcher provided by `jest-axe`, although this does not guarantee that the tested components have no accessibility issues.
+Automated unit tests can be run via the `yarn test` command. These unit tests are written using the JavaScript testing framework [Vitest](https://vitest.dev) and make use of the tools provided by the [React Testing Library](https://testing-library.com/docs/). Automated accessibility testing for components is available via the `jest-axe` library. This can be achieved using the `haveNoViolations` matcher provided by `jest-axe`, although this does not guarantee that the tested components have no accessibility issues.
Integration testing is carried out via `cypress` and can be run using:
From e053633162bedb979e25134f27d8d2dff271cbf3 Mon Sep 17 00:00:00 2001
From: Chris Zetter <253059100+zetter-rpf@users.noreply.github.com>
Date: Mon, 24 Aug 2026 09:17:27 +0100
Subject: [PATCH 14/16] Fix two stale Jest mentions in code comments
Previously a comment in scratchblocksLocales.js attributed the
trimmed-locale-list approach to avoiding "jest module import
errors", and a comment in InstructionsPanel.test.jsx referenced
jest's `resetMocks: true` clearing a mocked implementation
per-test. Both files run under Vitest now, and vite.config.js sets
the equivalent `mockReset: true` option.
This change updates both comments to name Vitest and its
`mockReset` option instead of Jest.
---
.../Menus/Sidebar/InstructionsPanel/InstructionsPanel.test.jsx | 2 +-
src/utils/scratchblocksLocales.js | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/components/Menus/Sidebar/InstructionsPanel/InstructionsPanel.test.jsx b/src/components/Menus/Sidebar/InstructionsPanel/InstructionsPanel.test.jsx
index cd1d22e9c..79ad86050 100644
--- a/src/components/Menus/Sidebar/InstructionsPanel/InstructionsPanel.test.jsx
+++ b/src/components/Menus/Sidebar/InstructionsPanel/InstructionsPanel.test.jsx
@@ -17,7 +17,7 @@ vi.mock("../../../../utils/scratchblocks", () => ({
// Stand-in for the real (jsdom-unfriendly) scratchblocks SVG rendering: swap
// each .language-blocks element for an svg so we can assert it was processed.
-// Set as the implementation per-test because jest `resetMocks: true` clears it.
+// Set as the implementation per-test because Vitest's `mockReset: true` clears it.
const fakeScratchblocksInit = (_locale, container) => {
container.querySelectorAll(".language-blocks").forEach((block) => {
const svg = global.document.createElementNS(
diff --git a/src/utils/scratchblocksLocales.js b/src/utils/scratchblocksLocales.js
index 741edf6be..348a2316d 100644
--- a/src/utils/scratchblocksLocales.js
+++ b/src/utils/scratchblocksLocales.js
@@ -1,7 +1,7 @@
// Trimmed copy of scratchblocks/locales/all.js containing only the locales the
// editor actually supports (i.e. the values referenced in the localeMap in
// scratchblocks.js). We list them explicitly rather than importing the upstream
-// all.js to avoid jest module import errors, and to keep the ~1MB of unused
+// all.js to avoid Vitest module import errors, and to keep the ~1MB of unused
// locale JSON out of the bundle. `en` is built into scratchblocks so is omitted.
import am from "scratchblocks/locales/am.json";
import ar from "scratchblocks/locales/ar.json";
From 403b17684d89e956eebccfd09b7066b4c0891e49 Mon Sep 17 00:00:00 2001
From: Chris Zetter <253059100+zetter-rpf@users.noreply.github.com>
Date: Mon, 24 Aug 2026 09:22:28 +0100
Subject: [PATCH 15/16] Drop the two Babel packages that were only for the Jest
transform
Tried dropping all Babel-related dependencies, since @babel/core,
babel-eslint and babel-preset-react-app looked like they might only
be needed to support Jest's babel-jest transform (now removed).
@babel/core and babel-preset-react-app check out: nothing besides the
deleted .babelrc referenced them, and lint/tests/build all stay green
without them.
babel-eslint does not: eslint-config-react-app's base config hard-
codes "parser: babel-eslint", and our own top-level .eslintrc.json
parser must override that to have any effect. Swapping in the
built-in espree parser fails outright on the ES2021/2022 syntax
already in use (numeric separators, uninitialized class fields,
top-level await), throwing parse errors. Swapping in a newer
standalone espree (9.6.1) parses that syntax fine, but ESLint 7's
bundled eslint-scope/no-undef predate the PropertyDefinition AST node
for class fields, so it wrongly flags every class field as
"not defined" - a new dependency added to replace one still being
removed, while also not being clean. babel-eslint stays.
---
package.json | 2 -
yarn.lock | 1883 ++++----------------------------------------------
2 files changed, 121 insertions(+), 1764 deletions(-)
diff --git a/package.json b/package.json
index 8af812389..3a1b7c0ec 100644
--- a/package.json
+++ b/package.json
@@ -3,7 +3,6 @@
"version": "0.36.4",
"private": true,
"dependencies": {
- "@babel/core": "^7.17.10",
"@codemirror/commands": "^6.1.1",
"@codemirror/lang-css": "^6.0.0",
"@codemirror/lang-html": "^6.1.2",
@@ -106,7 +105,6 @@
"@typescript-eslint/parser": "^4.5.0",
"@vitejs/plugin-react": "^6",
"babel-eslint": "^10.1.0",
- "babel-preset-react-app": "^10.0.1",
"browserslist": "^4.28.6",
"browserslist-to-esbuild": "^2.1.1",
"camelcase": "^6.1.0",
diff --git a/yarn.lock b/yarn.lock
index b48f9e47b..61335eb4f 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -101,16 +101,6 @@ __metadata:
languageName: node
linkType: hard
-"@ampproject/remapping@npm:^2.2.0":
- version: 2.3.0
- resolution: "@ampproject/remapping@npm:2.3.0"
- dependencies:
- "@jridgewell/gen-mapping": "npm:^0.3.5"
- "@jridgewell/trace-mapping": "npm:^0.3.24"
- checksum: 10/f3451525379c68a73eb0a1e65247fbf28c0cccd126d93af21c75fceff77773d43c0d4a2d51978fb131aff25b5f2cb41a9fe48cc296e61ae65e679c4f6918b0ab
- languageName: node
- linkType: hard
-
"@asamuzakjp/css-color@npm:^3.2.0":
version: 3.2.0
resolution: "@asamuzakjp/css-color@npm:3.2.0"
@@ -199,7 +189,7 @@ __metadata:
languageName: node
linkType: hard
-"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.25.7":
+"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.12.13":
version: 7.25.7
resolution: "@babel/code-frame@npm:7.25.7"
dependencies:
@@ -220,17 +210,6 @@ __metadata:
languageName: node
linkType: hard
-"@babel/code-frame@npm:^7.28.6, @babel/code-frame@npm:^7.29.0":
- version: 7.29.0
- resolution: "@babel/code-frame@npm:7.29.0"
- dependencies:
- "@babel/helper-validator-identifier": "npm:^7.28.5"
- js-tokens: "npm:^4.0.0"
- picocolors: "npm:^1.1.1"
- checksum: 10/199e15ff89007dd30675655eec52481cb245c9fdf4f81e4dc1f866603b0217b57aff25f5ffa0a95bbc8e31eb861695330cd7869ad52cc211aa63016320ef72c5
- languageName: node
- linkType: hard
-
"@babel/code-frame@npm:^7.29.7":
version: 7.29.7
resolution: "@babel/code-frame@npm:7.29.7"
@@ -242,13 +221,6 @@ __metadata:
languageName: node
linkType: hard
-"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.25.7, @babel/compat-data@npm:^7.25.8":
- version: 7.25.8
- resolution: "@babel/compat-data@npm:7.25.8"
- checksum: 10/269fcb0d89e02e36c8a11e0c1b960a6b4204e88f59f20c374d28f8e318f4cd5ded42dfedc4b54162065e6a10f71c0de651f5ed3f9b45d3a4b52240196df85726
- languageName: node
- linkType: hard
-
"@babel/compat-data@npm:^7.29.7":
version: 7.29.7
resolution: "@babel/compat-data@npm:7.29.7"
@@ -256,29 +228,6 @@ __metadata:
languageName: node
linkType: hard
-"@babel/core@npm:^7.16.0, @babel/core@npm:^7.17.10":
- version: 7.25.8
- resolution: "@babel/core@npm:7.25.8"
- dependencies:
- "@ampproject/remapping": "npm:^2.2.0"
- "@babel/code-frame": "npm:^7.25.7"
- "@babel/generator": "npm:^7.25.7"
- "@babel/helper-compilation-targets": "npm:^7.25.7"
- "@babel/helper-module-transforms": "npm:^7.25.7"
- "@babel/helpers": "npm:^7.25.7"
- "@babel/parser": "npm:^7.25.8"
- "@babel/template": "npm:^7.25.7"
- "@babel/traverse": "npm:^7.25.7"
- "@babel/types": "npm:^7.25.8"
- convert-source-map: "npm:^2.0.0"
- debug: "npm:^4.1.0"
- gensync: "npm:^1.0.0-beta.2"
- json5: "npm:^2.2.3"
- semver: "npm:^6.3.1"
- checksum: 10/31eb1a8ca1a3cc0026060720eb290e68205d95c5c00fbd831e69ddc0810f5920b8eb2749db1889ac0a0312b6eddbf321d18a996a88858f3b75c9582bef9ec1e4
- languageName: node
- linkType: hard
-
"@babel/core@npm:^7.21.3":
version: 7.29.7
resolution: "@babel/core@npm:7.29.7"
@@ -302,31 +251,6 @@ __metadata:
languageName: node
linkType: hard
-"@babel/generator@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/generator@npm:7.25.7"
- dependencies:
- "@babel/types": "npm:^7.25.7"
- "@jridgewell/gen-mapping": "npm:^0.3.5"
- "@jridgewell/trace-mapping": "npm:^0.3.25"
- jsesc: "npm:^3.0.2"
- checksum: 10/01542829621388077fa8a7464970c1db0f748f1482968dddf5332926afe4003f953cbe08e3bbbb0a335b11eba0126c9a81779bd1c5baed681a9ccec4ae63b217
- languageName: node
- linkType: hard
-
-"@babel/generator@npm:^7.29.0":
- version: 7.29.1
- resolution: "@babel/generator@npm:7.29.1"
- dependencies:
- "@babel/parser": "npm:^7.29.0"
- "@babel/types": "npm:^7.29.0"
- "@jridgewell/gen-mapping": "npm:^0.3.12"
- "@jridgewell/trace-mapping": "npm:^0.3.28"
- jsesc: "npm:^3.0.2"
- checksum: 10/61fe4ddd6e817aa312a14963ccdbb5c9a8c57e8b97b98d19a8a99ccab2215fda1a5f52bc8dd8d2e3c064497ddeb3ab8ceb55c76fa0f58f8169c34679d2256fe0
- languageName: node
- linkType: hard
-
"@babel/generator@npm:^7.29.7":
version: 7.29.7
resolution: "@babel/generator@npm:7.29.7"
@@ -340,35 +264,16 @@ __metadata:
languageName: node
linkType: hard
-"@babel/helper-annotate-as-pure@npm:^7.18.6, @babel/helper-annotate-as-pure@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/helper-annotate-as-pure@npm:7.25.7"
- dependencies:
- "@babel/types": "npm:^7.25.7"
- checksum: 10/38044806cab33032391c46861cd0a36adb960525b00bc03f2f3d4380c983bf17971cdabc431e58b93a328ef24bd0271f1dc3a8c1c1ea6cab49d04702961451d8
- languageName: node
- linkType: hard
-
-"@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.25.7"
- dependencies:
- "@babel/traverse": "npm:^7.25.7"
- "@babel/types": "npm:^7.25.7"
- checksum: 10/e493c4b7ea1dcb1e406cf30265164b632e133ea9a039a5ddc8eadd5370ad498eddcd99871fdf500b9ac05d0b43f2a0987580ceb1f7adb3b7272e49b56589849a
- languageName: node
- linkType: hard
-
-"@babel/helper-compilation-targets@npm:^7.22.6, @babel/helper-compilation-targets@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/helper-compilation-targets@npm:7.25.7"
+"@babel/generator@npm:^7.29.8":
+ version: 7.29.8
+ resolution: "@babel/generator@npm:7.29.8"
dependencies:
- "@babel/compat-data": "npm:^7.25.7"
- "@babel/helper-validator-option": "npm:^7.25.7"
- browserslist: "npm:^4.24.0"
- lru-cache: "npm:^5.1.1"
- semver: "npm:^6.3.1"
- checksum: 10/bbf9be8480da3f9a89e36e9ea2e1c76601014c1074ccada7c2edb1adeb3b62bc402cc4abaf8d16760734b25eceb187a9510ce44f6a7a6f696ccc74f69283625b
+ "@babel/parser": "npm:^7.29.8"
+ "@babel/types": "npm:^7.29.8"
+ "@jridgewell/gen-mapping": "npm:^0.3.12"
+ "@jridgewell/trace-mapping": "npm:^0.3.28"
+ jsesc: "npm:^3.0.2"
+ checksum: 10/679c3d1302936f391260acee4059e0c3cd5bff6341772f0b85bb142feab1a253d0e155aad0e9c8531e024d6239a2cc5169d1e294c6890901e7d4ab0f7c9eaaaa
languageName: node
linkType: hard
@@ -385,1423 +290,116 @@ __metadata:
languageName: node
linkType: hard
-"@babel/helper-create-class-features-plugin@npm:^7.18.6, @babel/helper-create-class-features-plugin@npm:^7.21.0, @babel/helper-create-class-features-plugin@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/helper-create-class-features-plugin@npm:7.25.7"
- dependencies:
- "@babel/helper-annotate-as-pure": "npm:^7.25.7"
- "@babel/helper-member-expression-to-functions": "npm:^7.25.7"
- "@babel/helper-optimise-call-expression": "npm:^7.25.7"
- "@babel/helper-replace-supers": "npm:^7.25.7"
- "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.7"
- "@babel/traverse": "npm:^7.25.7"
- semver: "npm:^6.3.1"
- peerDependencies:
- "@babel/core": ^7.0.0
- checksum: 10/76e3bb727d7541d38acaa9b6ecff88f70e62370396dd22511837b90a556c6815a7efd6fd25b499bf1c8b02cdb18c575781a6aba0c442c38a2129a403b5bf9b1e
- languageName: node
- linkType: hard
-
-"@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/helper-create-regexp-features-plugin@npm:7.25.7"
- dependencies:
- "@babel/helper-annotate-as-pure": "npm:^7.25.7"
- regexpu-core: "npm:^6.1.1"
- semver: "npm:^6.3.1"
- peerDependencies:
- "@babel/core": ^7.0.0
- checksum: 10/fa083f83ae9ba3326e32762c9839fea171de34d66bffc65569a6a67222ec55cf4ef35b6b26f332d24485c0622a69a2e0b9eb2a7ca279595b174cfeeec68849ac
- languageName: node
- linkType: hard
-
-"@babel/helper-define-polyfill-provider@npm:^0.6.2":
- version: 0.6.2
- resolution: "@babel/helper-define-polyfill-provider@npm:0.6.2"
- dependencies:
- "@babel/helper-compilation-targets": "npm:^7.22.6"
- "@babel/helper-plugin-utils": "npm:^7.22.5"
- debug: "npm:^4.1.1"
- lodash.debounce: "npm:^4.0.8"
- resolve: "npm:^1.14.2"
- peerDependencies:
- "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0
- checksum: 10/bb32ec12024d3f16e70641bc125d2534a97edbfdabbc9f69001ec9c4ce46f877c7a224c566aa6c8c510c3b0def2e43dc4433bf6a40896ba5ce0cef4ea5ccbcff
- languageName: node
- linkType: hard
-
-"@babel/helper-globals@npm:^7.28.0":
- version: 7.28.0
- resolution: "@babel/helper-globals@npm:7.28.0"
- checksum: 10/91445f7edfde9b65dcac47f4f858f68dc1661bf73332060ab67ad7cc7b313421099a2bfc4bda30c3db3842cfa1e86fffbb0d7b2c5205a177d91b22c8d7d9cb47
- languageName: node
- linkType: hard
-
"@babel/helper-globals@npm:^7.29.7":
version: 7.29.7
resolution: "@babel/helper-globals@npm:7.29.7"
- checksum: 10/e53203e87ae24a45f59639edea0c429bc3c63c6d74f1862fe60a35032d89478e7511d2f34855da0fcb65782668d72e59e93d1de5bc00121ba9bc1aa38f1f0ad3
- languageName: node
- linkType: hard
-
-"@babel/helper-member-expression-to-functions@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/helper-member-expression-to-functions@npm:7.25.7"
- dependencies:
- "@babel/traverse": "npm:^7.25.7"
- "@babel/types": "npm:^7.25.7"
- checksum: 10/f953a0ddbcfbaae835033b54fdbf42cc3aea08c554875fccfc02ed4b1e5fe3ee06abf1b7a8419314357841fabc9efdbcbb8afdf07c4f216a73164a45a147562b
- languageName: node
- linkType: hard
-
-"@babel/helper-module-imports@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/helper-module-imports@npm:7.25.7"
- dependencies:
- "@babel/traverse": "npm:^7.25.7"
- "@babel/types": "npm:^7.25.7"
- checksum: 10/94556712c27058ea35a1a39e21a3a9f067cd699405b64333d7d92b2b3d2f24d6f0ffa51aedba0b908e320acb1854e70d296259622e636fb021eeae9a6d996f01
- languageName: node
- linkType: hard
-
-"@babel/helper-module-imports@npm:^7.28.6":
- version: 7.28.6
- resolution: "@babel/helper-module-imports@npm:7.28.6"
- dependencies:
- "@babel/traverse": "npm:^7.28.6"
- "@babel/types": "npm:^7.28.6"
- checksum: 10/64b1380d74425566a3c288074d7ce4dea56d775d2d3325a3d4a6df1dca702916c1d268133b6f385de9ba5b822b3c6e2af5d3b11ac88e5453d5698d77264f0ec0
- languageName: node
- linkType: hard
-
-"@babel/helper-module-imports@npm:^7.29.7":
- version: 7.29.7
- resolution: "@babel/helper-module-imports@npm:7.29.7"
- dependencies:
- "@babel/traverse": "npm:^7.29.7"
- "@babel/types": "npm:^7.29.7"
- checksum: 10/28ec6f7efd99588d6eebfb25c9f1ccc34cb0cdb0839c4c0f08b3ec0105ccaefbe7e8b4f651f3f55a4f5c4fcb1d979bd32a9b8ee23e3e62163ea22aaa7ee0dfa1
- languageName: node
- linkType: hard
-
-"@babel/helper-module-transforms@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/helper-module-transforms@npm:7.25.7"
- dependencies:
- "@babel/helper-module-imports": "npm:^7.25.7"
- "@babel/helper-simple-access": "npm:^7.25.7"
- "@babel/helper-validator-identifier": "npm:^7.25.7"
- "@babel/traverse": "npm:^7.25.7"
- peerDependencies:
- "@babel/core": ^7.0.0
- checksum: 10/480309b1272ceaa985de1393f0e4c41aede0d5921ca644cec5aeaf43c8e4192b6dd56a58ef6d7e9acd02a43184ab45d3b241fc8c3a0a00f9dbb30235fd8a1181
- languageName: node
- linkType: hard
-
-"@babel/helper-module-transforms@npm:^7.28.6":
- version: 7.28.6
- resolution: "@babel/helper-module-transforms@npm:7.28.6"
- dependencies:
- "@babel/helper-module-imports": "npm:^7.28.6"
- "@babel/helper-validator-identifier": "npm:^7.28.5"
- "@babel/traverse": "npm:^7.28.6"
- peerDependencies:
- "@babel/core": ^7.0.0
- checksum: 10/2e421c7db743249819ee51e83054952709dc2e197c7d5d415b4bdddc718580195704bfcdf38544b3f674efc2eccd4d29a65d38678fc827ed3934a7690984cd8b
- languageName: node
- linkType: hard
-
-"@babel/helper-module-transforms@npm:^7.29.7":
- version: 7.29.7
- resolution: "@babel/helper-module-transforms@npm:7.29.7"
- dependencies:
- "@babel/helper-module-imports": "npm:^7.29.7"
- "@babel/helper-validator-identifier": "npm:^7.29.7"
- "@babel/traverse": "npm:^7.29.7"
- peerDependencies:
- "@babel/core": ^7.0.0
- checksum: 10/33251b1fb44d726194a974a0078b1269511d130a2609357ff829b479e9e4dca96ecd5384c534a477095f665ffb01503d3e680699c2002e5b62e6ca1a272f1892
- languageName: node
- linkType: hard
-
-"@babel/helper-optimise-call-expression@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/helper-optimise-call-expression@npm:7.25.7"
- dependencies:
- "@babel/types": "npm:^7.25.7"
- checksum: 10/8da0d9f5aae15991678ad1bbe58e52cd62a0ed36871075756d9684c0a7a65988ed81bab53ad6436c39a470d3cd690694dd2b07147817217e3ca87178a129c509
- languageName: node
- linkType: hard
-
-"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.20.2, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.25.7, @babel/helper-plugin-utils@npm:^7.8.0":
- version: 7.25.7
- resolution: "@babel/helper-plugin-utils@npm:7.25.7"
- checksum: 10/e1b0ea5e67b05378d6360e3fc370e99bfb247eed9f68145b5cce541da703424e1887fb6fc60ab2f7f743c72dcbfbed79d3032af43f2c251c229c734dc2572a5b
- languageName: node
- linkType: hard
-
-"@babel/helper-plugin-utils@npm:^7.28.6":
- version: 7.28.6
- resolution: "@babel/helper-plugin-utils@npm:7.28.6"
- checksum: 10/21c853bbc13dbdddf03309c9a0477270124ad48989e1ad6524b83e83a77524b333f92edd2caae645c5a7ecf264ec6d04a9ebe15aeb54c7f33c037b71ec521e4a
- languageName: node
- linkType: hard
-
-"@babel/helper-remap-async-to-generator@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/helper-remap-async-to-generator@npm:7.25.7"
- dependencies:
- "@babel/helper-annotate-as-pure": "npm:^7.25.7"
- "@babel/helper-wrap-function": "npm:^7.25.7"
- "@babel/traverse": "npm:^7.25.7"
- peerDependencies:
- "@babel/core": ^7.0.0
- checksum: 10/3d563ac35cb1306bf70e7353fc807e7b082a7510d955a36db089fa861c6a8b2c470184996f3177d5384e5290a1be9e7eed424efb9e2dd3bed3a8cf6c2d6a9723
- languageName: node
- linkType: hard
-
-"@babel/helper-replace-supers@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/helper-replace-supers@npm:7.25.7"
- dependencies:
- "@babel/helper-member-expression-to-functions": "npm:^7.25.7"
- "@babel/helper-optimise-call-expression": "npm:^7.25.7"
- "@babel/traverse": "npm:^7.25.7"
- peerDependencies:
- "@babel/core": ^7.0.0
- checksum: 10/87b65c7b278fabcb67458e592082a0b4532d5400acbb51e496ea47763077d0a64dc0531d32bafcb1d51f04d61d4715dadb1fd0301bc8449c26fcfd06913eb45e
- languageName: node
- linkType: hard
-
-"@babel/helper-simple-access@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/helper-simple-access@npm:7.25.7"
- dependencies:
- "@babel/traverse": "npm:^7.25.7"
- "@babel/types": "npm:^7.25.7"
- checksum: 10/42da1c358f2516337a4f2927c77ebb952907543b9f85d7cb1e2b5b5f6d808cdc081ee66a73e2ecdf48c315d9b0c2a81a857d5e1923ea210b8e81aba5e6cd2b53
- languageName: node
- linkType: hard
-
-"@babel/helper-skip-transparent-expression-wrappers@npm:^7.20.0, @babel/helper-skip-transparent-expression-wrappers@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.25.7"
- dependencies:
- "@babel/traverse": "npm:^7.25.7"
- "@babel/types": "npm:^7.25.7"
- checksum: 10/466c81d09981bfb9e10aa6697ecb621389ff92a86187daaca34a969ca990d7327ebe931e87f7d52a200e499542d398469478d83dfaaa244d2f49df4e078490b3
- languageName: node
- linkType: hard
-
-"@babel/helper-string-parser@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/helper-string-parser@npm:7.25.7"
- checksum: 10/2b8de9fa86c3f3090a349f1ce6e8ee2618a95355cbdafc6f228d82fa4808c84bf3d1d25290c6616d0a18b26b6cfeb6ec2aeebf01404bc8c60051d0094209f0e6
- languageName: node
- linkType: hard
-
-"@babel/helper-string-parser@npm:^7.27.1":
- version: 7.27.1
- resolution: "@babel/helper-string-parser@npm:7.27.1"
- checksum: 10/0ae29cc2005084abdae2966afdb86ed14d41c9c37db02c3693d5022fba9f5d59b011d039380b8e537c34daf117c549f52b452398f576e908fb9db3c7abbb3a00
- languageName: node
- linkType: hard
-
-"@babel/helper-string-parser@npm:^7.29.7":
- version: 7.29.7
- resolution: "@babel/helper-string-parser@npm:7.29.7"
- checksum: 10/4d8ef0ef7105f3d9fe4361137c8f42e5b4c7a52b5380b962762f2a528a1ba89064e2c6236090716ce34b63707b886ae0ebf36b2c2fcc2851f27e652febfc3648
- languageName: node
- linkType: hard
-
-"@babel/helper-validator-identifier@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/helper-validator-identifier@npm:7.25.7"
- checksum: 10/ec6934cc47fc35baaeb968414a372b064f14f7b130cf6489a014c9486b0fd2549b3c6c682cc1fc35080075e8e38d96aeb40342d63d09fc1a62510c8ce25cde1e
- languageName: node
- linkType: hard
-
-"@babel/helper-validator-identifier@npm:^7.25.9":
- version: 7.25.9
- resolution: "@babel/helper-validator-identifier@npm:7.25.9"
- checksum: 10/3f9b649be0c2fd457fa1957b694b4e69532a668866b8a0d81eabfa34ba16dbf3107b39e0e7144c55c3c652bf773ec816af8df4a61273a2bb4eb3145ca9cf478e
- languageName: node
- linkType: hard
-
-"@babel/helper-validator-identifier@npm:^7.28.5":
- version: 7.28.5
- resolution: "@babel/helper-validator-identifier@npm:7.28.5"
- checksum: 10/8e5d9b0133702cfacc7f368bf792f0f8ac0483794877c6dca5fcb73810ee138e27527701826fb58a40a004f3a5ec0a2f3c3dd5e326d262530b119918f3132ba7
- languageName: node
- linkType: hard
-
-"@babel/helper-validator-identifier@npm:^7.29.7":
- version: 7.29.7
- resolution: "@babel/helper-validator-identifier@npm:7.29.7"
- checksum: 10/2efa42701eb05babf26dff3332109c9e5e1a3400a71fb9e68ee27af28235036a2a72c2494c04bdab3f909075f42a58b2e8271074372bc7f8e79ec02bd364d7a7
- languageName: node
- linkType: hard
-
-"@babel/helper-validator-option@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/helper-validator-option@npm:7.25.7"
- checksum: 10/3c46cbdd666d176f90a0b7e952a0c6e92184b66633336eca79aca243d1f86085ec339a6e45c3d44efa9e03f1829b470a350ddafa70926af6bbf1ac611284f8d3
- languageName: node
- linkType: hard
-
-"@babel/helper-validator-option@npm:^7.29.7":
- version: 7.29.7
- resolution: "@babel/helper-validator-option@npm:7.29.7"
- checksum: 10/aeb6aa966f59300d3cc2fea7c68e1dfd7ad011fc10e535c8e2b2de3094b27c859428dc7220f16420350f8b1cde99da120b673be04bcb0c2f37b56258c96bed58
- languageName: node
- linkType: hard
-
-"@babel/helper-wrap-function@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/helper-wrap-function@npm:7.25.7"
- dependencies:
- "@babel/template": "npm:^7.25.7"
- "@babel/traverse": "npm:^7.25.7"
- "@babel/types": "npm:^7.25.7"
- checksum: 10/00e2291a2b67e060b98cae90b4cc9107cff29d7b26bd5eb61149c63fb99418d9bd00bb0708b8b3e733cae4b1ea3a2b41a709d85192accfa15903f8af5c821fe6
- languageName: node
- linkType: hard
-
-"@babel/helpers@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/helpers@npm:7.25.7"
- dependencies:
- "@babel/template": "npm:^7.25.7"
- "@babel/types": "npm:^7.25.7"
- checksum: 10/2632909f83aa99e8b0da4e10e5ab7fc4f0274e6497bb0f17071e004e037d25e4a595583620261dc21410a526fb32b4f7063c3e15e60ed7890a6f9b8ad52312c5
- languageName: node
- linkType: hard
-
-"@babel/helpers@npm:^7.29.7":
- version: 7.29.7
- resolution: "@babel/helpers@npm:7.29.7"
- dependencies:
- "@babel/template": "npm:^7.29.7"
- "@babel/types": "npm:^7.29.7"
- checksum: 10/b4d1ef12c19e896585c009ba29677839097ff04f8b11a2430d335c3fb6bd667b4f9e96a3b185a083fdde6b1137eabbbf2600c32425cb69cefc81d81d5cfe425d
- languageName: node
- linkType: hard
-
-"@babel/highlight@npm:^7.10.4, @babel/highlight@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/highlight@npm:7.25.7"
- dependencies:
- "@babel/helper-validator-identifier": "npm:^7.25.7"
- chalk: "npm:^2.4.2"
- js-tokens: "npm:^4.0.0"
- picocolors: "npm:^1.0.0"
- checksum: 10/823be2523d246dbf80aab3cc81c2a36c6111b16ac2949ef06789da54387824c2bfaa88c6627cdeb4ba7151d047a5d6765e49ebd0b478aba09759250111e65e08
- languageName: node
- linkType: hard
-
-"@babel/parser@npm:^7.25.7, @babel/parser@npm:^7.25.8, @babel/parser@npm:^7.7.0":
- version: 7.25.8
- resolution: "@babel/parser@npm:7.25.8"
- dependencies:
- "@babel/types": "npm:^7.25.8"
- bin:
- parser: ./bin/babel-parser.js
- checksum: 10/0396eb71e379903cedb43862f84ebb1bec809c41e82b4894d2e6e83b8e8bc636ba6eff45382e615baefdb2399ede76ca82247ecc3a9877ac16eb3140074a3276
- languageName: node
- linkType: hard
-
-"@babel/parser@npm:^7.28.6, @babel/parser@npm:^7.29.0":
- version: 7.29.3
- resolution: "@babel/parser@npm:7.29.3"
- dependencies:
- "@babel/types": "npm:^7.29.0"
- bin:
- parser: ./bin/babel-parser.js
- checksum: 10/10e8f34e0fdaa495b9db8be71f4eb29b16d8a57e0818c1bb1c4084015b0383803fd77812ed41597760cbf3d9ab3ae9f4af54f39ff5e5d8e081ba43593232f0ca
- languageName: node
- linkType: hard
-
-"@babel/parser@npm:^7.29.7":
- version: 7.29.7
- resolution: "@babel/parser@npm:7.29.7"
- dependencies:
- "@babel/types": "npm:^7.29.7"
- bin:
- parser: ./bin/babel-parser.js
- checksum: 10/da40c5928c95997b01aabe84fc3440881b8f20b866714fefa142961d37e82ffc03fbb9afed706f15f8a688278f95286ca0cea0d87ad6c77600f8c6c45d9824ee
- languageName: node
- linkType: hard
-
-"@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.25.7"
- dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- "@babel/traverse": "npm:^7.25.7"
- peerDependencies:
- "@babel/core": ^7.0.0
- checksum: 10/25f1d0a2ec6f9e912d2513b3830b239acdf9c75f453c208f77074687393f380b1150684ca0acb78368391fa1035242ac66e7f3856834d8003f01d1af17747230
- languageName: node
- linkType: hard
-
-"@babel/plugin-bugfix-safari-class-field-initializer-scope@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-bugfix-safari-class-field-initializer-scope@npm:7.25.7"
- dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- peerDependencies:
- "@babel/core": ^7.0.0
- checksum: 10/52551470b6164a787460c28019428e97d20097d5dffab74f8866512706a3b002e57fdb23fe8e5156149bc4c9cfea48d5a0347b7a9e7e2a05f681941037136ab3
- languageName: node
- linkType: hard
-
-"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.25.7"
- dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- peerDependencies:
- "@babel/core": ^7.0.0
- checksum: 10/c37204ec3c82a1babba13f0cc2a68220959224cbab1294b1d7d8501af4734de1664b43c67b97fcaa1b3f53c865b0a4ad6f887102c7d7b913aab43df29ac7da52
- languageName: node
- linkType: hard
-
-"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.25.7"
- dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.7"
- "@babel/plugin-transform-optional-chaining": "npm:^7.25.7"
- peerDependencies:
- "@babel/core": ^7.13.0
- checksum: 10/507c92bbcb3d7747c82290370336b50368fbb652af31fea718be8f1928142f1c5f7c6f2b9810d8b9b2905734f8f6b778f9e4b1cfb5a11073a2f1cfe9e5e5b354
- languageName: node
- linkType: hard
-
-"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.25.7"
- dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- "@babel/traverse": "npm:^7.25.7"
- peerDependencies:
- "@babel/core": ^7.0.0
- checksum: 10/289c6da5840c5049adbeb9b4cfb166d422f0b7b3f3a54aff64e8a053a1249e8eb513eac0fa3d033869372ffc30eda1e8555fa789b9daa1064bfdaf7f4717daa8
- languageName: node
- linkType: hard
-
-"@babel/plugin-proposal-class-properties@npm:^7.16.0":
- version: 7.18.6
- resolution: "@babel/plugin-proposal-class-properties@npm:7.18.6"
- dependencies:
- "@babel/helper-create-class-features-plugin": "npm:^7.18.6"
- "@babel/helper-plugin-utils": "npm:^7.18.6"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/49a78a2773ec0db56e915d9797e44fd079ab8a9b2e1716e0df07c92532f2c65d76aeda9543883916b8e0ff13606afeffa67c5b93d05b607bc87653ad18a91422
- languageName: node
- linkType: hard
-
-"@babel/plugin-proposal-decorators@npm:^7.16.4":
- version: 7.25.7
- resolution: "@babel/plugin-proposal-decorators@npm:7.25.7"
- dependencies:
- "@babel/helper-create-class-features-plugin": "npm:^7.25.7"
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- "@babel/plugin-syntax-decorators": "npm:^7.25.7"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/f07c6af4a6db9369f30f29c33efdcdaad296746702066ce31b88d0edb17e9bc12576b208a4936dd4d0a6a4b4a770516f7dc4ca97eef30aa2fab4653fbe182abd
- languageName: node
- linkType: hard
-
-"@babel/plugin-proposal-nullish-coalescing-operator@npm:^7.16.0":
- version: 7.18.6
- resolution: "@babel/plugin-proposal-nullish-coalescing-operator@npm:7.18.6"
- dependencies:
- "@babel/helper-plugin-utils": "npm:^7.18.6"
- "@babel/plugin-syntax-nullish-coalescing-operator": "npm:^7.8.3"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/949c9ddcdecdaec766ee610ef98f965f928ccc0361dd87cf9f88cf4896a6ccd62fce063d4494778e50da99dea63d270a1be574a62d6ab81cbe9d85884bf55a7d
- languageName: node
- linkType: hard
-
-"@babel/plugin-proposal-numeric-separator@npm:^7.16.0":
- version: 7.18.6
- resolution: "@babel/plugin-proposal-numeric-separator@npm:7.18.6"
- dependencies:
- "@babel/helper-plugin-utils": "npm:^7.18.6"
- "@babel/plugin-syntax-numeric-separator": "npm:^7.10.4"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/f370ea584c55bf4040e1f78c80b4eeb1ce2e6aaa74f87d1a48266493c33931d0b6222d8cee3a082383d6bb648ab8d6b7147a06f974d3296ef3bc39c7851683ec
- languageName: node
- linkType: hard
-
-"@babel/plugin-proposal-optional-chaining@npm:^7.16.0":
- version: 7.21.0
- resolution: "@babel/plugin-proposal-optional-chaining@npm:7.21.0"
- dependencies:
- "@babel/helper-plugin-utils": "npm:^7.20.2"
- "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.20.0"
- "@babel/plugin-syntax-optional-chaining": "npm:^7.8.3"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/522cd133aff5c94c0ef36ff83c64f03deee183815da68b65b6950e81972ace3b514e032df07ea76d0f9ec8cc7a49578092907adfa17fccb4612117557c04a882
- languageName: node
- linkType: hard
-
-"@babel/plugin-proposal-private-methods@npm:^7.16.0":
- version: 7.18.6
- resolution: "@babel/plugin-proposal-private-methods@npm:7.18.6"
- dependencies:
- "@babel/helper-create-class-features-plugin": "npm:^7.18.6"
- "@babel/helper-plugin-utils": "npm:^7.18.6"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/22d8502ee96bca99ad2c8393e8493e2b8d4507576dd054490fd8201a36824373440106f5b098b6d821b026c7e72b0424ff4aeca69ed5f42e48f029d3a156d5ad
- languageName: node
- linkType: hard
-
-"@babel/plugin-proposal-private-property-in-object@npm:7.21.0-placeholder-for-preset-env.2":
- version: 7.21.0-placeholder-for-preset-env.2
- resolution: "@babel/plugin-proposal-private-property-in-object@npm:7.21.0-placeholder-for-preset-env.2"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/fab70f399aa869275690ec6c7cedb4ef361d4e8b6f55c3d7b04bfee61d52fb93c87cec2c65d73cddbaca89fb8ef5ec0921fce675c9169d9d51f18305ab34e78a
- languageName: node
- linkType: hard
-
-"@babel/plugin-proposal-private-property-in-object@npm:^7.16.7":
- version: 7.21.11
- resolution: "@babel/plugin-proposal-private-property-in-object@npm:7.21.11"
- dependencies:
- "@babel/helper-annotate-as-pure": "npm:^7.18.6"
- "@babel/helper-create-class-features-plugin": "npm:^7.21.0"
- "@babel/helper-plugin-utils": "npm:^7.20.2"
- "@babel/plugin-syntax-private-property-in-object": "npm:^7.14.5"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/f803b5e1de0cb7c53f0d7f70bfbf57f2b3a20d95c19f8f2710719c4938149b490ee14d2d0c2f8316080823f0943c6cb8668fa8c139420e7bc7f80a66bfd50fff
- languageName: node
- linkType: hard
-
-"@babel/plugin-syntax-decorators@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-syntax-decorators@npm:7.25.7"
- dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/68107004ba33c69ab50b9c57bb04e95dea19ee5daf9a8049cfbf2544c7c8178b6411dbc1bd08375c007543fc07f8b836075126c3220d5338b3167ad9d81746db
- languageName: node
- linkType: hard
-
-"@babel/plugin-syntax-flow@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-syntax-flow@npm:7.25.7"
- dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/ce96b984445c712bb5fdc70a8c7e8a58759db17d1e31386caae5c93b062ab447421831e9527949b0d3d7750ac0a4eacfde00f40ca86392381fec7c5d39455e9c
- languageName: node
- linkType: hard
-
-"@babel/plugin-syntax-import-assertions@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-syntax-import-assertions@npm:7.25.7"
- dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/d72615f8dcc5ffbcb456bcf7ce27bc22b30cc9ea8d809e461d80af486033d31bd0b6d83c9a7997c9cd36ff283a9c1207f806da4361bb620370659c256c5454e9
- languageName: node
- linkType: hard
-
-"@babel/plugin-syntax-import-attributes@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-syntax-import-attributes@npm:7.25.7"
- dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/7c5451e2d8351693acbc53b1e1f6951026e35899d22847a6d22424a1ee5c92c11ac6c6f209a9e18f85d7bb9267caaf2532653e892997cdcd51784106a5858b7e
- languageName: node
- linkType: hard
-
-"@babel/plugin-syntax-jsx@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-syntax-jsx@npm:7.25.7"
- dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/243476a943a84b6b86e99076301e66f48268e8799564053e8feccab90da7944a0b42c91360216dbfb0b2958bbd0ed100d2c7b2db688dab83d19ff2745d4892eb
- languageName: node
- linkType: hard
-
-"@babel/plugin-syntax-nullish-coalescing-operator@npm:^7.8.3":
- version: 7.8.3
- resolution: "@babel/plugin-syntax-nullish-coalescing-operator@npm:7.8.3"
- dependencies:
- "@babel/helper-plugin-utils": "npm:^7.8.0"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/87aca4918916020d1fedba54c0e232de408df2644a425d153be368313fdde40d96088feed6c4e5ab72aac89be5d07fef2ddf329a15109c5eb65df006bf2580d1
- languageName: node
- linkType: hard
-
-"@babel/plugin-syntax-numeric-separator@npm:^7.10.4":
- version: 7.10.4
- resolution: "@babel/plugin-syntax-numeric-separator@npm:7.10.4"
- dependencies:
- "@babel/helper-plugin-utils": "npm:^7.10.4"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/01ec5547bd0497f76cc903ff4d6b02abc8c05f301c88d2622b6d834e33a5651aa7c7a3d80d8d57656a4588f7276eba357f6b7e006482f5b564b7a6488de493a1
- languageName: node
- linkType: hard
-
-"@babel/plugin-syntax-optional-chaining@npm:^7.8.3":
- version: 7.8.3
- resolution: "@babel/plugin-syntax-optional-chaining@npm:7.8.3"
- dependencies:
- "@babel/helper-plugin-utils": "npm:^7.8.0"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/eef94d53a1453361553c1f98b68d17782861a04a392840341bc91780838dd4e695209c783631cf0de14c635758beafb6a3a65399846ffa4386bff90639347f30
- languageName: node
- linkType: hard
-
-"@babel/plugin-syntax-private-property-in-object@npm:^7.14.5":
- version: 7.14.5
- resolution: "@babel/plugin-syntax-private-property-in-object@npm:7.14.5"
- dependencies:
- "@babel/helper-plugin-utils": "npm:^7.14.5"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/b317174783e6e96029b743ccff2a67d63d38756876e7e5d0ba53a322e38d9ca452c13354a57de1ad476b4c066dbae699e0ca157441da611117a47af88985ecda
- languageName: node
- linkType: hard
-
-"@babel/plugin-syntax-typescript@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-syntax-typescript@npm:7.25.7"
- dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/f1492336230920cc4daa6e7aa3571253fb0c0fd05a1d0a7b5dc0a5b907f31945235ee8bf09c83f7738b89943a2320a61dda95e0db2b6310b07040aeda6be4f44
- languageName: node
- linkType: hard
-
-"@babel/plugin-syntax-unicode-sets-regex@npm:^7.18.6":
- version: 7.18.6
- resolution: "@babel/plugin-syntax-unicode-sets-regex@npm:7.18.6"
- dependencies:
- "@babel/helper-create-regexp-features-plugin": "npm:^7.18.6"
- "@babel/helper-plugin-utils": "npm:^7.18.6"
- peerDependencies:
- "@babel/core": ^7.0.0
- checksum: 10/a651d700fe63ff0ddfd7186f4ebc24447ca734f114433139e3c027bc94a900d013cf1ef2e2db8430425ba542e39ae160c3b05f06b59fd4656273a3df97679e9c
- languageName: node
- linkType: hard
-
-"@babel/plugin-transform-arrow-functions@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-arrow-functions@npm:7.25.7"
- dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/45a6b05acd132bd399ab127d54d43f7117f650908092c15da7c41c61c5e49bfdb63c0e65bd59ad68c94bfc6aade602732a98a55b146b69dfae212516203d43f9
- languageName: node
- linkType: hard
-
-"@babel/plugin-transform-async-generator-functions@npm:^7.25.8":
- version: 7.25.8
- resolution: "@babel/plugin-transform-async-generator-functions@npm:7.25.8"
- dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- "@babel/helper-remap-async-to-generator": "npm:^7.25.7"
- "@babel/traverse": "npm:^7.25.7"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/ab3f74664fc03af357e8450711de60ec77149be668059dbc0c0d616d85253117aec0e5ffb2eccda3449d0099d5fba5ef32f0e6e12a52af5f72fbca437372ece5
- languageName: node
- linkType: hard
-
-"@babel/plugin-transform-async-to-generator@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-async-to-generator@npm:7.25.7"
- dependencies:
- "@babel/helper-module-imports": "npm:^7.25.7"
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- "@babel/helper-remap-async-to-generator": "npm:^7.25.7"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/fdc6161e9027bec8bbe523e40934a2cccf1a30cf241006c98a120b2cda6e4f75d4a4cb4831cf3ece43d9b752183117e4ca5ec43778750146d5fc9a74b22b1acf
- languageName: node
- linkType: hard
-
-"@babel/plugin-transform-block-scoped-functions@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.25.7"
- dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/334debb143d002295c6dd5559ebf24483557787621fd1d7283ac748eb401ed96b7d43c981f1d2b6795720979fe7872dd0719aed890d064244d52b1c4fe6f3347
- languageName: node
- linkType: hard
-
-"@babel/plugin-transform-block-scoping@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-block-scoping@npm:7.25.7"
- dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/bbc5b815c6850eb798a294a5d31ed09bb0db367a31196e78c0d02ce3f845ddd2e0dcfd7ec70505dfa4e1bd67f13e46b315d290c58aa7531468feed380e267d97
- languageName: node
- linkType: hard
-
-"@babel/plugin-transform-class-properties@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-class-properties@npm:7.25.7"
- dependencies:
- "@babel/helper-create-class-features-plugin": "npm:^7.25.7"
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/fe1dbbd77275ade96964fec0c85a1f14e2dac0c6565bccddf00680e43c2e906d289dd9d483aff6359420cef2a044b4aaaeb303f64a3a1a005601c018188368e7
- languageName: node
- linkType: hard
-
-"@babel/plugin-transform-class-static-block@npm:^7.25.8":
- version: 7.25.8
- resolution: "@babel/plugin-transform-class-static-block@npm:7.25.8"
- dependencies:
- "@babel/helper-create-class-features-plugin": "npm:^7.25.7"
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- peerDependencies:
- "@babel/core": ^7.12.0
- checksum: 10/160d5f9d1dbe4dc12c2998227b51b1ccfe9f4d11b1031d0698f34403961d5b9bb995cc86acf1855102b9be365370c97d8cea243802b73c7ba7b2b18b2ac3aae9
- languageName: node
- linkType: hard
-
-"@babel/plugin-transform-classes@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-classes@npm:7.25.7"
- dependencies:
- "@babel/helper-annotate-as-pure": "npm:^7.25.7"
- "@babel/helper-compilation-targets": "npm:^7.25.7"
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- "@babel/helper-replace-supers": "npm:^7.25.7"
- "@babel/traverse": "npm:^7.25.7"
- globals: "npm:^11.1.0"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/239926ceb7fa926054fe9aabb7a64dba090d8f83d075bcec804d602a5715501c56dc26367bb90e6780e1113cc04cf6ad32c131e2782ccf1768fd059ac7eba04b
- languageName: node
- linkType: hard
-
-"@babel/plugin-transform-computed-properties@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-computed-properties@npm:7.25.7"
- dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- "@babel/template": "npm:^7.25.7"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/f25caeb3366847a1f67efe4b250a460f88a5ebb4c12c566d945bf211ef28977dd21f4dd6539f63743f3fabdbb174b4d34e22af2a451aba3bcfd702396442eb53
- languageName: node
- linkType: hard
-
-"@babel/plugin-transform-destructuring@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-destructuring@npm:7.25.7"
- dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/b58347dc1b807ef8e6aaf995d59c6f09aa9de2c590bb90a52bc9c4082836ef72f70f8fc062370138134220de40dad06af6122ffcce77fb97d5e77ca7cd71e5c7
- languageName: node
- linkType: hard
-
-"@babel/plugin-transform-dotall-regex@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-dotall-regex@npm:7.25.7"
- dependencies:
- "@babel/helper-create-regexp-features-plugin": "npm:^7.25.7"
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/a4727ee33b95d1f7e33b277b0003e3e91ebb9c3c611512e1ca5f3f0d99efd552a6c42b09e5520ea686ef0389dd8159a77c7c59fb53d0d1a1ff7d385c362da71b
- languageName: node
- linkType: hard
-
-"@babel/plugin-transform-duplicate-keys@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-duplicate-keys@npm:7.25.7"
- dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/b132ce919643f1fa519c8597513fba77155fde2d7689154c73791847efd218ff7ce11694b539ca9dee65538c9e774adf4bd6a6e950800dd648f43d5906a38155
- languageName: node
- linkType: hard
-
-"@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:7.25.7"
- dependencies:
- "@babel/helper-create-regexp-features-plugin": "npm:^7.25.7"
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- peerDependencies:
- "@babel/core": ^7.0.0
- checksum: 10/688ab66ed249a08d4b2e3ae8a2c10678fbe23f6466d5020d4cc3e031946dc335c028f5a1bee3221acb3875a1e901b0237020463157690fabc06edc4bdd6c6c88
- languageName: node
- linkType: hard
-
-"@babel/plugin-transform-dynamic-import@npm:^7.25.8":
- version: 7.25.8
- resolution: "@babel/plugin-transform-dynamic-import@npm:7.25.8"
- dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/cf2c105143461876f418d21893ac8f7f2b0a3c3cefb4374c3cd6338a19d3a0deed3565049f7436b94452c6471622958ef9248c7bdfeb34d2917710ac74431203
- languageName: node
- linkType: hard
-
-"@babel/plugin-transform-exponentiation-operator@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.25.7"
- dependencies:
- "@babel/helper-builder-binary-assignment-operator-visitor": "npm:^7.25.7"
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/3371fc79c052a3c63652785284a9f4b943a188ae5aa3e68a760c45afc43739d654ad6d8d24b93ed04fe736f6c0b4a7a11ace56bc954d3a6520d0b3c79e058c03
- languageName: node
- linkType: hard
-
-"@babel/plugin-transform-export-namespace-from@npm:^7.25.8":
- version: 7.25.8
- resolution: "@babel/plugin-transform-export-namespace-from@npm:7.25.8"
- dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/439aac4ca1c7dbb63f021142e7abcd746049bf0d44cc5d2eb469ae3b75d90e076a43ff77190b74d8139402b53eea625b08c68651d3ce1d0a0915f5643450b3de
- languageName: node
- linkType: hard
-
-"@babel/plugin-transform-flow-strip-types@npm:^7.16.0":
- version: 7.25.7
- resolution: "@babel/plugin-transform-flow-strip-types@npm:7.25.7"
- dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- "@babel/plugin-syntax-flow": "npm:^7.25.7"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/af709749aa23deb6aaf8a34818a7de240f80e1877927b55afc566758e64cdf46738385b4f39ad94c9198ae1215f011a76ad3a779ac4a48092d349f53ef942ce0
- languageName: node
- linkType: hard
-
-"@babel/plugin-transform-for-of@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-for-of@npm:7.25.7"
- dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.7"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/6fdfc1747283f50ada9f08d4f801d2156658f183db731369ac2b17f5f885661114906b3645c6a38bb6a5e24b771e6bd43c0ea47580c4fcb9347cd1d179e57435
- languageName: node
- linkType: hard
-
-"@babel/plugin-transform-function-name@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-function-name@npm:7.25.7"
- dependencies:
- "@babel/helper-compilation-targets": "npm:^7.25.7"
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- "@babel/traverse": "npm:^7.25.7"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/465d54942c03f77da3be5fb56404c6f8162f0e99034b8aceab6af2d386a77ecaf3df0c5f2dd67a00b66cd8ad970c0a08151026ed14aa44673a33f495e6849cc7
- languageName: node
- linkType: hard
-
-"@babel/plugin-transform-json-strings@npm:^7.25.8":
- version: 7.25.8
- resolution: "@babel/plugin-transform-json-strings@npm:7.25.8"
- dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/adbc6a5a77b96db0f7e168c5fd2e56941df649808ce960f12447c1ba5d3893e9d458e7e14e3a5bd725ac5f3432ac1b3cf62b7413bbf7168a7c656dce51db711a
- languageName: node
- linkType: hard
-
-"@babel/plugin-transform-literals@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-literals@npm:7.25.7"
- dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/435d9709204e4cae46f9e75973a1424b98bb71516d9cfb0619260cfb56d445b43fa34aa49dacb0e1fbc2a19fdd9373f4b4db4908007be8f9e9e3f0ccf6c73e71
- languageName: node
- linkType: hard
-
-"@babel/plugin-transform-logical-assignment-operators@npm:^7.25.8":
- version: 7.25.8
- resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.25.8"
- dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/7af0e4ad63c1a59f24894b64330040966204963b75287752a2d56703c7924d3a883a3c2497e1f03c4b1792f8664e0650cf6687010dc5483444c077de1daae9f5
- languageName: node
- linkType: hard
-
-"@babel/plugin-transform-member-expression-literals@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-member-expression-literals@npm:7.25.7"
- dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/fb2b985cfa0436bfbed6fbcdd430573272518cf3454c9b0de374cfb80ac6fe60b2ebbe0818a83035e436a9ff08b159bb87527dfd712560c52a0ebfabe6f65121
- languageName: node
- linkType: hard
-
-"@babel/plugin-transform-modules-amd@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-modules-amd@npm:7.25.7"
- dependencies:
- "@babel/helper-module-transforms": "npm:^7.25.7"
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/0d061c91130433fccc723b4eb1359ced515a5dd7196c3ec75f2b2c24613154365ec1c89fe89bee648c1dc28a54c9625dd2b21b6196659a9f2b8ebff0b2352f6c
- languageName: node
- linkType: hard
-
-"@babel/plugin-transform-modules-commonjs@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-modules-commonjs@npm:7.25.7"
- dependencies:
- "@babel/helper-module-transforms": "npm:^7.25.7"
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- "@babel/helper-simple-access": "npm:^7.25.7"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/4b3d038b55bfe5553e9eea360cc1b3dd689068256a9bce1939061ab1dfa194fea0b7b54f10c53b0af0be44508fd0037022c32709a6d96ac1277fb9c7de0f510c
- languageName: node
- linkType: hard
-
-"@babel/plugin-transform-modules-systemjs@npm:^7.25.7":
- version: 7.29.4
- resolution: "@babel/plugin-transform-modules-systemjs@npm:7.29.4"
- dependencies:
- "@babel/helper-module-transforms": "npm:^7.28.6"
- "@babel/helper-plugin-utils": "npm:^7.28.6"
- "@babel/helper-validator-identifier": "npm:^7.28.5"
- "@babel/traverse": "npm:^7.29.0"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/79269e6ec8ec831bb63bf1c7cc1a980e28da785e92b36d42612f0139e4044499b99aa109fca849e1a156c092aabf6c24d145f4cabf2ac9ea84ef468852fe4c03
- languageName: node
- linkType: hard
-
-"@babel/plugin-transform-modules-umd@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-modules-umd@npm:7.25.7"
- dependencies:
- "@babel/helper-module-transforms": "npm:^7.25.7"
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/06d6e95a9948aa91b218ada2940b8f568f78991265f2923f6e69c29e97ef1731c1b79adaf72a072a834a86f98fc0bd0117dfb14a37aaea6337fb4468f757471a
- languageName: node
- linkType: hard
-
-"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.25.7"
- dependencies:
- "@babel/helper-create-regexp-features-plugin": "npm:^7.25.7"
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- peerDependencies:
- "@babel/core": ^7.0.0
- checksum: 10/4c8340cacb1d21794777abb68db2ea434a89274e9ca539e6f564488f5e8a7f517fdf0f9dc754a14cdb8702a3a488ba2bf0fad404a7da3ba4481f620fa6f234c9
- languageName: node
- linkType: hard
-
-"@babel/plugin-transform-new-target@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-new-target@npm:7.25.7"
- dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/c410edc9d8800590e34e648851a633534c3d153d0a76a34cc12854a4ecd578ce1b1c121e42e8c8f654757fcba13849a39fccde0d619de9ee3567a8f9fa2c8fc0
- languageName: node
- linkType: hard
-
-"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.25.8":
- version: 7.25.8
- resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.25.8"
- dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/d742fedc1abf404d7f40065cdff9afc521236607f0d06c48d1e471f43d3a7471010d1651ba4758d80c73347a39dc278d86c43a9c814382ded4e9c7c519ace021
- languageName: node
- linkType: hard
-
-"@babel/plugin-transform-numeric-separator@npm:^7.25.8":
- version: 7.25.8
- resolution: "@babel/plugin-transform-numeric-separator@npm:7.25.8"
- dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/e27779a309dbc5fdba71d7eae0eac5506547632b0cbf8f0add8215797bbda4f4e61595750236fee3292600cc2d13892f133beccc52b2998534e0b10c668db857
- languageName: node
- linkType: hard
-
-"@babel/plugin-transform-object-rest-spread@npm:^7.25.8":
- version: 7.25.8
- resolution: "@babel/plugin-transform-object-rest-spread@npm:7.25.8"
- dependencies:
- "@babel/helper-compilation-targets": "npm:^7.25.7"
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- "@babel/plugin-transform-parameters": "npm:^7.25.7"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/38f0fab8321a0b1e44784b7371f8bd5601eb885a7e9d88d7904dedda33a72f500d84792758c47e1541336c1b7592b6d956a85c2fd8e2e294f34c0303cc73442c
- languageName: node
- linkType: hard
-
-"@babel/plugin-transform-object-super@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-object-super@npm:7.25.7"
- dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- "@babel/helper-replace-supers": "npm:^7.25.7"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/c033337d27f98a255509c3ac152a54ce25d707b7969a64ba5262c7ddb54ba962da081fe756ce922caa57d782cacc6705e3d8e74364938391170f043eb9c5905e
- languageName: node
- linkType: hard
-
-"@babel/plugin-transform-optional-catch-binding@npm:^7.25.8":
- version: 7.25.8
- resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.25.8"
- dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/9ecf32accc5b12b83ce2f6537c9eac87f2b0f89abfe91a8a8c87ea5ece05820988415271d0fdaf7f565e2c0c837afb24fc644779029b98b1401782d9c0d73642
- languageName: node
- linkType: hard
-
-"@babel/plugin-transform-optional-chaining@npm:^7.25.7, @babel/plugin-transform-optional-chaining@npm:^7.25.8":
- version: 7.25.8
- resolution: "@babel/plugin-transform-optional-chaining@npm:7.25.8"
- dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.7"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/ffb5d81e6dbb28907d5346c8e12a1ed1ea0e30170fbe609d48d0466cdbc9d11b5774c8781682693f7cf7bd39da6111980e54813af96c6b3086dc769369c67d28
- languageName: node
- linkType: hard
-
-"@babel/plugin-transform-parameters@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-parameters@npm:7.25.7"
- dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/c6a77fece85b3fd7323ec4ecc62329932b92c2c1ec20f1cc7617d3e49cc175f143988e756f5ccc45deca0fe582040afa67eeefd1704a8188cf2dc437efcfaf53
- languageName: node
- linkType: hard
-
-"@babel/plugin-transform-private-methods@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-private-methods@npm:7.25.7"
- dependencies:
- "@babel/helper-create-class-features-plugin": "npm:^7.25.7"
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/79506a74334dc77f6c53f44109f0a3fcf6c50410faa5dd5e5d17ac4b73194098de509f5515a7aed3724a4bfa5dd246517e22a1dff4c20fc052df7a189bf2160d
- languageName: node
- linkType: hard
-
-"@babel/plugin-transform-private-property-in-object@npm:^7.25.8":
- version: 7.25.8
- resolution: "@babel/plugin-transform-private-property-in-object@npm:7.25.8"
- dependencies:
- "@babel/helper-annotate-as-pure": "npm:^7.25.7"
- "@babel/helper-create-class-features-plugin": "npm:^7.25.7"
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/c612023879930c951e3a993104bbc3b78169aef6c38233758ee3358a7ab76954b41880bca67635df218dc6893aabad138f3783d508dc715419e62c8d1fad9088
- languageName: node
- linkType: hard
-
-"@babel/plugin-transform-property-literals@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-property-literals@npm:7.25.7"
- dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/f8be4090e9ffa9eebaca5eab4534de16acc5c84a476649cfed532de564817fc982a47d9349e6e447c510786897625153f60740fe9128b40d3a1eae3bbb5e1438
- languageName: node
- linkType: hard
-
-"@babel/plugin-transform-react-display-name@npm:^7.16.0, @babel/plugin-transform-react-display-name@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-react-display-name@npm:7.25.7"
- dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/2785dda2f1b5379692f9095bffbd412dd1c49f41096d111c2fba1fba7202f4eed558c675df1bbfdcd44590013f8d2b7e6fc84443866e8a5c9bd51cf95f79cbdb
- languageName: node
- linkType: hard
-
-"@babel/plugin-transform-react-jsx-development@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-react-jsx-development@npm:7.25.7"
- dependencies:
- "@babel/plugin-transform-react-jsx": "npm:^7.25.7"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/6e6e8f9f9fc5393b932fb646188d6df9f270b37ab31560a5f3622b373ccb9fbf3d1976b3fb1b899541d25c1fa504d315fb4f8473d53bd57ad614e523f1ecf2c1
- languageName: node
- linkType: hard
-
-"@babel/plugin-transform-react-jsx@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-react-jsx@npm:7.25.7"
- dependencies:
- "@babel/helper-annotate-as-pure": "npm:^7.25.7"
- "@babel/helper-module-imports": "npm:^7.25.7"
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- "@babel/plugin-syntax-jsx": "npm:^7.25.7"
- "@babel/types": "npm:^7.25.7"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/9f87990b39c68dc6441b55bf9b530c89e8cfc7a610e250dfd8002d94a6b806a585fe7cc9318540e4e635eb819fdaf15a42fd5e8a2ec3f8949bd7a5c759b558d3
- languageName: node
- linkType: hard
-
-"@babel/plugin-transform-react-pure-annotations@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-react-pure-annotations@npm:7.25.7"
- dependencies:
- "@babel/helper-annotate-as-pure": "npm:^7.25.7"
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/a0bb666ef2c0209d5c7f637b17587f7a6782dbb135475f836bfe59b2f9eb193821653d6291866fc643b8ca0cef56989a9648c6127727d630808fc6de6fa180ca
- languageName: node
- linkType: hard
-
-"@babel/plugin-transform-regenerator@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-regenerator@npm:7.25.7"
- dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- regenerator-transform: "npm:^0.15.2"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/7a68e841b12b5f767d98ee650aa914ea246d99cc84de054bdb331185894c0fa554ec4296f32d65385e3012dcf083a098e06c14e518056d7e8a0804227a12d85d
- languageName: node
- linkType: hard
-
-"@babel/plugin-transform-reserved-words@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-reserved-words@npm:7.25.7"
- dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/484edb3f4aa52f49914bea5f832fe380d159fff44e007ac9063666cf773bc258ef5b741f5a323167087bfd6a6dd5c2f96556d1ce5b3765bdf3a54fc018f3670d
- languageName: node
- linkType: hard
-
-"@babel/plugin-transform-runtime@npm:^7.16.4":
- version: 7.25.7
- resolution: "@babel/plugin-transform-runtime@npm:7.25.7"
- dependencies:
- "@babel/helper-module-imports": "npm:^7.25.7"
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- babel-plugin-polyfill-corejs2: "npm:^0.4.10"
- babel-plugin-polyfill-corejs3: "npm:^0.10.6"
- babel-plugin-polyfill-regenerator: "npm:^0.6.1"
- semver: "npm:^6.3.1"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/45a829b6748758f311e483ead6e874a8cc885a4cdb258582fd01221d055649f3ccf08e0eee8d2d6611c05affdde3bbda354c08ad0a6b6258c2d45d87399b7660
- languageName: node
- linkType: hard
-
-"@babel/plugin-transform-shorthand-properties@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-shorthand-properties@npm:7.25.7"
- dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/71c9c1d77887ffa452b2d7c9026ee8e40596e4b4208b077369a997e4e031b474ab08c2991b882a9883b78d7cd6d0d2a2b73345b17e195577b28538360b36f914
- languageName: node
- linkType: hard
-
-"@babel/plugin-transform-spread@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-spread@npm:7.25.7"
- dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.7"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/5dd9e269241fccfdb8c9ac9cb21c53fa776113c3cee0ea92bb029940c6231b3bc7c0c70e13e5df220b80cfafe8683264cadff5b182bed9fd1b1317557f1a6c2d
+ checksum: 10/e53203e87ae24a45f59639edea0c429bc3c63c6d74f1862fe60a35032d89478e7511d2f34855da0fcb65782668d72e59e93d1de5bc00121ba9bc1aa38f1f0ad3
languageName: node
linkType: hard
-"@babel/plugin-transform-sticky-regex@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-sticky-regex@npm:7.25.7"
+"@babel/helper-module-imports@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/helper-module-imports@npm:7.29.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/9f918281fdf2661a095d53ce8b981acaec0fef2a133af4a4fb66132c7a8ad509c49f444ee140bfa5821db24f987d278b3886d3f04e6ba94a6a55c7b2ed024443
+ "@babel/traverse": "npm:^7.29.7"
+ "@babel/types": "npm:^7.29.7"
+ checksum: 10/28ec6f7efd99588d6eebfb25c9f1ccc34cb0cdb0839c4c0f08b3ec0105ccaefbe7e8b4f651f3f55a4f5c4fcb1d979bd32a9b8ee23e3e62163ea22aaa7ee0dfa1
languageName: node
linkType: hard
-"@babel/plugin-transform-template-literals@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-template-literals@npm:7.25.7"
+"@babel/helper-module-transforms@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/helper-module-transforms@npm:7.29.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
+ "@babel/helper-module-imports": "npm:^7.29.7"
+ "@babel/helper-validator-identifier": "npm:^7.29.7"
+ "@babel/traverse": "npm:^7.29.7"
peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/bdb541c31d4890a0aea4cf73a897975b69372cc524302ee9b375424d1706c38d1344b891c14ad2cbc3926e9553ffc2596772e8dab5982e09a9da0d959e4a1e92
+ "@babel/core": ^7.0.0
+ checksum: 10/33251b1fb44d726194a974a0078b1269511d130a2609357ff829b479e9e4dca96ecd5384c534a477095f665ffb01503d3e680699c2002e5b62e6ca1a272f1892
languageName: node
linkType: hard
-"@babel/plugin-transform-typeof-symbol@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-typeof-symbol@npm:7.25.7"
- dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/1145d65dbf720837b0a1bdcdb2b8b0a761587f3602703ba42209e06b6b8d81801a2041671a881ed0cff6866acec4f7c17031f8540017f2d53913584e152453db
+"@babel/helper-string-parser@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/helper-string-parser@npm:7.29.7"
+ checksum: 10/4d8ef0ef7105f3d9fe4361137c8f42e5b4c7a52b5380b962762f2a528a1ba89064e2c6236090716ce34b63707b886ae0ebf36b2c2fcc2851f27e652febfc3648
languageName: node
linkType: hard
-"@babel/plugin-transform-typescript@npm:^7.25.7":
+"@babel/helper-validator-identifier@npm:^7.25.7":
version: 7.25.7
- resolution: "@babel/plugin-transform-typescript@npm:7.25.7"
- dependencies:
- "@babel/helper-annotate-as-pure": "npm:^7.25.7"
- "@babel/helper-create-class-features-plugin": "npm:^7.25.7"
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.7"
- "@babel/plugin-syntax-typescript": "npm:^7.25.7"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/2648da981cd71c2100a4ea496684f2c0b939fc77eb4bb9cc8f113d433eab17d4930d2e5ed8d280606bcedef58df99002a64dc92579c6cc7f6c6ee71ceaa77418
+ resolution: "@babel/helper-validator-identifier@npm:7.25.7"
+ checksum: 10/ec6934cc47fc35baaeb968414a372b064f14f7b130cf6489a014c9486b0fd2549b3c6c682cc1fc35080075e8e38d96aeb40342d63d09fc1a62510c8ce25cde1e
languageName: node
linkType: hard
-"@babel/plugin-transform-unicode-escapes@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-unicode-escapes@npm:7.25.7"
- dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/3c8d5b36738690c2d0b843fcc213a18766e617d16b6cfd92f13be2eba025228b6a796fd8e5b6e209daffa1b453c52544bf62e40b917a32c7446184fef52c98fc
+"@babel/helper-validator-identifier@npm:^7.25.9":
+ version: 7.25.9
+ resolution: "@babel/helper-validator-identifier@npm:7.25.9"
+ checksum: 10/3f9b649be0c2fd457fa1957b694b4e69532a668866b8a0d81eabfa34ba16dbf3107b39e0e7144c55c3c652bf773ec816af8df4a61273a2bb4eb3145ca9cf478e
languageName: node
linkType: hard
-"@babel/plugin-transform-unicode-property-regex@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-unicode-property-regex@npm:7.25.7"
- dependencies:
- "@babel/helper-create-regexp-features-plugin": "npm:^7.25.7"
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/cccdddc6837f5e82f0aca59fd77dbab5efd5024dcd6d358efc74faccb4892f69e943f7750f613fcc241f33973fe8622a7e96909305697e7e5868f8e9954cb84e
+"@babel/helper-validator-identifier@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/helper-validator-identifier@npm:7.29.7"
+ checksum: 10/2efa42701eb05babf26dff3332109c9e5e1a3400a71fb9e68ee27af28235036a2a72c2494c04bdab3f909075f42a58b2e8271074372bc7f8e79ec02bd364d7a7
languageName: node
linkType: hard
-"@babel/plugin-transform-unicode-regex@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-unicode-regex@npm:7.25.7"
- dependencies:
- "@babel/helper-create-regexp-features-plugin": "npm:^7.25.7"
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/1a5a068d39741febd9b8cfce7bf4abf79b282a13c29d39ef7685bffdeb65e5d595e23d9630fedd34428a144d96701efed5a48ea1db0c250c4daf53f44da52983
+"@babel/helper-validator-option@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/helper-validator-option@npm:7.29.7"
+ checksum: 10/aeb6aa966f59300d3cc2fea7c68e1dfd7ad011fc10e535c8e2b2de3094b27c859428dc7220f16420350f8b1cde99da120b673be04bcb0c2f37b56258c96bed58
languageName: node
linkType: hard
-"@babel/plugin-transform-unicode-sets-regex@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/plugin-transform-unicode-sets-regex@npm:7.25.7"
+"@babel/helpers@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/helpers@npm:7.29.7"
dependencies:
- "@babel/helper-create-regexp-features-plugin": "npm:^7.25.7"
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- peerDependencies:
- "@babel/core": ^7.0.0
- checksum: 10/c06dd8e66704fc60a97ce2555fa9f6cdfa98bb935a811b15e811cf3a8b5723e508e92b24077163ad704ddce56115062b8cf2f5490d1ad7d23f863d93a8125f89
- languageName: node
- linkType: hard
-
-"@babel/preset-env@npm:^7.16.4":
- version: 7.25.8
- resolution: "@babel/preset-env@npm:7.25.8"
- dependencies:
- "@babel/compat-data": "npm:^7.25.8"
- "@babel/helper-compilation-targets": "npm:^7.25.7"
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- "@babel/helper-validator-option": "npm:^7.25.7"
- "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "npm:^7.25.7"
- "@babel/plugin-bugfix-safari-class-field-initializer-scope": "npm:^7.25.7"
- "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "npm:^7.25.7"
- "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "npm:^7.25.7"
- "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "npm:^7.25.7"
- "@babel/plugin-proposal-private-property-in-object": "npm:7.21.0-placeholder-for-preset-env.2"
- "@babel/plugin-syntax-import-assertions": "npm:^7.25.7"
- "@babel/plugin-syntax-import-attributes": "npm:^7.25.7"
- "@babel/plugin-syntax-unicode-sets-regex": "npm:^7.18.6"
- "@babel/plugin-transform-arrow-functions": "npm:^7.25.7"
- "@babel/plugin-transform-async-generator-functions": "npm:^7.25.8"
- "@babel/plugin-transform-async-to-generator": "npm:^7.25.7"
- "@babel/plugin-transform-block-scoped-functions": "npm:^7.25.7"
- "@babel/plugin-transform-block-scoping": "npm:^7.25.7"
- "@babel/plugin-transform-class-properties": "npm:^7.25.7"
- "@babel/plugin-transform-class-static-block": "npm:^7.25.8"
- "@babel/plugin-transform-classes": "npm:^7.25.7"
- "@babel/plugin-transform-computed-properties": "npm:^7.25.7"
- "@babel/plugin-transform-destructuring": "npm:^7.25.7"
- "@babel/plugin-transform-dotall-regex": "npm:^7.25.7"
- "@babel/plugin-transform-duplicate-keys": "npm:^7.25.7"
- "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "npm:^7.25.7"
- "@babel/plugin-transform-dynamic-import": "npm:^7.25.8"
- "@babel/plugin-transform-exponentiation-operator": "npm:^7.25.7"
- "@babel/plugin-transform-export-namespace-from": "npm:^7.25.8"
- "@babel/plugin-transform-for-of": "npm:^7.25.7"
- "@babel/plugin-transform-function-name": "npm:^7.25.7"
- "@babel/plugin-transform-json-strings": "npm:^7.25.8"
- "@babel/plugin-transform-literals": "npm:^7.25.7"
- "@babel/plugin-transform-logical-assignment-operators": "npm:^7.25.8"
- "@babel/plugin-transform-member-expression-literals": "npm:^7.25.7"
- "@babel/plugin-transform-modules-amd": "npm:^7.25.7"
- "@babel/plugin-transform-modules-commonjs": "npm:^7.25.7"
- "@babel/plugin-transform-modules-systemjs": "npm:^7.25.7"
- "@babel/plugin-transform-modules-umd": "npm:^7.25.7"
- "@babel/plugin-transform-named-capturing-groups-regex": "npm:^7.25.7"
- "@babel/plugin-transform-new-target": "npm:^7.25.7"
- "@babel/plugin-transform-nullish-coalescing-operator": "npm:^7.25.8"
- "@babel/plugin-transform-numeric-separator": "npm:^7.25.8"
- "@babel/plugin-transform-object-rest-spread": "npm:^7.25.8"
- "@babel/plugin-transform-object-super": "npm:^7.25.7"
- "@babel/plugin-transform-optional-catch-binding": "npm:^7.25.8"
- "@babel/plugin-transform-optional-chaining": "npm:^7.25.8"
- "@babel/plugin-transform-parameters": "npm:^7.25.7"
- "@babel/plugin-transform-private-methods": "npm:^7.25.7"
- "@babel/plugin-transform-private-property-in-object": "npm:^7.25.8"
- "@babel/plugin-transform-property-literals": "npm:^7.25.7"
- "@babel/plugin-transform-regenerator": "npm:^7.25.7"
- "@babel/plugin-transform-reserved-words": "npm:^7.25.7"
- "@babel/plugin-transform-shorthand-properties": "npm:^7.25.7"
- "@babel/plugin-transform-spread": "npm:^7.25.7"
- "@babel/plugin-transform-sticky-regex": "npm:^7.25.7"
- "@babel/plugin-transform-template-literals": "npm:^7.25.7"
- "@babel/plugin-transform-typeof-symbol": "npm:^7.25.7"
- "@babel/plugin-transform-unicode-escapes": "npm:^7.25.7"
- "@babel/plugin-transform-unicode-property-regex": "npm:^7.25.7"
- "@babel/plugin-transform-unicode-regex": "npm:^7.25.7"
- "@babel/plugin-transform-unicode-sets-regex": "npm:^7.25.7"
- "@babel/preset-modules": "npm:0.1.6-no-external-plugins"
- babel-plugin-polyfill-corejs2: "npm:^0.4.10"
- babel-plugin-polyfill-corejs3: "npm:^0.10.6"
- babel-plugin-polyfill-regenerator: "npm:^0.6.1"
- core-js-compat: "npm:^3.38.1"
- semver: "npm:^6.3.1"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/501d78f56df8bf6f98a42da5db475db183048c4280b3292cf988b6baf01843915161f3b341ed525e2fcafcc47726798532b0e1dc7eb80aa29cc88c9d6f94ee6e
+ "@babel/template": "npm:^7.29.7"
+ "@babel/types": "npm:^7.29.7"
+ checksum: 10/b4d1ef12c19e896585c009ba29677839097ff04f8b11a2430d335c3fb6bd667b4f9e96a3b185a083fdde6b1137eabbbf2600c32425cb69cefc81d81d5cfe425d
languageName: node
linkType: hard
-"@babel/preset-modules@npm:0.1.6-no-external-plugins":
- version: 0.1.6-no-external-plugins
- resolution: "@babel/preset-modules@npm:0.1.6-no-external-plugins"
+"@babel/highlight@npm:^7.10.4, @babel/highlight@npm:^7.25.7":
+ version: 7.25.7
+ resolution: "@babel/highlight@npm:7.25.7"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.0.0"
- "@babel/types": "npm:^7.4.4"
- esutils: "npm:^2.0.2"
- peerDependencies:
- "@babel/core": ^7.0.0-0 || ^8.0.0-0 <8.0.0
- checksum: 10/039aba98a697b920d6440c622aaa6104bb6076d65356b29dad4b3e6627ec0354da44f9621bafbeefd052cd4ac4d7f88c9a2ab094efcb50963cb352781d0c6428
+ "@babel/helper-validator-identifier": "npm:^7.25.7"
+ chalk: "npm:^2.4.2"
+ js-tokens: "npm:^4.0.0"
+ picocolors: "npm:^1.0.0"
+ checksum: 10/823be2523d246dbf80aab3cc81c2a36c6111b16ac2949ef06789da54387824c2bfaa88c6627cdeb4ba7151d047a5d6765e49ebd0b478aba09759250111e65e08
languageName: node
linkType: hard
-"@babel/preset-react@npm:^7.16.0":
- version: 7.25.7
- resolution: "@babel/preset-react@npm:7.25.7"
- dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- "@babel/helper-validator-option": "npm:^7.25.7"
- "@babel/plugin-transform-react-display-name": "npm:^7.25.7"
- "@babel/plugin-transform-react-jsx": "npm:^7.25.7"
- "@babel/plugin-transform-react-jsx-development": "npm:^7.25.7"
- "@babel/plugin-transform-react-pure-annotations": "npm:^7.25.7"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/4701a76b45f33b72efc93540e09204ac84eb2b8054de9570d041b6f952477efca2a6c7c916389a1aea4d408c38ebbc997148d693d9aa72d1b4df9a3b4b557c7c
+"@babel/parser@npm:^7.29.7":
+ version: 7.29.7
+ resolution: "@babel/parser@npm:7.29.7"
+ dependencies:
+ "@babel/types": "npm:^7.29.7"
+ bin:
+ parser: ./bin/babel-parser.js
+ checksum: 10/da40c5928c95997b01aabe84fc3440881b8f20b866714fefa142961d37e82ffc03fbb9afed706f15f8a688278f95286ca0cea0d87ad6c77600f8c6c45d9824ee
languageName: node
linkType: hard
-"@babel/preset-typescript@npm:^7.16.0":
- version: 7.25.7
- resolution: "@babel/preset-typescript@npm:7.25.7"
+"@babel/parser@npm:^7.29.8, @babel/parser@npm:^7.7.0":
+ version: 7.29.8
+ resolution: "@babel/parser@npm:7.29.8"
dependencies:
- "@babel/helper-plugin-utils": "npm:^7.25.7"
- "@babel/helper-validator-option": "npm:^7.25.7"
- "@babel/plugin-syntax-jsx": "npm:^7.25.7"
- "@babel/plugin-transform-modules-commonjs": "npm:^7.25.7"
- "@babel/plugin-transform-typescript": "npm:^7.25.7"
- peerDependencies:
- "@babel/core": ^7.0.0-0
- checksum: 10/cf6501971f696800096f3b3aef4f7e2c774210b4204bb3a076b2f253970d6649c28003de3afc620b7c7ad67fb346083819c89bae2c644f59995ddb64d6003541
+ "@babel/types": "npm:^7.29.8"
+ bin:
+ parser: ./bin/babel-parser.js
+ checksum: 10/dbd14ebbba0fa3019acd2712b0db3ffd594d0850d4fc487667287b5702893f54a7911570ea842f0cff4dc492a2412e3287dfabfe00c6b78efa7becb1255f3f86
languageName: node
linkType: hard
-"@babel/runtime@npm:^7.12.1, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.16.3, @babel/runtime@npm:^7.17.8, @babel/runtime@npm:^7.20.6, @babel/runtime@npm:^7.24.1, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.9.2":
+"@babel/runtime@npm:^7.12.1, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.17.8, @babel/runtime@npm:^7.20.6, @babel/runtime@npm:^7.24.1, @babel/runtime@npm:^7.9.2":
version: 7.25.7
resolution: "@babel/runtime@npm:7.25.7"
dependencies:
@@ -1831,28 +429,6 @@ __metadata:
languageName: node
linkType: hard
-"@babel/template@npm:^7.25.7":
- version: 7.25.7
- resolution: "@babel/template@npm:7.25.7"
- dependencies:
- "@babel/code-frame": "npm:^7.25.7"
- "@babel/parser": "npm:^7.25.7"
- "@babel/types": "npm:^7.25.7"
- checksum: 10/49e1e88d2eac17d31ae28d6cf13d6d29c1f49384c4f056a6751c065d6565c351e62c01ce6b11fef5edb5f3a77c87e114ea7326ca384fa618b4834e10cf9b20f3
- languageName: node
- linkType: hard
-
-"@babel/template@npm:^7.28.6":
- version: 7.28.6
- resolution: "@babel/template@npm:7.28.6"
- dependencies:
- "@babel/code-frame": "npm:^7.28.6"
- "@babel/parser": "npm:^7.28.6"
- "@babel/types": "npm:^7.28.6"
- checksum: 10/0ad6e32bf1e7e31bf6b52c20d15391f541ddd645cbd488a77fe537a15b280ee91acd3a777062c52e03eedbc2e1f41548791f6a3697c02476ec5daf49faa38533
- languageName: node
- linkType: hard
-
"@babel/template@npm:^7.29.7":
version: 7.29.7
resolution: "@babel/template@npm:7.29.7"
@@ -1864,36 +440,6 @@ __metadata:
languageName: node
linkType: hard
-"@babel/traverse@npm:^7.25.7, @babel/traverse@npm:^7.7.0":
- version: 7.25.7
- resolution: "@babel/traverse@npm:7.25.7"
- dependencies:
- "@babel/code-frame": "npm:^7.25.7"
- "@babel/generator": "npm:^7.25.7"
- "@babel/parser": "npm:^7.25.7"
- "@babel/template": "npm:^7.25.7"
- "@babel/types": "npm:^7.25.7"
- debug: "npm:^4.3.1"
- globals: "npm:^11.1.0"
- checksum: 10/5b2d332fcd6bc78e6500c997e79f7e2a54dfb357e06f0908cb7f0cdd9bb54e7fd3c5673f45993849d433d01ea6076a6d04b825958f0cfa01288ad55ffa5c286f
- languageName: node
- linkType: hard
-
-"@babel/traverse@npm:^7.28.6, @babel/traverse@npm:^7.29.0":
- version: 7.29.0
- resolution: "@babel/traverse@npm:7.29.0"
- dependencies:
- "@babel/code-frame": "npm:^7.29.0"
- "@babel/generator": "npm:^7.29.0"
- "@babel/helper-globals": "npm:^7.28.0"
- "@babel/parser": "npm:^7.29.0"
- "@babel/template": "npm:^7.28.6"
- "@babel/types": "npm:^7.29.0"
- debug: "npm:^4.3.1"
- checksum: 10/3a0d0438f1ba9fed4fbe1706ea598a865f9af655a16ca9517ab57bda526e224569ca1b980b473fb68feea5e08deafbbf2cf9febb941f92f2d2533310c3fc4abc
- languageName: node
- linkType: hard
-
"@babel/traverse@npm:^7.29.7":
version: 7.29.7
resolution: "@babel/traverse@npm:7.29.7"
@@ -1909,6 +455,21 @@ __metadata:
languageName: node
linkType: hard
+"@babel/traverse@npm:^7.7.0":
+ version: 7.29.8
+ resolution: "@babel/traverse@npm:7.29.8"
+ dependencies:
+ "@babel/code-frame": "npm:^7.29.7"
+ "@babel/generator": "npm:^7.29.8"
+ "@babel/helper-globals": "npm:^7.29.7"
+ "@babel/parser": "npm:^7.29.8"
+ "@babel/template": "npm:^7.29.7"
+ "@babel/types": "npm:^7.29.8"
+ debug: "npm:^4.3.1"
+ checksum: 10/91f0b4799d27b50ffd5c2ab4ba537065221196858e0899275d8474489c57dd0b53150508b2c0d9b308520e5985bde63049a401d32aa1ac4f1e10e466e2a3f447
+ languageName: node
+ linkType: hard
+
"@babel/types@npm:^7.21.3, @babel/types@npm:^7.29.7":
version: 7.29.7
resolution: "@babel/types@npm:7.29.7"
@@ -1919,24 +480,13 @@ __metadata:
languageName: node
linkType: hard
-"@babel/types@npm:^7.25.7, @babel/types@npm:^7.25.8, @babel/types@npm:^7.4.4, @babel/types@npm:^7.7.0":
- version: 7.25.8
- resolution: "@babel/types@npm:7.25.8"
- dependencies:
- "@babel/helper-string-parser": "npm:^7.25.7"
- "@babel/helper-validator-identifier": "npm:^7.25.7"
- to-fast-properties: "npm:^2.0.0"
- checksum: 10/973108dbb189916bb87360f2beff43ae97f1b08f1c071bc6499d363cce48b3c71674bf3b59dfd617f8c5062d1c76dc2a64232bc07b6ccef831fd0c06162d44d9
- languageName: node
- linkType: hard
-
-"@babel/types@npm:^7.28.6, @babel/types@npm:^7.29.0":
- version: 7.29.0
- resolution: "@babel/types@npm:7.29.0"
+"@babel/types@npm:^7.29.8, @babel/types@npm:^7.7.0":
+ version: 7.29.8
+ resolution: "@babel/types@npm:7.29.8"
dependencies:
- "@babel/helper-string-parser": "npm:^7.27.1"
- "@babel/helper-validator-identifier": "npm:^7.28.5"
- checksum: 10/bfc2b211210f3894dcd7e6a33b2d1c32c93495dc1e36b547376aa33441abe551ab4bc1640d4154ee2acd8e46d3bbc925c7224caae02fcaf0e6a771e97fccc661
+ "@babel/helper-string-parser": "npm:^7.29.7"
+ "@babel/helper-validator-identifier": "npm:^7.29.7"
+ checksum: 10/ff2becf0f8b432f0820f286fb9319d7f3819b2d0eb95bc26957fbc6250a3ca0ae3656feb98ecb5f171f9e04b34a4c08f5036447f17459ed7bfc32ff649d9b71e
languageName: node
linkType: hard
@@ -2917,7 +1467,7 @@ __metadata:
languageName: node
linkType: hard
-"@jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25":
+"@jridgewell/trace-mapping@npm:^0.3.24":
version: 0.3.25
resolution: "@jridgewell/trace-mapping@npm:0.3.25"
dependencies:
@@ -3989,7 +2539,6 @@ __metadata:
version: 0.0.0-use.local
resolution: "@raspberrypifoundation/editor-ui@workspace:."
dependencies:
- "@babel/core": "npm:^7.17.10"
"@codemirror/commands": "npm:^6.1.1"
"@codemirror/lang-css": "npm:^6.0.0"
"@codemirror/lang-html": "npm:^6.1.2"
@@ -4019,7 +2568,6 @@ __metadata:
assert: "npm:^2.1.0"
axios: "npm:^1.15.2"
babel-eslint: "npm:^10.1.0"
- babel-preset-react-app: "npm:^10.0.1"
browserslist: "npm:^4.28.6"
browserslist-to-esbuild: "npm:^2.1.1"
camelcase: "npm:^6.1.0"
@@ -6421,84 +4969,6 @@ __metadata:
languageName: node
linkType: hard
-"babel-plugin-macros@npm:^3.1.0":
- version: 3.1.0
- resolution: "babel-plugin-macros@npm:3.1.0"
- dependencies:
- "@babel/runtime": "npm:^7.12.5"
- cosmiconfig: "npm:^7.0.0"
- resolve: "npm:^1.19.0"
- checksum: 10/30be6ca45e9a124c58ca00af9a0753e5410ec0b79a737714fc4722bbbeb693e55d9258f05c437145ef4a867c2d1603e06a1c292d66c243ce1227458c8ea2ca8c
- languageName: node
- linkType: hard
-
-"babel-plugin-polyfill-corejs2@npm:^0.4.10":
- version: 0.4.11
- resolution: "babel-plugin-polyfill-corejs2@npm:0.4.11"
- dependencies:
- "@babel/compat-data": "npm:^7.22.6"
- "@babel/helper-define-polyfill-provider": "npm:^0.6.2"
- semver: "npm:^6.3.1"
- peerDependencies:
- "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0
- checksum: 10/9c79908bed61b9f52190f254e22d3dca6ce25769738642579ba8d23832f3f9414567a90d8367a31831fa45d9b9607ac43d8d07ed31167d8ca8cda22871f4c7a1
- languageName: node
- linkType: hard
-
-"babel-plugin-polyfill-corejs3@npm:^0.10.6":
- version: 0.10.6
- resolution: "babel-plugin-polyfill-corejs3@npm:0.10.6"
- dependencies:
- "@babel/helper-define-polyfill-provider": "npm:^0.6.2"
- core-js-compat: "npm:^3.38.0"
- peerDependencies:
- "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0
- checksum: 10/360ac9054a57a18c540059dc627ad5d84d15f79790cb3d84d19a02eec7188c67d08a07db789c3822d6f5df22d918e296d1f27c4055fec2e287d328f09ea8a78a
- languageName: node
- linkType: hard
-
-"babel-plugin-polyfill-regenerator@npm:^0.6.1":
- version: 0.6.2
- resolution: "babel-plugin-polyfill-regenerator@npm:0.6.2"
- dependencies:
- "@babel/helper-define-polyfill-provider": "npm:^0.6.2"
- peerDependencies:
- "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0
- checksum: 10/150233571072b6b3dfe946242da39cba8587b7f908d1c006f7545fc88b0e3c3018d445739beb61e7a75835f0c2751dbe884a94ff9b245ec42369d9267e0e1b3f
- languageName: node
- linkType: hard
-
-"babel-plugin-transform-react-remove-prop-types@npm:^0.4.24":
- version: 0.4.24
- resolution: "babel-plugin-transform-react-remove-prop-types@npm:0.4.24"
- checksum: 10/4ce1755af02375f0764683f9703ef47607e33ee57cefd348f054208e06a52b1517e43180c1c448046338a149853f2c9d7f63f27d5b27c74db5df74fba117f040
- languageName: node
- linkType: hard
-
-"babel-preset-react-app@npm:^10.0.1":
- version: 10.0.1
- resolution: "babel-preset-react-app@npm:10.0.1"
- dependencies:
- "@babel/core": "npm:^7.16.0"
- "@babel/plugin-proposal-class-properties": "npm:^7.16.0"
- "@babel/plugin-proposal-decorators": "npm:^7.16.4"
- "@babel/plugin-proposal-nullish-coalescing-operator": "npm:^7.16.0"
- "@babel/plugin-proposal-numeric-separator": "npm:^7.16.0"
- "@babel/plugin-proposal-optional-chaining": "npm:^7.16.0"
- "@babel/plugin-proposal-private-methods": "npm:^7.16.0"
- "@babel/plugin-transform-flow-strip-types": "npm:^7.16.0"
- "@babel/plugin-transform-react-display-name": "npm:^7.16.0"
- "@babel/plugin-transform-runtime": "npm:^7.16.4"
- "@babel/preset-env": "npm:^7.16.4"
- "@babel/preset-react": "npm:^7.16.0"
- "@babel/preset-typescript": "npm:^7.16.0"
- "@babel/runtime": "npm:^7.16.3"
- babel-plugin-macros: "npm:^3.1.0"
- babel-plugin-transform-react-remove-prop-types: "npm:^0.4.24"
- checksum: 10/ce66970267cfa6d6289b7bf070f184b3ece4f66fbdcd098c40573e3e86b42ffde7d16d74eabb0d18dc5960ddd3d943a16fac27c8dbb435f63350d6af1acbb28b
- languageName: node
- linkType: hard
-
"balance-text@npm:3.3.1":
version: 3.3.1
resolution: "balance-text@npm:3.3.1"
@@ -6826,7 +5296,7 @@ __metadata:
languageName: node
linkType: hard
-"browserslist@npm:^4.12.0, browserslist@npm:^4.23.3, browserslist@npm:^4.24.0":
+"browserslist@npm:^4.12.0, browserslist@npm:^4.24.0":
version: 4.24.0
resolution: "browserslist@npm:4.24.0"
dependencies:
@@ -7640,15 +6110,6 @@ __metadata:
languageName: node
linkType: hard
-"core-js-compat@npm:^3.38.0, core-js-compat@npm:^3.38.1":
- version: 3.38.1
- resolution: "core-js-compat@npm:3.38.1"
- dependencies:
- browserslist: "npm:^4.23.3"
- checksum: 10/4e2f219354fd268895f79486461a12df96f24ed307321482fe2a43529c5a64e7c16bcba654980ba217d603444f5141d43a79058aeac77511085f065c5da72207
- languageName: node
- linkType: hard
-
"core-js@npm:2.6.12":
version: 2.6.12
resolution: "core-js@npm:2.6.12"
@@ -10846,13 +9307,6 @@ __metadata:
languageName: node
linkType: hard
-"globals@npm:^11.1.0":
- version: 11.12.0
- resolution: "globals@npm:11.12.0"
- checksum: 10/9f054fa38ff8de8fa356502eb9d2dae0c928217b8b5c8de1f09f5c9b6c8a96d8b9bd3afc49acbcd384a98a81fea713c859e1b09e214c60509517bb8fc2bc13c2
- languageName: node
- linkType: hard
-
"globals@npm:^13.6.0, globals@npm:^13.9.0":
version: 13.24.0
resolution: "globals@npm:13.24.0"
@@ -12611,7 +11065,7 @@ __metadata:
languageName: node
linkType: hard
-"jsesc@npm:^3.0.2, jsesc@npm:~3.0.2":
+"jsesc@npm:^3.0.2":
version: 3.0.2
resolution: "jsesc@npm:3.0.2"
bin:
@@ -13089,7 +11543,7 @@ __metadata:
languageName: node
linkType: hard
-"lodash.debounce@npm:4.0.8, lodash.debounce@npm:^4.0.0, lodash.debounce@npm:^4.0.8":
+"lodash.debounce@npm:4.0.8, lodash.debounce@npm:^4.0.0":
version: 4.0.8
resolution: "lodash.debounce@npm:4.0.8"
checksum: 10/cd0b2819786e6e80cb9f5cda26b1a8fc073daaf04e48d4cb462fa4663ec9adb3a5387aa22d7129e48eed1afa05b482e2a6b79bfc99b86886364449500cbb00fd
@@ -16036,22 +14490,6 @@ __metadata:
languageName: node
linkType: hard
-"regenerate-unicode-properties@npm:^10.2.0":
- version: 10.2.0
- resolution: "regenerate-unicode-properties@npm:10.2.0"
- dependencies:
- regenerate: "npm:^1.4.2"
- checksum: 10/9150eae6fe04a8c4f2ff06077396a86a98e224c8afad8344b1b656448e89e84edcd527e4b03aa5476774129eb6ad328ed684f9c1459794a935ec0cc17ce14329
- languageName: node
- linkType: hard
-
-"regenerate@npm:^1.4.2":
- version: 1.4.2
- resolution: "regenerate@npm:1.4.2"
- checksum: 10/dc6c95ae4b3ba6adbd7687cafac260eee4640318c7a95239d5ce847d9b9263979758389e862fe9c93d633b5792ea4ada5708df75885dc5aa05a309fa18140a87
- languageName: node
- linkType: hard
-
"regenerator-runtime@npm:^0.13.5, regenerator-runtime@npm:^0.13.7":
version: 0.13.11
resolution: "regenerator-runtime@npm:0.13.11"
@@ -16066,15 +14504,6 @@ __metadata:
languageName: node
linkType: hard
-"regenerator-transform@npm:^0.15.2":
- version: 0.15.2
- resolution: "regenerator-transform@npm:0.15.2"
- dependencies:
- "@babel/runtime": "npm:^7.8.4"
- checksum: 10/c4fdcb46d11bbe32605b4b9ed76b21b8d3f241a45153e9dc6f5542fed4c7744fed459f42701f650d5d5956786bf7de57547329d1c05a9df2ed9e367b9d903302
- languageName: node
- linkType: hard
-
"regexp.prototype.flags@npm:^1.5.1, regexp.prototype.flags@npm:^1.5.2":
version: 1.5.3
resolution: "regexp.prototype.flags@npm:1.5.3"
@@ -16094,38 +14523,6 @@ __metadata:
languageName: node
linkType: hard
-"regexpu-core@npm:^6.1.1":
- version: 6.1.1
- resolution: "regexpu-core@npm:6.1.1"
- dependencies:
- regenerate: "npm:^1.4.2"
- regenerate-unicode-properties: "npm:^10.2.0"
- regjsgen: "npm:^0.8.0"
- regjsparser: "npm:^0.11.0"
- unicode-match-property-ecmascript: "npm:^2.0.0"
- unicode-match-property-value-ecmascript: "npm:^2.1.0"
- checksum: 10/6a7ffb42781cacedd7df3c47c72e2d725401a699855be94a37ece5e29d3f25ab3abdd81d73f2d9d32ebc4d41bd25e3c3cc21e5284203faf19e60943adc55252d
- languageName: node
- linkType: hard
-
-"regjsgen@npm:^0.8.0":
- version: 0.8.0
- resolution: "regjsgen@npm:0.8.0"
- checksum: 10/b930f03347e4123c917d7b40436b4f87f625b8dd3e705b447ddd44804e4616c3addb7453f0902d6e914ab0446c30e816e445089bb641a4714237fe8141a0ef9d
- languageName: node
- linkType: hard
-
-"regjsparser@npm:^0.11.0":
- version: 0.11.1
- resolution: "regjsparser@npm:0.11.1"
- dependencies:
- jsesc: "npm:~3.0.2"
- bin:
- regjsparser: bin/parser
- checksum: 10/06295f1666f8e378c3b70eb01578b46e075eee0556865a297497ab40753f04cce526e96513b18e21e66b79c972e7377bd3b5caa86935ed5d736e9b3e0f857363
- languageName: node
- linkType: hard
-
"regl-error2d@npm:^2.0.12":
version: 2.0.12
resolution: "regl-error2d@npm:2.0.12"
@@ -16320,30 +14717,30 @@ __metadata:
languageName: node
linkType: hard
-"resolve@npm:^1.12.0, resolve@npm:^1.14.2, resolve@npm:^1.19.0, resolve@npm:^1.22.4":
- version: 1.22.8
- resolution: "resolve@npm:1.22.8"
+"resolve@npm:^1.12.0, resolve@npm:^1.17.0":
+ version: 1.22.12
+ resolution: "resolve@npm:1.22.12"
dependencies:
- is-core-module: "npm:^2.13.0"
+ es-errors: "npm:^1.3.0"
+ is-core-module: "npm:^2.16.1"
path-parse: "npm:^1.0.7"
supports-preserve-symlinks-flag: "npm:^1.0.0"
bin:
resolve: bin/resolve
- checksum: 10/c473506ee01eb45cbcfefb68652ae5759e092e6b0fb64547feadf9736a6394f258fbc6f88e00c5ca36d5477fbb65388b272432a3600fa223062e54333c156753
+ checksum: 10/1d2a081e4b7198e2a70abd7bbbf8aea5380c2d074b6c870035aab50ebfb7312b6492b3588e752faef83a75147862a3d3e09b222bc9afd536804181fd3a515ef9
languageName: node
linkType: hard
-"resolve@npm:^1.17.0":
- version: 1.22.12
- resolution: "resolve@npm:1.22.12"
+"resolve@npm:^1.22.4":
+ version: 1.22.8
+ resolution: "resolve@npm:1.22.8"
dependencies:
- es-errors: "npm:^1.3.0"
- is-core-module: "npm:^2.16.1"
+ is-core-module: "npm:^2.13.0"
path-parse: "npm:^1.0.7"
supports-preserve-symlinks-flag: "npm:^1.0.0"
bin:
resolve: bin/resolve
- checksum: 10/1d2a081e4b7198e2a70abd7bbbf8aea5380c2d074b6c870035aab50ebfb7312b6492b3588e752faef83a75147862a3d3e09b222bc9afd536804181fd3a515ef9
+ checksum: 10/c473506ee01eb45cbcfefb68652ae5759e092e6b0fb64547feadf9736a6394f258fbc6f88e00c5ca36d5477fbb65388b272432a3600fa223062e54333c156753
languageName: node
linkType: hard
@@ -16393,30 +14790,30 @@ __metadata:
languageName: node
linkType: hard
-"resolve@patch:resolve@npm%3A^1.12.0#optional!builtin, resolve@patch:resolve@npm%3A^1.14.2#optional!builtin, resolve@patch:resolve@npm%3A^1.19.0#optional!builtin, resolve@patch:resolve@npm%3A^1.22.4#optional!builtin":
- version: 1.22.8
- resolution: "resolve@patch:resolve@npm%3A1.22.8#optional!builtin::version=1.22.8&hash=c3c19d"
+"resolve@patch:resolve@npm%3A^1.12.0#optional!builtin, resolve@patch:resolve@npm%3A^1.17.0#optional!builtin":
+ version: 1.22.12
+ resolution: "resolve@patch:resolve@npm%3A1.22.12#optional!builtin::version=1.22.12&hash=c3c19d"
dependencies:
- is-core-module: "npm:^2.13.0"
+ es-errors: "npm:^1.3.0"
+ is-core-module: "npm:^2.16.1"
path-parse: "npm:^1.0.7"
supports-preserve-symlinks-flag: "npm:^1.0.0"
bin:
resolve: bin/resolve
- checksum: 10/f345cd37f56a2c0275e3fe062517c650bb673815d885e7507566df589375d165bbbf4bdb6aa95600a9bc55f4744b81f452b5a63f95b9f10a72787dba3c90890a
+ checksum: 10/f80ad2c2b6820331cbe079198a184ffce322cfeca140065118066276bc08b03d5fa2c1ce652aeb584ec74050d1f656f46f034cc0dd9300452c5ab7866907f8c0
languageName: node
linkType: hard
-"resolve@patch:resolve@npm%3A^1.17.0#optional!builtin":
- version: 1.22.12
- resolution: "resolve@patch:resolve@npm%3A1.22.12#optional!builtin::version=1.22.12&hash=c3c19d"
+"resolve@patch:resolve@npm%3A^1.22.4#optional!builtin":
+ version: 1.22.8
+ resolution: "resolve@patch:resolve@npm%3A1.22.8#optional!builtin::version=1.22.8&hash=c3c19d"
dependencies:
- es-errors: "npm:^1.3.0"
- is-core-module: "npm:^2.16.1"
+ is-core-module: "npm:^2.13.0"
path-parse: "npm:^1.0.7"
supports-preserve-symlinks-flag: "npm:^1.0.0"
bin:
resolve: bin/resolve
- checksum: 10/f80ad2c2b6820331cbe079198a184ffce322cfeca140065118066276bc08b03d5fa2c1ce652aeb584ec74050d1f656f46f034cc0dd9300452c5ab7866907f8c0
+ checksum: 10/f345cd37f56a2c0275e3fe062517c650bb673815d885e7507566df589375d165bbbf4bdb6aa95600a9bc55f4744b81f452b5a63f95b9f10a72787dba3c90890a
languageName: node
linkType: hard
@@ -18297,13 +16694,6 @@ __metadata:
languageName: node
linkType: hard
-"to-fast-properties@npm:^2.0.0":
- version: 2.0.0
- resolution: "to-fast-properties@npm:2.0.0"
- checksum: 10/be2de62fe58ead94e3e592680052683b1ec986c72d589e7b21e5697f8744cdbf48c266fa72f6c15932894c10187b5f54573a3bcf7da0bfd964d5caf23d436168
- languageName: node
- linkType: hard
-
"to-float32@npm:^1.1.0":
version: 1.1.0
resolution: "to-float32@npm:1.1.0"
@@ -18761,37 +17151,6 @@ __metadata:
languageName: node
linkType: hard
-"unicode-canonical-property-names-ecmascript@npm:^2.0.0":
- version: 2.0.1
- resolution: "unicode-canonical-property-names-ecmascript@npm:2.0.1"
- checksum: 10/3c3dabdb1d22aef4904399f9e810d0b71c0b12b3815169d96fac97e56d5642840c6071cf709adcace2252bc6bb80242396c2ec74b37224eb015c5f7aca40bad7
- languageName: node
- linkType: hard
-
-"unicode-match-property-ecmascript@npm:^2.0.0":
- version: 2.0.0
- resolution: "unicode-match-property-ecmascript@npm:2.0.0"
- dependencies:
- unicode-canonical-property-names-ecmascript: "npm:^2.0.0"
- unicode-property-aliases-ecmascript: "npm:^2.0.0"
- checksum: 10/1f34a7434a23df4885b5890ac36c5b2161a809887000be560f56ad4b11126d433c0c1c39baf1016bdabed4ec54829a6190ee37aa24919aa116dc1a5a8a62965a
- languageName: node
- linkType: hard
-
-"unicode-match-property-value-ecmascript@npm:^2.1.0":
- version: 2.2.0
- resolution: "unicode-match-property-value-ecmascript@npm:2.2.0"
- checksum: 10/9fd53c657aefe5d3cb8208931b4c34fbdb30bb5aa9a6c6bf744e2f3036f00b8889eeaf30cb55a873b76b6ee8b5801ea770e1c49b3352141309f58f0ebb3011d8
- languageName: node
- linkType: hard
-
-"unicode-property-aliases-ecmascript@npm:^2.0.0":
- version: 2.1.0
- resolution: "unicode-property-aliases-ecmascript@npm:2.1.0"
- checksum: 10/243524431893649b62cc674d877bd64ef292d6071dd2fd01ab4d5ad26efbc104ffcd064f93f8a06b7e4ec54c172bf03f6417921a0d8c3a9994161fe1f88f815b
- languageName: node
- linkType: hard
-
"unicode-trie@npm:^0.3.0, unicode-trie@npm:^0.3.1":
version: 0.3.1
resolution: "unicode-trie@npm:0.3.1"
From b9ce48dd353cc80e7b9d714f4775cd2ab227d7f1 Mon Sep 17 00:00:00 2001
From: Chris Zetter <253059100+zetter-rpf@users.noreply.github.com>
Date: Mon, 24 Aug 2026 09:26:10 +0100
Subject: [PATCH 16/16] Add a VS Code task to run the Vitest test at the cursor
line
Previously the only editor task ran every test in the current file.
Vitest supports filtering to a single test by appending ":" to
the file path, so a test under the cursor can be run without pasting
its name into -t or waiting on the whole file.
This change adds a "Test Current Line (Vitest)" task using VS Code's
built-in "${lineNumber}" variable.
---
.vscode/tasks.json | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/.vscode/tasks.json b/.vscode/tasks.json
index 6fea49392..5e743c913 100644
--- a/.vscode/tasks.json
+++ b/.vscode/tasks.json
@@ -21,6 +21,26 @@
},
"problemMatcher": []
},
+ {
+ "label": "Test Current Line (Vitest)",
+ "type": "shell",
+ "command": "yarn",
+ "args": [
+ "test",
+ "--run",
+ "${file}:${lineNumber}"
+ ],
+ "options": {
+ "cwd": "${workspaceFolder}"
+ },
+ "group": "test",
+ "presentation": {
+ "reveal": "always",
+ "panel": "dedicated",
+ "clear": true
+ },
+ "problemMatcher": []
+ },
{
"label": "Test Current File (Cypress Headless)",
"type": "shell",