From e184ce0e821dbf6136153fab03bc3ec3b3eb7ec6 Mon Sep 17 00:00:00 2001 From: Reece Dunham Date: Tue, 20 Feb 2024 07:21:52 -0500 Subject: [PATCH] Add test to ensure objectives are localized (#391) Signed-off-by: Reece Dunham --- .eslintignore | 1 + .../MUMBAI/ESCALATION/KHAKIASP/KHAKIASP2.json | 2 +- packaging/buildTasks.mjs | 3 +- tests/data/game-defined-locr-crc32s.msgpack | Bin 0 -> 135751 bytes tests/data/scripts/updateLocrCrcData.mjs | 34 +++ tests/package.json | 10 +- tests/src/contractFiles.test.ts | 153 +++++++++++++ tests/tsconfig.json | 3 +- webui/package.json | 2 +- yarn.lock | 211 ++++++++++++------ 10 files changed, 344 insertions(+), 75 deletions(-) create mode 100644 tests/data/game-defined-locr-crc32s.msgpack create mode 100644 tests/data/scripts/updateLocrCrcData.mjs create mode 100644 tests/src/contractFiles.test.ts diff --git a/.eslintignore b/.eslintignore index 3e20786b..b05ba453 100644 --- a/.eslintignore +++ b/.eslintignore @@ -9,3 +9,4 @@ webui/dist *Plugin.js packaging/livesplit-node-client/build webstorm.config.js +tests/data/scripts diff --git a/contractdata/MUMBAI/ESCALATION/KHAKIASP/KHAKIASP2.json b/contractdata/MUMBAI/ESCALATION/KHAKIASP/KHAKIASP2.json index 597b1d16..aab1afda 100644 --- a/contractdata/MUMBAI/ESCALATION/KHAKIASP/KHAKIASP2.json +++ b/contractdata/MUMBAI/ESCALATION/KHAKIASP/KHAKIASP2.json @@ -167,7 +167,7 @@ } }, "HUDTemplate": { - "display": "$loc UI_PEACOCK_KHAKIASP_DOCUNMENTATION_OBJ3" + "display": "$loc UI_PEACOCK_KHAKIASP_DOCUMENTATION_OBJ3" }, "Category": "primary", "Definition": { diff --git a/packaging/buildTasks.mjs b/packaging/buildTasks.mjs index 95b4d450..05a86d16 100644 --- a/packaging/buildTasks.mjs +++ b/packaging/buildTasks.mjs @@ -79,6 +79,7 @@ export async function generateRequireTable() { const prettierConfig = await prettier.resolveConfig() prettierConfig.parser = "babel" + // language=TypeScript const generatedPeacockRequireTableFile = prettier.format( `/* * The Peacock Project - a HITMAN server replacement. @@ -121,7 +122,7 @@ export async function packResources() { const start = Date.now() - const contracts = glob.sync("contractdata/**/*.json") + const contracts = await glob("contractdata/**/*.json") const b = [] const el = [] diff --git a/tests/data/game-defined-locr-crc32s.msgpack b/tests/data/game-defined-locr-crc32s.msgpack new file mode 100644 index 0000000000000000000000000000000000000000..f1ec6aa0149f1ecd29cc25b7a88ccaab8927d3c8 GIT binary patch literal 135751 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Μ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

l8bgIMf-gvq{t8x=<{D>&lcEV#7wbu-+f8 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ħFQOC8XJ1RDIO=LG0}AEM?|Pl|$$ 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. + */ + +import { pack } from "msgpackr" +import { writeFile } from "node:fs/promises" + +const lines = await fetch( + "https://raw.githubusercontent.com/glacier-modding/Hitman-l10n-Hashes/master/lines.json", +) + .then((res) => res.json()) + .catch(() => { + throw new Error("Failed to fetch lines.json") + }) + +const outKeys = Object.keys(lines).map((key) => { + return parseInt(key, 16) +}) + +await writeFile("data/game-defined-locr-crc32s.msgpack", pack(outKeys)) diff --git a/tests/package.json b/tests/package.json index 2fb414c2..8489e0a3 100644 --- a/tests/package.json +++ b/tests/package.json @@ -3,13 +3,15 @@ "type": "module", "private": true, "dependencies": { - "@vitest/ui": "^1.2.2", - "vite": "^5.0.12", - "vitest": "^1.2.2" + "@aws-crypto/crc32": "^5.2.0", + "@vitest/ui": "^1.3.0", + "vite": "^5.1.3", + "vitest": "^1.3.0" }, "scripts": { "test:main": "vitest --run --config vitest.config.ts", "test:ui": "vitest --config vitest.config.ts --ui", - "typecheck-ws": "tsc --noEmit" + "typecheck-ws": "tsc --noEmit", + "tests:update-locr-crcs": "node ./data/scripts/updateLocrCrcData.mjs" } } diff --git a/tests/src/contractFiles.test.ts b/tests/src/contractFiles.test.ts new file mode 100644 index 00000000..51a9495f --- /dev/null +++ b/tests/src/contractFiles.test.ts @@ -0,0 +1,153 @@ +/* + * The Peacock Project - a HITMAN server replacement. + * Copyright (C) 2021-2024 The Peacock Project Team + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +import { describe, expect, it } from "vitest" +import { glob } from "fast-glob" +import { readFile } from "atomically" +import { MissionManifest } from "../../components/types/types" +import { unpack } from "msgpackr" +import { crc32 } from "@aws-crypto/crc32" + +const allContractFiles = ( + await glob("**/*.json", { + cwd: "../contractdata", + }) +).filter((file) => !file.includes("CHALLENGES") && !file.includes("MASTERY")) + +type LocWrap = { + $loc: { key: string; data: string | number[] } +} + +function parseLocString(locString: string | LocWrap) { + if ((locString as LocWrap)?.$loc?.key) { + return (locString as LocWrap).$loc.key + } + + if ((locString as string).includes("$loc")) { + const parts = (locString as string).split(" ") + // i hate this + const double = (locString as string).includes("$loc $loc") + return parts[double ? 2 : 1] ?? "" + } + + return locString as string +} + +// this is a list of all the crc32s that the game defines for localization +const gameCrcs: number[] = unpack( + await readFile("data/game-defined-locr-crc32s.msgpack"), +) + +function getCrc(str: string) { + return crc32(Buffer.from(str)) +} + +let peacockCrcs: number[] + +{ + const strings = JSON.parse( + (await readFile("../resources/locale.json")).toString(), + )["english"] + + peacockCrcs = Object.keys(strings).map(getCrc) +} + +const allCrcs = [...peacockCrcs, ...gameCrcs] + +const ignored = [ + "UI_CONTRACT_RAT_OBJ_DATACORE_OPTIONAL_TITLE", + "UI_CONTRACT_FOX_ELIMINATE_REMAINING_LESSER_AGENTS_TITLE", + "UI_CONTRACT_FOX_ELIMINATE_REMAINING_LESSER_AGENTS_OBJ", + "UI_CONTRACT_FOX_ELIMINATE_REMAINING_LESSER_AGENTS_DESC", + "$UI_CONTRACT_JACARANDA_OBJECTIVE_SNIPER_NAME", + "UI_CONTRACT_GLORIOSA_OBJ_1_NAME", + "UI_CONTRACT_RAFFLESIA_OBJ_2_NAME", + "UI_CONTRACT_RAFFLESIA_OBJ_3_NAME", + "UI_CONTRACT_TITANUMARUM_OBJ_1_NAME", + "UI_CONTRACT_TITANUMARUM_OBJ_2_NAME", + "UI_CONTRACT_HOLLY_OBJ_3_NAME", + "UI_CONTRACT_HOLLY_OBJ_4_NAME", + "UI_CONTRACT_GORSE_OBJ_1_NAME", + "UI_CONTRACT_GORSE_OBJ_3_NAME", + "UI_CONTRACT_GORSE_OBJ_4_NAME", + "UI_CONTRACT_GORSE_OBJ_5_NAME", + "UI_CONTRACT_GORSE_OBJ_6_NAME", + "UI_CONTRACT_GORSE_OBJ_7_NAME", + "UI_CONTRACT_GORSE_OBJ_2_NAME", +] + +describe("contract files", () => { + it("contract objectives have working localization", async () => { + for (const file of allContractFiles) { + const contract: MissionManifest = JSON.parse( + (await readFile(`../contractdata/${file}`)).toString(), + ) + + if (contract.Metadata.Type === "featured") { + continue + } + + for (const objective of contract.Data.Objectives || []) { + if (objective.BriefingText) { + const loc = parseLocString( + objective.BriefingText, + ).toUpperCase() + + if (!ignored.includes(loc) && !loc.startsWith("$.")) { + const i = getCrc(loc) + + expect( + allCrcs, + `${file} objective ${objective.Id} BriefingText (${loc}) in defined strings`, + ).toContain(i) + } + } + + if (objective.BriefingName) { + const loc = parseLocString( + objective.BriefingName, + ).toUpperCase() + + if (!ignored.includes(loc) && !loc.startsWith("$.")) { + const i = getCrc(loc) + + expect( + allCrcs, + `${file} objective ${objective.Id} BriefingName (${loc}) in defined strings`, + ).toContain(i) + } + } + + if (objective.HUDTemplate?.display) { + const loc = parseLocString( + objective.HUDTemplate.display, + ).toUpperCase() + + if (!ignored.includes(loc) && !loc.startsWith("$.")) { + const i = getCrc(loc) + + expect( + allCrcs, + `${file} objective ${objective.Id} HUDTemplate.display (${loc}) in defined strings`, + ).toContain(i) + } + } + } + } + }) +}) diff --git a/tests/tsconfig.json b/tests/tsconfig.json index d5980f1f..025ea937 100644 --- a/tests/tsconfig.json +++ b/tests/tsconfig.json @@ -5,7 +5,8 @@ "rootDir": null, "rootDirs": ["../components", "."], "noEmit": true, - "emitDeclarationOnly": false + "emitDeclarationOnly": false, + "module": "ESNext" }, "include": ["../components", "**/*.ts"], "exclude": [] diff --git a/webui/package.json b/webui/package.json index 6aa38bf0..2aae470f 100644 --- a/webui/package.json +++ b/webui/package.json @@ -24,7 +24,7 @@ "@types/react-dom": "^18.2.18", "rollup-plugin-license": "^3.2.0", "typescript": "5.3.3", - "vite": "^5.0.12" + "vite": "^5.1.3" }, "peerDependencies": { "rollup": "*" diff --git a/yarn.lock b/yarn.lock index 19d31131..bd63e500 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12,6 +12,38 @@ __metadata: languageName: node linkType: hard +"@aws-crypto/crc32@npm:^5.2.0": + version: 5.2.0 + resolution: "@aws-crypto/crc32@npm:5.2.0" + dependencies: + "@aws-crypto/util": "npm:^5.2.0" + "@aws-sdk/types": "npm:^3.222.0" + tslib: "npm:^2.6.2" + checksum: 10/1b0a56ad4cb44c9512d8b1668dcf9306ab541d3a73829f435ca97abaec8d56f3db953db03ad0d0698754fea16fcd803d11fa42e0889bc7b803c6a030b04c63de + languageName: node + linkType: hard + +"@aws-crypto/util@npm:^5.2.0": + version: 5.2.0 + resolution: "@aws-crypto/util@npm:5.2.0" + dependencies: + "@aws-sdk/types": "npm:^3.222.0" + "@smithy/util-utf8": "npm:^2.0.0" + tslib: "npm:^2.6.2" + checksum: 10/f80a174c404e1ad4364741c942f440e75f834c08278fa754349fe23a6edc679d480ea9ced5820774aee58091ed270067022d8059ecf1a7ef452d58134ac7e9e1 + languageName: node + linkType: hard + +"@aws-sdk/types@npm:^3.222.0": + version: 3.515.0 + resolution: "@aws-sdk/types@npm:3.515.0" + dependencies: + "@smithy/types": "npm:^2.9.1" + tslib: "npm:^2.5.0" + checksum: 10/465b998e539e88fcd7be3d4acaaf9a8cd80bda2f2cb0ae407f60b87eb3e3dd9229df1d384ba524de8b9e2bb2c61f4f126b0bc5f5b42558235e40e5f491b3997d + languageName: node + linkType: hard + "@colors/colors@npm:1.6.0, @colors/colors@npm:^1.6.0": version: 1.6.0 resolution: "@colors/colors@npm:1.6.0" @@ -538,9 +570,10 @@ __metadata: version: 0.0.0-use.local resolution: "@peacockproject/tests@workspace:tests" dependencies: - "@vitest/ui": "npm:^1.2.2" - vite: "npm:^5.0.12" - vitest: "npm:^1.2.2" + "@aws-crypto/crc32": "npm:^5.2.0" + "@vitest/ui": "npm:^1.3.0" + vite: "npm:^5.1.3" + vitest: "npm:^1.3.0" languageName: unknown linkType: soft @@ -560,7 +593,7 @@ __metadata: rollup-plugin-license: "npm:^3.2.0" swr: "npm:^1.3.0" typescript: "npm:5.3.3" - vite: "npm:^5.0.12" + vite: "npm:^5.1.3" peerDependencies: rollup: "*" peerDependenciesMeta: @@ -681,6 +714,44 @@ __metadata: languageName: node linkType: hard +"@smithy/is-array-buffer@npm:^2.1.1": + version: 2.1.1 + resolution: "@smithy/is-array-buffer@npm:2.1.1" + dependencies: + tslib: "npm:^2.5.0" + checksum: 10/0724355a8fa1e61c9fb77c6e6965cc7eae0cd561f158b768f8d1c9a26254db149bb545b318cdd81ebe383bbe5f26f6197b144c69e812dfd55f512e511e0ccbd8 + languageName: node + linkType: hard + +"@smithy/types@npm:^2.9.1": + version: 2.9.1 + resolution: "@smithy/types@npm:2.9.1" + dependencies: + tslib: "npm:^2.5.0" + checksum: 10/82156919fd78814cfe988b8e0eea9d086134583e5d55501429a2cde6f0c5465cdbc274816162cdce3c19f5c81f7d8aed6c5d2edde3a214250760fce794efa4c2 + languageName: node + linkType: hard + +"@smithy/util-buffer-from@npm:^2.1.1": + version: 2.1.1 + resolution: "@smithy/util-buffer-from@npm:2.1.1" + dependencies: + "@smithy/is-array-buffer": "npm:^2.1.1" + tslib: "npm:^2.5.0" + checksum: 10/5de4cf8b2d9c5347990be5791882947a509ba00a55ee67589f327e4852309dac5278248317929519f5a9d2aa5dc1c11cd54803db962287909e0322b7f73332bc + languageName: node + linkType: hard + +"@smithy/util-utf8@npm:^2.0.0": + version: 2.1.1 + resolution: "@smithy/util-utf8@npm:2.1.1" + dependencies: + "@smithy/util-buffer-from": "npm:^2.1.1" + tslib: "npm:^2.5.0" + checksum: 10/736992921e50c2c96234dc5eab305a30d29b1cfa29ce5ad2ec0e4b3f2e0dc3e2d29303bd1362bd20fa2e66c5fd494c558f4b1050b91ead5e13a479903bb9686f + languageName: node + linkType: hard + "@types/body-parser@npm:*": version: 1.19.5 resolution: "@types/body-parser@npm:1.19.5" @@ -1025,53 +1096,53 @@ __metadata: languageName: node linkType: hard -"@vitest/expect@npm:1.2.2": - version: 1.2.2 - resolution: "@vitest/expect@npm:1.2.2" +"@vitest/expect@npm:1.3.0": + version: 1.3.0 + resolution: "@vitest/expect@npm:1.3.0" dependencies: - "@vitest/spy": "npm:1.2.2" - "@vitest/utils": "npm:1.2.2" + "@vitest/spy": "npm:1.3.0" + "@vitest/utils": "npm:1.3.0" chai: "npm:^4.3.10" - checksum: 10/409bf9984a2901cd13bd8644d1dcc61a3b85a122e70f842626c83995b806c6fb1ed5a81685493e88df8bf76557e599bdeed5fd5e908d84a4cb0fa4947b90b631 + checksum: 10/32bc76108a608acb614dfb46ee9b588fc1a3f1fb68ba400a49d6ab80de463a2ab8a6a5dd51960ca76417b300d7c5ce16e2e346a0b0ebe25ca3b80232a378d6dc languageName: node linkType: hard -"@vitest/runner@npm:1.2.2": - version: 1.2.2 - resolution: "@vitest/runner@npm:1.2.2" +"@vitest/runner@npm:1.3.0": + version: 1.3.0 + resolution: "@vitest/runner@npm:1.3.0" dependencies: - "@vitest/utils": "npm:1.2.2" + "@vitest/utils": "npm:1.3.0" p-limit: "npm:^5.0.0" pathe: "npm:^1.1.1" - checksum: 10/e12a758a8c9ce762af470fc5a33e42a416b1e16469b69a077bc021044c460c468ed24fa892e80cba4bfc0448df8484d1bfc43a271db09560347455aa392cc8aa + checksum: 10/7212e457fa89425c1e0b75e1817b50dc9c7d554617faf2178784a5fe0b97e6e4fe417e20886bd189f5385d01ac3f389d90ebca2a01ea4dee8a26897921db70c1 languageName: node linkType: hard -"@vitest/snapshot@npm:1.2.2": - version: 1.2.2 - resolution: "@vitest/snapshot@npm:1.2.2" +"@vitest/snapshot@npm:1.3.0": + version: 1.3.0 + resolution: "@vitest/snapshot@npm:1.3.0" dependencies: magic-string: "npm:^0.30.5" pathe: "npm:^1.1.1" pretty-format: "npm:^29.7.0" - checksum: 10/73e669efdf8ba7270a2b71b988ca93fc9cbc9f9b4ad4cb7c7f8d44dbedfef3109fc8896867b8e1f22cd95494ce18cbc1026a0f89ef4a2e7e4546cf8e613ed302 + checksum: 10/b39bfee8ba9424e672e1c3076e3ee679d530ab8d38a5ad94ceec109063925caae10d4656d9256e331d2f8ed4a3169bfdc8ae584afe171fd51bbe70892dbce1b9 languageName: node linkType: hard -"@vitest/spy@npm:1.2.2": - version: 1.2.2 - resolution: "@vitest/spy@npm:1.2.2" +"@vitest/spy@npm:1.3.0": + version: 1.3.0 + resolution: "@vitest/spy@npm:1.3.0" dependencies: tinyspy: "npm:^2.2.0" - checksum: 10/8cf453f2b0c519b27d783dafbca8a4df6945b8f4723077e7ae153ef06bcb1422af608d2a09912284c3bd7bd1e66555d82d889497780295c73a14876807755a79 + checksum: 10/780c6b678aeb3cc1ccd730ff35fb6596e1a0adb78b39934e37bc6ae712b99bcf46a9387b34f8e76265c6805aef1dff72f47a921695ae5c567d59490d097c90a0 languageName: node linkType: hard -"@vitest/ui@npm:^1.2.2": - version: 1.2.2 - resolution: "@vitest/ui@npm:1.2.2" +"@vitest/ui@npm:^1.3.0": + version: 1.3.0 + resolution: "@vitest/ui@npm:1.3.0" dependencies: - "@vitest/utils": "npm:1.2.2" + "@vitest/utils": "npm:1.3.0" fast-glob: "npm:^3.3.2" fflate: "npm:^0.8.1" flatted: "npm:^3.2.9" @@ -1079,20 +1150,20 @@ __metadata: picocolors: "npm:^1.0.0" sirv: "npm:^2.0.4" peerDependencies: - vitest: ^1.0.0 - checksum: 10/5570ff8afc7731e672608709e8d107127b71080d3b4ee20369a24bd03c18365642aec4a31c5eea01adf473d1f016bbdf4b0b9dfa70d4d0fc1e552439f004efd4 + vitest: 1.3.0 + checksum: 10/e4f76cdb4d926ccd52a804d4ef3db35140a1b8347ca0db173deebd6af6660d06d3e05faad26b842a920ee638ba7ccfe8d0a86e4733943eb09a5b66d4f680ce1b languageName: node linkType: hard -"@vitest/utils@npm:1.2.2": - version: 1.2.2 - resolution: "@vitest/utils@npm:1.2.2" +"@vitest/utils@npm:1.3.0": + version: 1.3.0 + resolution: "@vitest/utils@npm:1.3.0" dependencies: diff-sequences: "npm:^29.6.3" estree-walker: "npm:^3.0.3" loupe: "npm:^2.3.7" pretty-format: "npm:^29.7.0" - checksum: 10/f9a62bc8cbe05475b99e1f8bd96e0ee48cf819ca2e532ba18f071bf0371f044dffa006c33a69b1b276097e6b50f91342a776c830cfac19456b24a9bdad29abe5 + checksum: 10/9d544b24e25659d9f715f43906b9e40571450bbc14cb0320487dae67e4561acb61820200f4e185e1f7b805a17225b70802ebace9fb5c313bfff82ee3841278a9 languageName: node linkType: hard @@ -1151,7 +1222,7 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^8.10.0, acorn@npm:^8.11.3, acorn@npm:^8.8.2, acorn@npm:^8.9.0": +"acorn@npm:^8.11.3, acorn@npm:^8.8.2, acorn@npm:^8.9.0": version: 8.11.3 resolution: "acorn@npm:8.11.3" bin: @@ -3017,6 +3088,13 @@ __metadata: languageName: node linkType: hard +"js-tokens@npm:^8.0.2": + version: 8.0.3 + resolution: "js-tokens@npm:8.0.3" + checksum: 10/af5ed8ddbc446a868c026599214f4a482ab52461edb82e547949255f98910a14bd81ddab88a8d570d74bd7dc96c6d4df7f963794ec5aaf13c53918cc46b9caa6 + languageName: node + linkType: hard + "js-yaml@npm:^4.1.0": version: 4.1.0 resolution: "js-yaml@npm:4.1.0" @@ -3956,14 +4034,14 @@ __metadata: languageName: node linkType: hard -"postcss@npm:^8.4.32": - version: 8.4.33 - resolution: "postcss@npm:8.4.33" +"postcss@npm:^8.4.35": + version: 8.4.35 + resolution: "postcss@npm:8.4.35" dependencies: nanoid: "npm:^3.3.7" picocolors: "npm:^1.0.0" source-map-js: "npm:^1.0.2" - checksum: 10/e22a4594c255f26117f38419fb494d7ecab0f596cd409f7aadc8a6173abf180ed7ea970cd13fd366ab12b5840be901d2a09b25197700c2ebcb5a8077326bf519 + checksum: 10/93a7ce50cd6188f5f486a9ca98950ad27c19dfed996c45c414fa242944497e4d084a8760d3537f078630226f2bd3c6ab84b813b488740f4432e7c7039cd73a20 languageName: node linkType: hard @@ -4758,12 +4836,12 @@ __metadata: languageName: node linkType: hard -"strip-literal@npm:^1.3.0": - version: 1.3.0 - resolution: "strip-literal@npm:1.3.0" +"strip-literal@npm:^2.0.0": + version: 2.0.0 + resolution: "strip-literal@npm:2.0.0" dependencies: - acorn: "npm:^8.10.0" - checksum: 10/f5fa7e289df8ebe82e90091fd393974faf8871be087ca50114327506519323cf15f2f8fee6ebe68b5e58bfc795269cae8bdc7cb5a83e27b02b3fe953f37b0a89 + js-tokens: "npm:^8.0.2" + checksum: 10/efb3197175a7e403d0eaaaf5382b9574be77f8fa006b57b669856a38b58ca9caf76cbc75d9f69d56324dad0b8babe1d4ea7ad1eb12106228830bcdd5d4bf12b5 languageName: node linkType: hard @@ -4938,7 +5016,7 @@ __metadata: languageName: node linkType: hard -"tslib@npm:^2.4.0": +"tslib@npm:^2.4.0, tslib@npm:^2.5.0, tslib@npm:^2.6.2": version: 2.6.2 resolution: "tslib@npm:2.6.2" checksum: 10/bd26c22d36736513980091a1e356378e8b662ded04204453d353a7f34a4c21ed0afc59b5f90719d4ba756e581a162ecbf93118dc9c6be5acf70aa309188166ca @@ -5091,9 +5169,9 @@ __metadata: languageName: node linkType: hard -"vite-node@npm:1.2.2": - version: 1.2.2 - resolution: "vite-node@npm:1.2.2" +"vite-node@npm:1.3.0": + version: 1.3.0 + resolution: "vite-node@npm:1.3.0" dependencies: cac: "npm:^6.7.14" debug: "npm:^4.3.4" @@ -5102,17 +5180,17 @@ __metadata: vite: "npm:^5.0.0" bin: vite-node: vite-node.mjs - checksum: 10/a4b39361011ebf890fb2be83babd24aa29de76185f1683f57a76b6dfcfbdcd7700b83c9d0cd3b5bebc4a114427d7c2612095ab59d0d12732ce21ef816fe86b07 + checksum: 10/39a473a927547416ee72e01310929b02ee6724f1671c20cd1f1bd65494850906624b6a06b813ba2e3f742c42e5e2d2718e4f4248032cf1ad9c95c696659dd832 languageName: node linkType: hard -"vite@npm:^5.0.0, vite@npm:^5.0.12": - version: 5.0.12 - resolution: "vite@npm:5.0.12" +"vite@npm:^5.0.0, vite@npm:^5.1.3": + version: 5.1.3 + resolution: "vite@npm:5.1.3" dependencies: esbuild: "npm:^0.19.3" fsevents: "npm:~2.3.3" - postcss: "npm:^8.4.32" + postcss: "npm:^8.4.35" rollup: "npm:^4.2.0" peerDependencies: "@types/node": ^18.0.0 || >=20.0.0 @@ -5142,21 +5220,20 @@ __metadata: optional: true bin: vite: bin/vite.js - checksum: 10/ed0bb26a0d0c8e1dae0b70af9e36adffd7e15d80297443fe4da762596dc81570bad7f0291f590a57c1553f5e435338d8c7ffc483bd9431a95c09d9ac90665fad + checksum: 10/6ba2223157e2cc2fa62dff9004ccba20fc409c6baf7354c64ed0f8e4bcd853092d08d06ec4dec37143e794a96e061879a870d85bad4f1eb9ee5c6d0a13cef30f languageName: node linkType: hard -"vitest@npm:^1.2.2": - version: 1.2.2 - resolution: "vitest@npm:1.2.2" +"vitest@npm:^1.3.0": + version: 1.3.0 + resolution: "vitest@npm:1.3.0" dependencies: - "@vitest/expect": "npm:1.2.2" - "@vitest/runner": "npm:1.2.2" - "@vitest/snapshot": "npm:1.2.2" - "@vitest/spy": "npm:1.2.2" - "@vitest/utils": "npm:1.2.2" + "@vitest/expect": "npm:1.3.0" + "@vitest/runner": "npm:1.3.0" + "@vitest/snapshot": "npm:1.3.0" + "@vitest/spy": "npm:1.3.0" + "@vitest/utils": "npm:1.3.0" acorn-walk: "npm:^8.3.2" - cac: "npm:^6.7.14" chai: "npm:^4.3.10" debug: "npm:^4.3.4" execa: "npm:^8.0.1" @@ -5165,17 +5242,17 @@ __metadata: pathe: "npm:^1.1.1" picocolors: "npm:^1.0.0" std-env: "npm:^3.5.0" - strip-literal: "npm:^1.3.0" + strip-literal: "npm:^2.0.0" tinybench: "npm:^2.5.1" tinypool: "npm:^0.8.2" vite: "npm:^5.0.0" - vite-node: "npm:1.2.2" + vite-node: "npm:1.3.0" why-is-node-running: "npm:^2.2.2" peerDependencies: "@edge-runtime/vm": "*" "@types/node": ^18.0.0 || >=20.0.0 - "@vitest/browser": ^1.0.0 - "@vitest/ui": ^1.0.0 + "@vitest/browser": 1.3.0 + "@vitest/ui": 1.3.0 happy-dom: "*" jsdom: "*" peerDependenciesMeta: @@ -5193,7 +5270,7 @@ __metadata: optional: true bin: vitest: vitest.mjs - checksum: 10/1dc90823cde249a60e955f82e67cef76c363c78a9783c4dae94a080199fa3e48a56a5c9d1f40667b4542862e183d05c444af846059477b3a66c6b952d168b9cb + checksum: 10/4aabfb972f5f2c165f1f751a063a07a5be952bc684f93ab19ea617fad633fd3db7473ebc7c59c1afdb902334364710476785f01d1cc3cc071a48fcaaf4bac2fa languageName: node linkType: hard