Compare commits

..
Author SHA1 Message Date
dependabot[bot]andGitHub db82fa174e chore(deps-dev): bump jest from 30.5.0 to 30.5.2
Bumps [jest](https://github.com/jestjs/jest/tree/HEAD/packages/jest) from 30.5.0 to 30.5.2.
- [Release notes](https://github.com/jestjs/jest/releases)
- [Changelog](https://github.com/jestjs/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jestjs/jest/commits/v30.5.2/packages/jest)

---
updated-dependencies:
- dependency-name: jest
  dependency-version: 30.5.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-10-22 10:52:59 +00:00
17 changed files with 618 additions and 906 deletions
-87
View File
@@ -1,87 +0,0 @@
import { mkdtempSync, rmSync } from "node:fs";
import { tmpdir } from "node:os";
import { join } from "node:path";
import {
afterAll,
beforeEach,
describe,
expect,
it,
jest,
} from "@jest/globals";
import { CacheLocalSource, type SetupInputs } from "../../src/utils/inputs";
import { createSetupInputs } from "../helpers/setup-inputs";
const mockSaveCache = jest.fn<() => Promise<number>>();
const mockInfo = jest.fn();
const mockLoadInputs = jest.fn<() => SetupInputs>(() =>
createSetupInputs({ enableCache: false }),
);
const state: Record<string, string> = {};
jest.unstable_mockModule("@actions/cache", () => ({
saveCache: mockSaveCache,
}));
jest.unstable_mockModule("@actions/core", () => ({
getState: jest.fn((name: string) => state[name] ?? ""),
setFailed: jest.fn(),
}));
jest.unstable_mockModule("../../src/utils/inputs", () => ({
loadInputs: mockLoadInputs,
}));
jest.unstable_mockModule("../../src/utils/logging", () => ({
info: mockInfo,
warning: jest.fn(),
}));
jest.spyOn(process, "exit").mockImplementation((() => undefined) as never);
const { run } = await import("../../src/save-cache");
const cacheDir = mkdtempSync(join(tmpdir(), "setup-uv-save-cache-"));
const cacheKey = "setup-uv-2-x86_64-unknown-linux-gnu-ubuntu-24.04-3.12-hash";
function infoMessages(): string[] {
return mockInfo.mock.calls.map(([msg]) => msg as string);
}
beforeEach(() => {
delete process.env.UV_CACHE_DIR;
state["cache-key"] = cacheKey;
state["cache-matched-key"] = "";
mockLoadInputs.mockReturnValue(
createSetupInputs({
cacheLocalPath: { path: cacheDir, source: CacheLocalSource.Input },
}),
);
});
afterAll(() => {
rmSync(cacheDir, { force: true, recursive: true });
});
describe("saveCache", () => {
it("reports the saved key when the cache is saved", async () => {
mockSaveCache.mockResolvedValue(42);
await run();
expect(mockSaveCache).toHaveBeenCalledWith([cacheDir], cacheKey);
expect(infoMessages()).toContain(`uv cache saved with key: ${cacheKey}`);
});
it("does not report the cache as saved when saving fails", async () => {
// @actions/cache logs the failure itself and returns -1
mockSaveCache.mockResolvedValue(-1);
await run();
expect(mockSaveCache).toHaveBeenCalledWith([cacheDir], cacheKey);
expect(infoMessages()).not.toContain(
`uv cache saved with key: ${cacheKey}`,
);
});
});
+1 -23
View File
@@ -146,28 +146,6 @@ describe("download-version", () => {
expect(mockGetAllVersions).not.toHaveBeenCalled();
});
it("resolves ~= with PEP 440 compatible release semantics", async () => {
mockGetFirstMatchingVersion.mockImplementation(
(predicate: (version: string) => boolean) =>
["1.0.0", "0.10.2", "0.9.26"].find(predicate),
);
const version = await resolveVersion("~=0.9", undefined);
expect(version).toBe("0.10.2");
});
it("resolves ~= with PEP 440 compatible release semantics from manifest-file", async () => {
mockGetAllVersions.mockResolvedValue(["1.0.0", "0.10.2", "0.9.26"]);
const version = await resolveVersion(
"~=0.9",
"https://example.com/custom.ndjson",
);
expect(version).toBe("0.10.2");
});
it("treats == exact pins as explicit versions", async () => {
const version = await resolveVersion("==0.9.26", undefined);
@@ -242,7 +220,7 @@ describe("download-version", () => {
"token",
),
).rejects.toThrow(
"Could not find artifact for version 0.9.26, arch x86_64, platform unknown-linux-gnu in https://releases.astral.sh/github/versions/main/v1/uv.ndjson .",
"Could not find artifact for version 0.9.26, arch x86_64, platform unknown-linux-gnu in https://raw.githubusercontent.com/astral-sh/versions/main/v1/uv.ndjson .",
);
expect(mockDownloadTool).not.toHaveBeenCalled();
+1 -73
View File
@@ -96,78 +96,6 @@ describe("manifest", () => {
expect(versions).toHaveLength(2);
expect(versions[0]?.version).toBe("0.9.26");
expect(versions[1]?.version).toBe("0.9.25");
expect(mockFetch.mock.calls.map(([url]) => url)).toEqual([
"https://releases.astral.sh/github/versions/main/v1/uv.ndjson",
]);
});
it("falls back to GitHub after mirror network retries are exhausted", async () => {
jest.useFakeTimers();
mockFetch
.mockRejectedValueOnce(new Error("mirror unavailable"))
.mockRejectedValueOnce(new Error("mirror unavailable"))
.mockRejectedValueOnce(new Error("mirror unavailable"))
.mockResolvedValueOnce(
createMockResponse(true, 200, "OK", sampleManifestResponse),
);
const result = fetchManifest();
await jest.runAllTimersAsync();
await expect(result).resolves.toEqual([
expect.objectContaining({ version: "0.9.26" }),
expect.objectContaining({ version: "0.9.25" }),
]);
expect(mockFetch.mock.calls.map(([url]) => url)).toEqual([
"https://releases.astral.sh/github/versions/main/v1/uv.ndjson",
"https://releases.astral.sh/github/versions/main/v1/uv.ndjson",
"https://releases.astral.sh/github/versions/main/v1/uv.ndjson",
"https://raw.githubusercontent.com/astral-sh/versions/main/v1/uv.ndjson",
]);
await expect(getLatestVersion()).resolves.toBe("0.9.26");
expect(mockFetch).toHaveBeenCalledTimes(4);
});
it.each([404, 429, 503])(
"falls back to a streaming GitHub manifest on mirror HTTP %s",
async (status) => {
mockFetch
.mockResolvedValueOnce(createMockResponse(false, status, "Error", ""))
.mockResolvedValueOnce(
createStreamingMockResponse([`${sampleManifestResponse}\n`]),
);
await expect(getLatestVersion()).resolves.toBe("0.9.26");
await expect(
getArtifact("0.9.26", "aarch64", "apple-darwin"),
).resolves.toEqual({
archiveFormat: "tar.gz",
checksum:
"fcf0a9ea6599c6ae28a4c854ac6da76f2c889354d7c36ce136ef071f7ab9721f",
downloadUrl:
"https://github.com/astral-sh/uv/releases/download/0.9.26/uv-aarch64-apple-darwin.tar.gz",
});
expect(mockFetch.mock.calls.map(([url]) => url)).toEqual([
"https://releases.astral.sh/github/versions/main/v1/uv.ndjson",
"https://raw.githubusercontent.com/astral-sh/versions/main/v1/uv.ndjson",
]);
},
);
it("does not fall back from a custom manifest", async () => {
mockFetch.mockResolvedValue(
createMockResponse(false, 503, "Service Unavailable", ""),
);
await expect(
fetchManifest("https://example.com/custom.ndjson"),
).rejects.toThrow(
"Failed to fetch manifest data: 503 Service Unavailable",
);
expect(mockFetch.mock.calls.map(([url]) => url)).toEqual([
"https://example.com/custom.ndjson",
]);
});
it("retries network failures", async () => {
@@ -195,7 +123,7 @@ describe("manifest", () => {
await jest.runAllTimersAsync();
await result;
expect(mockFetch).toHaveBeenCalledTimes(MANIFEST_FETCH_ATTEMPTS * 2);
expect(mockFetch).toHaveBeenCalledTimes(MANIFEST_FETCH_ATTEMPTS);
});
it("throws on a failed fetch", async () => {
@@ -35,14 +35,3 @@ test("strips PEP 508 markers from requirements dependencies", () => {
expect(parsedVersion).toBe("==0.11.20");
});
test.each([
["uv >= 0.5.0", ">=0.5.0"],
["uv == 0.11.20", "==0.11.20"],
["uv>=0.5.0, <0.6.0", ">=0.5.0,<0.6.0"],
["uv >= 0.5.0 , < 0.6.0", ">=0.5.0,<0.6.0"],
["uv==0.11.20 --hash=sha256:abc", "==0.11.20"],
["uv==0.11.20 # pinned for CI", "==0.11.20"],
])("allows whitespace in the uv specifier %s", (dependency, expected) => {
expect(getUvVersionFromRequirementsText(dependency)).toBe(expected);
});
Generated Vendored
+2 -4
View File
@@ -66671,10 +66671,8 @@ async function saveCacheToKey(cacheKey, cachePath, stateKey, cacheName) {
return;
}
info2(`Including ${cacheName} path: ${cachePath}`);
const cacheId = await saveCache2([cachePath], cacheKey);
if (cacheId !== -1) {
info2(`${cacheName} saved with key: ${cacheKey}`);
}
await saveCache2([cachePath], cacheKey);
info2(`${cacheName} saved with key: ${cacheKey}`);
}
__name(saveCacheToKey, "saveCacheToKey");
run();
Generated Vendored
+5 -40
View File
@@ -94499,8 +94499,7 @@ function _getGlobal(key, defaultValue) {
var TOOL_CACHE_NAME = "uv";
var STATE_UV_PATH = "uv-path";
var STATE_UV_VERSION = "uv-version";
var VERSIONS_MANIFEST_URL = "https://releases.astral.sh/github/versions/main/v1/uv.ndjson";
var GITHUB_VERSIONS_MANIFEST_URL = "https://raw.githubusercontent.com/astral-sh/versions/main/v1/uv.ndjson";
var VERSIONS_MANIFEST_URL = "https://raw.githubusercontent.com/astral-sh/versions/main/v1/uv.ndjson";
var GITHUB_RELEASES_PREFIX = "https://github.com/astral-sh/uv/releases/download/";
var ASTRAL_MIRROR_PREFIX = "https://releases.astral.sh/github/uv/releases/download/";
@@ -94510,24 +94509,6 @@ var fs10 = __toESM(require("node:fs"), 1);
// src/download/checksum/known-checksums.json
var known_checksums_default = {
"aarch64-apple-darwin-0.13.6": "60fbd5c8a1ed681845eea28d9d622fcde03c51e91a43465b64a1e17db1ed3472",
"aarch64-pc-windows-msvc-0.13.6": "c2426c0c8e28b53d8c440e47a18d96ad4db51e159866c0e81435b196d7f0081c",
"aarch64-unknown-linux-gnu-0.13.6": "229e194255c7958d86d56e8790d969a6f74736592133f0dfd0076f754c642c1d",
"aarch64-unknown-linux-musl-0.13.6": "819692e404d23e5aae6bc44c0e260f1f5492fd1910ab4693b2c650f926dbe800",
"arm-unknown-linux-musleabihf-0.13.6": "57ac0f7c04deb42c5d686b4eeeef555c442db6ffea16fe4cbd7adb0384403794",
"armv7-unknown-linux-gnueabihf-0.13.6": "d00cd4949c4524c934afcfee1aedfa9d337cf4e43be4d6b692ad8d74d0a65562",
"armv7-unknown-linux-musleabihf-0.13.6": "b215398c886e8cc2cfa282fe346c02025957f8633b75a3d4fd848e0adda4eddd",
"i686-pc-windows-msvc-0.13.6": "32ceb64db231cbedfd499f7654c72e4c0b564f2846f9e76c0a4a7b2d03d7e67c",
"i686-unknown-linux-gnu-0.13.6": "665ea831c38d342900950e606beb2ccc37b7ba0fcefc37b814eb4b076305f2b6",
"i686-unknown-linux-musl-0.13.6": "de3a015c4b0fce63c178ae4fa95c94c873adfd92fa1e258c6a2a94e529812629",
"powerpc64le-unknown-linux-gnu-0.13.6": "3b2847185ec2946fcc928500efef7e3e74c255d3be6f2cb435081a84885d8c6c",
"riscv64gc-unknown-linux-gnu-0.13.6": "517052603ed46483b59d8875c9c61a577946b8f493c73e4339e45e7b119171d0",
"riscv64gc-unknown-linux-musl-0.13.6": "659a95dc6aee3ecf86742a08d8ca6c6261422121cbd41decc0042f5a71af6305",
"s390x-unknown-linux-gnu-0.13.6": "fb56d731308aa5c7718059d71afcb14d9a933a974997cee3d4eb5d06fc462a4b",
"x86_64-apple-darwin-0.13.6": "63ba17fdda55ad1a230d4b37fc6017ffa10c23688c83818bd3bfdf914c652a02",
"x86_64-pc-windows-msvc-0.13.6": "a2a8820d5eea32f08ef467ef3b7f66883a9b076d5737a2fc2fbb5f458d1bb50f",
"x86_64-unknown-linux-gnu-0.13.6": "f29c3e94ffabd7e6f3ba521dba169a9b7ec12100bf3257087f0f24f6123f3645",
"x86_64-unknown-linux-musl-0.13.6": "5d61f26b6c7213779eda90edc6971ea6b0b796bfb8d49a574c8ad69b59838548",
"aarch64-apple-darwin-0.13.5": "743f85035a1996ecb350659e01cd9faea9709829be09b1b4b03c73eaf3c9cd73",
"aarch64-pc-windows-msvc-0.13.5": "09f47edf90726084a70f9426f6e3ca4f46e9bf7cbf23b1716ec64d60b055fae3",
"aarch64-unknown-linux-gnu-0.13.5": "4bb69cf95ed13f23713bb7bc09f241896ea0c75b7c557e615a20604b82f9c403",
@@ -100306,19 +100287,6 @@ async function getArtifact(version3, arch3, platform2, manifestUrl = VERSIONS_MA
};
}
async function fetchManifestResponse(manifestUrl) {
try {
return await fetchManifestResponseFromUrl(manifestUrl);
} catch (error2) {
if (manifestUrl !== VERSIONS_MANIFEST_URL) {
throw error2;
}
info2(
`Failed to fetch manifest from Astral mirror, falling back to GitHub: ${error2.message}`
);
return await fetchManifestResponseFromUrl(GITHUB_VERSIONS_MANIFEST_URL);
}
}
async function fetchManifestResponseFromUrl(manifestUrl) {
let response;
for (let attempt = 1; attempt <= MANIFEST_FETCH_ATTEMPTS; attempt++) {
info2(`Fetching manifest data from ${manifestUrl} ...`);
@@ -101611,7 +101579,7 @@ function getUvVersionFromAllDependencies(allDependencies) {
}
function getUvVersionFromDependency(dependency) {
const dependencyWithoutMarker = dependency.split(";", 1)[0]?.trim();
return dependencyWithoutMarker?.match(/^uv\s*((?:[=<>~!]+\s*[^\s,]+\s*,?\s*)+)/)?.[1].replace(/\s/g, "");
return dependencyWithoutMarker?.match(/^uv([=<>~!]+\S*)/)?.[1].trim();
}
// src/version/tool-versions-file.ts
@@ -101969,7 +101937,7 @@ async function resolveVersion(versionInput, manifestUrl, resolutionStrategy = "h
throw new Error(`No version found for ${versionInput}`);
}
async function findHighestSatisfyingVersion(versionSpecifier) {
const semverRange = isCompatibleReleaseSpecifier(versionSpecifier) ? null : semver5.validRange(versionSpecifier);
const semverRange = semver5.validRange(versionSpecifier);
if (semverRange !== null) {
const semverMatch = await getFirstMatchingVersion(
(version3) => semver5.satisfies(version3, semverRange)
@@ -101991,11 +101959,8 @@ async function findHighestSatisfyingVersion(versionSpecifier) {
}
return pep440Match;
}
function isCompatibleReleaseSpecifier(versionSpecifier) {
return versionSpecifier.includes("~=");
}
function maxSatisfying2(versions, version3) {
const maxSemver = isCompatibleReleaseSpecifier(version3) ? "" : evaluateVersions(versions, version3);
const maxSemver = evaluateVersions(versions, version3);
if (maxSemver !== "") {
debug(`Found a version that satisfies the semver range: ${maxSemver}`);
return maxSemver;
@@ -102010,7 +101975,7 @@ function maxSatisfying2(versions, version3) {
return void 0;
}
function minSatisfying3(versions, version3) {
const minSemver = isCompatibleReleaseSpecifier(version3) ? null : semver5.minSatisfying(versions, version3);
const minSemver = semver5.minSatisfying(versions, version3);
if (minSemver !== null) {
debug(`Found a version that satisfies the semver range: ${minSemver}`);
return minSemver;
+1 -33
View File
@@ -47182,24 +47182,6 @@ var semver = __toESM(require_semver(), 1);
// src/download/checksum/known-checksums.json
var known_checksums_default = {
"aarch64-apple-darwin-0.13.6": "60fbd5c8a1ed681845eea28d9d622fcde03c51e91a43465b64a1e17db1ed3472",
"aarch64-pc-windows-msvc-0.13.6": "c2426c0c8e28b53d8c440e47a18d96ad4db51e159866c0e81435b196d7f0081c",
"aarch64-unknown-linux-gnu-0.13.6": "229e194255c7958d86d56e8790d969a6f74736592133f0dfd0076f754c642c1d",
"aarch64-unknown-linux-musl-0.13.6": "819692e404d23e5aae6bc44c0e260f1f5492fd1910ab4693b2c650f926dbe800",
"arm-unknown-linux-musleabihf-0.13.6": "57ac0f7c04deb42c5d686b4eeeef555c442db6ffea16fe4cbd7adb0384403794",
"armv7-unknown-linux-gnueabihf-0.13.6": "d00cd4949c4524c934afcfee1aedfa9d337cf4e43be4d6b692ad8d74d0a65562",
"armv7-unknown-linux-musleabihf-0.13.6": "b215398c886e8cc2cfa282fe346c02025957f8633b75a3d4fd848e0adda4eddd",
"i686-pc-windows-msvc-0.13.6": "32ceb64db231cbedfd499f7654c72e4c0b564f2846f9e76c0a4a7b2d03d7e67c",
"i686-unknown-linux-gnu-0.13.6": "665ea831c38d342900950e606beb2ccc37b7ba0fcefc37b814eb4b076305f2b6",
"i686-unknown-linux-musl-0.13.6": "de3a015c4b0fce63c178ae4fa95c94c873adfd92fa1e258c6a2a94e529812629",
"powerpc64le-unknown-linux-gnu-0.13.6": "3b2847185ec2946fcc928500efef7e3e74c255d3be6f2cb435081a84885d8c6c",
"riscv64gc-unknown-linux-gnu-0.13.6": "517052603ed46483b59d8875c9c61a577946b8f493c73e4339e45e7b119171d0",
"riscv64gc-unknown-linux-musl-0.13.6": "659a95dc6aee3ecf86742a08d8ca6c6261422121cbd41decc0042f5a71af6305",
"s390x-unknown-linux-gnu-0.13.6": "fb56d731308aa5c7718059d71afcb14d9a933a974997cee3d4eb5d06fc462a4b",
"x86_64-apple-darwin-0.13.6": "63ba17fdda55ad1a230d4b37fc6017ffa10c23688c83818bd3bfdf914c652a02",
"x86_64-pc-windows-msvc-0.13.6": "a2a8820d5eea32f08ef467ef3b7f66883a9b076d5737a2fc2fbb5f458d1bb50f",
"x86_64-unknown-linux-gnu-0.13.6": "f29c3e94ffabd7e6f3ba521dba169a9b7ec12100bf3257087f0f24f6123f3645",
"x86_64-unknown-linux-musl-0.13.6": "5d61f26b6c7213779eda90edc6971ea6b0b796bfb8d49a574c8ad69b59838548",
"aarch64-apple-darwin-0.13.5": "743f85035a1996ecb350659e01cd9faea9709829be09b1b4b03c73eaf3c9cd73",
"aarch64-pc-windows-msvc-0.13.5": "09f47edf90726084a70f9426f6e3ca4f46e9bf7cbf23b1716ec64d60b055fae3",
"aarch64-unknown-linux-gnu-0.13.5": "4bb69cf95ed13f23713bb7bc09f241896ea0c75b7c557e615a20604b82f9c403",
@@ -52854,8 +52836,7 @@ var import_node_readline = require("node:readline");
var import_node_stream = require("node:stream");
// src/utils/constants.ts
var VERSIONS_MANIFEST_URL = "https://releases.astral.sh/github/versions/main/v1/uv.ndjson";
var GITHUB_VERSIONS_MANIFEST_URL = "https://raw.githubusercontent.com/astral-sh/versions/main/v1/uv.ndjson";
var VERSIONS_MANIFEST_URL = "https://raw.githubusercontent.com/astral-sh/versions/main/v1/uv.ndjson";
// src/utils/fetch.ts
var import_undici2 = __toESM(require_undici2(), 1);
@@ -52927,19 +52908,6 @@ async function getLatestVersion(manifestUrl = VERSIONS_MANIFEST_URL) {
return latestVersion;
}
async function fetchManifestResponse(manifestUrl) {
try {
return await fetchManifestResponseFromUrl(manifestUrl);
} catch (error2) {
if (manifestUrl !== VERSIONS_MANIFEST_URL) {
throw error2;
}
info2(
`Failed to fetch manifest from Astral mirror, falling back to GitHub: ${error2.message}`
);
return await fetchManifestResponseFromUrl(GITHUB_VERSIONS_MANIFEST_URL);
}
}
async function fetchManifestResponseFromUrl(manifestUrl) {
let response;
for (let attempt = 1; attempt <= MANIFEST_FETCH_ATTEMPTS; attempt++) {
info2(`Fetching manifest data from ${manifestUrl} ...`);
+2 -4
View File
@@ -20,12 +20,10 @@ You can specify a checksum to override those values. The sha256 hashes can also
## Manifest file
By default, setup-uv reads version metadata from
the [Astral mirror](https://releases.astral.sh/github/versions/main/v1/uv.ndjson).
If the mirror request fails, it falls back to [`astral-sh/versions`](https://github.com/astral-sh/versions).
[`astral-sh/versions`](https://github.com/astral-sh/versions).
The `manifest-file` input lets you override that source with your own URL, for example to test
custom uv builds or alternate download locations. Custom manifest URLs do not fall back to the
default sources.
custom uv builds or alternate download locations.
### Format
+5 -6
View File
@@ -50,13 +50,12 @@ You can customize the venv location with `venv-path`, for example to place it in
## GitHub authentication token
By default, this action fetches version metadata and uv archives from the Astral mirror.
If a manifest request fails, it falls back to `raw.githubusercontent.com`. If an archive download
fails, it falls back to GitHub Releases.
By default, this action resolves available uv versions from
[`astral-sh/versions`](https://github.com/astral-sh/versions), then downloads uv artifacts from
GitHub Releases.
You can provide a token via `github-token` to authenticate GitHub Releases downloads. The token
is not sent to the Astral mirror or used for manifest requests. By default, the `GITHUB_TOKEN`
secret is used, which is automatically provided by GitHub Actions.
You can provide a token via `github-token` to authenticate those downloads. By default, the
`GITHUB_TOKEN` secret is used, which is automatically provided by GitHub Actions.
If the default
[permissions for the GitHub token](https://docs.github.com/en/actions/security-for-github-actions/security-guides/automatic-token-authentication#permissions-for-the-github_token)
+593 -561
View File
@@ -26,7 +26,7 @@
"@types/semver": "^7.8.0",
"@vercel/ncc": "^0.45.0",
"esbuild": "^0.28.2",
"jest": "^30.5.0",
"jest": "^30.5.2",
"js-yaml": "^5.4.1",
"ts-jest": "^29.4.11",
"typescript": "^6.0.3"
@@ -1704,17 +1704,17 @@
}
},
"node_modules/@jest/console": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/@jest/console/-/console-30.5.0.tgz",
"integrity": "sha512-BI1DpOedrJqbrYVi9yNhDWGjqphR/+gsM4STmg2+VaeXm7851hvpBDyKOZGMXATTrGEnFuEseQvLCtrrRmG0GQ==",
"version": "30.5.2",
"resolved": "https://registry.npmjs.org/@jest/console/-/console-30.5.2.tgz",
"integrity": "sha512-e8sQC4pCMHPBrPX7Hk8TJr+DM5dkUnImSTNag8SEWFAFAF6xIz4AJvCKapnrdHnZxep4bxw4PhG+ZbimYBMyKw==",
"dev": true,
"license": "MIT",
"dependencies": {
"@jest/types": "30.5.0",
"@jest/types": "30.5.1",
"@types/node": "*",
"chalk": "^4.1.2",
"jest-message-util": "30.5.0",
"jest-util": "30.5.0",
"jest-message-util": "30.5.1",
"jest-util": "30.5.1",
"slash": "^3.0.0"
},
"engines": {
@@ -1722,18 +1722,18 @@
}
},
"node_modules/@jest/core": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/@jest/core/-/core-30.5.0.tgz",
"integrity": "sha512-DLjRME+NY//j+UDTSfWnjoP0srrdR3DrJRy7yFZktGIwzpN2iVy2vMo0jziZ5c2Ij7bOwlJRXKVWtxZusazOJg==",
"version": "30.5.2",
"resolved": "https://registry.npmjs.org/@jest/core/-/core-30.5.2.tgz",
"integrity": "sha512-/jqvFWoJF7LV1a6AUpYMbMm+2yIYsHJfR474H0SCzr9k8tnO/jl9wRg6zSG6lxgf6EozNlCG4amFzWsbZSvvZA==",
"dev": true,
"license": "MIT",
"dependencies": {
"@jest/console": "30.5.0",
"@jest/console": "30.5.2",
"@jest/pattern": "30.5.0",
"@jest/reporters": "30.5.0",
"@jest/test-result": "30.5.0",
"@jest/transform": "30.5.0",
"@jest/types": "30.5.0",
"@jest/reporters": "30.5.2",
"@jest/test-result": "30.5.2",
"@jest/transform": "30.5.2",
"@jest/types": "30.5.1",
"@types/node": "*",
"ansi-escapes": "^4.3.2",
"chalk": "^4.1.2",
@@ -1741,20 +1741,20 @@
"exit-x": "^0.2.2",
"fast-json-stable-stringify": "^2.1.0",
"graceful-fs": "^4.2.11",
"jest-changed-files": "30.5.0",
"jest-config": "30.5.0",
"jest-haste-map": "30.5.0",
"jest-message-util": "30.5.0",
"jest-changed-files": "30.5.1",
"jest-config": "30.5.2",
"jest-haste-map": "30.5.1",
"jest-message-util": "30.5.1",
"jest-regex-util": "30.5.0",
"jest-resolve": "30.5.0",
"jest-resolve-dependencies": "30.5.0",
"jest-runner": "30.5.0",
"jest-runtime": "30.5.0",
"jest-snapshot": "30.5.0",
"jest-util": "30.5.0",
"jest-validate": "30.5.0",
"jest-watcher": "30.5.0",
"pretty-format": "30.5.0",
"jest-resolve": "30.5.1",
"jest-resolve-dependencies": "30.5.2",
"jest-runner": "30.5.2",
"jest-runtime": "30.5.2",
"jest-snapshot": "30.5.2",
"jest-util": "30.5.1",
"jest-validate": "30.5.1",
"jest-watcher": "30.5.2",
"pretty-format": "30.5.1",
"slash": "^3.0.0"
},
"engines": {
@@ -1780,39 +1780,39 @@
}
},
"node_modules/@jest/environment": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/@jest/environment/-/environment-30.5.0.tgz",
"integrity": "sha512-HUaqexIauIh69IQ4NTuPDEUCB8g8T4TOPSIzQOS18mwI/KEHKQk1j013K2o6ra031szZE2t5jGmVx3xbzdjgKA==",
"version": "30.5.2",
"resolved": "https://registry.npmjs.org/@jest/environment/-/environment-30.5.2.tgz",
"integrity": "sha512-nwFPOUMbmsjNNRCpnJpB9HbSZu4C07wDDds++5j+j1MezzPLxMPDdbdUVjr2o4RULDOValnDd70taPFI1EtxAg==",
"dev": true,
"license": "MIT",
"dependencies": {
"@jest/fake-timers": "30.5.0",
"@jest/types": "30.5.0",
"@jest/fake-timers": "30.5.2",
"@jest/types": "30.5.1",
"@types/node": "*",
"jest-mock": "30.5.0"
"jest-mock": "30.5.2"
},
"engines": {
"node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
},
"node_modules/@jest/expect": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/@jest/expect/-/expect-30.5.0.tgz",
"integrity": "sha512-jEmgmgJEobJ3zEhDOGp1VAJ6JkoVelpS8uZ1ae1Ul/5lP78UKJKmmU0lciJwd6JdnqOXHaaS/QCKwbf1dHI9MA==",
"version": "30.5.2",
"resolved": "https://registry.npmjs.org/@jest/expect/-/expect-30.5.2.tgz",
"integrity": "sha512-2E+1Pg6jJxbRjLNLpciC71iri/3qsKJL222/aXJEFwC0VdUSvfS+JZQQLEVjUYYc8t8pQu2MGE3cF2+bNTYRsg==",
"dev": true,
"license": "MIT",
"dependencies": {
"expect": "30.5.0",
"jest-snapshot": "30.5.0"
"expect": "30.5.2",
"jest-snapshot": "30.5.2"
},
"engines": {
"node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
},
"node_modules/@jest/expect-utils": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-30.5.0.tgz",
"integrity": "sha512-5j0ztPxSy3McUJihjkDdCyCfjvT2hxykFTWsgEBZKB8qsw9ALdCiGTpTRH5gnf/d+qI4SflYUJ0dWNbzjQCWbA==",
"version": "30.5.2",
"resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-30.5.2.tgz",
"integrity": "sha512-d/HOLSrJUlBIl6n3LzOa7cjW3xdePm5H5gQw2lixZ/0h157l9sw3mLblzFqnPcTbhDzhRQdBOX3A3KcG73nm5Q==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1823,18 +1823,18 @@
}
},
"node_modules/@jest/fake-timers": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-30.5.0.tgz",
"integrity": "sha512-sg8xIbYwe5GdB/vT3/0qrDIpO7Ov9mazHi++M95uynmDKEZ70G1r169AWct73H07VrTZhrz1SJEfLtjYv8tE3A==",
"version": "30.5.2",
"resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-30.5.2.tgz",
"integrity": "sha512-GKk0h0tKT5SpDPxDhPg3r9mm5s8/YCBzVNMOGdRiQXwUiMsjU10mVPlMaQstH6/cu50vOb8N9oQUMETHuwwxKw==",
"dev": true,
"license": "MIT",
"dependencies": {
"@jest/types": "30.5.0",
"@jest/types": "30.5.1",
"@sinonjs/fake-timers": "^15.4.0",
"@types/node": "*",
"jest-message-util": "30.5.0",
"jest-mock": "30.5.0",
"jest-util": "30.5.0"
"jest-message-util": "30.5.1",
"jest-mock": "30.5.2",
"jest-util": "30.5.1"
},
"engines": {
"node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
@@ -1851,16 +1851,16 @@
}
},
"node_modules/@jest/globals": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/@jest/globals/-/globals-30.5.0.tgz",
"integrity": "sha512-h7eJx534czwL8lQMYB0hwLT4/HquO8EX/RtYL7RNUHyUyWWVciYjoudN4Ns5JmNvn2/jh0Vm9UstZjEzJJ5EsQ==",
"version": "30.5.2",
"resolved": "https://registry.npmjs.org/@jest/globals/-/globals-30.5.2.tgz",
"integrity": "sha512-62zfS+dL+M5aTNHXCNLyqD+j4oqxTIzDYrZbpqMP8Yn+gvlAGyzC6BSPNb1ZmFOakV1RtFYX/O3FCQXSWmQdgg==",
"dev": true,
"license": "MIT",
"dependencies": {
"@jest/environment": "30.5.0",
"@jest/expect": "30.5.0",
"@jest/types": "30.5.0",
"jest-mock": "30.5.0"
"@jest/environment": "30.5.2",
"@jest/expect": "30.5.2",
"@jest/types": "30.5.1",
"jest-mock": "30.5.2"
},
"engines": {
"node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
@@ -1897,17 +1897,17 @@
"license": "MIT"
},
"node_modules/@jest/reporters": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-30.5.0.tgz",
"integrity": "sha512-FEAuusWm+PUOn9ydjaHhpOpyPmS6IbGE04HaKTuUI4zd8eqYZiXiNLoCsdCog/l2XnNj53E9pFy64UltcvfJKg==",
"version": "30.5.2",
"resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-30.5.2.tgz",
"integrity": "sha512-ev6E9iG73twQcfAfoTnviuYkr3yOrYbzAtMFCimv2fxHXPIp9PBt2u1wNMt0aYWgl8FPwIcS8oqRJg6alnht4Q==",
"dev": true,
"license": "MIT",
"dependencies": {
"@bcoe/v8-coverage": "^0.2.3",
"@jest/console": "30.5.0",
"@jest/test-result": "30.5.0",
"@jest/transform": "30.5.0",
"@jest/types": "30.5.0",
"@jest/console": "30.5.2",
"@jest/test-result": "30.5.2",
"@jest/transform": "30.5.2",
"@jest/types": "30.5.1",
"@jridgewell/trace-mapping": "^0.3.31",
"@types/node": "*",
"chalk": "^4.1.2",
@@ -1920,9 +1920,9 @@
"istanbul-lib-report": "^3.0.0",
"istanbul-lib-source-maps": "^5.0.0",
"istanbul-reports": "^3.1.3",
"jest-message-util": "30.5.0",
"jest-util": "30.5.0",
"jest-worker": "30.5.0",
"jest-message-util": "30.5.1",
"jest-util": "30.5.1",
"jest-worker": "30.5.1",
"slash": "^3.0.0",
"string-length": "^4.0.2",
"v8-to-istanbul": "^9.0.1"
@@ -1953,13 +1953,13 @@
}
},
"node_modules/@jest/snapshot-utils": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/@jest/snapshot-utils/-/snapshot-utils-30.5.0.tgz",
"integrity": "sha512-iWQtIsi2dRsO2oWzVceOeynuRJiYTW8gsDVp5wFQ02ipHluQsNgBpasWSHiawVxukIlsGLdCtCSbIEK7fPtpvQ==",
"version": "30.5.1",
"resolved": "https://registry.npmjs.org/@jest/snapshot-utils/-/snapshot-utils-30.5.1.tgz",
"integrity": "sha512-V3wnxNtiVmw5PPVg433Cn3VdXnsOeu/ofLw3KC04Bn2y1wIlU5kozXQn48rhrgj/02LrCVtntTEF1yBha0XSUw==",
"dev": true,
"license": "MIT",
"dependencies": {
"@jest/types": "30.5.0",
"@jest/types": "30.5.1",
"chalk": "^4.1.2",
"graceful-fs": "^4.2.11",
"natural-compare": "^1.4.0"
@@ -1969,9 +1969,9 @@
}
},
"node_modules/@jest/source-map": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-30.5.0.tgz",
"integrity": "sha512-xWpTJP9D0bDFGbPGT8XuWSwwha/iHADyyKzUnMx4UbdgnHugxrDaQFO4RZ8x4ZsFzRP6pNii8uvlgKCDxCIuDg==",
"version": "30.5.2",
"resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-30.5.2.tgz",
"integrity": "sha512-c5CehvkbfHX6yyNg7bMn2ylqlp9AHXuZ/3hPH/Lh5bxD/vefd/lV9HBjMqXef9yQNqkdwyZvkLSVSwB38hy8Qw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1985,14 +1985,14 @@
}
},
"node_modules/@jest/test-result": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-30.5.0.tgz",
"integrity": "sha512-9IlPqUzUMkVDmoDqSSrVVLroVotgN3hTUPWPwq24XWXhh1Zpg915RXZ5pgRJ/7j4YE/kng5nqjSn4p3S68SZJA==",
"version": "30.5.2",
"resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-30.5.2.tgz",
"integrity": "sha512-eO6YU5rsLfs60ne694e0IAmRgeBnoA8mu0nlxXDbl/1j5km0o2vO9/VbbUIKIH+WRKKEI+ELgwraRGn2Lhep8g==",
"dev": true,
"license": "MIT",
"dependencies": {
"@jest/console": "30.5.0",
"@jest/types": "30.5.0",
"@jest/console": "30.5.2",
"@jest/types": "30.5.1",
"@types/istanbul-lib-coverage": "^2.0.6",
"collect-v8-coverage": "^1.0.2"
},
@@ -2001,15 +2001,15 @@
}
},
"node_modules/@jest/test-sequencer": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-30.5.0.tgz",
"integrity": "sha512-TXlvSDIVv482b83hD8A8WtxDJEmGF47f60W6jRXOQL0Isfs3hKtk4rZIm9R/jLzAibg8+c56y+Q00BQs8R7Xcg==",
"version": "30.5.2",
"resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-30.5.2.tgz",
"integrity": "sha512-bmij8jZyYAC47ExT2GeP7PcrlwSNS+Bp3KeRuBH88gpcxqDv6fljN8PemS4J/lLZ79xb6mpaennQTTq0zUAVVg==",
"dev": true,
"license": "MIT",
"dependencies": {
"@jest/test-result": "30.5.0",
"@jest/test-result": "30.5.2",
"graceful-fs": "^4.2.11",
"jest-haste-map": "30.5.0",
"jest-haste-map": "30.5.1",
"slash": "^3.0.0"
},
"engines": {
@@ -2017,23 +2017,23 @@
}
},
"node_modules/@jest/transform": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/@jest/transform/-/transform-30.5.0.tgz",
"integrity": "sha512-n1cYhoByyULEIXi64wbT4Lq91qeT1E6bwpM//sprFXhw955qaiHTdAmy1c1rNFGB6fCf1J+nxDUSf3RGwgZP5A==",
"version": "30.5.2",
"resolved": "https://registry.npmjs.org/@jest/transform/-/transform-30.5.2.tgz",
"integrity": "sha512-LBGwmaE886C41jDZ65eqR1YbXM7642MK3ZhTowZd5+xDlrDLuf4ePuDdDmVSvcr8NTVJ3MqxLkMbUCzuigUaoQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"@babel/core": "^7.27.4",
"@jest/types": "30.5.0",
"@jest/types": "30.5.1",
"@jridgewell/trace-mapping": "^0.3.31",
"babel-plugin-istanbul": "^8.0.0",
"chalk": "^4.1.2",
"convert-source-map": "^2.0.0",
"fast-json-stable-stringify": "^2.1.0",
"graceful-fs": "^4.2.11",
"jest-haste-map": "30.5.0",
"jest-haste-map": "30.5.1",
"jest-regex-util": "30.5.0",
"jest-util": "30.5.0",
"jest-util": "30.5.1",
"pirates": "^4.0.7",
"slash": "^3.0.0",
"write-file-atomic": "^5.0.1"
@@ -2043,9 +2043,9 @@
}
},
"node_modules/@jest/types": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/@jest/types/-/types-30.5.0.tgz",
"integrity": "sha512-s1N+79S4Yp9ZgklCauZXi+YPJdCdtStNYQT32stuD6EeQaIBGHoUfyj2P0YWy8RmuQfaJboO+ulxEvEheR/POQ==",
"version": "30.5.1",
"resolved": "https://registry.npmjs.org/@jest/types/-/types-30.5.1.tgz",
"integrity": "sha512-LvVYn83nnXPl+Rg98nvcFgjx6nRMTArhSn6RAX/w3ELn54S8A42TYZvsCMdGUqTM8S0wyXbtlQdU6Hi6dykj9g==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2111,9 +2111,9 @@
}
},
"node_modules/@napi-rs/wasm-runtime": {
"version": "1.2.5",
"resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.2.5.tgz",
"integrity": "sha512-HshSvXzmBxNzqejd3k/KemgQ3hdREUYFRRrgxOZ+gPljDIsO2SDZrVZMd4Z/HsxudQbE62OVyVFE8z9BCurfjA==",
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.2.4.tgz",
"integrity": "sha512-AJxoUD2/15ESHbvpcyjU274nsAPLuOtPHCk0vKJM5pj//Fg/B1FXNWjPnXTT9PymCYYiHo4zPj0ZomXBKhoy7g==",
"dev": true,
"license": "MIT",
"optional": true,
@@ -2766,6 +2766,9 @@
"arm64"
],
"dev": true,
"libc": [
"glibc"
],
"license": "MIT",
"optional": true,
"os": [
@@ -2780,6 +2783,9 @@
"arm64"
],
"dev": true,
"libc": [
"musl"
],
"license": "MIT",
"optional": true,
"os": [
@@ -2794,6 +2800,9 @@
"loong64"
],
"dev": true,
"libc": [
"glibc"
],
"license": "MIT",
"optional": true,
"os": [
@@ -2808,6 +2817,9 @@
"loong64"
],
"dev": true,
"libc": [
"musl"
],
"license": "MIT",
"optional": true,
"os": [
@@ -2822,6 +2834,9 @@
"ppc64"
],
"dev": true,
"libc": [
"glibc"
],
"license": "MIT",
"optional": true,
"os": [
@@ -2836,6 +2851,9 @@
"riscv64"
],
"dev": true,
"libc": [
"glibc"
],
"license": "MIT",
"optional": true,
"os": [
@@ -2850,6 +2868,9 @@
"riscv64"
],
"dev": true,
"libc": [
"musl"
],
"license": "MIT",
"optional": true,
"os": [
@@ -2864,6 +2885,9 @@
"s390x"
],
"dev": true,
"libc": [
"glibc"
],
"license": "MIT",
"optional": true,
"os": [
@@ -2878,6 +2902,9 @@
"x64"
],
"dev": true,
"libc": [
"glibc"
],
"license": "MIT",
"optional": true,
"os": [
@@ -2892,6 +2919,9 @@
"x64"
],
"dev": true,
"libc": [
"musl"
],
"license": "MIT",
"optional": true,
"os": [
@@ -3066,13 +3096,13 @@
"dev": true
},
"node_modules/babel-jest": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-30.5.0.tgz",
"integrity": "sha512-PrhPHlKC+MsLnuNzgIH/y1dkz1f6cSfKWaQeaG8WxLMuG44dYWQ8E9uRrsBbAGCU/3+BEFYPN4d6G3Zc5Y+waA==",
"version": "30.5.2",
"resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-30.5.2.tgz",
"integrity": "sha512-ES8WeJ2fNWPEDunyAtUfJ12nHyaWUloCHdkfK2oW5uSoQSUmjNKdWiGaXJITJwvFEWoD/evHEg/QoCXAvLaQqQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"@jest/transform": "30.5.0",
"@jest/transform": "30.5.2",
"@types/babel__core": "^7.20.5",
"babel-plugin-istanbul": "^8.0.0",
"babel-preset-jest": "30.5.0",
@@ -3317,9 +3347,9 @@
}
},
"node_modules/cjs-module-lexer": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-2.3.0.tgz",
"integrity": "sha512-lmNyBzi6iYiqyrExTctfmjd8tInx+dHu9PBomTfH5RXS53c27JMFJgzNv5TyAnm3PgGf+MLy0+Ws41/HlVxdKQ==",
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-2.2.1.tgz",
"integrity": "sha512-Ca8swihM+/4yKecYHY52kgJd300hi2lADU/a1RxNTRe+RJ9jvqQlESpbz9DnG9mowez8qwXHB8qYdIUw9e+F5Q==",
"dev": true,
"license": "MIT"
},
@@ -3639,18 +3669,18 @@
}
},
"node_modules/expect": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/expect/-/expect-30.5.0.tgz",
"integrity": "sha512-8fiMWcEjPU7B9nErC4FtFcCzf2tC6I75Qf7m8wzBAWC2taZmcno3yAFEjIQL34SwoGZNgPf63UDiJLyh4SMPaw==",
"version": "30.5.2",
"resolved": "https://registry.npmjs.org/expect/-/expect-30.5.2.tgz",
"integrity": "sha512-0LNuMvs8/5mRYhnCR4k+lGV7fqPMs6Bnksda4S3zsCUmdxBpAn4zU4NNzXdq1pMKe/H4W5t/zVIDSJ/H3e0vDA==",
"dev": true,
"license": "MIT",
"dependencies": {
"@jest/expect-utils": "30.5.0",
"@jest/expect-utils": "30.5.2",
"@jest/get-type": "30.5.0",
"jest-matcher-utils": "30.5.0",
"jest-message-util": "30.5.0",
"jest-mock": "30.5.0",
"jest-util": "30.5.0"
"jest-matcher-utils": "30.5.2",
"jest-message-util": "30.5.1",
"jest-mock": "30.5.2",
"jest-util": "30.5.1"
},
"engines": {
"node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
@@ -4116,16 +4146,16 @@
}
},
"node_modules/jest": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/jest/-/jest-30.5.0.tgz",
"integrity": "sha512-HeFeOUEKh5gjnp1rjuSCse8Dhj0Y3KA8lsZ3azr4Wnq1nCxwMBu35MDc9mp8iblZxmeAz6wV4P241tyUB7J2Ew==",
"version": "30.5.2",
"resolved": "https://registry.npmjs.org/jest/-/jest-30.5.2.tgz",
"integrity": "sha512-3gnpdBIza8ijCl3iMV9ChE3hSt1+46865qqod863gQtJr1DixOkAU5DoGbi3u+XlRcw++BhZQMu/y4xBdHBvSQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"@jest/core": "30.5.0",
"@jest/types": "30.5.0",
"@jest/core": "30.5.2",
"@jest/types": "30.5.1",
"import-local": "^3.2.0",
"jest-cli": "30.5.0"
"jest-cli": "30.5.2"
},
"bin": {
"jest": "bin/jest.js"
@@ -4143,14 +4173,14 @@
}
},
"node_modules/jest-changed-files": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-30.5.0.tgz",
"integrity": "sha512-dq1x8JiEnHkJDxxOrF6UJDivBRAQMwAa5tzr+VX3um0SfyMFseUPQUbe51wLwggfoa5h/EmOtSpdJxxkzSlNRQ==",
"version": "30.5.1",
"resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-30.5.1.tgz",
"integrity": "sha512-0+bvMM/ENhDI29Z8q1r4HxiDIi4G5tnBmSw4esfPQoj9q8Nik7KIyuxHkTVnnniJQf05SxpGaKDQ+4h28ynGPg==",
"dev": true,
"license": "MIT",
"dependencies": {
"execa": "^5.1.1",
"jest-util": "30.5.0",
"jest-util": "30.5.1",
"p-limit": "^3.1.0"
},
"engines": {
@@ -4158,29 +4188,29 @@
}
},
"node_modules/jest-circus": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-30.5.0.tgz",
"integrity": "sha512-T3v7uM4wwCu+RQicjsAWCgoL3CiyuX3THSKwv2uMb9N2bMUgb+HfwDWEUma85vOGbvQNQ/YfoCXF1OCZot0ZEw==",
"version": "30.5.2",
"resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-30.5.2.tgz",
"integrity": "sha512-vffFgjs5JSJ9q4ds1vNW3klKYPJfYfIY61LT/zaZgvTeASJOWZUt8LBfHgIcV4rwxlPBLl/ePBGccHEclS4PlQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"@jest/environment": "30.5.0",
"@jest/expect": "30.5.0",
"@jest/test-result": "30.5.0",
"@jest/types": "30.5.0",
"@jest/environment": "30.5.2",
"@jest/expect": "30.5.2",
"@jest/test-result": "30.5.2",
"@jest/types": "30.5.1",
"@types/node": "*",
"chalk": "^4.1.2",
"co": "^4.6.0",
"dedent": "^1.6.0",
"is-generator-fn": "^2.1.0",
"jest-each": "30.5.0",
"jest-matcher-utils": "30.5.0",
"jest-message-util": "30.5.0",
"jest-runtime": "30.5.0",
"jest-snapshot": "30.5.0",
"jest-util": "30.5.0",
"jest-each": "30.5.2",
"jest-matcher-utils": "30.5.2",
"jest-message-util": "30.5.1",
"jest-runtime": "30.5.2",
"jest-snapshot": "30.5.2",
"jest-util": "30.5.1",
"p-limit": "^3.1.0",
"pretty-format": "30.5.0",
"pretty-format": "30.5.1",
"pure-rand": "^7.0.0",
"slash": "^3.0.0",
"stack-utils": "^2.0.6"
@@ -4190,21 +4220,21 @@
}
},
"node_modules/jest-cli": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-30.5.0.tgz",
"integrity": "sha512-QHZMiy32x2K+NzJ1AuuoCAVc1Y5co0VXib3R7kD9MWcWFflzsD1eJN0wR+mkNlM+ts7C+Bjz0oOoFE5IiHylCg==",
"version": "30.5.2",
"resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-30.5.2.tgz",
"integrity": "sha512-YYYxUUVjFgPvgEleKNKMaYGIFgR3l3832Cl0kRL/oCiDZ03v7wImUtquHl2OOBCCNgprjZgBN5bczS/JklPBDg==",
"dev": true,
"license": "MIT",
"dependencies": {
"@jest/core": "30.5.0",
"@jest/test-result": "30.5.0",
"@jest/types": "30.5.0",
"@jest/core": "30.5.2",
"@jest/test-result": "30.5.2",
"@jest/types": "30.5.1",
"chalk": "^4.1.2",
"exit-x": "^0.2.2",
"import-local": "^3.2.0",
"jest-config": "30.5.0",
"jest-util": "30.5.0",
"jest-validate": "30.5.0",
"jest-config": "30.5.2",
"jest-util": "30.5.1",
"jest-validate": "30.5.1",
"yargs": "^17.7.2"
},
"bin": {
@@ -4223,33 +4253,33 @@
}
},
"node_modules/jest-config": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/jest-config/-/jest-config-30.5.0.tgz",
"integrity": "sha512-gYQl2FqYgiVpyuB7DutBIbJRWaq5VcHdzOXJJ51HNa8J5JrsZehIlzNFW0/9s5uvvcbzM5/LTUizYSbsFErv+w==",
"version": "30.5.2",
"resolved": "https://registry.npmjs.org/jest-config/-/jest-config-30.5.2.tgz",
"integrity": "sha512-U6221OZekabePvGcGPf4raIBKMvYQWFHvhobDJRojOYaFMj2HaGytAdknjDhYc6JTz2fdHW9+6k0wWUDaNeOFQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"@babel/core": "^7.27.4",
"@jest/get-type": "30.5.0",
"@jest/pattern": "30.5.0",
"@jest/test-sequencer": "30.5.0",
"@jest/types": "30.5.0",
"babel-jest": "30.5.0",
"@jest/test-sequencer": "30.5.2",
"@jest/types": "30.5.1",
"babel-jest": "30.5.2",
"chalk": "^4.1.2",
"ci-info": "^4.2.0",
"deepmerge": "^4.3.1",
"glob": "^13.0.6",
"graceful-fs": "^4.2.11",
"jest-circus": "30.5.0",
"jest-circus": "30.5.2",
"jest-docblock": "30.5.0",
"jest-environment-node": "30.5.0",
"jest-environment-node": "30.5.2",
"jest-regex-util": "30.5.0",
"jest-resolve": "30.5.0",
"jest-runner": "30.5.0",
"jest-util": "30.5.0",
"jest-validate": "30.5.0",
"jest-resolve": "30.5.1",
"jest-runner": "30.5.2",
"jest-util": "30.5.1",
"jest-validate": "30.5.1",
"parse-json": "^5.2.0",
"pretty-format": "30.5.0",
"pretty-format": "30.5.1",
"slash": "^3.0.0",
"strip-json-comments": "^3.1.1"
},
@@ -4274,16 +4304,16 @@
}
},
"node_modules/jest-diff": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-30.5.0.tgz",
"integrity": "sha512-QjCfDMwdPFvLxTQmS4/Dswx3PUCiqmSXVLGljMC3SU7YG1qHVoR6b86IH/O2G9k9OMyKXz2vS2Q60VnAozNDwA==",
"version": "30.5.2",
"resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-30.5.2.tgz",
"integrity": "sha512-rBtHnI6BWTiWj3lM7fOLVfChx7R9B0u9VV3PRHawKs79x6ZjW1QoSrKenaigNGWlvhtoi2BqvDbABDie+Os3xQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"@jest/diff-sequences": "30.5.0",
"@jest/get-type": "30.5.0",
"chalk": "^4.1.2",
"pretty-format": "30.5.0"
"pretty-format": "30.5.1"
},
"engines": {
"node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
@@ -4303,49 +4333,50 @@
}
},
"node_modules/jest-each": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/jest-each/-/jest-each-30.5.0.tgz",
"integrity": "sha512-NiMFNhRygJEFqYNt8pnkxppUF6CR486GEpt9rSU6lPBf7KeccaOL0zbjxG8fgJgD//6e7zYdssnlt6j+1kI31A==",
"version": "30.5.2",
"resolved": "https://registry.npmjs.org/jest-each/-/jest-each-30.5.2.tgz",
"integrity": "sha512-GRrW+7fmmgmkvyfEBqc1QFdWnF1Ex5yG6Y6AWL4TTxnkWlKIT98dsKh3P3UuWm6v4XsQwVE6DEzXIPMzWJ3ZbA==",
"dev": true,
"license": "MIT",
"dependencies": {
"@jest/get-type": "30.5.0",
"@jest/types": "30.5.0",
"@jest/types": "30.5.1",
"chalk": "^4.1.2",
"jest-util": "30.5.0",
"pretty-format": "30.5.0"
"jest-regex-util": "30.5.0",
"jest-util": "30.5.1",
"pretty-format": "30.5.1"
},
"engines": {
"node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
},
"node_modules/jest-environment-node": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-30.5.0.tgz",
"integrity": "sha512-bTc79ywKLz0ogbT3JIYuEhgWV4Ffd/cJe06co4v8CyRtlmju8x5gokMlGFR8ARWhmk5SnbDRxmf50XWnlZVhDg==",
"version": "30.5.2",
"resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-30.5.2.tgz",
"integrity": "sha512-Ciz4KgTGIbojxSKpuFImgWJj5EyqfE8xMq9NxWmOXnQywHHS03H9Mv+vaCB29J5pr3JBrY27WbRV18rBdjh8Dg==",
"dev": true,
"license": "MIT",
"dependencies": {
"@jest/environment": "30.5.0",
"@jest/fake-timers": "30.5.0",
"@jest/types": "30.5.0",
"@jest/environment": "30.5.2",
"@jest/fake-timers": "30.5.2",
"@jest/types": "30.5.1",
"@types/node": "*",
"jest-mock": "30.5.0",
"jest-util": "30.5.0",
"jest-validate": "30.5.0"
"jest-mock": "30.5.2",
"jest-util": "30.5.1",
"jest-validate": "30.5.1"
},
"engines": {
"node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
},
"node_modules/jest-haste-map": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-30.5.0.tgz",
"integrity": "sha512-0FStogBslBVOEqTOJr4oXMtFitmrWp9WscG6Gbns88i0YAuMXijCT2G5VMfg/HCR4QAnL+OF2C2ednag+HlDuA==",
"version": "30.5.1",
"resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-30.5.1.tgz",
"integrity": "sha512-VIFgt67jW480YDxKfEv9IYQKrFpYt7bOCMn3VsnjK7AK9qo7p6acpnA1DHwsVOULE3dTaYew/6JaTD/d0VDHoQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"@jest/types": "30.5.0",
"@jest/types": "30.5.1",
"@parcel/watcher": "^2.6.0",
"@types/node": "*",
"anymatch": "^3.1.3",
@@ -4353,8 +4384,8 @@
"fdir": "^6.5.0",
"graceful-fs": "^4.2.11",
"jest-regex-util": "30.5.0",
"jest-util": "30.5.0",
"jest-worker": "30.5.0",
"jest-util": "30.5.1",
"jest-worker": "30.5.1",
"picomatch": "^4.0.3"
},
"engines": {
@@ -4393,50 +4424,50 @@
}
},
"node_modules/jest-leak-detector": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-30.5.0.tgz",
"integrity": "sha512-Mq11ceAkNR250Iv45RoOwuG9fb4kYbJ02qoyL7A0nCI8FV5+aG/THmcEUx5uR2dNSa4KOtz+xBKrJ8cZPhPpuQ==",
"version": "30.5.1",
"resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-30.5.1.tgz",
"integrity": "sha512-gt4GT2aWgEoCNTcBe4rqS74xTIUJxi+UD9SNSu9aOk5LmTEd6fS5KSTmAKAfitCCktQHNN+upUuL6EkBfFbMDQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"@jest/get-type": "30.5.0",
"pretty-format": "30.5.0"
"pretty-format": "30.5.1"
},
"engines": {
"node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
},
"node_modules/jest-matcher-utils": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-30.5.0.tgz",
"integrity": "sha512-EfaYMC9f9ds7fahB/LYFTgd1Z2RS9Vpm2e46gazij0onkpoQG7Daq+MLm8/gQVqWwRVjL/RNDggbFx9MsrJEmQ==",
"version": "30.5.2",
"resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-30.5.2.tgz",
"integrity": "sha512-lFkB365PTIHOhPzwrb9T6gvlDnPpOZ7/c3ewOKKB7bzztqjVrtlyRL2MkyfJXpyY2u2SKw001JKrTx14fBUFcQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"@jest/get-type": "30.5.0",
"chalk": "^4.1.2",
"jest-diff": "30.5.0",
"pretty-format": "30.5.0"
"jest-diff": "30.5.2",
"pretty-format": "30.5.1"
},
"engines": {
"node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
},
"node_modules/jest-message-util": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-30.5.0.tgz",
"integrity": "sha512-dBYMhplGfspKaCnVk9TUy1cZnknWubpuPNEputjz0YJk1G/92R45rn45BvbPMPMtC5LVcIdxJGPOaOSQTiuzJw==",
"version": "30.5.1",
"resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-30.5.1.tgz",
"integrity": "sha512-UdQlLdd9wL/Ys7xRErckqwD6wPlSZYueosSWuHc1r2ztGLwlgPvtSJq2+BPEgaEY13WLvfFbmhTj8pba0Sd1jg==",
"dev": true,
"license": "MIT",
"dependencies": {
"@babel/code-frame": "^7.27.1",
"@jest/types": "30.5.0",
"@jest/types": "30.5.1",
"@types/stack-utils": "^2.0.3",
"chalk": "^4.1.2",
"graceful-fs": "^4.2.11",
"jest-util": "30.5.0",
"jest-util": "30.5.1",
"picomatch": "^4.0.3",
"pretty-format": "30.5.0",
"pretty-format": "30.5.1",
"slash": "^3.0.0",
"stack-utils": "^2.0.6"
},
@@ -4458,16 +4489,16 @@
}
},
"node_modules/jest-mock": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-30.5.0.tgz",
"integrity": "sha512-bP5MHZpkYrV7xpV+yvhl36DPcXoEmTR57Un5EACcdVpMY7mpkDefCBq+V4mhcjE/3rwUajT6OTrcJTN7EwN1BA==",
"version": "30.5.2",
"resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-30.5.2.tgz",
"integrity": "sha512-KTHb37Fhj8xY8qPFvTFaFJHcdsumQp+ExsUlgoX232Agmc706gagBs53+CYvulV7MVQo9AgXOUxsqzzVBoJlrA==",
"dev": true,
"license": "MIT",
"dependencies": {
"@jest/expect-utils": "30.5.0",
"@jest/types": "30.5.0",
"@jest/expect-utils": "30.5.2",
"@jest/types": "30.5.1",
"@types/node": "*",
"jest-util": "30.5.0"
"jest-util": "30.5.1"
},
"engines": {
"node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
@@ -4484,17 +4515,17 @@
}
},
"node_modules/jest-resolve": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-30.5.0.tgz",
"integrity": "sha512-NFvQWJ4G7e2kN5712iG+12Xr325NRFGAIhovrwLfgq5Oqd4bFHITw4CzcFkZGp1GTCqemC4v1l8/yZzedKZkjw==",
"version": "30.5.1",
"resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-30.5.1.tgz",
"integrity": "sha512-wprhLejRtwN6h8ZgaqC0eYjGJ1uMdGPT/+b3eFncbG4NWuuP9QL+vWwRinu9waw7hkOLcpMJGVJAMgBwsPssMQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"chalk": "^4.1.2",
"graceful-fs": "^4.2.11",
"jest-haste-map": "30.5.0",
"jest-util": "30.5.0",
"jest-validate": "30.5.0",
"jest-haste-map": "30.5.1",
"jest-util": "30.5.1",
"jest-validate": "30.5.1",
"slash": "^3.0.0",
"unrs-resolver": "^1.12.1"
},
@@ -4503,47 +4534,47 @@
}
},
"node_modules/jest-resolve-dependencies": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-30.5.0.tgz",
"integrity": "sha512-TnSBAp3wGOnqXBmLT3OXtJkugw6Vj2KU0IPde2EJmbGns/QMoNlkauJ7jZ8KYaxONSpx0o4pUvi+u1Q/LSk3Pg==",
"version": "30.5.2",
"resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-30.5.2.tgz",
"integrity": "sha512-GMI0DP5enX9Z2qW2zFy1bOkrCfWAOPRJQ7qHt0pdfrxBPsgWxglMPrRSK2TX/wRWYxcPRSLFg3Z88qPOzHx7FQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"jest-regex-util": "30.5.0",
"jest-snapshot": "30.5.0"
"jest-snapshot": "30.5.2"
},
"engines": {
"node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
}
},
"node_modules/jest-runner": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-30.5.0.tgz",
"integrity": "sha512-Q6Yt+1LvXvEstvru6sQLT7OQYC77VNl6dK0KEvBkeOHgThmXDqNp3Ox9TglDWFHU85pemqTNdKwxfnmO3vgrdA==",
"version": "30.5.2",
"resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-30.5.2.tgz",
"integrity": "sha512-/B6px7hiiNhVSRwuv9AGn0nawYvwsHeQZ3ItTd5Gp2diFd0EOKaWVeWqcbw3L88vx1GfpCKjQkxWItZCTl11Rw==",
"dev": true,
"license": "MIT",
"dependencies": {
"@jest/console": "30.5.0",
"@jest/environment": "30.5.0",
"@jest/source-map": "30.5.0",
"@jest/test-result": "30.5.0",
"@jest/transform": "30.5.0",
"@jest/types": "30.5.0",
"@jest/console": "30.5.2",
"@jest/environment": "30.5.2",
"@jest/source-map": "30.5.2",
"@jest/test-result": "30.5.2",
"@jest/transform": "30.5.2",
"@jest/types": "30.5.1",
"@types/node": "*",
"chalk": "^4.1.2",
"emittery": "^0.13.1",
"exit-x": "^0.2.2",
"graceful-fs": "^4.2.11",
"jest-docblock": "30.5.0",
"jest-environment-node": "30.5.0",
"jest-haste-map": "30.5.0",
"jest-leak-detector": "30.5.0",
"jest-message-util": "30.5.0",
"jest-resolve": "30.5.0",
"jest-runtime": "30.5.0",
"jest-util": "30.5.0",
"jest-watcher": "30.5.0",
"jest-worker": "30.5.0",
"jest-environment-node": "30.5.2",
"jest-haste-map": "30.5.1",
"jest-leak-detector": "30.5.1",
"jest-message-util": "30.5.1",
"jest-resolve": "30.5.1",
"jest-runtime": "30.5.2",
"jest-util": "30.5.1",
"jest-watcher": "30.5.2",
"jest-worker": "30.5.1",
"p-limit": "^3.1.0"
},
"engines": {
@@ -4551,19 +4582,19 @@
}
},
"node_modules/jest-runtime": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-30.5.0.tgz",
"integrity": "sha512-VTRz0sRIw2EISeHigx1O+CMuwoG4+RKJjF8dp8okzFaDNQEcv5Mw0h5QW8VJXgb2CRF4gZIjSEBb2jdzXPagFQ==",
"version": "30.5.2",
"resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-30.5.2.tgz",
"integrity": "sha512-0paUAHBlheai10A3XSy9Xh+YBG0IROy+/qzcDPzQ/nbbXrznQzeWy5qniICWK6d3W3scaRQCVAbXdcK0ibBq4w==",
"dev": true,
"license": "MIT",
"dependencies": {
"@jest/environment": "30.5.0",
"@jest/fake-timers": "30.5.0",
"@jest/globals": "30.5.0",
"@jest/source-map": "30.5.0",
"@jest/test-result": "30.5.0",
"@jest/transform": "30.5.0",
"@jest/types": "30.5.0",
"@jest/environment": "30.5.2",
"@jest/fake-timers": "30.5.2",
"@jest/globals": "30.5.2",
"@jest/source-map": "30.5.2",
"@jest/test-result": "30.5.2",
"@jest/transform": "30.5.2",
"@jest/types": "30.5.1",
"@types/node": "*",
"chalk": "^4.1.2",
"cjs-module-lexer": "^2.2.0",
@@ -4571,13 +4602,13 @@
"es-module-lexer": "^2.1.0",
"glob": "^13.0.6",
"graceful-fs": "^4.2.11",
"jest-haste-map": "30.5.0",
"jest-message-util": "30.5.0",
"jest-mock": "30.5.0",
"jest-haste-map": "30.5.1",
"jest-message-util": "30.5.1",
"jest-mock": "30.5.2",
"jest-regex-util": "30.5.0",
"jest-resolve": "30.5.0",
"jest-snapshot": "30.5.0",
"jest-util": "30.5.0",
"jest-resolve": "30.5.1",
"jest-snapshot": "30.5.2",
"jest-util": "30.5.1",
"slash": "^3.0.0",
"strip-bom": "^4.0.0"
},
@@ -4586,9 +4617,9 @@
}
},
"node_modules/jest-snapshot": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-30.5.0.tgz",
"integrity": "sha512-pZWETdcqmKve9MDTE/AX6RaeAbRhzKhhAXGozAW8Pg2FfOSdUrQ/7D+VdwE3fLQsqjpITXJVQvYVZoMEzrUl0Q==",
"version": "30.5.2",
"resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-30.5.2.tgz",
"integrity": "sha512-jKIdes25AnAH73dOCi2qE6J6vHJ6L2vyBS11M89kT50DVJcLTf2AOjvcc+2vVaN8lUbY5v2R83aqXo3Ro9fqYA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4597,20 +4628,20 @@
"@babel/plugin-syntax-jsx": "^7.27.1",
"@babel/plugin-syntax-typescript": "^7.27.1",
"@babel/types": "^7.27.3",
"@jest/expect-utils": "30.5.0",
"@jest/expect-utils": "30.5.2",
"@jest/get-type": "30.5.0",
"@jest/snapshot-utils": "30.5.0",
"@jest/transform": "30.5.0",
"@jest/types": "30.5.0",
"@jest/snapshot-utils": "30.5.1",
"@jest/transform": "30.5.2",
"@jest/types": "30.5.1",
"babel-preset-current-node-syntax": "^1.2.0",
"chalk": "^4.1.2",
"expect": "30.5.0",
"expect": "30.5.2",
"graceful-fs": "^4.2.11",
"jest-diff": "30.5.0",
"jest-matcher-utils": "30.5.0",
"jest-message-util": "30.5.0",
"jest-util": "30.5.0",
"pretty-format": "30.5.0",
"jest-diff": "30.5.2",
"jest-matcher-utils": "30.5.2",
"jest-message-util": "30.5.1",
"jest-util": "30.5.1",
"pretty-format": "30.5.1",
"semver": "^7.7.2",
"synckit": "^0.11.8"
},
@@ -4632,13 +4663,13 @@
}
},
"node_modules/jest-util": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.5.0.tgz",
"integrity": "sha512-lzU4aGUWaS+2X/B0CmgheDasfnsVlRfZh/rNQxB9b9s8cSYUq5BcqdQA95ld+KqJXBUVVt1sqnMQ2T3OxIalmg==",
"version": "30.5.1",
"resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.5.1.tgz",
"integrity": "sha512-yKuxmNy2rSbTXw+3SIPanJo+nV4/BS1p26v44IYBFMsswSQySfMMcPHErnOncda7i9HEz0q605rIhSTBVgrZTg==",
"dev": true,
"license": "MIT",
"dependencies": {
"@jest/types": "30.5.0",
"@jest/types": "30.5.1",
"@types/node": "*",
"chalk": "^4.1.2",
"ci-info": "^4.2.0",
@@ -4663,18 +4694,18 @@
}
},
"node_modules/jest-validate": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-30.5.0.tgz",
"integrity": "sha512-N/hsPYKgBSzBeVZ2RHCs3yvBbTZNPX7Be8q33zhyo/yeFneBL1swzly31LYU4LJ3zJM9e8TxSM8IYLo2SDJZYQ==",
"version": "30.5.1",
"resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-30.5.1.tgz",
"integrity": "sha512-i/buJ56wTpxihE93hQYNMfdOThS87+HGvLZzZJmU4xggPcdTYQq051iwALLCHp3q+SkCGH+EFejQZz5EbBSkkg==",
"dev": true,
"license": "MIT",
"dependencies": {
"@jest/get-type": "30.5.0",
"@jest/types": "30.5.0",
"@jest/types": "30.5.1",
"camelcase": "^6.3.0",
"chalk": "^4.1.2",
"leven": "^3.1.0",
"pretty-format": "30.5.0"
"pretty-format": "30.5.1"
},
"engines": {
"node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0"
@@ -4694,19 +4725,19 @@
}
},
"node_modules/jest-watcher": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-30.5.0.tgz",
"integrity": "sha512-ujjnEoL4Uu+Swu3WRwYenWMB9JMEiD2T3OypnveMJ64S/1r/5G8eC4OQ1wEOgYWQqMi+mT+buzccflCHr/XJ9Q==",
"version": "30.5.2",
"resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-30.5.2.tgz",
"integrity": "sha512-rqRgg4R11GA9m1UsEZwQeixHsgZReCn6TOHAHtIH33yXrIvoX0OGPA20Yzzjkz7X40fZvcRSxEpQppYPcWzmcQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"@jest/test-result": "30.5.0",
"@jest/types": "30.5.0",
"@jest/test-result": "30.5.2",
"@jest/types": "30.5.1",
"@types/node": "*",
"ansi-escapes": "^4.3.2",
"chalk": "^4.1.2",
"emittery": "^0.13.1",
"jest-util": "30.5.0",
"jest-util": "30.5.1",
"string-length": "^4.0.2"
},
"engines": {
@@ -4714,15 +4745,15 @@
}
},
"node_modules/jest-worker": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-30.5.0.tgz",
"integrity": "sha512-7kFk/607EoynNHLJa20daivkElM+c9PrCLduYy6AlMkYrXbh5TmVtW1BLXE05Y8baAFsJHMoC3xs2QRRTotwLw==",
"version": "30.5.1",
"resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-30.5.1.tgz",
"integrity": "sha512-Cbxh5v7AoLuFRmFJSM4/aHdQ68rjXvUWr716EE0Dh3I7T+T/3FgFKhOERGXHcU2Meftq9+9zxPM3TSNyI9D+HA==",
"dev": true,
"license": "MIT",
"dependencies": {
"@types/node": "*",
"@ungap/structured-clone": "^1.3.0",
"jest-util": "30.5.0",
"jest-util": "30.5.1",
"merge-stream": "^2.0.0",
"supports-color": "^8.1.1"
},
@@ -5215,9 +5246,9 @@
}
},
"node_modules/pretty-format": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.5.0.tgz",
"integrity": "sha512-mzNzBErpHwM0zpmWS7ExOv62yhQhvd546nUuFqVR0dmnJB59tfrw9sjDF0DJknwsr59OXP0buwJ7PaKguczHSg==",
"version": "30.5.1",
"resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.5.1.tgz",
"integrity": "sha512-byhRAPguVKMQIj4kjJwJ5lAskVhfuiSdiYl/aLTWpgkGEmic2jYhJh1yE9ih8Ox44Xg9ccCT11/S6QrzSJuNrg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7044,31 +7075,31 @@
"dev": true
},
"@jest/console": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/@jest/console/-/console-30.5.0.tgz",
"integrity": "sha512-BI1DpOedrJqbrYVi9yNhDWGjqphR/+gsM4STmg2+VaeXm7851hvpBDyKOZGMXATTrGEnFuEseQvLCtrrRmG0GQ==",
"version": "30.5.2",
"resolved": "https://registry.npmjs.org/@jest/console/-/console-30.5.2.tgz",
"integrity": "sha512-e8sQC4pCMHPBrPX7Hk8TJr+DM5dkUnImSTNag8SEWFAFAF6xIz4AJvCKapnrdHnZxep4bxw4PhG+ZbimYBMyKw==",
"dev": true,
"requires": {
"@jest/types": "30.5.0",
"@jest/types": "30.5.1",
"@types/node": "*",
"chalk": "^4.1.2",
"jest-message-util": "30.5.0",
"jest-util": "30.5.0",
"jest-message-util": "30.5.1",
"jest-util": "30.5.1",
"slash": "^3.0.0"
}
},
"@jest/core": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/@jest/core/-/core-30.5.0.tgz",
"integrity": "sha512-DLjRME+NY//j+UDTSfWnjoP0srrdR3DrJRy7yFZktGIwzpN2iVy2vMo0jziZ5c2Ij7bOwlJRXKVWtxZusazOJg==",
"version": "30.5.2",
"resolved": "https://registry.npmjs.org/@jest/core/-/core-30.5.2.tgz",
"integrity": "sha512-/jqvFWoJF7LV1a6AUpYMbMm+2yIYsHJfR474H0SCzr9k8tnO/jl9wRg6zSG6lxgf6EozNlCG4amFzWsbZSvvZA==",
"dev": true,
"requires": {
"@jest/console": "30.5.0",
"@jest/console": "30.5.2",
"@jest/pattern": "30.5.0",
"@jest/reporters": "30.5.0",
"@jest/test-result": "30.5.0",
"@jest/transform": "30.5.0",
"@jest/types": "30.5.0",
"@jest/reporters": "30.5.2",
"@jest/test-result": "30.5.2",
"@jest/transform": "30.5.2",
"@jest/types": "30.5.1",
"@types/node": "*",
"ansi-escapes": "^4.3.2",
"chalk": "^4.1.2",
@@ -7076,20 +7107,20 @@
"exit-x": "^0.2.2",
"fast-json-stable-stringify": "^2.1.0",
"graceful-fs": "^4.2.11",
"jest-changed-files": "30.5.0",
"jest-config": "30.5.0",
"jest-haste-map": "30.5.0",
"jest-message-util": "30.5.0",
"jest-changed-files": "30.5.1",
"jest-config": "30.5.2",
"jest-haste-map": "30.5.1",
"jest-message-util": "30.5.1",
"jest-regex-util": "30.5.0",
"jest-resolve": "30.5.0",
"jest-resolve-dependencies": "30.5.0",
"jest-runner": "30.5.0",
"jest-runtime": "30.5.0",
"jest-snapshot": "30.5.0",
"jest-util": "30.5.0",
"jest-validate": "30.5.0",
"jest-watcher": "30.5.0",
"pretty-format": "30.5.0",
"jest-resolve": "30.5.1",
"jest-resolve-dependencies": "30.5.2",
"jest-runner": "30.5.2",
"jest-runtime": "30.5.2",
"jest-snapshot": "30.5.2",
"jest-util": "30.5.1",
"jest-validate": "30.5.1",
"jest-watcher": "30.5.2",
"pretty-format": "30.5.1",
"slash": "^3.0.0"
}
},
@@ -7100,48 +7131,48 @@
"dev": true
},
"@jest/environment": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/@jest/environment/-/environment-30.5.0.tgz",
"integrity": "sha512-HUaqexIauIh69IQ4NTuPDEUCB8g8T4TOPSIzQOS18mwI/KEHKQk1j013K2o6ra031szZE2t5jGmVx3xbzdjgKA==",
"version": "30.5.2",
"resolved": "https://registry.npmjs.org/@jest/environment/-/environment-30.5.2.tgz",
"integrity": "sha512-nwFPOUMbmsjNNRCpnJpB9HbSZu4C07wDDds++5j+j1MezzPLxMPDdbdUVjr2o4RULDOValnDd70taPFI1EtxAg==",
"dev": true,
"requires": {
"@jest/fake-timers": "30.5.0",
"@jest/types": "30.5.0",
"@jest/fake-timers": "30.5.2",
"@jest/types": "30.5.1",
"@types/node": "*",
"jest-mock": "30.5.0"
"jest-mock": "30.5.2"
}
},
"@jest/expect": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/@jest/expect/-/expect-30.5.0.tgz",
"integrity": "sha512-jEmgmgJEobJ3zEhDOGp1VAJ6JkoVelpS8uZ1ae1Ul/5lP78UKJKmmU0lciJwd6JdnqOXHaaS/QCKwbf1dHI9MA==",
"version": "30.5.2",
"resolved": "https://registry.npmjs.org/@jest/expect/-/expect-30.5.2.tgz",
"integrity": "sha512-2E+1Pg6jJxbRjLNLpciC71iri/3qsKJL222/aXJEFwC0VdUSvfS+JZQQLEVjUYYc8t8pQu2MGE3cF2+bNTYRsg==",
"dev": true,
"requires": {
"expect": "30.5.0",
"jest-snapshot": "30.5.0"
"expect": "30.5.2",
"jest-snapshot": "30.5.2"
}
},
"@jest/expect-utils": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-30.5.0.tgz",
"integrity": "sha512-5j0ztPxSy3McUJihjkDdCyCfjvT2hxykFTWsgEBZKB8qsw9ALdCiGTpTRH5gnf/d+qI4SflYUJ0dWNbzjQCWbA==",
"version": "30.5.2",
"resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-30.5.2.tgz",
"integrity": "sha512-d/HOLSrJUlBIl6n3LzOa7cjW3xdePm5H5gQw2lixZ/0h157l9sw3mLblzFqnPcTbhDzhRQdBOX3A3KcG73nm5Q==",
"dev": true,
"requires": {
"@jest/get-type": "30.5.0"
}
},
"@jest/fake-timers": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-30.5.0.tgz",
"integrity": "sha512-sg8xIbYwe5GdB/vT3/0qrDIpO7Ov9mazHi++M95uynmDKEZ70G1r169AWct73H07VrTZhrz1SJEfLtjYv8tE3A==",
"version": "30.5.2",
"resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-30.5.2.tgz",
"integrity": "sha512-GKk0h0tKT5SpDPxDhPg3r9mm5s8/YCBzVNMOGdRiQXwUiMsjU10mVPlMaQstH6/cu50vOb8N9oQUMETHuwwxKw==",
"dev": true,
"requires": {
"@jest/types": "30.5.0",
"@jest/types": "30.5.1",
"@sinonjs/fake-timers": "^15.4.0",
"@types/node": "*",
"jest-message-util": "30.5.0",
"jest-mock": "30.5.0",
"jest-util": "30.5.0"
"jest-message-util": "30.5.1",
"jest-mock": "30.5.2",
"jest-util": "30.5.1"
}
},
"@jest/get-type": {
@@ -7151,15 +7182,15 @@
"dev": true
},
"@jest/globals": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/@jest/globals/-/globals-30.5.0.tgz",
"integrity": "sha512-h7eJx534czwL8lQMYB0hwLT4/HquO8EX/RtYL7RNUHyUyWWVciYjoudN4Ns5JmNvn2/jh0Vm9UstZjEzJJ5EsQ==",
"version": "30.5.2",
"resolved": "https://registry.npmjs.org/@jest/globals/-/globals-30.5.2.tgz",
"integrity": "sha512-62zfS+dL+M5aTNHXCNLyqD+j4oqxTIzDYrZbpqMP8Yn+gvlAGyzC6BSPNb1ZmFOakV1RtFYX/O3FCQXSWmQdgg==",
"dev": true,
"requires": {
"@jest/environment": "30.5.0",
"@jest/expect": "30.5.0",
"@jest/types": "30.5.0",
"jest-mock": "30.5.0"
"@jest/environment": "30.5.2",
"@jest/expect": "30.5.2",
"@jest/types": "30.5.1",
"jest-mock": "30.5.2"
}
},
"@jest/pattern": {
@@ -7185,16 +7216,16 @@
"dev": true
},
"@jest/reporters": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-30.5.0.tgz",
"integrity": "sha512-FEAuusWm+PUOn9ydjaHhpOpyPmS6IbGE04HaKTuUI4zd8eqYZiXiNLoCsdCog/l2XnNj53E9pFy64UltcvfJKg==",
"version": "30.5.2",
"resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-30.5.2.tgz",
"integrity": "sha512-ev6E9iG73twQcfAfoTnviuYkr3yOrYbzAtMFCimv2fxHXPIp9PBt2u1wNMt0aYWgl8FPwIcS8oqRJg6alnht4Q==",
"dev": true,
"requires": {
"@bcoe/v8-coverage": "^0.2.3",
"@jest/console": "30.5.0",
"@jest/test-result": "30.5.0",
"@jest/transform": "30.5.0",
"@jest/types": "30.5.0",
"@jest/console": "30.5.2",
"@jest/test-result": "30.5.2",
"@jest/transform": "30.5.2",
"@jest/types": "30.5.1",
"@jridgewell/trace-mapping": "^0.3.31",
"@types/node": "*",
"chalk": "^4.1.2",
@@ -7207,9 +7238,9 @@
"istanbul-lib-report": "^3.0.0",
"istanbul-lib-source-maps": "^5.0.0",
"istanbul-reports": "^3.1.3",
"jest-message-util": "30.5.0",
"jest-util": "30.5.0",
"jest-worker": "30.5.0",
"jest-message-util": "30.5.1",
"jest-util": "30.5.1",
"jest-worker": "30.5.1",
"slash": "^3.0.0",
"string-length": "^4.0.2",
"v8-to-istanbul": "^9.0.1"
@@ -7225,21 +7256,21 @@
}
},
"@jest/snapshot-utils": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/@jest/snapshot-utils/-/snapshot-utils-30.5.0.tgz",
"integrity": "sha512-iWQtIsi2dRsO2oWzVceOeynuRJiYTW8gsDVp5wFQ02ipHluQsNgBpasWSHiawVxukIlsGLdCtCSbIEK7fPtpvQ==",
"version": "30.5.1",
"resolved": "https://registry.npmjs.org/@jest/snapshot-utils/-/snapshot-utils-30.5.1.tgz",
"integrity": "sha512-V3wnxNtiVmw5PPVg433Cn3VdXnsOeu/ofLw3KC04Bn2y1wIlU5kozXQn48rhrgj/02LrCVtntTEF1yBha0XSUw==",
"dev": true,
"requires": {
"@jest/types": "30.5.0",
"@jest/types": "30.5.1",
"chalk": "^4.1.2",
"graceful-fs": "^4.2.11",
"natural-compare": "^1.4.0"
}
},
"@jest/source-map": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-30.5.0.tgz",
"integrity": "sha512-xWpTJP9D0bDFGbPGT8XuWSwwha/iHADyyKzUnMx4UbdgnHugxrDaQFO4RZ8x4ZsFzRP6pNii8uvlgKCDxCIuDg==",
"version": "30.5.2",
"resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-30.5.2.tgz",
"integrity": "sha512-c5CehvkbfHX6yyNg7bMn2ylqlp9AHXuZ/3hPH/Lh5bxD/vefd/lV9HBjMqXef9yQNqkdwyZvkLSVSwB38hy8Qw==",
"dev": true,
"requires": {
"@jridgewell/trace-mapping": "^0.3.31",
@@ -7249,55 +7280,55 @@
}
},
"@jest/test-result": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-30.5.0.tgz",
"integrity": "sha512-9IlPqUzUMkVDmoDqSSrVVLroVotgN3hTUPWPwq24XWXhh1Zpg915RXZ5pgRJ/7j4YE/kng5nqjSn4p3S68SZJA==",
"version": "30.5.2",
"resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-30.5.2.tgz",
"integrity": "sha512-eO6YU5rsLfs60ne694e0IAmRgeBnoA8mu0nlxXDbl/1j5km0o2vO9/VbbUIKIH+WRKKEI+ELgwraRGn2Lhep8g==",
"dev": true,
"requires": {
"@jest/console": "30.5.0",
"@jest/types": "30.5.0",
"@jest/console": "30.5.2",
"@jest/types": "30.5.1",
"@types/istanbul-lib-coverage": "^2.0.6",
"collect-v8-coverage": "^1.0.2"
}
},
"@jest/test-sequencer": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-30.5.0.tgz",
"integrity": "sha512-TXlvSDIVv482b83hD8A8WtxDJEmGF47f60W6jRXOQL0Isfs3hKtk4rZIm9R/jLzAibg8+c56y+Q00BQs8R7Xcg==",
"version": "30.5.2",
"resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-30.5.2.tgz",
"integrity": "sha512-bmij8jZyYAC47ExT2GeP7PcrlwSNS+Bp3KeRuBH88gpcxqDv6fljN8PemS4J/lLZ79xb6mpaennQTTq0zUAVVg==",
"dev": true,
"requires": {
"@jest/test-result": "30.5.0",
"@jest/test-result": "30.5.2",
"graceful-fs": "^4.2.11",
"jest-haste-map": "30.5.0",
"jest-haste-map": "30.5.1",
"slash": "^3.0.0"
}
},
"@jest/transform": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/@jest/transform/-/transform-30.5.0.tgz",
"integrity": "sha512-n1cYhoByyULEIXi64wbT4Lq91qeT1E6bwpM//sprFXhw955qaiHTdAmy1c1rNFGB6fCf1J+nxDUSf3RGwgZP5A==",
"version": "30.5.2",
"resolved": "https://registry.npmjs.org/@jest/transform/-/transform-30.5.2.tgz",
"integrity": "sha512-LBGwmaE886C41jDZ65eqR1YbXM7642MK3ZhTowZd5+xDlrDLuf4ePuDdDmVSvcr8NTVJ3MqxLkMbUCzuigUaoQ==",
"dev": true,
"requires": {
"@babel/core": "^7.27.4",
"@jest/types": "30.5.0",
"@jest/types": "30.5.1",
"@jridgewell/trace-mapping": "^0.3.31",
"babel-plugin-istanbul": "^8.0.0",
"chalk": "^4.1.2",
"convert-source-map": "^2.0.0",
"fast-json-stable-stringify": "^2.1.0",
"graceful-fs": "^4.2.11",
"jest-haste-map": "30.5.0",
"jest-haste-map": "30.5.1",
"jest-regex-util": "30.5.0",
"jest-util": "30.5.0",
"jest-util": "30.5.1",
"pirates": "^4.0.7",
"slash": "^3.0.0",
"write-file-atomic": "^5.0.1"
}
},
"@jest/types": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/@jest/types/-/types-30.5.0.tgz",
"integrity": "sha512-s1N+79S4Yp9ZgklCauZXi+YPJdCdtStNYQT32stuD6EeQaIBGHoUfyj2P0YWy8RmuQfaJboO+ulxEvEheR/POQ==",
"version": "30.5.1",
"resolved": "https://registry.npmjs.org/@jest/types/-/types-30.5.1.tgz",
"integrity": "sha512-LvVYn83nnXPl+Rg98nvcFgjx6nRMTArhSn6RAX/w3ELn54S8A42TYZvsCMdGUqTM8S0wyXbtlQdU6Hi6dykj9g==",
"dev": true,
"requires": {
"@jest/pattern": "30.5.0",
@@ -7348,9 +7379,9 @@
}
},
"@napi-rs/wasm-runtime": {
"version": "1.2.5",
"resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.2.5.tgz",
"integrity": "sha512-HshSvXzmBxNzqejd3k/KemgQ3hdREUYFRRrgxOZ+gPljDIsO2SDZrVZMd4Z/HsxudQbE62OVyVFE8z9BCurfjA==",
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.2.4.tgz",
"integrity": "sha512-AJxoUD2/15ESHbvpcyjU274nsAPLuOtPHCk0vKJM5pj//Fg/B1FXNWjPnXTT9PymCYYiHo4zPj0ZomXBKhoy7g==",
"dev": true,
"optional": true,
"requires": {
@@ -7880,12 +7911,12 @@
"dev": true
},
"babel-jest": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-30.5.0.tgz",
"integrity": "sha512-PrhPHlKC+MsLnuNzgIH/y1dkz1f6cSfKWaQeaG8WxLMuG44dYWQ8E9uRrsBbAGCU/3+BEFYPN4d6G3Zc5Y+waA==",
"version": "30.5.2",
"resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-30.5.2.tgz",
"integrity": "sha512-ES8WeJ2fNWPEDunyAtUfJ12nHyaWUloCHdkfK2oW5uSoQSUmjNKdWiGaXJITJwvFEWoD/evHEg/QoCXAvLaQqQ==",
"dev": true,
"requires": {
"@jest/transform": "30.5.0",
"@jest/transform": "30.5.2",
"@types/babel__core": "^7.20.5",
"babel-plugin-istanbul": "^8.0.0",
"babel-preset-jest": "30.5.0",
@@ -8034,9 +8065,9 @@
"dev": true
},
"cjs-module-lexer": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-2.3.0.tgz",
"integrity": "sha512-lmNyBzi6iYiqyrExTctfmjd8tInx+dHu9PBomTfH5RXS53c27JMFJgzNv5TyAnm3PgGf+MLy0+Ws41/HlVxdKQ==",
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-2.2.1.tgz",
"integrity": "sha512-Ca8swihM+/4yKecYHY52kgJd300hi2lADU/a1RxNTRe+RJ9jvqQlESpbz9DnG9mowez8qwXHB8qYdIUw9e+F5Q==",
"dev": true
},
"cliui": {
@@ -8260,17 +8291,17 @@
"dev": true
},
"expect": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/expect/-/expect-30.5.0.tgz",
"integrity": "sha512-8fiMWcEjPU7B9nErC4FtFcCzf2tC6I75Qf7m8wzBAWC2taZmcno3yAFEjIQL34SwoGZNgPf63UDiJLyh4SMPaw==",
"version": "30.5.2",
"resolved": "https://registry.npmjs.org/expect/-/expect-30.5.2.tgz",
"integrity": "sha512-0LNuMvs8/5mRYhnCR4k+lGV7fqPMs6Bnksda4S3zsCUmdxBpAn4zU4NNzXdq1pMKe/H4W5t/zVIDSJ/H3e0vDA==",
"dev": true,
"requires": {
"@jest/expect-utils": "30.5.0",
"@jest/expect-utils": "30.5.2",
"@jest/get-type": "30.5.0",
"jest-matcher-utils": "30.5.0",
"jest-message-util": "30.5.0",
"jest-mock": "30.5.0",
"jest-util": "30.5.0"
"jest-matcher-utils": "30.5.2",
"jest-message-util": "30.5.1",
"jest-mock": "30.5.2",
"jest-util": "30.5.1"
}
},
"fast-json-stable-stringify": {
@@ -8573,115 +8604,115 @@
}
},
"jest": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/jest/-/jest-30.5.0.tgz",
"integrity": "sha512-HeFeOUEKh5gjnp1rjuSCse8Dhj0Y3KA8lsZ3azr4Wnq1nCxwMBu35MDc9mp8iblZxmeAz6wV4P241tyUB7J2Ew==",
"version": "30.5.2",
"resolved": "https://registry.npmjs.org/jest/-/jest-30.5.2.tgz",
"integrity": "sha512-3gnpdBIza8ijCl3iMV9ChE3hSt1+46865qqod863gQtJr1DixOkAU5DoGbi3u+XlRcw++BhZQMu/y4xBdHBvSQ==",
"dev": true,
"requires": {
"@jest/core": "30.5.0",
"@jest/types": "30.5.0",
"@jest/core": "30.5.2",
"@jest/types": "30.5.1",
"import-local": "^3.2.0",
"jest-cli": "30.5.0"
"jest-cli": "30.5.2"
}
},
"jest-changed-files": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-30.5.0.tgz",
"integrity": "sha512-dq1x8JiEnHkJDxxOrF6UJDivBRAQMwAa5tzr+VX3um0SfyMFseUPQUbe51wLwggfoa5h/EmOtSpdJxxkzSlNRQ==",
"version": "30.5.1",
"resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-30.5.1.tgz",
"integrity": "sha512-0+bvMM/ENhDI29Z8q1r4HxiDIi4G5tnBmSw4esfPQoj9q8Nik7KIyuxHkTVnnniJQf05SxpGaKDQ+4h28ynGPg==",
"dev": true,
"requires": {
"execa": "^5.1.1",
"jest-util": "30.5.0",
"jest-util": "30.5.1",
"p-limit": "^3.1.0"
}
},
"jest-circus": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-30.5.0.tgz",
"integrity": "sha512-T3v7uM4wwCu+RQicjsAWCgoL3CiyuX3THSKwv2uMb9N2bMUgb+HfwDWEUma85vOGbvQNQ/YfoCXF1OCZot0ZEw==",
"version": "30.5.2",
"resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-30.5.2.tgz",
"integrity": "sha512-vffFgjs5JSJ9q4ds1vNW3klKYPJfYfIY61LT/zaZgvTeASJOWZUt8LBfHgIcV4rwxlPBLl/ePBGccHEclS4PlQ==",
"dev": true,
"requires": {
"@jest/environment": "30.5.0",
"@jest/expect": "30.5.0",
"@jest/test-result": "30.5.0",
"@jest/types": "30.5.0",
"@jest/environment": "30.5.2",
"@jest/expect": "30.5.2",
"@jest/test-result": "30.5.2",
"@jest/types": "30.5.1",
"@types/node": "*",
"chalk": "^4.1.2",
"co": "^4.6.0",
"dedent": "^1.6.0",
"is-generator-fn": "^2.1.0",
"jest-each": "30.5.0",
"jest-matcher-utils": "30.5.0",
"jest-message-util": "30.5.0",
"jest-runtime": "30.5.0",
"jest-snapshot": "30.5.0",
"jest-util": "30.5.0",
"jest-each": "30.5.2",
"jest-matcher-utils": "30.5.2",
"jest-message-util": "30.5.1",
"jest-runtime": "30.5.2",
"jest-snapshot": "30.5.2",
"jest-util": "30.5.1",
"p-limit": "^3.1.0",
"pretty-format": "30.5.0",
"pretty-format": "30.5.1",
"pure-rand": "^7.0.0",
"slash": "^3.0.0",
"stack-utils": "^2.0.6"
}
},
"jest-cli": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-30.5.0.tgz",
"integrity": "sha512-QHZMiy32x2K+NzJ1AuuoCAVc1Y5co0VXib3R7kD9MWcWFflzsD1eJN0wR+mkNlM+ts7C+Bjz0oOoFE5IiHylCg==",
"version": "30.5.2",
"resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-30.5.2.tgz",
"integrity": "sha512-YYYxUUVjFgPvgEleKNKMaYGIFgR3l3832Cl0kRL/oCiDZ03v7wImUtquHl2OOBCCNgprjZgBN5bczS/JklPBDg==",
"dev": true,
"requires": {
"@jest/core": "30.5.0",
"@jest/test-result": "30.5.0",
"@jest/types": "30.5.0",
"@jest/core": "30.5.2",
"@jest/test-result": "30.5.2",
"@jest/types": "30.5.1",
"chalk": "^4.1.2",
"exit-x": "^0.2.2",
"import-local": "^3.2.0",
"jest-config": "30.5.0",
"jest-util": "30.5.0",
"jest-validate": "30.5.0",
"jest-config": "30.5.2",
"jest-util": "30.5.1",
"jest-validate": "30.5.1",
"yargs": "^17.7.2"
}
},
"jest-config": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/jest-config/-/jest-config-30.5.0.tgz",
"integrity": "sha512-gYQl2FqYgiVpyuB7DutBIbJRWaq5VcHdzOXJJ51HNa8J5JrsZehIlzNFW0/9s5uvvcbzM5/LTUizYSbsFErv+w==",
"version": "30.5.2",
"resolved": "https://registry.npmjs.org/jest-config/-/jest-config-30.5.2.tgz",
"integrity": "sha512-U6221OZekabePvGcGPf4raIBKMvYQWFHvhobDJRojOYaFMj2HaGytAdknjDhYc6JTz2fdHW9+6k0wWUDaNeOFQ==",
"dev": true,
"requires": {
"@babel/core": "^7.27.4",
"@jest/get-type": "30.5.0",
"@jest/pattern": "30.5.0",
"@jest/test-sequencer": "30.5.0",
"@jest/types": "30.5.0",
"babel-jest": "30.5.0",
"@jest/test-sequencer": "30.5.2",
"@jest/types": "30.5.1",
"babel-jest": "30.5.2",
"chalk": "^4.1.2",
"ci-info": "^4.2.0",
"deepmerge": "^4.3.1",
"glob": "^13.0.6",
"graceful-fs": "^4.2.11",
"jest-circus": "30.5.0",
"jest-circus": "30.5.2",
"jest-docblock": "30.5.0",
"jest-environment-node": "30.5.0",
"jest-environment-node": "30.5.2",
"jest-regex-util": "30.5.0",
"jest-resolve": "30.5.0",
"jest-runner": "30.5.0",
"jest-util": "30.5.0",
"jest-validate": "30.5.0",
"jest-resolve": "30.5.1",
"jest-runner": "30.5.2",
"jest-util": "30.5.1",
"jest-validate": "30.5.1",
"parse-json": "^5.2.0",
"pretty-format": "30.5.0",
"pretty-format": "30.5.1",
"slash": "^3.0.0",
"strip-json-comments": "^3.1.1"
}
},
"jest-diff": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-30.5.0.tgz",
"integrity": "sha512-QjCfDMwdPFvLxTQmS4/Dswx3PUCiqmSXVLGljMC3SU7YG1qHVoR6b86IH/O2G9k9OMyKXz2vS2Q60VnAozNDwA==",
"version": "30.5.2",
"resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-30.5.2.tgz",
"integrity": "sha512-rBtHnI6BWTiWj3lM7fOLVfChx7R9B0u9VV3PRHawKs79x6ZjW1QoSrKenaigNGWlvhtoi2BqvDbABDie+Os3xQ==",
"dev": true,
"requires": {
"@jest/diff-sequences": "30.5.0",
"@jest/get-type": "30.5.0",
"chalk": "^4.1.2",
"pretty-format": "30.5.0"
"pretty-format": "30.5.1"
}
},
"jest-docblock": {
@@ -8694,40 +8725,41 @@
}
},
"jest-each": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/jest-each/-/jest-each-30.5.0.tgz",
"integrity": "sha512-NiMFNhRygJEFqYNt8pnkxppUF6CR486GEpt9rSU6lPBf7KeccaOL0zbjxG8fgJgD//6e7zYdssnlt6j+1kI31A==",
"version": "30.5.2",
"resolved": "https://registry.npmjs.org/jest-each/-/jest-each-30.5.2.tgz",
"integrity": "sha512-GRrW+7fmmgmkvyfEBqc1QFdWnF1Ex5yG6Y6AWL4TTxnkWlKIT98dsKh3P3UuWm6v4XsQwVE6DEzXIPMzWJ3ZbA==",
"dev": true,
"requires": {
"@jest/get-type": "30.5.0",
"@jest/types": "30.5.0",
"@jest/types": "30.5.1",
"chalk": "^4.1.2",
"jest-util": "30.5.0",
"pretty-format": "30.5.0"
"jest-regex-util": "30.5.0",
"jest-util": "30.5.1",
"pretty-format": "30.5.1"
}
},
"jest-environment-node": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-30.5.0.tgz",
"integrity": "sha512-bTc79ywKLz0ogbT3JIYuEhgWV4Ffd/cJe06co4v8CyRtlmju8x5gokMlGFR8ARWhmk5SnbDRxmf50XWnlZVhDg==",
"version": "30.5.2",
"resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-30.5.2.tgz",
"integrity": "sha512-Ciz4KgTGIbojxSKpuFImgWJj5EyqfE8xMq9NxWmOXnQywHHS03H9Mv+vaCB29J5pr3JBrY27WbRV18rBdjh8Dg==",
"dev": true,
"requires": {
"@jest/environment": "30.5.0",
"@jest/fake-timers": "30.5.0",
"@jest/types": "30.5.0",
"@jest/environment": "30.5.2",
"@jest/fake-timers": "30.5.2",
"@jest/types": "30.5.1",
"@types/node": "*",
"jest-mock": "30.5.0",
"jest-util": "30.5.0",
"jest-validate": "30.5.0"
"jest-mock": "30.5.2",
"jest-util": "30.5.1",
"jest-validate": "30.5.1"
}
},
"jest-haste-map": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-30.5.0.tgz",
"integrity": "sha512-0FStogBslBVOEqTOJr4oXMtFitmrWp9WscG6Gbns88i0YAuMXijCT2G5VMfg/HCR4QAnL+OF2C2ednag+HlDuA==",
"version": "30.5.1",
"resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-30.5.1.tgz",
"integrity": "sha512-VIFgt67jW480YDxKfEv9IYQKrFpYt7bOCMn3VsnjK7AK9qo7p6acpnA1DHwsVOULE3dTaYew/6JaTD/d0VDHoQ==",
"dev": true,
"requires": {
"@jest/types": "30.5.0",
"@jest/types": "30.5.1",
"@parcel/watcher": "^2.6.0",
"@types/node": "*",
"anymatch": "^3.1.3",
@@ -8735,8 +8767,8 @@
"fdir": "^6.5.0",
"graceful-fs": "^4.2.11",
"jest-regex-util": "30.5.0",
"jest-util": "30.5.0",
"jest-worker": "30.5.0",
"jest-util": "30.5.1",
"jest-worker": "30.5.1",
"picomatch": "^4.0.3"
},
"dependencies": {
@@ -8756,41 +8788,41 @@
}
},
"jest-leak-detector": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-30.5.0.tgz",
"integrity": "sha512-Mq11ceAkNR250Iv45RoOwuG9fb4kYbJ02qoyL7A0nCI8FV5+aG/THmcEUx5uR2dNSa4KOtz+xBKrJ8cZPhPpuQ==",
"version": "30.5.1",
"resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-30.5.1.tgz",
"integrity": "sha512-gt4GT2aWgEoCNTcBe4rqS74xTIUJxi+UD9SNSu9aOk5LmTEd6fS5KSTmAKAfitCCktQHNN+upUuL6EkBfFbMDQ==",
"dev": true,
"requires": {
"@jest/get-type": "30.5.0",
"pretty-format": "30.5.0"
"pretty-format": "30.5.1"
}
},
"jest-matcher-utils": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-30.5.0.tgz",
"integrity": "sha512-EfaYMC9f9ds7fahB/LYFTgd1Z2RS9Vpm2e46gazij0onkpoQG7Daq+MLm8/gQVqWwRVjL/RNDggbFx9MsrJEmQ==",
"version": "30.5.2",
"resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-30.5.2.tgz",
"integrity": "sha512-lFkB365PTIHOhPzwrb9T6gvlDnPpOZ7/c3ewOKKB7bzztqjVrtlyRL2MkyfJXpyY2u2SKw001JKrTx14fBUFcQ==",
"dev": true,
"requires": {
"@jest/get-type": "30.5.0",
"chalk": "^4.1.2",
"jest-diff": "30.5.0",
"pretty-format": "30.5.0"
"jest-diff": "30.5.2",
"pretty-format": "30.5.1"
}
},
"jest-message-util": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-30.5.0.tgz",
"integrity": "sha512-dBYMhplGfspKaCnVk9TUy1cZnknWubpuPNEputjz0YJk1G/92R45rn45BvbPMPMtC5LVcIdxJGPOaOSQTiuzJw==",
"version": "30.5.1",
"resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-30.5.1.tgz",
"integrity": "sha512-UdQlLdd9wL/Ys7xRErckqwD6wPlSZYueosSWuHc1r2ztGLwlgPvtSJq2+BPEgaEY13WLvfFbmhTj8pba0Sd1jg==",
"dev": true,
"requires": {
"@babel/code-frame": "^7.27.1",
"@jest/types": "30.5.0",
"@jest/types": "30.5.1",
"@types/stack-utils": "^2.0.3",
"chalk": "^4.1.2",
"graceful-fs": "^4.2.11",
"jest-util": "30.5.0",
"jest-util": "30.5.1",
"picomatch": "^4.0.3",
"pretty-format": "30.5.0",
"pretty-format": "30.5.1",
"slash": "^3.0.0",
"stack-utils": "^2.0.6"
},
@@ -8804,15 +8836,15 @@
}
},
"jest-mock": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-30.5.0.tgz",
"integrity": "sha512-bP5MHZpkYrV7xpV+yvhl36DPcXoEmTR57Un5EACcdVpMY7mpkDefCBq+V4mhcjE/3rwUajT6OTrcJTN7EwN1BA==",
"version": "30.5.2",
"resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-30.5.2.tgz",
"integrity": "sha512-KTHb37Fhj8xY8qPFvTFaFJHcdsumQp+ExsUlgoX232Agmc706gagBs53+CYvulV7MVQo9AgXOUxsqzzVBoJlrA==",
"dev": true,
"requires": {
"@jest/expect-utils": "30.5.0",
"@jest/types": "30.5.0",
"@jest/expect-utils": "30.5.2",
"@jest/types": "30.5.1",
"@types/node": "*",
"jest-util": "30.5.0"
"jest-util": "30.5.1"
}
},
"jest-regex-util": {
@@ -8822,73 +8854,73 @@
"dev": true
},
"jest-resolve": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-30.5.0.tgz",
"integrity": "sha512-NFvQWJ4G7e2kN5712iG+12Xr325NRFGAIhovrwLfgq5Oqd4bFHITw4CzcFkZGp1GTCqemC4v1l8/yZzedKZkjw==",
"version": "30.5.1",
"resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-30.5.1.tgz",
"integrity": "sha512-wprhLejRtwN6h8ZgaqC0eYjGJ1uMdGPT/+b3eFncbG4NWuuP9QL+vWwRinu9waw7hkOLcpMJGVJAMgBwsPssMQ==",
"dev": true,
"requires": {
"chalk": "^4.1.2",
"graceful-fs": "^4.2.11",
"jest-haste-map": "30.5.0",
"jest-util": "30.5.0",
"jest-validate": "30.5.0",
"jest-haste-map": "30.5.1",
"jest-util": "30.5.1",
"jest-validate": "30.5.1",
"slash": "^3.0.0",
"unrs-resolver": "^1.12.1"
}
},
"jest-resolve-dependencies": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-30.5.0.tgz",
"integrity": "sha512-TnSBAp3wGOnqXBmLT3OXtJkugw6Vj2KU0IPde2EJmbGns/QMoNlkauJ7jZ8KYaxONSpx0o4pUvi+u1Q/LSk3Pg==",
"version": "30.5.2",
"resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-30.5.2.tgz",
"integrity": "sha512-GMI0DP5enX9Z2qW2zFy1bOkrCfWAOPRJQ7qHt0pdfrxBPsgWxglMPrRSK2TX/wRWYxcPRSLFg3Z88qPOzHx7FQ==",
"dev": true,
"requires": {
"jest-regex-util": "30.5.0",
"jest-snapshot": "30.5.0"
"jest-snapshot": "30.5.2"
}
},
"jest-runner": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-30.5.0.tgz",
"integrity": "sha512-Q6Yt+1LvXvEstvru6sQLT7OQYC77VNl6dK0KEvBkeOHgThmXDqNp3Ox9TglDWFHU85pemqTNdKwxfnmO3vgrdA==",
"version": "30.5.2",
"resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-30.5.2.tgz",
"integrity": "sha512-/B6px7hiiNhVSRwuv9AGn0nawYvwsHeQZ3ItTd5Gp2diFd0EOKaWVeWqcbw3L88vx1GfpCKjQkxWItZCTl11Rw==",
"dev": true,
"requires": {
"@jest/console": "30.5.0",
"@jest/environment": "30.5.0",
"@jest/source-map": "30.5.0",
"@jest/test-result": "30.5.0",
"@jest/transform": "30.5.0",
"@jest/types": "30.5.0",
"@jest/console": "30.5.2",
"@jest/environment": "30.5.2",
"@jest/source-map": "30.5.2",
"@jest/test-result": "30.5.2",
"@jest/transform": "30.5.2",
"@jest/types": "30.5.1",
"@types/node": "*",
"chalk": "^4.1.2",
"emittery": "^0.13.1",
"exit-x": "^0.2.2",
"graceful-fs": "^4.2.11",
"jest-docblock": "30.5.0",
"jest-environment-node": "30.5.0",
"jest-haste-map": "30.5.0",
"jest-leak-detector": "30.5.0",
"jest-message-util": "30.5.0",
"jest-resolve": "30.5.0",
"jest-runtime": "30.5.0",
"jest-util": "30.5.0",
"jest-watcher": "30.5.0",
"jest-worker": "30.5.0",
"jest-environment-node": "30.5.2",
"jest-haste-map": "30.5.1",
"jest-leak-detector": "30.5.1",
"jest-message-util": "30.5.1",
"jest-resolve": "30.5.1",
"jest-runtime": "30.5.2",
"jest-util": "30.5.1",
"jest-watcher": "30.5.2",
"jest-worker": "30.5.1",
"p-limit": "^3.1.0"
}
},
"jest-runtime": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-30.5.0.tgz",
"integrity": "sha512-VTRz0sRIw2EISeHigx1O+CMuwoG4+RKJjF8dp8okzFaDNQEcv5Mw0h5QW8VJXgb2CRF4gZIjSEBb2jdzXPagFQ==",
"version": "30.5.2",
"resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-30.5.2.tgz",
"integrity": "sha512-0paUAHBlheai10A3XSy9Xh+YBG0IROy+/qzcDPzQ/nbbXrznQzeWy5qniICWK6d3W3scaRQCVAbXdcK0ibBq4w==",
"dev": true,
"requires": {
"@jest/environment": "30.5.0",
"@jest/fake-timers": "30.5.0",
"@jest/globals": "30.5.0",
"@jest/source-map": "30.5.0",
"@jest/test-result": "30.5.0",
"@jest/transform": "30.5.0",
"@jest/types": "30.5.0",
"@jest/environment": "30.5.2",
"@jest/fake-timers": "30.5.2",
"@jest/globals": "30.5.2",
"@jest/source-map": "30.5.2",
"@jest/test-result": "30.5.2",
"@jest/transform": "30.5.2",
"@jest/types": "30.5.1",
"@types/node": "*",
"chalk": "^4.1.2",
"cjs-module-lexer": "^2.2.0",
@@ -8896,21 +8928,21 @@
"es-module-lexer": "^2.1.0",
"glob": "^13.0.6",
"graceful-fs": "^4.2.11",
"jest-haste-map": "30.5.0",
"jest-message-util": "30.5.0",
"jest-mock": "30.5.0",
"jest-haste-map": "30.5.1",
"jest-message-util": "30.5.1",
"jest-mock": "30.5.2",
"jest-regex-util": "30.5.0",
"jest-resolve": "30.5.0",
"jest-snapshot": "30.5.0",
"jest-util": "30.5.0",
"jest-resolve": "30.5.1",
"jest-snapshot": "30.5.2",
"jest-util": "30.5.1",
"slash": "^3.0.0",
"strip-bom": "^4.0.0"
}
},
"jest-snapshot": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-30.5.0.tgz",
"integrity": "sha512-pZWETdcqmKve9MDTE/AX6RaeAbRhzKhhAXGozAW8Pg2FfOSdUrQ/7D+VdwE3fLQsqjpITXJVQvYVZoMEzrUl0Q==",
"version": "30.5.2",
"resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-30.5.2.tgz",
"integrity": "sha512-jKIdes25AnAH73dOCi2qE6J6vHJ6L2vyBS11M89kT50DVJcLTf2AOjvcc+2vVaN8lUbY5v2R83aqXo3Ro9fqYA==",
"dev": true,
"requires": {
"@babel/core": "^7.27.4",
@@ -8918,20 +8950,20 @@
"@babel/plugin-syntax-jsx": "^7.27.1",
"@babel/plugin-syntax-typescript": "^7.27.1",
"@babel/types": "^7.27.3",
"@jest/expect-utils": "30.5.0",
"@jest/expect-utils": "30.5.2",
"@jest/get-type": "30.5.0",
"@jest/snapshot-utils": "30.5.0",
"@jest/transform": "30.5.0",
"@jest/types": "30.5.0",
"@jest/snapshot-utils": "30.5.1",
"@jest/transform": "30.5.2",
"@jest/types": "30.5.1",
"babel-preset-current-node-syntax": "^1.2.0",
"chalk": "^4.1.2",
"expect": "30.5.0",
"expect": "30.5.2",
"graceful-fs": "^4.2.11",
"jest-diff": "30.5.0",
"jest-matcher-utils": "30.5.0",
"jest-message-util": "30.5.0",
"jest-util": "30.5.0",
"pretty-format": "30.5.0",
"jest-diff": "30.5.2",
"jest-matcher-utils": "30.5.2",
"jest-message-util": "30.5.1",
"jest-util": "30.5.1",
"pretty-format": "30.5.1",
"semver": "^7.7.2",
"synckit": "^0.11.8"
},
@@ -8945,12 +8977,12 @@
}
},
"jest-util": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.5.0.tgz",
"integrity": "sha512-lzU4aGUWaS+2X/B0CmgheDasfnsVlRfZh/rNQxB9b9s8cSYUq5BcqdQA95ld+KqJXBUVVt1sqnMQ2T3OxIalmg==",
"version": "30.5.1",
"resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.5.1.tgz",
"integrity": "sha512-yKuxmNy2rSbTXw+3SIPanJo+nV4/BS1p26v44IYBFMsswSQySfMMcPHErnOncda7i9HEz0q605rIhSTBVgrZTg==",
"dev": true,
"requires": {
"@jest/types": "30.5.0",
"@jest/types": "30.5.1",
"@types/node": "*",
"chalk": "^4.1.2",
"ci-info": "^4.2.0",
@@ -8967,17 +8999,17 @@
}
},
"jest-validate": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-30.5.0.tgz",
"integrity": "sha512-N/hsPYKgBSzBeVZ2RHCs3yvBbTZNPX7Be8q33zhyo/yeFneBL1swzly31LYU4LJ3zJM9e8TxSM8IYLo2SDJZYQ==",
"version": "30.5.1",
"resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-30.5.1.tgz",
"integrity": "sha512-i/buJ56wTpxihE93hQYNMfdOThS87+HGvLZzZJmU4xggPcdTYQq051iwALLCHp3q+SkCGH+EFejQZz5EbBSkkg==",
"dev": true,
"requires": {
"@jest/get-type": "30.5.0",
"@jest/types": "30.5.0",
"@jest/types": "30.5.1",
"camelcase": "^6.3.0",
"chalk": "^4.1.2",
"leven": "^3.1.0",
"pretty-format": "30.5.0"
"pretty-format": "30.5.1"
},
"dependencies": {
"camelcase": {
@@ -8989,30 +9021,30 @@
}
},
"jest-watcher": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-30.5.0.tgz",
"integrity": "sha512-ujjnEoL4Uu+Swu3WRwYenWMB9JMEiD2T3OypnveMJ64S/1r/5G8eC4OQ1wEOgYWQqMi+mT+buzccflCHr/XJ9Q==",
"version": "30.5.2",
"resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-30.5.2.tgz",
"integrity": "sha512-rqRgg4R11GA9m1UsEZwQeixHsgZReCn6TOHAHtIH33yXrIvoX0OGPA20Yzzjkz7X40fZvcRSxEpQppYPcWzmcQ==",
"dev": true,
"requires": {
"@jest/test-result": "30.5.0",
"@jest/types": "30.5.0",
"@jest/test-result": "30.5.2",
"@jest/types": "30.5.1",
"@types/node": "*",
"ansi-escapes": "^4.3.2",
"chalk": "^4.1.2",
"emittery": "^0.13.1",
"jest-util": "30.5.0",
"jest-util": "30.5.1",
"string-length": "^4.0.2"
}
},
"jest-worker": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-30.5.0.tgz",
"integrity": "sha512-7kFk/607EoynNHLJa20daivkElM+c9PrCLduYy6AlMkYrXbh5TmVtW1BLXE05Y8baAFsJHMoC3xs2QRRTotwLw==",
"version": "30.5.1",
"resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-30.5.1.tgz",
"integrity": "sha512-Cbxh5v7AoLuFRmFJSM4/aHdQ68rjXvUWr716EE0Dh3I7T+T/3FgFKhOERGXHcU2Meftq9+9zxPM3TSNyI9D+HA==",
"dev": true,
"requires": {
"@types/node": "*",
"@ungap/structured-clone": "^1.3.0",
"jest-util": "30.5.0",
"jest-util": "30.5.1",
"merge-stream": "^2.0.0",
"supports-color": "^8.1.1"
},
@@ -9333,9 +9365,9 @@
}
},
"pretty-format": {
"version": "30.5.0",
"resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.5.0.tgz",
"integrity": "sha512-mzNzBErpHwM0zpmWS7ExOv62yhQhvd546nUuFqVR0dmnJB59tfrw9sjDF0DJknwsr59OXP0buwJ7PaKguczHSg==",
"version": "30.5.1",
"resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.5.1.tgz",
"integrity": "sha512-byhRAPguVKMQIj4kjJwJ5lAskVhfuiSdiYl/aLTWpgkGEmic2jYhJh1yE9ih8Ox44Xg9ccCT11/S6QrzSJuNrg==",
"dev": true,
"requires": {
"@jest/react-is-18": "npm:react-is@^18.3.1",
+1 -1
View File
@@ -55,7 +55,7 @@
"@types/semver": "^7.8.0",
"@vercel/ncc": "^0.45.0",
"esbuild": "^0.28.2",
"jest": "^30.5.0",
"jest": "^30.5.2",
"js-yaml": "^5.4.1",
"ts-jest": "^29.4.11",
"typescript": "^6.0.3"
-18
View File
@@ -1,22 +1,4 @@
{
"aarch64-apple-darwin-0.13.6": "60fbd5c8a1ed681845eea28d9d622fcde03c51e91a43465b64a1e17db1ed3472",
"aarch64-pc-windows-msvc-0.13.6": "c2426c0c8e28b53d8c440e47a18d96ad4db51e159866c0e81435b196d7f0081c",
"aarch64-unknown-linux-gnu-0.13.6": "229e194255c7958d86d56e8790d969a6f74736592133f0dfd0076f754c642c1d",
"aarch64-unknown-linux-musl-0.13.6": "819692e404d23e5aae6bc44c0e260f1f5492fd1910ab4693b2c650f926dbe800",
"arm-unknown-linux-musleabihf-0.13.6": "57ac0f7c04deb42c5d686b4eeeef555c442db6ffea16fe4cbd7adb0384403794",
"armv7-unknown-linux-gnueabihf-0.13.6": "d00cd4949c4524c934afcfee1aedfa9d337cf4e43be4d6b692ad8d74d0a65562",
"armv7-unknown-linux-musleabihf-0.13.6": "b215398c886e8cc2cfa282fe346c02025957f8633b75a3d4fd848e0adda4eddd",
"i686-pc-windows-msvc-0.13.6": "32ceb64db231cbedfd499f7654c72e4c0b564f2846f9e76c0a4a7b2d03d7e67c",
"i686-unknown-linux-gnu-0.13.6": "665ea831c38d342900950e606beb2ccc37b7ba0fcefc37b814eb4b076305f2b6",
"i686-unknown-linux-musl-0.13.6": "de3a015c4b0fce63c178ae4fa95c94c873adfd92fa1e258c6a2a94e529812629",
"powerpc64le-unknown-linux-gnu-0.13.6": "3b2847185ec2946fcc928500efef7e3e74c255d3be6f2cb435081a84885d8c6c",
"riscv64gc-unknown-linux-gnu-0.13.6": "517052603ed46483b59d8875c9c61a577946b8f493c73e4339e45e7b119171d0",
"riscv64gc-unknown-linux-musl-0.13.6": "659a95dc6aee3ecf86742a08d8ca6c6261422121cbd41decc0042f5a71af6305",
"s390x-unknown-linux-gnu-0.13.6": "fb56d731308aa5c7718059d71afcb14d9a933a974997cee3d4eb5d06fc462a4b",
"x86_64-apple-darwin-0.13.6": "63ba17fdda55ad1a230d4b37fc6017ffa10c23688c83818bd3bfdf914c652a02",
"x86_64-pc-windows-msvc-0.13.6": "a2a8820d5eea32f08ef467ef3b7f66883a9b076d5737a2fc2fbb5f458d1bb50f",
"x86_64-unknown-linux-gnu-0.13.6": "f29c3e94ffabd7e6f3ba521dba169a9b7ec12100bf3257087f0f24f6123f3645",
"x86_64-unknown-linux-musl-0.13.6": "5d61f26b6c7213779eda90edc6971ea6b0b796bfb8d49a574c8ad69b59838548",
"aarch64-apple-darwin-0.13.5": "743f85035a1996ecb350659e01cd9faea9709829be09b1b4b03c73eaf3c9cd73",
"aarch64-pc-windows-msvc-0.13.5": "09f47edf90726084a70f9426f6e3ca4f46e9bf7cbf23b1716ec64d60b055fae3",
"aarch64-unknown-linux-gnu-0.13.5": "4bb69cf95ed13f23713bb7bc09f241896ea0c75b7c557e615a20604b82f9c403",
+1 -18
View File
@@ -1,10 +1,7 @@
import { createInterface } from "node:readline";
import { Readable } from "node:stream";
import * as core from "@actions/core";
import {
GITHUB_VERSIONS_MANIFEST_URL,
VERSIONS_MANIFEST_URL,
} from "../utils/constants";
import { VERSIONS_MANIFEST_URL } from "../utils/constants";
import { fetch } from "../utils/fetch";
import * as log from "../utils/logging";
import { selectDefaultVariant } from "./variant-selection";
@@ -170,20 +167,6 @@ export function clearManifestCache(manifestUrl?: string): void {
}
async function fetchManifestResponse(manifestUrl: string) {
try {
return await fetchManifestResponseFromUrl(manifestUrl);
} catch (error) {
if (manifestUrl !== VERSIONS_MANIFEST_URL) {
throw error;
}
log.info(
`Failed to fetch manifest from Astral mirror, falling back to GitHub: ${(error as Error).message}`,
);
return await fetchManifestResponseFromUrl(GITHUB_VERSIONS_MANIFEST_URL);
}
}
async function fetchManifestResponseFromUrl(manifestUrl: string) {
let response: Awaited<ReturnType<typeof fetch>> | undefined;
for (let attempt = 1; attempt <= MANIFEST_FETCH_ATTEMPTS; attempt++) {
log.info(`Fetching manifest data from ${manifestUrl} ...`);
+2 -4
View File
@@ -159,10 +159,8 @@ async function saveCacheToKey(
}
log.info(`Including ${cacheName} path: ${cachePath}`);
const cacheId = await cache.saveCache([cachePath], cacheKey);
if (cacheId !== -1) {
log.info(`${cacheName} saved with key: ${cacheKey}`);
}
await cache.saveCache([cachePath], cacheKey);
log.info(`${cacheName} saved with key: ${cacheKey}`);
}
run();
-2
View File
@@ -2,8 +2,6 @@ export const TOOL_CACHE_NAME = "uv";
export const STATE_UV_PATH = "uv-path";
export const STATE_UV_VERSION = "uv-version";
export const VERSIONS_MANIFEST_URL =
"https://releases.astral.sh/github/versions/main/v1/uv.ndjson";
export const GITHUB_VERSIONS_MANIFEST_URL =
"https://raw.githubusercontent.com/astral-sh/versions/main/v1/uv.ndjson";
/** GitHub Releases URL prefix for uv artifacts. */
+1 -3
View File
@@ -69,7 +69,5 @@ function getUvVersionFromAllDependencies(
function getUvVersionFromDependency(dependency: string): string | undefined {
const dependencyWithoutMarker = dependency.split(";", 1)[0]?.trim();
return dependencyWithoutMarker
?.match(/^uv\s*((?:[=<>~!]+\s*[^\s,]+\s*,?\s*)+)/)?.[1]
.replace(/\s/g, "");
return dependencyWithoutMarker?.match(/^uv([=<>~!]+\S*)/)?.[1].trim();
}
+3 -18
View File
@@ -169,9 +169,7 @@ async function findHighestSatisfyingVersion(
): Promise<string | undefined> {
// This fast path assumes uv releases are semver-monotonic: newer manifest
// entries always have higher versions, with no lower-version backports.
const semverRange = isCompatibleReleaseSpecifier(versionSpecifier)
? null
: semver.validRange(versionSpecifier);
const semverRange = semver.validRange(versionSpecifier);
if (semverRange !== null) {
const semverMatch = await getFirstMatchingVersion((version) =>
semver.satisfies(version, semverRange),
@@ -195,22 +193,11 @@ async function findHighestSatisfyingVersion(
return pep440Match;
}
/**
* `~=` is the PEP 440 compatible release operator. semver accepts it as a
* tilde range with a narrower upper bound (`~=0.5` as `<0.6.0` instead of
* `<1.0`), so it must only be evaluated as PEP 440.
*/
function isCompatibleReleaseSpecifier(versionSpecifier: string): boolean {
return versionSpecifier.includes("~=");
}
function maxSatisfying(
versions: string[],
version: string,
): string | undefined {
const maxSemver = isCompatibleReleaseSpecifier(version)
? ""
: tc.evaluateVersions(versions, version);
const maxSemver = tc.evaluateVersions(versions, version);
if (maxSemver !== "") {
core.debug(`Found a version that satisfies the semver range: ${maxSemver}`);
return maxSemver;
@@ -231,9 +218,7 @@ function minSatisfying(
versions: string[],
version: string,
): string | undefined {
const minSemver = isCompatibleReleaseSpecifier(version)
? null
: semver.minSatisfying(versions, version);
const minSemver = semver.minSatisfying(versions, version);
if (minSemver !== null) {
core.debug(`Found a version that satisfies the semver range: ${minSemver}`);
return minSemver;