diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml new file mode 100644 index 00000000..ee2dd7dd --- /dev/null +++ b/.github/workflows/run-tests.yml @@ -0,0 +1,26 @@ +name: Run tests on PRs + +on: + pull_request: + types: [opened, synchronize] + +jobs: + lint: + runs-on: ubuntu-latest + + steps: + - name: Check out repository + uses: actions/checkout@v4 + + - name: Set up everything + uses: ./.github/workflows/set-up-everything + + # Yarn constraints are kinda like tests. + - name: Check Yarn constraints + run: yarn constraints + # TODO: Maybe write up a job summary per https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary + + - name: Run tests + run: yarn test + # TODO: Annotations of test files that fail? + # TODO: Maybe write up a job summary per https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary diff --git a/workspaces/adventure-pack/package.json b/workspaces/adventure-pack/package.json index 363d1d88..2edfad16 100644 --- a/workspaces/adventure-pack/package.json +++ b/workspaces/adventure-pack/package.json @@ -69,8 +69,8 @@ "@code-chronicles/eslint-config": "workspace:*", "@code-chronicles/util": "workspace:*", "@jest/globals": "29.7.0", - "@types/node": "22.7.0", - "@types/react": "18.3.9", + "@types/node": "22.7.4", + "@types/react": "18.3.10", "@types/react-dom": "18.3.0", "@types/react-syntax-highlighter": "15.5.13", "cross-env": "7.0.3", @@ -84,7 +84,7 @@ "tsx": "4.19.1", "type-fest": "4.26.1", "typescript": "5.6.2", - "webpack": "5.94.0", + "webpack": "5.95.0", "webpack-cli": "5.1.4", "zod": "3.23.8" } diff --git a/workspaces/chrome-extension-hello-world/package.json b/workspaces/chrome-extension-hello-world/package.json index 75f9fb47..94ef2c20 100644 --- a/workspaces/chrome-extension-hello-world/package.json +++ b/workspaces/chrome-extension-hello-world/package.json @@ -17,13 +17,13 @@ }, "devDependencies": { "@code-chronicles/eslint-config": "workspace:*", - "@types/node": "22.7.0", + "@types/node": "22.7.4", "cross-env": "7.0.3", "prettier": "3.3.3", "ts-loader": "9.5.1", "tsx": "4.19.1", "typescript": "5.6.2", - "webpack": "5.94.0", + "webpack": "5.95.0", "webpack-cli": "5.1.4" } } diff --git a/workspaces/download-leetcode-submissions/package.json b/workspaces/download-leetcode-submissions/package.json index 46546fca..d1616488 100644 --- a/workspaces/download-leetcode-submissions/package.json +++ b/workspaces/download-leetcode-submissions/package.json @@ -29,14 +29,14 @@ }, "devDependencies": { "@code-chronicles/eslint-config": "workspace:*", - "@types/node": "22.7.0", + "@types/node": "22.7.4", "cross-env": "7.0.3", "eslint": "9.11.1", "prettier": "3.3.3", "ts-loader": "9.5.1", "tsx": "4.19.1", "typescript": "5.6.2", - "webpack": "5.94.0", + "webpack": "5.95.0", "webpack-cli": "5.1.4" } } diff --git a/workspaces/fetch-leetcode-problem-list/package.json b/workspaces/fetch-leetcode-problem-list/package.json index 35955518..e327ea33 100644 --- a/workspaces/fetch-leetcode-problem-list/package.json +++ b/workspaces/fetch-leetcode-problem-list/package.json @@ -27,14 +27,14 @@ }, "devDependencies": { "@code-chronicles/eslint-config": "workspace:*", - "@types/node": "22.7.0", + "@types/node": "22.7.4", "cross-env": "7.0.3", "eslint": "9.11.1", "prettier": "3.3.3", "ts-loader": "9.5.1", "tsx": "4.19.1", "typescript": "5.6.2", - "webpack": "5.94.0", + "webpack": "5.95.0", "webpack-cli": "5.1.4" } } diff --git a/workspaces/fetch-recent-accepted-leetcode-submissions/package.json b/workspaces/fetch-recent-accepted-leetcode-submissions/package.json index 0c29f0b7..99376e5a 100644 --- a/workspaces/fetch-recent-accepted-leetcode-submissions/package.json +++ b/workspaces/fetch-recent-accepted-leetcode-submissions/package.json @@ -27,14 +27,14 @@ }, "devDependencies": { "@code-chronicles/eslint-config": "workspace:*", - "@types/node": "22.7.0", + "@types/node": "22.7.4", "cross-env": "7.0.3", "eslint": "9.11.1", "prettier": "3.3.3", "ts-loader": "9.5.1", "tsx": "4.19.1", "typescript": "5.6.2", - "webpack": "5.94.0", + "webpack": "5.95.0", "webpack-cli": "5.1.4" } } diff --git a/workspaces/generate-health-report/package.json b/workspaces/generate-health-report/package.json index fe588737..b5dfbae0 100644 --- a/workspaces/generate-health-report/package.json +++ b/workspaces/generate-health-report/package.json @@ -26,7 +26,7 @@ }, "devDependencies": { "@code-chronicles/eslint-config": "workspace:*", - "@types/node": "22.7.0", + "@types/node": "22.7.4", "eslint": "9.11.1", "prettier": "3.3.3", "typescript": "5.6.2" diff --git a/workspaces/generate-health-report/src/main.ts b/workspaces/generate-health-report/src/main.ts index c553e525..1d363c3b 100644 --- a/workspaces/generate-health-report/src/main.ts +++ b/workspaces/generate-health-report/src/main.ts @@ -10,14 +10,11 @@ import { maybeThrow } from "@code-chronicles/util/maybeThrow"; import { spawnWithSafeStdio } from "@code-chronicles/util/spawnWithSafeStdio"; const COMMANDS = [ - "yarn constraints", - "yarn test", "yarn workspace @code-chronicles/adventure-pack build-app", "yarn workspace @code-chronicles/adventure-pack build-chrome-extension", "yarn workspace @code-chronicles/chrome-extension-hello-world build", "yarn workspace @code-chronicles/fetch-leetcode-problem-list build", "yarn workspace @code-chronicles/fetch-recent-accepted-leetcode-submissions build", - "yarn workspace @code-chronicles/leetcode-api validate-graphql-schema", "yarn workspace @code-chronicles/leetcode-zen-mode build", "yarn workspace @code-chronicles/post-leetcode-potd-to-discord build", ]; diff --git a/workspaces/javascript-leetcode-month/package.json b/workspaces/javascript-leetcode-month/package.json index a97c31e0..303816d3 100644 --- a/workspaces/javascript-leetcode-month/package.json +++ b/workspaces/javascript-leetcode-month/package.json @@ -23,7 +23,7 @@ "@code-chronicles/eslint-config": "workspace:*", "@code-chronicles/util": "workspace:*", "@types/mdast": "4.0.4", - "@types/node": "22.7.0", + "@types/node": "22.7.4", "eslint": "9.11.1", "mdast": "3.0.0", "prettier": "3.3.3", diff --git a/workspaces/leetcode-api/jest.config.ts b/workspaces/leetcode-api/jest.config.ts new file mode 100644 index 00000000..5507e3b3 --- /dev/null +++ b/workspaces/leetcode-api/jest.config.ts @@ -0,0 +1,44 @@ +import type { Config } from "jest"; + +const config: Config = { + preset: "ts-jest", + testEnvironment: "node", +}; + +export default config; + +// Hack to make this config runnable as a script, since the combination of +// Jest, ESM, and a TypeScript config has been painful to get working otherwise. +import("node:process").then(async ({ default: process }) => { + if (import.meta.filename !== process.argv[1]) { + return; + } + + try { + const { spawnWithSafeStdio } = await import( + "@code-chronicles/util/spawnWithSafeStdio" + ); + await spawnWithSafeStdio( + "jest", + ["--color", "-c", JSON.stringify(config), ...process.argv.slice(2)], + { + stdio: "inherit", + env: { + ...process.env, + NODE_OPTIONS: [ + "--experimental-vm-modules", + process.env.NODE_OPTIONS?.trim(), + ] + .filter(Boolean) + .join(" "), + }, + }, + ); + } catch (err) { + console.error( + (err as Record | null | undefined)?.message ?? err, + ); + // eslint-disable-next-line require-atomic-updates -- Updating `process.exitCode` on error is logical. + process.exitCode = 1; + } +}); diff --git a/workspaces/leetcode-api/package.json b/workspaces/leetcode-api/package.json index 72b186da..e6cc4af9 100644 --- a/workspaces/leetcode-api/package.json +++ b/workspaces/leetcode-api/package.json @@ -18,9 +18,8 @@ "format": "prettier --color --write .", "lint": "eslint --color --max-warnings=0 .", "scrape-graphql-schema": "tsx src/scripts/scrape-graphql-schema/main.ts", - "typecheck": "tsc --pretty --project .", - "foo": "tsx src/fetchCommunitySolution.mts", - "validate-graphql-schema": "tsx src/scripts/validate-graphql-schema/main.ts" + "test": "tsx ./jest.config.ts", + "typecheck": "tsc --pretty --project ." }, "dependencies": { "@code-chronicles/util": "workspace:*", @@ -32,9 +31,12 @@ }, "devDependencies": { "@code-chronicles/eslint-config": "workspace:*", - "@types/node": "22.7.0", + "@types/node": "22.7.4", "eslint": "9.11.1", + "graphql": "16.9.0", + "jest": "29.7.0", "prettier": "3.3.3", + "ts-jest": "29.2.5", "tsx": "4.19.1", "typescript": "5.6.2" } diff --git a/workspaces/leetcode-api/src/__tests__/validSchema-test.ts b/workspaces/leetcode-api/src/__tests__/validSchema-test.ts new file mode 100644 index 00000000..5a5a41ed --- /dev/null +++ b/workspaces/leetcode-api/src/__tests__/validSchema-test.ts @@ -0,0 +1,13 @@ +import { readFile } from "node:fs/promises"; + +import { describe, expect, it } from "@jest/globals"; +import { buildSchema, validateSchema } from "graphql"; + +import { SCHEMA_FILE } from "../scripts/scrape-graphql-schema/constants.ts"; + +describe("GraphQL schema", () => { + it("validates", async () => { + const schema = buildSchema(await readFile(SCHEMA_FILE, "utf8")); + expect(validateSchema(schema)).toStrictEqual([]); + }); +}); diff --git a/workspaces/leetcode-api/src/scripts/validate-graphql-schema/main.ts b/workspaces/leetcode-api/src/scripts/validate-graphql-schema/main.ts deleted file mode 100644 index 7f7fc553..00000000 --- a/workspaces/leetcode-api/src/scripts/validate-graphql-schema/main.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { readFile } from "node:fs/promises"; - -import { buildSchema, validateSchema } from "graphql"; - -import { maybeThrow } from "@code-chronicles/util/maybeThrow"; - -import { SCHEMA_FILE } from "../scrape-graphql-schema/constants.ts"; - -async function main(): Promise { - const schema = buildSchema(await readFile(SCHEMA_FILE, "utf8")); - maybeThrow(validateSchema(schema)); - console.error("GraphQL schema is valid, yay! 🎉"); -} - -main().catch((err) => { - console.error(err); - process.exitCode = 1; -}); diff --git a/workspaces/leetcode-zen-mode/package.json b/workspaces/leetcode-zen-mode/package.json index 9c7201bb..e797e815 100644 --- a/workspaces/leetcode-zen-mode/package.json +++ b/workspaces/leetcode-zen-mode/package.json @@ -27,7 +27,7 @@ }, "devDependencies": { "@code-chronicles/eslint-config": "workspace:*", - "@types/node": "22.7.0", + "@types/node": "22.7.4", "cross-env": "7.0.3", "eslint": "9.11.1", "prettier": "3.3.3", @@ -35,7 +35,7 @@ "tsx": "4.19.1", "type-fest": "4.26.1", "typescript": "5.6.2", - "webpack": "5.94.0", + "webpack": "5.95.0", "webpack-cli": "5.1.4" } } diff --git a/workspaces/post-leetcode-potd-to-discord/package.json b/workspaces/post-leetcode-potd-to-discord/package.json index 405ea22b..6e880b92 100644 --- a/workspaces/post-leetcode-potd-to-discord/package.json +++ b/workspaces/post-leetcode-potd-to-discord/package.json @@ -34,13 +34,13 @@ "devDependencies": { "@code-chronicles/eslint-config": "workspace:*", "@types/invariant": "2.2.37", - "@types/node": "22.7.0", + "@types/node": "22.7.4", "cross-env": "7.0.3", "eslint": "9.11.1", "prettier": "3.3.3", "tsx": "4.19.1", "typescript": "5.6.2", - "webpack": "5.94.0", + "webpack": "5.95.0", "webpack-cli": "5.1.4" } } diff --git a/workspaces/repository-scripts/package.json b/workspaces/repository-scripts/package.json index d2b9fcf8..bba2e83d 100644 --- a/workspaces/repository-scripts/package.json +++ b/workspaces/repository-scripts/package.json @@ -25,7 +25,7 @@ }, "devDependencies": { "@code-chronicles/eslint-config": "workspace:*", - "@types/node": "22.7.0", + "@types/node": "22.7.4", "eslint": "9.11.1", "prettier": "3.3.3", "type-fest": "4.26.1", diff --git a/workspaces/repository-scripts/src/scripts.ts b/workspaces/repository-scripts/src/scripts.ts index 32b965d1..760f2eae 100644 --- a/workspaces/repository-scripts/src/scripts.ts +++ b/workspaces/repository-scripts/src/scripts.ts @@ -75,7 +75,6 @@ export const SCRIPTS_TO_SKIP_BY_WORKSPACE: Readonly< "fetch-recent-accepted-leetcode-submissions": new Set(["test"]), "generate-health-report": new Set(["test"]), "javascript-leetcode-month": new Set(["test"]), - "leetcode-api": new Set(["test"]), "leetcode-zen-mode": new Set(["test"]), "post-leetcode-potd-to-discord": new Set(["test"]), "repository-scripts": new Set(["test"]), diff --git a/workspaces/util/package.json b/workspaces/util/package.json index 3d32dfa5..d1ce17fd 100644 --- a/workspaces/util/package.json +++ b/workspaces/util/package.json @@ -33,7 +33,7 @@ "@code-chronicles/eslint-config": "workspace:*", "@code-chronicles/util": "workspace:*", "@jest/globals": "29.7.0", - "@types/node": "22.7.0", + "@types/node": "22.7.4", "eslint": "9.11.1", "jest": "29.7.0", "prettier": "3.3.3", diff --git a/yarn.lock b/yarn.lock index e5650459..e4592320 100644 --- a/yarn.lock +++ b/yarn.lock @@ -464,8 +464,8 @@ __metadata: "@code-chronicles/eslint-config": "workspace:*" "@code-chronicles/util": "workspace:*" "@jest/globals": "npm:29.7.0" - "@types/node": "npm:22.7.0" - "@types/react": "npm:18.3.9" + "@types/node": "npm:22.7.4" + "@types/react": "npm:18.3.10" "@types/react-dom": "npm:18.3.0" "@types/react-syntax-highlighter": "npm:15.5.13" cross-env: "npm:7.0.3" @@ -485,7 +485,7 @@ __metadata: tsx: "npm:4.19.1" type-fest: "npm:4.26.1" typescript: "npm:5.6.2" - webpack: "npm:5.94.0" + webpack: "npm:5.95.0" webpack-cli: "npm:5.1.4" zod: "npm:3.23.8" languageName: unknown @@ -496,13 +496,13 @@ __metadata: resolution: "@code-chronicles/chrome-extension-hello-world@workspace:workspaces/chrome-extension-hello-world" dependencies: "@code-chronicles/eslint-config": "workspace:*" - "@types/node": "npm:22.7.0" + "@types/node": "npm:22.7.4" cross-env: "npm:7.0.3" prettier: "npm:3.3.3" ts-loader: "npm:9.5.1" tsx: "npm:4.19.1" typescript: "npm:5.6.2" - webpack: "npm:5.94.0" + webpack: "npm:5.95.0" webpack-cli: "npm:5.1.4" languageName: unknown linkType: soft @@ -514,7 +514,7 @@ __metadata: "@code-chronicles/eslint-config": "workspace:*" "@code-chronicles/leetcode-api": "workspace:*" "@code-chronicles/util": "workspace:*" - "@types/node": "npm:22.7.0" + "@types/node": "npm:22.7.4" cross-env: "npm:7.0.3" eslint: "npm:9.11.1" nullthrows: "patch:nullthrows@npm%3A1.1.1#~/.yarn/patches/nullthrows-npm-1.1.1-3d1f817134.patch" @@ -522,7 +522,7 @@ __metadata: ts-loader: "npm:9.5.1" tsx: "npm:4.19.1" typescript: "npm:5.6.2" - webpack: "npm:5.94.0" + webpack: "npm:5.95.0" webpack-cli: "npm:5.1.4" zod: "npm:3.23.8" languageName: unknown @@ -554,14 +554,14 @@ __metadata: "@code-chronicles/eslint-config": "workspace:*" "@code-chronicles/leetcode-api": "workspace:*" "@code-chronicles/util": "workspace:*" - "@types/node": "npm:22.7.0" + "@types/node": "npm:22.7.4" cross-env: "npm:7.0.3" eslint: "npm:9.11.1" prettier: "npm:3.3.3" ts-loader: "npm:9.5.1" tsx: "npm:4.19.1" typescript: "npm:5.6.2" - webpack: "npm:5.94.0" + webpack: "npm:5.95.0" webpack-cli: "npm:5.1.4" languageName: unknown linkType: soft @@ -573,14 +573,14 @@ __metadata: "@code-chronicles/eslint-config": "workspace:*" "@code-chronicles/leetcode-api": "workspace:*" "@code-chronicles/util": "workspace:*" - "@types/node": "npm:22.7.0" + "@types/node": "npm:22.7.4" cross-env: "npm:7.0.3" eslint: "npm:9.11.1" prettier: "npm:3.3.3" ts-loader: "npm:9.5.1" tsx: "npm:4.19.1" typescript: "npm:5.6.2" - webpack: "npm:5.94.0" + webpack: "npm:5.95.0" webpack-cli: "npm:5.1.4" languageName: unknown linkType: soft @@ -591,7 +591,7 @@ __metadata: dependencies: "@code-chronicles/eslint-config": "workspace:*" "@code-chronicles/util": "workspace:*" - "@types/node": "npm:22.7.0" + "@types/node": "npm:22.7.4" eslint: "npm:9.11.1" nullthrows: "patch:nullthrows@npm%3A1.1.1#~/.yarn/patches/nullthrows-npm-1.1.1-3d1f817134.patch" prettier: "npm:3.3.3" @@ -607,7 +607,7 @@ __metadata: "@code-chronicles/eslint-config": "workspace:*" "@code-chronicles/util": "workspace:*" "@types/mdast": "npm:4.0.4" - "@types/node": "npm:22.7.0" + "@types/node": "npm:22.7.4" eslint: "npm:9.11.1" mdast: "npm:3.0.0" prettier: "npm:3.3.3" @@ -624,13 +624,15 @@ __metadata: dependencies: "@code-chronicles/eslint-config": "workspace:*" "@code-chronicles/util": "workspace:*" - "@types/node": "npm:22.7.0" + "@types/node": "npm:22.7.4" eslint: "npm:9.11.1" graphql: "npm:16.9.0" graphql-request: "npm:7.1.0" invariant: "npm:2.2.4" + jest: "npm:29.7.0" nullthrows: "patch:nullthrows@npm%3A1.1.1#~/.yarn/patches/nullthrows-npm-1.1.1-3d1f817134.patch" prettier: "npm:3.3.3" + ts-jest: "npm:29.2.5" tsx: "npm:4.19.1" typescript: "npm:5.6.2" zod: "npm:3.23.8" @@ -643,7 +645,7 @@ __metadata: dependencies: "@code-chronicles/eslint-config": "workspace:*" "@code-chronicles/util": "workspace:*" - "@types/node": "npm:22.7.0" + "@types/node": "npm:22.7.4" cross-env: "npm:7.0.3" eslint: "npm:9.11.1" nullthrows: "patch:nullthrows@npm%3A1.1.1#~/.yarn/patches/nullthrows-npm-1.1.1-3d1f817134.patch" @@ -652,7 +654,7 @@ __metadata: tsx: "npm:4.19.1" type-fest: "npm:4.26.1" typescript: "npm:5.6.2" - webpack: "npm:5.94.0" + webpack: "npm:5.95.0" webpack-cli: "npm:5.1.4" languageName: unknown linkType: soft @@ -665,7 +667,7 @@ __metadata: "@code-chronicles/leetcode-api": "workspace:*" "@code-chronicles/util": "workspace:*" "@types/invariant": "npm:2.2.37" - "@types/node": "npm:22.7.0" + "@types/node": "npm:22.7.4" bufferutil: "npm:4.0.8" cross-env: "npm:7.0.3" discord.js: "npm:14.15.3" @@ -675,7 +677,7 @@ __metadata: tsx: "npm:4.19.1" typescript: "npm:5.6.2" utf-8-validate: "npm:6.0.4" - webpack: "npm:5.94.0" + webpack: "npm:5.95.0" webpack-cli: "npm:5.1.4" ws: "npm:8.18.0" zod: "npm:3.23.8" @@ -688,7 +690,7 @@ __metadata: dependencies: "@code-chronicles/eslint-config": "workspace:*" "@code-chronicles/util": "workspace:*" - "@types/node": "npm:22.7.0" + "@types/node": "npm:22.7.4" eslint: "npm:9.11.1" prettier: "npm:3.3.3" tsx: "npm:4.19.1" @@ -704,7 +706,7 @@ __metadata: "@code-chronicles/eslint-config": "workspace:*" "@code-chronicles/util": "workspace:*" "@jest/globals": "npm:29.7.0" - "@types/node": "npm:22.7.0" + "@types/node": "npm:22.7.4" eslint: "npm:9.11.1" jest: "npm:29.7.0" prettier: "npm:3.3.3" @@ -1718,21 +1720,12 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:*": - version: 22.5.5 - resolution: "@types/node@npm:22.5.5" - dependencies: - undici-types: "npm:~6.19.2" - checksum: 10c0/ead9495cfc6b1da5e7025856dcce2591e9bae635357410c0d2dd619fce797d2a1d402887580ca4b336cb78168b195224869967de370a23f61663cf1e4836121c - languageName: node - linkType: hard - -"@types/node@npm:22.7.0": - version: 22.7.0 - resolution: "@types/node@npm:22.7.0" +"@types/node@npm:*, @types/node@npm:22.7.4": + version: 22.7.4 + resolution: "@types/node@npm:22.7.4" dependencies: undici-types: "npm:~6.19.2" - checksum: 10c0/127b1ac3eebe8c2b09e3d2de277ee906710c4908b4573cde23b9c7cec1cb1aaf1af8bdabbccdac08d005f820b770e7447b22c8eb56ca63344f4d2e26bcdc29fb + checksum: 10c0/c22bf54515c78ff3170142c1e718b90e2a0003419dc2d55f79c9c9362edd590a6ab1450deb09ff6e1b32d1b4698da407930b16285e8be3a009ea6cd2695cac01 languageName: node linkType: hard @@ -1761,23 +1754,13 @@ __metadata: languageName: node linkType: hard -"@types/react@npm:*": - version: 18.3.8 - resolution: "@types/react@npm:18.3.8" +"@types/react@npm:*, @types/react@npm:18.3.10": + version: 18.3.10 + resolution: "@types/react@npm:18.3.10" dependencies: "@types/prop-types": "npm:*" csstype: "npm:^3.0.2" - checksum: 10c0/367312c9fe276639ecb142265e090a4dd04bb39f8d718cbab546de3f1ddcfddeff415e1147d0fc40f734badaa7420b7b109d511bd4304b2c4c9c36164612fdf8 - languageName: node - linkType: hard - -"@types/react@npm:18.3.9": - version: 18.3.9 - resolution: "@types/react@npm:18.3.9" - dependencies: - "@types/prop-types": "npm:*" - csstype: "npm:^3.0.2" - checksum: 10c0/a92b8e061d0c833e096254782c56a802316593f4a907fb834b557cabe848a0829b9eb6056404ea239eb4d5ec5ac7b7724309761516c0a7a277916fa04dd4f805 + checksum: 10c0/f5be1de1b0331c1fdb33d577f4cf7f1b949d4bded5347b2351a537f03c51dade5be115e21b161dcf1b37061954d320f6a0bdf8d7b70e24eda51071fdd614383d languageName: node linkType: hard @@ -1878,13 +1861,13 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:8.6.0": - version: 8.6.0 - resolution: "@typescript-eslint/scope-manager@npm:8.6.0" +"@typescript-eslint/scope-manager@npm:8.7.0": + version: 8.7.0 + resolution: "@typescript-eslint/scope-manager@npm:8.7.0" dependencies: - "@typescript-eslint/types": "npm:8.6.0" - "@typescript-eslint/visitor-keys": "npm:8.6.0" - checksum: 10c0/37092ef70171c06854ac67ebfb2255063890c1c6133654e6b15b6adb6d2ab83de4feafd1599f4d02ed71a018226fcb3a389021758ec045e1904fb1798e90b4fe + "@typescript-eslint/types": "npm:8.7.0" + "@typescript-eslint/visitor-keys": "npm:8.7.0" + checksum: 10c0/8b731a0d0bd3e8f6a322b3b25006f56879b5d2aad86625070fa438b803cf938cb8d5c597758bfa0d65d6e142b204dc6f363fa239bc44280a74e25aa427408eda languageName: node linkType: hard @@ -1910,10 +1893,10 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/types@npm:8.6.0": - version: 8.6.0 - resolution: "@typescript-eslint/types@npm:8.6.0" - checksum: 10c0/e7051d212252f7d1905b5527b211e335db4ec5bb1d3a52d73c8d2de6ddf5cbc981f2c92ca9ffcef35f7447bda635ea1ccce5f884ade7f243d14f2a254982c698 +"@typescript-eslint/types@npm:8.7.0": + version: 8.7.0 + resolution: "@typescript-eslint/types@npm:8.7.0" + checksum: 10c0/f7529eaea4ecc0f5e2d94ea656db8f930f6d1c1e65a3ffcb2f6bec87361173de2ea981405c2c483a35a927b3bdafb606319a1d0395a6feb1284448c8ba74c31e languageName: node linkType: hard @@ -1936,12 +1919,12 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:8.6.0": - version: 8.6.0 - resolution: "@typescript-eslint/typescript-estree@npm:8.6.0" +"@typescript-eslint/typescript-estree@npm:8.7.0": + version: 8.7.0 + resolution: "@typescript-eslint/typescript-estree@npm:8.7.0" dependencies: - "@typescript-eslint/types": "npm:8.6.0" - "@typescript-eslint/visitor-keys": "npm:8.6.0" + "@typescript-eslint/types": "npm:8.7.0" + "@typescript-eslint/visitor-keys": "npm:8.7.0" debug: "npm:^4.3.4" fast-glob: "npm:^3.3.2" is-glob: "npm:^4.0.3" @@ -1951,7 +1934,7 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10c0/33ab8c03221a797865301f09d1d198c67f8b0e3dbf0d13e41f699dc2740242303a9fcfd7b38302cef318541fdedd832fd6e8ba34a5041a57e9114fa134045385 + checksum: 10c0/d714605b6920a9631ab1511b569c1c158b1681c09005ab240125c442a63e906048064151a61ce5eb5f8fe75cea861ce5ae1d87be9d7296b012e4ab6d88755e8b languageName: node linkType: hard @@ -1970,16 +1953,16 @@ __metadata: linkType: hard "@typescript-eslint/utils@npm:^6.0.0 || ^7.0.0 || ^8.0.0, @typescript-eslint/utils@npm:^8.1.0, @typescript-eslint/utils@npm:^8.4.0": - version: 8.6.0 - resolution: "@typescript-eslint/utils@npm:8.6.0" + version: 8.7.0 + resolution: "@typescript-eslint/utils@npm:8.7.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.4.0" - "@typescript-eslint/scope-manager": "npm:8.6.0" - "@typescript-eslint/types": "npm:8.6.0" - "@typescript-eslint/typescript-estree": "npm:8.6.0" + "@typescript-eslint/scope-manager": "npm:8.7.0" + "@typescript-eslint/types": "npm:8.7.0" + "@typescript-eslint/typescript-estree": "npm:8.7.0" peerDependencies: eslint: ^8.57.0 || ^9.0.0 - checksum: 10c0/5b615106342dfdf09f5a73e2554cc0c4d979c262a9a4548eb76ec7045768e0ff0bf0316cf8a5eb5404689cd476fcd335fc84f90eb985557559e42aeee33d687e + checksum: 10c0/7355b754ce2fc118773ed27a3e02b7dfae270eec73c2d896738835ecf842e8309544dfd22c5105aba6cae2787bfdd84129bbc42f4b514f57909dc7f6890b8eba languageName: node linkType: hard @@ -1993,13 +1976,13 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:8.6.0": - version: 8.6.0 - resolution: "@typescript-eslint/visitor-keys@npm:8.6.0" +"@typescript-eslint/visitor-keys@npm:8.7.0": + version: 8.7.0 + resolution: "@typescript-eslint/visitor-keys@npm:8.7.0" dependencies: - "@typescript-eslint/types": "npm:8.6.0" + "@typescript-eslint/types": "npm:8.7.0" eslint-visitor-keys: "npm:^3.4.3" - checksum: 10c0/9bd5d5daee9de7e009fdd1b64b1eca685a699d1b2639373bc279c97e25e769fff56fffef708ef66a2b19bc8bb201d36daf9e7084f0e0872178bfcf9d923b41f3 + checksum: 10c0/1240da13c15f9f875644b933b0ad73713ef12f1db5715236824c1ec359e6ef082ce52dd9b2186d40e28be6a816a208c226e6e9af96e5baeb24b4399fe786ae7c languageName: node linkType: hard @@ -2609,16 +2592,16 @@ __metadata: linkType: hard "browserslist@npm:^4.21.10, browserslist@npm:^4.23.1": - version: 4.23.3 - resolution: "browserslist@npm:4.23.3" + version: 4.24.0 + resolution: "browserslist@npm:4.24.0" dependencies: - caniuse-lite: "npm:^1.0.30001646" - electron-to-chromium: "npm:^1.5.4" + caniuse-lite: "npm:^1.0.30001663" + electron-to-chromium: "npm:^1.5.28" node-releases: "npm:^2.0.18" update-browserslist-db: "npm:^1.1.0" bin: browserslist: cli.js - checksum: 10c0/3063bfdf812815346447f4796c8f04601bf5d62003374305fd323c2a463e42776475bcc5309264e39bcf9a8605851e53560695991a623be988138b3ff8c66642 + checksum: 10c0/95e76ad522753c4c470427f6e3c8a4bb5478ff448841e22b3d3e53f89ecaf17b6984666d6c7e715c370f1e7fa0cf684f42e34e554236a8b2fab38ea76b9e4c52 languageName: node linkType: hard @@ -2711,10 +2694,10 @@ __metadata: languageName: node linkType: hard -"caniuse-lite@npm:^1.0.30001646": - version: 1.0.30001662 - resolution: "caniuse-lite@npm:1.0.30001662" - checksum: 10c0/4af44610db30b9e63443d984be9d48ab93eef584609b3e87201c10972b9daff0b52674e3ed01f7b7b240460763428a3aa8ef7328d14b76ed31ed464203677007 +"caniuse-lite@npm:^1.0.30001663": + version: 1.0.30001664 + resolution: "caniuse-lite@npm:1.0.30001664" + checksum: 10c0/db2b431aba41a585191ab1e4d40da0ad349ff32400edac2a167bf6bf92dbf9c704eab03dc60fb89e882ce02478d61c3036b2b1bdce8edf9b2aabda5608bae05e languageName: node linkType: hard @@ -3242,10 +3225,10 @@ __metadata: languageName: node linkType: hard -"electron-to-chromium@npm:^1.5.4": - version: 1.5.27 - resolution: "electron-to-chromium@npm:1.5.27" - checksum: 10c0/4a057f469a01829884f2a51f3fc60af7e6a718b15009e4875df122fcdf13babea475ba029af1652a6875b4acfca730c48b13caac5d477d648e622699d3b662bf +"electron-to-chromium@npm:^1.5.28": + version: 1.5.29 + resolution: "electron-to-chromium@npm:1.5.29" + checksum: 10c0/ae4849f1fe8d756d30c6f5f992803d8550a98b38a30aecc7d9776858cf229ad05b12cb9f7675f0a89330a077d16e28388cfe394fdd9d0828ffe860c8568c95c2 languageName: node linkType: hard @@ -3535,7 +3518,7 @@ __metadata: languageName: node linkType: hard -"escalade@npm:^3.1.1, escalade@npm:^3.1.2": +"escalade@npm:^3.1.1, escalade@npm:^3.2.0": version: 3.2.0 resolution: "escalade@npm:3.2.0" checksum: 10c0/ced4dd3a78e15897ed3be74e635110bbf3b08877b0a41be50dcb325ee0e0b5f65fc2d50e9845194d7c4633f327e2e1c6cce00a71b617c5673df0374201d67f65 @@ -3600,14 +3583,14 @@ __metadata: linkType: hard "eslint-module-utils@npm:^2.8.1, eslint-module-utils@npm:^2.9.0": - version: 2.11.0 - resolution: "eslint-module-utils@npm:2.11.0" + version: 2.12.0 + resolution: "eslint-module-utils@npm:2.12.0" dependencies: debug: "npm:^3.2.7" peerDependenciesMeta: eslint: optional: true - checksum: 10c0/c1b02e83429878ab22596f17a5ac138e51a520e96a5ef89a5a6698769a2d174ab28302d45eb563c0fc418d21a5842e328c37a6e8f294bf2e64e675ba55203dd7 + checksum: 10c0/4d8b46dcd525d71276f9be9ffac1d2be61c9d54cc53c992e6333cf957840dee09381842b1acbbb15fc6b255ebab99cd481c5007ab438e5455a14abe1a0468558 languageName: node linkType: hard @@ -3688,12 +3671,12 @@ __metadata: linkType: hard "eslint-scope@npm:^8.0.2": - version: 8.0.2 - resolution: "eslint-scope@npm:8.0.2" + version: 8.1.0 + resolution: "eslint-scope@npm:8.1.0" dependencies: esrecurse: "npm:^4.3.0" estraverse: "npm:^5.2.0" - checksum: 10c0/477f820647c8755229da913025b4567347fd1f0bf7cbdf3a256efff26a7e2e130433df052bd9e3d014025423dc00489bea47eb341002b15553673379c1a7dc36 + checksum: 10c0/ae1df7accae9ea90465c2ded70f7064d6d1f2962ef4cc87398855c4f0b3a5ab01063e0258d954bb94b184f6759febe04c3118195cab5c51978a7229948ba2875 languageName: node linkType: hard @@ -3704,10 +3687,10 @@ __metadata: languageName: node linkType: hard -"eslint-visitor-keys@npm:^4.0.0": - version: 4.0.0 - resolution: "eslint-visitor-keys@npm:4.0.0" - checksum: 10c0/76619f42cf162705a1515a6868e6fc7567e185c7063a05621a8ac4c3b850d022661262c21d9f1fc1d144ecf0d5d64d70a3f43c15c3fc969a61ace0fb25698cf5 +"eslint-visitor-keys@npm:^4.0.0, eslint-visitor-keys@npm:^4.1.0": + version: 4.1.0 + resolution: "eslint-visitor-keys@npm:4.1.0" + checksum: 10c0/5483ef114c93a136aa234140d7aa3bd259488dae866d35cb0d0b52e6a158f614760a57256ac8d549acc590a87042cb40f6951815caa821e55dc4fd6ef4c722eb languageName: node linkType: hard @@ -3764,13 +3747,13 @@ __metadata: linkType: hard "espree@npm:^10.0.1, espree@npm:^10.1.0": - version: 10.1.0 - resolution: "espree@npm:10.1.0" + version: 10.2.0 + resolution: "espree@npm:10.2.0" dependencies: acorn: "npm:^8.12.0" acorn-jsx: "npm:^5.3.2" - eslint-visitor-keys: "npm:^4.0.0" - checksum: 10c0/52e6feaa77a31a6038f0c0e3fce93010a4625701925b0715cd54a2ae190b3275053a0717db698697b32653788ac04845e489d6773b508d6c2e8752f3c57470a0 + eslint-visitor-keys: "npm:^4.1.0" + checksum: 10c0/2b6bfb683e7e5ab2e9513949879140898d80a2d9867ea1db6ff5b0256df81722633b60a7523a7c614f05a39aeea159dd09ad2a0e90c0e218732fc016f9086215 languageName: node linkType: hard @@ -6629,9 +6612,9 @@ __metadata: linkType: hard "package-json-from-dist@npm:^1.0.0": - version: 1.0.0 - resolution: "package-json-from-dist@npm:1.0.0" - checksum: 10c0/e3ffaf6ac1040ab6082a658230c041ad14e72fabe99076a2081bb1d5d41210f11872403fc09082daf4387fc0baa6577f96c9c0e94c90c394fd57794b66aa4033 + version: 1.0.1 + resolution: "package-json-from-dist@npm:1.0.1" + checksum: 10c0/62ba2785eb655fec084a257af34dbe24292ab74516d6aecef97ef72d4897310bc6898f6c85b5cd22770eaa1ce60d55a0230e150fb6a966e3ecd6c511e23d164b languageName: node linkType: hard @@ -6722,7 +6705,7 @@ __metadata: languageName: node linkType: hard -"picocolors@npm:^1.0.0, picocolors@npm:^1.0.1": +"picocolors@npm:^1.0.0, picocolors@npm:^1.1.0": version: 1.1.0 resolution: "picocolors@npm:1.1.0" checksum: 10c0/86946f6032148801ef09c051c6fb13b5cf942eaf147e30ea79edb91dd32d700934edebe782a1078ff859fb2b816792e97ef4dab03d7f0b804f6b01a0df35e023 @@ -7676,8 +7659,8 @@ __metadata: linkType: hard "terser@npm:^5.26.0": - version: 5.33.0 - resolution: "terser@npm:5.33.0" + version: 5.34.1 + resolution: "terser@npm:5.34.1" dependencies: "@jridgewell/source-map": "npm:^0.3.3" acorn: "npm:^8.8.2" @@ -7685,7 +7668,7 @@ __metadata: source-map-support: "npm:~0.5.20" bin: terser: bin/terser - checksum: 10c0/18a1cd33366dcd8fee7d6eef78c9c417cbe688e5153841e6a574f9d4937066dc40f67b1e96305f73f25bc6f2c458dbe442a056092c99619d4dbee8ad9fae4a3e + checksum: 10c0/51c7d704c5c4ae88bf937124112c9972aed4e1fd29d805cc2d86e0f54cd631ecd4e69db5bb3c1e3b450c741c86e2313328bea0fde925329e8a31a07a7941723c languageName: node linkType: hard @@ -8073,16 +8056,16 @@ __metadata: linkType: hard "update-browserslist-db@npm:^1.1.0": - version: 1.1.0 - resolution: "update-browserslist-db@npm:1.1.0" + version: 1.1.1 + resolution: "update-browserslist-db@npm:1.1.1" dependencies: - escalade: "npm:^3.1.2" - picocolors: "npm:^1.0.1" + escalade: "npm:^3.2.0" + picocolors: "npm:^1.1.0" peerDependencies: browserslist: ">= 4.21.0" bin: update-browserslist-db: cli.js - checksum: 10c0/a7452de47785842736fb71547651c5bbe5b4dc1e3722ccf48a704b7b34e4dcf633991eaa8e4a6a517ffb738b3252eede3773bef673ef9021baa26b056d63a5b9 + checksum: 10c0/536a2979adda2b4be81b07e311bd2f3ad5e978690987956bc5f514130ad50cac87cd22c710b686d79731e00fbee8ef43efe5fcd72baa241045209195d43dcc80 languageName: node linkType: hard @@ -8205,9 +8188,9 @@ __metadata: languageName: node linkType: hard -"webpack@npm:5.94.0": - version: 5.94.0 - resolution: "webpack@npm:5.94.0" +"webpack@npm:5.95.0": + version: 5.95.0 + resolution: "webpack@npm:5.95.0" dependencies: "@types/estree": "npm:^1.0.5" "@webassemblyjs/ast": "npm:^1.12.1" @@ -8237,7 +8220,7 @@ __metadata: optional: true bin: webpack: bin/webpack.js - checksum: 10c0/b4d1b751f634079bd177a89eef84d80fa5bb8d6fc15d72ab40fc2b9ca5167a79b56585e1a849e9e27e259803ee5c4365cb719e54af70a43c06358ec268ff4ebf + checksum: 10c0/b9e6d0f8ebcbf0632494ac0b90fe4acb8f4a9b83f7ace4a67a15545a36fe58599c912ab58e625e1bf58ab3b0916c75fe99da6196d412ee0cab0b5065edd84238 languageName: node linkType: hard