From a06ab04c222fd72b10a66eee1376e71bcbd461cc Mon Sep 17 00:00:00 2001 From: Timofei Iatsenko Date: Tue, 24 Sep 2024 16:23:38 +0200 Subject: [PATCH 01/24] migrate to vitest part 1 --- jest.config.js | 77 - package.json | 9 +- .../test/{index.ts => index.spec.ts} | 1 + .../babel-plugin-lingui-macro/src/icu.test.ts | 1 + .../src/macroJsAst.test.ts | 1 + .../src/macroJsx.test.ts | 1 + .../test/{index.ts => index.test.ts} | 1 + .../test/js-t.test.ts | 1 + .../test/js-useLingui.test.ts | 1 + .../test/jsx-select.test.ts | 1 + .../test/jsx-trans.test.ts | 2 + packages/cli/src/api/catalog.test.ts | 1 + .../catalog/getCatalogDependentFiles.test.ts | 1 + .../cli/src/api/catalog/getCatalogs.test.ts | 1 + .../catalog/getFallbackListForLocale.test.ts | 1 + .../catalog/getTranslationsForCatalog.test.ts | 21 +- .../cli/src/api/catalog/mergeCatalog.test.ts | 1 + packages/cli/src/api/compile.test.ts | 1 + .../src/api/formats/formatterWrapper.test.ts | 1 + packages/cli/src/api/pseudoLocalize.test.ts | 1 + packages/cli/src/api/stats.test.ts | 1 + packages/cli/src/api/utils.test.ts | 1 + .../resolveTemplatePath.test.ts | 1 + packages/cli/src/test/compile.test.ts | 1 + packages/cli/test/index.test.ts | 1 + packages/conf/src/index.test.ts | 1 + .../normalizeRuntimeConfigModule.test.ts | 1 + .../conf/src/utils/replaceRootDir.test.ts | 1 + packages/core/macro/index.test.ts | 1 + packages/core/src/essentials.test.ts | 1 + packages/core/src/eventEmitter.test.ts | 11 +- packages/core/src/formats.test.ts | 1 + packages/core/src/i18n.test.ts | 15 +- packages/core/src/interpolate.test.ts | 1 + .../src/detectors/fromCookie.test.ts | 1 + .../src/detectors/fromHtmlTag.test.ts | 1 + .../src/detectors/fromNavigator.test.ts | 1 + .../src/detectors/fromPath.test.ts | 1 + .../src/detectors/fromStorage.test.ts | 1 + .../src/detectors/fromSubdomain.test.ts | 1 + .../src/detectors/fromUrl.test.ts | 1 + packages/detect-locale/src/index.test.ts | 1 + .../src/utils/cookie-getter.test.ts | 1 + .../src/utils/query-string.test.ts | 1 + packages/extractor-vue/src/extractor.test.ts | 1 + packages/format-csv/src/csv.test.ts | 1 + packages/format-json/src/json.test.ts | 1 + .../format-po-gettext/src/po-gettext.test.ts | 1 + packages/format-po/src/po.test.ts | 1 + packages/format-po/src/utils.test.ts | 1 + packages/jest-mocks/index.test.ts | 1 + packages/loader/test/loader.test.ts | 3 +- .../message-utils/src/compileMessage.test.ts | 1 + .../src/generateMessageId.test.ts | 1 + packages/react/macro/index.test.ts | 1 + packages/react/src/I18nProvider.test.tsx | 11 +- packages/react/src/Trans.test.tsx | 9 +- packages/react/src/format.test.tsx | 1 + packages/remote-loader/test/index.test.ts | 1 + vitest.config.ts | 8 + vitest.setup.ts | 7 + yarn.lock | 3125 +++++------------ 62 files changed, 935 insertions(+), 2413 deletions(-) delete mode 100644 jest.config.js rename packages/babel-plugin-extract-messages/test/{index.ts => index.spec.ts} (99%) rename packages/babel-plugin-lingui-macro/test/{index.ts => index.test.ts} (99%) create mode 100644 vitest.config.ts create mode 100644 vitest.setup.ts diff --git a/jest.config.js b/jest.config.js deleted file mode 100644 index 19e6dc374..000000000 --- a/jest.config.js +++ /dev/null @@ -1,77 +0,0 @@ -const { pathsToModuleNameMapper } = require("ts-jest") -const tsConfig = require("./tsconfig.json") - -const tsConfigPathMapping = pathsToModuleNameMapper( - tsConfig.compilerOptions.paths, - { - prefix: "/", - } -) - -const testMatch = ["**/?(*.)test.(js|ts|tsx)", "**/test/index.(js|ts|tsx)"] - -/** - * @type {import('jest').Config} - */ -module.exports = { - roots: ["/packages/"], - collectCoverageFrom: [ - "**/*.{ts,tsx}", - "!**/*.d.ts", - "!**/*.test-d.{ts,tsx}", - "!**/node_modules/**", - "!**/build/**", - "!**/fixtures/**", - ], - coverageDirectory: "/coverage/", - coveragePathIgnorePatterns: [ - "node_modules", - "scripts", - "test", - ".*.json$", - ".*.js.snap$", - ], - coverageReporters: ["lcov", "text"], - globalSetup: "./scripts/jest/setupTimezone.js", - projects: [ - { - displayName: "web", - testEnvironment: "jsdom", - testMatch, - moduleNameMapper: tsConfigPathMapping, - roots: ["/packages/react"], - }, - { - displayName: "universal", - testEnvironment: "jest-environment-node-single-context", - testMatch, - moduleNameMapper: tsConfigPathMapping, - roots: ["/packages/core", "/packages/remote-loader"], - }, - { - displayName: "node", - testEnvironment: "jest-environment-node-single-context", - testMatch, - moduleNameMapper: tsConfigPathMapping, - snapshotSerializers: [ - require.resolve("./scripts/jest/stripAnsiSerializer.js"), - ], - setupFilesAfterEnv: [require.resolve("./scripts/jest/env.js")], - roots: [ - "/packages/babel-plugin-extract-messages", - "/packages/babel-plugin-lingui-macro", - "/packages/cli", - "/packages/conf", - "/packages/loader", - "/packages/macro", - "/packages/vite-plugin", - "/packages/format-po", - "/packages/format-po-gettext", - "/packages/format-json", - "/packages/format-csv", - "/packages/message-utils", - "/packages/extractor-vue", - ], - }, - ], -} diff --git a/package.json b/package.json index f80e348d6..a345324dc 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ }, "license": "MIT", "scripts": { - "test": "jest", + "test": "vitest run", "test:ci": "jest --ci --runInBand", "test:ci:coverage": "yarn test:ci --coverage", "test:integration": "jest -c jest.config.integration.js", @@ -44,7 +44,6 @@ "@size-limit/preset-small-lib": "^8.1.1", "@swc/core": "^1.3.26", "@tsd/typescript": "^4.9.5", - "@types/jest": "^29.4.0", "@types/mock-fs": "^4.13.1", "@types/node": "20.14.8", "@types/ramda": "^0.27.23", @@ -61,10 +60,9 @@ "eslint-plugin-node": "^11.1.0", "eslint-plugin-promise": "^4.1.1", "husky": "^8.0.3", - "jest": "^29.4.3", - "jest-environment-jsdom": "^29.4.3", "jest-environment-node-single-context": "^29.0.0", "jest-runner-tsd": "^4.0.0", + "jsdom": "^25.0.1", "lerna": "^6.5.1", "lint-staged": "^13.1.0", "memory-fs": "^0.5.0", @@ -79,7 +77,8 @@ "strip-ansi": "^6.0.1", "swc-node": "^1.0.0", "ts-jest": "^29.0.5", - "typescript": "^4.9.5" + "typescript": "^4.9.5", + "vitest": "^2.1.1" }, "workspaces": [ "packages/*", diff --git a/packages/babel-plugin-extract-messages/test/index.ts b/packages/babel-plugin-extract-messages/test/index.spec.ts similarity index 99% rename from packages/babel-plugin-extract-messages/test/index.ts rename to packages/babel-plugin-extract-messages/test/index.spec.ts index e3f749565..ee457b317 100644 --- a/packages/babel-plugin-extract-messages/test/index.ts +++ b/packages/babel-plugin-extract-messages/test/index.spec.ts @@ -6,6 +6,7 @@ import { mockConsole } from "@lingui/jest-mocks" import linguiMacroPlugin, { type LinguiPluginOpts, } from "@lingui/babel-plugin-lingui-macro" +import { describe, expect, it } from "vitest" const transform = (filename: string) => { const rootDir = path.join(__dirname, "fixtures") diff --git a/packages/babel-plugin-lingui-macro/src/icu.test.ts b/packages/babel-plugin-lingui-macro/src/icu.test.ts index 36be857ac..522db226f 100644 --- a/packages/babel-plugin-lingui-macro/src/icu.test.ts +++ b/packages/babel-plugin-lingui-macro/src/icu.test.ts @@ -1,3 +1,4 @@ +import { describe, expect, it } from "vitest"; import { ICUMessageFormat, Token } from "./icu" import { Identifier } from "@babel/types" diff --git a/packages/babel-plugin-lingui-macro/src/macroJsAst.test.ts b/packages/babel-plugin-lingui-macro/src/macroJsAst.test.ts index 4e00d5962..e1e6e2f11 100644 --- a/packages/babel-plugin-lingui-macro/src/macroJsAst.test.ts +++ b/packages/babel-plugin-lingui-macro/src/macroJsAst.test.ts @@ -1,3 +1,4 @@ +import { describe, expect, it } from "vitest"; import { type CallExpression, type Expression } from "@babel/types" import { tokenizeTemplateLiteral, diff --git a/packages/babel-plugin-lingui-macro/src/macroJsx.test.ts b/packages/babel-plugin-lingui-macro/src/macroJsx.test.ts index a7bbf58da..7c0f068fb 100644 --- a/packages/babel-plugin-lingui-macro/src/macroJsx.test.ts +++ b/packages/babel-plugin-lingui-macro/src/macroJsx.test.ts @@ -1,3 +1,4 @@ +import { describe, expect, it } from "vitest"; import type { JSXElement } from "@babel/types" import * as types from "@babel/types" import { MacroJSX } from "./macroJsx" diff --git a/packages/babel-plugin-lingui-macro/test/index.ts b/packages/babel-plugin-lingui-macro/test/index.test.ts similarity index 99% rename from packages/babel-plugin-lingui-macro/test/index.ts rename to packages/babel-plugin-lingui-macro/test/index.test.ts index fee464964..932391cf2 100644 --- a/packages/babel-plugin-lingui-macro/test/index.ts +++ b/packages/babel-plugin-lingui-macro/test/index.test.ts @@ -1,6 +1,7 @@ import path from "path" import { transformSync } from "@babel/core" import { getDefaultBabelOptions } from "./macroTester" +import { describe, expect, it, test } from "vitest" describe("macro", function () { process.env.LINGUI_CONFIG = path.join(__dirname, "lingui.config.js") diff --git a/packages/babel-plugin-lingui-macro/test/js-t.test.ts b/packages/babel-plugin-lingui-macro/test/js-t.test.ts index 131b971c7..4db072844 100644 --- a/packages/babel-plugin-lingui-macro/test/js-t.test.ts +++ b/packages/babel-plugin-lingui-macro/test/js-t.test.ts @@ -1,3 +1,4 @@ +import { describe } from "vitest" import { macroTester } from "./macroTester" describe.skip("", () => {}) diff --git a/packages/babel-plugin-lingui-macro/test/js-useLingui.test.ts b/packages/babel-plugin-lingui-macro/test/js-useLingui.test.ts index 4615fe428..bd0599a73 100644 --- a/packages/babel-plugin-lingui-macro/test/js-useLingui.test.ts +++ b/packages/babel-plugin-lingui-macro/test/js-useLingui.test.ts @@ -1,3 +1,4 @@ +import { describe } from "vitest" import { makeConfig } from "@lingui/conf" import { macroTester } from "./macroTester" diff --git a/packages/babel-plugin-lingui-macro/test/jsx-select.test.ts b/packages/babel-plugin-lingui-macro/test/jsx-select.test.ts index fc5ab05b6..fb72b7d07 100644 --- a/packages/babel-plugin-lingui-macro/test/jsx-select.test.ts +++ b/packages/babel-plugin-lingui-macro/test/jsx-select.test.ts @@ -1,3 +1,4 @@ +import { describe, expect, it } from "vitest"; import { macroTester } from "./macroTester" macroTester({ diff --git a/packages/babel-plugin-lingui-macro/test/jsx-trans.test.ts b/packages/babel-plugin-lingui-macro/test/jsx-trans.test.ts index a7289481b..0eed1946d 100644 --- a/packages/babel-plugin-lingui-macro/test/jsx-trans.test.ts +++ b/packages/babel-plugin-lingui-macro/test/jsx-trans.test.ts @@ -1,4 +1,6 @@ +import { describe } from "vitest" import { macroTester } from "./macroTester" + describe.skip("", () => {}) macroTester({ diff --git a/packages/cli/src/api/catalog.test.ts b/packages/cli/src/api/catalog.test.ts index fef43270c..3a4b79de5 100644 --- a/packages/cli/src/api/catalog.test.ts +++ b/packages/cli/src/api/catalog.test.ts @@ -1,3 +1,4 @@ +import { afterEach, describe, expect, it } from "vitest"; import fs from "fs" import path from "path" import mockFs from "mock-fs" diff --git a/packages/cli/src/api/catalog/getCatalogDependentFiles.test.ts b/packages/cli/src/api/catalog/getCatalogDependentFiles.test.ts index face14cb0..caf041fc9 100644 --- a/packages/cli/src/api/catalog/getCatalogDependentFiles.test.ts +++ b/packages/cli/src/api/catalog/getCatalogDependentFiles.test.ts @@ -1,3 +1,4 @@ +import { afterEach, describe, expect, it } from "vitest"; import { getCatalogDependentFiles, getFormat } from "@lingui/cli/api" import { makeConfig } from "@lingui/conf" import { Catalog } from "../catalog" diff --git a/packages/cli/src/api/catalog/getCatalogs.test.ts b/packages/cli/src/api/catalog/getCatalogs.test.ts index c03db17fe..fc3f748d5 100644 --- a/packages/cli/src/api/catalog/getCatalogs.test.ts +++ b/packages/cli/src/api/catalog/getCatalogs.test.ts @@ -1,3 +1,4 @@ +import { afterEach, describe, expect, it } from "vitest"; import mockFs from "mock-fs" import { getCatalogForFile, diff --git a/packages/cli/src/api/catalog/getFallbackListForLocale.test.ts b/packages/cli/src/api/catalog/getFallbackListForLocale.test.ts index d9c95605e..b2cbc4e1e 100644 --- a/packages/cli/src/api/catalog/getFallbackListForLocale.test.ts +++ b/packages/cli/src/api/catalog/getFallbackListForLocale.test.ts @@ -1,3 +1,4 @@ +import { describe, expect, it } from "vitest"; import { getFallbackListForLocale } from "./getFallbackListForLocale" describe("getFallbackListForLocale", () => { diff --git a/packages/cli/src/api/catalog/getTranslationsForCatalog.test.ts b/packages/cli/src/api/catalog/getTranslationsForCatalog.test.ts index 5dac3ac18..3e10bacc4 100644 --- a/packages/cli/src/api/catalog/getTranslationsForCatalog.test.ts +++ b/packages/cli/src/api/catalog/getTranslationsForCatalog.test.ts @@ -1,3 +1,4 @@ +import { describe, expect, it, vi } from "vitest"; import { getTranslationsForCatalog } from "./getTranslationsForCatalog" import { Catalog } from "../catalog" import type { AllCatalogsType, CatalogType } from "../types" @@ -51,7 +52,7 @@ describe("getTranslationsForCatalog", () => { ]) }) - const missingSpy = jest.fn() + const missingSpy = vi.fn() const actual = await getTranslationsForCatalog(catalogStub, "pl", { sourceLocale: "en", fallbackLocales: {}, @@ -77,7 +78,7 @@ describe("getTranslationsForCatalog", () => { ]) }) - const missingSpy = jest.fn() + const missingSpy = vi.fn() const actual = await getTranslationsForCatalog(catalogStub, "ru", { sourceLocale: "en", fallbackLocales: { @@ -107,7 +108,7 @@ describe("getTranslationsForCatalog", () => { ]) }) - const missingSpy = jest.fn() + const missingSpy = vi.fn() const actual = await getTranslationsForCatalog(catalogStub, "ru", { sourceLocale: "en", fallbackLocales: { @@ -153,7 +154,7 @@ describe("getTranslationsForCatalog", () => { ]) }) - const missingSpy = jest.fn() + const missingSpy = vi.fn() const actual = await getTranslationsForCatalog(catalogStub, "ru", { sourceLocale: "en", fallbackLocales: { @@ -188,7 +189,7 @@ describe("getTranslationsForCatalog", () => { ]) }) - const missingSpy = jest.fn() + const missingSpy = vi.fn() const actual = await getTranslationsForCatalog(catalogStub, "en", { sourceLocale: "en", fallbackLocales: {}, @@ -215,7 +216,7 @@ describe("getTranslationsForCatalog", () => { ]) }) - const missingSpy = jest.fn() + const missingSpy = vi.fn() const actual = await getTranslationsForCatalog(catalogStub, "pl", { sourceLocale: "en", fallbackLocales: {}, @@ -246,7 +247,7 @@ describe("getTranslationsForCatalog", () => { ]) }) - const missingSpy = jest.fn() + const missingSpy = vi.fn() const actual = await getTranslationsForCatalog(catalogStub, "pl", { sourceLocale: "en", fallbackLocales: {}, @@ -277,7 +278,7 @@ describe("getTranslationsForCatalog", () => { ]) }) - const missingSpy = jest.fn() + const missingSpy = vi.fn() const actual = await getTranslationsForCatalog(catalogStub, "pl", { sourceLocale: null, fallbackLocales: {}, @@ -305,7 +306,7 @@ describe("getTranslationsForCatalog", () => { message("hashid4", "Sit", true) ]).tpl) - const missingSpy = jest.fn() + const missingSpy = vi.fn() const actual = await getTranslationsForCatalog(catalogStub, "pl", { sourceLocale: "en", fallbackLocales: {}, @@ -327,7 +328,7 @@ describe("getTranslationsForCatalog", () => { message("hashid1", "Lorem", true), ]).tpl) - const missingSpy = jest.fn() + const missingSpy = vi.fn() const actual = await getTranslationsForCatalog(catalogStub, "pl", { sourceLocale: "en", fallbackLocales: {}, diff --git a/packages/cli/src/api/catalog/mergeCatalog.test.ts b/packages/cli/src/api/catalog/mergeCatalog.test.ts index 4915e1aaf..35bb51d3f 100644 --- a/packages/cli/src/api/catalog/mergeCatalog.test.ts +++ b/packages/cli/src/api/catalog/mergeCatalog.test.ts @@ -1,3 +1,4 @@ +import { describe, expect, it } from "vitest"; import { defaultMergeOptions, makeNextMessage, diff --git a/packages/cli/src/api/compile.test.ts b/packages/cli/src/api/compile.test.ts index 205409a1d..ebf6671c6 100644 --- a/packages/cli/src/api/compile.test.ts +++ b/packages/cli/src/api/compile.test.ts @@ -1,3 +1,4 @@ +import { describe, expect, it } from "vitest"; import { compile, CompiledCatalogNamespace, diff --git a/packages/cli/src/api/formats/formatterWrapper.test.ts b/packages/cli/src/api/formats/formatterWrapper.test.ts index 8f65da76c..ac80278ac 100644 --- a/packages/cli/src/api/formats/formatterWrapper.test.ts +++ b/packages/cli/src/api/formats/formatterWrapper.test.ts @@ -1,3 +1,4 @@ +import { describe, expect, it } from "vitest"; import { FormatterWrapper } from "./formatterWrapper" import mockFs from "mock-fs" import fs from "fs" diff --git a/packages/cli/src/api/pseudoLocalize.test.ts b/packages/cli/src/api/pseudoLocalize.test.ts index 1b9c7d207..7e4389384 100644 --- a/packages/cli/src/api/pseudoLocalize.test.ts +++ b/packages/cli/src/api/pseudoLocalize.test.ts @@ -1,3 +1,4 @@ +import { describe, expect, it } from "vitest"; import pseudoLocalize from "./pseudoLocalize" describe("PseudoLocalization", () => { diff --git a/packages/cli/src/api/stats.test.ts b/packages/cli/src/api/stats.test.ts index 08298a470..6fa563e7e 100644 --- a/packages/cli/src/api/stats.test.ts +++ b/packages/cli/src/api/stats.test.ts @@ -1,3 +1,4 @@ +import { describe, expect, it } from "vitest"; import { printStats } from "./stats" import { defaultMergeOptions, makeCatalog, makeNextMessage } from "../tests" import { makeConfig } from "@lingui/conf" diff --git a/packages/cli/src/api/utils.test.ts b/packages/cli/src/api/utils.test.ts index 7620599f0..62a8483af 100644 --- a/packages/cli/src/api/utils.test.ts +++ b/packages/cli/src/api/utils.test.ts @@ -1,3 +1,4 @@ +import { afterEach, describe, expect, it } from "vitest"; import { makePathRegexSafe, normalizeRelativePath, diff --git a/packages/cli/src/extract-experimental/resolveTemplatePath.test.ts b/packages/cli/src/extract-experimental/resolveTemplatePath.test.ts index da796db80..a225c807a 100644 --- a/packages/cli/src/extract-experimental/resolveTemplatePath.test.ts +++ b/packages/cli/src/extract-experimental/resolveTemplatePath.test.ts @@ -1,3 +1,4 @@ +import { describe, expect } from "vitest" import { resolveTemplatePath } from "./resolveTemplatePath" import normalizePath from "normalize-path" diff --git a/packages/cli/src/test/compile.test.ts b/packages/cli/src/test/compile.test.ts index 4406301bc..057e6ddaf 100644 --- a/packages/cli/src/test/compile.test.ts +++ b/packages/cli/src/test/compile.test.ts @@ -1,3 +1,4 @@ +import { describe, expect, it } from "vitest"; import { command } from "../lingui-compile" import { makeConfig } from "@lingui/conf" import { getConsoleMockCalls, mockConsole } from "@lingui/jest-mocks" diff --git a/packages/cli/test/index.test.ts b/packages/cli/test/index.test.ts index 87393180c..314c34ba3 100644 --- a/packages/cli/test/index.test.ts +++ b/packages/cli/test/index.test.ts @@ -1,3 +1,4 @@ +import { describe, expect, it, beforeAll, afterAll } from "vitest" import extractTemplateCommand from "../src/lingui-extract-template" import extractCommand from "../src/lingui-extract" import extractExperimentalCommand from "../src/lingui-extract-experimental" diff --git a/packages/conf/src/index.test.ts b/packages/conf/src/index.test.ts index d08b55a26..cad9752a6 100644 --- a/packages/conf/src/index.test.ts +++ b/packages/conf/src/index.test.ts @@ -1,3 +1,4 @@ +import { describe, expect, it } from "vitest"; import path from "path" import { getConfig } from "./getConfig" import { makeConfig } from "./makeConfig" diff --git a/packages/conf/src/migrations/normalizeRuntimeConfigModule.test.ts b/packages/conf/src/migrations/normalizeRuntimeConfigModule.test.ts index 6daff5130..89e05bf7f 100644 --- a/packages/conf/src/migrations/normalizeRuntimeConfigModule.test.ts +++ b/packages/conf/src/migrations/normalizeRuntimeConfigModule.test.ts @@ -1,3 +1,4 @@ +import { describe, expect, it } from "vitest"; import { normalizeRuntimeConfigModule } from "./normalizeRuntimeConfigModule" describe("normalizeRuntimeConfigModule", () => { diff --git a/packages/conf/src/utils/replaceRootDir.test.ts b/packages/conf/src/utils/replaceRootDir.test.ts index da780fccd..2c3441e6d 100644 --- a/packages/conf/src/utils/replaceRootDir.test.ts +++ b/packages/conf/src/utils/replaceRootDir.test.ts @@ -1,3 +1,4 @@ +import { expect, it } from "vitest" import { replaceRootDir } from "./replaceRootDir" it("should replace ", () => { diff --git a/packages/core/macro/index.test.ts b/packages/core/macro/index.test.ts index d0f728d4f..e92ccc675 100644 --- a/packages/core/macro/index.test.ts +++ b/packages/core/macro/index.test.ts @@ -1,3 +1,4 @@ +import { describe, expect, it } from "vitest"; import macro from "@lingui/core/macro" describe("react-macro", () => { diff --git a/packages/core/src/essentials.test.ts b/packages/core/src/essentials.test.ts index 94e55250d..3fed6b6b0 100644 --- a/packages/core/src/essentials.test.ts +++ b/packages/core/src/essentials.test.ts @@ -1,3 +1,4 @@ +import { describe, expect, it } from "vitest"; import { isString, isFunction } from "./essentials" describe("isString", function () { diff --git a/packages/core/src/eventEmitter.test.ts b/packages/core/src/eventEmitter.test.ts index 0c7821ca8..67566c92c 100644 --- a/packages/core/src/eventEmitter.test.ts +++ b/packages/core/src/eventEmitter.test.ts @@ -1,9 +1,10 @@ +import { describe, expect, it, vi } from "vitest"; import { EventEmitter } from "./eventEmitter" describe("@lingui/core/eventEmitter", () => { it("should call registered event listeners on emit", async () => { - const firstListener = jest.fn() - const secondListener = jest.fn(() => "return value is ignored") + const firstListener = vi.fn() + const secondListener = vi.fn(() => "return value is ignored") const emitter = new EventEmitter() emitter.on("test", firstListener) @@ -16,7 +17,7 @@ describe("@lingui/core/eventEmitter", () => { }) it("should allow unsubscribing from events", () => { - const listener = jest.fn() + const listener = vi.fn() const emitter = new EventEmitter() const unsubscribe = emitter.on("test", listener) @@ -30,7 +31,7 @@ describe("@lingui/core/eventEmitter", () => { }) it("should do nothing when even doesn't exist", () => { - const unknown = jest.fn() + const unknown = vi.fn() const emitter = new EventEmitter() // this should not throw @@ -38,7 +39,7 @@ describe("@lingui/core/eventEmitter", () => { // this should not throw emitter.removeListener("test", unknown) - emitter.on("test", jest.fn()) + emitter.on("test", vi.fn()) // this should not throw emitter.removeListener("test", unknown) }) diff --git a/packages/core/src/formats.test.ts b/packages/core/src/formats.test.ts index 9a216de7c..a8b3c889d 100644 --- a/packages/core/src/formats.test.ts +++ b/packages/core/src/formats.test.ts @@ -1,3 +1,4 @@ +import { describe, expect, it } from "vitest"; import { date, number } from "./formats" describe("@lingui/core/formats", () => { diff --git a/packages/core/src/i18n.test.ts b/packages/core/src/i18n.test.ts index 4418e102b..90f64370f 100644 --- a/packages/core/src/i18n.test.ts +++ b/packages/core/src/i18n.test.ts @@ -1,3 +1,4 @@ +import { describe, expect, it, vi } from "vitest"; import { setupI18n } from "./i18n" import { mockConsole, mockEnv } from "@lingui/jest-mocks" @@ -6,7 +7,7 @@ describe("I18n", () => { it("should emit event", () => { const i18n = setupI18n() - const cbChange = jest.fn() + const cbChange = vi.fn() i18n.on("change", cbChange) i18n.load("en", { msg: "Message" }) expect(cbChange).toBeCalled() @@ -65,7 +66,7 @@ describe("I18n", () => { }, }) - const cbChange = jest.fn() + const cbChange = vi.fn() i18n.on("change", cbChange) i18n.activate("en") expect(cbChange).toBeCalled() @@ -121,7 +122,7 @@ describe("I18n", () => { }) mockEnv("production", () => { - jest.resetModules() + vi.resetModules() mockConsole((console) => { const { setupI18n } = require("@lingui/core") const i18n = setupI18n() @@ -136,7 +137,7 @@ describe("I18n", () => { it("should set locale and messages", () => { const i18n = setupI18n() - const cbChange = jest.fn() + const cbChange = vi.fn() i18n.on("change", cbChange) i18n.loadAndActivate({ @@ -304,7 +305,7 @@ describe("I18n", () => { messages: { en: { exists: "exists" } }, }) - const handler = jest.fn() + const handler = vi.fn() i18n.on("missing", handler) i18n._("exists") expect(handler).toHaveBeenCalledTimes(0) @@ -324,7 +325,7 @@ describe("I18n", () => { messages: { en: {} }, }) - const handler = jest.fn() + const handler = vi.fn() i18n.on("missing", handler) // @ts-expect-error 'id' should be of 'MessageDescriptor' or 'string' type. i18n._() @@ -347,7 +348,7 @@ describe("I18n", () => { }) it("._ should call a function with message ID of missing translation", () => { - const missing = jest.fn((locale, id) => id.split("").reverse().join("")) + const missing = vi.fn((locale, id) => id.split("").reverse().join("")) const i18n = setupI18n({ locale: "en", messages: { diff --git a/packages/core/src/interpolate.test.ts b/packages/core/src/interpolate.test.ts index 9effce523..1c7082084 100644 --- a/packages/core/src/interpolate.test.ts +++ b/packages/core/src/interpolate.test.ts @@ -1,3 +1,4 @@ +import { describe, expect, it } from "vitest"; import { compileMessage as compile } from "@lingui/message-utils/compileMessage" import { interpolate } from "./interpolate" import { Locale, Locales } from "./i18n" diff --git a/packages/detect-locale/src/detectors/fromCookie.test.ts b/packages/detect-locale/src/detectors/fromCookie.test.ts index 641ce9a57..28fd0cc88 100644 --- a/packages/detect-locale/src/detectors/fromCookie.test.ts +++ b/packages/detect-locale/src/detectors/fromCookie.test.ts @@ -1,3 +1,4 @@ +import { describe, expect, it } from "vitest"; import { fromCookie } from ".." describe("fromCookie detector", () => { diff --git a/packages/detect-locale/src/detectors/fromHtmlTag.test.ts b/packages/detect-locale/src/detectors/fromHtmlTag.test.ts index ebbe93478..9afd8811e 100644 --- a/packages/detect-locale/src/detectors/fromHtmlTag.test.ts +++ b/packages/detect-locale/src/detectors/fromHtmlTag.test.ts @@ -1,3 +1,4 @@ +import { describe, expect, it } from "vitest"; import { fromHtmlTag } from ".." import { JSDOM } from "jsdom" diff --git a/packages/detect-locale/src/detectors/fromNavigator.test.ts b/packages/detect-locale/src/detectors/fromNavigator.test.ts index 58921bf82..8ee549cc5 100644 --- a/packages/detect-locale/src/detectors/fromNavigator.test.ts +++ b/packages/detect-locale/src/detectors/fromNavigator.test.ts @@ -1,3 +1,4 @@ +import { describe, expect, it } from "vitest"; import { fromNavigator } from ".." describe("fromNavigator", () => { diff --git a/packages/detect-locale/src/detectors/fromPath.test.ts b/packages/detect-locale/src/detectors/fromPath.test.ts index 4b37b0844..b222c99cd 100644 --- a/packages/detect-locale/src/detectors/fromPath.test.ts +++ b/packages/detect-locale/src/detectors/fromPath.test.ts @@ -1,3 +1,4 @@ +import { describe, expect, it } from "vitest"; import { fromPath } from "../" describe("fromPath detector", () => { diff --git a/packages/detect-locale/src/detectors/fromStorage.test.ts b/packages/detect-locale/src/detectors/fromStorage.test.ts index efc27d534..c42ff21f8 100644 --- a/packages/detect-locale/src/detectors/fromStorage.test.ts +++ b/packages/detect-locale/src/detectors/fromStorage.test.ts @@ -1,3 +1,4 @@ +import { describe, expect, it } from "vitest"; import { fromStorage } from ".." describe("fromStorage detector", () => { diff --git a/packages/detect-locale/src/detectors/fromSubdomain.test.ts b/packages/detect-locale/src/detectors/fromSubdomain.test.ts index 33cd73d5f..647037688 100644 --- a/packages/detect-locale/src/detectors/fromSubdomain.test.ts +++ b/packages/detect-locale/src/detectors/fromSubdomain.test.ts @@ -1,3 +1,4 @@ +import { describe, expect, it } from "vitest"; import { fromSubdomain } from "../" describe("fromSubdomain detector", () => { diff --git a/packages/detect-locale/src/detectors/fromUrl.test.ts b/packages/detect-locale/src/detectors/fromUrl.test.ts index 17e2622e7..75d2aa6fd 100644 --- a/packages/detect-locale/src/detectors/fromUrl.test.ts +++ b/packages/detect-locale/src/detectors/fromUrl.test.ts @@ -1,3 +1,4 @@ +import { describe, expect, it } from "vitest"; import { fromUrl } from ".." describe("fromUrl", () => { diff --git a/packages/detect-locale/src/index.test.ts b/packages/detect-locale/src/index.test.ts index cd8d7fb58..c658d0dda 100644 --- a/packages/detect-locale/src/index.test.ts +++ b/packages/detect-locale/src/index.test.ts @@ -1,3 +1,4 @@ +import { describe, expect, it } from "vitest"; import { fromUrl, detect, fromNavigator, multipleDetect } from "./index" describe("detect", () => { diff --git a/packages/detect-locale/src/utils/cookie-getter.test.ts b/packages/detect-locale/src/utils/cookie-getter.test.ts index 0bb388515..c9c16f6c3 100644 --- a/packages/detect-locale/src/utils/cookie-getter.test.ts +++ b/packages/detect-locale/src/utils/cookie-getter.test.ts @@ -1,3 +1,4 @@ +import { describe, expect, it } from "vitest"; import { getCookie } from "./cookie-getter" describe("getCookie", () => { diff --git a/packages/detect-locale/src/utils/query-string.test.ts b/packages/detect-locale/src/utils/query-string.test.ts index 4c8f6d25c..e8bc8fe4e 100644 --- a/packages/detect-locale/src/utils/query-string.test.ts +++ b/packages/detect-locale/src/utils/query-string.test.ts @@ -1,3 +1,4 @@ +import { describe, expect, it } from "vitest"; import { parse } from "./query-string" describe("query-string", function () { diff --git a/packages/extractor-vue/src/extractor.test.ts b/packages/extractor-vue/src/extractor.test.ts index 4a0a37323..c4be74a4f 100644 --- a/packages/extractor-vue/src/extractor.test.ts +++ b/packages/extractor-vue/src/extractor.test.ts @@ -1,3 +1,4 @@ +import { describe, expect, it } from "vitest"; import { makeConfig } from "@lingui/conf" import fs from "fs" import path from "path" diff --git a/packages/format-csv/src/csv.test.ts b/packages/format-csv/src/csv.test.ts index 646a19b07..03d9f97b7 100644 --- a/packages/format-csv/src/csv.test.ts +++ b/packages/format-csv/src/csv.test.ts @@ -1,3 +1,4 @@ +import { describe, expect, it } from "vitest"; import fs from "fs" import path from "path" diff --git a/packages/format-json/src/json.test.ts b/packages/format-json/src/json.test.ts index 07180e6c8..3280d0b7b 100644 --- a/packages/format-json/src/json.test.ts +++ b/packages/format-json/src/json.test.ts @@ -1,3 +1,4 @@ +import { describe, expect, it } from "vitest"; import fs from "fs" import path from "path" diff --git a/packages/format-po-gettext/src/po-gettext.test.ts b/packages/format-po-gettext/src/po-gettext.test.ts index 40233886e..7cc49545d 100644 --- a/packages/format-po-gettext/src/po-gettext.test.ts +++ b/packages/format-po-gettext/src/po-gettext.test.ts @@ -1,3 +1,4 @@ +import { describe, expect, it } from "vitest"; import { mockConsole } from "@lingui/jest-mocks" import fs from "fs" import path from "path" diff --git a/packages/format-po/src/po.test.ts b/packages/format-po/src/po.test.ts index f91872119..bf04ab47b 100644 --- a/packages/format-po/src/po.test.ts +++ b/packages/format-po/src/po.test.ts @@ -1,3 +1,4 @@ +import { describe, expect, it } from "vitest"; import fs from "fs" import path from "path" diff --git a/packages/format-po/src/utils.test.ts b/packages/format-po/src/utils.test.ts index 58f0ae65e..33fe6a18e 100644 --- a/packages/format-po/src/utils.test.ts +++ b/packages/format-po/src/utils.test.ts @@ -1,3 +1,4 @@ +import { describe, expect, it } from "vitest"; import { normalizePlaceholderValue } from "./utils" describe("normalizePlaceholderValue", () => { diff --git a/packages/jest-mocks/index.test.ts b/packages/jest-mocks/index.test.ts index 59fa04d4c..1311baadc 100644 --- a/packages/jest-mocks/index.test.ts +++ b/packages/jest-mocks/index.test.ts @@ -1,3 +1,4 @@ +import { describe, expect, it } from "vitest"; import { mockEnv, mockConsole } from "./index" describe("mocks - testing utilities", function () { diff --git a/packages/loader/test/loader.test.ts b/packages/loader/test/loader.test.ts index 3843321f3..54b4953da 100644 --- a/packages/loader/test/loader.test.ts +++ b/packages/loader/test/loader.test.ts @@ -1,3 +1,4 @@ +import { describe, expect, it, vi } from "vitest"; import path from "path" import fs from "node:fs/promises" import { build, watch } from "./compiler" @@ -86,7 +87,7 @@ msgstr "" ) const stats2 = await watching.build() - jest.resetModules() + vi.resetModules() expect((await stats2.loadBundle().then((m) => m.load())).messages) .toMatchInlineSnapshot(` diff --git a/packages/message-utils/src/compileMessage.test.ts b/packages/message-utils/src/compileMessage.test.ts index 3a1e59404..a89dfe46c 100644 --- a/packages/message-utils/src/compileMessage.test.ts +++ b/packages/message-utils/src/compileMessage.test.ts @@ -1,3 +1,4 @@ +import { describe, expect, it } from "vitest"; import { mockConsole } from "@lingui/jest-mocks" import { compileMessage } from "./compileMessage" diff --git a/packages/message-utils/src/generateMessageId.test.ts b/packages/message-utils/src/generateMessageId.test.ts index fd0efd2d3..af161ea1b 100644 --- a/packages/message-utils/src/generateMessageId.test.ts +++ b/packages/message-utils/src/generateMessageId.test.ts @@ -1,3 +1,4 @@ +import { describe, expect, it } from "vitest"; import { generateMessageId } from "./generateMessageId" describe("generateMessageId", () => { diff --git a/packages/react/macro/index.test.ts b/packages/react/macro/index.test.ts index 0e53cc1a0..6fb406d86 100644 --- a/packages/react/macro/index.test.ts +++ b/packages/react/macro/index.test.ts @@ -1,3 +1,4 @@ +import { describe, expect, it } from "vitest"; import macro from "@lingui/react/macro" describe("react-macro", () => { diff --git a/packages/react/src/I18nProvider.test.tsx b/packages/react/src/I18nProvider.test.tsx index 3f7e73f91..fbf4f6ede 100644 --- a/packages/react/src/I18nProvider.test.tsx +++ b/packages/react/src/I18nProvider.test.tsx @@ -1,3 +1,4 @@ +import { describe, expect, it, vi } from "vitest"; import * as React from "react" import { act, render } from "@testing-library/react" @@ -64,7 +65,7 @@ describe("I18nProvider", () => { cs: {}, }, }) - i18n.on = jest.fn(() => jest.fn()) + i18n.on = vi.fn(() => vi.fn()) expect(i18n.on).not.toBeCalled() render( @@ -76,14 +77,14 @@ describe("I18nProvider", () => { }) it("should unsubscribe for locale changes on unmount", () => { - const unsubscribe = jest.fn() + const unsubscribe = vi.fn() const i18n = setupI18n({ locale: "cs", messages: { cs: {}, }, }) - i18n.on = jest.fn(() => unsubscribe) + i18n.on = vi.fn(() => unsubscribe) const { unmount } = render( @@ -154,14 +155,14 @@ describe("I18nProvider", () => { * to i18n.on("change", ...) and in it we call i18n.activate("cs") ourselves * so that the condition in useEffect() is met and the component re-renders * */ - const mockSubscriber = jest.fn(() => { + const mockSubscriber = vi.fn(() => { i18n.load("cs", {}) i18n.activate("cs") return () => { // unsubscriber - noop to make TS happy } }) - jest.spyOn(i18n, "on").mockImplementation(mockSubscriber) + vi.spyOn(i18n, "on").mockImplementation(mockSubscriber) const { getByTestId } = render( diff --git a/packages/react/src/Trans.test.tsx b/packages/react/src/Trans.test.tsx index 0a32d5309..e53d0889d 100644 --- a/packages/react/src/Trans.test.tsx +++ b/packages/react/src/Trans.test.tsx @@ -1,3 +1,4 @@ +import { describe, expect, it, vi } from "vitest"; import * as React from "react" import { render } from "@testing-library/react" import { @@ -105,7 +106,7 @@ describe("Trans component", () => { it("when there's no i18n context available", () => { const originalConsole = console.error - console.error = jest.fn() + console.error = vi.fn() expect(() => render()) .toThrowErrorMatchingInlineSnapshot(` @@ -124,7 +125,7 @@ describe("Trans component", () => { it("when deprecated string built-ins are used", () => { const originalConsole = console.error - console.error = jest.fn() + console.error = vi.fn() // @ts-expect-error testing the error renderWithI18n() @@ -366,7 +367,7 @@ describe("Trans component", () => { }) it("supports render callback function", () => { - const spy = jest.fn() + const spy = vi.fn() text( { }) it("should render function component as simple prop", () => { - const propsSpy = jest.fn() + const propsSpy = vi.fn() const ComponentFC: React.FunctionComponent = ( props ) => { diff --git a/packages/react/src/format.test.tsx b/packages/react/src/format.test.tsx index 2eb30dfe3..25cf50d5e 100644 --- a/packages/react/src/format.test.tsx +++ b/packages/react/src/format.test.tsx @@ -1,3 +1,4 @@ +import { describe, expect, it } from "vitest"; import { render } from "@testing-library/react" import * as React from "react" import { formatElements } from "./format" diff --git a/packages/remote-loader/test/index.test.ts b/packages/remote-loader/test/index.test.ts index 71ec60e3b..b80faeb9c 100644 --- a/packages/remote-loader/test/index.test.ts +++ b/packages/remote-loader/test/index.test.ts @@ -1,3 +1,4 @@ +import { describe, expect, it } from "vitest"; import { remoteLoader } from "../src" import fs from "fs" diff --git a/vitest.config.ts b/vitest.config.ts new file mode 100644 index 000000000..b63ee116a --- /dev/null +++ b/vitest.config.ts @@ -0,0 +1,8 @@ +// eslint-disable-next-line import/no-unresolved +import { defineConfig } from 'vitest/config'; +export default defineConfig({ + test: { + environment: 'jsdom', + setupFiles: 'vitest.setup.ts', + }, +}); diff --git a/vitest.setup.ts b/vitest.setup.ts new file mode 100644 index 000000000..edfb9b4a3 --- /dev/null +++ b/vitest.setup.ts @@ -0,0 +1,7 @@ +import { expect, afterEach } from 'vitest'; +import { cleanup } from '@testing-library/react'; +import matchers from '@testing-library/jest-dom/matchers'; +expect.extend(matchers); +afterEach(() => { + cleanup(); +}); diff --git a/yarn.lock b/yarn.lock index f1708300d..90772cb78 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5,7 +5,7 @@ __metadata: version: 6 cacheKey: 8 -"@ampproject/remapping@npm:^2.1.0, @ampproject/remapping@npm:^2.2.0": +"@ampproject/remapping@npm:^2.2.0": version: 2.2.0 resolution: "@ampproject/remapping@npm:2.2.0" dependencies: @@ -24,45 +24,7 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.15.8, @babel/code-frame@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/code-frame@npm:7.18.6" - dependencies: - "@babel/highlight": ^7.18.6 - checksum: 195e2be3172d7684bf95cff69ae3b7a15a9841ea9d27d3c843662d50cdd7d6470fd9c8e64be84d031117e4a4083486effba39f9aef6bbb2c89f7f21bcfba33ba - languageName: node - linkType: hard - -"@babel/code-frame@npm:^7.22.10": - version: 7.22.10 - resolution: "@babel/code-frame@npm:7.22.10" - dependencies: - "@babel/highlight": ^7.22.10 - chalk: ^2.4.2 - checksum: 89a06534ad19759da6203a71bad120b1d7b2ddc016c8e07d4c56b35dea25e7396c6da60a754e8532a86733092b131ae7f661dbe6ba5d165ea777555daa2ed3c9 - languageName: node - linkType: hard - -"@babel/code-frame@npm:^7.22.13": - version: 7.23.5 - resolution: "@babel/code-frame@npm:7.23.5" - dependencies: - "@babel/highlight": ^7.23.4 - chalk: ^2.4.2 - checksum: d90981fdf56a2824a9b14d19a4c0e8db93633fd488c772624b4e83e0ceac6039a27cd298a247c3214faa952bf803ba23696172ae7e7235f3b97f43ba278c569a - languageName: node - linkType: hard - -"@babel/code-frame@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/code-frame@npm:7.22.5" - dependencies: - "@babel/highlight": ^7.22.5 - checksum: cfe804f518f53faaf9a1d3e0f9f74127ab9a004912c3a16fda07fb6a633393ecb9918a053cb71804204c1b7ec3d49e1699604715e2cfb0c9f7bc4933d324ebb6 - languageName: node - linkType: hard - -"@babel/code-frame@npm:^7.24.7": +"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.15.8, @babel/code-frame@npm:^7.18.6, @babel/code-frame@npm:^7.22.13, @babel/code-frame@npm:^7.24.7": version: 7.24.7 resolution: "@babel/code-frame@npm:7.24.7" dependencies: @@ -72,104 +34,14 @@ __metadata: languageName: node linkType: hard -"@babel/compat-data@npm:^7.17.7, @babel/compat-data@npm:^7.20.1, @babel/compat-data@npm:^7.20.5": - version: 7.20.10 - resolution: "@babel/compat-data@npm:7.20.10" - checksum: 6ed6c1bb6fc03c225d63b8611788cd976107d1692402b560ebffbf1fa53e63705f8625bb12e12d17ce7f7af34e61e1ca96c77858aac6f57010045271466200c0 - languageName: node - linkType: hard - -"@babel/compat-data@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/compat-data@npm:7.22.5" - checksum: eb1a47ebf79ae268b4a16903e977be52629339806e248455eb9973897c503a04b701f36a9de64e19750d6e081d0561e77a514c8dc470babbeba59ae94298ed18 - languageName: node - linkType: hard - -"@babel/compat-data@npm:^7.22.9": - version: 7.22.9 - resolution: "@babel/compat-data@npm:7.22.9" - checksum: bed77d9044ce948b4327b30dd0de0779fa9f3a7ed1f2d31638714ed00229fa71fc4d1617ae0eb1fad419338d3658d0e9a5a083297451e09e73e078d0347ff808 - languageName: node - linkType: hard - -"@babel/compat-data@npm:^7.24.7": +"@babel/compat-data@npm:^7.17.7, @babel/compat-data@npm:^7.20.1, @babel/compat-data@npm:^7.20.5, @babel/compat-data@npm:^7.24.7": version: 7.24.7 resolution: "@babel/compat-data@npm:7.24.7" checksum: 1fc276825dd434fe044877367dfac84171328e75a8483a6976aa28bf833b32367e90ee6df25bdd97c287d1aa8019757adcccac9153de70b1932c0d243a978ae9 languageName: node linkType: hard -"@babel/core@npm:^7.11.6, @babel/core@npm:^7.21.0": - version: 7.21.0 - resolution: "@babel/core@npm:7.21.0" - dependencies: - "@ampproject/remapping": ^2.2.0 - "@babel/code-frame": ^7.18.6 - "@babel/generator": ^7.21.0 - "@babel/helper-compilation-targets": ^7.20.7 - "@babel/helper-module-transforms": ^7.21.0 - "@babel/helpers": ^7.21.0 - "@babel/parser": ^7.21.0 - "@babel/template": ^7.20.7 - "@babel/traverse": ^7.21.0 - "@babel/types": ^7.21.0 - convert-source-map: ^1.7.0 - debug: ^4.1.0 - gensync: ^1.0.0-beta.2 - json5: ^2.2.2 - semver: ^6.3.0 - checksum: 357f4dd3638861ceebf6d95ff49ad8b902065ee8b7b352621deed5666c2a6d702a48ca7254dba23ecae2a0afb67d20f90db7dd645c3b75e35e72ad9776c671aa - languageName: node - linkType: hard - -"@babel/core@npm:^7.12.3": - version: 7.20.12 - resolution: "@babel/core@npm:7.20.12" - dependencies: - "@ampproject/remapping": ^2.1.0 - "@babel/code-frame": ^7.18.6 - "@babel/generator": ^7.20.7 - "@babel/helper-compilation-targets": ^7.20.7 - "@babel/helper-module-transforms": ^7.20.11 - "@babel/helpers": ^7.20.7 - "@babel/parser": ^7.20.7 - "@babel/template": ^7.20.7 - "@babel/traverse": ^7.20.12 - "@babel/types": ^7.20.7 - convert-source-map: ^1.7.0 - debug: ^4.1.0 - gensync: ^1.0.0-beta.2 - json5: ^2.2.2 - semver: ^6.3.0 - checksum: 62e6c3e2149a70b5c9729ef5f0d3e2e97e9dcde89fc039c8d8e3463d5d7ba9b29ee84d10faf79b61532ac1645aa62f2bd42338320617e6e3a8a4d8e2a27076e7 - languageName: node - linkType: hard - -"@babel/core@npm:^7.17.7": - version: 7.22.5 - resolution: "@babel/core@npm:7.22.5" - dependencies: - "@ampproject/remapping": ^2.2.0 - "@babel/code-frame": ^7.22.5 - "@babel/generator": ^7.22.5 - "@babel/helper-compilation-targets": ^7.22.5 - "@babel/helper-module-transforms": ^7.22.5 - "@babel/helpers": ^7.22.5 - "@babel/parser": ^7.22.5 - "@babel/template": ^7.22.5 - "@babel/traverse": ^7.22.5 - "@babel/types": ^7.22.5 - convert-source-map: ^1.7.0 - debug: ^4.1.0 - gensync: ^1.0.0-beta.2 - json5: ^2.2.2 - semver: ^6.3.0 - checksum: 173ae426958c90c7bbd7de622c6f13fcab8aef0fac3f138e2d47bc466d1cd1f86f71ca82ae0acb9032fd8794abed8efb56fea55c031396337eaec0d673b69d56 - languageName: node - linkType: hard - -"@babel/core@npm:^7.20.12": +"@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.17.7, @babel/core@npm:^7.20.12, @babel/core@npm:^7.21.0, @babel/core@npm:^7.22.9": version: 7.24.7 resolution: "@babel/core@npm:7.24.7" dependencies: @@ -192,77 +64,7 @@ __metadata: languageName: node linkType: hard -"@babel/core@npm:^7.22.9": - version: 7.22.10 - resolution: "@babel/core@npm:7.22.10" - dependencies: - "@ampproject/remapping": ^2.2.0 - "@babel/code-frame": ^7.22.10 - "@babel/generator": ^7.22.10 - "@babel/helper-compilation-targets": ^7.22.10 - "@babel/helper-module-transforms": ^7.22.9 - "@babel/helpers": ^7.22.10 - "@babel/parser": ^7.22.10 - "@babel/template": ^7.22.5 - "@babel/traverse": ^7.22.10 - "@babel/types": ^7.22.10 - convert-source-map: ^1.7.0 - debug: ^4.1.0 - gensync: ^1.0.0-beta.2 - json5: ^2.2.2 - semver: ^6.3.1 - checksum: cc4efa09209fe1f733cf512e9e4bb50870b191ab2dee8014e34cd6e731f204e48476cc53b4bbd0825d4d342304d577ae43ff5fd8ab3896080673c343321acb32 - languageName: node - linkType: hard - -"@babel/generator@npm:^7.20.7": - version: 7.20.7 - resolution: "@babel/generator@npm:7.20.7" - dependencies: - "@babel/types": ^7.20.7 - "@jridgewell/gen-mapping": ^0.3.2 - jsesc: ^2.5.1 - checksum: 84b6983ffdb50c80c1c2e3f3c32617a7133d8effd1065f3e0f9bba188a7d54ab42a4dd5e42b61b843c65f9dd1aa870036ff0f848ebd42707aaa8a2b6d31d04f5 - languageName: node - linkType: hard - -"@babel/generator@npm:^7.21.0, @babel/generator@npm:^7.21.1, @babel/generator@npm:^7.7.2": - version: 7.21.1 - resolution: "@babel/generator@npm:7.21.1" - dependencies: - "@babel/types": ^7.21.0 - "@jridgewell/gen-mapping": ^0.3.2 - "@jridgewell/trace-mapping": ^0.3.17 - jsesc: ^2.5.1 - checksum: 69085a211ff91a7a608ee3f86e6fcb9cf5e724b756d792a713b0c328a671cd3e423e1ef1b12533f366baba0616caffe0a7ba9d328727eab484de5961badbef00 - languageName: node - linkType: hard - -"@babel/generator@npm:^7.22.10": - version: 7.22.10 - resolution: "@babel/generator@npm:7.22.10" - dependencies: - "@babel/types": ^7.22.10 - "@jridgewell/gen-mapping": ^0.3.2 - "@jridgewell/trace-mapping": ^0.3.17 - jsesc: ^2.5.1 - checksum: 59a79730abdff9070692834bd3af179e7a9413fa2ff7f83dff3eb888765aeaeb2bfc7b0238a49613ed56e1af05956eff303cc139f2407eda8df974813e486074 - languageName: node - linkType: hard - -"@babel/generator@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/generator@npm:7.22.5" - dependencies: - "@babel/types": ^7.22.5 - "@jridgewell/gen-mapping": ^0.3.2 - "@jridgewell/trace-mapping": ^0.3.17 - jsesc: ^2.5.1 - checksum: efa64da70ca88fe69f05520cf5feed6eba6d30a85d32237671488cc355fdc379fe2c3246382a861d49574c4c2f82a317584f8811e95eb024e365faff3232b49d - languageName: node - linkType: hard - -"@babel/generator@npm:^7.24.7": +"@babel/generator@npm:^7.20.7, @babel/generator@npm:^7.21.1, @babel/generator@npm:^7.24.7": version: 7.24.7 resolution: "@babel/generator@npm:7.24.7" dependencies: @@ -293,50 +95,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-compilation-targets@npm:^7.17.7, @babel/helper-compilation-targets@npm:^7.18.9, @babel/helper-compilation-targets@npm:^7.20.0, @babel/helper-compilation-targets@npm:^7.20.7": - version: 7.20.7 - resolution: "@babel/helper-compilation-targets@npm:7.20.7" - dependencies: - "@babel/compat-data": ^7.20.5 - "@babel/helper-validator-option": ^7.18.6 - browserslist: ^4.21.3 - lru-cache: ^5.1.1 - semver: ^6.3.0 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 8c32c873ba86e2e1805b30e0807abd07188acbe00ebb97576f0b09061cc65007f1312b589eccb4349c5a8c7f8bb9f2ab199d41da7030bf103d9f347dcd3a3cf4 - languageName: node - linkType: hard - -"@babel/helper-compilation-targets@npm:^7.22.10": - version: 7.22.10 - resolution: "@babel/helper-compilation-targets@npm:7.22.10" - dependencies: - "@babel/compat-data": ^7.22.9 - "@babel/helper-validator-option": ^7.22.5 - browserslist: ^4.21.9 - lru-cache: ^5.1.1 - semver: ^6.3.1 - checksum: f6f1896816392bcff671bbe6e277307729aee53befb4a66ea126e2a91eda78d819a70d06fa384c74ef46c1595544b94dca50bef6c78438d9ffd31776dafbd435 - languageName: node - linkType: hard - -"@babel/helper-compilation-targets@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-compilation-targets@npm:7.22.5" - dependencies: - "@babel/compat-data": ^7.22.5 - "@babel/helper-validator-option": ^7.22.5 - browserslist: ^4.21.3 - lru-cache: ^5.1.1 - semver: ^6.3.0 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: a479460615acffa0f4fd0a29b740eafb53a93694265207d23a6038ccd18d183a382cacca515e77b7c9b042c3ba80b0aca0da5f1f62215140e81660d2cf721b68 - languageName: node - linkType: hard - -"@babel/helper-compilation-targets@npm:^7.24.7": +"@babel/helper-compilation-targets@npm:^7.17.7, @babel/helper-compilation-targets@npm:^7.18.9, @babel/helper-compilation-targets@npm:^7.20.0, @babel/helper-compilation-targets@npm:^7.20.7, @babel/helper-compilation-targets@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-compilation-targets@npm:7.24.7" dependencies: @@ -395,21 +154,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-environment-visitor@npm:^7.18.9": - version: 7.18.9 - resolution: "@babel/helper-environment-visitor@npm:7.18.9" - checksum: b25101f6162ddca2d12da73942c08ad203d7668e06663df685634a8fde54a98bc015f6f62938e8554457a592a024108d45b8f3e651fd6dcdb877275b73cc4420 - languageName: node - linkType: hard - -"@babel/helper-environment-visitor@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-environment-visitor@npm:7.22.5" - checksum: 248532077d732a34cd0844eb7b078ff917c3a8ec81a7f133593f71a860a582f05b60f818dc5049c2212e5baa12289c27889a4b81d56ef409b4863db49646c4b1 - languageName: node - linkType: hard - -"@babel/helper-environment-visitor@npm:^7.24.7": +"@babel/helper-environment-visitor@npm:^7.18.9, @babel/helper-environment-visitor@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-environment-visitor@npm:7.24.7" dependencies: @@ -427,37 +172,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-function-name@npm:^7.18.9, @babel/helper-function-name@npm:^7.19.0": - version: 7.19.0 - resolution: "@babel/helper-function-name@npm:7.19.0" - dependencies: - "@babel/template": ^7.18.10 - "@babel/types": ^7.19.0 - checksum: eac1f5db428ba546270c2b8d750c24eb528b8fcfe50c81de2e0bdebf0e20f24bec688d4331533b782e4a907fad435244621ca2193cfcf80a86731299840e0f6e - languageName: node - linkType: hard - -"@babel/helper-function-name@npm:^7.21.0": - version: 7.21.0 - resolution: "@babel/helper-function-name@npm:7.21.0" - dependencies: - "@babel/template": ^7.20.7 - "@babel/types": ^7.21.0 - checksum: d63e63c3e0e3e8b3138fa47b0cd321148a300ef12b8ee951196994dcd2a492cc708aeda94c2c53759a5c9177fffaac0fd8778791286746f72a000976968daf4e - languageName: node - linkType: hard - -"@babel/helper-function-name@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-function-name@npm:7.22.5" - dependencies: - "@babel/template": ^7.22.5 - "@babel/types": ^7.22.5 - checksum: 6b1f6ce1b1f4e513bf2c8385a557ea0dd7fa37971b9002ad19268ca4384bbe90c09681fe4c076013f33deabc63a53b341ed91e792de741b4b35e01c00238177a - languageName: node - linkType: hard - -"@babel/helper-function-name@npm:^7.24.7": +"@babel/helper-function-name@npm:^7.18.9, @babel/helper-function-name@npm:^7.19.0, @babel/helper-function-name@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-function-name@npm:7.24.7" dependencies: @@ -467,25 +182,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-hoist-variables@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/helper-hoist-variables@npm:7.18.6" - dependencies: - "@babel/types": ^7.18.6 - checksum: fd9c35bb435fda802bf9ff7b6f2df06308a21277c6dec2120a35b09f9de68f68a33972e2c15505c1a1a04b36ec64c9ace97d4a9e26d6097b76b4396b7c5fa20f - languageName: node - linkType: hard - -"@babel/helper-hoist-variables@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-hoist-variables@npm:7.22.5" - dependencies: - "@babel/types": ^7.22.5 - checksum: 394ca191b4ac908a76e7c50ab52102669efe3a1c277033e49467913c7ed6f7c64d7eacbeabf3bed39ea1f41731e22993f763b1edce0f74ff8563fd1f380d92cc - languageName: node - linkType: hard - -"@babel/helper-hoist-variables@npm:^7.24.7": +"@babel/helper-hoist-variables@npm:^7.18.6, @babel/helper-hoist-variables@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-hoist-variables@npm:7.24.7" dependencies: @@ -503,25 +200,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-module-imports@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/helper-module-imports@npm:7.18.6" - dependencies: - "@babel/types": ^7.18.6 - checksum: f393f8a3b3304b1b7a288a38c10989de754f01d29caf62ce7c4e5835daf0a27b81f3ac687d9d2780d39685aae7b55267324b512150e7b2be967b0c493b6a1def - languageName: node - linkType: hard - -"@babel/helper-module-imports@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-module-imports@npm:7.22.5" - dependencies: - "@babel/types": ^7.22.5 - checksum: 9ac2b0404fa38b80bdf2653fbeaf8e8a43ccb41bd505f9741d820ed95d3c4e037c62a1bcdcb6c9527d7798d2e595924c4d025daed73283badc180ada2c9c49ad - languageName: node - linkType: hard - -"@babel/helper-module-imports@npm:^7.24.7": +"@babel/helper-module-imports@npm:^7.18.6, @babel/helper-module-imports@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-module-imports@npm:7.24.7" dependencies: @@ -531,70 +210,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-module-transforms@npm:^7.18.6, @babel/helper-module-transforms@npm:^7.20.11": - version: 7.20.11 - resolution: "@babel/helper-module-transforms@npm:7.20.11" - dependencies: - "@babel/helper-environment-visitor": ^7.18.9 - "@babel/helper-module-imports": ^7.18.6 - "@babel/helper-simple-access": ^7.20.2 - "@babel/helper-split-export-declaration": ^7.18.6 - "@babel/helper-validator-identifier": ^7.19.1 - "@babel/template": ^7.20.7 - "@babel/traverse": ^7.20.10 - "@babel/types": ^7.20.7 - checksum: 29319ebafa693d48756c6ba0d871677bb0037e0da084fbe221a17c38d57093fc8aa38543c07d76e788266a937976e37ab4901971ca7f237c5ab45f524b9ecca0 - languageName: node - linkType: hard - -"@babel/helper-module-transforms@npm:^7.21.0": - version: 7.21.2 - resolution: "@babel/helper-module-transforms@npm:7.21.2" - dependencies: - "@babel/helper-environment-visitor": ^7.18.9 - "@babel/helper-module-imports": ^7.18.6 - "@babel/helper-simple-access": ^7.20.2 - "@babel/helper-split-export-declaration": ^7.18.6 - "@babel/helper-validator-identifier": ^7.19.1 - "@babel/template": ^7.20.7 - "@babel/traverse": ^7.21.2 - "@babel/types": ^7.21.2 - checksum: 8a1c129a4f90bdf97d8b6e7861732c9580f48f877aaaafbc376ce2482febebcb8daaa1de8bc91676d12886487603f8c62a44f9e90ee76d6cac7f9225b26a49e1 - languageName: node - linkType: hard - -"@babel/helper-module-transforms@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-module-transforms@npm:7.22.5" - dependencies: - "@babel/helper-environment-visitor": ^7.22.5 - "@babel/helper-module-imports": ^7.22.5 - "@babel/helper-simple-access": ^7.22.5 - "@babel/helper-split-export-declaration": ^7.22.5 - "@babel/helper-validator-identifier": ^7.22.5 - "@babel/template": ^7.22.5 - "@babel/traverse": ^7.22.5 - "@babel/types": ^7.22.5 - checksum: 8985dc0d971fd17c467e8b84fe0f50f3dd8610e33b6c86e5b3ca8e8859f9448bcc5c84e08a2a14285ef388351c0484797081c8f05a03770bf44fc27bf4900e68 - languageName: node - linkType: hard - -"@babel/helper-module-transforms@npm:^7.22.9": - version: 7.22.9 - resolution: "@babel/helper-module-transforms@npm:7.22.9" - dependencies: - "@babel/helper-environment-visitor": ^7.22.5 - "@babel/helper-module-imports": ^7.22.5 - "@babel/helper-simple-access": ^7.22.5 - "@babel/helper-split-export-declaration": ^7.22.6 - "@babel/helper-validator-identifier": ^7.22.5 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 2751f77660518cf4ff027514d6f4794f04598c6393be7b04b8e46c6e21606e11c19f3f57ab6129a9c21bacdf8b3ffe3af87bb401d972f34af2d0ffde02ac3001 - languageName: node - linkType: hard - -"@babel/helper-module-transforms@npm:^7.24.7": +"@babel/helper-module-transforms@npm:^7.18.6, @babel/helper-module-transforms@npm:^7.20.11, @babel/helper-module-transforms@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-module-transforms@npm:7.24.7" dependencies: @@ -618,14 +234,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.16.7, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.18.9, @babel/helper-plugin-utils@npm:^7.19.0, @babel/helper-plugin-utils@npm:^7.20.2, @babel/helper-plugin-utils@npm:^7.8.0, @babel/helper-plugin-utils@npm:^7.8.3": - version: 7.20.2 - resolution: "@babel/helper-plugin-utils@npm:7.20.2" - checksum: f6cae53b7fdb1bf3abd50fa61b10b4470985b400cc794d92635da1e7077bb19729f626adc0741b69403d9b6e411cddddb9c0157a709cc7c4eeb41e663be5d74b - languageName: node - linkType: hard - -"@babel/helper-plugin-utils@npm:^7.22.5": +"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.16.7, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.18.9, @babel/helper-plugin-utils@npm:^7.19.0, @babel/helper-plugin-utils@npm:^7.20.2, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.8.0, @babel/helper-plugin-utils@npm:^7.8.3": version: 7.22.5 resolution: "@babel/helper-plugin-utils@npm:7.22.5" checksum: c0fc7227076b6041acd2f0e818145d2e8c41968cc52fb5ca70eed48e21b8fe6dd88a0a91cbddf4951e33647336eb5ae184747ca706817ca3bef5e9e905151ff5 @@ -660,25 +269,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-simple-access@npm:^7.20.2": - version: 7.20.2 - resolution: "@babel/helper-simple-access@npm:7.20.2" - dependencies: - "@babel/types": ^7.20.2 - checksum: ad1e96ee2e5f654ffee2369a586e5e8d2722bf2d8b028a121b4c33ebae47253f64d420157b9f0a8927aea3a9e0f18c0103e74fdd531815cf3650a0a4adca11a1 - languageName: node - linkType: hard - -"@babel/helper-simple-access@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-simple-access@npm:7.22.5" - dependencies: - "@babel/types": ^7.22.5 - checksum: fe9686714caf7d70aedb46c3cce090f8b915b206e09225f1e4dbc416786c2fdbbee40b38b23c268b7ccef749dd2db35f255338fb4f2444429874d900dede5ad2 - languageName: node - linkType: hard - -"@babel/helper-simple-access@npm:^7.24.7": +"@babel/helper-simple-access@npm:^7.20.2, @babel/helper-simple-access@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-simple-access@npm:7.24.7" dependencies: @@ -697,34 +288,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-split-export-declaration@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/helper-split-export-declaration@npm:7.18.6" - dependencies: - "@babel/types": ^7.18.6 - checksum: c6d3dede53878f6be1d869e03e9ffbbb36f4897c7cc1527dc96c56d127d834ffe4520a6f7e467f5b6f3c2843ea0e81a7819d66ae02f707f6ac057f3d57943a2b - languageName: node - linkType: hard - -"@babel/helper-split-export-declaration@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-split-export-declaration@npm:7.22.5" - dependencies: - "@babel/types": ^7.22.5 - checksum: d10e05a02f49c1f7c578cea63d2ac55356501bbf58856d97ac9bfde4957faee21ae97c7f566aa309e38a256eef58b58e5b670a7f568b362c00e93dfffe072650 - languageName: node - linkType: hard - -"@babel/helper-split-export-declaration@npm:^7.22.6": - version: 7.22.6 - resolution: "@babel/helper-split-export-declaration@npm:7.22.6" - dependencies: - "@babel/types": ^7.22.5 - checksum: e141cace583b19d9195f9c2b8e17a3ae913b7ee9b8120246d0f9ca349ca6f03cb2c001fd5ec57488c544347c0bb584afec66c936511e447fd20a360e591ac921 - languageName: node - linkType: hard - -"@babel/helper-split-export-declaration@npm:^7.24.7": +"@babel/helper-split-export-declaration@npm:^7.18.6, @babel/helper-split-export-declaration@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-split-export-declaration@npm:7.24.7" dependencies: @@ -733,20 +297,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-string-parser@npm:^7.19.4": - version: 7.19.4 - resolution: "@babel/helper-string-parser@npm:7.19.4" - checksum: b2f8a3920b30dfac81ec282ac4ad9598ea170648f8254b10f475abe6d944808fb006aab325d3eb5a8ad3bea8dfa888cfa6ef471050dae5748497c110ec060943 - languageName: node - linkType: hard - -"@babel/helper-string-parser@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-string-parser@npm:7.22.5" - checksum: 836851ca5ec813077bbb303acc992d75a360267aa3b5de7134d220411c852a6f17de7c0d0b8c8dcc0f567f67874c00f4528672b2a4f1bc978a3ada64c8c78467 - languageName: node - linkType: hard - "@babel/helper-string-parser@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-string-parser@npm:7.24.7" @@ -754,49 +304,14 @@ __metadata: languageName: node linkType: hard -"@babel/helper-validator-identifier@npm:^7.18.6, @babel/helper-validator-identifier@npm:^7.19.1": - version: 7.19.1 - resolution: "@babel/helper-validator-identifier@npm:7.19.1" - checksum: 0eca5e86a729162af569b46c6c41a63e18b43dbe09fda1d2a3c8924f7d617116af39cac5e4cd5d431bb760b4dca3c0970e0c444789b1db42bcf1fa41fbad0a3a - languageName: node - linkType: hard - -"@babel/helper-validator-identifier@npm:^7.22.20": - version: 7.22.20 - resolution: "@babel/helper-validator-identifier@npm:7.22.20" - checksum: 136412784d9428266bcdd4d91c32bcf9ff0e8d25534a9d94b044f77fe76bc50f941a90319b05aafd1ec04f7d127cd57a179a3716009ff7f3412ef835ada95bdc - languageName: node - linkType: hard - -"@babel/helper-validator-identifier@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-validator-identifier@npm:7.22.5" - checksum: 7f0f30113474a28298c12161763b49de5018732290ca4de13cdaefd4fd0d635a6fe3f6686c37a02905fb1e64f21a5ee2b55140cf7b070e729f1bd66866506aea - languageName: node - linkType: hard - -"@babel/helper-validator-identifier@npm:^7.24.7": +"@babel/helper-validator-identifier@npm:^7.19.1, @babel/helper-validator-identifier@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-validator-identifier@npm:7.24.7" checksum: 6799ab117cefc0ecd35cd0b40ead320c621a298ecac88686a14cffceaac89d80cdb3c178f969861bf5fa5e4f766648f9161ea0752ecfe080d8e89e3147270257 languageName: node linkType: hard -"@babel/helper-validator-option@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/helper-validator-option@npm:7.18.6" - checksum: f9cc6eb7cc5d759c5abf006402180f8d5e4251e9198197428a97e05d65eb2f8ae5a0ce73b1dfd2d35af41d0eb780627a64edf98a4e71f064eeeacef8de58f2cf - languageName: node - linkType: hard - -"@babel/helper-validator-option@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-validator-option@npm:7.22.5" - checksum: bbeca8a85ee86990215c0424997438b388b8d642d69b9f86c375a174d3cdeb270efafd1ff128bc7a1d370923d13b6e45829ba8581c027620e83e3a80c5c414b3 - languageName: node - linkType: hard - -"@babel/helper-validator-option@npm:^7.24.7": +"@babel/helper-validator-option@npm:^7.18.6, @babel/helper-validator-option@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-validator-option@npm:7.24.7" checksum: 9689166bf3f777dd424c026841c8cd651e41b21242dbfd4569a53086179a3e744c8eddd56e9d10b54142270141c91581b53af0d7c00c82d552d2540e2a919f7e @@ -815,167 +330,34 @@ __metadata: languageName: node linkType: hard -"@babel/helpers@npm:^7.20.7": - version: 7.20.13 - resolution: "@babel/helpers@npm:7.20.13" - dependencies: - "@babel/template": ^7.20.7 - "@babel/traverse": ^7.20.13 - "@babel/types": ^7.20.7 - checksum: d62076fa834f342798f8c3fd7aec0870cc1725d273d99e540cbaa8d6c3ed10258228dd14601c8e66bfeabbb9424c3b31090ecc467fe855f7bd72c4734df7fb09 - languageName: node - linkType: hard - -"@babel/helpers@npm:^7.21.0": - version: 7.21.0 - resolution: "@babel/helpers@npm:7.21.0" - dependencies: - "@babel/template": ^7.20.7 - "@babel/traverse": ^7.21.0 - "@babel/types": ^7.21.0 - checksum: 9370dad2bb665c551869a08ac87c8bdafad53dbcdce1f5c5d498f51811456a3c005d9857562715151a0f00b2e912ac8d89f56574f837b5689f5f5072221cdf54 - languageName: node - linkType: hard - -"@babel/helpers@npm:^7.22.10": - version: 7.22.10 - resolution: "@babel/helpers@npm:7.22.10" - dependencies: - "@babel/template": ^7.22.5 - "@babel/traverse": ^7.22.10 - "@babel/types": ^7.22.10 - checksum: 3b1219e362df390b6c5d94b75a53fc1c2eb42927ced0b8022d6a29b833a839696206b9bdad45b4805d05591df49fc16b6fb7db758c9c2ecfe99e3e94cb13020f - languageName: node - linkType: hard - -"@babel/helpers@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helpers@npm:7.22.5" - dependencies: - "@babel/template": ^7.22.5 - "@babel/traverse": ^7.22.5 - "@babel/types": ^7.22.5 - checksum: a96e785029dff72f171190943df895ab0f76e17bf3881efd630bc5fae91215042d1c2e9ed730e8e4adf4da6f28b24bd1f54ed93b90ffbca34c197351872a084e - languageName: node - linkType: hard - "@babel/helpers@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helpers@npm:7.24.7" - dependencies: - "@babel/template": ^7.24.7 - "@babel/types": ^7.24.7 - checksum: 934da58098a3670ca7f9f42425b9c44d0ca4f8fad815c0f51d89fc7b64c5e0b4c7d5fec038599de691229ada737edeaf72fad3eba8e16dd5842e8ea447f76b66 - languageName: node - linkType: hard - -"@babel/highlight@npm:^7.10.4, @babel/highlight@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/highlight@npm:7.18.6" - dependencies: - "@babel/helper-validator-identifier": ^7.18.6 - chalk: ^2.0.0 - js-tokens: ^4.0.0 - checksum: 92d8ee61549de5ff5120e945e774728e5ccd57fd3b2ed6eace020ec744823d4a98e242be1453d21764a30a14769ecd62170fba28539b211799bbaf232bbb2789 - languageName: node - linkType: hard - -"@babel/highlight@npm:^7.22.10": - version: 7.22.10 - resolution: "@babel/highlight@npm:7.22.10" - dependencies: - "@babel/helper-validator-identifier": ^7.22.5 - chalk: ^2.4.2 - js-tokens: ^4.0.0 - checksum: f714a1e1a72dd9d72f6383f4f30fd342e21a8df32d984a4ea8f5eab691bb6ba6db2f8823d4b4cf135d98869e7a98925b81306aa32ee3c429f8cfa52c75889e1b - languageName: node - linkType: hard - -"@babel/highlight@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/highlight@npm:7.22.5" - dependencies: - "@babel/helper-validator-identifier": ^7.22.5 - chalk: ^2.0.0 - js-tokens: ^4.0.0 - checksum: f61ae6de6ee0ea8d9b5bcf2a532faec5ab0a1dc0f7c640e5047fc61630a0edb88b18d8c92eb06566d30da7a27db841aca11820ecd3ebe9ce514c9350fbed39c4 - languageName: node - linkType: hard - -"@babel/highlight@npm:^7.23.4": - version: 7.23.4 - resolution: "@babel/highlight@npm:7.23.4" - dependencies: - "@babel/helper-validator-identifier": ^7.22.20 - chalk: ^2.4.2 - js-tokens: ^4.0.0 - checksum: 643acecdc235f87d925979a979b539a5d7d1f31ae7db8d89047269082694122d11aa85351304c9c978ceeb6d250591ccadb06c366f358ccee08bb9c122476b89 - languageName: node - linkType: hard - -"@babel/highlight@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/highlight@npm:7.24.7" - dependencies: - "@babel/helper-validator-identifier": ^7.24.7 - chalk: ^2.4.2 - js-tokens: ^4.0.0 - picocolors: ^1.0.0 - checksum: 5cd3a89f143671c4ac129960024ba678b669e6fc673ce078030f5175002d1d3d52bc10b22c5b916a6faf644b5028e9a4bd2bb264d053d9b05b6a98690f1d46f1 - languageName: node - linkType: hard - -"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.13, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.7.0": - version: 7.20.13 - resolution: "@babel/parser@npm:7.20.13" - bin: - parser: ./bin/babel-parser.js - checksum: 7eb2e3d9d9ad5e24b087c88d137f5701d94f049e28b9dce9f3f5c6d4d9b06a0d7c43b9106f1c02df8a204226200e0517de4bc81a339768a4ebd4c59107ea93a4 - languageName: node - linkType: hard - -"@babel/parser@npm:^7.16.4": - version: 7.21.3 - resolution: "@babel/parser@npm:7.21.3" - bin: - parser: ./bin/babel-parser.js - checksum: a71e6456a1260c2a943736b56cc0acdf5f2a53c6c79e545f56618967e51f9b710d1d3359264e7c979313a7153741b1d95ad8860834cc2ab4ce4f428b13cc07be - languageName: node - linkType: hard - -"@babel/parser@npm:^7.20.15, @babel/parser@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/parser@npm:7.24.7" - bin: - parser: ./bin/babel-parser.js - checksum: fc9d2c4c8712f89672edc55c0dc5cf640dcec715b56480f111f85c2bc1d507e251596e4110d65796690a96ac37a4b60432af90b3e97bb47e69d4ef83872dbbd6 - languageName: node - linkType: hard - -"@babel/parser@npm:^7.21.0, @babel/parser@npm:^7.21.2": - version: 7.21.2 - resolution: "@babel/parser@npm:7.21.2" - bin: - parser: ./bin/babel-parser.js - checksum: e2b89de2c63d4cdd2cafeaea34f389bba729727eec7a8728f736bc472a59396059e3e9fe322c9bed8fd126d201fb609712949dc8783f4cae4806acd9a73da6ff + version: 7.24.7 + resolution: "@babel/helpers@npm:7.24.7" + dependencies: + "@babel/template": ^7.24.7 + "@babel/types": ^7.24.7 + checksum: 934da58098a3670ca7f9f42425b9c44d0ca4f8fad815c0f51d89fc7b64c5e0b4c7d5fec038599de691229ada737edeaf72fad3eba8e16dd5842e8ea447f76b66 languageName: node linkType: hard -"@babel/parser@npm:^7.22.10": - version: 7.22.10 - resolution: "@babel/parser@npm:7.22.10" - bin: - parser: ./bin/babel-parser.js - checksum: af51567b7d3cdf523bc608eae057397486c7fa6c2e5753027c01fe5c36f0767b2d01ce3049b222841326cc5b8c7fda1d810ac1a01af0a97bb04679e2ef9f7049 +"@babel/highlight@npm:^7.10.4, @babel/highlight@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/highlight@npm:7.24.7" + dependencies: + "@babel/helper-validator-identifier": ^7.24.7 + chalk: ^2.4.2 + js-tokens: ^4.0.0 + picocolors: ^1.0.0 + checksum: 5cd3a89f143671c4ac129960024ba678b669e6fc673ce078030f5175002d1d3d52bc10b22c5b916a6faf644b5028e9a4bd2bb264d053d9b05b6a98690f1d46f1 languageName: node linkType: hard -"@babel/parser@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/parser@npm:7.22.5" +"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.16.4, @babel/parser@npm:^7.20.15, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.21.2, @babel/parser@npm:^7.24.7, @babel/parser@npm:^7.7.0": + version: 7.24.7 + resolution: "@babel/parser@npm:7.24.7" bin: parser: ./bin/babel-parser.js - checksum: 470ebba516417ce8683b36e2eddd56dcfecb32c54b9bb507e28eb76b30d1c3e618fd0cfeee1f64d8357c2254514e1a19e32885cfb4e73149f4ae875436a6d59c + checksum: fc9d2c4c8712f89672edc55c0dc5cf640dcec715b56480f111f85c2bc1d507e251596e4110d65796690a96ac37a4b60432af90b3e97bb47e69d4ef83872dbbd6 languageName: node linkType: hard @@ -1291,7 +673,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-jsx@npm:^7.16.7": +"@babel/plugin-syntax-jsx@npm:^7.16.7, @babel/plugin-syntax-jsx@npm:^7.18.6": version: 7.22.5 resolution: "@babel/plugin-syntax-jsx@npm:7.22.5" dependencies: @@ -1302,17 +684,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-jsx@npm:^7.18.6, @babel/plugin-syntax-jsx@npm:^7.7.2": - version: 7.18.6 - resolution: "@babel/plugin-syntax-jsx@npm:7.18.6" - dependencies: - "@babel/helper-plugin-utils": ^7.18.6 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 6d37ea972970195f1ffe1a54745ce2ae456e0ac6145fae9aa1480f297248b262ea6ebb93010eddb86ebfacb94f57c05a1fc5d232b9a67325b09060299d515c67 - languageName: node - linkType: hard - "@babel/plugin-syntax-logical-assignment-operators@npm:^7.10.4, @babel/plugin-syntax-logical-assignment-operators@npm:^7.8.3": version: 7.10.4 resolution: "@babel/plugin-syntax-logical-assignment-operators@npm:7.10.4" @@ -1401,7 +772,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-typescript@npm:^7.16.7": +"@babel/plugin-syntax-typescript@npm:^7.16.7, @babel/plugin-syntax-typescript@npm:^7.20.0": version: 7.22.5 resolution: "@babel/plugin-syntax-typescript@npm:7.22.5" dependencies: @@ -1412,17 +783,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-typescript@npm:^7.20.0, @babel/plugin-syntax-typescript@npm:^7.7.2": - version: 7.20.0 - resolution: "@babel/plugin-syntax-typescript@npm:7.20.0" - dependencies: - "@babel/helper-plugin-utils": ^7.19.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 6189c0b5c32ba3c9a80a42338bd50719d783b20ef29b853d4f03929e971913d3cefd80184e924ae98ad6db09080be8fe6f1ffde9a6db8972523234f0274d36f7 - languageName: node - linkType: hard - "@babel/plugin-transform-arrow-functions@npm:^7.18.6": version: 7.20.7 resolution: "@babel/plugin-transform-arrow-functions@npm:7.20.7" @@ -1993,16 +1353,7 @@ __metadata: languageName: node linkType: hard -"@babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.20.13, @babel/runtime@npm:^7.8.4": - version: 7.20.13 - resolution: "@babel/runtime@npm:7.20.13" - dependencies: - regenerator-runtime: ^0.13.11 - checksum: 09b7a97a05c80540db6c9e4ddf8c5d2ebb06cae5caf3a87e33c33f27f8c4d49d9c67a2d72f1570e796045288fad569f98a26ceba0c4f5fad2af84b6ad855c4fb - languageName: node - linkType: hard - -"@babel/runtime@npm:^7.21.0": +"@babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.20.13, @babel/runtime@npm:^7.21.0, @babel/runtime@npm:^7.8.4": version: 7.21.0 resolution: "@babel/runtime@npm:7.21.0" dependencies: @@ -2018,29 +1369,7 @@ __metadata: languageName: node linkType: hard -"@babel/template@npm:^7.18.10, @babel/template@npm:^7.20.7, @babel/template@npm:^7.3.3": - version: 7.20.7 - resolution: "@babel/template@npm:7.20.7" - dependencies: - "@babel/code-frame": ^7.18.6 - "@babel/parser": ^7.20.7 - "@babel/types": ^7.20.7 - checksum: 2eb1a0ab8d415078776bceb3473d07ab746e6bb4c2f6ca46ee70efb284d75c4a32bb0cd6f4f4946dec9711f9c0780e8e5d64b743208deac6f8e9858afadc349e - languageName: node - linkType: hard - -"@babel/template@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/template@npm:7.22.5" - dependencies: - "@babel/code-frame": ^7.22.5 - "@babel/parser": ^7.22.5 - "@babel/types": ^7.22.5 - checksum: c5746410164039aca61829cdb42e9a55410f43cace6f51ca443313f3d0bdfa9a5a330d0b0df73dc17ef885c72104234ae05efede37c1cc8a72dc9f93425977a3 - languageName: node - linkType: hard - -"@babel/template@npm:^7.24.7": +"@babel/template@npm:^7.18.10, @babel/template@npm:^7.20.7, @babel/template@npm:^7.24.7, @babel/template@npm:^7.3.3": version: 7.24.7 resolution: "@babel/template@npm:7.24.7" dependencies: @@ -2069,79 +1398,7 @@ __metadata: languageName: node linkType: hard -"@babel/traverse@npm:^7.20.10, @babel/traverse@npm:^7.20.12, @babel/traverse@npm:^7.20.13, @babel/traverse@npm:^7.20.5, @babel/traverse@npm:^7.20.7, @babel/traverse@npm:^7.7.0": - version: 7.20.13 - resolution: "@babel/traverse@npm:7.20.13" - dependencies: - "@babel/code-frame": ^7.18.6 - "@babel/generator": ^7.20.7 - "@babel/helper-environment-visitor": ^7.18.9 - "@babel/helper-function-name": ^7.19.0 - "@babel/helper-hoist-variables": ^7.18.6 - "@babel/helper-split-export-declaration": ^7.18.6 - "@babel/parser": ^7.20.13 - "@babel/types": ^7.20.7 - debug: ^4.1.0 - globals: ^11.1.0 - checksum: 30ca6e0bd18233fda48fa09315efd14dfc61dcf5b8fa3712b343bfc61b32bc63b5e85ea1773cc9576c9b293b96f46b4589aaeb0a52e1f3eeac4edc076d049fc7 - languageName: node - linkType: hard - -"@babel/traverse@npm:^7.21.0, @babel/traverse@npm:^7.21.2, @babel/traverse@npm:^7.7.2": - version: 7.21.2 - resolution: "@babel/traverse@npm:7.21.2" - dependencies: - "@babel/code-frame": ^7.18.6 - "@babel/generator": ^7.21.1 - "@babel/helper-environment-visitor": ^7.18.9 - "@babel/helper-function-name": ^7.21.0 - "@babel/helper-hoist-variables": ^7.18.6 - "@babel/helper-split-export-declaration": ^7.18.6 - "@babel/parser": ^7.21.2 - "@babel/types": ^7.21.2 - debug: ^4.1.0 - globals: ^11.1.0 - checksum: d851e3f5cfbdc2fac037a014eae7b0707709de50f7d2fbb82ffbf932d3eeba90a77431529371d6e544f8faaf8c6540eeb18fdd8d1c6fa2b61acea0fb47e18d4b - languageName: node - linkType: hard - -"@babel/traverse@npm:^7.22.10": - version: 7.22.10 - resolution: "@babel/traverse@npm:7.22.10" - dependencies: - "@babel/code-frame": ^7.22.10 - "@babel/generator": ^7.22.10 - "@babel/helper-environment-visitor": ^7.22.5 - "@babel/helper-function-name": ^7.22.5 - "@babel/helper-hoist-variables": ^7.22.5 - "@babel/helper-split-export-declaration": ^7.22.6 - "@babel/parser": ^7.22.10 - "@babel/types": ^7.22.10 - debug: ^4.1.0 - globals: ^11.1.0 - checksum: 9f7b358563bfb0f57ac4ed639f50e5c29a36b821a1ce1eea0c7db084f5b925e3275846d0de63bde01ca407c85d9804e0efbe370d92cd2baaafde3bd13b0f4cdb - languageName: node - linkType: hard - -"@babel/traverse@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/traverse@npm:7.22.5" - dependencies: - "@babel/code-frame": ^7.22.5 - "@babel/generator": ^7.22.5 - "@babel/helper-environment-visitor": ^7.22.5 - "@babel/helper-function-name": ^7.22.5 - "@babel/helper-hoist-variables": ^7.22.5 - "@babel/helper-split-export-declaration": ^7.22.5 - "@babel/parser": ^7.22.5 - "@babel/types": ^7.22.5 - debug: ^4.1.0 - globals: ^11.1.0 - checksum: 560931422dc1761f2df723778dcb4e51ce0d02e560cf2caa49822921578f49189a5a7d053b78a32dca33e59be886a6b2200a6e24d4ae9b5086ca0ba803815694 - languageName: node - linkType: hard - -"@babel/traverse@npm:^7.24.7": +"@babel/traverse@npm:^7.20.12, @babel/traverse@npm:^7.20.5, @babel/traverse@npm:^7.20.7, @babel/traverse@npm:^7.24.7, @babel/traverse@npm:^7.7.0": version: 7.24.7 resolution: "@babel/traverse@npm:7.24.7" dependencies: @@ -2159,51 +1416,7 @@ __metadata: languageName: node linkType: hard -"@babel/types@npm:^7.0.0, @babel/types@npm:^7.18.6, @babel/types@npm:^7.18.9, @babel/types@npm:^7.19.0, @babel/types@npm:^7.20.0, @babel/types@npm:^7.20.2, @babel/types@npm:^7.20.5, @babel/types@npm:^7.20.7, @babel/types@npm:^7.3.0, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4, @babel/types@npm:^7.7.0": - version: 7.20.7 - resolution: "@babel/types@npm:7.20.7" - dependencies: - "@babel/helper-string-parser": ^7.19.4 - "@babel/helper-validator-identifier": ^7.19.1 - to-fast-properties: ^2.0.0 - checksum: b39af241f0b72bba67fd6d0d23914f6faec8c0eba8015c181cbd5ea92e59fc91a52a1ab490d3520c7dbd19ddb9ebb76c476308f6388764f16d8201e37fae6811 - languageName: node - linkType: hard - -"@babel/types@npm:^7.21.0, @babel/types@npm:^7.21.2, @babel/types@npm:^7.8.3": - version: 7.21.2 - resolution: "@babel/types@npm:7.21.2" - dependencies: - "@babel/helper-string-parser": ^7.19.4 - "@babel/helper-validator-identifier": ^7.19.1 - to-fast-properties: ^2.0.0 - checksum: a45a52acde139e575502c6de42c994bdbe262bafcb92ae9381fb54cdf1a3672149086843fda655c7683ce9806e998fd002bbe878fa44984498d0fdc7935ce7ff - languageName: node - linkType: hard - -"@babel/types@npm:^7.22.10": - version: 7.22.10 - resolution: "@babel/types@npm:7.22.10" - dependencies: - "@babel/helper-string-parser": ^7.22.5 - "@babel/helper-validator-identifier": ^7.22.5 - to-fast-properties: ^2.0.0 - checksum: 095c4f4b7503fa816e4094113f0ec2351ef96ff32012010b771693066ff628c7c664b21c6bd3fb93aeb46fe7c61f6b3a3c9e4ed0034d6a2481201c417371c8af - languageName: node - linkType: hard - -"@babel/types@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/types@npm:7.22.5" - dependencies: - "@babel/helper-string-parser": ^7.22.5 - "@babel/helper-validator-identifier": ^7.22.5 - to-fast-properties: ^2.0.0 - checksum: c13a9c1dc7d2d1a241a2f8363540cb9af1d66e978e8984b400a20c4f38ba38ca29f06e26a0f2d49a70bad9e57615dac09c35accfddf1bb90d23cd3e0a0bab892 - languageName: node - linkType: hard - -"@babel/types@npm:^7.24.7": +"@babel/types@npm:^7.0.0, @babel/types@npm:^7.18.6, @babel/types@npm:^7.18.9, @babel/types@npm:^7.20.0, @babel/types@npm:^7.20.2, @babel/types@npm:^7.20.5, @babel/types@npm:^7.20.7, @babel/types@npm:^7.21.2, @babel/types@npm:^7.22.5, @babel/types@npm:^7.24.7, @babel/types@npm:^7.3.0, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4, @babel/types@npm:^7.7.0, @babel/types@npm:^7.8.3": version: 7.24.7 resolution: "@babel/types@npm:7.24.7" dependencies: @@ -2214,13 +1427,6 @@ __metadata: languageName: node linkType: hard -"@bcoe/v8-coverage@npm:^0.2.3": - version: 0.2.3 - resolution: "@bcoe/v8-coverage@npm:0.2.3" - checksum: 850f9305536d0f2bd13e9e0881cb5f02e4f93fad1189f7b2d4bebf694e3206924eadee1068130d43c11b750efcc9405f88a8e42ef098b6d75239c0f047de1a27 - languageName: node - linkType: hard - "@esbuild/aix-ppc64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/aix-ppc64@npm:0.21.5" @@ -3088,73 +2294,6 @@ __metadata: languageName: node linkType: hard -"@jest/console@npm:^29.4.3": - version: 29.4.3 - resolution: "@jest/console@npm:29.4.3" - dependencies: - "@jest/types": ^29.4.3 - "@types/node": "*" - chalk: ^4.0.0 - jest-message-util: ^29.4.3 - jest-util: ^29.4.3 - slash: ^3.0.0 - checksum: 8d9b163febe735153b523db527742309f4d598eda22f17f04e030060329bd3da4de7420fc1f7812f7a16f08273654a7de094c4b4e8b81a99dbfc17cfb1629008 - languageName: node - linkType: hard - -"@jest/core@npm:^29.4.3": - version: 29.4.3 - resolution: "@jest/core@npm:29.4.3" - dependencies: - "@jest/console": ^29.4.3 - "@jest/reporters": ^29.4.3 - "@jest/test-result": ^29.4.3 - "@jest/transform": ^29.4.3 - "@jest/types": ^29.4.3 - "@types/node": "*" - ansi-escapes: ^4.2.1 - chalk: ^4.0.0 - ci-info: ^3.2.0 - exit: ^0.1.2 - graceful-fs: ^4.2.9 - jest-changed-files: ^29.4.3 - jest-config: ^29.4.3 - jest-haste-map: ^29.4.3 - jest-message-util: ^29.4.3 - jest-regex-util: ^29.4.3 - jest-resolve: ^29.4.3 - jest-resolve-dependencies: ^29.4.3 - jest-runner: ^29.4.3 - jest-runtime: ^29.4.3 - jest-snapshot: ^29.4.3 - jest-util: ^29.4.3 - jest-validate: ^29.4.3 - jest-watcher: ^29.4.3 - micromatch: ^4.0.4 - pretty-format: ^29.4.3 - slash: ^3.0.0 - strip-ansi: ^6.0.0 - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - checksum: 4aa10644d66f44f051d5dd9cdcedce27acc71216dbcc5e7adebdea458e27aefe27c78f457d7efd49f58b968c35f42de5a521590876e2013593e675120b9e6ab1 - languageName: node - linkType: hard - -"@jest/environment@npm:^29.4.3": - version: 29.4.3 - resolution: "@jest/environment@npm:29.4.3" - dependencies: - "@jest/fake-timers": ^29.4.3 - "@jest/types": ^29.4.3 - "@types/node": "*" - jest-mock: ^29.4.3 - checksum: 7c1b0cc4e84b90f8a3bbeca9bbf088882c88aee70a81b3b8e24265dcb1cbc302cd1eee3319089cf65bfd39adbaea344903c712afea106cb8da6c86088d99c5fb - languageName: node - linkType: hard - "@jest/environment@npm:^29.5.0": version: 29.5.0 resolution: "@jest/environment@npm:29.5.0" @@ -3167,39 +2306,6 @@ __metadata: languageName: node linkType: hard -"@jest/expect-utils@npm:^29.4.3": - version: 29.4.3 - resolution: "@jest/expect-utils@npm:29.4.3" - dependencies: - jest-get-type: ^29.4.3 - checksum: 2bbed39ff2fb59f5acac465a1ce7303e3b4b62b479e4f386261986c9827f7f799ea912761e22629c5daf10addf8513f16733c14a29c2647bb66d4ee625e9ff92 - languageName: node - linkType: hard - -"@jest/expect@npm:^29.4.3": - version: 29.4.3 - resolution: "@jest/expect@npm:29.4.3" - dependencies: - expect: ^29.4.3 - jest-snapshot: ^29.4.3 - checksum: 08d0d40077ec99a7491fe59d05821dbd31126cfba70875855d8a063698b7126b5f6c309c50811caacc6ae2f727c6e44f51bdcf1d6c1ea832b4f020045ef22d45 - languageName: node - linkType: hard - -"@jest/fake-timers@npm:^29.4.3": - version: 29.4.3 - resolution: "@jest/fake-timers@npm:29.4.3" - dependencies: - "@jest/types": ^29.4.3 - "@sinonjs/fake-timers": ^10.0.2 - "@types/node": "*" - jest-message-util: ^29.4.3 - jest-mock: ^29.4.3 - jest-util: ^29.4.3 - checksum: adaceb9143c395cccf3d7baa0e49b7042c3092a554e8283146df19926247e34c21b5bde5688bb90e9e87b4a02e4587926c5d858ee0a38d397a63175d0a127874 - languageName: node - linkType: hard - "@jest/fake-timers@npm:^29.5.0": version: 29.5.0 resolution: "@jest/fake-timers@npm:29.5.0" @@ -3214,55 +2320,6 @@ __metadata: languageName: node linkType: hard -"@jest/globals@npm:^29.4.3": - version: 29.4.3 - resolution: "@jest/globals@npm:29.4.3" - dependencies: - "@jest/environment": ^29.4.3 - "@jest/expect": ^29.4.3 - "@jest/types": ^29.4.3 - jest-mock: ^29.4.3 - checksum: ea76b546ceb4aa5ce2bb3726df12f989b23150b51c9f7664790caa81b943012a657cf3a8525498af1c3518cdb387f54b816cfba1b0ddd22c7b20f03b1d7290b4 - languageName: node - linkType: hard - -"@jest/reporters@npm:^29.4.3": - version: 29.4.3 - resolution: "@jest/reporters@npm:29.4.3" - dependencies: - "@bcoe/v8-coverage": ^0.2.3 - "@jest/console": ^29.4.3 - "@jest/test-result": ^29.4.3 - "@jest/transform": ^29.4.3 - "@jest/types": ^29.4.3 - "@jridgewell/trace-mapping": ^0.3.15 - "@types/node": "*" - chalk: ^4.0.0 - collect-v8-coverage: ^1.0.0 - exit: ^0.1.2 - glob: ^7.1.3 - graceful-fs: ^4.2.9 - istanbul-lib-coverage: ^3.0.0 - istanbul-lib-instrument: ^5.1.0 - istanbul-lib-report: ^3.0.0 - istanbul-lib-source-maps: ^4.0.0 - istanbul-reports: ^3.1.3 - jest-message-util: ^29.4.3 - jest-util: ^29.4.3 - jest-worker: ^29.4.3 - slash: ^3.0.0 - string-length: ^4.0.1 - strip-ansi: ^6.0.0 - v8-to-istanbul: ^9.0.1 - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - checksum: 7aa2e429c915bd96c3334962addd69d2bbf52065725757ddde26b293f8c4420a1e8c65363cc3e1e5ec89100a5273ccd3771bec58325a2cc0d97afdc81995073a - languageName: node - linkType: hard - "@jest/schemas@npm:^29.4.3": version: 29.4.3 resolution: "@jest/schemas@npm:29.4.3" @@ -3272,41 +2329,6 @@ __metadata: languageName: node linkType: hard -"@jest/source-map@npm:^29.4.3": - version: 29.4.3 - resolution: "@jest/source-map@npm:29.4.3" - dependencies: - "@jridgewell/trace-mapping": ^0.3.15 - callsites: ^3.0.0 - graceful-fs: ^4.2.9 - checksum: 2301d225145f8123540c0be073f35a80fd26a2f5e59550fd68525d8cea580fb896d12bf65106591ffb7366a8a19790076dbebc70e0f5e6ceb51f81827ed1f89c - languageName: node - linkType: hard - -"@jest/test-result@npm:^29.4.3": - version: 29.4.3 - resolution: "@jest/test-result@npm:29.4.3" - dependencies: - "@jest/console": ^29.4.3 - "@jest/types": ^29.4.3 - "@types/istanbul-lib-coverage": ^2.0.0 - collect-v8-coverage: ^1.0.0 - checksum: 164f102b96619ec283c2c39e208b8048e4674f75bf3c3a4f2e95048ae0f9226105add684b25f10d286d91c221625f877e2c1cfc3da46c42d7e1804da239318cb - languageName: node - linkType: hard - -"@jest/test-sequencer@npm:^29.4.3": - version: 29.4.3 - resolution: "@jest/test-sequencer@npm:29.4.3" - dependencies: - "@jest/test-result": ^29.4.3 - graceful-fs: ^4.2.9 - jest-haste-map: ^29.4.3 - slash: ^3.0.0 - checksum: 145e1fa9379e5be3587bde6d585b8aee5cf4442b06926928a87e9aec7de5be91b581711d627c6ca13144d244fe05e5d248c13b366b51bedc404f9dcfbfd79e9e - languageName: node - linkType: hard - "@jest/transform@npm:^29.4.3": version: 29.4.3 resolution: "@jest/transform@npm:29.4.3" @@ -3330,21 +2352,7 @@ __metadata: languageName: node linkType: hard -"@jest/types@npm:^29.4.3": - version: 29.4.3 - resolution: "@jest/types@npm:29.4.3" - dependencies: - "@jest/schemas": ^29.4.3 - "@types/istanbul-lib-coverage": ^2.0.0 - "@types/istanbul-reports": ^3.0.0 - "@types/node": "*" - "@types/yargs": ^17.0.8 - chalk: ^4.0.0 - checksum: 1756f4149d360f98567f56f434144f7af23ed49a2c42889261a314df6b6654c2de70af618fb2ee0ee39cadaf10835b885845557184509503646c9cb9dcc02bac - languageName: node - linkType: hard - -"@jest/types@npm:^29.5.0": +"@jest/types@npm:^29.4.3, @jest/types@npm:^29.5.0": version: 29.5.0 resolution: "@jest/types@npm:29.5.0" dependencies: @@ -3358,28 +2366,17 @@ __metadata: languageName: node linkType: hard -"@jridgewell/gen-mapping@npm:^0.1.0": - version: 0.1.1 - resolution: "@jridgewell/gen-mapping@npm:0.1.1" - dependencies: - "@jridgewell/set-array": ^1.0.0 - "@jridgewell/sourcemap-codec": ^1.4.10 - checksum: 3bcc21fe786de6ffbf35c399a174faab05eb23ce6a03e8769569de28abbf4facc2db36a9ddb0150545ae23a8d35a7cf7237b2aa9e9356a7c626fb4698287d5cc - languageName: node - linkType: hard - -"@jridgewell/gen-mapping@npm:^0.3.0, @jridgewell/gen-mapping@npm:^0.3.2": - version: 0.3.2 - resolution: "@jridgewell/gen-mapping@npm:0.3.2" +"@jridgewell/gen-mapping@npm:^0.1.0": + version: 0.1.1 + resolution: "@jridgewell/gen-mapping@npm:0.1.1" dependencies: - "@jridgewell/set-array": ^1.0.1 + "@jridgewell/set-array": ^1.0.0 "@jridgewell/sourcemap-codec": ^1.4.10 - "@jridgewell/trace-mapping": ^0.3.9 - checksum: 1832707a1c476afebe4d0fbbd4b9434fdb51a4c3e009ab1e9938648e21b7a97049fa6009393bdf05cab7504108413441df26d8a3c12193996e65493a4efb6882 + checksum: 3bcc21fe786de6ffbf35c399a174faab05eb23ce6a03e8769569de28abbf4facc2db36a9ddb0150545ae23a8d35a7cf7237b2aa9e9356a7c626fb4698287d5cc languageName: node linkType: hard -"@jridgewell/gen-mapping@npm:^0.3.5": +"@jridgewell/gen-mapping@npm:^0.3.0, @jridgewell/gen-mapping@npm:^0.3.5": version: 0.3.5 resolution: "@jridgewell/gen-mapping@npm:0.3.5" dependencies: @@ -3390,13 +2387,6 @@ __metadata: languageName: node linkType: hard -"@jridgewell/resolve-uri@npm:3.1.0": - version: 3.1.0 - resolution: "@jridgewell/resolve-uri@npm:3.1.0" - checksum: b5ceaaf9a110fcb2780d1d8f8d4a0bfd216702f31c988d8042e5f8fbe353c55d9b0f55a1733afdc64806f8e79c485d2464680ac48a0d9fcadb9548ee6b81d267 - languageName: node - linkType: hard - "@jridgewell/resolve-uri@npm:^3.1.0": version: 3.1.2 resolution: "@jridgewell/resolve-uri@npm:3.1.2" @@ -3404,14 +2394,7 @@ __metadata: languageName: node linkType: hard -"@jridgewell/set-array@npm:^1.0.0, @jridgewell/set-array@npm:^1.0.1": - version: 1.1.2 - resolution: "@jridgewell/set-array@npm:1.1.2" - checksum: 69a84d5980385f396ff60a175f7177af0b8da4ddb81824cb7016a9ef914eee9806c72b6b65942003c63f7983d4f39a5c6c27185bbca88eb4690b62075602e28e - languageName: node - linkType: hard - -"@jridgewell/set-array@npm:^1.2.1": +"@jridgewell/set-array@npm:^1.0.0, @jridgewell/set-array@npm:^1.2.1": version: 1.2.1 resolution: "@jridgewell/set-array@npm:1.2.1" checksum: 832e513a85a588f8ed4f27d1279420d8547743cc37fcad5a5a76fc74bb895b013dfe614d0eed9cb860048e6546b798f8f2652020b4b2ba0561b05caa8c654b10 @@ -3428,31 +2411,14 @@ __metadata: languageName: node linkType: hard -"@jridgewell/sourcemap-codec@npm:1.4.14, @jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.13": - version: 1.4.14 - resolution: "@jridgewell/sourcemap-codec@npm:1.4.14" - checksum: 61100637b6d173d3ba786a5dff019e1a74b1f394f323c1fee337ff390239f053b87266c7a948777f4b1ee68c01a8ad0ab61e5ff4abb5a012a0b091bec391ab97 - languageName: node - linkType: hard - -"@jridgewell/sourcemap-codec@npm:^1.4.14, @jridgewell/sourcemap-codec@npm:^1.4.15": - version: 1.4.15 - resolution: "@jridgewell/sourcemap-codec@npm:1.4.15" - checksum: b881c7e503db3fc7f3c1f35a1dd2655a188cc51a3612d76efc8a6eb74728bef5606e6758ee77423e564092b4a518aba569bbb21c9bac5ab7a35b0c6ae7e344c8 - languageName: node - linkType: hard - -"@jridgewell/trace-mapping@npm:^0.3.12, @jridgewell/trace-mapping@npm:^0.3.15, @jridgewell/trace-mapping@npm:^0.3.17, @jridgewell/trace-mapping@npm:^0.3.9": - version: 0.3.17 - resolution: "@jridgewell/trace-mapping@npm:0.3.17" - dependencies: - "@jridgewell/resolve-uri": 3.1.0 - "@jridgewell/sourcemap-codec": 1.4.14 - checksum: 9d703b859cff5cd83b7308fd457a431387db5db96bd781a63bf48e183418dd9d3d44e76b9e4ae13237f6abeeb25d739ec9215c1d5bfdd08f66f750a50074a339 +"@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.13, @jridgewell/sourcemap-codec@npm:^1.4.14, @jridgewell/sourcemap-codec@npm:^1.5.0": + version: 1.5.0 + resolution: "@jridgewell/sourcemap-codec@npm:1.5.0" + checksum: 05df4f2538b3b0f998ea4c1cd34574d0feba216fa5d4ccaef0187d12abf82eafe6021cec8b49f9bb4d90f2ba4582ccc581e72986a5fcf4176ae0cfeb04cf52ec languageName: node linkType: hard -"@jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25": +"@jridgewell/trace-mapping@npm:^0.3.15, @jridgewell/trace-mapping@npm:^0.3.17, @jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25, @jridgewell/trace-mapping@npm:^0.3.9": version: 0.3.25 resolution: "@jridgewell/trace-mapping@npm:0.3.25" dependencies: @@ -4414,23 +3380,7 @@ __metadata: languageName: node linkType: hard -"@rollup/pluginutils@npm:^5.0.1": - version: 5.0.2 - resolution: "@rollup/pluginutils@npm:5.0.2" - dependencies: - "@types/estree": ^1.0.0 - estree-walker: ^2.0.2 - picomatch: ^2.3.1 - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0 - peerDependenciesMeta: - rollup: - optional: true - checksum: edea15e543bebc7dcac3b0ac8bc7b8e8e6dbd46e2864dbe5dd28072de1fbd5b0e10d545a610c0edaa178e8a7ac432e2a2a52e547ece1308471412caba47db8ce - languageName: node - linkType: hard - -"@rollup/pluginutils@npm:^5.0.3": +"@rollup/pluginutils@npm:^5.0.1, @rollup/pluginutils@npm:^5.0.3": version: 5.0.3 resolution: "@rollup/pluginutils@npm:5.0.3" dependencies: @@ -4446,6 +3396,118 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-android-arm-eabi@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-android-arm-eabi@npm:4.22.4" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + +"@rollup/rollup-android-arm64@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-android-arm64@npm:4.22.4" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-darwin-arm64@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-darwin-arm64@npm:4.22.4" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-darwin-x64@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-darwin-x64@npm:4.22.4" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm-gnueabihf@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.22.4" + conditions: os=linux & cpu=arm & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm-musleabihf@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.22.4" + conditions: os=linux & cpu=arm & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm64-gnu@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.22.4" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm64-musl@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-linux-arm64-musl@npm:4.22.4" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-linux-powerpc64le-gnu@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.22.4" + conditions: os=linux & cpu=ppc64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-riscv64-gnu@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.22.4" + conditions: os=linux & cpu=riscv64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-s390x-gnu@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.22.4" + conditions: os=linux & cpu=s390x & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-x64-gnu@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-linux-x64-gnu@npm:4.22.4" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-x64-musl@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-linux-x64-musl@npm:4.22.4" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-win32-arm64-msvc@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.22.4" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-win32-ia32-msvc@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.22.4" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@rollup/rollup-win32-x64-msvc@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-win32-x64-msvc@npm:4.22.4" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@sinclair/typebox@npm:^0.25.16": version: 0.25.24 resolution: "@sinclair/typebox@npm:0.25.24" @@ -4725,20 +3787,7 @@ __metadata: languageName: node linkType: hard -"@types/babel__core@npm:*, @types/babel__core@npm:^7.1.14": - version: 7.20.0 - resolution: "@types/babel__core@npm:7.20.0" - dependencies: - "@babel/parser": ^7.20.7 - "@babel/types": ^7.20.7 - "@types/babel__generator": "*" - "@types/babel__template": "*" - "@types/babel__traverse": "*" - checksum: 49b601a0a7637f1f387442c8156bd086cfd10ff4b82b0e1994e73a6396643b5435366fb33d6b604eade8467cca594ef97adcbc412aede90bb112ebe88d0ad6df - languageName: node - linkType: hard - -"@types/babel__core@npm:^7.1.18": +"@types/babel__core@npm:*, @types/babel__core@npm:^7.1.14, @types/babel__core@npm:^7.1.18": version: 7.20.1 resolution: "@types/babel__core@npm:7.20.1" dependencies: @@ -4823,10 +3872,10 @@ __metadata: languageName: node linkType: hard -"@types/estree@npm:*, @types/estree@npm:^1.0.0": - version: 1.0.0 - resolution: "@types/estree@npm:1.0.0" - checksum: 910d97fb7092c6738d30a7430ae4786a38542023c6302b95d46f49420b797f21619cdde11fa92b338366268795884111c2eb10356e4bd2c8ad5b92941e9e6443 +"@types/estree@npm:*, @types/estree@npm:1.0.5, @types/estree@npm:^1.0.0": + version: 1.0.5 + resolution: "@types/estree@npm:1.0.5" + checksum: dd8b5bed28e6213b7acd0fb665a84e693554d850b0df423ac8076cc3ad5823a6bc26b0251d080bdc545af83179ede51dd3f6fa78cad2c46ed1f29624ddf3e41a languageName: node linkType: hard @@ -4846,7 +3895,7 @@ __metadata: languageName: node linkType: hard -"@types/istanbul-lib-coverage@npm:*, @types/istanbul-lib-coverage@npm:^2.0.0, @types/istanbul-lib-coverage@npm:^2.0.1": +"@types/istanbul-lib-coverage@npm:*, @types/istanbul-lib-coverage@npm:^2.0.0": version: 2.0.4 resolution: "@types/istanbul-lib-coverage@npm:2.0.4" checksum: a25d7589ee65c94d31464c16b72a9dc81dfa0bea9d3e105ae03882d616e2a0712a9c101a599ec482d297c3591e16336962878cb3eb1a0a62d5b76d277a890ce7 @@ -4871,27 +3920,6 @@ __metadata: languageName: node linkType: hard -"@types/jest@npm:^29.4.0": - version: 29.4.0 - resolution: "@types/jest@npm:29.4.0" - dependencies: - expect: ^29.0.0 - pretty-format: ^29.0.0 - checksum: 23760282362a252e6690314584d83a47512d4cd61663e957ed3398ecf98195fe931c45606ee2f9def12f8ed7d8aa102d492ec42d26facdaf8b78094a31e6568e - languageName: node - linkType: hard - -"@types/jsdom@npm:^20.0.0": - version: 20.0.1 - resolution: "@types/jsdom@npm:20.0.1" - dependencies: - "@types/node": "*" - "@types/tough-cookie": "*" - parse5: ^7.0.0 - checksum: d55402c5256ef451f93a6e3d3881f98339fe73a5ac2030588df056d6835df8367b5a857b48d27528289057e26dcdd3f502edc00cb877c79174cb3a4c7f2198c1 - languageName: node - linkType: hard - "@types/json-schema@npm:*, @types/json-schema@npm:^7.0.7, @types/json-schema@npm:^7.0.8, @types/json-schema@npm:^7.0.9": version: 7.0.11 resolution: "@types/json-schema@npm:7.0.11" @@ -4938,14 +3966,7 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:*": - version: 18.11.18 - resolution: "@types/node@npm:18.11.18" - checksum: 03f17f9480f8d775c8a72da5ea7e9383db5f6d85aa5fefde90dd953a1449bd5e4ffde376f139da4f3744b4c83942166d2a7603969a6f8ea826edfb16e6e3b49d - languageName: node - linkType: hard - -"@types/node@npm:20.14.8": +"@types/node@npm:*, @types/node@npm:20.14.8": version: 20.14.8 resolution: "@types/node@npm:20.14.8" dependencies: @@ -4975,13 +3996,6 @@ __metadata: languageName: node linkType: hard -"@types/prettier@npm:^2.1.5": - version: 2.7.2 - resolution: "@types/prettier@npm:2.7.2" - checksum: b47d76a5252265f8d25dd2fe2a5a61dc43ba0e6a96ffdd00c594cb4fd74c1982c2e346497e3472805d97915407a09423804cc2110a0b8e1b22cffcab246479b7 - languageName: node - linkType: hard - "@types/prop-types@npm:*": version: 15.7.5 resolution: "@types/prop-types@npm:15.7.5" @@ -5046,13 +4060,6 @@ __metadata: languageName: node linkType: hard -"@types/tough-cookie@npm:*": - version: 4.0.2 - resolution: "@types/tough-cookie@npm:4.0.2" - checksum: e055556ffdaa39ad85ede0af192c93f93f986f4bd9e9426efdc2948e3e2632db3a4a584d4937dbf6d7620527419bc99e6182d3daf2b08685e710f2eda5291905 - languageName: node - linkType: hard - "@types/yargs-parser@npm:*": version: 21.0.0 resolution: "@types/yargs-parser@npm:21.0.0" @@ -5251,6 +4258,88 @@ __metadata: languageName: node linkType: hard +"@vitest/expect@npm:2.1.1": + version: 2.1.1 + resolution: "@vitest/expect@npm:2.1.1" + dependencies: + "@vitest/spy": 2.1.1 + "@vitest/utils": 2.1.1 + chai: ^5.1.1 + tinyrainbow: ^1.2.0 + checksum: d86bdd36c6968ca2745767e1bc03db4f69cc193534f6d92a4a1f4e12166b37b9184cfd35d1ff06a9ffce1c5bf906b3640cbdf8ff2d345a0594a0094aa39c9d1a + languageName: node + linkType: hard + +"@vitest/mocker@npm:2.1.1": + version: 2.1.1 + resolution: "@vitest/mocker@npm:2.1.1" + dependencies: + "@vitest/spy": ^2.1.0-beta.1 + estree-walker: ^3.0.3 + magic-string: ^0.30.11 + peerDependencies: + "@vitest/spy": 2.1.1 + msw: ^2.3.5 + vite: ^5.0.0 + peerDependenciesMeta: + msw: + optional: true + vite: + optional: true + checksum: d797428efe30d7b1e2183a3827e2423a70183053f570a5872a5533974c21fb5390e5db9b33fc42484bd68ed5d9342c7a0be52b79799eb21d7714fbed2bde2a7e + languageName: node + linkType: hard + +"@vitest/pretty-format@npm:2.1.1, @vitest/pretty-format@npm:^2.1.1": + version: 2.1.1 + resolution: "@vitest/pretty-format@npm:2.1.1" + dependencies: + tinyrainbow: ^1.2.0 + checksum: acc327b4d097719adf01762c22fa6aa59536cef916b7f1e1cbb91179f513ac056aaf023ba07fd86966a241c3157ee8a9c99b52f6899ee61bc1028c7f0117ca14 + languageName: node + linkType: hard + +"@vitest/runner@npm:2.1.1": + version: 2.1.1 + resolution: "@vitest/runner@npm:2.1.1" + dependencies: + "@vitest/utils": 2.1.1 + pathe: ^1.1.2 + checksum: b2c82fc364574bb61475c4197c7facff179d199d6ee2fbe297518255686c301606edf9180ead050d112bb5f12901ba6d86405bf8d3ea3dd5b10cedc46f4d1beb + languageName: node + linkType: hard + +"@vitest/snapshot@npm:2.1.1": + version: 2.1.1 + resolution: "@vitest/snapshot@npm:2.1.1" + dependencies: + "@vitest/pretty-format": 2.1.1 + magic-string: ^0.30.11 + pathe: ^1.1.2 + checksum: d913fa14430d02e38d9c6a14326658be4ce871c8df82f9aa2f33f7c7ac6ab1a341a7b43585d72e8e159482578567865beffe561da218a18ee10110ce9008e0e5 + languageName: node + linkType: hard + +"@vitest/spy@npm:2.1.1, @vitest/spy@npm:^2.1.0-beta.1": + version: 2.1.1 + resolution: "@vitest/spy@npm:2.1.1" + dependencies: + tinyspy: ^3.0.0 + checksum: 87d680dc905b80ced10a5ae8a019772b6b31b7cd928a21ae7043cd06b163ff39eee37dbb3a8033d80e1496200b2990aa13600fccae9b3bf234a65485a4f3f71b + languageName: node + linkType: hard + +"@vitest/utils@npm:2.1.1": + version: 2.1.1 + resolution: "@vitest/utils@npm:2.1.1" + dependencies: + "@vitest/pretty-format": 2.1.1 + loupe: ^3.1.1 + tinyrainbow: ^1.2.0 + checksum: 13ffb30e17fcdcb8bc0c3c64db5eca9b670da4f80fd6bab4a9d387f6a534886fb447e45274db44375703d909aab9ebe123accd8d7159f90a8c9852e7f758e420 + languageName: node + linkType: hard + "@vue/compiler-core@npm:3.2.47": version: 3.2.47 resolution: "@vue/compiler-core@npm:3.2.47" @@ -5526,7 +4615,7 @@ __metadata: languageName: node linkType: hard -"abab@npm:^2.0.3, abab@npm:^2.0.5, abab@npm:^2.0.6": +"abab@npm:^2.0.3, abab@npm:^2.0.5": version: 2.0.6 resolution: "abab@npm:2.0.6" checksum: 6ffc1af4ff315066c62600123990d87551ceb0aafa01e6539da77b0f5987ac7019466780bf480f1787576d4385e3690c81ccc37cfda12819bf510b8ab47e5a3e @@ -5550,16 +4639,6 @@ __metadata: languageName: node linkType: hard -"acorn-globals@npm:^7.0.0": - version: 7.0.1 - resolution: "acorn-globals@npm:7.0.1" - dependencies: - acorn: ^8.1.0 - acorn-walk: ^8.0.2 - checksum: 2a2998a547af6d0db5f0cdb90acaa7c3cbca6709010e02121fb8b8617c0fbd8bab0b869579903fde358ac78454356a14fadcc1a672ecb97b04b1c2ccba955ce8 - languageName: node - linkType: hard - "acorn-import-assertions@npm:^1.7.6": version: 1.8.0 resolution: "acorn-import-assertions@npm:1.8.0" @@ -5585,13 +4664,6 @@ __metadata: languageName: node linkType: hard -"acorn-walk@npm:^8.0.2": - version: 8.2.0 - resolution: "acorn-walk@npm:8.2.0" - checksum: 1715e76c01dd7b2d4ca472f9c58968516a4899378a63ad5b6c2d668bba8da21a71976c14ec5f5b75f887b6317c4ae0b897ab141c831d741dc76024d8745f1ad1 - languageName: node - linkType: hard - "acorn@npm:^7.1.1, acorn@npm:^7.4.0": version: 7.4.1 resolution: "acorn@npm:7.4.1" @@ -5601,16 +4673,7 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^8.1.0, acorn@npm:^8.2.4, acorn@npm:^8.5.0, acorn@npm:^8.7.1, acorn@npm:^8.8.1": - version: 8.8.2 - resolution: "acorn@npm:8.8.2" - bin: - acorn: bin/acorn - checksum: f790b99a1bf63ef160c967e23c46feea7787e531292bb827126334612c234ed489a0dc2c7ba33156416f0ffa8d25bf2b0fdb7f35c2ba60eb3e960572bece4001 - languageName: node - linkType: hard - -"acorn@npm:^8.9.0": +"acorn@npm:^8.2.4, acorn@npm:^8.5.0, acorn@npm:^8.7.1, acorn@npm:^8.9.0": version: 8.10.0 resolution: "acorn@npm:8.10.0" bin: @@ -5635,6 +4698,15 @@ __metadata: languageName: node linkType: hard +"agent-base@npm:^7.0.2, agent-base@npm:^7.1.0": + version: 7.1.1 + resolution: "agent-base@npm:7.1.1" + dependencies: + debug: ^4.3.4 + checksum: 51c158769c5c051482f9ca2e6e1ec085ac72b5a418a9b31b4e82fe6c0a6699adb94c1c42d246699a587b3335215037091c79e0de512c516f73b6ea844202f037 + languageName: node + linkType: hard + "agentkeepalive@npm:^4.2.1": version: 4.2.1 resolution: "agentkeepalive@npm:4.2.1" @@ -5945,6 +5017,13 @@ __metadata: languageName: node linkType: hard +"assertion-error@npm:^2.0.1": + version: 2.0.1 + resolution: "assertion-error@npm:2.0.1" + checksum: a0789dd882211b87116e81e2648ccb7f60340b34f19877dd020b39ebb4714e475eb943e14ba3e22201c221ef6645b7bfe10297e76b6ac95b48a9898c1211ce66 + languageName: node + linkType: hard + "astral-regex@npm:^2.0.0": version: 2.0.0 resolution: "astral-regex@npm:2.0.0" @@ -6241,49 +5320,7 @@ __metadata: languageName: node linkType: hard -"browserslist@npm:^4.14.5": - version: 4.21.5 - resolution: "browserslist@npm:4.21.5" - dependencies: - caniuse-lite: ^1.0.30001449 - electron-to-chromium: ^1.4.284 - node-releases: ^2.0.8 - update-browserslist-db: ^1.0.10 - bin: - browserslist: cli.js - checksum: 9755986b22e73a6a1497fd8797aedd88e04270be33ce66ed5d85a1c8a798292a65e222b0f251bafa1c2522261e237d73b08b58689d4920a607e5a53d56dc4706 - languageName: node - linkType: hard - -"browserslist@npm:^4.21.3, browserslist@npm:^4.21.4": - version: 4.21.4 - resolution: "browserslist@npm:4.21.4" - dependencies: - caniuse-lite: ^1.0.30001400 - electron-to-chromium: ^1.4.251 - node-releases: ^2.0.6 - update-browserslist-db: ^1.0.9 - bin: - browserslist: cli.js - checksum: 4af3793704dbb4615bcd29059ab472344dc7961c8680aa6c4bb84f05340e14038d06a5aead58724eae69455b8fade8b8c69f1638016e87e5578969d74c078b79 - languageName: node - linkType: hard - -"browserslist@npm:^4.21.9": - version: 4.21.10 - resolution: "browserslist@npm:4.21.10" - dependencies: - caniuse-lite: ^1.0.30001517 - electron-to-chromium: ^1.4.477 - node-releases: ^2.0.13 - update-browserslist-db: ^1.0.11 - bin: - browserslist: cli.js - checksum: 1e27c0f111a35d1dd0e8fc2c61781b0daefabc2c9471b0b10537ce54843014bceb2a1ce4571af1a82b2bf1e6e6e05d38865916689a158f03bc2c7a4ec2577db8 - languageName: node - linkType: hard - -"browserslist@npm:^4.22.2": +"browserslist@npm:^4.14.5, browserslist@npm:^4.21.4, browserslist@npm:^4.22.2": version: 4.23.1 resolution: "browserslist@npm:4.23.1" dependencies: @@ -6369,6 +5406,13 @@ __metadata: languageName: node linkType: hard +"cac@npm:^6.7.14": + version: 6.7.14 + resolution: "cac@npm:6.7.14" + checksum: 45a2496a9443abbe7f52a49b22fbe51b1905eff46e03fd5e6c98e3f85077be3f8949685a1849b1a9cd2bc3e5567dfebcf64f01ce01847baf918f1b37c839791a + languageName: node + linkType: hard + "cacache@npm:^16.0.0, cacache@npm:^16.0.6, cacache@npm:^16.1.0": version: 16.1.3 resolution: "cacache@npm:16.1.3" @@ -6437,27 +5481,6 @@ __metadata: languageName: node linkType: hard -"caniuse-lite@npm:^1.0.30001400": - version: 1.0.30001447 - resolution: "caniuse-lite@npm:1.0.30001447" - checksum: b45ae1c4f2df2fb9ad71dc543b1d71c00b125c1aea1ffa25086fe4bee6c17163222dfaa6c0b8488e403b801f6550889f712d1624ba000a7acb8538a62c738c56 - languageName: node - linkType: hard - -"caniuse-lite@npm:^1.0.30001449": - version: 1.0.30001466 - resolution: "caniuse-lite@npm:1.0.30001466" - checksum: d81d0801f72162ebb7edb222cb48702f351e1a2d6acc9f340913f5b07e28c2105d1d2de9f0633c9b89e1aa1cd14f5d9154e270bf7b61296a7209745b32bdb01c - languageName: node - linkType: hard - -"caniuse-lite@npm:^1.0.30001517": - version: 1.0.30001522 - resolution: "caniuse-lite@npm:1.0.30001522" - checksum: 56e3551c02ae595085114073cf242f7d9d54d32255c80893ca9098a44f44fc6eef353936f234f31c7f4cb894dd2b6c9c4626e30649ee29e04d70aa127eeefeb0 - languageName: node - linkType: hard - "caniuse-lite@npm:^1.0.30001629": version: 1.0.30001640 resolution: "caniuse-lite@npm:1.0.30001640" @@ -6472,6 +5495,19 @@ __metadata: languageName: node linkType: hard +"chai@npm:^5.1.1": + version: 5.1.1 + resolution: "chai@npm:5.1.1" + dependencies: + assertion-error: ^2.0.1 + check-error: ^2.1.1 + deep-eql: ^5.0.1 + loupe: ^3.1.0 + pathval: ^2.0.0 + checksum: 1e0a5e1b5febdfa8ceb97b9aff608286861ecb86533863119b2f39f07c08fb59f3c1791ab554947f009b9d71d509b9e4e734fb12133cb81f231c2c2ee7c1e738 + languageName: node + linkType: hard + "chalk@npm:4.1.0": version: 4.1.0 resolution: "chalk@npm:4.1.0" @@ -6482,7 +5518,7 @@ __metadata: languageName: node linkType: hard -"chalk@npm:^2.0.0, chalk@npm:^2.4.2": +"chalk@npm:^2.4.2": version: 2.4.2 resolution: "chalk@npm:2.4.2" dependencies: @@ -6510,13 +5546,6 @@ __metadata: languageName: node linkType: hard -"char-regex@npm:^1.0.2": - version: 1.0.2 - resolution: "char-regex@npm:1.0.2" - checksum: b563e4b6039b15213114626621e7a3d12f31008bdce20f9c741d69987f62aeaace7ec30f6018890ad77b2e9b4d95324c9f5acfca58a9441e3b1dcdd1e2525d17 - languageName: node - linkType: hard - "chardet@npm:^0.7.0": version: 0.7.0 resolution: "chardet@npm:0.7.0" @@ -6524,6 +5553,13 @@ __metadata: languageName: node linkType: hard +"check-error@npm:^2.1.1": + version: 2.1.1 + resolution: "check-error@npm:2.1.1" + checksum: d785ed17b1d4a4796b6e75c765a9a290098cf52ff9728ce0756e8ffd4293d2e419dd30c67200aee34202463b474306913f2fcfaf1890641026d9fc6966fea27a + languageName: node + linkType: hard + "chokidar@npm:3.5.1": version: 3.5.1 resolution: "chokidar@npm:3.5.1" @@ -6599,13 +5635,6 @@ __metadata: languageName: node linkType: hard -"cjs-module-lexer@npm:^1.0.0": - version: 1.2.2 - resolution: "cjs-module-lexer@npm:1.2.2" - checksum: 977f3f042bd4f08e368c890d91eecfbc4f91da0bc009a3c557bc4dfbf32022ad1141244ac1178d44de70fc9f3dea7add7cd9a658a34b9fae98a55d8f92331ce5 - languageName: node - linkType: hard - "clean-stack@npm:^2.0.0": version: 2.2.0 resolution: "clean-stack@npm:2.2.0" @@ -6731,13 +5760,6 @@ __metadata: languageName: node linkType: hard -"co@npm:^4.6.0": - version: 4.6.0 - resolution: "co@npm:4.6.0" - checksum: 5210d9223010eb95b29df06a91116f2cf7c8e0748a9013ed853b53f362ea0e822f1e5bb054fb3cefc645239a4cf966af1f6133a3b43f40d591f3b68ed6cf0510 - languageName: node - linkType: hard - "code-point-at@npm:^1.0.0": version: 1.1.0 resolution: "code-point-at@npm:1.1.0" @@ -6745,13 +5767,6 @@ __metadata: languageName: node linkType: hard -"collect-v8-coverage@npm:^1.0.0": - version: 1.0.1 - resolution: "collect-v8-coverage@npm:1.0.1" - checksum: 4efe0a1fccd517b65478a2364b33dadd0a43fc92a56f59aaece9b6186fe5177b2de471253587de7c91516f07c7268c2f6770b6cbcffc0e0ece353b766ec87e55 - languageName: node - linkType: hard - "color-convert@npm:^1.9.0": version: 1.9.3 resolution: "color-convert@npm:1.9.3" @@ -7028,13 +6043,6 @@ __metadata: languageName: node linkType: hard -"convert-source-map@npm:^1.6.0, convert-source-map@npm:^1.7.0": - version: 1.9.0 - resolution: "convert-source-map@npm:1.9.0" - checksum: dc55a1f28ddd0e9485ef13565f8f756b342f9a46c4ae18b843fe3c30c675d058d6a4823eff86d472f187b176f0adf51ea7b69ea38be34be4a63cbbf91b0593c8 - languageName: node - linkType: hard - "convert-source-map@npm:^2.0.0": version: 2.0.0 resolution: "convert-source-map@npm:2.0.0" @@ -7154,13 +6162,6 @@ __metadata: languageName: node linkType: hard -"cssom@npm:^0.5.0": - version: 0.5.0 - resolution: "cssom@npm:0.5.0" - checksum: 823471aa30091c59e0a305927c30e7768939b6af70405808f8d2ce1ca778cddcb24722717392438329d1691f9a87cb0183b64b8d779b56a961546d54854fde01 - languageName: node - linkType: hard - "cssom@npm:~0.3.6": version: 0.3.8 resolution: "cssom@npm:0.3.8" @@ -7177,6 +6178,15 @@ __metadata: languageName: node linkType: hard +"cssstyle@npm:^4.1.0": + version: 4.1.0 + resolution: "cssstyle@npm:4.1.0" + dependencies: + rrweb-cssom: ^0.7.1 + checksum: a8f5746430c42347e76dc830548f3a296882e42a90af188ae44e4c1a4131aec246b0b6c8562e3e6e4fa0ff14aeee5cd14a0e2fe5a7105dcf39f98eb70d16b634 + languageName: node + linkType: hard + "csstype@npm:^3.0.2": version: 3.1.1 resolution: "csstype@npm:3.1.1" @@ -7211,14 +6221,13 @@ __metadata: languageName: node linkType: hard -"data-urls@npm:^3.0.2": - version: 3.0.2 - resolution: "data-urls@npm:3.0.2" +"data-urls@npm:^5.0.0": + version: 5.0.0 + resolution: "data-urls@npm:5.0.0" dependencies: - abab: ^2.0.6 - whatwg-mimetype: ^3.0.0 - whatwg-url: ^11.0.0 - checksum: 033fc3dd0fba6d24bc9a024ddcf9923691dd24f90a3d26f6545d6a2f71ec6956f93462f2cdf2183cc46f10dc01ed3bcb36731a8208456eb1a08147e571fe2a76 + whatwg-mimetype: ^4.0.0 + whatwg-url: ^14.0.0 + checksum: 5c40568c31b02641a70204ff233bc4e42d33717485d074244a98661e5f2a1e80e38fe05a5755dfaf2ee549f2ab509d6a3af2a85f4b2ad2c984e5d176695eaf46 languageName: node linkType: hard @@ -7236,15 +6245,15 @@ __metadata: languageName: node linkType: hard -"debug@npm:4, debug@npm:^4.0.1, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.3, debug@npm:^4.3.4": - version: 4.3.4 - resolution: "debug@npm:4.3.4" +"debug@npm:4, debug@npm:^4.0.1, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.3, debug@npm:^4.3.4, debug@npm:^4.3.6": + version: 4.3.7 + resolution: "debug@npm:4.3.7" dependencies: - ms: 2.1.2 + ms: ^2.1.3 peerDependenciesMeta: supports-color: optional: true - checksum: 3dbad3f94ea64f34431a9cbf0bafb61853eda57bff2880036153438f50fb5a84f27683ba0d8e5426bf41a8c6ff03879488120cf5b3a761e77953169c0600a708 + checksum: 822d74e209cd910ef0802d261b150314bbcf36c582ccdbb3e70f0894823c17e49a50d3e66d96b633524263975ca16b6a833f3e3b7e030c157169a5fabac63160 languageName: node linkType: hard @@ -7281,7 +6290,7 @@ __metadata: languageName: node linkType: hard -"decimal.js@npm:^10.2.1, decimal.js@npm:^10.4.2": +"decimal.js@npm:^10.2.1, decimal.js@npm:^10.4.3": version: 10.4.3 resolution: "decimal.js@npm:10.4.3" checksum: 796404dcfa9d1dbfdc48870229d57f788b48c21c603c3f6554a1c17c10195fc1024de338b0cf9e1efe0c7c167eeb18f04548979bcc5fdfabebb7cc0ae3287bae @@ -7295,6 +6304,13 @@ __metadata: languageName: node linkType: hard +"deep-eql@npm:^5.0.1": + version: 5.0.2 + resolution: "deep-eql@npm:5.0.2" + checksum: 6aaaadb4c19cbce42e26b2bbe5bd92875f599d2602635dc97f0294bae48da79e89470aedee05f449e0ca8c65e9fd7e7872624d1933a1db02713d99c2ca8d1f24 + languageName: node + linkType: hard + "deep-equal@npm:^2.0.5": version: 2.2.1 resolution: "deep-equal@npm:2.2.1" @@ -7351,17 +6367,7 @@ __metadata: languageName: node linkType: hard -"define-properties@npm:^1.1.3, define-properties@npm:^1.1.4": - version: 1.1.4 - resolution: "define-properties@npm:1.1.4" - dependencies: - has-property-descriptors: ^1.0.0 - object-keys: ^1.1.1 - checksum: ce0aef3f9eb193562b5cfb79b2d2c86b6a109dfc9fdcb5f45d680631a1a908c06824ddcdb72b7573b54e26ace07f0a23420aaba0d5c627b34d2c1de8ef527e2b - languageName: node - linkType: hard - -"define-properties@npm:^1.2.0": +"define-properties@npm:^1.1.3, define-properties@npm:^1.1.4, define-properties@npm:^1.2.0": version: 1.2.0 resolution: "define-properties@npm:1.2.0" dependencies: @@ -7413,13 +6419,6 @@ __metadata: languageName: node linkType: hard -"detect-newline@npm:^3.0.0": - version: 3.1.0 - resolution: "detect-newline@npm:3.1.0" - checksum: ae6cd429c41ad01b164c59ea36f264a2c479598e61cba7c99da24175a7ab80ddf066420f2bec9a1c57a6bead411b4655ff15ad7d281c000a89791f48cbe939e7 - languageName: node - linkType: hard - "dezalgo@npm:^1.0.0": version: 1.0.4 resolution: "dezalgo@npm:1.0.4" @@ -7480,15 +6479,6 @@ __metadata: languageName: node linkType: hard -"domexception@npm:^4.0.0": - version: 4.0.0 - resolution: "domexception@npm:4.0.0" - dependencies: - webidl-conversions: ^7.0.0 - checksum: ddbc1268edf33a8ba02ccc596735ede80375ee0cf124b30d2f05df5b464ba78ef4f49889b6391df4a04954e63d42d5631c7fcf8b1c4f12bc531252977a5f13d5 - languageName: node - linkType: hard - "dot-prop@npm:6.0.1": version: 6.0.1 resolution: "dot-prop@npm:6.0.1" @@ -7549,27 +6539,6 @@ __metadata: languageName: node linkType: hard -"electron-to-chromium@npm:^1.4.251": - version: 1.4.284 - resolution: "electron-to-chromium@npm:1.4.284" - checksum: be496e9dca6509dbdbb54dc32146fc99f8eb716d28a7ee8ccd3eba0066561df36fc51418d8bd7cf5a5891810bf56c0def3418e74248f51ea4a843d423603d10a - languageName: node - linkType: hard - -"electron-to-chromium@npm:^1.4.284": - version: 1.4.328 - resolution: "electron-to-chromium@npm:1.4.328" - checksum: 82c1617a77e40ac4ca5011749318a2fee8f8c75f8b517fcff7602219c85fd97a9fab2d5a1353ea10fb7f9c7d18acb90c9ed58c2292256f81e2ffa42ee66c4b0b - languageName: node - linkType: hard - -"electron-to-chromium@npm:^1.4.477": - version: 1.4.500 - resolution: "electron-to-chromium@npm:1.4.500" - checksum: fdd56b7f27ccc0aba837614ba80741f20aaaf558dc4eceb1e9525bf5e6ca9010d02d5a9554adeed43506facc60602c1b162b66fbee93d52db3d279a4e1a135db - languageName: node - linkType: hard - "electron-to-chromium@npm:^1.4.796": version: 1.4.816 resolution: "electron-to-chromium@npm:1.4.816" @@ -7577,13 +6546,6 @@ __metadata: languageName: node linkType: hard -"emittery@npm:^0.13.1": - version: 0.13.1 - resolution: "emittery@npm:0.13.1" - checksum: 2b089ab6306f38feaabf4f6f02792f9ec85fc054fda79f44f6790e61bbf6bc4e1616afb9b232e0c5ec5289a8a452f79bfa6d905a6fd64e94b49981f0934001c6 - languageName: node - linkType: hard - "emoji-regex@npm:^8.0.0": version: 8.0.0 resolution: "emoji-regex@npm:8.0.0" @@ -8089,7 +7051,7 @@ __metadata: languageName: node linkType: hard -"esbuild@npm:^0.21.5": +"esbuild@npm:^0.21.3, esbuild@npm:^0.21.5": version: 0.21.5 resolution: "esbuild@npm:0.21.5" dependencies: @@ -8169,14 +7131,7 @@ __metadata: languageName: node linkType: hard -"escalade@npm:^3.1.1": - version: 3.1.1 - resolution: "escalade@npm:3.1.1" - checksum: a3e2a99f07acb74b3ad4989c48ca0c3140f69f923e56d0cba0526240ee470b91010f9d39001f2a4a313841d237ede70a729e92125191ba5d21e74b106800b133 - languageName: node - linkType: hard - -"escalade@npm:^3.1.2": +"escalade@npm:^3.1.1, escalade@npm:^3.1.2": version: 3.1.2 resolution: "escalade@npm:3.1.2" checksum: 1ec0977aa2772075493002bdbd549d595ff6e9393b1cb0d7d6fcaf78c750da0c158f180938365486f75cb69fba20294351caddfce1b46552a7b6c3cde52eaa02 @@ -8518,7 +7473,7 @@ __metadata: languageName: node linkType: hard -"esquery@npm:^1.0.1": +"esquery@npm:^1.0.1, esquery@npm:^1.4.0": version: 1.5.0 resolution: "esquery@npm:1.5.0" dependencies: @@ -8527,15 +7482,6 @@ __metadata: languageName: node linkType: hard -"esquery@npm:^1.4.0": - version: 1.4.0 - resolution: "esquery@npm:1.4.0" - dependencies: - estraverse: ^5.1.0 - checksum: a0807e17abd7fbe5fbd4fab673038d6d8a50675cdae6b04fbaa520c34581be0c5fa24582990e8acd8854f671dd291c78bb2efb9e0ed5b62f33bac4f9cf820210 - languageName: node - linkType: hard - "esrecurse@npm:^4.3.0": version: 4.3.0 resolution: "esrecurse@npm:4.3.0" @@ -8566,6 +7512,15 @@ __metadata: languageName: node linkType: hard +"estree-walker@npm:^3.0.3": + version: 3.0.3 + resolution: "estree-walker@npm:3.0.3" + dependencies: + "@types/estree": ^1.0.0 + checksum: a65728d5727b71de172c5df323385755a16c0fdab8234dc756c3854cfee343261ddfbb72a809a5660fac8c75d960bb3e21aa898c2d7e9b19bb298482ca58a3af + languageName: node + linkType: hard + "esutils@npm:^2.0.2": version: 2.0.3 resolution: "esutils@npm:2.0.3" @@ -8655,26 +7610,6 @@ __metadata: languageName: node linkType: hard -"exit@npm:^0.1.2": - version: 0.1.2 - resolution: "exit@npm:0.1.2" - checksum: abc407f07a875c3961e4781dfcb743b58d6c93de9ab263f4f8c9d23bb6da5f9b7764fc773f86b43dd88030444d5ab8abcb611cb680fba8ca075362b77114bba3 - languageName: node - linkType: hard - -"expect@npm:^29.0.0, expect@npm:^29.4.3": - version: 29.4.3 - resolution: "expect@npm:29.4.3" - dependencies: - "@jest/expect-utils": ^29.4.3 - jest-get-type: ^29.4.3 - jest-matcher-utils: ^29.4.3 - jest-message-util: ^29.4.3 - jest-util: ^29.4.3 - checksum: ff9dd8c50c0c6fd4b2b00f6dbd7ab0e2063fe1953be81a8c10ae1c005c7f5667ba452918e2efb055504b72b701a4f82575a081a0a7158efb16d87991b0366feb - languageName: node - linkType: hard - "extend@npm:~3.0.2": version: 3.0.2 resolution: "extend@npm:3.0.2" @@ -8727,20 +7662,7 @@ __metadata: languageName: node linkType: hard -"fast-glob@npm:^3.2.11, fast-glob@npm:^3.2.9": - version: 3.2.12 - resolution: "fast-glob@npm:3.2.12" - dependencies: - "@nodelib/fs.stat": ^2.0.2 - "@nodelib/fs.walk": ^1.2.3 - glob-parent: ^5.1.2 - merge2: ^1.3.0 - micromatch: ^4.0.4 - checksum: 0b1990f6ce831c7e28c4d505edcdaad8e27e88ab9fa65eedadb730438cfc7cde4910d6c975d6b7b8dc8a73da4773702ebcfcd6e3518e73938bb1383badfe01c2 - languageName: node - linkType: hard - -"fast-glob@npm:^3.3.0": +"fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.0": version: 3.3.1 resolution: "fast-glob@npm:3.3.1" dependencies: @@ -8963,18 +7885,7 @@ __metadata: languageName: node linkType: hard -"fs-extra@npm:^11.1.0": - version: 11.1.0 - resolution: "fs-extra@npm:11.1.0" - dependencies: - graceful-fs: ^4.2.0 - jsonfile: ^6.0.1 - universalify: ^2.0.0 - checksum: 5ca476103fa1f5ff4a9b3c4f331548f8a3c1881edaae323a4415d3153b5dc11dc6a981c8d1dd93eec8367ceee27b53f8bd27eecbbf66ffcdd04927510c171e7f - languageName: node - linkType: hard - -"fs-extra@npm:^11.1.1": +"fs-extra@npm:^11.1.0, fs-extra@npm:^11.1.1": version: 11.1.1 resolution: "fs-extra@npm:11.1.1" dependencies: @@ -9001,19 +7912,19 @@ __metadata: languageName: node linkType: hard -"fsevents@npm:^2.3.2, fsevents@npm:~2.3.1, fsevents@npm:~2.3.2": - version: 2.3.2 - resolution: "fsevents@npm:2.3.2" +"fsevents@npm:^2.3.2, fsevents@npm:~2.3.1, fsevents@npm:~2.3.2, fsevents@npm:~2.3.3": + version: 2.3.3 + resolution: "fsevents@npm:2.3.3" dependencies: node-gyp: latest - checksum: 97ade64e75091afee5265e6956cb72ba34db7819b4c3e94c431d4be2b19b8bb7a2d4116da417950c3425f17c8fe693d25e20212cac583ac1521ad066b77ae31f + checksum: 11e6ea6fea15e42461fc55b4b0e4a0a3c654faa567f1877dbd353f39156f69def97a69936d1746619d656c4b93de2238bf731f6085a03a50cabf287c9d024317 conditions: os=darwin languageName: node linkType: hard -"fsevents@patch:fsevents@^2.3.2#~builtin, fsevents@patch:fsevents@~2.3.1#~builtin, fsevents@patch:fsevents@~2.3.2#~builtin": - version: 2.3.2 - resolution: "fsevents@patch:fsevents@npm%3A2.3.2#~builtin::version=2.3.2&hash=df0bf1" +"fsevents@patch:fsevents@^2.3.2#~builtin, fsevents@patch:fsevents@~2.3.1#~builtin, fsevents@patch:fsevents@~2.3.2#~builtin, fsevents@patch:fsevents@~2.3.3#~builtin": + version: 2.3.3 + resolution: "fsevents@patch:fsevents@npm%3A2.3.3#~builtin::version=2.3.3&hash=df0bf1" dependencies: node-gyp: latest conditions: os=darwin @@ -9099,18 +8010,14 @@ __metadata: languageName: node linkType: hard -"get-intrinsic@npm:^1.0.2, get-intrinsic@npm:^1.1.1, get-intrinsic@npm:^1.1.3": - version: 1.2.0 - resolution: "get-intrinsic@npm:1.2.0" - dependencies: - function-bind: ^1.1.1 - has: ^1.0.3 - has-symbols: ^1.0.3 - checksum: 78fc0487b783f5c58cf2dccafc3ae656ee8d2d8062a8831ce4a95e7057af4587a1d4882246c033aca0a7b4965276f4802b45cc300338d1b77a73d3e3e3f4877d +"get-func-name@npm:^2.0.1": + version: 2.0.2 + resolution: "get-func-name@npm:2.0.2" + checksum: 3f62f4c23647de9d46e6f76d2b3eafe58933a9b3830c60669e4180d6c601ce1b4aa310ba8366143f55e52b139f992087a9f0647274e8745621fa2af7e0acf13b languageName: node linkType: hard -"get-intrinsic@npm:^1.2.0": +"get-intrinsic@npm:^1.0.2, get-intrinsic@npm:^1.1.1, get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.0": version: 1.2.1 resolution: "get-intrinsic@npm:1.2.1" dependencies: @@ -9374,20 +8281,7 @@ __metadata: languageName: node linkType: hard -"globby@npm:^13.1.2": - version: 13.1.3 - resolution: "globby@npm:13.1.3" - dependencies: - dir-glob: ^3.0.1 - fast-glob: ^3.2.11 - ignore: ^5.2.0 - merge2: ^1.4.1 - slash: ^4.0.0 - checksum: 93f06e02002cdf368f7e3d55bd59e7b00784c7cc8fe92c7ee5082cc7171ff6109fda45e1c97a80bb48bc811dedaf7843c7c9186f5f84bde4883ab630e13c43df - languageName: node - linkType: hard - -"globby@npm:^13.2.2": +"globby@npm:^13.1.2, globby@npm:^13.2.2": version: 13.2.2 resolution: "globby@npm:13.2.2" dependencies: @@ -9591,19 +8485,12 @@ __metadata: languageName: node linkType: hard -"html-encoding-sniffer@npm:^3.0.0": - version: 3.0.0 - resolution: "html-encoding-sniffer@npm:3.0.0" +"html-encoding-sniffer@npm:^4.0.0": + version: 4.0.0 + resolution: "html-encoding-sniffer@npm:4.0.0" dependencies: - whatwg-encoding: ^2.0.0 - checksum: 8d806aa00487e279e5ccb573366a951a9f68f65c90298eac9c3a2b440a7ffe46615aff2995a2f61c6746c639234e6179a97e18ca5ccbbf93d3725ef2099a4502 - languageName: node - linkType: hard - -"html-escaper@npm:^2.0.0": - version: 2.0.2 - resolution: "html-escaper@npm:2.0.2" - checksum: d2df2da3ad40ca9ee3a39c5cc6475ef67c8f83c234475f24d8e9ce0dc80a2c82df8e1d6fa78ddd1e9022a586ea1bd247a615e80a5cd9273d90111ddda7d9e974 + whatwg-encoding: ^3.1.1 + checksum: 3339b71dab2723f3159a56acf541ae90a408ce2d11169f00fe7e0c4663d31d6398c8a4408b504b4eec157444e47b084df09b3cb039c816660f0dd04846b8957d languageName: node linkType: hard @@ -9636,6 +8523,16 @@ __metadata: languageName: node linkType: hard +"http-proxy-agent@npm:^7.0.2": + version: 7.0.2 + resolution: "http-proxy-agent@npm:7.0.2" + dependencies: + agent-base: ^7.1.0 + debug: ^4.3.4 + checksum: 670858c8f8f3146db5889e1fa117630910101db601fff7d5a8aa637da0abedf68c899f03d3451cac2f83bcc4c3d2dabf339b3aa00ff8080571cceb02c3ce02f3 + languageName: node + linkType: hard + "http-signature@npm:~1.2.0": version: 1.2.0 resolution: "http-signature@npm:1.2.0" @@ -9647,7 +8544,7 @@ __metadata: languageName: node linkType: hard -"https-proxy-agent@npm:^5.0.0, https-proxy-agent@npm:^5.0.1": +"https-proxy-agent@npm:^5.0.0": version: 5.0.1 resolution: "https-proxy-agent@npm:5.0.1" dependencies: @@ -9657,6 +8554,16 @@ __metadata: languageName: node linkType: hard +"https-proxy-agent@npm:^7.0.5": + version: 7.0.5 + resolution: "https-proxy-agent@npm:7.0.5" + dependencies: + agent-base: ^7.0.2 + debug: 4 + checksum: 2e1a28960f13b041a50702ee74f240add8e75146a5c37fc98f1960f0496710f6918b3a9fe1e5aba41e50f58e6df48d107edd9c405c5f0d73ac260dabf2210857 + languageName: node + linkType: hard + "human-signals@npm:^2.1.0": version: 2.1.0 resolution: "human-signals@npm:2.1.0" @@ -9905,18 +8812,7 @@ __metadata: languageName: node linkType: hard -"is-array-buffer@npm:^3.0.1": - version: 3.0.1 - resolution: "is-array-buffer@npm:3.0.1" - dependencies: - call-bind: ^1.0.2 - get-intrinsic: ^1.1.3 - is-typed-array: ^1.1.10 - checksum: f26ab87448e698285daf707e52a533920449f7abf63714140ffab9d5571aa5a71ac2fa2677e8b793ad0d5d3e40078d4d2c8a0ab39c957e3cfc6513bb6c9dfdc9 - languageName: node - linkType: hard - -"is-array-buffer@npm:^3.0.2": +"is-array-buffer@npm:^3.0.1, is-array-buffer@npm:^3.0.2": version: 3.0.2 resolution: "is-array-buffer@npm:3.0.2" dependencies: @@ -10046,13 +8942,6 @@ __metadata: languageName: node linkType: hard -"is-generator-fn@npm:^2.0.0": - version: 2.1.0 - resolution: "is-generator-fn@npm:2.1.0" - checksum: a6ad5492cf9d1746f73b6744e0c43c0020510b59d56ddcb78a91cbc173f09b5e6beff53d75c9c5a29feb618bfef2bf458e025ecf3a57ad2268e2fb2569f56215 - languageName: node - linkType: hard - "is-glob@npm:^4.0.0, is-glob@npm:^4.0.1, is-glob@npm:^4.0.3, is-glob@npm:~4.0.1": version: 4.0.3 resolution: "is-glob@npm:4.0.3" @@ -10332,258 +9221,69 @@ __metadata: languageName: node linkType: hard -"isstream@npm:~0.1.2": - version: 0.1.2 - resolution: "isstream@npm:0.1.2" - checksum: 1eb2fe63a729f7bdd8a559ab552c69055f4f48eb5c2f03724430587c6f450783c8f1cd936c1c952d0a927925180fcc892ebd5b174236cf1065d4bd5bdb37e963 - languageName: node - linkType: hard - -"istanbul-lib-coverage@npm:^3.0.0, istanbul-lib-coverage@npm:^3.2.0": - version: 3.2.0 - resolution: "istanbul-lib-coverage@npm:3.2.0" - checksum: a2a545033b9d56da04a8571ed05c8120bf10e9bce01cf8633a3a2b0d1d83dff4ac4fe78d6d5673c27fc29b7f21a41d75f83a36be09f82a61c367b56aa73c1ff9 - languageName: node - linkType: hard - -"istanbul-lib-instrument@npm:^5.0.4, istanbul-lib-instrument@npm:^5.1.0": - version: 5.2.1 - resolution: "istanbul-lib-instrument@npm:5.2.1" - dependencies: - "@babel/core": ^7.12.3 - "@babel/parser": ^7.14.7 - "@istanbuljs/schema": ^0.1.2 - istanbul-lib-coverage: ^3.2.0 - semver: ^6.3.0 - checksum: bf16f1803ba5e51b28bbd49ed955a736488381e09375d830e42ddeb403855b2006f850711d95ad726f2ba3f1ae8e7366de7e51d2b9ac67dc4d80191ef7ddf272 - languageName: node - linkType: hard - -"istanbul-lib-report@npm:^3.0.0": - version: 3.0.0 - resolution: "istanbul-lib-report@npm:3.0.0" - dependencies: - istanbul-lib-coverage: ^3.0.0 - make-dir: ^3.0.0 - supports-color: ^7.1.0 - checksum: 3f29eb3f53c59b987386e07fe772d24c7f58c6897f34c9d7a296f4000de7ae3de9eb95c3de3df91dc65b134c84dee35c54eee572a56243e8907c48064e34ff1b - languageName: node - linkType: hard - -"istanbul-lib-source-maps@npm:^4.0.0": - version: 4.0.1 - resolution: "istanbul-lib-source-maps@npm:4.0.1" - dependencies: - debug: ^4.1.1 - istanbul-lib-coverage: ^3.0.0 - source-map: ^0.6.1 - checksum: 21ad3df45db4b81852b662b8d4161f6446cd250c1ddc70ef96a585e2e85c26ed7cd9c2a396a71533cfb981d1a645508bc9618cae431e55d01a0628e7dec62ef2 - languageName: node - linkType: hard - -"istanbul-reports@npm:^3.1.3": - version: 3.1.5 - resolution: "istanbul-reports@npm:3.1.5" - dependencies: - html-escaper: ^2.0.0 - istanbul-lib-report: ^3.0.0 - checksum: 7867228f83ed39477b188ea07e7ccb9b4f5320b6f73d1db93a0981b7414fa4ef72d3f80c4692c442f90fc250d9406e71d8d7ab65bb615cb334e6292b73192b89 - languageName: node - linkType: hard - -"jackspeak@npm:^4.0.1": - version: 4.0.1 - resolution: "jackspeak@npm:4.0.1" - dependencies: - "@isaacs/cliui": ^8.0.2 - "@pkgjs/parseargs": ^0.11.0 - dependenciesMeta: - "@pkgjs/parseargs": - optional: true - checksum: 7989d19eddeff0631ef653df413e26290db77dc3791438bd12b56bed1c0b24d5d535fdfec13cf35775cd5b47f8ee57d36fd0bceaf2df672b1f523533fd4184cc - languageName: node - linkType: hard - -"jake@npm:^10.8.5": - version: 10.8.5 - resolution: "jake@npm:10.8.5" - dependencies: - async: ^3.2.3 - chalk: ^4.0.2 - filelist: ^1.0.1 - minimatch: ^3.0.4 - bin: - jake: ./bin/cli.js - checksum: 56c913ecf5a8d74325d0af9bc17a233bad50977438d44864d925bb6c45c946e0fee8c4c1f5fe2225471ef40df5222e943047982717ebff0d624770564d3c46ba - languageName: node - linkType: hard - -"jest-changed-files@npm:^29.4.3": - version: 29.4.3 - resolution: "jest-changed-files@npm:29.4.3" - dependencies: - execa: ^5.0.0 - p-limit: ^3.1.0 - checksum: 9a70bd8e92b37e18ad26d8bea97c516f41119fb7046b4255a13c76d557b0e54fa0629726de5a093fadfd6a0a08ce45da65a57086664d505b8db4b3133133e141 - languageName: node - linkType: hard - -"jest-circus@npm:^29.4.3": - version: 29.4.3 - resolution: "jest-circus@npm:29.4.3" - dependencies: - "@jest/environment": ^29.4.3 - "@jest/expect": ^29.4.3 - "@jest/test-result": ^29.4.3 - "@jest/types": ^29.4.3 - "@types/node": "*" - chalk: ^4.0.0 - co: ^4.6.0 - dedent: ^0.7.0 - is-generator-fn: ^2.0.0 - jest-each: ^29.4.3 - jest-matcher-utils: ^29.4.3 - jest-message-util: ^29.4.3 - jest-runtime: ^29.4.3 - jest-snapshot: ^29.4.3 - jest-util: ^29.4.3 - p-limit: ^3.1.0 - pretty-format: ^29.4.3 - slash: ^3.0.0 - stack-utils: ^2.0.3 - checksum: 2739bef9c888743b49ff3fe303131381618e5d2f250f613a91240d9c86e19e6874fc904cbd8bcb02ec9ec59a84e5dae4ffec929f0c6171e87ddbc05508a137f4 - languageName: node - linkType: hard - -"jest-cli@npm:^29.4.3": - version: 29.4.3 - resolution: "jest-cli@npm:29.4.3" - dependencies: - "@jest/core": ^29.4.3 - "@jest/test-result": ^29.4.3 - "@jest/types": ^29.4.3 - chalk: ^4.0.0 - exit: ^0.1.2 - graceful-fs: ^4.2.9 - import-local: ^3.0.2 - jest-config: ^29.4.3 - jest-util: ^29.4.3 - jest-validate: ^29.4.3 - prompts: ^2.0.1 - yargs: ^17.3.1 - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - bin: - jest: bin/jest.js - checksum: f4c9f6d76cde2c60a4169acbebb3f862728be03bcf3fe0077d2e55da7f9f3c3e9483cfa6e936832d35eabf96ee5ebf0300c4b0bd43cffff099801793466bfdd8 - languageName: node - linkType: hard - -"jest-config@npm:^29.4.3": - version: 29.4.3 - resolution: "jest-config@npm:29.4.3" - dependencies: - "@babel/core": ^7.11.6 - "@jest/test-sequencer": ^29.4.3 - "@jest/types": ^29.4.3 - babel-jest: ^29.4.3 - chalk: ^4.0.0 - ci-info: ^3.2.0 - deepmerge: ^4.2.2 - glob: ^7.1.3 - graceful-fs: ^4.2.9 - jest-circus: ^29.4.3 - jest-environment-node: ^29.4.3 - jest-get-type: ^29.4.3 - jest-regex-util: ^29.4.3 - jest-resolve: ^29.4.3 - jest-runner: ^29.4.3 - jest-util: ^29.4.3 - jest-validate: ^29.4.3 - micromatch: ^4.0.4 - parse-json: ^5.2.0 - pretty-format: ^29.4.3 - slash: ^3.0.0 - strip-json-comments: ^3.1.1 - peerDependencies: - "@types/node": "*" - ts-node: ">=9.0.0" - peerDependenciesMeta: - "@types/node": - optional: true - ts-node: - optional: true - checksum: 92f9a9c6850b18682cb01892774a33967472af23a5844438d8c68077d5f2a29b15b665e4e4db7de3d74002a6dca158cd5b2cb9f5debfd2cce5e1aee6c74e3873 - languageName: node - linkType: hard - -"jest-diff@npm:^29.0.3": - version: 29.5.0 - resolution: "jest-diff@npm:29.5.0" - dependencies: - chalk: ^4.0.0 - diff-sequences: ^29.4.3 - jest-get-type: ^29.4.3 - pretty-format: ^29.5.0 - checksum: dfd0f4a299b5d127779c76b40106c37854c89c3e0785098c717d52822d6620d227f6234c3a9291df204d619e799e3654159213bf93220f79c8e92a55475a3d39 +"isstream@npm:~0.1.2": + version: 0.1.2 + resolution: "isstream@npm:0.1.2" + checksum: 1eb2fe63a729f7bdd8a559ab552c69055f4f48eb5c2f03724430587c6f450783c8f1cd936c1c952d0a927925180fcc892ebd5b174236cf1065d4bd5bdb37e963 languageName: node linkType: hard -"jest-diff@npm:^29.4.3": - version: 29.4.3 - resolution: "jest-diff@npm:29.4.3" +"istanbul-lib-coverage@npm:^3.2.0": + version: 3.2.0 + resolution: "istanbul-lib-coverage@npm:3.2.0" + checksum: a2a545033b9d56da04a8571ed05c8120bf10e9bce01cf8633a3a2b0d1d83dff4ac4fe78d6d5673c27fc29b7f21a41d75f83a36be09f82a61c367b56aa73c1ff9 + languageName: node + linkType: hard + +"istanbul-lib-instrument@npm:^5.0.4": + version: 5.2.1 + resolution: "istanbul-lib-instrument@npm:5.2.1" dependencies: - chalk: ^4.0.0 - diff-sequences: ^29.4.3 - jest-get-type: ^29.4.3 - pretty-format: ^29.4.3 - checksum: 877fd1edffef6b319688c27b152e5b28e2bc4bcda5ce0ca90d7e137f9fafda4280bae25403d4c0bfd9806c2c0b15d966aa2dfaf5f9928ec8f1ccea7fa1d08ed6 + "@babel/core": ^7.12.3 + "@babel/parser": ^7.14.7 + "@istanbuljs/schema": ^0.1.2 + istanbul-lib-coverage: ^3.2.0 + semver: ^6.3.0 + checksum: bf16f1803ba5e51b28bbd49ed955a736488381e09375d830e42ddeb403855b2006f850711d95ad726f2ba3f1ae8e7366de7e51d2b9ac67dc4d80191ef7ddf272 languageName: node linkType: hard -"jest-docblock@npm:^29.4.3": - version: 29.4.3 - resolution: "jest-docblock@npm:29.4.3" +"jackspeak@npm:^4.0.1": + version: 4.0.1 + resolution: "jackspeak@npm:4.0.1" dependencies: - detect-newline: ^3.0.0 - checksum: e0e9df1485bb8926e5b33478cdf84b3387d9caf3658e7dc1eaa6dc34cb93dea0d2d74797f6e940f0233a88f3dadd60957f2288eb8f95506361f85b84bf8661df + "@isaacs/cliui": ^8.0.2 + "@pkgjs/parseargs": ^0.11.0 + dependenciesMeta: + "@pkgjs/parseargs": + optional: true + checksum: 7989d19eddeff0631ef653df413e26290db77dc3791438bd12b56bed1c0b24d5d535fdfec13cf35775cd5b47f8ee57d36fd0bceaf2df672b1f523533fd4184cc languageName: node linkType: hard -"jest-each@npm:^29.4.3": - version: 29.4.3 - resolution: "jest-each@npm:29.4.3" +"jake@npm:^10.8.5": + version: 10.8.5 + resolution: "jake@npm:10.8.5" dependencies: - "@jest/types": ^29.4.3 - chalk: ^4.0.0 - jest-get-type: ^29.4.3 - jest-util: ^29.4.3 - pretty-format: ^29.4.3 - checksum: 1f72738338399efab0139eaea18bc198be0c6ed889770c8cbfa70bf9c724e8171fe1d3a29a94f9f39b8493ee6b2529bb350fb7c7c75e0d7eddfd28c253c79f9d + async: ^3.2.3 + chalk: ^4.0.2 + filelist: ^1.0.1 + minimatch: ^3.0.4 + bin: + jake: ./bin/cli.js + checksum: 56c913ecf5a8d74325d0af9bc17a233bad50977438d44864d925bb6c45c946e0fee8c4c1f5fe2225471ef40df5222e943047982717ebff0d624770564d3c46ba languageName: node linkType: hard -"jest-environment-jsdom@npm:^29.4.3": - version: 29.4.3 - resolution: "jest-environment-jsdom@npm:29.4.3" +"jest-diff@npm:^29.0.3": + version: 29.5.0 + resolution: "jest-diff@npm:29.5.0" dependencies: - "@jest/environment": ^29.4.3 - "@jest/fake-timers": ^29.4.3 - "@jest/types": ^29.4.3 - "@types/jsdom": ^20.0.0 - "@types/node": "*" - jest-mock: ^29.4.3 - jest-util: ^29.4.3 - jsdom: ^20.0.0 - peerDependencies: - canvas: ^2.5.0 - peerDependenciesMeta: - canvas: - optional: true - checksum: 3fb29bb4b472e05a38fdb235aa936ad469dfa2f6c1cab97fe3d1a7c585351976d05c7bbbd715b9747f070a225dcf10a9166df1461e0fb838ea7a377a8e64bed4 + chalk: ^4.0.0 + diff-sequences: ^29.4.3 + jest-get-type: ^29.4.3 + pretty-format: ^29.5.0 + checksum: dfd0f4a299b5d127779c76b40106c37854c89c3e0785098c717d52822d6620d227f6234c3a9291df204d619e799e3654159213bf93220f79c8e92a55475a3d39 languageName: node linkType: hard @@ -10610,20 +9310,6 @@ __metadata: languageName: node linkType: hard -"jest-environment-node@npm:^29.4.3": - version: 29.4.3 - resolution: "jest-environment-node@npm:29.4.3" - dependencies: - "@jest/environment": ^29.4.3 - "@jest/fake-timers": ^29.4.3 - "@jest/types": ^29.4.3 - "@types/node": "*" - jest-mock: ^29.4.3 - jest-util: ^29.4.3 - checksum: 3c7362edfdbd516e83af7367c95dde35761a482b174de9735c07633405486ec73e19624e9bea4333fca33c24e8d65eaa1aa6594e0cb6bfeeeb564ccc431ee61d - languageName: node - linkType: hard - "jest-get-type@npm:^29.4.3": version: 29.4.3 resolution: "jest-get-type@npm:29.4.3" @@ -10654,45 +9340,6 @@ __metadata: languageName: node linkType: hard -"jest-leak-detector@npm:^29.4.3": - version: 29.4.3 - resolution: "jest-leak-detector@npm:29.4.3" - dependencies: - jest-get-type: ^29.4.3 - pretty-format: ^29.4.3 - checksum: ec2b45e6f0abce81bd0dd0f6fd06b433c24d1ec865267af7640fae540ec868b93752598e407a9184d9c7419cbf32e8789007cc8c1be1a84f8f7321a0f8ad01f1 - languageName: node - linkType: hard - -"jest-matcher-utils@npm:^29.4.3": - version: 29.4.3 - resolution: "jest-matcher-utils@npm:29.4.3" - dependencies: - chalk: ^4.0.0 - jest-diff: ^29.4.3 - jest-get-type: ^29.4.3 - pretty-format: ^29.4.3 - checksum: 9e13cbe42d2113bab2691110c7c3ba5cec3b94abad2727e1de90929d0f67da444e9b2066da3b476b5bf788df53a8ede0e0a950cfb06a04e4d6d566d115ee4f1d - languageName: node - linkType: hard - -"jest-message-util@npm:^29.4.3": - version: 29.4.3 - resolution: "jest-message-util@npm:29.4.3" - dependencies: - "@babel/code-frame": ^7.12.13 - "@jest/types": ^29.4.3 - "@types/stack-utils": ^2.0.0 - chalk: ^4.0.0 - graceful-fs: ^4.2.9 - micromatch: ^4.0.4 - pretty-format: ^29.4.3 - slash: ^3.0.0 - stack-utils: ^2.0.3 - checksum: 64f06b9550021e68da0059020bea8691283cf818918810bb67192d7b7fb9b691c7eadf55c2ca3cd04df5394918f2327245077095cdc0d6b04be3532d2c7d0ced - languageName: node - linkType: hard - "jest-message-util@npm:^29.5.0": version: 29.5.0 resolution: "jest-message-util@npm:29.5.0" @@ -10710,17 +9357,6 @@ __metadata: languageName: node linkType: hard -"jest-mock@npm:^29.4.3": - version: 29.4.3 - resolution: "jest-mock@npm:29.4.3" - dependencies: - "@jest/types": ^29.4.3 - "@types/node": "*" - jest-util: ^29.4.3 - checksum: 8eb4a29b02d2cd03faac0290b6df6d23b4ffa43f72b21c7fff3c7dd04a2797355b1e85862b70b15341dd33ee3a693b17db5520a6f6e6b81ee75601987de6a1a2 - languageName: node - linkType: hard - "jest-mock@npm:^29.5.0": version: 29.5.0 resolution: "jest-mock@npm:29.5.0" @@ -10732,18 +9368,6 @@ __metadata: languageName: node linkType: hard -"jest-pnp-resolver@npm:^1.2.2": - version: 1.2.3 - resolution: "jest-pnp-resolver@npm:1.2.3" - peerDependencies: - jest-resolve: "*" - peerDependenciesMeta: - jest-resolve: - optional: true - checksum: db1a8ab2cb97ca19c01b1cfa9a9c8c69a143fde833c14df1fab0766f411b1148ff0df878adea09007ac6a2085ec116ba9a996a6ad104b1e58c20adbf88eed9b2 - languageName: node - linkType: hard - "jest-regex-util@npm:^29.4.3": version: 29.4.3 resolution: "jest-regex-util@npm:29.4.3" @@ -10751,33 +9375,6 @@ __metadata: languageName: node linkType: hard -"jest-resolve-dependencies@npm:^29.4.3": - version: 29.4.3 - resolution: "jest-resolve-dependencies@npm:29.4.3" - dependencies: - jest-regex-util: ^29.4.3 - jest-snapshot: ^29.4.3 - checksum: 3ad934cd2170c9658d8800f84a975dafc866ec85b7ce391c640c09c3744ced337787620d8667dc8d1fa5e0b1493f973caa1a1bb980e4e6a50b46a1720baf0bd1 - languageName: node - linkType: hard - -"jest-resolve@npm:^29.4.3": - version: 29.4.3 - resolution: "jest-resolve@npm:29.4.3" - dependencies: - chalk: ^4.0.0 - graceful-fs: ^4.2.9 - jest-haste-map: ^29.4.3 - jest-pnp-resolver: ^1.2.2 - jest-util: ^29.4.3 - jest-validate: ^29.4.3 - resolve: ^1.20.0 - resolve.exports: ^2.0.0 - slash: ^3.0.0 - checksum: 056a66beccf833f3c7e5a8fc9bfec218886e87b0b103decdbdf11893669539df489d1490cd6d5f0eea35731e8be0d2e955a6710498f970d2eae734da4df029dc - languageName: node - linkType: hard - "jest-runner-tsd@npm:^4.0.0": version: 4.0.0 resolution: "jest-runner-tsd@npm:4.0.0" @@ -10792,112 +9389,7 @@ __metadata: languageName: node linkType: hard -"jest-runner@npm:^29.4.3": - version: 29.4.3 - resolution: "jest-runner@npm:29.4.3" - dependencies: - "@jest/console": ^29.4.3 - "@jest/environment": ^29.4.3 - "@jest/test-result": ^29.4.3 - "@jest/transform": ^29.4.3 - "@jest/types": ^29.4.3 - "@types/node": "*" - chalk: ^4.0.0 - emittery: ^0.13.1 - graceful-fs: ^4.2.9 - jest-docblock: ^29.4.3 - jest-environment-node: ^29.4.3 - jest-haste-map: ^29.4.3 - jest-leak-detector: ^29.4.3 - jest-message-util: ^29.4.3 - jest-resolve: ^29.4.3 - jest-runtime: ^29.4.3 - jest-util: ^29.4.3 - jest-watcher: ^29.4.3 - jest-worker: ^29.4.3 - p-limit: ^3.1.0 - source-map-support: 0.5.13 - checksum: c41108e5da01e0b8fdc2a06c5042eb49bb1d8db0e0d4651769fd1b9fe84ab45188617c11a3a8e1c83748b29bfe57dd77001ec57e86e3e3c30f3534e0314f8882 - languageName: node - linkType: hard - -"jest-runtime@npm:^29.4.3": - version: 29.4.3 - resolution: "jest-runtime@npm:29.4.3" - dependencies: - "@jest/environment": ^29.4.3 - "@jest/fake-timers": ^29.4.3 - "@jest/globals": ^29.4.3 - "@jest/source-map": ^29.4.3 - "@jest/test-result": ^29.4.3 - "@jest/transform": ^29.4.3 - "@jest/types": ^29.4.3 - "@types/node": "*" - chalk: ^4.0.0 - cjs-module-lexer: ^1.0.0 - collect-v8-coverage: ^1.0.0 - glob: ^7.1.3 - graceful-fs: ^4.2.9 - jest-haste-map: ^29.4.3 - jest-message-util: ^29.4.3 - jest-mock: ^29.4.3 - jest-regex-util: ^29.4.3 - jest-resolve: ^29.4.3 - jest-snapshot: ^29.4.3 - jest-util: ^29.4.3 - slash: ^3.0.0 - strip-bom: ^4.0.0 - checksum: b99f8a910d1a38e7476058ba04ad44dfd3d93e837bb7c301d691e646a1085412fde87f06fbe271c9145f0e72d89400bfa7f6994bc30d456c7742269f37d0f570 - languageName: node - linkType: hard - -"jest-snapshot@npm:^29.4.3": - version: 29.4.3 - resolution: "jest-snapshot@npm:29.4.3" - dependencies: - "@babel/core": ^7.11.6 - "@babel/generator": ^7.7.2 - "@babel/plugin-syntax-jsx": ^7.7.2 - "@babel/plugin-syntax-typescript": ^7.7.2 - "@babel/traverse": ^7.7.2 - "@babel/types": ^7.3.3 - "@jest/expect-utils": ^29.4.3 - "@jest/transform": ^29.4.3 - "@jest/types": ^29.4.3 - "@types/babel__traverse": ^7.0.6 - "@types/prettier": ^2.1.5 - babel-preset-current-node-syntax: ^1.0.0 - chalk: ^4.0.0 - expect: ^29.4.3 - graceful-fs: ^4.2.9 - jest-diff: ^29.4.3 - jest-get-type: ^29.4.3 - jest-haste-map: ^29.4.3 - jest-matcher-utils: ^29.4.3 - jest-message-util: ^29.4.3 - jest-util: ^29.4.3 - natural-compare: ^1.4.0 - pretty-format: ^29.4.3 - semver: ^7.3.5 - checksum: 79ba52f2435e23ce72b1309be4b17fdbcb299d1c2ce97ebb61df9a62711e9463035f63b4c849181b2fe5aa17b3e09d30ee4668cc25fb3c6f59511c010b4d9494 - languageName: node - linkType: hard - -"jest-util@npm:^29.0.0, jest-util@npm:^29.4.3": - version: 29.4.3 - resolution: "jest-util@npm:29.4.3" - dependencies: - "@jest/types": ^29.4.3 - "@types/node": "*" - chalk: ^4.0.0 - ci-info: ^3.2.0 - graceful-fs: ^4.2.9 - picomatch: ^2.2.3 - checksum: 606b3e6077895baf8fb4ad4d08c134f37a6b81d5ba77ae654c942b1ae4b7294ab3b5a0eb93db34f129407b367970cf3b76bf5c80897b30f215f2bc8bf20a5f3f - languageName: node - linkType: hard - -"jest-util@npm:^29.5.0": +"jest-util@npm:^29.0.0, jest-util@npm:^29.4.3, jest-util@npm:^29.5.0": version: 29.5.0 resolution: "jest-util@npm:29.5.0" dependencies: @@ -10925,22 +9417,6 @@ __metadata: languageName: node linkType: hard -"jest-watcher@npm:^29.4.3": - version: 29.4.3 - resolution: "jest-watcher@npm:29.4.3" - dependencies: - "@jest/test-result": ^29.4.3 - "@jest/types": ^29.4.3 - "@types/node": "*" - ansi-escapes: ^4.2.1 - chalk: ^4.0.0 - emittery: ^0.13.1 - jest-util: ^29.4.3 - string-length: ^4.0.1 - checksum: 44b64991b3414db853c3756f14690028f4edef7aebfb204a4291cc1901c2239fa27a8687c5c5abbecc74bf613e0bb9b1378bf766430c9febcc71e9c0cb5ad8fc - languageName: node - linkType: hard - "jest-worker@npm:^27.4.5": version: 27.5.1 resolution: "jest-worker@npm:27.5.1" @@ -10952,19 +9428,7 @@ __metadata: languageName: node linkType: hard -"jest-worker@npm:^29.4.3": - version: 29.4.3 - resolution: "jest-worker@npm:29.4.3" - dependencies: - "@types/node": "*" - jest-util: ^29.4.3 - merge-stream: ^2.0.0 - supports-color: ^8.0.0 - checksum: c99ae66f257564613e72c5797c3a68f21a22e1c1fb5f30d14695ff5b508a0d2405f22748f13a3df8d1015b5e16abb130170f81f047ff68f58b6b1d2ff6ebc51b - languageName: node - linkType: hard - -"jest-worker@npm:^29.5.0": +"jest-worker@npm:^29.4.3, jest-worker@npm:^29.5.0": version: 29.5.0 resolution: "jest-worker@npm:29.5.0" dependencies: @@ -10976,35 +9440,7 @@ __metadata: languageName: node linkType: hard -"jest@npm:^29.4.3": - version: 29.4.3 - resolution: "jest@npm:29.4.3" - dependencies: - "@jest/core": ^29.4.3 - "@jest/types": ^29.4.3 - import-local: ^3.0.2 - jest-cli: ^29.4.3 - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - bin: - jest: bin/jest.js - checksum: 084d10d1ceaade3c40e6d3bbd71b9b71b8919ba6fbd6f1f6699bdc259a6ba2f7350c7ccbfa10c11f7e3e01662853650a6244210179542fe4ba87e77dc3f3109f - languageName: node - linkType: hard - -"jiti@npm:^1.17.1": - version: 1.17.1 - resolution: "jiti@npm:1.17.1" - bin: - jiti: bin/jiti.js - checksum: 56c6d8488e7e9cc6ee66a0f0d5e18db6669cb12b2e93364f393442289a9bc75a8e8c796249f59015e01c3ebdf9478e2ca8b76c30e29072c678ee00d39de757c7 - languageName: node - linkType: hard - -"jiti@npm:^1.19.1, jiti@npm:^1.19.3": +"jiti@npm:^1.17.1, jiti@npm:^1.19.1, jiti@npm:^1.19.3": version: 1.19.3 resolution: "jiti@npm:1.19.3" bin: @@ -11023,7 +9459,6 @@ __metadata: "@size-limit/preset-small-lib": ^8.1.1 "@swc/core": ^1.3.26 "@tsd/typescript": ^4.9.5 - "@types/jest": ^29.4.0 "@types/mock-fs": ^4.13.1 "@types/node": 20.14.8 "@types/ramda": ^0.27.23 @@ -11040,10 +9475,9 @@ __metadata: eslint-plugin-node: ^11.1.0 eslint-plugin-promise: ^4.1.1 husky: ^8.0.3 - jest: ^29.4.3 - jest-environment-jsdom: ^29.4.3 jest-environment-node-single-context: ^29.0.0 jest-runner-tsd: ^4.0.0 + jsdom: ^25.0.1 lerna: ^6.5.1 lint-staged: ^13.1.0 memory-fs: ^0.5.0 @@ -11059,6 +9493,7 @@ __metadata: swc-node: ^1.0.0 ts-jest: ^29.0.5 typescript: ^4.9.5 + vitest: ^2.1.1 languageName: unknown linkType: soft @@ -11146,42 +9581,37 @@ __metadata: languageName: node linkType: hard -"jsdom@npm:^20.0.0": - version: 20.0.3 - resolution: "jsdom@npm:20.0.3" +"jsdom@npm:^25.0.1": + version: 25.0.1 + resolution: "jsdom@npm:25.0.1" dependencies: - abab: ^2.0.6 - acorn: ^8.8.1 - acorn-globals: ^7.0.0 - cssom: ^0.5.0 - cssstyle: ^2.3.0 - data-urls: ^3.0.2 - decimal.js: ^10.4.2 - domexception: ^4.0.0 - escodegen: ^2.0.0 + cssstyle: ^4.1.0 + data-urls: ^5.0.0 + decimal.js: ^10.4.3 form-data: ^4.0.0 - html-encoding-sniffer: ^3.0.0 - http-proxy-agent: ^5.0.0 - https-proxy-agent: ^5.0.1 + html-encoding-sniffer: ^4.0.0 + http-proxy-agent: ^7.0.2 + https-proxy-agent: ^7.0.5 is-potential-custom-element-name: ^1.0.1 - nwsapi: ^2.2.2 - parse5: ^7.1.1 + nwsapi: ^2.2.12 + parse5: ^7.1.2 + rrweb-cssom: ^0.7.1 saxes: ^6.0.0 symbol-tree: ^3.2.4 - tough-cookie: ^4.1.2 - w3c-xmlserializer: ^4.0.0 + tough-cookie: ^5.0.0 + w3c-xmlserializer: ^5.0.0 webidl-conversions: ^7.0.0 - whatwg-encoding: ^2.0.0 - whatwg-mimetype: ^3.0.0 - whatwg-url: ^11.0.0 - ws: ^8.11.0 - xml-name-validator: ^4.0.0 + whatwg-encoding: ^3.1.1 + whatwg-mimetype: ^4.0.0 + whatwg-url: ^14.0.0 + ws: ^8.18.0 + xml-name-validator: ^5.0.0 peerDependencies: - canvas: ^2.5.0 + canvas: ^2.11.2 peerDependenciesMeta: canvas: optional: true - checksum: 6e2ae21db397133a061b270c26d2dbc0b9051733ea3b896a7ece78d79f475ff0974f766a413c1198a79c793159119169f2335ddb23150348fbfdcfa6f3105536 + checksum: b637d28445d570014195b3c77d06e54ef69d1f807eaf61388cb470e4d9227244e7fe2e0c32b6df03ac4fe35f746d7c721672d9136ecebb49d2e61a04ab9628e0 languageName: node linkType: hard @@ -11349,13 +9779,6 @@ __metadata: languageName: node linkType: hard -"kleur@npm:^3.0.3": - version: 3.0.3 - resolution: "kleur@npm:3.0.3" - checksum: df82cd1e172f957bae9c536286265a5cdbd5eeca487cb0a3b2a7b41ef959fc61f8e7c0e9aeea9c114ccf2c166b6a8dd45a46fd619c1c569d210ecd2765ad5169 - languageName: node - linkType: hard - "lerna@npm:^6.5.1": version: 6.5.1 resolution: "lerna@npm:6.5.1" @@ -11708,6 +10131,15 @@ __metadata: languageName: node linkType: hard +"loupe@npm:^3.1.0, loupe@npm:^3.1.1": + version: 3.1.1 + resolution: "loupe@npm:3.1.1" + dependencies: + get-func-name: ^2.0.1 + checksum: c7efa6bc6d71f25ca03eb13c9a069e35ed86799e308ca27a7a3eff8cdf9500e7c22d1f2411468d154a8e960e91e5e685e0c6c83e96db748f177c1adf30811153 + languageName: node + linkType: hard + "lru-cache@npm:^11.0.0": version: 11.0.0 resolution: "lru-cache@npm:11.0.0" @@ -11767,25 +10199,16 @@ __metadata: languageName: node linkType: hard -"magic-string@npm:^0.30.3": - version: 0.30.3 - resolution: "magic-string@npm:0.30.3" - dependencies: - "@jridgewell/sourcemap-codec": ^1.4.15 - checksum: a5a9ddf9bd3bf49a2de1048bf358464f1bda7b3cc1311550f4a0ba8f81a4070e25445d53a5ee28850161336f1bff3cf28aa3320c6b4aeff45ce3e689f300b2f3 - languageName: node - linkType: hard - -"magic-string@npm:^0.30.4": - version: 0.30.5 - resolution: "magic-string@npm:0.30.5" +"magic-string@npm:^0.30.11, magic-string@npm:^0.30.3, magic-string@npm:^0.30.4": + version: 0.30.11 + resolution: "magic-string@npm:0.30.11" dependencies: - "@jridgewell/sourcemap-codec": ^1.4.15 - checksum: da10fecff0c0a7d3faf756913ce62bd6d5e7b0402be48c3b27bfd651b90e29677e279069a63b764bcdc1b8ecdcdb898f29a5c5ec510f2323e8d62ee057a6eb18 + "@jridgewell/sourcemap-codec": ^1.5.0 + checksum: e041649453c9a3f31d2e731fc10e38604d50e20d3585cd48bc7713a6e2e1a3ad3012105929ca15750d59d0a3f1904405e4b95a23b7e69dc256db3c277a73a3ca languageName: node linkType: hard -"make-dir@npm:3.1.0, make-dir@npm:^3.0.0": +"make-dir@npm:3.1.0": version: 3.1.0 resolution: "make-dir@npm:3.1.0" dependencies: @@ -12210,14 +10633,7 @@ __metadata: languageName: node linkType: hard -"ms@npm:2.1.2": - version: 2.1.2 - resolution: "ms@npm:2.1.2" - checksum: 673cdb2c3133eb050c745908d8ce632ed2c02d85640e2edb3ace856a2266a813b30c613569bf3354fdf4ea7d1a1494add3bfa95e2713baa27d0c2c71fc44f58f - languageName: node - linkType: hard - -"ms@npm:^2.0.0, ms@npm:^2.1.1": +"ms@npm:^2.0.0, ms@npm:^2.1.1, ms@npm:^2.1.3": version: 2.1.3 resolution: "ms@npm:2.1.3" checksum: aa92de608021b242401676e35cfa5aa42dd70cbdc082b916da7fb925c542173e36bce97ea3e804923fe92c0ad991434e4a38327e15a1b5b5f945d66df615ae6d @@ -12244,12 +10660,12 @@ __metadata: languageName: node linkType: hard -"nanoid@npm:^3.3.4": - version: 3.3.4 - resolution: "nanoid@npm:3.3.4" +"nanoid@npm:^3.3.4, nanoid@npm:^3.3.7": + version: 3.3.7 + resolution: "nanoid@npm:3.3.7" bin: nanoid: bin/nanoid.cjs - checksum: 2fddd6dee994b7676f008d3ffa4ab16035a754f4bb586c61df5a22cf8c8c94017aadd360368f47d653829e0569a92b129979152ff97af23a558331e47e37cd9c + checksum: d36c427e530713e4ac6567d488b489a36582ef89da1d6d4e3b87eded11eb10d7042a877958c6f104929809b2ab0bafa17652b076cdf84324aa75b30b722204f2 languageName: node linkType: hard @@ -12392,13 +10808,6 @@ __metadata: languageName: node linkType: hard -"node-releases@npm:^2.0.13": - version: 2.0.13 - resolution: "node-releases@npm:2.0.13" - checksum: 17ec8f315dba62710cae71a8dad3cd0288ba943d2ece43504b3b1aa8625bf138637798ab470b1d9035b0545996f63000a8a926e0f6d35d0996424f8b6d36dda3 - languageName: node - linkType: hard - "node-releases@npm:^2.0.14": version: 2.0.14 resolution: "node-releases@npm:2.0.14" @@ -12406,20 +10815,6 @@ __metadata: languageName: node linkType: hard -"node-releases@npm:^2.0.6": - version: 2.0.8 - resolution: "node-releases@npm:2.0.8" - checksum: b1ab02c0d5d8e081bf9537232777a7a787dc8fef07f70feabe70a344599b220fe16462f746ac30f3eed5a58549445ad69368964d12a1f8b3b764f6caab7ba34a - languageName: node - linkType: hard - -"node-releases@npm:^2.0.8": - version: 2.0.10 - resolution: "node-releases@npm:2.0.10" - checksum: d784ecde25696a15d449c4433077f5cce620ed30a1656c4abf31282bfc691a70d9618bae6868d247a67914d1be5cc4fde22f65a05f4398cdfb92e0fc83cadfbc - languageName: node - linkType: hard - "nopt@npm:^5.0.0": version: 5.0.0 resolution: "nopt@npm:5.0.0" @@ -12715,10 +11110,10 @@ __metadata: languageName: node linkType: hard -"nwsapi@npm:^2.2.0, nwsapi@npm:^2.2.2": - version: 2.2.2 - resolution: "nwsapi@npm:2.2.2" - checksum: 43769106292bc95f776756ca2f3513dab7b4d506a97c67baec32406447841a35f65f29c1f95ab5d42785210fd41668beed33ca16fa058780be43b101ad73e205 +"nwsapi@npm:^2.2.0, nwsapi@npm:^2.2.12": + version: 2.2.12 + resolution: "nwsapi@npm:2.2.12" + checksum: 4dbce7ecbcf336eef1edcbb5161cbceea95863e63a16d9bcec8e81cbb260bdab3d07e6c7b58354d465dc803eef6d0ea4fb20220a80fa148ae65f18d56df81799 languageName: node linkType: hard @@ -13242,7 +11637,7 @@ __metadata: languageName: node linkType: hard -"parse-json@npm:^5.0.0, parse-json@npm:^5.2.0": +"parse-json@npm:^5.0.0": version: 5.2.0 resolution: "parse-json@npm:5.2.0" dependencies: @@ -13279,7 +11674,7 @@ __metadata: languageName: node linkType: hard -"parse5@npm:^7.0.0, parse5@npm:^7.1.1": +"parse5@npm:^7.1.2": version: 7.1.2 resolution: "parse5@npm:7.1.2" dependencies: @@ -13356,17 +11751,17 @@ __metadata: languageName: node linkType: hard -"pathe@npm:^1.1.0": - version: 1.1.0 - resolution: "pathe@npm:1.1.0" - checksum: 6b9be9968ea08a90c0824934799707a1c6a1ad22ac1f22080f377e3f75856d5e53a331b01d327329bfce538a14590587cfb250e8e7947f64408797c84c252056 +"pathe@npm:^1.1.0, pathe@npm:^1.1.1, pathe@npm:^1.1.2": + version: 1.1.2 + resolution: "pathe@npm:1.1.2" + checksum: ec5f778d9790e7b9ffc3e4c1df39a5bb1ce94657a4e3ad830c1276491ca9d79f189f47609884671db173400256b005f4955f7952f52a2aeb5834ad5fb4faf134 languageName: node linkType: hard -"pathe@npm:^1.1.1": - version: 1.1.1 - resolution: "pathe@npm:1.1.1" - checksum: 34ab3da2e5aa832ebc6a330ffe3f73d7ba8aec6e899b53b8ec4f4018de08e40742802deb12cf5add9c73b7bf719b62c0778246bd376ca62b0fb23e0dde44b759 +"pathval@npm:^2.0.0": + version: 2.0.0 + resolution: "pathval@npm:2.0.0" + checksum: 682b6a6289de7990909effef7dae9aa7bb6218c0426727bccf66a35b34e7bfbc65615270c5e44e3c9557a5cb44b1b9ef47fc3cb18bce6ad3ba92bcd28467ed7d languageName: node linkType: hard @@ -13377,17 +11772,10 @@ __metadata: languageName: node linkType: hard -"picocolors@npm:^1.0.0": - version: 1.0.0 - resolution: "picocolors@npm:1.0.0" - checksum: a2e8092dd86c8396bdba9f2b5481032848525b3dc295ce9b57896f931e63fc16f79805144321f72976383fc249584672a75cc18d6777c6b757603f372f745981 - languageName: node - linkType: hard - -"picocolors@npm:^1.0.1": - version: 1.0.1 - resolution: "picocolors@npm:1.0.1" - checksum: fa68166d1f56009fc02a34cdfd112b0dd3cf1ef57667ac57281f714065558c01828cdf4f18600ad6851cbe0093952ed0660b1e0156bddf2184b6aaf5817553a5 +"picocolors@npm:^1.0.0, picocolors@npm:^1.0.1, picocolors@npm:^1.1.0": + version: 1.1.0 + resolution: "picocolors@npm:1.1.0" + checksum: a64d653d3a188119ff45781dfcdaeedd7625583f45280aea33fcb032c7a0d3959f2368f9b192ad5e8aade75b74dbd954ffe3106c158509a45e4c18ab379a2acd languageName: node linkType: hard @@ -13494,14 +11882,14 @@ __metadata: languageName: node linkType: hard -"postcss@npm:^8.1.10, postcss@npm:^8.4.21": - version: 8.4.21 - resolution: "postcss@npm:8.4.21" +"postcss@npm:^8.1.10, postcss@npm:^8.4.21, postcss@npm:^8.4.43": + version: 8.4.47 + resolution: "postcss@npm:8.4.47" dependencies: - nanoid: ^3.3.4 - picocolors: ^1.0.0 - source-map-js: ^1.0.2 - checksum: e39ac60ccd1542d4f9d93d894048aac0d686b3bb38e927d8386005718e6793dbbb46930f0a523fe382f1bbd843c6d980aaea791252bf5e176180e5a4336d9679 + nanoid: ^3.3.7 + picocolors: ^1.1.0 + source-map-js: ^1.2.1 + checksum: f78440a9d8f97431dd2ab1ab8e1de64f12f3eff38a3d8d4a33919b96c381046a314658d2de213a5fa5eb296b656de76a3ec269fdea27f16d5ab465b916a0f52c languageName: node linkType: hard @@ -13546,18 +11934,7 @@ __metadata: languageName: node linkType: hard -"pretty-format@npm:^29.0.0, pretty-format@npm:^29.4.3": - version: 29.4.3 - resolution: "pretty-format@npm:29.4.3" - dependencies: - "@jest/schemas": ^29.4.3 - ansi-styles: ^5.0.0 - react-is: ^18.0.0 - checksum: 3258b9a010bd79b3cf73783ad1e4592b6326fc981b6e31b742f316f14e7fbac09b48a9dbf274d092d9bde404db9fe16f518370e121837dc078a597392e6e5cc5 - languageName: node - linkType: hard - -"pretty-format@npm:^29.5.0": +"pretty-format@npm:^29.4.3, pretty-format@npm:^29.5.0": version: 29.5.0 resolution: "pretty-format@npm:29.5.0" dependencies: @@ -13620,16 +11997,6 @@ __metadata: languageName: node linkType: hard -"prompts@npm:^2.0.1": - version: 2.4.2 - resolution: "prompts@npm:2.4.2" - dependencies: - kleur: ^3.0.3 - sisteransi: ^1.0.5 - checksum: d8fd1fe63820be2412c13bfc5d0a01909acc1f0367e32396962e737cb2fc52d004f3302475d5ce7d18a1e8a79985f93ff04ee03007d091029c3f9104bffc007d - languageName: node - linkType: hard - "promzard@npm:^0.3.0": version: 0.3.0 resolution: "promzard@npm:0.3.0" @@ -13696,10 +12063,10 @@ __metadata: languageName: node linkType: hard -"punycode@npm:^2.1.0, punycode@npm:^2.1.1": - version: 2.3.0 - resolution: "punycode@npm:2.3.0" - checksum: 39f760e09a2a3bbfe8f5287cf733ecdad69d6af2fe6f97ca95f24b8921858b91e9ea3c9eeec6e08cede96181b3bb33f95c6ffd8c77e63986508aa2e8159fa200 +"punycode@npm:^2.1.0, punycode@npm:^2.1.1, punycode@npm:^2.3.1": + version: 2.3.1 + resolution: "punycode@npm:2.3.1" + checksum: bb0a0ceedca4c3c57a9b981b90601579058903c62be23c5e8e843d2c2d4148a3ecf029d5133486fb0e1822b098ba8bba09e89d6b21742d02fa26bda6441a6fb2 languageName: node linkType: hard @@ -13904,14 +12271,14 @@ __metadata: languageName: node linkType: hard -"readable-stream@npm:3, readable-stream@npm:^3.0.0, readable-stream@npm:^3.0.2, readable-stream@npm:^3.4.0, readable-stream@npm:^3.6.0": - version: 3.6.0 - resolution: "readable-stream@npm:3.6.0" +"readable-stream@npm:3, readable-stream@npm:^3.0.0, readable-stream@npm:^3.0.2, readable-stream@npm:^3.1.1, readable-stream@npm:^3.4.0, readable-stream@npm:^3.6.0": + version: 3.6.1 + resolution: "readable-stream@npm:3.6.1" dependencies: inherits: ^2.0.3 string_decoder: ^1.1.1 util-deprecate: ^1.0.1 - checksum: d4ea81502d3799439bb955a3a5d1d808592cf3133350ed352aeaa499647858b27b1c4013984900238b0873ec8d0d8defce72469fb7a83e61d53f5ad61cb80dc8 + checksum: b7ab0508dba3c37277b9e43c0a970ea27635375698859a687f558c3c9393154b6c4f39c3aa5689641de183fffa26771bc1a45878ddde0236ad18fc8fdfde50ea languageName: node linkType: hard @@ -13930,17 +12297,6 @@ __metadata: languageName: node linkType: hard -"readable-stream@npm:^3.1.1": - version: 3.6.1 - resolution: "readable-stream@npm:3.6.1" - dependencies: - inherits: ^2.0.3 - string_decoder: ^1.1.1 - util-deprecate: ^1.0.1 - checksum: b7ab0508dba3c37277b9e43c0a970ea27635375698859a687f558c3c9393154b6c4f39c3aa5689641de183fffa26771bc1a45878ddde0236ad18fc8fdfde50ea - languageName: node - linkType: hard - "readdir-scoped-modules@npm:^1.1.0": version: 1.1.0 resolution: "readdir-scoped-modules@npm:1.1.0" @@ -14013,18 +12369,7 @@ __metadata: languageName: node linkType: hard -"regexp.prototype.flags@npm:^1.4.3": - version: 1.4.3 - resolution: "regexp.prototype.flags@npm:1.4.3" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.1.3 - functions-have-names: ^1.2.2 - checksum: 51228bae732592adb3ededd5e15426be25f289e9c4ef15212f4da73f4ec3919b6140806374b8894036a86020d054a8d2657d3fee6bb9b4d35d8939c20030b7a6 - languageName: node - linkType: hard - -"regexp.prototype.flags@npm:^1.5.0": +"regexp.prototype.flags@npm:^1.4.3, regexp.prototype.flags@npm:^1.5.0": version: 1.5.0 resolution: "regexp.prototype.flags@npm:1.5.0" dependencies: @@ -14146,14 +12491,7 @@ __metadata: languageName: node linkType: hard -"resolve.exports@npm:^2.0.0": - version: 2.0.0 - resolution: "resolve.exports@npm:2.0.0" - checksum: d8bee3b0cc0a0ae6c8323710983505bc6a3a2574f718e96f01e048a0f0af035941434b386cc9efc7eededc5e1199726185c306ec6f6a1aa55d5fbad926fd0634 - languageName: node - linkType: hard - -"resolve@npm:^1.10.0, resolve@npm:^1.10.1, resolve@npm:^1.12.0, resolve@npm:^1.14.2, resolve@npm:^1.19.0, resolve@npm:^1.20.0, resolve@npm:^1.22.1": +"resolve@npm:^1.10.0, resolve@npm:^1.10.1, resolve@npm:^1.12.0, resolve@npm:^1.14.2, resolve@npm:^1.19.0, resolve@npm:^1.22.1": version: 1.22.1 resolution: "resolve@npm:1.22.1" dependencies: @@ -14179,7 +12517,7 @@ __metadata: languageName: node linkType: hard -"resolve@patch:resolve@^1.10.0#~builtin, resolve@patch:resolve@^1.10.1#~builtin, resolve@patch:resolve@^1.12.0#~builtin, resolve@patch:resolve@^1.14.2#~builtin, resolve@patch:resolve@^1.19.0#~builtin, resolve@patch:resolve@^1.20.0#~builtin, resolve@patch:resolve@^1.22.1#~builtin": +"resolve@patch:resolve@^1.10.0#~builtin, resolve@patch:resolve@^1.10.1#~builtin, resolve@patch:resolve@^1.12.0#~builtin, resolve@patch:resolve@^1.14.2#~builtin, resolve@patch:resolve@^1.19.0#~builtin, resolve@patch:resolve@^1.22.1#~builtin": version: 1.22.1 resolution: "resolve@patch:resolve@npm%3A1.22.1#~builtin::version=1.22.1&hash=c3c19d" dependencies: @@ -14284,6 +12622,76 @@ __metadata: languageName: node linkType: hard +"rollup@npm:^4.20.0": + version: 4.22.4 + resolution: "rollup@npm:4.22.4" + dependencies: + "@rollup/rollup-android-arm-eabi": 4.22.4 + "@rollup/rollup-android-arm64": 4.22.4 + "@rollup/rollup-darwin-arm64": 4.22.4 + "@rollup/rollup-darwin-x64": 4.22.4 + "@rollup/rollup-linux-arm-gnueabihf": 4.22.4 + "@rollup/rollup-linux-arm-musleabihf": 4.22.4 + "@rollup/rollup-linux-arm64-gnu": 4.22.4 + "@rollup/rollup-linux-arm64-musl": 4.22.4 + "@rollup/rollup-linux-powerpc64le-gnu": 4.22.4 + "@rollup/rollup-linux-riscv64-gnu": 4.22.4 + "@rollup/rollup-linux-s390x-gnu": 4.22.4 + "@rollup/rollup-linux-x64-gnu": 4.22.4 + "@rollup/rollup-linux-x64-musl": 4.22.4 + "@rollup/rollup-win32-arm64-msvc": 4.22.4 + "@rollup/rollup-win32-ia32-msvc": 4.22.4 + "@rollup/rollup-win32-x64-msvc": 4.22.4 + "@types/estree": 1.0.5 + fsevents: ~2.3.2 + dependenciesMeta: + "@rollup/rollup-android-arm-eabi": + optional: true + "@rollup/rollup-android-arm64": + optional: true + "@rollup/rollup-darwin-arm64": + optional: true + "@rollup/rollup-darwin-x64": + optional: true + "@rollup/rollup-linux-arm-gnueabihf": + optional: true + "@rollup/rollup-linux-arm-musleabihf": + optional: true + "@rollup/rollup-linux-arm64-gnu": + optional: true + "@rollup/rollup-linux-arm64-musl": + optional: true + "@rollup/rollup-linux-powerpc64le-gnu": + optional: true + "@rollup/rollup-linux-riscv64-gnu": + optional: true + "@rollup/rollup-linux-s390x-gnu": + optional: true + "@rollup/rollup-linux-x64-gnu": + optional: true + "@rollup/rollup-linux-x64-musl": + optional: true + "@rollup/rollup-win32-arm64-msvc": + optional: true + "@rollup/rollup-win32-ia32-msvc": + optional: true + "@rollup/rollup-win32-x64-msvc": + optional: true + fsevents: + optional: true + bin: + rollup: dist/bin/rollup + checksum: b093b518deb1fd0c0455eef746abe9efa3a2cd7e2b65a4ace9e8fa5d60b3d6da2406816de2c6c1d553609f22cf730f1c5839a05a1ff60003c504486172238d1a + languageName: node + linkType: hard + +"rrweb-cssom@npm:^0.7.1": + version: 0.7.1 + resolution: "rrweb-cssom@npm:0.7.1" + checksum: 62e410ddbaaba6abc196c3bbfa8de4952e0a134d9f2b454ee293039bf9931322d806e14d52ed122a5c2bd332a868b9da2e99358fb6232c33758b5ede86d992c8 + languageName: node + linkType: hard + "run-async@npm:^2.4.0": version: 2.4.1 resolution: "run-async@npm:2.4.1" @@ -14426,16 +12834,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:^6.0.0, semver@npm:^6.1.0, semver@npm:^6.1.1, semver@npm:^6.1.2, semver@npm:^6.3.0": - version: 6.3.0 - resolution: "semver@npm:6.3.0" - bin: - semver: ./bin/semver.js - checksum: 1b26ecf6db9e8292dd90df4e781d91875c0dcc1b1909e70f5d12959a23c7eebb8f01ea581c00783bbee72ceeaad9505797c381756326073850dc36ed284b21b9 - languageName: node - linkType: hard - -"semver@npm:^6.3.1": +"semver@npm:^6.0.0, semver@npm:^6.1.0, semver@npm:^6.1.1, semver@npm:^6.1.2, semver@npm:^6.3.0, semver@npm:^6.3.1": version: 6.3.1 resolution: "semver@npm:6.3.1" bin: @@ -14496,6 +12895,13 @@ __metadata: languageName: node linkType: hard +"siginfo@npm:^2.0.0": + version: 2.0.0 + resolution: "siginfo@npm:2.0.0" + checksum: 8aa5a98640ca09fe00d74416eca97551b3e42991614a3d1b824b115fc1401543650914f651ab1311518177e4d297e80b953f4cd4cd7ea1eabe824e8f2091de01 + languageName: node + linkType: hard + "signal-exit@npm:3.0.7, signal-exit@npm:^3.0.0, signal-exit@npm:^3.0.2, signal-exit@npm:^3.0.3, signal-exit@npm:^3.0.7": version: 3.0.7 resolution: "signal-exit@npm:3.0.7" @@ -14510,13 +12916,6 @@ __metadata: languageName: node linkType: hard -"sisteransi@npm:^1.0.5": - version: 1.0.5 - resolution: "sisteransi@npm:1.0.5" - checksum: aba6438f46d2bfcef94cf112c835ab395172c75f67453fe05c340c770d3c402363018ae1ab4172a1026a90c47eaccf3af7b6ff6fa749a680c2929bd7fa2b37a4 - languageName: node - linkType: hard - "size-limit@npm:^8.1.1": version: 8.1.2 resolution: "size-limit@npm:8.1.2" @@ -14632,20 +13031,10 @@ __metadata: languageName: node linkType: hard -"source-map-js@npm:^1.0.2": - version: 1.0.2 - resolution: "source-map-js@npm:1.0.2" - checksum: c049a7fc4deb9a7e9b481ae3d424cc793cb4845daa690bc5a05d428bf41bf231ced49b4cf0c9e77f9d42fdb3d20d6187619fc586605f5eabe995a316da8d377c - languageName: node - linkType: hard - -"source-map-support@npm:0.5.13": - version: 0.5.13 - resolution: "source-map-support@npm:0.5.13" - dependencies: - buffer-from: ^1.0.0 - source-map: ^0.6.0 - checksum: 933550047b6c1a2328599a21d8b7666507427c0f5ef5eaadd56b5da0fd9505e239053c66fe181bf1df469a3b7af9d775778eee283cbb7ae16b902ddc09e93a97 +"source-map-js@npm:^1.2.1": + version: 1.2.1 + resolution: "source-map-js@npm:1.2.1" + checksum: 4eb0cd997cdf228bc253bcaff9340afeb706176e64868ecd20efbe6efea931465f43955612346d6b7318789e5265bdc419bc7669c1cebe3db0eb255f57efa76b languageName: node linkType: hard @@ -14789,6 +13178,20 @@ __metadata: languageName: node linkType: hard +"stackback@npm:0.0.2": + version: 0.0.2 + resolution: "stackback@npm:0.0.2" + checksum: 2d4dc4e64e2db796de4a3c856d5943daccdfa3dd092e452a1ce059c81e9a9c29e0b9badba91b43ef0d5ff5c04ee62feb3bcc559a804e16faf447bac2d883aa99 + languageName: node + linkType: hard + +"std-env@npm:^3.7.0": + version: 3.7.0 + resolution: "std-env@npm:3.7.0" + checksum: 4f489d13ff2ab838c9acd4ed6b786b51aa52ecacdfeaefe9275fcb220ff2ac80c6e95674723508fd29850a694569563a8caaaea738eb82ca16429b3a0b50e510 + languageName: node + linkType: hard + "stop-iteration-iterator@npm:^1.0.0": version: 1.0.0 resolution: "stop-iteration-iterator@npm:1.0.0" @@ -14805,16 +13208,6 @@ __metadata: languageName: node linkType: hard -"string-length@npm:^4.0.1": - version: 4.0.2 - resolution: "string-length@npm:4.0.2" - dependencies: - char-regex: ^1.0.2 - strip-ansi: ^6.0.0 - checksum: ce85533ef5113fcb7e522bcf9e62cb33871aa99b3729cec5595f4447f660b0cefd542ca6df4150c97a677d58b0cb727a3fe09ac1de94071d05526c73579bf505 - languageName: node - linkType: hard - "string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^1.0.2 || 2 || 3 || 4, string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.3": version: 4.2.3 resolution: "string-width@npm:4.2.3" @@ -15225,6 +13618,59 @@ __metadata: languageName: node linkType: hard +"tinybench@npm:^2.9.0": + version: 2.9.0 + resolution: "tinybench@npm:2.9.0" + checksum: 1ab00d7dfe0d1f127cbf00822bacd9024f7a50a3ecd1f354a8168e0b7d2b53a639a24414e707c27879d1adc0f5153141d51d76ebd7b4d37fe245e742e5d91fe8 + languageName: node + linkType: hard + +"tinyexec@npm:^0.3.0": + version: 0.3.0 + resolution: "tinyexec@npm:0.3.0" + checksum: e55473d249b8fc94bc5b1461d8e368dfe0ba23dcfca4f9069fe25418b17772e50110a1d33cd7ac8ff26456e5b609e0528cce7660e35246fad9b00bd094f3f444 + languageName: node + linkType: hard + +"tinypool@npm:^1.0.0": + version: 1.0.1 + resolution: "tinypool@npm:1.0.1" + checksum: 5cd6b8cbccd9b88d461f400c9599e69f66563ddf75a2b8ab6b48250481f1b254d180a68ee735f379fa6eb88f11c3b1814735bb1f3306b1a860bf6d8f08074d6b + languageName: node + linkType: hard + +"tinyrainbow@npm:^1.2.0": + version: 1.2.0 + resolution: "tinyrainbow@npm:1.2.0" + checksum: d1e2cb5400032c0092be00e4a3da5450bea8b4fad58bfb5d3c58ca37ff5c5e252f7fcfb9af247914854af79c46014add9d1042fe044358c305a129ed55c8be35 + languageName: node + linkType: hard + +"tinyspy@npm:^3.0.0": + version: 3.0.2 + resolution: "tinyspy@npm:3.0.2" + checksum: 5db671b2ff5cd309de650c8c4761ca945459d7204afb1776db9a04fb4efa28a75f08517a8620c01ee32a577748802231ad92f7d5b194dc003ee7f987a2a06337 + languageName: node + linkType: hard + +"tldts-core@npm:^6.1.47": + version: 6.1.47 + resolution: "tldts-core@npm:6.1.47" + checksum: c0a003dcc0d5f6432bc5646f41243244480408f225b160c2ca9c8906fd1c159905af7c9000ee75cda2ba8e5db38cdeffcb9de66d7f078d987a4a5a491fec5ac8 + languageName: node + linkType: hard + +"tldts@npm:^6.1.32": + version: 6.1.47 + resolution: "tldts@npm:6.1.47" + dependencies: + tldts-core: ^6.1.47 + bin: + tldts: bin/cli.js + checksum: dbea62f39c0523428d94fd36098ea845bc509b23e2712e4f2c520da1a89a1abda7ea294226d5a6e9ab321f139c8d932e72535f40dfe3c9a42d23a5d3ac6d29c2 + languageName: node + linkType: hard + "tmp@npm:^0.0.33": version: 0.0.33 resolution: "tmp@npm:0.0.33" @@ -15266,7 +13712,7 @@ __metadata: languageName: node linkType: hard -"tough-cookie@npm:^4.0.0, tough-cookie@npm:^4.1.2": +"tough-cookie@npm:^4.0.0": version: 4.1.2 resolution: "tough-cookie@npm:4.1.2" dependencies: @@ -15278,6 +13724,15 @@ __metadata: languageName: node linkType: hard +"tough-cookie@npm:^5.0.0": + version: 5.0.0 + resolution: "tough-cookie@npm:5.0.0" + dependencies: + tldts: ^6.1.32 + checksum: 774f6c939c96f74b5847361f7e11e0d69383681d21a35a2d37a20956638e614ec521782d2d20bcb32b58638ff337bba87cc72fb72c987bd02ea0fdfc93994cdb + languageName: node + linkType: hard + "tough-cookie@npm:~2.5.0": version: 2.5.0 resolution: "tough-cookie@npm:2.5.0" @@ -15306,12 +13761,12 @@ __metadata: languageName: node linkType: hard -"tr46@npm:^3.0.0": - version: 3.0.0 - resolution: "tr46@npm:3.0.0" +"tr46@npm:^5.0.0": + version: 5.0.0 + resolution: "tr46@npm:5.0.0" dependencies: - punycode: ^2.1.1 - checksum: 44c3cc6767fb800490e6e9fd64fd49041aa4e49e1f6a012b34a75de739cc9ed3a6405296072c1df8b6389ae139c5e7c6496f659cfe13a04a4bff3a1422981270 + punycode: ^2.3.1 + checksum: 8d8b021f8e17675ebf9e672c224b6b6cfdb0d5b92141349e9665c14a2501c54a298d11264bbb0b17b447581e1e83d4fc3c038c929f3d210e3964d4be47460288 languageName: node linkType: hard @@ -15448,20 +13903,13 @@ __metadata: languageName: node linkType: hard -"tslib@npm:^2.1.0, tslib@npm:^2.3.0, tslib@npm:^2.4.0, tslib@npm:^2.5.0": +"tslib@npm:^2.1.0, tslib@npm:^2.3.0, tslib@npm:^2.4.0, tslib@npm:^2.4.1, tslib@npm:^2.5.0": version: 2.5.0 resolution: "tslib@npm:2.5.0" checksum: ae3ed5f9ce29932d049908ebfdf21b3a003a85653a9a140d614da6b767a93ef94f460e52c3d787f0e4f383546981713f165037dc2274df212ea9f8a4541004e1 languageName: node linkType: hard -"tslib@npm:^2.4.1": - version: 2.4.1 - resolution: "tslib@npm:2.4.1" - checksum: 19480d6e0313292bd6505d4efe096a6b31c70e21cf08b5febf4da62e95c265c8f571f7b36fcc3d1a17e068032f59c269fab3459d6cd3ed6949eafecf64315fca - languageName: node - linkType: hard - "tsutils@npm:^3.21.0": version: 3.21.0 resolution: "tsutils@npm:3.21.0" @@ -15780,34 +14228,6 @@ __metadata: languageName: node linkType: hard -"update-browserslist-db@npm:^1.0.10, update-browserslist-db@npm:^1.0.9": - version: 1.0.10 - resolution: "update-browserslist-db@npm:1.0.10" - dependencies: - escalade: ^3.1.1 - picocolors: ^1.0.0 - peerDependencies: - browserslist: ">= 4.21.0" - bin: - browserslist-lint: cli.js - checksum: 12db73b4f63029ac407b153732e7cd69a1ea8206c9100b482b7d12859cd3cd0bc59c602d7ae31e652706189f1acb90d42c53ab24a5ba563ed13aebdddc5561a0 - languageName: node - linkType: hard - -"update-browserslist-db@npm:^1.0.11": - version: 1.0.11 - resolution: "update-browserslist-db@npm:1.0.11" - dependencies: - escalade: ^3.1.1 - picocolors: ^1.0.0 - peerDependencies: - browserslist: ">= 4.21.0" - bin: - update-browserslist-db: cli.js - checksum: b98327518f9a345c7cad5437afae4d2ae7d865f9779554baf2a200fdf4bac4969076b679b1115434bd6557376bdd37ca7583d0f9b8f8e302d7d4cc1e91b5f231 - languageName: node - linkType: hard - "update-browserslist-db@npm:^1.0.16": version: 1.1.0 resolution: "update-browserslist-db@npm:1.1.0" @@ -15873,17 +14293,6 @@ __metadata: languageName: node linkType: hard -"v8-to-istanbul@npm:^9.0.1": - version: 9.1.0 - resolution: "v8-to-istanbul@npm:9.1.0" - dependencies: - "@jridgewell/trace-mapping": ^0.3.12 - "@types/istanbul-lib-coverage": ^2.0.1 - convert-source-map: ^1.6.0 - checksum: 2069d59ee46cf8d83b4adfd8a5c1a90834caffa9f675e4360f1157ffc8578ef0f763c8f32d128334424159bb6b01f3876acd39cd13297b2769405a9da241f8d1 - languageName: node - linkType: hard - "validate-npm-package-license@npm:3.0.4, validate-npm-package-license@npm:^3.0.1, validate-npm-package-license@npm:^3.0.4": version: 3.0.4 resolution: "validate-npm-package-license@npm:3.0.4" @@ -15923,6 +14332,20 @@ __metadata: languageName: node linkType: hard +"vite-node@npm:2.1.1": + version: 2.1.1 + resolution: "vite-node@npm:2.1.1" + dependencies: + cac: ^6.7.14 + debug: ^4.3.6 + pathe: ^1.1.2 + vite: ^5.0.0 + bin: + vite-node: vite-node.mjs + checksum: b44cad7c82d2101ab9e6f3c90f27fed879c0bc8001493ca138d38984795b27393ecaef904a4d8d70abb0f7215b8eb05de15be6cc261134ca7c72d23017571551 + languageName: node + linkType: hard + "vite-plugin-babel-macros@npm:^1.0.6": version: 1.0.6 resolution: "vite-plugin-babel-macros@npm:1.0.6" @@ -15976,6 +14399,98 @@ __metadata: languageName: node linkType: hard +"vite@npm:^5.0.0": + version: 5.4.7 + resolution: "vite@npm:5.4.7" + dependencies: + esbuild: ^0.21.3 + fsevents: ~2.3.3 + postcss: ^8.4.43 + rollup: ^4.20.0 + peerDependencies: + "@types/node": ^18.0.0 || >=20.0.0 + less: "*" + lightningcss: ^1.21.0 + sass: "*" + sass-embedded: "*" + stylus: "*" + sugarss: "*" + terser: ^5.4.0 + dependenciesMeta: + fsevents: + optional: true + peerDependenciesMeta: + "@types/node": + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + bin: + vite: bin/vite.js + checksum: aecb3380a85b8b2df9cbd01077b132e042b5a9f9bc87a302ccd69c5e528323eb4972ae41c430d8336a5d1d3ca253beb5e92ce74bc4e5fca3d0dd8651daa33d03 + languageName: node + linkType: hard + +"vitest@npm:^2.1.1": + version: 2.1.1 + resolution: "vitest@npm:2.1.1" + dependencies: + "@vitest/expect": 2.1.1 + "@vitest/mocker": 2.1.1 + "@vitest/pretty-format": ^2.1.1 + "@vitest/runner": 2.1.1 + "@vitest/snapshot": 2.1.1 + "@vitest/spy": 2.1.1 + "@vitest/utils": 2.1.1 + chai: ^5.1.1 + debug: ^4.3.6 + magic-string: ^0.30.11 + pathe: ^1.1.2 + std-env: ^3.7.0 + tinybench: ^2.9.0 + tinyexec: ^0.3.0 + tinypool: ^1.0.0 + tinyrainbow: ^1.2.0 + vite: ^5.0.0 + vite-node: 2.1.1 + why-is-node-running: ^2.3.0 + peerDependencies: + "@edge-runtime/vm": "*" + "@types/node": ^18.0.0 || >=20.0.0 + "@vitest/browser": 2.1.1 + "@vitest/ui": 2.1.1 + happy-dom: "*" + jsdom: "*" + peerDependenciesMeta: + "@edge-runtime/vm": + optional: true + "@types/node": + optional: true + "@vitest/browser": + optional: true + "@vitest/ui": + optional: true + happy-dom: + optional: true + jsdom: + optional: true + bin: + vitest: vitest.mjs + checksum: cf8e2ff098464287729ef62da83b016ed1398642959ef947669401316a70c12d6a4de9b8962220b3fc133f88ce2c153c5c3944f4ad6d360d5bca8cfa2cec0243 + languageName: node + linkType: hard + "w3c-hr-time@npm:^1.0.2": version: 1.0.2 resolution: "w3c-hr-time@npm:1.0.2" @@ -15994,12 +14509,12 @@ __metadata: languageName: node linkType: hard -"w3c-xmlserializer@npm:^4.0.0": - version: 4.0.0 - resolution: "w3c-xmlserializer@npm:4.0.0" +"w3c-xmlserializer@npm:^5.0.0": + version: 5.0.0 + resolution: "w3c-xmlserializer@npm:5.0.0" dependencies: - xml-name-validator: ^4.0.0 - checksum: eba070e78deb408ae8defa4d36b429f084b2b47a4741c4a9be3f27a0a3d1845e277e3072b04391a138f7e43776842627d1334e448ff13ff90ad9fb1214ee7091 + xml-name-validator: ^5.0.0 + checksum: 593acc1fdab3f3207ec39d851e6df0f3fa41a36b5809b0ace364c7a6d92e351938c53424a7618ce8e0fbaffee8be2e8e070a5734d05ee54666a8bdf1a376cc40 languageName: node linkType: hard @@ -16126,12 +14641,12 @@ __metadata: languageName: node linkType: hard -"whatwg-encoding@npm:^2.0.0": - version: 2.0.0 - resolution: "whatwg-encoding@npm:2.0.0" +"whatwg-encoding@npm:^3.1.1": + version: 3.1.1 + resolution: "whatwg-encoding@npm:3.1.1" dependencies: iconv-lite: 0.6.3 - checksum: 7087810c410aa9b689cbd6af8773341a53cdc1f3aae2a882c163bd5522ec8ca4cdfc269aef417a5792f411807d5d77d50df4c24e3abb00bb60192858a40cc675 + checksum: f75a61422421d991e4aec775645705beaf99a16a88294d68404866f65e92441698a4f5b9fa11dd609017b132d7b286c3c1534e2de5b3e800333856325b549e3c languageName: node linkType: hard @@ -16142,20 +14657,20 @@ __metadata: languageName: node linkType: hard -"whatwg-mimetype@npm:^3.0.0": - version: 3.0.0 - resolution: "whatwg-mimetype@npm:3.0.0" - checksum: ce08bbb36b6aaf64f3a84da89707e3e6a31e5ab1c1a2379fd68df79ba712a4ab090904f0b50e6693b0dafc8e6343a6157e40bf18fdffd26e513cf95ee2a59824 +"whatwg-mimetype@npm:^4.0.0": + version: 4.0.0 + resolution: "whatwg-mimetype@npm:4.0.0" + checksum: f97edd4b4ee7e46a379f3fb0e745de29fe8b839307cc774300fd49059fcdd560d38cb8fe21eae5575b8f39b022f23477cc66e40b0355c2851ce84760339cef30 languageName: node linkType: hard -"whatwg-url@npm:^11.0.0": - version: 11.0.0 - resolution: "whatwg-url@npm:11.0.0" +"whatwg-url@npm:^14.0.0": + version: 14.0.0 + resolution: "whatwg-url@npm:14.0.0" dependencies: - tr46: ^3.0.0 + tr46: ^5.0.0 webidl-conversions: ^7.0.0 - checksum: ed4826aaa57e66bb3488a4b25c9cd476c46ba96052747388b5801f137dd740b73fde91ad207d96baf9f17fbcc80fc1a477ad65181b5eb5fa718d27c69501d7af + checksum: 4b5887e50f786583bead70916413e67a381d2126899b9eb5c67ce664bba1e7ec07cdff791404581ce73c6190d83c359c9ca1d50711631217905db3877dec075c languageName: node linkType: hard @@ -16241,6 +14756,18 @@ __metadata: languageName: node linkType: hard +"why-is-node-running@npm:^2.3.0": + version: 2.3.0 + resolution: "why-is-node-running@npm:2.3.0" + dependencies: + siginfo: ^2.0.0 + stackback: 0.0.2 + bin: + why-is-node-running: cli.js + checksum: 58ebbf406e243ace97083027f0df7ff4c2108baf2595bb29317718ef207cc7a8104e41b711ff65d6fa354f25daa8756b67f2f04931a4fd6ba9d13ae8197496fb + languageName: node + linkType: hard + "wide-align@npm:^1.1.0, wide-align@npm:^1.1.5": version: 1.1.5 resolution: "wide-align@npm:1.1.5" @@ -16375,9 +14902,9 @@ __metadata: languageName: node linkType: hard -"ws@npm:^8.11.0": - version: 8.12.1 - resolution: "ws@npm:8.12.1" +"ws@npm:^8.18.0": + version: 8.18.0 + resolution: "ws@npm:8.18.0" peerDependencies: bufferutil: ^4.0.1 utf-8-validate: ">=5.0.2" @@ -16386,7 +14913,7 @@ __metadata: optional: true utf-8-validate: optional: true - checksum: 97301c1c4d838fc81bd413f370f75c12aabe44527b31323b761eab3043a9ecb7e32ffd668548382c9a6a5ad3a1c3a9249608e8338e6b939f2f9540f1e21970b5 + checksum: 91d4d35bc99ff6df483bdf029b9ea4bfd7af1f16fc91231a96777a63d263e1eabf486e13a2353970efc534f9faa43bdbf9ee76525af22f4752cbc5ebda333975 languageName: node linkType: hard @@ -16397,10 +14924,10 @@ __metadata: languageName: node linkType: hard -"xml-name-validator@npm:^4.0.0": - version: 4.0.0 - resolution: "xml-name-validator@npm:4.0.0" - checksum: af100b79c29804f05fa35aa3683e29a321db9b9685d5e5febda3fa1e40f13f85abc40f45a6b2bf7bee33f68a1dc5e8eaef4cec100a304a9db565e6061d4cb5ad +"xml-name-validator@npm:^5.0.0": + version: 5.0.0 + resolution: "xml-name-validator@npm:5.0.0" + checksum: 86effcc7026f437701252fcc308b877b4bc045989049cfc79b0cc112cb365cf7b009f4041fab9fb7cd1795498722c3e9fe9651afc66dfa794c16628a639a4c45 languageName: node linkType: hard @@ -16489,7 +15016,7 @@ __metadata: languageName: node linkType: hard -"yargs@npm:^17.3.1, yargs@npm:^17.6.2": +"yargs@npm:^17.6.2": version: 17.7.1 resolution: "yargs@npm:17.7.1" dependencies: From e23c36fb53f44eeb0413d9736ba2ef0042c064f4 Mon Sep 17 00:00:00 2001 From: Timofei Iatsenko Date: Tue, 24 Sep 2024 16:27:36 +0200 Subject: [PATCH 02/24] add packages --- .../babel-plugin-extract-messages/package.json | 3 ++- packages/babel-plugin-lingui-macro/package.json | 3 ++- packages/cli/package.json | 3 ++- packages/conf/package.json | 3 ++- packages/core/package.json | 3 ++- packages/detect-locale/package.json | 3 ++- packages/extractor-vue/package.json | 3 ++- packages/format-csv/package.json | 3 ++- packages/format-json/package.json | 3 ++- packages/format-po-gettext/package.json | 3 ++- packages/format-po/package.json | 3 ++- packages/format-po/src/po.test.ts | 2 +- packages/loader/package.json | 1 + packages/message-utils/package.json | 3 ++- packages/react/package.json | 3 ++- packages/remote-loader/package.json | 3 ++- packages/vite-plugin/package.json | 3 ++- yarn.lock | 16 ++++++++++++++++ 18 files changed, 48 insertions(+), 16 deletions(-) diff --git a/packages/babel-plugin-extract-messages/package.json b/packages/babel-plugin-extract-messages/package.json index 1ad247a4d..8a75b1586 100644 --- a/packages/babel-plugin-extract-messages/package.json +++ b/packages/babel-plugin-extract-messages/package.json @@ -45,6 +45,7 @@ "@babel/types": "^7.20.7", "@lingui/babel-plugin-lingui-macro": "workspace:*", "@lingui/jest-mocks": "workspace:*", - "unbuild": "2.0.0" + "unbuild": "2.0.0", + "vitest": "^2.1.1" } } diff --git a/packages/babel-plugin-lingui-macro/package.json b/packages/babel-plugin-lingui-macro/package.json index 95cf51664..778faffde 100644 --- a/packages/babel-plugin-lingui-macro/package.json +++ b/packages/babel-plugin-lingui-macro/package.json @@ -101,6 +101,7 @@ "@babel/traverse": "^7.20.12", "@types/babel-plugin-macros": "^2.8.5", "prettier": "2.8.3", - "unbuild": "2.0.0" + "unbuild": "2.0.0", + "vitest": "^2.1.1" } } diff --git a/packages/cli/package.json b/packages/cli/package.json index 9d24e8ca0..48a0c75b4 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -85,6 +85,7 @@ "@types/micromatch": "^4.0.1", "@types/normalize-path": "^3.0.0", "mock-fs": "^5.2.0", - "mockdate": "^3.0.5" + "mockdate": "^3.0.5", + "vitest": "^2.1.1" } } diff --git a/packages/conf/package.json b/packages/conf/package.json index 9db3f561e..b64fcf0d8 100644 --- a/packages/conf/package.json +++ b/packages/conf/package.json @@ -40,6 +40,7 @@ "devDependencies": { "@lingui/jest-mocks": "*", "tsd": "^0.26.1", - "unbuild": "^2.0.0" + "unbuild": "^2.0.0", + "vitest": "^2.1.1" } } diff --git a/packages/core/package.json b/packages/core/package.json index 500ad5d8d..9dbf73602 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -66,7 +66,8 @@ "devDependencies": { "@lingui/jest-mocks": "*", "tsd": "^0.26.1", - "unbuild": "2.0.0" + "unbuild": "2.0.0", + "vitest": "^2.1.1" }, "peerDependencies": { "@lingui/babel-plugin-lingui-macro": "5.0.0-next.1", diff --git a/packages/detect-locale/package.json b/packages/detect-locale/package.json index c98441677..9b2302e41 100644 --- a/packages/detect-locale/package.json +++ b/packages/detect-locale/package.json @@ -54,6 +54,7 @@ ], "devDependencies": { "jsdom": "^16.4.0", - "unbuild": "2.0.0" + "unbuild": "2.0.0", + "vitest": "^2.1.1" } } diff --git a/packages/extractor-vue/package.json b/packages/extractor-vue/package.json index ead7bd148..c1c8d9b9a 100644 --- a/packages/extractor-vue/package.json +++ b/packages/extractor-vue/package.json @@ -44,6 +44,7 @@ }, "devDependencies": { "@lingui/babel-plugin-extract-messages": "5.0.0-next.1", - "unbuild": "2.0.0" + "unbuild": "2.0.0", + "vitest": "^2.1.1" } } diff --git a/packages/format-csv/package.json b/packages/format-csv/package.json index dbccf8a53..f38e672ba 100644 --- a/packages/format-csv/package.json +++ b/packages/format-csv/package.json @@ -44,6 +44,7 @@ }, "devDependencies": { "tsd": "^0.28.0", - "unbuild": "2.0.0" + "unbuild": "2.0.0", + "vitest": "^2.1.1" } } diff --git a/packages/format-json/package.json b/packages/format-json/package.json index 976987b2b..dc1b6f061 100644 --- a/packages/format-json/package.json +++ b/packages/format-json/package.json @@ -44,6 +44,7 @@ }, "devDependencies": { "tsd": "^0.28.0", - "unbuild": "^2.0.0" + "unbuild": "^2.0.0", + "vitest": "^2.1.1" } } diff --git a/packages/format-po-gettext/package.json b/packages/format-po-gettext/package.json index f1a5f7e6e..f981c0187 100644 --- a/packages/format-po-gettext/package.json +++ b/packages/format-po-gettext/package.json @@ -53,6 +53,7 @@ "@lingui/jest-mocks": "workspace:^", "mockdate": "^3.0.5", "tsd": "^0.28.0", - "unbuild": "2.0.0" + "unbuild": "2.0.0", + "vitest": "^2.1.1" } } diff --git a/packages/format-po/package.json b/packages/format-po/package.json index e5c0c6bc9..9ba4afc1e 100644 --- a/packages/format-po/package.json +++ b/packages/format-po/package.json @@ -50,6 +50,7 @@ "@lingui/jest-mocks": "workspace:^", "mockdate": "^3.0.5", "tsd": "^0.28.0", - "unbuild": "2.0.0" + "unbuild": "2.0.0", + "vitest": "^2.1.1" } } diff --git a/packages/format-po/src/po.test.ts b/packages/format-po/src/po.test.ts index bf04ab47b..db678d567 100644 --- a/packages/format-po/src/po.test.ts +++ b/packages/format-po/src/po.test.ts @@ -1,4 +1,4 @@ -import { describe, expect, it } from "vitest"; +import { describe, expect, it, beforeAll, afterAll } from "vitest" import fs from "fs" import path from "path" diff --git a/packages/loader/package.json b/packages/loader/package.json index b97edc061..7c701ed0c 100644 --- a/packages/loader/package.json +++ b/packages/loader/package.json @@ -49,6 +49,7 @@ "devDependencies": { "@lingui/format-json": "5.0.0-next.1", "unbuild": "2.0.0", + "vitest": "^2.1.1", "webpack": "^5.76.1" }, "peerDependencies": { diff --git a/packages/message-utils/package.json b/packages/message-utils/package.json index 1949dceef..ff14690f1 100644 --- a/packages/message-utils/package.json +++ b/packages/message-utils/package.json @@ -52,6 +52,7 @@ }, "devDependencies": { "@lingui/jest-mocks": "workspace:^", - "unbuild": "2.0.0" + "unbuild": "2.0.0", + "vitest": "^2.1.1" } } diff --git a/packages/react/package.json b/packages/react/package.json index 8f898e273..312030567 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -102,6 +102,7 @@ "react": "^18.2.0", "react-dom": "^18.2.0", "tsd": "^0.26.1", - "unbuild": "2.0.0" + "unbuild": "2.0.0", + "vitest": "^2.1.1" } } diff --git a/packages/remote-loader/package.json b/packages/remote-loader/package.json index 169a8a457..08d370d5d 100644 --- a/packages/remote-loader/package.json +++ b/packages/remote-loader/package.json @@ -54,6 +54,7 @@ "ramda": "^0.27.1" }, "devDependencies": { - "unbuild": "2.0.0" + "unbuild": "2.0.0", + "vitest": "^2.1.1" } } diff --git a/packages/vite-plugin/package.json b/packages/vite-plugin/package.json index 268900128..65d3c64d7 100644 --- a/packages/vite-plugin/package.json +++ b/packages/vite-plugin/package.json @@ -50,6 +50,7 @@ "@lingui/format-json": "workspace:^", "unbuild": "2.0.0", "vite": "4.1.4", - "vite-plugin-babel-macros": "^1.0.6" + "vite-plugin-babel-macros": "^1.0.6", + "vitest": "^2.1.1" } } diff --git a/yarn.lock b/yarn.lock index 90772cb78..a7b6a1538 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2470,6 +2470,7 @@ __metadata: "@lingui/babel-plugin-lingui-macro": "workspace:*" "@lingui/jest-mocks": "workspace:*" unbuild: 2.0.0 + vitest: ^2.1.1 languageName: unknown linkType: soft @@ -2488,6 +2489,7 @@ __metadata: "@types/babel-plugin-macros": ^2.8.5 prettier: 2.8.3 unbuild: 2.0.0 + vitest: ^2.1.1 peerDependencies: babel-plugin-macros: 2 || 3 peerDependenciesMeta: @@ -2536,6 +2538,7 @@ __metadata: pseudolocale: ^2.0.0 ramda: ^0.27.1 source-map: ^0.8.0-beta.0 + vitest: ^2.1.1 bin: lingui: ./dist/lingui.js languageName: unknown @@ -2554,6 +2557,7 @@ __metadata: lodash.get: ^4.4.2 tsd: ^0.26.1 unbuild: ^2.0.0 + vitest: ^2.1.1 languageName: unknown linkType: soft @@ -2567,6 +2571,7 @@ __metadata: tsd: ^0.26.1 unbuild: 2.0.0 unraw: ^3.0.0 + vitest: ^2.1.1 peerDependencies: "@lingui/babel-plugin-lingui-macro": 5.0.0-next.1 babel-plugin-macros: 2 || 3 @@ -2594,6 +2599,7 @@ __metadata: dependencies: jsdom: ^16.4.0 unbuild: 2.0.0 + vitest: ^2.1.1 languageName: unknown linkType: soft @@ -2606,6 +2612,7 @@ __metadata: "@lingui/conf": 5.0.0-next.1 "@vue/compiler-sfc": ^3.2.47 unbuild: 2.0.0 + vitest: ^2.1.1 languageName: unknown linkType: soft @@ -2617,6 +2624,7 @@ __metadata: papaparse: ^5.4.0 tsd: ^0.28.0 unbuild: 2.0.0 + vitest: ^2.1.1 languageName: unknown linkType: soft @@ -2628,6 +2636,7 @@ __metadata: ramda: ^0.28.0 tsd: ^0.28.0 unbuild: ^2.0.0 + vitest: ^2.1.1 languageName: unknown linkType: soft @@ -2646,6 +2655,7 @@ __metadata: pofile: ^1.1.4 tsd: ^0.28.0 unbuild: 2.0.0 + vitest: ^2.1.1 languageName: unknown linkType: soft @@ -2661,6 +2671,7 @@ __metadata: pofile: ^1.1.4 tsd: ^0.28.0 unbuild: 2.0.0 + vitest: ^2.1.1 languageName: unknown linkType: soft @@ -2679,6 +2690,7 @@ __metadata: "@lingui/conf": 5.0.0-next.1 "@lingui/format-json": 5.0.0-next.1 unbuild: 2.0.0 + vitest: ^2.1.1 webpack: ^5.76.1 peerDependencies: webpack: ^5.0.0 @@ -2710,6 +2722,7 @@ __metadata: "@messageformat/parser": ^5.0.0 js-sha256: ^0.10.1 unbuild: 2.0.0 + vitest: ^2.1.1 languageName: unknown linkType: soft @@ -2737,6 +2750,7 @@ __metadata: react-dom: ^18.2.0 tsd: ^0.26.1 unbuild: 2.0.0 + vitest: ^2.1.1 peerDependencies: "@lingui/babel-plugin-lingui-macro": 5.0.0-next.1 babel-plugin-macros: 2 || 3 @@ -2757,6 +2771,7 @@ __metadata: "@lingui/message-utils": 4.0.0 ramda: ^0.27.1 unbuild: 2.0.0 + vitest: ^2.1.1 languageName: unknown linkType: soft @@ -2771,6 +2786,7 @@ __metadata: unbuild: 2.0.0 vite: 4.1.4 vite-plugin-babel-macros: ^1.0.6 + vitest: ^2.1.1 peerDependencies: vite: ^3 || ^4 || ^5.0.9 languageName: unknown From ed066cd7648487adf0bddcac7f8cbcec5eb14e83 Mon Sep 17 00:00:00 2001 From: Timofei Iatsenko Date: Tue, 24 Sep 2024 16:30:00 +0200 Subject: [PATCH 03/24] fix missing methods --- packages/cli/src/api/catalog.test.ts | 4 ++-- packages/cli/src/api/catalog/getCatalogDependentFiles.test.ts | 2 +- packages/cli/src/api/catalog/getCatalogs.test.ts | 2 +- packages/format-po-gettext/src/po-gettext.test.ts | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/cli/src/api/catalog.test.ts b/packages/cli/src/api/catalog.test.ts index 3a4b79de5..67f83cce9 100644 --- a/packages/cli/src/api/catalog.test.ts +++ b/packages/cli/src/api/catalog.test.ts @@ -1,4 +1,4 @@ -import { afterEach, describe, expect, it } from "vitest"; +import { afterEach, beforeAll, describe, expect, it } from "vitest" import fs from "fs" import path from "path" import mockFs from "mock-fs" @@ -449,7 +449,7 @@ describe("Catalog", () => { expect(messages).toMatchSnapshot() }) - xit("should read file in previous format", async () => { + it.skip("should read file in previous format", async () => { mockFs({ en: { "messages.json": fs.readFileSync( diff --git a/packages/cli/src/api/catalog/getCatalogDependentFiles.test.ts b/packages/cli/src/api/catalog/getCatalogDependentFiles.test.ts index caf041fc9..51bd2014c 100644 --- a/packages/cli/src/api/catalog/getCatalogDependentFiles.test.ts +++ b/packages/cli/src/api/catalog/getCatalogDependentFiles.test.ts @@ -1,4 +1,4 @@ -import { afterEach, describe, expect, it } from "vitest"; +import { afterEach, beforeAll, describe, expect, it } from "vitest" import { getCatalogDependentFiles, getFormat } from "@lingui/cli/api" import { makeConfig } from "@lingui/conf" import { Catalog } from "../catalog" diff --git a/packages/cli/src/api/catalog/getCatalogs.test.ts b/packages/cli/src/api/catalog/getCatalogs.test.ts index fc3f748d5..0d49e6ded 100644 --- a/packages/cli/src/api/catalog/getCatalogs.test.ts +++ b/packages/cli/src/api/catalog/getCatalogs.test.ts @@ -1,4 +1,4 @@ -import { afterEach, describe, expect, it } from "vitest"; +import { afterEach, beforeAll, describe, expect, it } from "vitest" import mockFs from "mock-fs" import { getCatalogForFile, diff --git a/packages/format-po-gettext/src/po-gettext.test.ts b/packages/format-po-gettext/src/po-gettext.test.ts index 7cc49545d..d2c771ee2 100644 --- a/packages/format-po-gettext/src/po-gettext.test.ts +++ b/packages/format-po-gettext/src/po-gettext.test.ts @@ -1,4 +1,4 @@ -import { describe, expect, it } from "vitest"; +import { afterAll, beforeAll, describe, expect, it } from "vitest" import { mockConsole } from "@lingui/jest-mocks" import fs from "fs" import path from "path" From 2861fe85601bad56d770e566d176e3d0d11af32c Mon Sep 17 00:00:00 2001 From: Timofei Iatsenko Date: Tue, 24 Sep 2024 17:50:02 +0200 Subject: [PATCH 04/24] first batch of changed tests --- package.json | 2 - .../test/__snapshots__/index.spec.ts.snap | 527 +++++++++++ .../vitest.config.ts | 7 + .../js-defineMessage.test.ts.snap | 2 +- .../test/__snapshots__/js-plural.test.ts.snap | 2 +- .../test/__snapshots__/js-select.test.ts.snap | 2 +- .../js-selectOrdinal.test.ts.snap | 2 +- .../test/__snapshots__/js-t.test.ts.snap | 2 +- .../__snapshots__/js-useLingui.test.ts.snap | 2 +- .../__snapshots__/jsx-plural.test.ts.snap | 2 +- .../__snapshots__/jsx-select.test.ts.snap | 2 +- .../jsx-selectOrdinal.test.ts.snap | 2 +- .../test/__snapshots__/jsx-trans.test.ts.snap | 2 +- .../test/macroTester.ts | 2 +- .../vitest.config.ts | 8 + packages/cli/package.json | 1 + .../api/__snapshots__/catalog.test.ts.snap | 46 +- .../api/__snapshots__/compile.test.ts.snap | 26 +- .../__snapshots__/getCatalogs.test.ts.snap | 8 +- .../src/api/formats/formatterWrapper.test.ts | 6 +- packages/cli/src/api/pseudoLocalize.ts | 11 +- .../resolveTemplatePath.test.ts | 2 +- .../test/__snapshots__/compile.test.ts.snap | 10 +- packages/cli/vitest.config.mts | 13 + packages/cli/vitest.setup.ts | 4 + .../conf/src/__snapshots__/index.test.ts.snap | 8 +- .../normalizeRuntimeConfigModule.test.ts | 2 +- packages/conf/vitest.config.mts | 10 + packages/core/package.json | 1 + packages/core/vitest.config.mts | 10 + packages/detect-locale/package.json | 3 +- .../__snapshots__/fromUrl.test.ts.snap | 4 +- packages/detect-locale/vitest.config.mts | 10 + packages/extractor-vue/package.json | 1 + .../src/__snapshots__/extractor.test.ts.snap | 104 +-- packages/extractor-vue/vitest.config.mts | 9 + packages/format-csv/package.json | 1 + .../src/__snapshots__/csv.test.ts.snap | 40 +- packages/format-csv/vitest.config.mts | 9 + packages/format-json/package.json | 1 + .../src/__snapshots__/json.test.ts.snap | 92 +- packages/format-json/src/json.test.ts | 48 +- packages/format-json/vitest.config.mts | 9 + packages/format-po-gettext/package.json | 1 + .../src/__snapshots__/po-gettext.test.ts.snap | 198 ++-- packages/format-po-gettext/vitest.config.mts | 9 + packages/format-po/package.json | 1 + .../src/__snapshots__/po.test.ts.snap | 294 +++--- .../src/__snapshots__/utils.test.ts.snap | 6 +- packages/format-po/src/po.test.ts | 100 +-- packages/format-po/vitest.config.mts | 10 + packages/format-po/vitest.setup.ts | 1 + packages/jest-mocks/index.ts | 14 +- packages/jest-mocks/package.json | 3 + packages/loader/package.json | 1 + .../test/__snapshots__/loader.test.ts.snap | 2 +- packages/loader/vitest.config.mts | 9 + packages/message-utils/package.json | 1 + packages/message-utils/vitest.config.mts | 9 + packages/react/package.json | 4 +- packages/react/vitest.config.mts | 10 + packages/react/vitest.setup.ts | 1 + packages/remote-loader/package.json | 1 + packages/remote-loader/vitest.config.mts | 9 + packages/vite-plugin/package.json | 1 + packages/vite-plugin/vitest.config.mts | 9 + scripts/jest/stripAnsiSerializer.js | 6 - scripts/jest/stripAnsiSerializer.ts | 11 + vitest.config.ts | 8 - vitest.setup.ts | 7 - vitest.workspace.mts | 1 + yarn.lock | 845 +++--------------- 72 files changed, 1363 insertions(+), 1264 deletions(-) create mode 100644 packages/babel-plugin-extract-messages/test/__snapshots__/index.spec.ts.snap create mode 100644 packages/babel-plugin-extract-messages/vitest.config.ts create mode 100644 packages/babel-plugin-lingui-macro/vitest.config.ts create mode 100644 packages/cli/vitest.config.mts create mode 100644 packages/cli/vitest.setup.ts create mode 100644 packages/conf/vitest.config.mts create mode 100644 packages/core/vitest.config.mts create mode 100644 packages/detect-locale/vitest.config.mts create mode 100644 packages/extractor-vue/vitest.config.mts create mode 100644 packages/format-csv/vitest.config.mts create mode 100644 packages/format-json/vitest.config.mts create mode 100644 packages/format-po-gettext/vitest.config.mts create mode 100644 packages/format-po/vitest.config.mts create mode 100644 packages/format-po/vitest.setup.ts create mode 100644 packages/loader/vitest.config.mts create mode 100644 packages/message-utils/vitest.config.mts create mode 100644 packages/react/vitest.config.mts create mode 100644 packages/react/vitest.setup.ts create mode 100644 packages/remote-loader/vitest.config.mts create mode 100644 packages/vite-plugin/vitest.config.mts delete mode 100644 scripts/jest/stripAnsiSerializer.js create mode 100644 scripts/jest/stripAnsiSerializer.ts delete mode 100644 vitest.config.ts delete mode 100644 vitest.setup.ts create mode 100644 vitest.workspace.mts diff --git a/package.json b/package.json index a345324dc..9e9b47d83 100644 --- a/package.json +++ b/package.json @@ -60,9 +60,7 @@ "eslint-plugin-node": "^11.1.0", "eslint-plugin-promise": "^4.1.1", "husky": "^8.0.3", - "jest-environment-node-single-context": "^29.0.0", "jest-runner-tsd": "^4.0.0", - "jsdom": "^25.0.1", "lerna": "^6.5.1", "lint-staged": "^13.1.0", "memory-fs": "^0.5.0", diff --git a/packages/babel-plugin-extract-messages/test/__snapshots__/index.spec.ts.snap b/packages/babel-plugin-extract-messages/test/__snapshots__/index.spec.ts.snap new file mode 100644 index 000000000..f93c4ef02 --- /dev/null +++ b/packages/babel-plugin-extract-messages/test/__snapshots__/index.spec.ts.snap @@ -0,0 +1,527 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`@lingui/babel-plugin-extract-messages > CallExpression i18n._() > should extract messages from i18n._ call expressions 1`] = ` +[ + { + "comment": undefined, + "context": undefined, + "id": "Message", + "message": undefined, + "origin": [ + "js-call-expression.js", + 1, + ], + "placeholders": {}, + }, + { + "comment": "description", + "context": undefined, + "id": "Description", + "message": undefined, + "origin": [ + "js-call-expression.js", + 3, + ], + "placeholders": {}, + }, + { + "comment": undefined, + "context": undefined, + "id": "ID", + "message": "Message with id", + "origin": [ + "js-call-expression.js", + 5, + ], + "placeholders": {}, + }, + { + "comment": undefined, + "context": undefined, + "id": "Values {param}", + "message": undefined, + "origin": [ + "js-call-expression.js", + 7, + ], + "placeholders": { + "param": "param", + }, + }, + { + "comment": undefined, + "context": "Context1", + "id": "Some id", + "message": undefined, + "origin": [ + "js-call-expression.js", + 9, + ], + "placeholders": {}, + }, + { + "comment": "My comment", + "context": undefined, + "id": "my.id", + "message": "My Id Message", + "origin": [ + "js-call-expression.js", + 12, + ], + "placeholders": {}, + }, + { + "comment": undefined, + "context": undefined, + "id": "Aliased Message", + "message": undefined, + "origin": [ + "js-call-expression.js", + 19, + ], + "placeholders": {}, + }, + { + "comment": "My comment", + "context": undefined, + "id": "my.id", + "message": "My Id Message", + "origin": [ + "js-call-expression.js", + 22, + ], + "placeholders": {}, + }, +] +`; + +exports[`@lingui/babel-plugin-extract-messages > MessageDescriptor > should extract messages from MessageDescriptors 1`] = ` +[ + { + "comment": undefined, + "context": undefined, + "id": "Message", + "message": undefined, + "origin": [ + "js-message-descriptor.js", + 1, + ], + "placeholders": {}, + }, + { + "comment": "description", + "context": undefined, + "id": "Description", + "message": undefined, + "origin": [ + "js-message-descriptor.js", + 3, + ], + "placeholders": {}, + }, + { + "comment": undefined, + "context": undefined, + "id": "ID", + "message": "Message with id", + "origin": [ + "js-message-descriptor.js", + 5, + ], + "placeholders": {}, + }, + { + "comment": undefined, + "context": undefined, + "id": "Values {param} {0} {name} {value}", + "message": undefined, + "origin": [ + "js-message-descriptor.js", + 7, + ], + "placeholders": { + "0": "user.getName()", + "name": ""foo"", + "param": "param", + "value": "user + ? user.name + : null", + }, + }, + { + "comment": undefined, + "context": undefined, + "id": "Values {param} {0}", + "message": undefined, + "origin": [ + "js-message-descriptor.js", + 23, + ], + "placeholders": {}, + }, + { + "comment": undefined, + "context": "Context1", + "id": "Some id", + "message": undefined, + "origin": [ + "js-message-descriptor.js", + 25, + ], + "placeholders": {}, + }, +] +`; + +exports[`@lingui/babel-plugin-extract-messages > should extract Plural messages from JSX files when there's no Trans tag (integration) 1`] = ` +[ + { + "comment": undefined, + "context": undefined, + "id": "esnaQO", + "message": "{count, plural, one {# book} other {# books}}", + "origin": [ + "jsx-without-trans.js", + 2, + ], + "placeholders": { + "count": "count", + }, + }, + { + "comment": undefined, + "context": "Some context", + "id": "8qNz+K", + "message": "{count, plural, one {# book} other {# books}}", + "origin": [ + "jsx-without-trans.js", + 3, + ], + "placeholders": { + "count": "count", + }, + }, +] +`; + +exports[`@lingui/babel-plugin-extract-messages > should extract all messages from JS files (macros) 1`] = ` +[ + { + "comment": undefined, + "context": undefined, + "id": "xDAtGP", + "message": "Message", + "origin": [ + "js-with-macros.js", + 4, + ], + "placeholders": {}, + }, + { + "comment": undefined, + "context": undefined, + "id": "xDAtGP", + "message": "Message", + "origin": [ + "js-with-macros.js", + 6, + ], + "placeholders": {}, + }, + { + "comment": "description", + "context": undefined, + "id": "Nu4oKW", + "message": "Description", + "origin": [ + "js-with-macros.js", + 8, + ], + "placeholders": {}, + }, + { + "comment": undefined, + "context": undefined, + "id": "ID", + "message": "Message with id", + "origin": [ + "js-with-macros.js", + 13, + ], + "placeholders": {}, + }, + { + "comment": undefined, + "context": undefined, + "id": "QCVtWw", + "message": "Values {param}", + "origin": [ + "js-with-macros.js", + 18, + ], + "placeholders": { + "param": "param", + }, + }, + { + "comment": undefined, + "context": undefined, + "id": "ID Some", + "message": "Message with id some", + "origin": [ + "js-with-macros.js", + 20, + ], + "placeholders": {}, + }, + { + "comment": undefined, + "context": undefined, + "id": "Backtick", + "message": undefined, + "origin": [ + "js-with-macros.js", + 25, + ], + "placeholders": {}, + }, + { + "comment": undefined, + "context": "Context1", + "id": "Some ID", + "message": undefined, + "origin": [ + "js-with-macros.js", + 29, + ], + "placeholders": {}, + }, + { + "comment": undefined, + "context": "Context1", + "id": "Some other ID", + "message": undefined, + "origin": [ + "js-with-macros.js", + 34, + ], + "placeholders": {}, + }, + { + "comment": undefined, + "context": "Context2", + "id": "Some ID", + "message": undefined, + "origin": [ + "js-with-macros.js", + 39, + ], + "placeholders": {}, + }, + { + "comment": undefined, + "context": "Context2", + "id": "Some ID", + "message": undefined, + "origin": [ + "js-with-macros.js", + 44, + ], + "placeholders": {}, + }, + { + "comment": undefined, + "context": undefined, + "id": "sD7MQ4", + "message": "TplLiteral", + "origin": [ + "js-with-macros.js", + 49, + ], + "placeholders": {}, + }, + { + "comment": undefined, + "context": undefined, + "id": "VO4BJY", + "message": "[useLingui]: TplLiteral", + "origin": [ + "js-with-macros.js", + 54, + ], + "placeholders": {}, + }, + { + "comment": undefined, + "context": undefined, + "id": "ZxxjOE", + "message": "[useLingui]: Text {0, plural, offset:1 =0 {No books} =1 {1 book} other {# books}}", + "origin": [ + "js-with-macros.js", + 57, + ], + "placeholders": { + "0": "users.length", + }, + }, +] +`; + +exports[`@lingui/babel-plugin-extract-messages > should extract all messages from JSX files (macros) 1`] = ` +[ + { + "comment": undefined, + "context": undefined, + "id": "d1Kdl3", + "message": "Hi, my name is {name}", + "origin": [ + "jsx-with-macros.js", + 3, + ], + "placeholders": { + "name": "name", + }, + }, + { + "comment": undefined, + "context": "Context1", + "id": "YikuIL", + "message": "Some message", + "origin": [ + "jsx-with-macros.js", + 4, + ], + "placeholders": {}, + }, + { + "comment": undefined, + "context": "Context1", + "id": "LBCs5C", + "message": "Some other message", + "origin": [ + "jsx-with-macros.js", + 5, + ], + "placeholders": {}, + }, + { + "comment": undefined, + "context": "Context2", + "id": "ru2rzr", + "message": "Some message", + "origin": [ + "jsx-with-macros.js", + 6, + ], + "placeholders": {}, + }, + { + "comment": undefined, + "context": undefined, + "id": "MHrjPM", + "message": "Title", + "origin": [ + "jsx-with-macros.js", + 7, + ], + "placeholders": {}, + }, + { + "comment": undefined, + "context": undefined, + "id": "esnaQO", + "message": "{count, plural, one {# book} other {# books}}", + "origin": [ + "jsx-with-macros.js", + 9, + ], + "placeholders": { + "count": "count", + }, + }, +] +`; + +exports[`@lingui/babel-plugin-extract-messages > should extract all messages from JSX files 1`] = ` +[ + { + "comment": "Description", + "context": undefined, + "id": "msg.hello", + "message": undefined, + "origin": [ + "jsx-without-macros.js", + 5, + ], + "placeholders": {}, + }, + { + "comment": undefined, + "context": "Context1", + "id": "msg.context", + "message": undefined, + "origin": [ + "jsx-without-macros.js", + 6, + ], + "placeholders": {}, + }, + { + "comment": undefined, + "context": "Context1", + "id": "msg.notcontext", + "message": undefined, + "origin": [ + "jsx-without-macros.js", + 7, + ], + "placeholders": {}, + }, + { + "comment": undefined, + "context": "Context2", + "id": "msg.context", + "message": undefined, + "origin": [ + "jsx-without-macros.js", + 8, + ], + "placeholders": {}, + }, + { + "comment": undefined, + "context": undefined, + "id": "msg.default", + "message": "Hello World", + "origin": [ + "jsx-without-macros.js", + 9, + ], + "placeholders": {}, + }, + { + "comment": undefined, + "context": undefined, + "id": "msg.default", + "message": "Hello World", + "origin": [ + "jsx-without-macros.js", + 10, + ], + "placeholders": {}, + }, + { + "comment": undefined, + "context": undefined, + "id": "Hi, my name is <0>{name}", + "message": undefined, + "origin": [ + "jsx-without-macros.js", + 11, + ], + "placeholders": { + "count": "count", + }, + }, +] +`; diff --git a/packages/babel-plugin-extract-messages/vitest.config.ts b/packages/babel-plugin-extract-messages/vitest.config.ts new file mode 100644 index 000000000..ab76a35a6 --- /dev/null +++ b/packages/babel-plugin-extract-messages/vitest.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from "vitest/config" + +export default defineConfig({ + test: { + environment: "node", + }, +}) diff --git a/packages/babel-plugin-lingui-macro/test/__snapshots__/js-defineMessage.test.ts.snap b/packages/babel-plugin-lingui-macro/test/__snapshots__/js-defineMessage.test.ts.snap index 414de0c8c..85e4c222a 100644 --- a/packages/babel-plugin-lingui-macro/test/__snapshots__/js-defineMessage.test.ts.snap +++ b/packages/babel-plugin-lingui-macro/test/__snapshots__/js-defineMessage.test.ts.snap @@ -1,4 +1,4 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html exports[`Production - only essential props are kept 1`] = ` import { defineMessage } from "@lingui/core/macro"; diff --git a/packages/babel-plugin-lingui-macro/test/__snapshots__/js-plural.test.ts.snap b/packages/babel-plugin-lingui-macro/test/__snapshots__/js-plural.test.ts.snap index 925fb504a..b6eb54946 100644 --- a/packages/babel-plugin-lingui-macro/test/__snapshots__/js-plural.test.ts.snap +++ b/packages/babel-plugin-lingui-macro/test/__snapshots__/js-plural.test.ts.snap @@ -1,4 +1,4 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html exports[`Macro is used in expression assignment 1`] = ` import { plural } from "@lingui/core/macro"; diff --git a/packages/babel-plugin-lingui-macro/test/__snapshots__/js-select.test.ts.snap b/packages/babel-plugin-lingui-macro/test/__snapshots__/js-select.test.ts.snap index 7130a5755..c9280ebcb 100644 --- a/packages/babel-plugin-lingui-macro/test/__snapshots__/js-select.test.ts.snap +++ b/packages/babel-plugin-lingui-macro/test/__snapshots__/js-select.test.ts.snap @@ -1,4 +1,4 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html exports[`Nested macros 1`] = ` import { select, plural } from "@lingui/core/macro"; diff --git a/packages/babel-plugin-lingui-macro/test/__snapshots__/js-selectOrdinal.test.ts.snap b/packages/babel-plugin-lingui-macro/test/__snapshots__/js-selectOrdinal.test.ts.snap index 63ca7915d..c3f68e158 100644 --- a/packages/babel-plugin-lingui-macro/test/__snapshots__/js-selectOrdinal.test.ts.snap +++ b/packages/babel-plugin-lingui-macro/test/__snapshots__/js-selectOrdinal.test.ts.snap @@ -1,4 +1,4 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html exports[`#1 1`] = ` import { t, selectOrdinal } from "@lingui/core/macro"; diff --git a/packages/babel-plugin-lingui-macro/test/__snapshots__/js-t.test.ts.snap b/packages/babel-plugin-lingui-macro/test/__snapshots__/js-t.test.ts.snap index 5a0781f59..38e300b64 100644 --- a/packages/babel-plugin-lingui-macro/test/__snapshots__/js-t.test.ts.snap +++ b/packages/babel-plugin-lingui-macro/test/__snapshots__/js-t.test.ts.snap @@ -1,4 +1,4 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html exports[`Anything variables except simple identifiers are used as positional arguments 1`] = ` import { t } from "@lingui/core/macro"; diff --git a/packages/babel-plugin-lingui-macro/test/__snapshots__/js-useLingui.test.ts.snap b/packages/babel-plugin-lingui-macro/test/__snapshots__/js-useLingui.test.ts.snap index 3574184a1..a72e3f99a 100644 --- a/packages/babel-plugin-lingui-macro/test/__snapshots__/js-useLingui.test.ts.snap +++ b/packages/babel-plugin-lingui-macro/test/__snapshots__/js-useLingui.test.ts.snap @@ -1,4 +1,4 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html exports[`inserted statement should not clash with existing variables 1`] = ` import { useLingui } from "@lingui/react/macro"; diff --git a/packages/babel-plugin-lingui-macro/test/__snapshots__/jsx-plural.test.ts.snap b/packages/babel-plugin-lingui-macro/test/__snapshots__/jsx-plural.test.ts.snap index 920ba58e5..17038b13f 100644 --- a/packages/babel-plugin-lingui-macro/test/__snapshots__/jsx-plural.test.ts.snap +++ b/packages/babel-plugin-lingui-macro/test/__snapshots__/jsx-plural.test.ts.snap @@ -1,4 +1,4 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html exports[`#1 1`] = ` import { Plural } from "@lingui/react/macro"; diff --git a/packages/babel-plugin-lingui-macro/test/__snapshots__/jsx-select.test.ts.snap b/packages/babel-plugin-lingui-macro/test/__snapshots__/jsx-select.test.ts.snap index de204cabc..ebd3d2cdd 100644 --- a/packages/babel-plugin-lingui-macro/test/__snapshots__/jsx-select.test.ts.snap +++ b/packages/babel-plugin-lingui-macro/test/__snapshots__/jsx-select.test.ts.snap @@ -1,4 +1,4 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html exports[`#1 1`] = ` import { Select } from "@lingui/react/macro"; diff --git a/packages/babel-plugin-lingui-macro/test/__snapshots__/jsx-selectOrdinal.test.ts.snap b/packages/babel-plugin-lingui-macro/test/__snapshots__/jsx-selectOrdinal.test.ts.snap index 9617b9c32..f706f8eb9 100644 --- a/packages/babel-plugin-lingui-macro/test/__snapshots__/jsx-selectOrdinal.test.ts.snap +++ b/packages/babel-plugin-lingui-macro/test/__snapshots__/jsx-selectOrdinal.test.ts.snap @@ -1,4 +1,4 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html exports[`#1 1`] = ` import { Trans, SelectOrdinal } from "@lingui/react/macro"; diff --git a/packages/babel-plugin-lingui-macro/test/__snapshots__/jsx-trans.test.ts.snap b/packages/babel-plugin-lingui-macro/test/__snapshots__/jsx-trans.test.ts.snap index 8edb94936..792a3d9dd 100644 --- a/packages/babel-plugin-lingui-macro/test/__snapshots__/jsx-trans.test.ts.snap +++ b/packages/babel-plugin-lingui-macro/test/__snapshots__/jsx-trans.test.ts.snap @@ -1,4 +1,4 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html exports[`Elements are replaced with placeholders 1`] = ` import { Trans } from "@lingui/react/macro"; diff --git a/packages/babel-plugin-lingui-macro/test/macroTester.ts b/packages/babel-plugin-lingui-macro/test/macroTester.ts index 02f0a1637..1f4b3c8c9 100644 --- a/packages/babel-plugin-lingui-macro/test/macroTester.ts +++ b/packages/babel-plugin-lingui-macro/test/macroTester.ts @@ -7,7 +7,7 @@ import { transformFileSync, transformSync, TransformOptions } from "@babel/core" import prettier from "prettier" import path from "path" import fs from "fs" - +import { test, expect } from "vitest" export type TestCase = TestCaseInline | TestCaseFixture type TestCaseInline = { diff --git a/packages/babel-plugin-lingui-macro/vitest.config.ts b/packages/babel-plugin-lingui-macro/vitest.config.ts new file mode 100644 index 000000000..82057c336 --- /dev/null +++ b/packages/babel-plugin-lingui-macro/vitest.config.ts @@ -0,0 +1,8 @@ +import { defineConfig } from "vitest/config" + +export default defineConfig({ + test: { + environment: "node", + snapshotSerializers: ["../../scripts/jest/stripAnsiSerializer.js"], + }, +}) diff --git a/packages/cli/package.json b/packages/cli/package.json index 48a0c75b4..989e5a21a 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -86,6 +86,7 @@ "@types/normalize-path": "^3.0.0", "mock-fs": "^5.2.0", "mockdate": "^3.0.5", + "vite-tsconfig-paths": "^5.0.1", "vitest": "^2.1.1" } } diff --git a/packages/cli/src/api/__snapshots__/catalog.test.ts.snap b/packages/cli/src/api/__snapshots__/catalog.test.ts.snap index 62224c60c..fe1aa10da 100644 --- a/packages/cli/src/api/__snapshots__/catalog.test.ts.snap +++ b/packages/cli/src/api/__snapshots__/catalog.test.ts.snap @@ -1,13 +1,13 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html -exports[`Catalog POT Flow Should get translations from template if locale file not presented 1`] = ` +exports[`Catalog > POT Flow > Should get translations from template if locale file not presented 1`] = ` { 2ZeN02: Test String, mY42CM: Hello World, } `; -exports[`Catalog collect should extract files with special characters when passed in options 1`] = ` +exports[`Catalog > collect > should extract files with special characters when passed in options 1`] = ` { Component C: { comments: [], @@ -48,7 +48,7 @@ exports[`Catalog collect should extract files with special characters when passe } `; -exports[`Catalog collect should extract messages from source files 1`] = ` +exports[`Catalog > collect > should extract messages from source files 1`] = ` { Component A: { comments: [], @@ -149,7 +149,7 @@ exports[`Catalog collect should extract messages from source files 1`] = ` } `; -exports[`Catalog collect should extract only files passed on options 1`] = ` +exports[`Catalog > collect > should extract only files passed on options 1`] = ` { Component A: { comments: [], @@ -202,9 +202,9 @@ exports[`Catalog collect should extract only files passed on options 1`] = ` } `; -exports[`Catalog collect should support Flow syntax if enabled 1`] = `{}`; +exports[`Catalog > collect > should support Flow syntax if enabled 1`] = `{}`; -exports[`Catalog collect should support JSX and Typescript 1`] = ` +exports[`Catalog > collect > should support JSX and Typescript 1`] = ` { ID Some: { comments: [], @@ -303,14 +303,14 @@ exports[`Catalog collect should support JSX and Typescript 1`] = ` } `; -exports[`Catalog make should collect and write catalogs 1`] = ` +exports[`Catalog > make > should collect and write catalogs 1`] = ` { cs: null, en: null, } `; -exports[`Catalog make should collect and write catalogs 2`] = ` +exports[`Catalog > make > should collect and write catalogs 2`] = ` { cs: { Component A: { @@ -449,7 +449,7 @@ exports[`Catalog make should collect and write catalogs 2`] = ` } `; -exports[`Catalog make should merge with existing catalogs 1`] = ` +exports[`Catalog > make > should merge with existing catalogs 1`] = ` { cs: { mY42CM: { @@ -482,7 +482,7 @@ exports[`Catalog make should merge with existing catalogs 1`] = ` } `; -exports[`Catalog make should merge with existing catalogs 2`] = ` +exports[`Catalog > make > should merge with existing catalogs 2`] = ` { cs: { Component A: { @@ -789,14 +789,14 @@ exports[`Catalog make should merge with existing catalogs 2`] = ` } `; -exports[`Catalog make should only update the specified locale 1`] = ` +exports[`Catalog > make > should only update the specified locale 1`] = ` { cs: null, en: null, } `; -exports[`Catalog make should only update the specified locale 2`] = ` +exports[`Catalog > make > should only update the specified locale 2`] = ` { cs: null, en: { @@ -869,9 +869,9 @@ exports[`Catalog make should only update the specified locale 2`] = ` } `; -exports[`Catalog makeTemplate should collect and write a template 1`] = `null`; +exports[`Catalog > makeTemplate > should collect and write a template 1`] = `null`; -exports[`Catalog makeTemplate should collect and write a template 2`] = ` +exports[`Catalog > makeTemplate > should collect and write a template 2`] = ` { Component A: { comments: [ @@ -941,7 +941,7 @@ exports[`Catalog makeTemplate should collect and write a template 2`] = ` } `; -exports[`Catalog read should read file in given format 1`] = ` +exports[`Catalog > read > should read file in given format 1`] = ` { obsolete: { comments: [ @@ -1085,9 +1085,7 @@ exports[`Catalog read should read file in given format 1`] = ` } `; -exports[`Catalog read should read file in previous format 1`] = `null`; - -exports[`Catalog readAll should read existing catalogs for all locales 1`] = ` +exports[`Catalog > readAll > should read existing catalogs for all locales 1`] = ` { cs: { mY42CM: { @@ -1120,7 +1118,7 @@ exports[`Catalog readAll should read existing catalogs for all locales 1`] = ` } `; -exports[`cleanObsolete should remove obsolete messages from catalog 1`] = ` +exports[`cleanObsolete > should remove obsolete messages from catalog 1`] = ` { Label: { obsolete: false, @@ -1135,7 +1133,7 @@ exports[`cleanObsolete should remove obsolete messages from catalog 1`] = ` } `; -exports[`order should order messages alphabetically 1`] = ` +exports[`order > should order messages alphabetically 1`] = ` { LabelA: { obsolete: false, @@ -1180,7 +1178,7 @@ exports[`order should order messages alphabetically 1`] = ` } `; -exports[`order should order messages alphabetically 2`] = ` +exports[`order > should order messages alphabetically 2`] = ` [ LabelA, LabelB, @@ -1189,7 +1187,7 @@ exports[`order should order messages alphabetically 2`] = ` ] `; -exports[`order should order messages by origin 1`] = ` +exports[`order > should order messages by origin 1`] = ` { LabelA: { obsolete: false, @@ -1238,7 +1236,7 @@ exports[`order should order messages by origin 1`] = ` } `; -exports[`order should order messages by origin 2`] = ` +exports[`order > should order messages by origin 2`] = ` [ LabelC, LabelB, diff --git a/packages/cli/src/api/__snapshots__/compile.test.ts.snap b/packages/cli/src/api/__snapshots__/compile.test.ts.snap index ef777c553..ce6206a12 100644 --- a/packages/cli/src/api/__snapshots__/compile.test.ts.snap +++ b/packages/cli/src/api/__snapshots__/compile.test.ts.snap @@ -1,25 +1,25 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html -exports[`createCompiledCatalog options.compilerBabelOptions by default should return catalog without ASCII chars 1`] = `/*eslint-disable*/module.exports={messages:JSON.parse("{\\"Hello\\":\\"Alohà\\"}")};`; +exports[`createCompiledCatalog > options.compilerBabelOptions > by default should return catalog without ASCII chars 1`] = `/*eslint-disable*/module.exports={messages:JSON.parse("{\\"Hello\\":\\"Alohà\\"}")};`; -exports[`createCompiledCatalog options.compilerBabelOptions should return catalog without ASCII chars 1`] = `/*eslint-disable*/module.exports={messages:JSON.parse("{\\"Hello\\":\\"Aloh\\xE0\\"}")};`; +exports[`createCompiledCatalog > options.compilerBabelOptions > should return catalog without ASCII chars 1`] = `/*eslint-disable*/module.exports={messages:JSON.parse("{\\"Hello\\":\\"Aloh\\xE0\\"}")};`; -exports[`createCompiledCatalog options.namespace should compile with es 1`] = `/*eslint-disable*/export const messages=JSON.parse("{\\"key\\":[\\"Hello \\",[\\"name\\"]]}");`; +exports[`createCompiledCatalog > options.namespace > should compile with es 1`] = `/*eslint-disable*/export const messages=JSON.parse("{\\"key\\":[\\"Hello \\",[\\"name\\"]]}");`; -exports[`createCompiledCatalog options.namespace should compile with global 1`] = `/*eslint-disable*/global.test={messages:JSON.parse("{\\"key\\":[\\"Hello \\",[\\"name\\"]]}")};`; +exports[`createCompiledCatalog > options.namespace > should compile with global 1`] = `/*eslint-disable*/global.test={messages:JSON.parse("{\\"key\\":[\\"Hello \\",[\\"name\\"]]}")};`; -exports[`createCompiledCatalog options.namespace should compile with json 1`] = `{"messages":{"key":["Hello ",["name"]]}}`; +exports[`createCompiledCatalog > options.namespace > should compile with json 1`] = `{"messages":{"key":["Hello ",["name"]]}}`; -exports[`createCompiledCatalog options.namespace should compile with ts 1`] = `/*eslint-disable*/import type{Messages}from"@lingui/core";export const messages=(JSON.parse("{\\"key\\":[\\"Hello \\",[\\"name\\"]]}")as Messages);`; +exports[`createCompiledCatalog > options.namespace > should compile with ts 1`] = `/*eslint-disable*/import type{Messages}from"@lingui/core";export const messages=(JSON.parse("{\\"key\\":[\\"Hello \\",[\\"name\\"]]}")as Messages);`; -exports[`createCompiledCatalog options.namespace should compile with window 1`] = `/*eslint-disable*/window.test={messages:JSON.parse("{\\"key\\":[\\"Hello \\",[\\"name\\"]]}")};`; +exports[`createCompiledCatalog > options.namespace > should compile with window 1`] = `/*eslint-disable*/window.test={messages:JSON.parse("{\\"key\\":[\\"Hello \\",[\\"name\\"]]}")};`; -exports[`createCompiledCatalog options.namespace should error with invalid value 1`] = `Invalid namespace param: "global"`; +exports[`createCompiledCatalog > options.namespace > should error with invalid value 1`] = `[Error: Invalid namespace param: "global"]`; -exports[`createCompiledCatalog options.pseudoLocale should return catalog with pseudolocalized messages 1`] = `/*eslint-disable*/module.exports={messages:JSON.parse("{\\"Hello\\":\\"ÀĥōĴ\\"}")};`; +exports[`createCompiledCatalog > options.pseudoLocale > should return catalog with pseudolocalized messages 1`] = `/*eslint-disable*/module.exports={messages:JSON.parse("{\\"Hello\\":\\"ÀĥōĴ\\"}")};`; -exports[`createCompiledCatalog options.pseudoLocale should return compiled catalog when pseudoLocale doesn't match current locale 1`] = `/*eslint-disable*/module.exports={messages:JSON.parse("{\\"Hello\\":\\"Ahoj\\"}")};`; +exports[`createCompiledCatalog > options.pseudoLocale > should return compiled catalog when pseudoLocale doesn't match current locale 1`] = `/*eslint-disable*/module.exports={messages:JSON.parse("{\\"Hello\\":\\"Ahoj\\"}")};`; -exports[`createCompiledCatalog options.strict should return message key as a fallback translation 1`] = `/*eslint-disable*/module.exports={messages:JSON.parse("{\\"Hello\\":\\"Ahoj\\",\\"Missing\\":\\"Missing\\",\\"Select\\":[[\\"id\\",\\"select\\",{\\"Gen\\":\\"Genesis\\",\\"1John\\":\\"1 John\\",\\"other\\":\\"____\\"}]]}")};`; +exports[`createCompiledCatalog > options.strict > should return message key as a fallback translation 1`] = `/*eslint-disable*/module.exports={messages:JSON.parse("{\\"Hello\\":\\"Ahoj\\",\\"Missing\\":\\"Missing\\",\\"Select\\":[[\\"id\\",\\"select\\",{\\"Gen\\":\\"Genesis\\",\\"1John\\":\\"1 John\\",\\"other\\":\\"____\\"}]]}")};`; -exports[`createCompiledCatalog options.strict should't return message key as a fallback in strict mode 1`] = `/*eslint-disable*/module.exports={messages:JSON.parse("{\\"Hello\\":\\"Ahoj\\",\\"Missing\\":\\"\\",\\"Select\\":[[\\"id\\",\\"select\\",{\\"Gen\\":\\"Genesis\\",\\"1John\\":\\"1 John\\",\\"other\\":\\"____\\"}]]}")};`; +exports[`createCompiledCatalog > options.strict > should't return message key as a fallback in strict mode 1`] = `/*eslint-disable*/module.exports={messages:JSON.parse("{\\"Hello\\":\\"Ahoj\\",\\"Missing\\":\\"\\",\\"Select\\":[[\\"id\\",\\"select\\",{\\"Gen\\":\\"Genesis\\",\\"1John\\":\\"1 John\\",\\"other\\":\\"____\\"}]]}")};`; diff --git a/packages/cli/src/api/catalog/__snapshots__/getCatalogs.test.ts.snap b/packages/cli/src/api/catalog/__snapshots__/getCatalogs.test.ts.snap index bc69d3f30..61ccebc66 100644 --- a/packages/cli/src/api/catalog/__snapshots__/getCatalogs.test.ts.snap +++ b/packages/cli/src/api/catalog/__snapshots__/getCatalogs.test.ts.snap @@ -1,7 +1,7 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html -exports[`getCatalogs should warn about missing {name} pattern in catalog path 1`] = `[Error: Catalog with path "./locales/{locale}" doesn't have a {name} pattern in it, but one of source directories uses it: "{name}". Either add {name} pattern to "./locales/{locale}" or remove it from all source directories.]`; +exports[`getCatalogs > should warn about missing {name} pattern in catalog path 1`] = `[Error: Catalog with path "./locales/{locale}" doesn't have a {name} pattern in it, but one of source directories uses it: "{name}". Either add {name} pattern to "./locales/{locale}" or remove it from all source directories.]`; -exports[`getCatalogs should warn if catalogPath is a directory 1`] = `[Error: Remove trailing slash from "./locales/{locale}/". Catalog path isn't a directory, but translation file without extension. For example, catalog path "./locales/{locale}" results in translation file "./locales/en.po".]`; +exports[`getCatalogs > should warn if catalogPath is a directory 1`] = `[Error: Remove trailing slash from "./locales/{locale}/". Catalog path isn't a directory, but translation file without extension. For example, catalog path "./locales/{locale}" results in translation file "./locales/en.po".]`; -exports[`getCatalogs should warn if catalogPath is a directory 2`] = `[Error: Remove trailing slash from "./locales/{locale}/". Catalog path isn't a directory, but translation file without extension. For example, catalog path "./locales/{locale}" results in translation file "./locales/en.po".]`; +exports[`getCatalogs > should warn if catalogPath is a directory 2`] = `[Error: Remove trailing slash from "./locales/{locale}/". Catalog path isn't a directory, but translation file without extension. For example, catalog path "./locales/{locale}" results in translation file "./locales/en.po".]`; diff --git a/packages/cli/src/api/formats/formatterWrapper.test.ts b/packages/cli/src/api/formats/formatterWrapper.test.ts index ac80278ac..73d282229 100644 --- a/packages/cli/src/api/formats/formatterWrapper.test.ts +++ b/packages/cli/src/api/formats/formatterWrapper.test.ts @@ -1,4 +1,4 @@ -import { describe, expect, it } from "vitest"; +import { describe, expect, it, vi } from "vitest" import { FormatterWrapper } from "./formatterWrapper" import mockFs from "mock-fs" import fs from "fs" @@ -53,7 +53,7 @@ describe("FormatterWrapper", () => { }) it("should read file from FS and parse using provided formatter", async () => { - const parseMock = jest + const parseMock = vi .fn() .mockImplementation((content: string) => content.split(",") as any) const format = new FormatterWrapper( @@ -142,7 +142,7 @@ describe("FormatterWrapper", () => { }) it("should pass context to the formatter", async () => { - const serializeMock = jest + const serializeMock = vi .fn() .mockImplementation((catalog) => JSON.stringify(catalog)) diff --git a/packages/cli/src/api/pseudoLocalize.ts b/packages/cli/src/api/pseudoLocalize.ts index 51f79f802..72b26d288 100644 --- a/packages/cli/src/api/pseudoLocalize.ts +++ b/packages/cli/src/api/pseudoLocalize.ts @@ -1,4 +1,3 @@ -import R from "ramda" import pseudolocale from "pseudolocale" const delimiter = "%&&&%" @@ -45,11 +44,11 @@ function addDelimitersVariables(message: string) { }) } -const addDelimiters = R.compose( - addDelimitersVariables, - addDelimitersMacro, - addDelimitersHTMLTags -) +const addDelimiters = (value: string) => { + return addDelimitersVariables( + addDelimitersHTMLTags(addDelimitersMacro(value)) + ) +} function removeDelimiters(message: string) { return message.replace(new RegExp(delimiter, "g"), "") diff --git a/packages/cli/src/extract-experimental/resolveTemplatePath.test.ts b/packages/cli/src/extract-experimental/resolveTemplatePath.test.ts index a225c807a..e9fbe8f42 100644 --- a/packages/cli/src/extract-experimental/resolveTemplatePath.test.ts +++ b/packages/cli/src/extract-experimental/resolveTemplatePath.test.ts @@ -1,4 +1,4 @@ -import { describe, expect } from "vitest" +import { describe, expect, test } from "vitest" import { resolveTemplatePath } from "./resolveTemplatePath" import normalizePath from "normalize-path" diff --git a/packages/cli/src/test/__snapshots__/compile.test.ts.snap b/packages/cli/src/test/__snapshots__/compile.test.ts.snap index 96c5aee63..6dda265ab 100644 --- a/packages/cli/src/test/__snapshots__/compile.test.ts.snap +++ b/packages/cli/src/test/__snapshots__/compile.test.ts.snap @@ -1,25 +1,25 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html -exports[`CLI Command: Compile allowEmpty = false Should show error and stop compilation of catalog if message doesnt have a translation (no template) 1`] = ` +exports[`CLI Command: Compile > allowEmpty = false > Should show error and stop compilation of catalog if message doesnt have a translation (no template) 1`] = ` Error: Failed to compile catalog for locale pl! Missing 1 translation(s) `; -exports[`CLI Command: Compile allowEmpty = false Should show error and stop compilation of catalog if message doesnt have a translation (with template) 1`] = ` +exports[`CLI Command: Compile > allowEmpty = false > Should show error and stop compilation of catalog if message doesnt have a translation (with template) 1`] = ` { en: undefined, pl: undefined, } `; -exports[`CLI Command: Compile allowEmpty = false Should show error and stop compilation of catalog if message doesnt have a translation (with template) 2`] = ` +exports[`CLI Command: Compile > allowEmpty = false > Should show error and stop compilation of catalog if message doesnt have a translation (with template) 2`] = ` Error: Failed to compile catalog for locale en! Missing 1 translation(s) `; -exports[`CLI Command: Compile allowEmpty = false Should show missing messages verbosely when verbose = true 1`] = ` +exports[`CLI Command: Compile > allowEmpty = false > Should show missing messages verbosely when verbose = true 1`] = ` en ⇒ en.js Error: Failed to compile catalog for locale pl! Missing translations: diff --git a/packages/cli/vitest.config.mts b/packages/cli/vitest.config.mts new file mode 100644 index 000000000..cc8e3b8e1 --- /dev/null +++ b/packages/cli/vitest.config.mts @@ -0,0 +1,13 @@ +import { defineConfig } from "vitest/config" + +import tsconfigPaths from "vite-tsconfig-paths" + +export default defineConfig({ + plugins: [tsconfigPaths()], + + test: { + environment: "node", + snapshotSerializers: ["../../scripts/jest/stripAnsiSerializer.ts"], + setupFiles: ["./vitest.setup.ts"], + }, +}) diff --git a/packages/cli/vitest.setup.ts b/packages/cli/vitest.setup.ts new file mode 100644 index 000000000..a3c57345d --- /dev/null +++ b/packages/cli/vitest.setup.ts @@ -0,0 +1,4 @@ +process.env.TZ = "UTC" +// avoid snapshot of cli output mismatching because +// of different ways to run test +process.env.npm_config_user_agent = "yarn" diff --git a/packages/conf/src/__snapshots__/index.test.ts.snap b/packages/conf/src/__snapshots__/index.test.ts.snap index a09709428..2bfa91d8c 100644 --- a/packages/conf/src/__snapshots__/index.test.ts.snap +++ b/packages/conf/src/__snapshots__/index.test.ts.snap @@ -1,6 +1,6 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html -exports[`@lingui/conf config file extractBabelOptions deprecation if deprecated extractBabelOptions is defined, we show deprecation message 1`] = ` +exports[`@lingui/conf > config file > extractBabelOptions deprecation > if deprecated extractBabelOptions is defined, we show deprecation message 1`] = ` ● Deprecation Warning: Option extractBabelOptions was removed. @@ -13,7 +13,7 @@ exports[`@lingui/conf config file extractBabelOptions deprecation if deprecated Documentation: https://lingui.dev/ref/conf `; -exports[`@lingui/conf should return default config 1`] = ` +exports[`@lingui/conf > should return default config 1`] = ` { catalogs: [ { @@ -74,7 +74,7 @@ exports[`@lingui/conf should return default config 1`] = ` } `; -exports[`@lingui/conf should throw error if config is not discovered 1`] = ` +exports[`@lingui/conf > should throw error if config is not discovered 1`] = ` Lingui was unable to find a config! Create 'lingui.config.js' file with LinguiJS configuration in root of your project (next to package.json). See https://lingui.dev/ref/conf diff --git a/packages/conf/src/migrations/normalizeRuntimeConfigModule.test.ts b/packages/conf/src/migrations/normalizeRuntimeConfigModule.test.ts index 89e05bf7f..225047127 100644 --- a/packages/conf/src/migrations/normalizeRuntimeConfigModule.test.ts +++ b/packages/conf/src/migrations/normalizeRuntimeConfigModule.test.ts @@ -1,4 +1,4 @@ -import { describe, expect, it } from "vitest"; +import { describe, expect, it, test } from "vitest" import { normalizeRuntimeConfigModule } from "./normalizeRuntimeConfigModule" describe("normalizeRuntimeConfigModule", () => { diff --git a/packages/conf/vitest.config.mts b/packages/conf/vitest.config.mts new file mode 100644 index 000000000..4b47ba4fd --- /dev/null +++ b/packages/conf/vitest.config.mts @@ -0,0 +1,10 @@ +import { defineConfig } from "vitest/config" +import tsconfigPaths from "vite-tsconfig-paths" + +export default defineConfig({ + plugins: [tsconfigPaths()], + test: { + environment: "node", + snapshotSerializers: ["../../scripts/jest/stripAnsiSerializer.js"], + }, +}) diff --git a/packages/core/package.json b/packages/core/package.json index 9dbf73602..036e3d947 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -67,6 +67,7 @@ "@lingui/jest-mocks": "*", "tsd": "^0.26.1", "unbuild": "2.0.0", + "vite-tsconfig-paths": "^5.0.1", "vitest": "^2.1.1" }, "peerDependencies": { diff --git a/packages/core/vitest.config.mts b/packages/core/vitest.config.mts new file mode 100644 index 000000000..3977b53d4 --- /dev/null +++ b/packages/core/vitest.config.mts @@ -0,0 +1,10 @@ +import { defineConfig } from "vitest/config" +import tsconfigPaths from "vite-tsconfig-paths" + +export default defineConfig({ + plugins: [tsconfigPaths()], + + test: { + environment: "node", + }, +}) diff --git a/packages/detect-locale/package.json b/packages/detect-locale/package.json index 9b2302e41..65e3d9bbe 100644 --- a/packages/detect-locale/package.json +++ b/packages/detect-locale/package.json @@ -53,8 +53,9 @@ "dist/" ], "devDependencies": { - "jsdom": "^16.4.0", + "jsdom": "^25.0.1", "unbuild": "2.0.0", + "vite-tsconfig-paths": "^5.0.1", "vitest": "^2.1.1" } } diff --git a/packages/detect-locale/src/detectors/__snapshots__/fromUrl.test.ts.snap b/packages/detect-locale/src/detectors/__snapshots__/fromUrl.test.ts.snap index 4a2978f3d..ae731f737 100644 --- a/packages/detect-locale/src/detectors/__snapshots__/fromUrl.test.ts.snap +++ b/packages/detect-locale/src/detectors/__snapshots__/fromUrl.test.ts.snap @@ -1,3 +1,3 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html -exports[`fromUrl throws an error if parameter is not passed 1`] = `fromUrl parameter is required`; +exports[`fromUrl > throws an error if parameter is not passed 1`] = `[Error: fromUrl parameter is required]`; diff --git a/packages/detect-locale/vitest.config.mts b/packages/detect-locale/vitest.config.mts new file mode 100644 index 000000000..b84723020 --- /dev/null +++ b/packages/detect-locale/vitest.config.mts @@ -0,0 +1,10 @@ +import { defineConfig } from "vitest/config" +import tsconfigPaths from "vite-tsconfig-paths" + +export default defineConfig({ + plugins: [tsconfigPaths()], + + test: { + environment: "jsdom", + }, +}) diff --git a/packages/extractor-vue/package.json b/packages/extractor-vue/package.json index c1c8d9b9a..40a5a4e25 100644 --- a/packages/extractor-vue/package.json +++ b/packages/extractor-vue/package.json @@ -45,6 +45,7 @@ "devDependencies": { "@lingui/babel-plugin-extract-messages": "5.0.0-next.1", "unbuild": "2.0.0", + "vite-tsconfig-paths": "^5.0.1", "vitest": "^2.1.1" } } diff --git a/packages/extractor-vue/src/__snapshots__/extractor.test.ts.snap b/packages/extractor-vue/src/__snapshots__/extractor.test.ts.snap index 04603b0c3..5f3b6f6f6 100644 --- a/packages/extractor-vue/src/__snapshots__/extractor.test.ts.snap +++ b/packages/extractor-vue/src/__snapshots__/extractor.test.ts.snap @@ -1,95 +1,95 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html -exports[`vue extractor should extract message from functional component 1`] = ` +exports[`vue extractor > should extract message from functional component 1`] = ` [ { - comment: undefined, - context: undefined, - id: Render function message, - message: undefined, - origin: [ - functional.vue, + "comment": undefined, + "context": undefined, + "id": "Render function message", + "message": undefined, + "origin": [ + "functional.vue", 10, 33, ], - placeholders: {}, + "placeholders": {}, }, ] `; -exports[`vue extractor should extract message from vue file 1`] = ` +exports[`vue extractor > should extract message from vue file 1`] = ` [ { - comment: undefined, - context: undefined, - id: Setup message, - message: undefined, - origin: [ - test.vue.ts, + "comment": undefined, + "context": undefined, + "id": "Setup message", + "message": undefined, + "origin": [ + "test.vue.ts", 4, 0, ], - placeholders: {}, + "placeholders": {}, }, { - comment: undefined, - context: undefined, - id: Script message, - message: undefined, - origin: [ - test.vue, + "comment": undefined, + "context": undefined, + "id": "Script message", + "message": undefined, + "origin": [ + "test.vue", 19, 20, ], - placeholders: {}, + "placeholders": {}, }, { - comment: undefined, - context: undefined, - id: custom.id, - message: My message, - origin: [ - test.vue, + "comment": undefined, + "context": undefined, + "id": "custom.id", + "message": "My message", + "origin": [ + "test.vue", 27, 11, ], - placeholders: {}, + "placeholders": {}, }, { - comment: Message comment, - context: undefined, - id: my.message, - message: My descriptor message, - origin: [ - test.vue, + "comment": "Message comment", + "context": undefined, + "id": "my.message", + "message": "My descriptor message", + "origin": [ + "test.vue", 29, 10, ], - placeholders: {}, + "placeholders": {}, }, { - comment: undefined, - context: undefined, - id: id used as message, - message: undefined, - origin: [ - test.vue, + "comment": undefined, + "context": undefined, + "id": "id used as message", + "message": undefined, + "origin": [ + "test.vue", 35, 5, ], - placeholders: {}, + "placeholders": {}, }, { - comment: undefined, - context: undefined, - id: My message without ID and context, - message: undefined, - origin: [ - test.vue, + "comment": undefined, + "context": undefined, + "id": "My message without ID and context", + "message": undefined, + "origin": [ + "test.vue", 36, 11, ], - placeholders: {}, + "placeholders": {}, }, ] `; diff --git a/packages/extractor-vue/vitest.config.mts b/packages/extractor-vue/vitest.config.mts new file mode 100644 index 000000000..af5ca3133 --- /dev/null +++ b/packages/extractor-vue/vitest.config.mts @@ -0,0 +1,9 @@ +import { defineConfig } from "vitest/config" +import tsconfigPaths from "vite-tsconfig-paths" + +export default defineConfig({ + plugins: [tsconfigPaths()], + test: { + environment: "node", + }, +}) diff --git a/packages/format-csv/package.json b/packages/format-csv/package.json index f38e672ba..c9a13bab5 100644 --- a/packages/format-csv/package.json +++ b/packages/format-csv/package.json @@ -45,6 +45,7 @@ "devDependencies": { "tsd": "^0.28.0", "unbuild": "2.0.0", + "vite-tsconfig-paths": "^5.0.1", "vitest": "^2.1.1" } } diff --git a/packages/format-csv/src/__snapshots__/csv.test.ts.snap b/packages/format-csv/src/__snapshots__/csv.test.ts.snap index 3ffce04c1..f6ea14e3e 100644 --- a/packages/format-csv/src/__snapshots__/csv.test.ts.snap +++ b/packages/format-csv/src/__snapshots__/csv.test.ts.snap @@ -1,30 +1,30 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html -exports[`csv format should read catalog in csv format 1`] = ` +exports[`csv format > should read catalog in csv format 1`] = ` { - static: { - message: null, - obsolete: false, - origin: [], - translation: Static message, + "static": { + "message": null, + "obsolete": false, + "origin": [], + "translation": "Static message", }, - stringWithUnpairedDoubleQuote: { - message: null, - obsolete: false, - origin: [], - translation: Camecho 9" LCD Monitor HD TFT Color Screen, 2 Video Input/HDMI/VGA, Support Car Backup, + "stringWithUnpairedDoubleQuote": { + "message": null, + "obsolete": false, + "origin": [], + "translation": "Camecho 9" LCD Monitor HD TFT Color Screen, 2 Video Input/HDMI/VGA, Support Car Backup", }, - veryLongString: { - message: null, - obsolete: false, - origin: [], - translation: One morning, when Gregor Samsa woke from troubled dreams, he found himself transformed in his bed into a horrible vermin. He lay on his armour-like back, and if he lifted his head a little he could see his brown belly, slightly domed and divided by arches into stiff sections. The bedding was hardly able to cover it and seemed ready to slide off any moment. His many legs, pitifully thin compared with the size of the rest of him, waved about helplessly as he looked. "What's happened to me?" he thought. It wasn't a dream. His room, a proper human, + "veryLongString": { + "message": null, + "obsolete": false, + "origin": [], + "translation": "One morning, when Gregor Samsa woke from troubled dreams, he found himself transformed in his bed into a horrible vermin. He lay on his armour-like back, and if he lifted his head a little he could see his brown belly, slightly domed and divided by arches into stiff sections. The bedding was hardly able to cover it and seemed ready to slide off any moment. His many legs, pitifully thin compared with the size of the rest of him, waved about helplessly as he looked. "What's happened to me?" he thought. It wasn't a dream. His room, a proper human", }, } `; -exports[`csv format should write catalog in csv format 1`] = ` -static,Static message +exports[`csv format > should write catalog in csv format 1`] = ` +"static,Static message stringWithUnpairedDoubleQuote,"Camecho 9"" LCD Monitor HD TFT Color Screen, 2 Video Input/HDMI/VGA, Support Car Backup" -veryLongString,"One morning, when Gregor Samsa woke from troubled dreams, he found himself transformed in his bed into a horrible vermin. He lay on his armour-like back, and if he lifted his head a little he could see his brown belly, slightly domed and divided by arches into stiff sections. The bedding was hardly able to cover it and seemed ready to slide off any moment. His many legs, pitifully thin compared with the size of the rest of him, waved about helplessly as he looked. """"What's happened to me?"""" he thought. It wasn't a dream. His room, a proper human" +veryLongString,"One morning, when Gregor Samsa woke from troubled dreams, he found himself transformed in his bed into a horrible vermin. He lay on his armour-like back, and if he lifted his head a little he could see his brown belly, slightly domed and divided by arches into stiff sections. The bedding was hardly able to cover it and seemed ready to slide off any moment. His many legs, pitifully thin compared with the size of the rest of him, waved about helplessly as he looked. """"What's happened to me?"""" he thought. It wasn't a dream. His room, a proper human"" `; diff --git a/packages/format-csv/vitest.config.mts b/packages/format-csv/vitest.config.mts new file mode 100644 index 000000000..af5ca3133 --- /dev/null +++ b/packages/format-csv/vitest.config.mts @@ -0,0 +1,9 @@ +import { defineConfig } from "vitest/config" +import tsconfigPaths from "vite-tsconfig-paths" + +export default defineConfig({ + plugins: [tsconfigPaths()], + test: { + environment: "node", + }, +}) diff --git a/packages/format-json/package.json b/packages/format-json/package.json index dc1b6f061..2e915c9aa 100644 --- a/packages/format-json/package.json +++ b/packages/format-json/package.json @@ -45,6 +45,7 @@ "devDependencies": { "tsd": "^0.28.0", "unbuild": "^2.0.0", + "vite-tsconfig-paths": "^5.0.1", "vitest": "^2.1.1" } } diff --git a/packages/format-json/src/__snapshots__/json.test.ts.snap b/packages/format-json/src/__snapshots__/json.test.ts.snap index 437832a6a..ce9302ee4 100644 --- a/packages/format-json/src/__snapshots__/json.test.ts.snap +++ b/packages/format-json/src/__snapshots__/json.test.ts.snap @@ -1,14 +1,14 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html -exports[`json format style: lingui should read catalog in lingui format 1`] = ` +exports[`json format > style: lingui > should read catalog in lingui format 1`] = ` { - static: Static message, - veryLongString: One morning, when Gregor Samsa woke from troubled dreams, he found himself transformed in his bed into a horrible vermin. He lay on his armour-like back, and if he lifted his head a little he could see his brown belly, slightly domed and divided by arches into stiff sections. The bedding was hardly able to cover it and seemed ready to slide off any moment. His many legs, pitifully thin compared with the size of the rest of him, waved about helplessly as he looked. "What's happened to me?" he thought. It wasn't a dream. His room, a proper human, + "static": "Static message", + "veryLongString": "One morning, when Gregor Samsa woke from troubled dreams, he found himself transformed in his bed into a horrible vermin. He lay on his armour-like back, and if he lifted his head a little he could see his brown belly, slightly domed and divided by arches into stiff sections. The bedding was hardly able to cover it and seemed ready to slide off any moment. His many legs, pitifully thin compared with the size of the rest of him, waved about helplessly as he looked. "What's happened to me?" he thought. It wasn't a dream. His room, a proper human", } `; -exports[`json format style: lingui should write catalog in lingui format 1`] = ` -{ +exports[`json format > style: lingui > should write catalog in lingui format 1`] = ` +"{ "static": { "translation": "Static message" }, @@ -54,58 +54,58 @@ exports[`json format style: lingui should write catalog in lingui format 1`] = ` "translation": "One morning, when Gregor Samsa woke from troubled dreams, he found himself transformed in his bed into a horrible vermin. He lay on his armour-like back, and if he lifted his head a little he could see his brown belly, slightly domed and divided by arches into stiff sections. The bedding was hardly able to cover it and seemed ready to slide off any moment. His many legs, pitifully thin compared with the size of the rest of him, waved about helplessly as he looked. \\"What's happened to me?\\" he thought. It wasn't a dream. His room, a proper human" } } - +" `; -exports[`json format style: minimal should read catalog in minimal format 1`] = ` +exports[`json format > style: minimal > should read catalog in minimal format 1`] = ` { - obsolete: { - message: null, - obsolete: false, - origin: [], - translation: Obsolete message, + "obsolete": { + "message": null, + "obsolete": false, + "origin": [], + "translation": "Obsolete message", }, - static: { - message: null, - obsolete: false, - origin: [], - translation: Static message, + "static": { + "message": null, + "obsolete": false, + "origin": [], + "translation": "Static message", }, - withComments: { - message: null, - obsolete: false, - origin: [], - translation: Support translator comments separately, + "withComments": { + "message": null, + "obsolete": false, + "origin": [], + "translation": "Support translator comments separately", }, - withDescription: { - message: null, - obsolete: false, - origin: [], - translation: Message with description, + "withDescription": { + "message": null, + "obsolete": false, + "origin": [], + "translation": "Message with description", }, - withFlags: { - message: null, - obsolete: false, - origin: [], - translation: Keeps any flags that are defined, + "withFlags": { + "message": null, + "obsolete": false, + "origin": [], + "translation": "Keeps any flags that are defined", }, - withMultipleOrigins: { - message: null, - obsolete: false, - origin: [], - translation: Message with multiple origin, + "withMultipleOrigins": { + "message": null, + "obsolete": false, + "origin": [], + "translation": "Message with multiple origin", }, - withOrigin: { - message: null, - obsolete: false, - origin: [], - translation: Message with origin, + "withOrigin": { + "message": null, + "obsolete": false, + "origin": [], + "translation": "Message with origin", }, } `; -exports[`json format style: minimal should write catalog in minimal format 1`] = ` -{ +exports[`json format > style: minimal > should write catalog in minimal format 1`] = ` +"{ "static": "Static message", "withOrigin": "Message with origin", "withDescription": "Message with description", @@ -113,5 +113,5 @@ exports[`json format style: minimal should write catalog in minimal format 1`] = "obsolete": "Obsolete message", "withFlags": "Keeps any flags that are defined" } - +" `; diff --git a/packages/format-json/src/json.test.ts b/packages/format-json/src/json.test.ts index 3280d0b7b..7691ac0ec 100644 --- a/packages/format-json/src/json.test.ts +++ b/packages/format-json/src/json.test.ts @@ -1,4 +1,4 @@ -import { describe, expect, it } from "vitest"; +import { describe, expect, it } from "vitest" import fs from "fs" import path from "path" @@ -136,32 +136,32 @@ describe("json format", () => { sourceLocale: "en", }) expect(actual).toMatchInlineSnapshot(` - { - "static": { - "translation": "Static message" - }, - "withOrigin": { - "translation": "Message with origin", - "origin": [ - [ - "src/App.js" + "{ + "static": { + "translation": "Static message" + }, + "withOrigin": { + "translation": "Message with origin", + "origin": [ + [ + "src/App.js" + ] ] - ] - }, - "withMultipleOrigins": { - "translation": "Message with multiple origin", - "origin": [ - [ - "src/App.js" - ], - [ - "src/Component.js" + }, + "withMultipleOrigins": { + "translation": "Message with multiple origin", + "origin": [ + [ + "src/App.js" + ], + [ + "src/Component.js" + ] ] - ] + } } - } - - `) + " + `) }) }) diff --git a/packages/format-json/vitest.config.mts b/packages/format-json/vitest.config.mts new file mode 100644 index 000000000..af5ca3133 --- /dev/null +++ b/packages/format-json/vitest.config.mts @@ -0,0 +1,9 @@ +import { defineConfig } from "vitest/config" +import tsconfigPaths from "vite-tsconfig-paths" + +export default defineConfig({ + plugins: [tsconfigPaths()], + test: { + environment: "node", + }, +}) diff --git a/packages/format-po-gettext/package.json b/packages/format-po-gettext/package.json index f981c0187..8d54ff723 100644 --- a/packages/format-po-gettext/package.json +++ b/packages/format-po-gettext/package.json @@ -54,6 +54,7 @@ "mockdate": "^3.0.5", "tsd": "^0.28.0", "unbuild": "2.0.0", + "vite-tsconfig-paths": "^5.0.1", "vitest": "^2.1.1" } } diff --git a/packages/format-po-gettext/src/__snapshots__/po-gettext.test.ts.snap b/packages/format-po-gettext/src/__snapshots__/po-gettext.test.ts.snap index 4f84d62e7..6dc1cb2c0 100644 --- a/packages/format-po-gettext/src/__snapshots__/po-gettext.test.ts.snap +++ b/packages/format-po-gettext/src/__snapshots__/po-gettext.test.ts.snap @@ -1,65 +1,65 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html -exports[`po-gettext format convertPluralsToIco handle correctly locales with 4-letter 1`] = ` +exports[`po-gettext format > convertPluralsToIco handle correctly locales with 4-letter 1`] = ` { - WGI12K: { - comments: [], - context: null, - extra: { - flags: [], - translatorComments: [], + "WGI12K": { + "comments": [], + "context": null, + "extra": { + "flags": [], + "translatorComments": [], }, - message: {anotherCount, plural, one {Singular case} other {Case number {anotherCount}}}, - obsolete: false, - origin: [], - translation: {anotherCount, plural, one {Singular case} other {Case number {anotherCount}}}, + "message": "{anotherCount, plural, one {Singular case} other {Case number {anotherCount}}}", + "obsolete": false, + "origin": [], + "translation": "{anotherCount, plural, one {Singular case} other {Case number {anotherCount}}}", }, - jO/SBZ: { - comments: [], - context: null, - extra: { - flags: [], - translatorComments: [], + "jO/SBZ": { + "comments": [], + "context": null, + "extra": { + "flags": [], + "translatorComments": [], }, - message: {count, plural, one {Singular} other {Plural}}, - obsolete: false, - origin: [], - translation: , + "message": "{count, plural, one {Singular} other {Plural}}", + "obsolete": false, + "origin": [], + "translation": "", }, - message_with_id: { - comments: [ - js-lingui-explicit-id, + "message_with_id": { + "comments": [ + "js-lingui-explicit-id", ], - context: null, - extra: { - flags: [], - translatorComments: [], + "context": null, + "extra": { + "flags": [], + "translatorComments": [], }, - obsolete: false, - origin: [], - translation: {someCount, plural, one {Singular case} other {Case number {someCount}}}, + "obsolete": false, + "origin": [], + "translation": "{someCount, plural, one {Singular case} other {Case number {someCount}}}", }, - message_with_id_but_without_translation: { - comments: [ - Comment made by the developers., - js-lingui-explicit-id, + "message_with_id_but_without_translation": { + "comments": [ + "Comment made by the developers.", + "js-lingui-explicit-id", ], - context: null, - extra: { - flags: [], - translatorComments: [], + "context": null, + "extra": { + "flags": [], + "translatorComments": [], }, - obsolete: false, - origin: [], - translation: , + "obsolete": false, + "origin": [], + "translation": "", }, } `; -exports[`po-gettext format should convert ICU plural messages to gettext plurals 1`] = ` -msgid "" +exports[`po-gettext format > should convert ICU plural messages to gettext plurals 1`] = ` +"msgid "" msgstr "" -"POT-Creation-Date: 2018-08-27 10:00+0000\\n" +"POT-Creation-Date: 2018-08-27 12:00+0200\\n" "MIME-Version: 1.0\\n" "Content-Type: text/plain; charset=utf-8\\n" "Content-Transfer-Encoding: 8bit\\n" @@ -109,74 +109,74 @@ msgid "Singular automatic id no translation" msgid_plural "Plural {count} automatic id no translation" msgstr[0] "" msgstr[1] "" - +" `; -exports[`po-gettext format should convert gettext plurals to ICU plural messages 1`] = ` +exports[`po-gettext format > should convert gettext plurals to ICU plural messages 1`] = ` { - WGI12K: { - comments: [], - context: null, - extra: { - flags: [], - translatorComments: [], + "WGI12K": { + "comments": [], + "context": null, + "extra": { + "flags": [], + "translatorComments": [], }, - message: {anotherCount, plural, one {Singular case} other {Case number {anotherCount}}}, - obsolete: false, - origin: [], - translation: {anotherCount, plural, one {Singular case} other {Case number {anotherCount}}}, + "message": "{anotherCount, plural, one {Singular case} other {Case number {anotherCount}}}", + "obsolete": false, + "origin": [], + "translation": "{anotherCount, plural, one {Singular case} other {Case number {anotherCount}}}", }, - jO/SBZ: { - comments: [], - context: null, - extra: { - flags: [], - translatorComments: [], + "jO/SBZ": { + "comments": [], + "context": null, + "extra": { + "flags": [], + "translatorComments": [], }, - message: {count, plural, one {Singular} other {Plural}}, - obsolete: false, - origin: [], - translation: , + "message": "{count, plural, one {Singular} other {Plural}}", + "obsolete": false, + "origin": [], + "translation": "", }, - message_with_id: { - comments: [ - js-lingui-explicit-id, + "message_with_id": { + "comments": [ + "js-lingui-explicit-id", ], - context: null, - extra: { - flags: [], - translatorComments: [], + "context": null, + "extra": { + "flags": [], + "translatorComments": [], }, - obsolete: false, - origin: [], - translation: {someCount, plural, one {Singular case} other {Case number {someCount}}}, + "obsolete": false, + "origin": [], + "translation": "{someCount, plural, one {Singular case} other {Case number {someCount}}}", }, - message_with_id_but_without_translation: { - comments: [ - Comment made by the developers., - js-lingui-explicit-id, + "message_with_id_but_without_translation": { + "comments": [ + "Comment made by the developers.", + "js-lingui-explicit-id", ], - context: null, - extra: { - flags: [], - translatorComments: [], + "context": null, + "extra": { + "flags": [], + "translatorComments": [], }, - obsolete: false, - origin: [], - translation: , + "obsolete": false, + "origin": [], + "translation": "", }, - static: { - comments: [ - js-lingui-explicit-id, + "static": { + "comments": [ + "js-lingui-explicit-id", ], - context: null, - extra: { - flags: [], - translatorComments: [], + "context": null, + "extra": { + "flags": [], + "translatorComments": [], }, - obsolete: false, - origin: [], - translation: Static message, + "obsolete": false, + "origin": [], + "translation": "Static message", }, } `; diff --git a/packages/format-po-gettext/vitest.config.mts b/packages/format-po-gettext/vitest.config.mts new file mode 100644 index 000000000..af5ca3133 --- /dev/null +++ b/packages/format-po-gettext/vitest.config.mts @@ -0,0 +1,9 @@ +import { defineConfig } from "vitest/config" +import tsconfigPaths from "vite-tsconfig-paths" + +export default defineConfig({ + plugins: [tsconfigPaths()], + test: { + environment: "node", + }, +}) diff --git a/packages/format-po/package.json b/packages/format-po/package.json index 9ba4afc1e..2754b93c3 100644 --- a/packages/format-po/package.json +++ b/packages/format-po/package.json @@ -51,6 +51,7 @@ "mockdate": "^3.0.5", "tsd": "^0.28.0", "unbuild": "2.0.0", + "vite-tsconfig-paths": "^5.0.1", "vitest": "^2.1.1" } } diff --git a/packages/format-po/src/__snapshots__/po.test.ts.snap b/packages/format-po/src/__snapshots__/po.test.ts.snap index e7a0b27c4..2239289c8 100644 --- a/packages/format-po/src/__snapshots__/po.test.ts.snap +++ b/packages/format-po/src/__snapshots__/po.test.ts.snap @@ -1,7 +1,7 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html -exports[`pofile format printPlaceholdersInComments Should not print placeholders if printPlaceholdersInComments = false 1`] = ` -msgid "" +exports[`pofile format > printPlaceholdersInComments > Should not print placeholders if printPlaceholdersInComments = false 1`] = ` +"msgid "" msgstr "" "POT-Creation-Date: 2018-08-27 10:00+0000\\n" "MIME-Version: 1.0\\n" @@ -13,11 +13,11 @@ msgstr "" #. js-lingui-explicit-id msgid "static" msgstr "Static message {0} {name}" - +" `; -exports[`pofile format printPlaceholdersInComments Should print printPlaceholdersInComments.limit amount of values for placeholder 1`] = ` -msgid "" +exports[`pofile format > printPlaceholdersInComments > Should print printPlaceholdersInComments.limit amount of values for placeholder 1`] = ` +"msgid "" msgstr "" "POT-Creation-Date: 2018-08-27 10:00+0000\\n" "MIME-Version: 1.0\\n" @@ -31,11 +31,11 @@ msgstr "" #. placeholder {1}: a msgid "static" msgstr "Static message {0} {1}" - +" `; -exports[`pofile format printPlaceholdersInComments should print unnamed placeholders as comments 1`] = ` -msgid "" +exports[`pofile format > printPlaceholdersInComments > should print unnamed placeholders as comments 1`] = ` +"msgid "" msgstr "" "POT-Creation-Date: 2018-08-27 10:00+0000\\n" "MIME-Version: 1.0\\n" @@ -67,49 +67,49 @@ msgstr "Static message {0}" #. placeholder {0}: profile.name msgid "static4" msgstr "Static message {0}" - +" `; -exports[`pofile format should correct badly used comments 1`] = ` +exports[`pofile format > should correct badly used comments 1`] = ` { - withDescriptionAndComments: { - comments: [ - Single description only, - Second description?, - js-lingui-explicit-id, + "withDescriptionAndComments": { + "comments": [ + "Single description only", + "Second description?", + "js-lingui-explicit-id", ], - context: null, - extra: { - flags: [], - translatorComments: [ - Translator comment, + "context": null, + "extra": { + "flags": [], + "translatorComments": [ + "Translator comment", ], }, - obsolete: false, - origin: [], - translation: Second description joins translator comments, + "obsolete": false, + "origin": [], + "translation": "Second description joins translator comments", }, - withMultipleDescriptions: { - comments: [ - First description, - Second comment, - Third comment, - js-lingui-explicit-id, + "withMultipleDescriptions": { + "comments": [ + "First description", + "Second comment", + "Third comment", + "js-lingui-explicit-id", ], - context: null, - extra: { - flags: [], - translatorComments: [], + "context": null, + "extra": { + "flags": [], + "translatorComments": [], }, - obsolete: false, - origin: [], - translation: Extra comments are separated from the first description line, + "obsolete": false, + "origin": [], + "translation": "Extra comments are separated from the first description line", }, } `; -exports[`pofile format should not add lingui id more than one time 1`] = ` -msgid "" +exports[`pofile format > should not add lingui id more than one time 1`] = ` +"msgid "" msgstr "" "POT-Creation-Date: 2018-08-27 10:00+0000\\n" "MIME-Version: 1.0\\n" @@ -122,11 +122,11 @@ msgstr "" msgctxt "my context" msgid "with generated id" msgstr "" - +" `; -exports[`pofile format should print lingui id if printLinguiId = true 1`] = ` -msgid "" +exports[`pofile format > should print lingui id if printLinguiId = true 1`] = ` +"msgid "" msgstr "" "POT-Creation-Date: 2018-08-27 10:00+0000\\n" "MIME-Version: 1.0\\n" @@ -139,155 +139,155 @@ msgstr "" msgctxt "my context" msgid "with generated id" msgstr "" - +" `; -exports[`pofile format should read catalog in pofile format 1`] = ` +exports[`pofile format > should read catalog in pofile format 1`] = ` { - obsolete: { - comments: [ - js-lingui-explicit-id, + "obsolete": { + "comments": [ + "js-lingui-explicit-id", ], - context: null, - extra: { - flags: [], - translatorComments: [], + "context": null, + "extra": { + "flags": [], + "translatorComments": [], }, - obsolete: true, - origin: [], - translation: Is marked as obsolete, + "obsolete": true, + "origin": [], + "translation": "Is marked as obsolete", }, - static: { - comments: [ - js-lingui-explicit-id, + "static": { + "comments": [ + "js-lingui-explicit-id", ], - context: null, - extra: { - flags: [], - translatorComments: [], + "context": null, + "extra": { + "flags": [], + "translatorComments": [], }, - obsolete: false, - origin: [], - translation: Static message, + "obsolete": false, + "origin": [], + "translation": "Static message", }, - veryLongString: { - comments: [ - js-lingui-explicit-id, + "veryLongString": { + "comments": [ + "js-lingui-explicit-id", ], - context: null, - extra: { - flags: [], - translatorComments: [], + "context": null, + "extra": { + "flags": [], + "translatorComments": [], }, - obsolete: false, - origin: [], - translation: One morning, when Gregor Samsa woke from troubled dreams, he found himself transformed in his bed into a horrible vermin. He lay on his armour-like back, and if he lifted his head a little he could see his brown belly, slightly domed and divided by arches into stiff sections. The bedding was hardly able to cover it and seemed ready to slide off any moment. His many legs, pitifully thin compared with the size of the rest of him, waved about helplessly as he looked. "What's happened to me?" he thought. It wasn't a dream. His room, a proper human, + "obsolete": false, + "origin": [], + "translation": "One morning, when Gregor Samsa woke from troubled dreams, he found himself transformed in his bed into a horrible vermin. He lay on his armour-like back, and if he lifted his head a little he could see his brown belly, slightly domed and divided by arches into stiff sections. The bedding was hardly able to cover it and seemed ready to slide off any moment. His many legs, pitifully thin compared with the size of the rest of him, waved about helplessly as he looked. "What's happened to me?" he thought. It wasn't a dream. His room, a proper human", }, - withComments: { - comments: [ - js-lingui-explicit-id, + "withComments": { + "comments": [ + "js-lingui-explicit-id", ], - context: null, - extra: { - flags: [], - translatorComments: [ - Translator comment, - This one might come from developer, + "context": null, + "extra": { + "flags": [], + "translatorComments": [ + "Translator comment", + "This one might come from developer", ], }, - obsolete: false, - origin: [], - translation: Support translator comments separately, + "obsolete": false, + "origin": [], + "translation": "Support translator comments separately", }, - withDescription: { - comments: [ - Description is comment from developers to translators, - js-lingui-explicit-id, + "withDescription": { + "comments": [ + "Description is comment from developers to translators", + "js-lingui-explicit-id", ], - context: null, - extra: { - flags: [], - translatorComments: [], + "context": null, + "extra": { + "flags": [], + "translatorComments": [], }, - obsolete: false, - origin: [], - translation: Message with description, + "obsolete": false, + "origin": [], + "translation": "Message with description", }, - withMultipleOrigins: { - comments: [ - js-lingui-explicit-id, + "withMultipleOrigins": { + "comments": [ + "js-lingui-explicit-id", ], - context: null, - extra: { - flags: [], - translatorComments: [], + "context": null, + "extra": { + "flags": [], + "translatorComments": [], }, - obsolete: false, - origin: [ + "obsolete": false, + "origin": [ [ - src/App.js, + "src/App.js", 4, ], [ - src/Component.js, + "src/Component.js", 2, ], ], - translation: Message with multiple origin, + "translation": "Message with multiple origin", }, - withOrigin: { - comments: [ - js-lingui-explicit-id, + "withOrigin": { + "comments": [ + "js-lingui-explicit-id", ], - context: null, - extra: { - flags: [], - translatorComments: [], + "context": null, + "extra": { + "flags": [], + "translatorComments": [], }, - obsolete: false, - origin: [ + "obsolete": false, + "origin": [ [ - src/App.js, + "src/App.js", 4, ], ], - translation: Message with origin, + "translation": "Message with origin", }, - xC8QeX: { - comments: [ - js-lingui-id: pXy+hm, + "xC8QeX": { + "comments": [ + "js-lingui-id: pXy+hm", ], - context: null, - extra: { - flags: [], - translatorComments: [], + "context": null, + "extra": { + "flags": [], + "translatorComments": [], }, - message: Message with default hash id, - obsolete: false, - origin: [], - translation: Translation for: Message with default-hash id, + "message": "Message with default hash id", + "obsolete": false, + "origin": [], + "translation": "Translation for: Message with default-hash id", }, - xLTujh: { - comments: [], - context: null, - extra: { - flags: [ - fuzzy, - otherFlag, - explicit-id, + "xLTujh": { + "comments": [], + "context": null, + "extra": { + "flags": [ + "fuzzy", + "otherFlag", + "explicit-id", ], - translatorComments: [], + "translatorComments": [], }, - message: withFlags, - obsolete: false, - origin: [], - translation: Keeps any flags that are defined, + "message": "withFlags", + "obsolete": false, + "origin": [], + "translation": "Keeps any flags that are defined", }, } `; -exports[`pofile format should write catalog in pofile format 1`] = ` -msgid "" +exports[`pofile format > should write catalog in pofile format 1`] = ` +"msgid "" msgstr "" "POT-Creation-Date: 2018-08-27 10:00+0000\\n" "MIME-Version: 1.0\\n" @@ -349,5 +349,5 @@ msgstr "One morning, when Gregor Samsa woke from troubled dreams, he found himse #. js-lingui-explicit-id msgid "withMultiLineComments" msgstr "Message with multi line comments" - +" `; diff --git a/packages/format-po/src/__snapshots__/utils.test.ts.snap b/packages/format-po/src/__snapshots__/utils.test.ts.snap index d55e4c8f8..88bf18720 100644 --- a/packages/format-po/src/__snapshots__/utils.test.ts.snap +++ b/packages/format-po/src/__snapshots__/utils.test.ts.snap @@ -1,5 +1,5 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html -exports[`normalizePlaceholderValue Should normalize whitespaces 1`] = `user ? user.name : null`; +exports[`normalizePlaceholderValue > Should normalize whitespaces 1`] = `"user ? user.name : null"`; -exports[`normalizePlaceholderValue Should normalize whitespaces 2`] = `userName`; +exports[`normalizePlaceholderValue > Should normalize whitespaces 2`] = `"userName"`; diff --git a/packages/format-po/src/po.test.ts b/packages/format-po/src/po.test.ts index db678d567..83ac55dcd 100644 --- a/packages/format-po/src/po.test.ts +++ b/packages/format-po/src/po.test.ts @@ -159,7 +159,7 @@ describe("pofile format", () => { ) as string expect(serialized).toMatchInlineSnapshot(` - msgid "" + "msgid "" msgstr "" "POT-Creation-Date: 2018-08-27 10:00+0000\\n" "MIME-Version: 1.0\\n" @@ -175,36 +175,36 @@ describe("pofile format", () => { msgid "custom.id" msgstr "" - + " `) const actual = format.parse(serialized, defaultParseCtx) expect(actual).toMatchInlineSnapshot(` { - Dgzql1: { - comments: [ - js-lingui-generated-id, + "Dgzql1": { + "comments": [ + "js-lingui-generated-id", ], - context: my context, - extra: { - flags: [], - translatorComments: [], + "context": "my context", + "extra": { + "flags": [], + "translatorComments": [], }, - message: with generated id, - obsolete: false, - origin: [], - translation: , + "message": "with generated id", + "obsolete": false, + "origin": [], + "translation": "", }, - custom.id: { - comments: [], - context: null, - extra: { - flags: [], - translatorComments: [], + "custom.id": { + "comments": [], + "context": null, + "extra": { + "flags": [], + "translatorComments": [], }, - obsolete: false, - origin: [], - translation: , + "obsolete": false, + "origin": [], + "translation": "", }, } `) @@ -222,7 +222,7 @@ describe("pofile format", () => { ) as string expect(serialized).toMatchInlineSnapshot(` - msgid "" + "msgid "" msgstr "" "POT-Creation-Date: 2018-08-27 10:00+0000\\n" "MIME-Version: 1.0\\n" @@ -238,36 +238,36 @@ describe("pofile format", () => { #. js-lingui-explicit-id msgid "custom.id" msgstr "" - + " `) const actual = format.parse(serialized, defaultParseCtx) expect(actual).toMatchInlineSnapshot(` { - Dgzql1: { - comments: [], - context: my context, - extra: { - flags: [], - translatorComments: [], + "Dgzql1": { + "comments": [], + "context": "my context", + "extra": { + "flags": [], + "translatorComments": [], }, - message: with generated id, - obsolete: false, - origin: [], - translation: , + "message": "with generated id", + "obsolete": false, + "origin": [], + "translation": "", }, - custom.id: { - comments: [ - js-lingui-explicit-id, + "custom.id": { + "comments": [ + "js-lingui-explicit-id", ], - context: null, - extra: { - flags: [], - translatorComments: [], + "context": null, + "extra": { + "flags": [], + "translatorComments": [], }, - obsolete: false, - origin: [], - translation: , + "obsolete": false, + "origin": [], + "translation": "", }, } `) @@ -379,7 +379,7 @@ describe("pofile format", () => { const actual = format.serialize(catalog, defaultSerializeCtx) expect(actual).toMatchInlineSnapshot(` - msgid "" + "msgid "" msgstr "" "POT-Creation-Date: 2018-08-27 10:00+0000\\n" "MIME-Version: 1.0\\n" @@ -402,7 +402,7 @@ describe("pofile format", () => { #: src/Component.js msgid "withMultipleOrigins" msgstr "Message with multiple origin" - + " `) }) @@ -426,7 +426,7 @@ describe("pofile format", () => { const actual = format.serialize(catalog, defaultSerializeCtx) expect(actual).toMatchInlineSnapshot(` - msgid "" + "msgid "" msgstr "" "POT-Creation-Date: 2018-08-27 10:00+0000\\n" "MIME-Version: 1.0\\n" @@ -449,7 +449,7 @@ describe("pofile format", () => { #: src/Component.js msgid "withMultipleOrigins" msgstr "Message with multiple origin" - + " `) }) @@ -461,7 +461,7 @@ describe("pofile format", () => { const actual = format.serialize(catalog, defaultSerializeCtx) expect(actual).toMatchInlineSnapshot(` - msgid "" + "msgid "" msgstr "" "POT-Creation-Date: 2018-08-27 10:00+0000\\n" "MIME-Version: 1.0\\n" @@ -470,7 +470,7 @@ describe("pofile format", () => { "X-Generator: @lingui/cli\\n" "Language: en\\n" "X-Custom-Attribute: custom-value\\n" - + " `) }) diff --git a/packages/format-po/vitest.config.mts b/packages/format-po/vitest.config.mts new file mode 100644 index 000000000..b971e6035 --- /dev/null +++ b/packages/format-po/vitest.config.mts @@ -0,0 +1,10 @@ +import { defineConfig } from "vitest/config" +import tsconfigPaths from "vite-tsconfig-paths" + +export default defineConfig({ + plugins: [tsconfigPaths()], + test: { + environment: "node", + setupFiles: ["./vitest.setup.ts"], + }, +}) diff --git a/packages/format-po/vitest.setup.ts b/packages/format-po/vitest.setup.ts new file mode 100644 index 000000000..68c6fb4e0 --- /dev/null +++ b/packages/format-po/vitest.setup.ts @@ -0,0 +1 @@ +process.env.TZ = "UTC" diff --git a/packages/jest-mocks/index.ts b/packages/jest-mocks/index.ts index 8e0c07f4a..862137c9d 100644 --- a/packages/jest-mocks/index.ts +++ b/packages/jest-mocks/index.ts @@ -1,10 +1,12 @@ -export function getConsoleMockCalls({ mock }: jest.MockInstance) { +import { vi, MockInstance, Mocked } from "vitest" + +export function getConsoleMockCalls({ mock }: MockInstance) { if (!mock.calls.length) return return mock.calls.map((call) => call[0]).join("\n") } export function mockConsole( - testCase: (console: jest.Mocked) => any, + testCase: (console: Mocked) => any, mock = {} ) { function restoreConsole() { @@ -14,9 +16,9 @@ export function mockConsole( const originalConsole = global.console const defaults = { - log: jest.fn(), - warn: jest.fn(), - error: jest.fn(), + log: vi.fn(), + warn: vi.fn(), + error: vi.fn(), } global.console = { @@ -26,7 +28,7 @@ export function mockConsole( let result try { - result = testCase(global.console as jest.Mocked) + result = testCase(global.console as Mocked) } catch (e) { restoreConsole() throw e diff --git a/packages/jest-mocks/package.json b/packages/jest-mocks/package.json index 9a0bfd14f..0252bd134 100644 --- a/packages/jest-mocks/package.json +++ b/packages/jest-mocks/package.json @@ -14,6 +14,9 @@ "testing", "mock" ], + "dependencies": { + "vitest": "^2.1.1" + }, "repository": { "type": "git", "url": "https://github.com/lingui/js-lingui.git" diff --git a/packages/loader/package.json b/packages/loader/package.json index 7c701ed0c..0c044d4d5 100644 --- a/packages/loader/package.json +++ b/packages/loader/package.json @@ -49,6 +49,7 @@ "devDependencies": { "@lingui/format-json": "5.0.0-next.1", "unbuild": "2.0.0", + "vite-tsconfig-paths": "^5.0.1", "vitest": "^2.1.1", "webpack": "^5.76.1" }, diff --git a/packages/loader/test/__snapshots__/loader.test.ts.snap b/packages/loader/test/__snapshots__/loader.test.ts.snap index 451f16e19..0c2c0b8e9 100644 --- a/packages/loader/test/__snapshots__/loader.test.ts.snap +++ b/packages/loader/test/__snapshots__/loader.test.ts.snap @@ -1,4 +1,4 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html exports[`lingui-loader should compile catalog in json format 1`] = ` { diff --git a/packages/loader/vitest.config.mts b/packages/loader/vitest.config.mts new file mode 100644 index 000000000..af5ca3133 --- /dev/null +++ b/packages/loader/vitest.config.mts @@ -0,0 +1,9 @@ +import { defineConfig } from "vitest/config" +import tsconfigPaths from "vite-tsconfig-paths" + +export default defineConfig({ + plugins: [tsconfigPaths()], + test: { + environment: "node", + }, +}) diff --git a/packages/message-utils/package.json b/packages/message-utils/package.json index ff14690f1..2ce3a818e 100644 --- a/packages/message-utils/package.json +++ b/packages/message-utils/package.json @@ -53,6 +53,7 @@ "devDependencies": { "@lingui/jest-mocks": "workspace:^", "unbuild": "2.0.0", + "vite-tsconfig-paths": "^5.0.1", "vitest": "^2.1.1" } } diff --git a/packages/message-utils/vitest.config.mts b/packages/message-utils/vitest.config.mts new file mode 100644 index 000000000..af5ca3133 --- /dev/null +++ b/packages/message-utils/vitest.config.mts @@ -0,0 +1,9 @@ +import { defineConfig } from "vitest/config" +import tsconfigPaths from "vite-tsconfig-paths" + +export default defineConfig({ + plugins: [tsconfigPaths()], + test: { + environment: "node", + }, +}) diff --git a/packages/react/package.json b/packages/react/package.json index 312030567..e9ecdca97 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -95,7 +95,8 @@ }, "devDependencies": { "@lingui/jest-mocks": "*", - "@testing-library/react": "^14.0.0", + "@testing-library/jest-dom": "^6.5.0", + "@testing-library/react": "^16.0.1", "@types/react": "^18.2.13", "eslint-plugin-react": "^7.32.2", "eslint-plugin-react-hooks": "^4.6.0", @@ -103,6 +104,7 @@ "react-dom": "^18.2.0", "tsd": "^0.26.1", "unbuild": "2.0.0", + "vite-tsconfig-paths": "^5.0.1", "vitest": "^2.1.1" } } diff --git a/packages/react/vitest.config.mts b/packages/react/vitest.config.mts new file mode 100644 index 000000000..645ed019d --- /dev/null +++ b/packages/react/vitest.config.mts @@ -0,0 +1,10 @@ +import { defineConfig } from "vitest/config" +import tsconfigPaths from "vite-tsconfig-paths" + +export default defineConfig({ + plugins: [tsconfigPaths()], + test: { + environment: "jsdom", + setupFiles: "./vitest.setup.ts", + }, +}) diff --git a/packages/react/vitest.setup.ts b/packages/react/vitest.setup.ts new file mode 100644 index 000000000..b9e762299 --- /dev/null +++ b/packages/react/vitest.setup.ts @@ -0,0 +1 @@ +import "@testing-library/jest-dom/vitest" diff --git a/packages/remote-loader/package.json b/packages/remote-loader/package.json index 08d370d5d..9c27a05c6 100644 --- a/packages/remote-loader/package.json +++ b/packages/remote-loader/package.json @@ -55,6 +55,7 @@ }, "devDependencies": { "unbuild": "2.0.0", + "vite-tsconfig-paths": "^5.0.1", "vitest": "^2.1.1" } } diff --git a/packages/remote-loader/vitest.config.mts b/packages/remote-loader/vitest.config.mts new file mode 100644 index 000000000..af5ca3133 --- /dev/null +++ b/packages/remote-loader/vitest.config.mts @@ -0,0 +1,9 @@ +import { defineConfig } from "vitest/config" +import tsconfigPaths from "vite-tsconfig-paths" + +export default defineConfig({ + plugins: [tsconfigPaths()], + test: { + environment: "node", + }, +}) diff --git a/packages/vite-plugin/package.json b/packages/vite-plugin/package.json index 65d3c64d7..31355af29 100644 --- a/packages/vite-plugin/package.json +++ b/packages/vite-plugin/package.json @@ -51,6 +51,7 @@ "unbuild": "2.0.0", "vite": "4.1.4", "vite-plugin-babel-macros": "^1.0.6", + "vite-tsconfig-paths": "^5.0.1", "vitest": "^2.1.1" } } diff --git a/packages/vite-plugin/vitest.config.mts b/packages/vite-plugin/vitest.config.mts new file mode 100644 index 000000000..af5ca3133 --- /dev/null +++ b/packages/vite-plugin/vitest.config.mts @@ -0,0 +1,9 @@ +import { defineConfig } from "vitest/config" +import tsconfigPaths from "vite-tsconfig-paths" + +export default defineConfig({ + plugins: [tsconfigPaths()], + test: { + environment: "node", + }, +}) diff --git a/scripts/jest/stripAnsiSerializer.js b/scripts/jest/stripAnsiSerializer.js deleted file mode 100644 index 6553ec2c6..000000000 --- a/scripts/jest/stripAnsiSerializer.js +++ /dev/null @@ -1,6 +0,0 @@ -const stripAnsi = require("strip-ansi") - -module.exports = { - test: (val) => typeof val === "string", - print: (val) => stripAnsi(val), -} diff --git a/scripts/jest/stripAnsiSerializer.ts b/scripts/jest/stripAnsiSerializer.ts new file mode 100644 index 000000000..1733267ea --- /dev/null +++ b/scripts/jest/stripAnsiSerializer.ts @@ -0,0 +1,11 @@ +import { SnapshotSerializer } from "vitest" +import stripAnsi from "strip-ansi" + +export default { + serialize(val) { + return stripAnsi(val) + }, + test(val) { + return typeof val === "string" + }, +} satisfies SnapshotSerializer diff --git a/vitest.config.ts b/vitest.config.ts deleted file mode 100644 index b63ee116a..000000000 --- a/vitest.config.ts +++ /dev/null @@ -1,8 +0,0 @@ -// eslint-disable-next-line import/no-unresolved -import { defineConfig } from 'vitest/config'; -export default defineConfig({ - test: { - environment: 'jsdom', - setupFiles: 'vitest.setup.ts', - }, -}); diff --git a/vitest.setup.ts b/vitest.setup.ts deleted file mode 100644 index edfb9b4a3..000000000 --- a/vitest.setup.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { expect, afterEach } from 'vitest'; -import { cleanup } from '@testing-library/react'; -import matchers from '@testing-library/jest-dom/matchers'; -expect.extend(matchers); -afterEach(() => { - cleanup(); -}); diff --git a/vitest.workspace.mts b/vitest.workspace.mts new file mode 100644 index 000000000..a1b551b94 --- /dev/null +++ b/vitest.workspace.mts @@ -0,0 +1 @@ +export default ["packages/*/vite.config.ts"] diff --git a/yarn.lock b/yarn.lock index a7b6a1538..535b18b18 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5,6 +5,13 @@ __metadata: version: 6 cacheKey: 8 +"@adobe/css-tools@npm:^4.4.0": + version: 4.4.0 + resolution: "@adobe/css-tools@npm:4.4.0" + checksum: 1f08fb49bf17fc7f2d1a86d3e739f29ca80063d28168307f1b0a962ef37501c5667271f6771966578897f2e94e43c4770fd802728a6e6495b812da54112d506a + languageName: node + linkType: hard + "@ampproject/remapping@npm:^2.2.0": version: 2.2.0 resolution: "@ampproject/remapping@npm:2.2.0" @@ -24,7 +31,7 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.15.8, @babel/code-frame@npm:^7.18.6, @babel/code-frame@npm:^7.22.13, @babel/code-frame@npm:^7.24.7": +"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.15.8, @babel/code-frame@npm:^7.18.6, @babel/code-frame@npm:^7.22.13, @babel/code-frame@npm:^7.24.7": version: 7.24.7 resolution: "@babel/code-frame@npm:7.24.7" dependencies: @@ -2294,32 +2301,6 @@ __metadata: languageName: node linkType: hard -"@jest/environment@npm:^29.5.0": - version: 29.5.0 - resolution: "@jest/environment@npm:29.5.0" - dependencies: - "@jest/fake-timers": ^29.5.0 - "@jest/types": ^29.5.0 - "@types/node": "*" - jest-mock: ^29.5.0 - checksum: 921de6325cd4817dec6685e5ff299b499b6379f3f9cf489b4b13588ee1f3820a0c77b49e6a087996b6de8f629f6f5251e636cba08d1bdb97d8071cc7d033c88a - languageName: node - linkType: hard - -"@jest/fake-timers@npm:^29.5.0": - version: 29.5.0 - resolution: "@jest/fake-timers@npm:29.5.0" - dependencies: - "@jest/types": ^29.5.0 - "@sinonjs/fake-timers": ^10.0.2 - "@types/node": "*" - jest-message-util: ^29.5.0 - jest-mock: ^29.5.0 - jest-util: ^29.5.0 - checksum: 69930c6922341f244151ec0d27640852ec96237f730fc024da1f53143d31b43cde75d92f9d8e5937981cdce3b31416abc3a7090a0d22c2377512c4a6613244ee - languageName: node - linkType: hard - "@jest/schemas@npm:^29.4.3": version: 29.4.3 resolution: "@jest/schemas@npm:29.4.3" @@ -2538,6 +2519,7 @@ __metadata: pseudolocale: ^2.0.0 ramda: ^0.27.1 source-map: ^0.8.0-beta.0 + vite-tsconfig-paths: ^5.0.1 vitest: ^2.1.1 bin: lingui: ./dist/lingui.js @@ -2571,6 +2553,7 @@ __metadata: tsd: ^0.26.1 unbuild: 2.0.0 unraw: ^3.0.0 + vite-tsconfig-paths: ^5.0.1 vitest: ^2.1.1 peerDependencies: "@lingui/babel-plugin-lingui-macro": 5.0.0-next.1 @@ -2597,8 +2580,9 @@ __metadata: version: 0.0.0-use.local resolution: "@lingui/detect-locale@workspace:packages/detect-locale" dependencies: - jsdom: ^16.4.0 + jsdom: ^25.0.1 unbuild: 2.0.0 + vite-tsconfig-paths: ^5.0.1 vitest: ^2.1.1 languageName: unknown linkType: soft @@ -2612,6 +2596,7 @@ __metadata: "@lingui/conf": 5.0.0-next.1 "@vue/compiler-sfc": ^3.2.47 unbuild: 2.0.0 + vite-tsconfig-paths: ^5.0.1 vitest: ^2.1.1 languageName: unknown linkType: soft @@ -2624,6 +2609,7 @@ __metadata: papaparse: ^5.4.0 tsd: ^0.28.0 unbuild: 2.0.0 + vite-tsconfig-paths: ^5.0.1 vitest: ^2.1.1 languageName: unknown linkType: soft @@ -2636,6 +2622,7 @@ __metadata: ramda: ^0.28.0 tsd: ^0.28.0 unbuild: ^2.0.0 + vite-tsconfig-paths: ^5.0.1 vitest: ^2.1.1 languageName: unknown linkType: soft @@ -2655,6 +2642,7 @@ __metadata: pofile: ^1.1.4 tsd: ^0.28.0 unbuild: 2.0.0 + vite-tsconfig-paths: ^5.0.1 vitest: ^2.1.1 languageName: unknown linkType: soft @@ -2671,6 +2659,7 @@ __metadata: pofile: ^1.1.4 tsd: ^0.28.0 unbuild: 2.0.0 + vite-tsconfig-paths: ^5.0.1 vitest: ^2.1.1 languageName: unknown linkType: soft @@ -2678,6 +2667,8 @@ __metadata: "@lingui/jest-mocks@*, @lingui/jest-mocks@workspace:*, @lingui/jest-mocks@workspace:^, @lingui/jest-mocks@workspace:packages/jest-mocks": version: 0.0.0-use.local resolution: "@lingui/jest-mocks@workspace:packages/jest-mocks" + dependencies: + vitest: ^2.1.1 languageName: unknown linkType: soft @@ -2690,6 +2681,7 @@ __metadata: "@lingui/conf": 5.0.0-next.1 "@lingui/format-json": 5.0.0-next.1 unbuild: 2.0.0 + vite-tsconfig-paths: ^5.0.1 vitest: ^2.1.1 webpack: ^5.76.1 peerDependencies: @@ -2722,6 +2714,7 @@ __metadata: "@messageformat/parser": ^5.0.0 js-sha256: ^0.10.1 unbuild: 2.0.0 + vite-tsconfig-paths: ^5.0.1 vitest: ^2.1.1 languageName: unknown linkType: soft @@ -2742,7 +2735,8 @@ __metadata: "@babel/runtime": ^7.20.13 "@lingui/core": 5.0.0-next.1 "@lingui/jest-mocks": "*" - "@testing-library/react": ^14.0.0 + "@testing-library/jest-dom": ^6.5.0 + "@testing-library/react": ^16.0.1 "@types/react": ^18.2.13 eslint-plugin-react: ^7.32.2 eslint-plugin-react-hooks: ^4.6.0 @@ -2750,6 +2744,7 @@ __metadata: react-dom: ^18.2.0 tsd: ^0.26.1 unbuild: 2.0.0 + vite-tsconfig-paths: ^5.0.1 vitest: ^2.1.1 peerDependencies: "@lingui/babel-plugin-lingui-macro": 5.0.0-next.1 @@ -2771,6 +2766,7 @@ __metadata: "@lingui/message-utils": 4.0.0 ramda: ^0.27.1 unbuild: 2.0.0 + vite-tsconfig-paths: ^5.0.1 vitest: ^2.1.1 languageName: unknown linkType: soft @@ -2786,6 +2782,7 @@ __metadata: unbuild: 2.0.0 vite: 4.1.4 vite-plugin-babel-macros: ^1.0.6 + vite-tsconfig-paths: ^5.0.1 vitest: ^2.1.1 peerDependencies: vite: ^3 || ^4 || ^5.0.9 @@ -3531,24 +3528,6 @@ __metadata: languageName: node linkType: hard -"@sinonjs/commons@npm:^2.0.0": - version: 2.0.0 - resolution: "@sinonjs/commons@npm:2.0.0" - dependencies: - type-detect: 4.0.8 - checksum: 5023ba17edf2b85ed58262313b8e9b59e23c6860681a9af0200f239fe939e2b79736d04a260e8270ddd57196851dde3ba754d7230be5c5234e777ae2ca8af137 - languageName: node - linkType: hard - -"@sinonjs/fake-timers@npm:^10.0.2": - version: 10.0.2 - resolution: "@sinonjs/fake-timers@npm:10.0.2" - dependencies: - "@sinonjs/commons": ^2.0.0 - checksum: c62aa98e7cefda8dedc101ce227abc888dc46b8ff9706c5f0a8dfd9c3ada97d0a5611384738d9ba0b26b59f99c2ba24efece8e779bb08329e9e87358fa309824 - languageName: node - linkType: hard - "@size-limit/esbuild@npm:8.1.2": version: 8.1.2 resolution: "@size-limit/esbuild@npm:8.1.2" @@ -3729,40 +3708,38 @@ __metadata: languageName: node linkType: hard -"@testing-library/dom@npm:^9.0.0": - version: 9.3.1 - resolution: "@testing-library/dom@npm:9.3.1" +"@testing-library/jest-dom@npm:^6.5.0": + version: 6.5.0 + resolution: "@testing-library/jest-dom@npm:6.5.0" dependencies: - "@babel/code-frame": ^7.10.4 - "@babel/runtime": ^7.12.5 - "@types/aria-query": ^5.0.1 - aria-query: 5.1.3 - chalk: ^4.1.0 - dom-accessibility-api: ^0.5.9 - lz-string: ^1.5.0 - pretty-format: ^27.0.2 - checksum: 8ee3136451644e39990edea93709c38cf1e8ce5306f3c66273ca00935963faa51ca74e8d92b02eb442ccb842cfa28ca62833e393e075eb269cf9bef6f5600663 + "@adobe/css-tools": ^4.4.0 + aria-query: ^5.0.0 + chalk: ^3.0.0 + css.escape: ^1.5.1 + dom-accessibility-api: ^0.6.3 + lodash: ^4.17.21 + redent: ^3.0.0 + checksum: c2d14103ebe3358852ec527ff7512f64207a39932b2f7b6dff7e73ba91296b01a71bad9a9584b6ee010681380a906c1740af50470adc6db660e1c7585d012ebf languageName: node linkType: hard -"@testing-library/react@npm:^14.0.0": - version: 14.0.0 - resolution: "@testing-library/react@npm:14.0.0" +"@testing-library/react@npm:^16.0.1": + version: 16.0.1 + resolution: "@testing-library/react@npm:16.0.1" dependencies: "@babel/runtime": ^7.12.5 - "@testing-library/dom": ^9.0.0 - "@types/react-dom": ^18.0.0 peerDependencies: + "@testing-library/dom": ^10.0.0 + "@types/react": ^18.0.0 + "@types/react-dom": ^18.0.0 react: ^18.0.0 react-dom: ^18.0.0 - checksum: 4a54c8f56cc4a39b50803205f84f06280bb76521d6d5d4b3b36651d760c7c7752ef142d857d52aaf4fad4848ed7a8be49afc793a5dda105955d2f8bef24901ac - languageName: node - linkType: hard - -"@tootallnate/once@npm:1": - version: 1.1.2 - resolution: "@tootallnate/once@npm:1.1.2" - checksum: e1fb1bbbc12089a0cb9433dc290f97bddd062deadb6178ce9bcb93bb7c1aecde5e60184bc7065aec42fe1663622a213493c48bbd4972d931aae48315f18e1be9 + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 1837db473ea018cf2b5d0cbfffb7a30d0d759e5a7f23aad431441c77bcc3d2533250cd003a61878fd908267df47404cedcb5914f12d79e413002c659652b37fd languageName: node linkType: hard @@ -3787,13 +3764,6 @@ __metadata: languageName: node linkType: hard -"@types/aria-query@npm:^5.0.1": - version: 5.0.1 - resolution: "@types/aria-query@npm:5.0.1" - checksum: 69fd7cceb6113ed370591aef04b3fd0742e9a1b06dd045c43531448847b85de181495e4566f98e776b37c422a12fd71866e0a1dfd904c5ec3f84d271682901de - languageName: node - linkType: hard - "@types/babel-plugin-macros@npm:^2.8.5": version: 2.8.5 resolution: "@types/babel-plugin-macros@npm:2.8.5" @@ -4028,16 +3998,7 @@ __metadata: languageName: node linkType: hard -"@types/react-dom@npm:^18.0.0": - version: 18.2.6 - resolution: "@types/react-dom@npm:18.2.6" - dependencies: - "@types/react": "*" - checksum: b56e42efab121a3a8013d2eb8c1688e6028a25ea6d33c4362d2846f0af3760b164b4d7c34846614024cfb8956cca70dd1743487f152e32ff89a00fe6fbd2be54 - languageName: node - linkType: hard - -"@types/react@npm:*, @types/react@npm:^18.2.13": +"@types/react@npm:^18.2.13": version: 18.2.13 resolution: "@types/react@npm:18.2.13" dependencies: @@ -4069,13 +4030,6 @@ __metadata: languageName: node linkType: hard -"@types/stack-utils@npm:^2.0.0": - version: 2.0.1 - resolution: "@types/stack-utils@npm:2.0.1" - checksum: 205fdbe3326b7046d7eaf5e494d8084f2659086a266f3f9cf00bccc549c8e36e407f88168ad4383c8b07099957ad669f75f2532ed4bc70be2b037330f7bae019 - languageName: node - linkType: hard - "@types/yargs-parser@npm:*": version: 21.0.0 resolution: "@types/yargs-parser@npm:21.0.0" @@ -4631,13 +4585,6 @@ __metadata: languageName: node linkType: hard -"abab@npm:^2.0.3, abab@npm:^2.0.5": - version: 2.0.6 - resolution: "abab@npm:2.0.6" - checksum: 6ffc1af4ff315066c62600123990d87551ceb0aafa01e6539da77b0f5987ac7019466780bf480f1787576d4385e3690c81ccc37cfda12819bf510b8ab47e5a3e - languageName: node - linkType: hard - "abbrev@npm:1, abbrev@npm:^1.0.0": version: 1.1.1 resolution: "abbrev@npm:1.1.1" @@ -4645,16 +4592,6 @@ __metadata: languageName: node linkType: hard -"acorn-globals@npm:^6.0.0": - version: 6.0.0 - resolution: "acorn-globals@npm:6.0.0" - dependencies: - acorn: ^7.1.1 - acorn-walk: ^7.1.1 - checksum: 72d95e5b5e585f9acd019b993ab8bbba68bb3cbc9d9b5c1ebb3c2f1fe5981f11deababfb4949f48e6262f9c57878837f5958c0cca396f81023814680ca878042 - languageName: node - linkType: hard - "acorn-import-assertions@npm:^1.7.6": version: 1.8.0 resolution: "acorn-import-assertions@npm:1.8.0" @@ -4673,14 +4610,7 @@ __metadata: languageName: node linkType: hard -"acorn-walk@npm:^7.1.1": - version: 7.2.0 - resolution: "acorn-walk@npm:7.2.0" - checksum: 9252158a79b9d92f1bc0dd6acc0fcfb87a67339e84bcc301bb33d6078936d27e35d606b4d35626d2962cd43c256d6f27717e70cbe15c04fff999ab0b2260b21f - languageName: node - linkType: hard - -"acorn@npm:^7.1.1, acorn@npm:^7.4.0": +"acorn@npm:^7.4.0": version: 7.4.1 resolution: "acorn@npm:7.4.1" bin: @@ -4689,7 +4619,7 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^8.2.4, acorn@npm:^8.5.0, acorn@npm:^8.7.1, acorn@npm:^8.9.0": +"acorn@npm:^8.5.0, acorn@npm:^8.7.1, acorn@npm:^8.9.0": version: 8.10.0 resolution: "acorn@npm:8.10.0" bin: @@ -4906,22 +4836,10 @@ __metadata: languageName: node linkType: hard -"aria-query@npm:5.1.3": - version: 5.1.3 - resolution: "aria-query@npm:5.1.3" - dependencies: - deep-equal: ^2.0.5 - checksum: 929ff95f02857b650fb4cbcd2f41072eee2f46159a6605ea03bf63aa572e35ffdff43d69e815ddc462e16e07de8faba3978afc2813650b4448ee18c9895d982b - languageName: node - linkType: hard - -"array-buffer-byte-length@npm:^1.0.0": - version: 1.0.0 - resolution: "array-buffer-byte-length@npm:1.0.0" - dependencies: - call-bind: ^1.0.2 - is-array-buffer: ^3.0.1 - checksum: 044e101ce150f4804ad19c51d6c4d4cfa505c5b2577bd179256e4aa3f3f6a0a5e9874c78cd428ee566ac574c8a04d7ce21af9fe52e844abfdccb82b33035a7c3 +"aria-query@npm:^5.0.0": + version: 5.3.2 + resolution: "aria-query@npm:5.3.2" + checksum: d971175c85c10df0f6d14adfe6f1292409196114ab3c62f238e208b53103686f46cc70695a4f775b73bc65f6a09b6a092fd963c4f3a5a7d690c8fc5094925717 languageName: node linkType: hard @@ -5329,13 +5247,6 @@ __metadata: languageName: node linkType: hard -"browser-process-hrtime@npm:^1.0.0": - version: 1.0.0 - resolution: "browser-process-hrtime@npm:1.0.0" - checksum: e30f868cdb770b1201afb714ad1575dd86366b6e861900884665fb627109b3cc757c40067d3bfee1ff2a29c835257ea30725a8018a9afd02ac1c24b408b1e45f - languageName: node - linkType: hard - "browserslist@npm:^4.14.5, browserslist@npm:^4.21.4, browserslist@npm:^4.22.2": version: 4.23.1 resolution: "browserslist@npm:4.23.1" @@ -5545,6 +5456,16 @@ __metadata: languageName: node linkType: hard +"chalk@npm:^3.0.0": + version: 3.0.0 + resolution: "chalk@npm:3.0.0" + dependencies: + ansi-styles: ^4.1.0 + supports-color: ^7.1.0 + checksum: 8e3ddf3981c4da405ddbd7d9c8d91944ddf6e33d6837756979f7840a29272a69a5189ecae0ff84006750d6d1e92368d413335eab4db5476db6e6703a1d1e0505 + languageName: node + linkType: hard + "chalk@npm:^4.0.0, chalk@npm:^4.0.2, chalk@npm:^4.1.0, chalk@npm:^4.1.1, chalk@npm:^4.1.2": version: 4.1.2 resolution: "chalk@npm:4.1.2" @@ -6171,26 +6092,10 @@ __metadata: languageName: node linkType: hard -"cssom@npm:^0.4.4": - version: 0.4.4 - resolution: "cssom@npm:0.4.4" - checksum: e3bc1076e7ee4213d4fef05e7ae03bfa83dc05f32611d8edc341f4ecc3d9647b89c8245474c7dd2cdcdb797a27c462e99da7ad00a34399694559f763478ff53f - languageName: node - linkType: hard - -"cssom@npm:~0.3.6": - version: 0.3.8 - resolution: "cssom@npm:0.3.8" - checksum: 24beb3087c76c0d52dd458be9ee1fbc80ac771478a9baef35dd258cdeb527c68eb43204dd439692bb2b1ae5272fa5f2946d10946edab0d04f1078f85e06bc7f6 - languageName: node - linkType: hard - -"cssstyle@npm:^2.3.0": - version: 2.3.0 - resolution: "cssstyle@npm:2.3.0" - dependencies: - cssom: ~0.3.6 - checksum: 5f05e6fd2e3df0b44695c2f08b9ef38b011862b274e320665176467c0725e44a53e341bc4959a41176e83b66064ab786262e7380fd1cabeae6efee0d255bb4e3 +"css.escape@npm:^1.5.1": + version: 1.5.1 + resolution: "css.escape@npm:1.5.1" + checksum: f6d38088d870a961794a2580b2b2af1027731bb43261cfdce14f19238a88664b351cc8978abc20f06cc6bbde725699dec8deb6fe9816b139fc3f2af28719e774 languageName: node linkType: hard @@ -6226,17 +6131,6 @@ __metadata: languageName: node linkType: hard -"data-urls@npm:^2.0.0": - version: 2.0.0 - resolution: "data-urls@npm:2.0.0" - dependencies: - abab: ^2.0.3 - whatwg-mimetype: ^2.3.0 - whatwg-url: ^8.0.0 - checksum: 97caf828aac25e25e04ba6869db0f99c75e6859bb5b424ada28d3e7841941ebf08ddff3c1b1bb4585986bd507a5d54c2a716853ea6cb98af877400e637393e71 - languageName: node - linkType: hard - "data-urls@npm:^5.0.0": version: 5.0.0 resolution: "data-urls@npm:5.0.0" @@ -6306,7 +6200,7 @@ __metadata: languageName: node linkType: hard -"decimal.js@npm:^10.2.1, decimal.js@npm:^10.4.3": +"decimal.js@npm:^10.4.3": version: 10.4.3 resolution: "decimal.js@npm:10.4.3" checksum: 796404dcfa9d1dbfdc48870229d57f788b48c21c603c3f6554a1c17c10195fc1024de338b0cf9e1efe0c7c167eeb18f04548979bcc5fdfabebb7cc0ae3287bae @@ -6327,33 +6221,7 @@ __metadata: languageName: node linkType: hard -"deep-equal@npm:^2.0.5": - version: 2.2.1 - resolution: "deep-equal@npm:2.2.1" - dependencies: - array-buffer-byte-length: ^1.0.0 - call-bind: ^1.0.2 - es-get-iterator: ^1.1.3 - get-intrinsic: ^1.2.0 - is-arguments: ^1.1.1 - is-array-buffer: ^3.0.2 - is-date-object: ^1.0.5 - is-regex: ^1.1.4 - is-shared-array-buffer: ^1.0.2 - isarray: ^2.0.5 - object-is: ^1.1.5 - object-keys: ^1.1.1 - object.assign: ^4.1.4 - regexp.prototype.flags: ^1.5.0 - side-channel: ^1.0.4 - which-boxed-primitive: ^1.0.2 - which-collection: ^1.0.1 - which-typed-array: ^1.1.9 - checksum: 561f0e001a07b2f1b80ff914d0b3d76964bbfc102f34c2128bc8039c0050e63b1a504a8911910e011d8cd1cd4b600a9686c049e327f4ef94420008efc42d25f4 - languageName: node - linkType: hard - -"deep-is@npm:^0.1.3, deep-is@npm:~0.1.3": +"deep-is@npm:^0.1.3": version: 0.1.4 resolution: "deep-is@npm:0.1.4" checksum: edb65dd0d7d1b9c40b2f50219aef30e116cedd6fc79290e740972c132c09106d2e80aa0bc8826673dd5a00222d4179c84b36a790eef63a4c4bca75a37ef90804 @@ -6479,19 +6347,10 @@ __metadata: languageName: node linkType: hard -"dom-accessibility-api@npm:^0.5.9": - version: 0.5.16 - resolution: "dom-accessibility-api@npm:0.5.16" - checksum: 005eb283caef57fc1adec4d5df4dd49189b628f2f575af45decb210e04d634459e3f1ee64f18b41e2dcf200c844bc1d9279d80807e686a30d69a4756151ad248 - languageName: node - linkType: hard - -"domexception@npm:^2.0.1": - version: 2.0.1 - resolution: "domexception@npm:2.0.1" - dependencies: - webidl-conversions: ^5.0.0 - checksum: d638e9cb05c52999f1b2eb87c374b03311ea5b1d69c2f875bc92da73e17db60c12142b45c950228642ff7f845c536b65305483350d080df59003a653da80b691 +"dom-accessibility-api@npm:^0.6.3": + version: 0.6.3 + resolution: "dom-accessibility-api@npm:0.6.3" + checksum: c325b5144bb406df23f4affecffc117dbaec9af03daad9ee6b510c5be647b14d28ef0a4ea5ca06d696d8ab40bb777e5fed98b985976fdef9d8790178fa1d573f languageName: node linkType: hard @@ -6614,9 +6473,9 @@ __metadata: linkType: hard "entities@npm:^4.4.0": - version: 4.4.0 - resolution: "entities@npm:4.4.0" - checksum: 84d250329f4b56b40fa93ed067b194db21e8815e4eb9b59f43a086f0ecd342814f6bc483de8a77da5d64e0f626033192b1b4f1792232a7ea6b970ebe0f3187c2 + version: 4.5.0 + resolution: "entities@npm:4.5.0" + checksum: 853f8ebd5b425d350bffa97dd6958143179a5938352ccae092c62d1267c4e392a039be1bae7d51b6e4ffad25f51f9617531fedf5237f15df302ccfb452cbf2d7 languageName: node linkType: hard @@ -6704,23 +6563,6 @@ __metadata: languageName: node linkType: hard -"es-get-iterator@npm:^1.1.3": - version: 1.1.3 - resolution: "es-get-iterator@npm:1.1.3" - dependencies: - call-bind: ^1.0.2 - get-intrinsic: ^1.1.3 - has-symbols: ^1.0.3 - is-arguments: ^1.1.1 - is-map: ^2.0.2 - is-set: ^2.0.2 - is-string: ^1.0.7 - isarray: ^2.0.5 - stop-iteration-iterator: ^1.0.0 - checksum: 8fa118da42667a01a7c7529f8a8cca514feeff243feec1ce0bb73baaa3514560bd09d2b3438873cf8a5aaec5d52da248131de153b28e2638a061b6e4df13267d - languageName: node - linkType: hard - "es-module-lexer@npm:^0.9.0": version: 0.9.3 resolution: "es-module-lexer@npm:0.9.3" @@ -7161,13 +7003,6 @@ __metadata: languageName: node linkType: hard -"escape-string-regexp@npm:^2.0.0": - version: 2.0.0 - resolution: "escape-string-regexp@npm:2.0.0" - checksum: 9f8a2d5743677c16e85c810e3024d54f0c8dea6424fad3c79ef6666e81dd0846f7437f5e729dfcdac8981bc9e5294c39b4580814d114076b8d36318f46ae4395 - languageName: node - linkType: hard - "escape-string-regexp@npm:^4.0.0": version: 4.0.0 resolution: "escape-string-regexp@npm:4.0.0" @@ -7175,25 +7010,6 @@ __metadata: languageName: node linkType: hard -"escodegen@npm:^2.0.0": - version: 2.0.0 - resolution: "escodegen@npm:2.0.0" - dependencies: - esprima: ^4.0.1 - estraverse: ^5.2.0 - esutils: ^2.0.2 - optionator: ^0.8.1 - source-map: ~0.6.1 - dependenciesMeta: - source-map: - optional: true - bin: - escodegen: bin/escodegen.js - esgenerate: bin/esgenerate.js - checksum: 5aa6b2966fafe0545e4e77936300cc94ad57cfe4dc4ebff9950492eaba83eef634503f12d7e3cbd644ecc1bab388ad0e92b06fd32222c9281a75d1cf02ec6cef - languageName: node - linkType: hard - "eslint-formatter-pretty@npm:^4.1.0": version: 4.1.0 resolution: "eslint-formatter-pretty@npm:4.1.0" @@ -7479,7 +7295,7 @@ __metadata: languageName: node linkType: hard -"esprima@npm:^4.0.0, esprima@npm:^4.0.1": +"esprima@npm:^4.0.0": version: 4.0.1 resolution: "esprima@npm:4.0.1" bin: @@ -7698,7 +7514,7 @@ __metadata: languageName: node linkType: hard -"fast-levenshtein@npm:^2.0.6, fast-levenshtein@npm:~2.0.6": +"fast-levenshtein@npm:^2.0.6": version: 2.0.6 resolution: "fast-levenshtein@npm:2.0.6" checksum: 92cfec0a8dfafd9c7a15fba8f2cc29cd0b62b85f056d99ce448bbcd9f708e18ab2764bda4dd5158364f4145a7c72788538994f0d1787b956ef0d1062b0f7c24c @@ -7849,17 +7665,6 @@ __metadata: languageName: node linkType: hard -"form-data@npm:^3.0.0": - version: 3.0.1 - resolution: "form-data@npm:3.0.1" - dependencies: - asynckit: ^0.4.0 - combined-stream: ^1.0.8 - mime-types: ^2.1.12 - checksum: b019e8d35c8afc14a2bd8a7a92fa4f525a4726b6d5a9740e8d2623c30e308fbb58dc8469f90415a856698933c8479b01646a9dff33c87cc4e76d72aedbbf860d - languageName: node - linkType: hard - "form-data@npm:^4.0.0": version: 4.0.0 resolution: "form-data@npm:4.0.0" @@ -8492,15 +8297,6 @@ __metadata: languageName: node linkType: hard -"html-encoding-sniffer@npm:^2.0.1": - version: 2.0.1 - resolution: "html-encoding-sniffer@npm:2.0.1" - dependencies: - whatwg-encoding: ^1.0.5 - checksum: bf30cce461015ed7e365736fcd6a3063c7bc016a91f74398ef6158886970a96333938f7c02417ab3c12aa82e3e53b40822145facccb9ddfbcdc15a879ae4d7ba - languageName: node - linkType: hard - "html-encoding-sniffer@npm:^4.0.0": version: 4.0.0 resolution: "html-encoding-sniffer@npm:4.0.0" @@ -8517,17 +8313,6 @@ __metadata: languageName: node linkType: hard -"http-proxy-agent@npm:^4.0.1": - version: 4.0.1 - resolution: "http-proxy-agent@npm:4.0.1" - dependencies: - "@tootallnate/once": 1 - agent-base: 6 - debug: 4 - checksum: c6a5da5a1929416b6bbdf77b1aca13888013fe7eb9d59fc292e25d18e041bb154a8dfada58e223fc7b76b9b2d155a87e92e608235201f77d34aa258707963a82 - languageName: node - linkType: hard - "http-proxy-agent@npm:^5.0.0": version: 5.0.0 resolution: "http-proxy-agent@npm:5.0.0" @@ -8619,15 +8404,6 @@ __metadata: languageName: node linkType: hard -"iconv-lite@npm:0.4.24, iconv-lite@npm:^0.4.24": - version: 0.4.24 - resolution: "iconv-lite@npm:0.4.24" - dependencies: - safer-buffer: ">= 2.1.2 < 3" - checksum: bd9f120f5a5b306f0bc0b9ae1edeb1577161503f5f8252a20f1a9e56ef8775c9959fd01c55f2d3a39d9a8abaf3e30c1abeb1895f367dcbbe0a8fd1c9ca01c4f6 - languageName: node - linkType: hard - "iconv-lite@npm:0.6.3, iconv-lite@npm:^0.6.2": version: 0.6.3 resolution: "iconv-lite@npm:0.6.3" @@ -8637,6 +8413,15 @@ __metadata: languageName: node linkType: hard +"iconv-lite@npm:^0.4.24": + version: 0.4.24 + resolution: "iconv-lite@npm:0.4.24" + dependencies: + safer-buffer: ">= 2.1.2 < 3" + checksum: bd9f120f5a5b306f0bc0b9ae1edeb1577161503f5f8252a20f1a9e56ef8775c9959fd01c55f2d3a39d9a8abaf3e30c1abeb1895f367dcbbe0a8fd1c9ca01c4f6 + languageName: node + linkType: hard + "ieee754@npm:^1.1.13": version: 1.2.1 resolution: "ieee754@npm:1.2.1" @@ -8818,17 +8603,7 @@ __metadata: languageName: node linkType: hard -"is-arguments@npm:^1.1.1": - version: 1.1.1 - resolution: "is-arguments@npm:1.1.1" - dependencies: - call-bind: ^1.0.2 - has-tostringtag: ^1.0.0 - checksum: 7f02700ec2171b691ef3e4d0e3e6c0ba408e8434368504bb593d0d7c891c0dbfda6d19d30808b904a6cb1929bca648c061ba438c39f296c2a8ca083229c49f27 - languageName: node - linkType: hard - -"is-array-buffer@npm:^3.0.1, is-array-buffer@npm:^3.0.2": +"is-array-buffer@npm:^3.0.1": version: 3.0.2 resolution: "is-array-buffer@npm:3.0.2" dependencies: @@ -8910,7 +8685,7 @@ __metadata: languageName: node linkType: hard -"is-date-object@npm:^1.0.1, is-date-object@npm:^1.0.5": +"is-date-object@npm:^1.0.1": version: 1.0.5 resolution: "is-date-object@npm:1.0.5" dependencies: @@ -8981,13 +8756,6 @@ __metadata: languageName: node linkType: hard -"is-map@npm:^2.0.1, is-map@npm:^2.0.2": - version: 2.0.2 - resolution: "is-map@npm:2.0.2" - checksum: ace3d0ecd667bbdefdb1852de601268f67f2db725624b1958f279316e13fecb8fa7df91fd60f690d7417b4ec180712f5a7ee967008e27c65cfd475cc84337728 - languageName: node - linkType: hard - "is-module@npm:^1.0.0": version: 1.0.0 resolution: "is-module@npm:1.0.0" @@ -9074,13 +8842,6 @@ __metadata: languageName: node linkType: hard -"is-set@npm:^2.0.1, is-set@npm:^2.0.2": - version: 2.0.2 - resolution: "is-set@npm:2.0.2" - checksum: b64343faf45e9387b97a6fd32be632ee7b269bd8183701f3b3f5b71a7cf00d04450ed8669d0bd08753e08b968beda96fca73a10fd0ff56a32603f64deba55a57 - languageName: node - linkType: hard - "is-shared-array-buffer@npm:^1.0.2": version: 1.0.2 resolution: "is-shared-array-buffer@npm:1.0.2" @@ -9174,13 +8935,6 @@ __metadata: languageName: node linkType: hard -"is-weakmap@npm:^2.0.1": - version: 2.0.1 - resolution: "is-weakmap@npm:2.0.1" - checksum: 1222bb7e90c32bdb949226e66d26cb7bce12e1e28e3e1b40bfa6b390ba3e08192a8664a703dff2a00a84825f4e022f9cd58c4599ff9981ab72b1d69479f4f7f6 - languageName: node - linkType: hard - "is-weakref@npm:^1.0.2": version: 1.0.2 resolution: "is-weakref@npm:1.0.2" @@ -9190,16 +8944,6 @@ __metadata: languageName: node linkType: hard -"is-weakset@npm:^2.0.1": - version: 2.0.2 - resolution: "is-weakset@npm:2.0.2" - dependencies: - call-bind: ^1.0.2 - get-intrinsic: ^1.1.1 - checksum: 5d8698d1fa599a0635d7ca85be9c26d547b317ed8fd83fc75f03efbe75d50001b5eececb1e9971de85fcde84f69ae6f8346bc92d20d55d46201d328e4c74a367 - languageName: node - linkType: hard - "is-wsl@npm:^2.2.0": version: 2.2.0 resolution: "is-wsl@npm:2.2.0" @@ -9209,13 +8953,6 @@ __metadata: languageName: node linkType: hard -"isarray@npm:^2.0.5": - version: 2.0.5 - resolution: "isarray@npm:2.0.5" - checksum: bd5bbe4104438c4196ba58a54650116007fa0262eccef13a4c55b2e09a5b36b59f1e75b9fcc49883dd9d4953892e6fc007eef9e9155648ceea036e184b0f930a - languageName: node - linkType: hard - "isarray@npm:~1.0.0": version: 1.0.0 resolution: "isarray@npm:1.0.0" @@ -9303,29 +9040,6 @@ __metadata: languageName: node linkType: hard -"jest-environment-node-single-context@npm:^29.0.0": - version: 29.0.0 - resolution: "jest-environment-node-single-context@npm:29.0.0" - dependencies: - jest-environment-node: ^29.0.1 - checksum: f2b341cd4d0879fba75bf9e3a48e2ae8890a2949edabc59df7cc84de1cd2072a6ddbd9325367d1de46013a7d5c92459a6dee8014bdafdde58f2d118a2b28a5db - languageName: node - linkType: hard - -"jest-environment-node@npm:^29.0.1": - version: 29.5.0 - resolution: "jest-environment-node@npm:29.5.0" - dependencies: - "@jest/environment": ^29.5.0 - "@jest/fake-timers": ^29.5.0 - "@jest/types": ^29.5.0 - "@types/node": "*" - jest-mock: ^29.5.0 - jest-util: ^29.5.0 - checksum: 57981911cc20a4219b0da9e22b2e3c9f31b505e43f78e61c899e3227ded455ce1a3a9483842c69cfa4532f02cfb536ae0995bf245f9211608edacfc1e478d411 - languageName: node - linkType: hard - "jest-get-type@npm:^29.4.3": version: 29.4.3 resolution: "jest-get-type@npm:29.4.3" @@ -9356,34 +9070,6 @@ __metadata: languageName: node linkType: hard -"jest-message-util@npm:^29.5.0": - version: 29.5.0 - resolution: "jest-message-util@npm:29.5.0" - dependencies: - "@babel/code-frame": ^7.12.13 - "@jest/types": ^29.5.0 - "@types/stack-utils": ^2.0.0 - chalk: ^4.0.0 - graceful-fs: ^4.2.9 - micromatch: ^4.0.4 - pretty-format: ^29.5.0 - slash: ^3.0.0 - stack-utils: ^2.0.3 - checksum: daddece6bbf846eb6a2ab9be9f2446e54085bef4e5cecd13d2a538fa9c01cb89d38e564c6b74fd8e12d37ed9eface8a362240ae9f21d68b214590631e7a0d8bf - languageName: node - linkType: hard - -"jest-mock@npm:^29.5.0": - version: 29.5.0 - resolution: "jest-mock@npm:29.5.0" - dependencies: - "@jest/types": ^29.5.0 - "@types/node": "*" - jest-util: ^29.5.0 - checksum: 2a9cf07509948fa8608898c445f04fe4dd6e2049ff431e5531eee028c808d3ba3c67f226ac87b0cf383feaa1055776900d197c895e89783016886ac17a4ff10c - languageName: node - linkType: hard - "jest-regex-util@npm:^29.4.3": version: 29.4.3 resolution: "jest-regex-util@npm:29.4.3" @@ -9491,9 +9177,7 @@ __metadata: eslint-plugin-node: ^11.1.0 eslint-plugin-promise: ^4.1.1 husky: ^8.0.3 - jest-environment-node-single-context: ^29.0.0 jest-runner-tsd: ^4.0.0 - jsdom: ^25.0.1 lerna: ^6.5.1 lint-staged: ^13.1.0 memory-fs: ^0.5.0 @@ -9557,46 +9241,6 @@ __metadata: languageName: node linkType: hard -"jsdom@npm:^16.4.0": - version: 16.7.0 - resolution: "jsdom@npm:16.7.0" - dependencies: - abab: ^2.0.5 - acorn: ^8.2.4 - acorn-globals: ^6.0.0 - cssom: ^0.4.4 - cssstyle: ^2.3.0 - data-urls: ^2.0.0 - decimal.js: ^10.2.1 - domexception: ^2.0.1 - escodegen: ^2.0.0 - form-data: ^3.0.0 - html-encoding-sniffer: ^2.0.1 - http-proxy-agent: ^4.0.1 - https-proxy-agent: ^5.0.0 - is-potential-custom-element-name: ^1.0.1 - nwsapi: ^2.2.0 - parse5: 6.0.1 - saxes: ^5.0.1 - symbol-tree: ^3.2.4 - tough-cookie: ^4.0.0 - w3c-hr-time: ^1.0.2 - w3c-xmlserializer: ^2.0.0 - webidl-conversions: ^6.1.0 - whatwg-encoding: ^1.0.5 - whatwg-mimetype: ^2.3.0 - whatwg-url: ^8.5.0 - ws: ^7.4.6 - xml-name-validator: ^3.0.0 - peerDependencies: - canvas: ^2.5.0 - peerDependenciesMeta: - canvas: - optional: true - checksum: 454b83371857000763ed31130a049acd1b113e3b927e6dcd75c67ddc30cdd242d7ebcac5c2294b7a1a6428155cb1398709c573b3c6d809218692ea68edd93370 - languageName: node - linkType: hard - "jsdom@npm:^25.0.1": version: 25.0.1 resolution: "jsdom@npm:25.0.1" @@ -9898,16 +9542,6 @@ __metadata: languageName: node linkType: hard -"levn@npm:~0.3.0": - version: 0.3.0 - resolution: "levn@npm:0.3.0" - dependencies: - prelude-ls: ~1.1.2 - type-check: ~0.3.2 - checksum: 0d084a524231a8246bb10fec48cdbb35282099f6954838604f3c7fc66f2e16fa66fd9cc2f3f20a541a113c4dafdf181e822c887c8a319c9195444e6c64ac395e - languageName: node - linkType: hard - "libnpmaccess@npm:6.0.3": version: 6.0.3 resolution: "libnpmaccess@npm:6.0.3" @@ -10107,7 +9741,7 @@ __metadata: languageName: node linkType: hard -"lodash@npm:^4.17.15, lodash@npm:^4.17.19, lodash@npm:^4.17.21, lodash@npm:^4.7.0": +"lodash@npm:^4.17.15, lodash@npm:^4.17.19, lodash@npm:^4.17.21": version: 4.17.21 resolution: "lodash@npm:4.17.21" checksum: eb835a2e51d381e561e508ce932ea50a8e5a68f4ebdd771ea240d3048244a8d13658acbd502cd4829768c56f2e16bdd4340b9ea141297d472517b83868e677f7 @@ -10188,15 +9822,6 @@ __metadata: languageName: node linkType: hard -"lz-string@npm:^1.5.0": - version: 1.5.0 - resolution: "lz-string@npm:1.5.0" - bin: - lz-string: bin/bin.js - checksum: 1ee98b4580246fd90dd54da6e346fb1caefcf05f677c686d9af237a157fdea3fd7c83a4bc58f858cd5b10a34d27afe0fdcbd0505a47e0590726a873dc8b8f65d - languageName: node - linkType: hard - "magic-string@npm:^0.25.7": version: 0.25.9 resolution: "magic-string@npm:0.25.9" @@ -11126,7 +10751,7 @@ __metadata: languageName: node linkType: hard -"nwsapi@npm:^2.2.0, nwsapi@npm:^2.2.12": +"nwsapi@npm:^2.2.12": version: 2.2.12 resolution: "nwsapi@npm:2.2.12" checksum: 4dbce7ecbcf336eef1edcbb5161cbceea95863e63a16d9bcec8e81cbb260bdab3d07e6c7b58354d465dc803eef6d0ea4fb20220a80fa148ae65f18d56df81799 @@ -11235,16 +10860,6 @@ __metadata: languageName: node linkType: hard -"object-is@npm:^1.1.5": - version: 1.1.5 - resolution: "object-is@npm:1.1.5" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.1.3 - checksum: 989b18c4cba258a6b74dc1d74a41805c1a1425bce29f6cabb50dcb1a6a651ea9104a1b07046739a49a5bb1bc49727bcb00efd5c55f932f6ea04ec8927a7901fe - languageName: node - linkType: hard - "object-keys@npm:^1.1.1": version: 1.1.1 resolution: "object-keys@npm:1.1.1" @@ -11345,20 +10960,6 @@ __metadata: languageName: node linkType: hard -"optionator@npm:^0.8.1": - version: 0.8.3 - resolution: "optionator@npm:0.8.3" - dependencies: - deep-is: ~0.1.3 - fast-levenshtein: ~2.0.6 - levn: ~0.3.0 - prelude-ls: ~1.1.2 - type-check: ~0.3.2 - word-wrap: ~1.2.3 - checksum: b8695ddf3d593203e25ab0900e265d860038486c943ff8b774f596a310f8ceebdb30c6832407a8198ba3ec9debe1abe1f51d4aad94843612db3b76d690c61d34 - languageName: node - linkType: hard - "optionator@npm:^0.9.1": version: 0.9.1 resolution: "optionator@npm:0.9.1" @@ -11683,13 +11284,6 @@ __metadata: languageName: node linkType: hard -"parse5@npm:6.0.1": - version: 6.0.1 - resolution: "parse5@npm:6.0.1" - checksum: 7d569a176c5460897f7c8f3377eff640d54132b9be51ae8a8fa4979af940830b2b0c296ce75e5bd8f4041520aadde13170dbdec44889975f906098ea0002f4bd - languageName: node - linkType: hard - "parse5@npm:^7.1.2": version: 7.1.2 resolution: "parse5@npm:7.1.2" @@ -11916,13 +11510,6 @@ __metadata: languageName: node linkType: hard -"prelude-ls@npm:~1.1.2": - version: 1.1.2 - resolution: "prelude-ls@npm:1.1.2" - checksum: c4867c87488e4a0c233e158e4d0d5565b609b105d75e4c05dc760840475f06b731332eb93cc8c9cecb840aa8ec323ca3c9a56ad7820ad2e63f0261dadcb154e4 - languageName: node - linkType: hard - "prettier@npm:2.8.3": version: 2.8.3 resolution: "prettier@npm:2.8.3" @@ -11939,17 +11526,6 @@ __metadata: languageName: node linkType: hard -"pretty-format@npm:^27.0.2": - version: 27.5.1 - resolution: "pretty-format@npm:27.5.1" - dependencies: - ansi-regex: ^5.0.1 - ansi-styles: ^5.0.0 - react-is: ^17.0.1 - checksum: cf610cffcb793885d16f184a62162f2dd0df31642d9a18edf4ca298e909a8fe80bdbf556d5c9573992c102ce8bf948691da91bf9739bee0ffb6e79c8a8a6e088 - languageName: node - linkType: hard - "pretty-format@npm:^29.4.3, pretty-format@npm:^29.5.0": version: 29.5.0 resolution: "pretty-format@npm:29.5.0" @@ -12072,7 +11648,7 @@ __metadata: languageName: node linkType: hard -"psl@npm:^1.1.28, psl@npm:^1.1.33": +"psl@npm:^1.1.28": version: 1.9.0 resolution: "psl@npm:1.9.0" checksum: 20c4277f640c93d393130673f392618e9a8044c6c7bf61c53917a0fddb4952790f5f362c6c730a9c32b124813e173733f9895add8d26f566ed0ea0654b2e711d @@ -12100,13 +11676,6 @@ __metadata: languageName: node linkType: hard -"querystringify@npm:^2.1.1": - version: 2.2.0 - resolution: "querystringify@npm:2.2.0" - checksum: 5641ea231bad7ef6d64d9998faca95611ed4b11c2591a8cae741e178a974f6a8e0ebde008475259abe1621cb15e692404e6b6626e927f7b849d5c09392604b15 - languageName: node - linkType: hard - "queue-microtask@npm:^1.2.2": version: 1.2.3 resolution: "queue-microtask@npm:1.2.3" @@ -12163,13 +11732,6 @@ __metadata: languageName: node linkType: hard -"react-is@npm:^17.0.1": - version: 17.0.2 - resolution: "react-is@npm:17.0.2" - checksum: 9d6d111d8990dc98bc5402c1266a808b0459b5d54830bbea24c12d908b536df7883f268a7868cfaedde3dd9d4e0d574db456f84d2e6df9c4526f99bb4b5344d8 - languageName: node - linkType: hard - "react-is@npm:^18.0.0": version: 18.2.0 resolution: "react-is@npm:18.2.0" @@ -12385,7 +11947,7 @@ __metadata: languageName: node linkType: hard -"regexp.prototype.flags@npm:^1.4.3, regexp.prototype.flags@npm:^1.5.0": +"regexp.prototype.flags@npm:^1.4.3": version: 1.5.0 resolution: "regexp.prototype.flags@npm:1.5.0" dependencies: @@ -12477,13 +12039,6 @@ __metadata: languageName: node linkType: hard -"requires-port@npm:^1.0.0": - version: 1.0.0 - resolution: "requires-port@npm:1.0.0" - checksum: eee0e303adffb69be55d1a214e415cf42b7441ae858c76dfc5353148644f6fd6e698926fc4643f510d5c126d12a705e7c8ed7e38061113bdf37547ab356797ff - languageName: node - linkType: hard - "resolve-cwd@npm:^3.0.0": version: 3.0.0 resolution: "resolve-cwd@npm:3.0.0" @@ -12774,15 +12329,6 @@ __metadata: languageName: node linkType: hard -"saxes@npm:^5.0.1": - version: 5.0.1 - resolution: "saxes@npm:5.0.1" - dependencies: - xmlchars: ^2.2.0 - checksum: 5636b55cf15f7cf0baa73f2797bf992bdcf75d1b39d82c0aa4608555c774368f6ac321cb641fd5f3d3ceb87805122cd47540da6a7b5960fe0dbdb8f8c263f000 - languageName: node - linkType: hard - "saxes@npm:^6.0.0": version: 6.0.0 resolution: "saxes@npm:6.0.0" @@ -13064,7 +12610,7 @@ __metadata: languageName: node linkType: hard -"source-map@npm:^0.6.0, source-map@npm:^0.6.1, source-map@npm:~0.6.1": +"source-map@npm:^0.6.0, source-map@npm:^0.6.1": version: 0.6.1 resolution: "source-map@npm:0.6.1" checksum: 59ce8640cf3f3124f64ac289012c2b8bd377c238e316fb323ea22fbfe83da07d81e000071d7242cad7a23cd91c7de98e4df8830ec3f133cb6133a5f6e9f67bc2 @@ -13185,15 +12731,6 @@ __metadata: languageName: node linkType: hard -"stack-utils@npm:^2.0.3": - version: 2.0.6 - resolution: "stack-utils@npm:2.0.6" - dependencies: - escape-string-regexp: ^2.0.0 - checksum: 052bf4d25bbf5f78e06c1d5e67de2e088b06871fa04107ca8d3f0e9d9263326e2942c8bedee3545795fc77d787d443a538345eef74db2f8e35db3558c6f91ff7 - languageName: node - linkType: hard - "stackback@npm:0.0.2": version: 0.0.2 resolution: "stackback@npm:0.0.2" @@ -13208,15 +12745,6 @@ __metadata: languageName: node linkType: hard -"stop-iteration-iterator@npm:^1.0.0": - version: 1.0.0 - resolution: "stop-iteration-iterator@npm:1.0.0" - dependencies: - internal-slot: ^1.0.4 - checksum: d04173690b2efa40e24ab70e5e51a3ff31d56d699550cfad084104ab3381390daccb36652b25755e420245f3b0737de66c1879eaa2a8d4fc0a78f9bf892fcb42 - languageName: node - linkType: hard - "string-argv@npm:^0.3.1": version: 0.3.1 resolution: "string-argv@npm:0.3.1" @@ -13728,18 +13256,6 @@ __metadata: languageName: node linkType: hard -"tough-cookie@npm:^4.0.0": - version: 4.1.2 - resolution: "tough-cookie@npm:4.1.2" - dependencies: - psl: ^1.1.33 - punycode: ^2.1.1 - universalify: ^0.2.0 - url-parse: ^1.5.3 - checksum: a7359e9a3e875121a84d6ba40cc184dec5784af84f67f3a56d1d2ae39b87c0e004e6ba7c7331f9622a7d2c88609032473488b28fe9f59a1fec115674589de39a - languageName: node - linkType: hard - "tough-cookie@npm:^5.0.0": version: 5.0.0 resolution: "tough-cookie@npm:5.0.0" @@ -13768,15 +13284,6 @@ __metadata: languageName: node linkType: hard -"tr46@npm:^2.1.0": - version: 2.1.0 - resolution: "tr46@npm:2.1.0" - dependencies: - punycode: ^2.1.1 - checksum: ffe6049b9dca3ae329b059aada7f515b0f0064c611b39b51ff6b53897e954650f6f63d9319c6c008d36ead477c7b55e5f64c9dc60588ddc91ff720d64eb710b3 - languageName: node - linkType: hard - "tr46@npm:^5.0.0": version: 5.0.0 resolution: "tr46@npm:5.0.0" @@ -13847,6 +13354,20 @@ __metadata: languageName: node linkType: hard +"tsconfck@npm:^3.0.3": + version: 3.1.3 + resolution: "tsconfck@npm:3.1.3" + peerDependencies: + typescript: ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true + bin: + tsconfck: bin/tsconfck.js + checksum: 73ddfb7c2d7ba37a00467b4392f235345254e465d7f0921a32cadf85b76ef9a21f0e570e5161701584362415a6bddcd8241854f645f9d8ff8036f3852beed054 + languageName: node + linkType: hard + "tsconfig-paths@npm:^3.14.1": version: 3.14.1 resolution: "tsconfig-paths@npm:3.14.1" @@ -13962,22 +13483,6 @@ __metadata: languageName: node linkType: hard -"type-check@npm:~0.3.2": - version: 0.3.2 - resolution: "type-check@npm:0.3.2" - dependencies: - prelude-ls: ~1.1.2 - checksum: dd3b1495642731bc0e1fc40abe5e977e0263005551ac83342ecb6f4f89551d106b368ec32ad3fb2da19b3bd7b2d1f64330da2ea9176d8ddbfe389fb286eb5124 - languageName: node - linkType: hard - -"type-detect@npm:4.0.8": - version: 4.0.8 - resolution: "type-detect@npm:4.0.8" - checksum: 62b5628bff67c0eb0b66afa371bd73e230399a8d2ad30d852716efcc4656a7516904570cd8631a49a3ce57c10225adf5d0cbdcb47f6b0255fe6557c453925a15 - languageName: node - linkType: hard - "type-fest@npm:^0.18.0": version: 0.18.1 resolution: "type-fest@npm:0.18.1" @@ -14199,13 +13704,6 @@ __metadata: languageName: node linkType: hard -"universalify@npm:^0.2.0": - version: 0.2.0 - resolution: "universalify@npm:0.2.0" - checksum: e86134cb12919d177c2353196a4cc09981524ee87abf621f7bc8d249dbbbebaec5e7d1314b96061497981350df786e4c5128dbf442eba104d6e765bc260678b5 - languageName: node - linkType: hard - "universalify@npm:^2.0.0": version: 2.0.0 resolution: "universalify@npm:2.0.0" @@ -14267,16 +13765,6 @@ __metadata: languageName: node linkType: hard -"url-parse@npm:^1.5.3": - version: 1.5.10 - resolution: "url-parse@npm:1.5.10" - dependencies: - querystringify: ^2.1.1 - requires-port: ^1.0.0 - checksum: fbdba6b1d83336aca2216bbdc38ba658d9cfb8fc7f665eb8b17852de638ff7d1a162c198a8e4ed66001ddbf6c9888d41e4798912c62b4fd777a31657989f7bdf - languageName: node - linkType: hard - "util-deprecate@npm:^1.0.1, util-deprecate@npm:~1.0.1": version: 1.0.2 resolution: "util-deprecate@npm:1.0.2" @@ -14377,6 +13865,22 @@ __metadata: languageName: node linkType: hard +"vite-tsconfig-paths@npm:^5.0.1": + version: 5.0.1 + resolution: "vite-tsconfig-paths@npm:5.0.1" + dependencies: + debug: ^4.1.1 + globrex: ^0.1.2 + tsconfck: ^3.0.3 + peerDependencies: + vite: "*" + peerDependenciesMeta: + vite: + optional: true + checksum: b89192ba6926bbc009cdce4640f42797b43ee92e8b1439d98e297748f20db700f38d8ad99b6cbcf9ec671393314ffa23ac765d7e82b0901e84506ffbc1b07a0a + languageName: node + linkType: hard + "vite@npm:4.1.4": version: 4.1.4 resolution: "vite@npm:4.1.4" @@ -14507,24 +14011,6 @@ __metadata: languageName: node linkType: hard -"w3c-hr-time@npm:^1.0.2": - version: 1.0.2 - resolution: "w3c-hr-time@npm:1.0.2" - dependencies: - browser-process-hrtime: ^1.0.0 - checksum: ec3c2dacbf8050d917bbf89537a101a08c2e333b4c19155f7d3bedde43529d4339db6b3d049d9610789cb915f9515f8be037e0c54c079e9d4735c50b37ed52b9 - languageName: node - linkType: hard - -"w3c-xmlserializer@npm:^2.0.0": - version: 2.0.0 - resolution: "w3c-xmlserializer@npm:2.0.0" - dependencies: - xml-name-validator: ^3.0.0 - checksum: ae25c51cf71f1fb2516df1ab33a481f83461a117565b95e3d0927432522323f93b1b2846cbb60196d337970c421adb604fc2d0d180c6a47a839da01db5b9973b - languageName: node - linkType: hard - "w3c-xmlserializer@npm:^5.0.0": version: 5.0.0 resolution: "w3c-xmlserializer@npm:5.0.0" @@ -14583,20 +14069,6 @@ __metadata: languageName: node linkType: hard -"webidl-conversions@npm:^5.0.0": - version: 5.0.0 - resolution: "webidl-conversions@npm:5.0.0" - checksum: ccf1ec2ca7c0b5671e5440ace4a66806ae09c49016ab821481bec0c05b1b82695082dc0a27d1fe9d804d475a408ba0c691e6803fd21be608e710955d4589cd69 - languageName: node - linkType: hard - -"webidl-conversions@npm:^6.1.0": - version: 6.1.0 - resolution: "webidl-conversions@npm:6.1.0" - checksum: 1f526507aa491f972a0c1409d07f8444e1d28778dfa269a9971f2e157182f3d496dc33296e4ed45b157fdb3bf535bb90c90bf10c50dcf1dd6caacb2a34cc84fb - languageName: node - linkType: hard - "webidl-conversions@npm:^7.0.0": version: 7.0.0 resolution: "webidl-conversions@npm:7.0.0" @@ -14648,15 +14120,6 @@ __metadata: languageName: node linkType: hard -"whatwg-encoding@npm:^1.0.5": - version: 1.0.5 - resolution: "whatwg-encoding@npm:1.0.5" - dependencies: - iconv-lite: 0.4.24 - checksum: 5be4efe111dce29ddee3448d3915477fcc3b28f991d9cf1300b4e50d6d189010d47bca2f51140a844cf9b726e8f066f4aee72a04d687bfe4f2ee2767b2f5b1e6 - languageName: node - linkType: hard - "whatwg-encoding@npm:^3.1.1": version: 3.1.1 resolution: "whatwg-encoding@npm:3.1.1" @@ -14666,13 +14129,6 @@ __metadata: languageName: node linkType: hard -"whatwg-mimetype@npm:^2.3.0": - version: 2.3.0 - resolution: "whatwg-mimetype@npm:2.3.0" - checksum: 23eb885940bcbcca4ff841c40a78e9cbb893ec42743993a42bf7aed16085b048b44b06f3402018931687153550f9a32d259dfa524e4f03577ab898b6965e5383 - languageName: node - linkType: hard - "whatwg-mimetype@npm:^4.0.0": version: 4.0.0 resolution: "whatwg-mimetype@npm:4.0.0" @@ -14711,17 +14167,6 @@ __metadata: languageName: node linkType: hard -"whatwg-url@npm:^8.0.0, whatwg-url@npm:^8.5.0": - version: 8.7.0 - resolution: "whatwg-url@npm:8.7.0" - dependencies: - lodash: ^4.7.0 - tr46: ^2.1.0 - webidl-conversions: ^6.1.0 - checksum: a87abcc6cefcece5311eb642858c8fdb234e51ec74196bfacf8def2edae1bfbffdf6acb251646ed6301f8cee44262642d8769c707256125a91387e33f405dd1e - languageName: node - linkType: hard - "which-boxed-primitive@npm:^1.0.2": version: 1.0.2 resolution: "which-boxed-primitive@npm:1.0.2" @@ -14735,18 +14180,6 @@ __metadata: languageName: node linkType: hard -"which-collection@npm:^1.0.1": - version: 1.0.1 - resolution: "which-collection@npm:1.0.1" - dependencies: - is-map: ^2.0.1 - is-set: ^2.0.1 - is-weakmap: ^2.0.1 - is-weakset: ^2.0.1 - checksum: c815bbd163107ef9cb84f135e6f34453eaf4cca994e7ba85ddb0d27cea724c623fae2a473ceccfd5549c53cc65a5d82692de418166df3f858e1e5dc60818581c - languageName: node - linkType: hard - "which-typed-array@npm:^1.1.9": version: 1.1.9 resolution: "which-typed-array@npm:1.1.9" @@ -14793,7 +14226,7 @@ __metadata: languageName: node linkType: hard -"word-wrap@npm:^1.2.3, word-wrap@npm:~1.2.3": +"word-wrap@npm:^1.2.3": version: 1.2.3 resolution: "word-wrap@npm:1.2.3" checksum: 30b48f91fcf12106ed3186ae4fa86a6a1842416df425be7b60485de14bec665a54a68e4b5156647dec3a70f25e84d270ca8bc8cd23182ed095f5c7206a938c1f @@ -14903,21 +14336,6 @@ __metadata: languageName: node linkType: hard -"ws@npm:^7.4.6": - version: 7.5.9 - resolution: "ws@npm:7.5.9" - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - checksum: c3c100a181b731f40b7f2fddf004aa023f79d64f489706a28bc23ff88e87f6a64b3c6651fbec3a84a53960b75159574d7a7385709847a62ddb7ad6af76f49138 - languageName: node - linkType: hard - "ws@npm:^8.18.0": version: 8.18.0 resolution: "ws@npm:8.18.0" @@ -14933,13 +14351,6 @@ __metadata: languageName: node linkType: hard -"xml-name-validator@npm:^3.0.0": - version: 3.0.0 - resolution: "xml-name-validator@npm:3.0.0" - checksum: b3ac459afed783c285bb98e4960bd1f3ba12754fd4f2320efa0f9181ca28928c53cc75ca660d15d205e81f92304419afe94c531c7cfb3e0649aa6d140d53ecb0 - languageName: node - linkType: hard - "xml-name-validator@npm:^5.0.0": version: 5.0.0 resolution: "xml-name-validator@npm:5.0.0" From a74d104399904b8f2b4fcc1f1f42bd8da4932af8 Mon Sep 17 00:00:00 2001 From: Timofei Iatsenko Date: Tue, 24 Sep 2024 18:14:51 +0200 Subject: [PATCH 05/24] secong batch --- .../test/macroTester.ts | 9 +++ .../{vitest.config.ts => vitest.config.mts} | 3 +- packages/conf/vitest.config.mts | 2 +- packages/react/package.json | 1 + packages/react/src/Trans.test.tsx | 12 +-- packages/react/vitest.setup.ts | 7 ++ yarn.lock | 76 ++++++++++++++++++- 7 files changed, 101 insertions(+), 9 deletions(-) rename packages/babel-plugin-lingui-macro/{vitest.config.ts => vitest.config.mts} (60%) diff --git a/packages/babel-plugin-lingui-macro/test/macroTester.ts b/packages/babel-plugin-lingui-macro/test/macroTester.ts index 1f4b3c8c9..b27295791 100644 --- a/packages/babel-plugin-lingui-macro/test/macroTester.ts +++ b/packages/babel-plugin-lingui-macro/test/macroTester.ts @@ -41,6 +41,15 @@ export type MacroTesterOptions = { export function macroTester(opts: MacroTesterOptions) { process.env.LINGUI_CONFIG = path.join(__dirname, "lingui.config.js") + expect.addSnapshotSerializer({ + serialize(val) { + return val + }, + test(val) { + return typeof val === "string" + }, + }) + const clean = (value: string) => prettier.format(value, { parser: "babel-ts" }).replace(/\n+/, "\n") diff --git a/packages/babel-plugin-lingui-macro/vitest.config.ts b/packages/babel-plugin-lingui-macro/vitest.config.mts similarity index 60% rename from packages/babel-plugin-lingui-macro/vitest.config.ts rename to packages/babel-plugin-lingui-macro/vitest.config.mts index 82057c336..af5ca3133 100644 --- a/packages/babel-plugin-lingui-macro/vitest.config.ts +++ b/packages/babel-plugin-lingui-macro/vitest.config.mts @@ -1,8 +1,9 @@ import { defineConfig } from "vitest/config" +import tsconfigPaths from "vite-tsconfig-paths" export default defineConfig({ + plugins: [tsconfigPaths()], test: { environment: "node", - snapshotSerializers: ["../../scripts/jest/stripAnsiSerializer.js"], }, }) diff --git a/packages/conf/vitest.config.mts b/packages/conf/vitest.config.mts index 4b47ba4fd..a69d186c5 100644 --- a/packages/conf/vitest.config.mts +++ b/packages/conf/vitest.config.mts @@ -5,6 +5,6 @@ export default defineConfig({ plugins: [tsconfigPaths()], test: { environment: "node", - snapshotSerializers: ["../../scripts/jest/stripAnsiSerializer.js"], + snapshotSerializers: ["../../scripts/jest/stripAnsiSerializer.ts"], }, }) diff --git a/packages/react/package.json b/packages/react/package.json index e9ecdca97..74bb18a1d 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -95,6 +95,7 @@ }, "devDependencies": { "@lingui/jest-mocks": "*", + "@testing-library/dom": "^10.4.0", "@testing-library/jest-dom": "^6.5.0", "@testing-library/react": "^16.0.1", "@types/react": "^18.2.13", diff --git a/packages/react/src/Trans.test.tsx b/packages/react/src/Trans.test.tsx index e53d0889d..b652d6591 100644 --- a/packages/react/src/Trans.test.tsx +++ b/packages/react/src/Trans.test.tsx @@ -1,4 +1,4 @@ -import { describe, expect, it, vi } from "vitest"; +import { describe, expect, it, vi, test } from "vitest" import * as React from "react" import { render } from "@testing-library/react" import { @@ -110,14 +110,14 @@ describe("Trans component", () => { expect(() => render()) .toThrowErrorMatchingInlineSnapshot(` - "Trans component was rendered without I18nProvider. - Attempted to render message: undefined id: unknown. Make sure this component is rendered inside a I18nProvider." - `) + [Error: Trans component was rendered without I18nProvider. + Attempted to render message: undefined id: unknown. Make sure this component is rendered inside a I18nProvider.] + `) expect(() => render() ).toThrowErrorMatchingInlineSnapshot(` - "Trans component was rendered without I18nProvider. - Attempted to render message: some valid message id: unknown. Make sure this component is rendered inside a I18nProvider." + [Error: Trans component was rendered without I18nProvider. + Attempted to render message: some valid message id: unknown. Make sure this component is rendered inside a I18nProvider.] `) console.error = originalConsole diff --git a/packages/react/vitest.setup.ts b/packages/react/vitest.setup.ts index b9e762299..12a94751e 100644 --- a/packages/react/vitest.setup.ts +++ b/packages/react/vitest.setup.ts @@ -1 +1,8 @@ import "@testing-library/jest-dom/vitest" + +import { afterEach } from "vitest" +import { cleanup } from "@testing-library/react" + +afterEach(() => { + cleanup() +}) diff --git a/yarn.lock b/yarn.lock index 535b18b18..481fbd882 100644 --- a/yarn.lock +++ b/yarn.lock @@ -31,7 +31,7 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.15.8, @babel/code-frame@npm:^7.18.6, @babel/code-frame@npm:^7.22.13, @babel/code-frame@npm:^7.24.7": +"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.15.8, @babel/code-frame@npm:^7.18.6, @babel/code-frame@npm:^7.22.13, @babel/code-frame@npm:^7.24.7": version: 7.24.7 resolution: "@babel/code-frame@npm:7.24.7" dependencies: @@ -2735,6 +2735,7 @@ __metadata: "@babel/runtime": ^7.20.13 "@lingui/core": 5.0.0-next.1 "@lingui/jest-mocks": "*" + "@testing-library/dom": ^10.4.0 "@testing-library/jest-dom": ^6.5.0 "@testing-library/react": ^16.0.1 "@types/react": ^18.2.13 @@ -3708,6 +3709,22 @@ __metadata: languageName: node linkType: hard +"@testing-library/dom@npm:^10.4.0": + version: 10.4.0 + resolution: "@testing-library/dom@npm:10.4.0" + dependencies: + "@babel/code-frame": ^7.10.4 + "@babel/runtime": ^7.12.5 + "@types/aria-query": ^5.0.1 + aria-query: 5.3.0 + chalk: ^4.1.0 + dom-accessibility-api: ^0.5.9 + lz-string: ^1.5.0 + pretty-format: ^27.0.2 + checksum: bb128b90be0c8cd78c5f5e67aa45f53de614cc048a2b50b230e736ec710805ac6c73375af354b83c74d710b3928d52b83a273a4cb89de4eb3efe49e91e706837 + languageName: node + linkType: hard + "@testing-library/jest-dom@npm:^6.5.0": version: 6.5.0 resolution: "@testing-library/jest-dom@npm:6.5.0" @@ -3764,6 +3781,13 @@ __metadata: languageName: node linkType: hard +"@types/aria-query@npm:^5.0.1": + version: 5.0.4 + resolution: "@types/aria-query@npm:5.0.4" + checksum: ad8b87e4ad64255db5f0a73bc2b4da9b146c38a3a8ab4d9306154334e0fc67ae64e76bfa298eebd1e71830591fb15987e5de7111bdb36a2221bdc379e3415fb0 + languageName: node + linkType: hard + "@types/babel-plugin-macros@npm:^2.8.5": version: 2.8.5 resolution: "@types/babel-plugin-macros@npm:2.8.5" @@ -4836,6 +4860,15 @@ __metadata: languageName: node linkType: hard +"aria-query@npm:5.3.0": + version: 5.3.0 + resolution: "aria-query@npm:5.3.0" + dependencies: + dequal: ^2.0.3 + checksum: 305bd73c76756117b59aba121d08f413c7ff5e80fa1b98e217a3443fcddb9a232ee790e24e432b59ae7625aebcf4c47cb01c2cac872994f0b426f5bdfcd96ba9 + languageName: node + linkType: hard + "aria-query@npm:^5.0.0": version: 5.3.2 resolution: "aria-query@npm:5.3.2" @@ -6296,6 +6329,13 @@ __metadata: languageName: node linkType: hard +"dequal@npm:^2.0.3": + version: 2.0.3 + resolution: "dequal@npm:2.0.3" + checksum: 8679b850e1a3d0ebbc46ee780d5df7b478c23f335887464023a631d1b9af051ad4a6595a44220f9ff8ff95a8ddccf019b5ad778a976fd7bbf77383d36f412f90 + languageName: node + linkType: hard + "detect-indent@npm:^5.0.0": version: 5.0.0 resolution: "detect-indent@npm:5.0.0" @@ -6347,6 +6387,13 @@ __metadata: languageName: node linkType: hard +"dom-accessibility-api@npm:^0.5.9": + version: 0.5.16 + resolution: "dom-accessibility-api@npm:0.5.16" + checksum: 005eb283caef57fc1adec4d5df4dd49189b628f2f575af45decb210e04d634459e3f1ee64f18b41e2dcf200c844bc1d9279d80807e686a30d69a4756151ad248 + languageName: node + linkType: hard + "dom-accessibility-api@npm:^0.6.3": version: 0.6.3 resolution: "dom-accessibility-api@npm:0.6.3" @@ -9822,6 +9869,15 @@ __metadata: languageName: node linkType: hard +"lz-string@npm:^1.5.0": + version: 1.5.0 + resolution: "lz-string@npm:1.5.0" + bin: + lz-string: bin/bin.js + checksum: 1ee98b4580246fd90dd54da6e346fb1caefcf05f677c686d9af237a157fdea3fd7c83a4bc58f858cd5b10a34d27afe0fdcbd0505a47e0590726a873dc8b8f65d + languageName: node + linkType: hard + "magic-string@npm:^0.25.7": version: 0.25.9 resolution: "magic-string@npm:0.25.9" @@ -11526,6 +11582,17 @@ __metadata: languageName: node linkType: hard +"pretty-format@npm:^27.0.2": + version: 27.5.1 + resolution: "pretty-format@npm:27.5.1" + dependencies: + ansi-regex: ^5.0.1 + ansi-styles: ^5.0.0 + react-is: ^17.0.1 + checksum: cf610cffcb793885d16f184a62162f2dd0df31642d9a18edf4ca298e909a8fe80bdbf556d5c9573992c102ce8bf948691da91bf9739bee0ffb6e79c8a8a6e088 + languageName: node + linkType: hard + "pretty-format@npm:^29.4.3, pretty-format@npm:^29.5.0": version: 29.5.0 resolution: "pretty-format@npm:29.5.0" @@ -11732,6 +11799,13 @@ __metadata: languageName: node linkType: hard +"react-is@npm:^17.0.1": + version: 17.0.2 + resolution: "react-is@npm:17.0.2" + checksum: 9d6d111d8990dc98bc5402c1266a808b0459b5d54830bbea24c12d908b536df7883f268a7868cfaedde3dd9d4e0d574db456f84d2e6df9c4526f99bb4b5344d8 + languageName: node + linkType: hard + "react-is@npm:^18.0.0": version: 18.2.0 resolution: "react-is@npm:18.2.0" From d236b87b796214abe8a9fedacc9f3354ac16fe97 Mon Sep 17 00:00:00 2001 From: Timofei Iatsenko Date: Wed, 25 Sep 2024 07:25:35 +0200 Subject: [PATCH 06/24] wip --- package.json | 3 + .../{vitest.config.ts => vitest.config.mts} | 2 + packages/core/vitest.config.mts | 5 +- vitest.workspace.mts | 1 - vitest.workspace.ts | 5 + yarn.lock | 96 ++++++++++++++++++- 6 files changed, 108 insertions(+), 4 deletions(-) rename packages/babel-plugin-extract-messages/{vitest.config.ts => vitest.config.mts} (60%) delete mode 100644 vitest.workspace.mts create mode 100644 vitest.workspace.ts diff --git a/package.json b/package.json index 9e9b47d83..21cf7cd7f 100644 --- a/package.json +++ b/package.json @@ -2,6 +2,7 @@ "name": "js-lingui-workspaces", "private": true, "version": "4.0.0", + "type": "module", "author": { "name": "Tomáš Ehrlich", "email": "tomas.ehrlich@gmail.com" @@ -49,6 +50,7 @@ "@types/ramda": "^0.27.23", "@typescript-eslint/eslint-plugin": "^5.50.0", "@typescript-eslint/parser": "^5.50.0", + "@vitest/ui": "^2.1.1", "babel-eslint": "^10.1.0", "babel-jest": "^29.4.3", "chalk": "^4.1.0", @@ -76,6 +78,7 @@ "swc-node": "^1.0.0", "ts-jest": "^29.0.5", "typescript": "^4.9.5", + "vite": "^5.4.7", "vitest": "^2.1.1" }, "workspaces": [ diff --git a/packages/babel-plugin-extract-messages/vitest.config.ts b/packages/babel-plugin-extract-messages/vitest.config.mts similarity index 60% rename from packages/babel-plugin-extract-messages/vitest.config.ts rename to packages/babel-plugin-extract-messages/vitest.config.mts index ab76a35a6..af5ca3133 100644 --- a/packages/babel-plugin-extract-messages/vitest.config.ts +++ b/packages/babel-plugin-extract-messages/vitest.config.mts @@ -1,6 +1,8 @@ import { defineConfig } from "vitest/config" +import tsconfigPaths from "vite-tsconfig-paths" export default defineConfig({ + plugins: [tsconfigPaths()], test: { environment: "node", }, diff --git a/packages/core/vitest.config.mts b/packages/core/vitest.config.mts index 3977b53d4..8a702b8ca 100644 --- a/packages/core/vitest.config.mts +++ b/packages/core/vitest.config.mts @@ -1,10 +1,11 @@ -import { defineConfig } from "vitest/config" +import { defineProject } from "vitest/config" import tsconfigPaths from "vite-tsconfig-paths" -export default defineConfig({ +export default defineProject({ plugins: [tsconfigPaths()], test: { + name: "core", environment: "node", }, }) diff --git a/vitest.workspace.mts b/vitest.workspace.mts deleted file mode 100644 index a1b551b94..000000000 --- a/vitest.workspace.mts +++ /dev/null @@ -1 +0,0 @@ -export default ["packages/*/vite.config.ts"] diff --git a/vitest.workspace.ts b/vitest.workspace.ts new file mode 100644 index 000000000..6e1d37b68 --- /dev/null +++ b/vitest.workspace.ts @@ -0,0 +1,5 @@ +import { defineWorkspace } from "vitest/config" + +export default defineWorkspace(["./packages/**/vite.config.mts"]) +// +// export default ["packages/**/vite.config.mts"] diff --git a/yarn.lock b/yarn.lock index 481fbd882..7e0881545 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3313,6 +3313,13 @@ __metadata: languageName: node linkType: hard +"@polka/url@npm:^1.0.0-next.24": + version: 1.0.0-next.28 + resolution: "@polka/url@npm:1.0.0-next.28" + checksum: 7402aaf1de781d0eb0870d50cbcd394f949aee11b38a267a5c3b4e3cfee117e920693e6e93ce24c87ae2d477a59634f39d9edde8e86471cae756839b07c79af7 + languageName: node + linkType: hard + "@rollup/plugin-alias@npm:^5.0.0": version: 5.0.0 resolution: "@rollup/plugin-alias@npm:5.0.0" @@ -4323,6 +4330,23 @@ __metadata: languageName: node linkType: hard +"@vitest/ui@npm:^2.1.1": + version: 2.1.1 + resolution: "@vitest/ui@npm:2.1.1" + dependencies: + "@vitest/utils": 2.1.1 + fflate: ^0.8.2 + flatted: ^3.3.1 + pathe: ^1.1.2 + sirv: ^2.0.4 + tinyglobby: ^0.2.6 + tinyrainbow: ^1.2.0 + peerDependencies: + vitest: 2.1.1 + checksum: 8cbe653faa62f5cd765e84ec26214f78e12a3e4206aa53cecddcef44ebff88d770910491ec3944bb81a866a5b12ca161bc67d267467086754b1e109be001d2d3 + languageName: node + linkType: hard + "@vitest/utils@npm:2.1.1": version: 2.1.1 resolution: "@vitest/utils@npm:2.1.1" @@ -7586,6 +7610,25 @@ __metadata: languageName: node linkType: hard +"fdir@npm:^6.3.0": + version: 6.3.0 + resolution: "fdir@npm:6.3.0" + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + checksum: c0fe6ddd4aa0a315a55401d468974b582b1880908c8f7b1b1c40db4cd2feb2c04402d2fbdbd6ad049f6261e0d7cd6e629cc5ae678f8883f245ebc1f94b6ff9e6 + languageName: node + linkType: hard + +"fflate@npm:^0.8.2": + version: 0.8.2 + resolution: "fflate@npm:0.8.2" + checksum: 29470337b85d3831826758e78f370e15cda3169c5cd4477c9b5eea2402261a74b2975bae816afabe1c15d21d98591e0d30a574f7103aa117bff60756fa3035d4 + languageName: node + linkType: hard + "figures@npm:3.2.0, figures@npm:^3.0.0": version: 3.2.0 resolution: "figures@npm:3.2.0" @@ -7676,6 +7719,13 @@ __metadata: languageName: node linkType: hard +"flatted@npm:^3.3.1": + version: 3.3.1 + resolution: "flatted@npm:3.3.1" + checksum: 85ae7181650bb728c221e7644cbc9f4bf28bc556f2fc89bb21266962bdf0ce1029cc7acc44bb646cd469d9baac7c317f64e841c4c4c00516afa97320cdac7f94 + languageName: node + linkType: hard + "follow-redirects@npm:^1.15.0": version: 1.15.2 resolution: "follow-redirects@npm:1.15.2" @@ -9213,6 +9263,7 @@ __metadata: "@types/ramda": ^0.27.23 "@typescript-eslint/eslint-plugin": ^5.50.0 "@typescript-eslint/parser": ^5.50.0 + "@vitest/ui": ^2.1.1 babel-eslint: ^10.1.0 babel-jest: ^29.4.3 chalk: ^4.1.0 @@ -9240,6 +9291,7 @@ __metadata: swc-node: ^1.0.0 ts-jest: ^29.0.5 typescript: ^4.9.5 + vite: ^5.4.7 vitest: ^2.1.1 languageName: unknown linkType: soft @@ -10330,6 +10382,13 @@ __metadata: languageName: node linkType: hard +"mrmime@npm:^2.0.0": + version: 2.0.0 + resolution: "mrmime@npm:2.0.0" + checksum: f6fe11ec667c3d96f1ce5fd41184ed491d5f0a5f4045e82446a471ccda5f84c7f7610dff61d378b73d964f73a320bd7f89788f9e6b9403e32cc4be28ba99f569 + languageName: node + linkType: hard + "ms@npm:^2.0.0, ms@npm:^2.1.1, ms@npm:^2.1.3": version: 2.1.3 resolution: "ms@npm:2.1.3" @@ -11452,6 +11511,13 @@ __metadata: languageName: node linkType: hard +"picomatch@npm:^4.0.2": + version: 4.0.2 + resolution: "picomatch@npm:4.0.2" + checksum: a7a5188c954f82c6585720e9143297ccd0e35ad8072231608086ca950bee672d51b0ef676254af0788205e59bd4e4deb4e7708769226bed725bf13370a7d1464 + languageName: node + linkType: hard + "pidtree@npm:^0.6.0": version: 0.6.0 resolution: "pidtree@npm:0.6.0" @@ -12552,6 +12618,17 @@ __metadata: languageName: node linkType: hard +"sirv@npm:^2.0.4": + version: 2.0.4 + resolution: "sirv@npm:2.0.4" + dependencies: + "@polka/url": ^1.0.0-next.24 + mrmime: ^2.0.0 + totalist: ^3.0.0 + checksum: 6853384a51d6ee9377dd657e2b257e0e98b29abbfbfa6333e105197f0f100c8c56a4520b47028b04ab1833cf2312526206f38fcd4f891c6df453f40da1a15a57 + languageName: node + linkType: hard + "size-limit@npm:^8.1.1": version: 8.1.2 resolution: "size-limit@npm:8.1.2" @@ -13250,6 +13327,16 @@ __metadata: languageName: node linkType: hard +"tinyglobby@npm:^0.2.6": + version: 0.2.6 + resolution: "tinyglobby@npm:0.2.6" + dependencies: + fdir: ^6.3.0 + picomatch: ^4.0.2 + checksum: 5a1844369f1c11b54b4405c267a968b87ae08a6b68dca9c00a99bc5d03e0396901c04bb5e7e78675b5b70d3d93c65707ba0340845e7bba54f66c9fea29280224 + languageName: node + linkType: hard + "tinypool@npm:^1.0.0": version: 1.0.1 resolution: "tinypool@npm:1.0.1" @@ -13330,6 +13417,13 @@ __metadata: languageName: node linkType: hard +"totalist@npm:^3.0.0": + version: 3.0.1 + resolution: "totalist@npm:3.0.1" + checksum: 5132d562cf88ff93fd710770a92f31dbe67cc19b5c6ccae2efc0da327f0954d211bbfd9456389655d726c624f284b4a23112f56d1da931ca7cfabbe1f45e778a + languageName: node + linkType: hard + "tough-cookie@npm:^5.0.0": version: 5.0.0 resolution: "tough-cookie@npm:5.0.0" @@ -13993,7 +14087,7 @@ __metadata: languageName: node linkType: hard -"vite@npm:^5.0.0": +"vite@npm:^5.0.0, vite@npm:^5.4.7": version: 5.4.7 resolution: "vite@npm:5.4.7" dependencies: From e161ee7b16421bc32772eba5b6afa36bf84c7a6a Mon Sep 17 00:00:00 2001 From: Timofei Iatsenko Date: Wed, 25 Sep 2024 11:22:34 +0200 Subject: [PATCH 07/24] wip --- package.json | 2 +- .../package.json | 3 +- .../vitest.config.mts | 4 +- .../vitest.config.mts | 4 +- packages/cli/package.json | 3 +- packages/cli/vitest.config.mts | 6 +- packages/conf/package.json | 3 +- packages/conf/vitest.config.mts | 4 +- packages/core/package.json | 3 +- packages/core/vitest.config.mts | 4 +- packages/detect-locale/package.json | 3 +- packages/detect-locale/vitest.config.mts | 4 +- packages/extractor-vue/package.json | 3 +- packages/extractor-vue/tsconfig.json | 9 + packages/extractor-vue/vitest.config.mts | 4 +- packages/format-csv/package.json | 3 +- packages/format-csv/vitest.config.mts | 4 +- packages/format-json/package.json | 3 +- packages/format-json/vitest.config.mts | 4 +- packages/format-po-gettext/package.json | 3 +- .../format-po-gettext/src/po-gettext.test.ts | 20 +- packages/format-po-gettext/vitest.config.mts | 4 +- packages/format-po/package.json | 3 +- packages/format-po/vitest.config.mts | 4 +- packages/jest-mocks/package.json | 3 + packages/loader/package.json | 5 +- packages/loader/vitest.config.mts | 4 +- packages/message-utils/package.json | 3 +- .../message-utils/src/compileMessage.test.ts | 122 +++--- .../src/generateMessageId.test.ts | 4 +- packages/message-utils/vitest.config.mts | 4 +- packages/react/package.json | 3 +- packages/react/vitest.config.mts | 4 +- packages/remote-loader/package.json | 3 +- packages/remote-loader/vitest.config.mts | 4 +- packages/vite-plugin/package.json | 3 +- .../test/{index.ts => index.test.ts} | 1 + packages/vite-plugin/vitest.config.mts | 4 +- vitest.workspace.ts | 2 +- yarn.lock | 403 +++++++++--------- 40 files changed, 358 insertions(+), 321 deletions(-) create mode 100644 packages/extractor-vue/tsconfig.json rename packages/vite-plugin/test/{index.ts => index.test.ts} (98%) diff --git a/package.json b/package.json index 21cf7cd7f..bf12bb29e 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ }, "license": "MIT", "scripts": { - "test": "vitest run", + "test": "yarn workspaces foreach run test", "test:ci": "jest --ci --runInBand", "test:ci:coverage": "yarn test:ci --coverage", "test:integration": "jest -c jest.config.integration.js", diff --git a/packages/babel-plugin-extract-messages/package.json b/packages/babel-plugin-extract-messages/package.json index 8a75b1586..c050432e9 100644 --- a/packages/babel-plugin-extract-messages/package.json +++ b/packages/babel-plugin-extract-messages/package.json @@ -22,7 +22,8 @@ ], "scripts": { "build": "rimraf ./dist && unbuild", - "stub": "unbuild --stub" + "stub": "unbuild --stub", + "test": "vitest --run" }, "files": [ "LICENSE", diff --git a/packages/babel-plugin-extract-messages/vitest.config.mts b/packages/babel-plugin-extract-messages/vitest.config.mts index af5ca3133..4bef06cd5 100644 --- a/packages/babel-plugin-extract-messages/vitest.config.mts +++ b/packages/babel-plugin-extract-messages/vitest.config.mts @@ -2,7 +2,9 @@ import { defineConfig } from "vitest/config" import tsconfigPaths from "vite-tsconfig-paths" export default defineConfig({ - plugins: [tsconfigPaths()], + plugins: [tsconfigPaths({ + root: "./", + })], test: { environment: "node", }, diff --git a/packages/babel-plugin-lingui-macro/vitest.config.mts b/packages/babel-plugin-lingui-macro/vitest.config.mts index af5ca3133..4bef06cd5 100644 --- a/packages/babel-plugin-lingui-macro/vitest.config.mts +++ b/packages/babel-plugin-lingui-macro/vitest.config.mts @@ -2,7 +2,9 @@ import { defineConfig } from "vitest/config" import tsconfigPaths from "vite-tsconfig-paths" export default defineConfig({ - plugins: [tsconfigPaths()], + plugins: [tsconfigPaths({ + root: "./", + })], test: { environment: "node", }, diff --git a/packages/cli/package.json b/packages/cli/package.json index 989e5a21a..a8f6896e7 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -37,7 +37,8 @@ } }, "scripts": { - "build": "rimraf ./dist && tsc -p tsconfig.build.json" + "build": "rimraf ./dist && tsc -p tsconfig.build.json", + "test": "vitest --run" }, "engines": { "node": ">=20.0.0" diff --git a/packages/cli/vitest.config.mts b/packages/cli/vitest.config.mts index cc8e3b8e1..cde5a2ad3 100644 --- a/packages/cli/vitest.config.mts +++ b/packages/cli/vitest.config.mts @@ -1,10 +1,10 @@ import { defineConfig } from "vitest/config" - import tsconfigPaths from "vite-tsconfig-paths" export default defineConfig({ - plugins: [tsconfigPaths()], - + plugins: [tsconfigPaths({ + root: "./", + })], test: { environment: "node", snapshotSerializers: ["../../scripts/jest/stripAnsiSerializer.ts"], diff --git a/packages/conf/package.json b/packages/conf/package.json index b64fcf0d8..1f40b2878 100644 --- a/packages/conf/package.json +++ b/packages/conf/package.json @@ -22,7 +22,8 @@ }, "scripts": { "build": "rimraf ./dist && unbuild", - "stub": "unbuild --stub" + "stub": "unbuild --stub", + "test": "vitest --run" }, "dependencies": { "@babel/runtime": "^7.20.13", diff --git a/packages/conf/vitest.config.mts b/packages/conf/vitest.config.mts index a69d186c5..ac1851cd2 100644 --- a/packages/conf/vitest.config.mts +++ b/packages/conf/vitest.config.mts @@ -2,7 +2,9 @@ import { defineConfig } from "vitest/config" import tsconfigPaths from "vite-tsconfig-paths" export default defineConfig({ - plugins: [tsconfigPaths()], + plugins: [tsconfigPaths({ + root: "./", + })], test: { environment: "node", snapshotSerializers: ["../../scripts/jest/stripAnsiSerializer.ts"], diff --git a/packages/core/package.json b/packages/core/package.json index 036e3d947..519fc7066 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -22,7 +22,8 @@ ], "scripts": { "build": "unbuild", - "stub": "unbuild --stub" + "stub": "unbuild --stub", + "test": "vitest --run" }, "repository": { "type": "git", diff --git a/packages/core/vitest.config.mts b/packages/core/vitest.config.mts index 8a702b8ca..7e115f6c5 100644 --- a/packages/core/vitest.config.mts +++ b/packages/core/vitest.config.mts @@ -2,7 +2,9 @@ import { defineProject } from "vitest/config" import tsconfigPaths from "vite-tsconfig-paths" export default defineProject({ - plugins: [tsconfigPaths()], + plugins: [tsconfigPaths({ + root: "./", + })], test: { name: "core", diff --git a/packages/detect-locale/package.json b/packages/detect-locale/package.json index 65e3d9bbe..817958fd0 100644 --- a/packages/detect-locale/package.json +++ b/packages/detect-locale/package.json @@ -18,7 +18,8 @@ ], "scripts": { "build": "rimraf ./dist && unbuild", - "stub": "unbuild --stub" + "stub": "unbuild --stub", + "test": "vitest --run" }, "author": { "name": "Sergio Moreno", diff --git a/packages/detect-locale/vitest.config.mts b/packages/detect-locale/vitest.config.mts index b84723020..83ab1e196 100644 --- a/packages/detect-locale/vitest.config.mts +++ b/packages/detect-locale/vitest.config.mts @@ -2,7 +2,9 @@ import { defineConfig } from "vitest/config" import tsconfigPaths from "vite-tsconfig-paths" export default defineConfig({ - plugins: [tsconfigPaths()], + plugins: [tsconfigPaths({ + root: "./", + })], test: { environment: "jsdom", diff --git a/packages/extractor-vue/package.json b/packages/extractor-vue/package.json index 40a5a4e25..3c569dca4 100644 --- a/packages/extractor-vue/package.json +++ b/packages/extractor-vue/package.json @@ -27,7 +27,8 @@ }, "scripts": { "build": "rimraf ./dist && unbuild", - "stub": "unbuild --stub" + "stub": "unbuild --stub", + "test": "vitest --run" }, "engines": { "node": ">=20.0.0" diff --git a/packages/extractor-vue/tsconfig.json b/packages/extractor-vue/tsconfig.json new file mode 100644 index 000000000..7731e07a7 --- /dev/null +++ b/packages/extractor-vue/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "strict": true, + "noUncheckedIndexedAccess": true, + "isolatedModules": true, + "forceConsistentCasingInFileNames": true, + } +} diff --git a/packages/extractor-vue/vitest.config.mts b/packages/extractor-vue/vitest.config.mts index af5ca3133..4bef06cd5 100644 --- a/packages/extractor-vue/vitest.config.mts +++ b/packages/extractor-vue/vitest.config.mts @@ -2,7 +2,9 @@ import { defineConfig } from "vitest/config" import tsconfigPaths from "vite-tsconfig-paths" export default defineConfig({ - plugins: [tsconfigPaths()], + plugins: [tsconfigPaths({ + root: "./", + })], test: { environment: "node", }, diff --git a/packages/format-csv/package.json b/packages/format-csv/package.json index c9a13bab5..d33cdd1c9 100644 --- a/packages/format-csv/package.json +++ b/packages/format-csv/package.json @@ -21,7 +21,8 @@ ], "scripts": { "build": "rimraf ./dist && unbuild", - "stub": "unbuild --stub" + "stub": "unbuild --stub", + "test": "vitest --run" }, "repository": { "type": "git", diff --git a/packages/format-csv/vitest.config.mts b/packages/format-csv/vitest.config.mts index af5ca3133..4bef06cd5 100644 --- a/packages/format-csv/vitest.config.mts +++ b/packages/format-csv/vitest.config.mts @@ -2,7 +2,9 @@ import { defineConfig } from "vitest/config" import tsconfigPaths from "vite-tsconfig-paths" export default defineConfig({ - plugins: [tsconfigPaths()], + plugins: [tsconfigPaths({ + root: "./", + })], test: { environment: "node", }, diff --git a/packages/format-json/package.json b/packages/format-json/package.json index 2e915c9aa..6d2d3b8f0 100644 --- a/packages/format-json/package.json +++ b/packages/format-json/package.json @@ -21,7 +21,8 @@ ], "scripts": { "build": "rimraf ./dist && unbuild", - "stub": "unbuild --stub" + "stub": "unbuild --stub", + "test": "vitest --run" }, "repository": { "type": "git", diff --git a/packages/format-json/vitest.config.mts b/packages/format-json/vitest.config.mts index af5ca3133..4bef06cd5 100644 --- a/packages/format-json/vitest.config.mts +++ b/packages/format-json/vitest.config.mts @@ -2,7 +2,9 @@ import { defineConfig } from "vitest/config" import tsconfigPaths from "vite-tsconfig-paths" export default defineConfig({ - plugins: [tsconfigPaths()], + plugins: [tsconfigPaths({ + root: "./", + })], test: { environment: "node", }, diff --git a/packages/format-po-gettext/package.json b/packages/format-po-gettext/package.json index 8d54ff723..e162f8444 100644 --- a/packages/format-po-gettext/package.json +++ b/packages/format-po-gettext/package.json @@ -23,7 +23,8 @@ ], "scripts": { "build": "rimraf ./dist && unbuild", - "stub": "unbuild --stub" + "stub": "unbuild --stub", + "test": "vitest --run" }, "repository": { "type": "git", diff --git a/packages/format-po-gettext/src/po-gettext.test.ts b/packages/format-po-gettext/src/po-gettext.test.ts index d2c771ee2..24939e8e0 100644 --- a/packages/format-po-gettext/src/po-gettext.test.ts +++ b/packages/format-po-gettext/src/po-gettext.test.ts @@ -144,17 +144,17 @@ msgstr[2] "# dní" // Note that the last case must be `other` (the 4th CLDR case name) instead of `many` (the 3rd CLDR case name). expect(parsed).toMatchInlineSnapshot(` { - Y8Xw2Y: { - comments: [], - context: null, - extra: { - flags: [], - translatorComments: [], + "Y8Xw2Y": { + "comments": [], + "context": null, + "extra": { + "flags": [], + "translatorComments": [], }, - message: {#, plural, one {day} other {days}}, - obsolete: false, - origin: [], - translation: {#, plural, one {# den} few {# dny} other {# dní}}, + "message": "{#, plural, one {day} other {days}}", + "obsolete": false, + "origin": [], + "translation": "{#, plural, one {# den} few {# dny} other {# dní}}", }, } `) diff --git a/packages/format-po-gettext/vitest.config.mts b/packages/format-po-gettext/vitest.config.mts index af5ca3133..4bef06cd5 100644 --- a/packages/format-po-gettext/vitest.config.mts +++ b/packages/format-po-gettext/vitest.config.mts @@ -2,7 +2,9 @@ import { defineConfig } from "vitest/config" import tsconfigPaths from "vite-tsconfig-paths" export default defineConfig({ - plugins: [tsconfigPaths()], + plugins: [tsconfigPaths({ + root: "./", + })], test: { environment: "node", }, diff --git a/packages/format-po/package.json b/packages/format-po/package.json index 2754b93c3..08dec932d 100644 --- a/packages/format-po/package.json +++ b/packages/format-po/package.json @@ -23,7 +23,8 @@ ], "scripts": { "build": "rimraf ./dist && unbuild", - "stub": "unbuild --stub" + "stub": "unbuild --stub", + "test": "vitest --run" }, "repository": { "type": "git", diff --git a/packages/format-po/vitest.config.mts b/packages/format-po/vitest.config.mts index b971e6035..6ef694852 100644 --- a/packages/format-po/vitest.config.mts +++ b/packages/format-po/vitest.config.mts @@ -2,7 +2,9 @@ import { defineConfig } from "vitest/config" import tsconfigPaths from "vite-tsconfig-paths" export default defineConfig({ - plugins: [tsconfigPaths()], + plugins: [tsconfigPaths({ + root: "./", + })], test: { environment: "node", setupFiles: ["./vitest.setup.ts"], diff --git a/packages/jest-mocks/package.json b/packages/jest-mocks/package.json index 0252bd134..ff37f6a95 100644 --- a/packages/jest-mocks/package.json +++ b/packages/jest-mocks/package.json @@ -9,6 +9,9 @@ "email": "tomas.ehrlich@gmail.com" }, "license": "MIT", + "scripts": { + "test": "vitest --run" + }, "keywords": [ "jest", "testing", diff --git a/packages/loader/package.json b/packages/loader/package.json index 0c044d4d5..88605ba7b 100644 --- a/packages/loader/package.json +++ b/packages/loader/package.json @@ -24,7 +24,8 @@ ], "scripts": { "build": "rimraf ./dist && unbuild", - "stub": "unbuild --stub" + "stub": "unbuild --stub", + "test": "vitest --run" }, "repository": { "type": "git", @@ -51,7 +52,7 @@ "unbuild": "2.0.0", "vite-tsconfig-paths": "^5.0.1", "vitest": "^2.1.1", - "webpack": "^5.76.1" + "webpack": "^5.94.0" }, "peerDependencies": { "webpack": "^5.0.0" diff --git a/packages/loader/vitest.config.mts b/packages/loader/vitest.config.mts index af5ca3133..4bef06cd5 100644 --- a/packages/loader/vitest.config.mts +++ b/packages/loader/vitest.config.mts @@ -2,7 +2,9 @@ import { defineConfig } from "vitest/config" import tsconfigPaths from "vite-tsconfig-paths" export default defineConfig({ - plugins: [tsconfigPaths()], + plugins: [tsconfigPaths({ + root: "./", + })], test: { environment: "node", }, diff --git a/packages/message-utils/package.json b/packages/message-utils/package.json index 2ce3a818e..163923b75 100644 --- a/packages/message-utils/package.json +++ b/packages/message-utils/package.json @@ -28,7 +28,8 @@ }, "scripts": { "build": "rimraf ./dist && unbuild", - "stub": "unbuild --stub" + "stub": "unbuild --stub", + "test": "vitest --run" }, "repository": { "type": "git", diff --git a/packages/message-utils/src/compileMessage.test.ts b/packages/message-utils/src/compileMessage.test.ts index a89dfe46c..379e85c24 100644 --- a/packages/message-utils/src/compileMessage.test.ts +++ b/packages/message-utils/src/compileMessage.test.ts @@ -39,18 +39,18 @@ describe("compileMessage", () => { const tokens = compileMessage("Hey {name}!") expect(tokens).toMatchInlineSnapshot(` [ - Hey , + "Hey ", [ - name, + "name", ], - !, + "!", ] `) }) it("should not interpolate escaped placeholder", () => { const tokens = compileMessage("Hey '{name}'!") - expect(tokens).toMatchInlineSnapshot(`Hey {name}!`) + expect(tokens).toMatchInlineSnapshot(`"Hey {name}!"`) }) it("should compile plurals", () => { @@ -60,20 +60,20 @@ describe("compileMessage", () => { expect(tokens).toMatchInlineSnapshot(` [ [ - value, - plural, + "value", + "plural", { - 0: No Books, - 42: FourtyTwo books, - 99: Books with problems, - offset: 1, - one: [ - #, - Book, + "0": "No Books", + "42": "FourtyTwo books", + "99": "Books with problems", + "offset": 1, + "one": [ + "#", + " Book", ], - other: [ - #, - Books, + "other": [ + "#", + " Books", ], }, ], @@ -88,17 +88,17 @@ describe("compileMessage", () => { expect(tokens).toMatchInlineSnapshot(` [ [ - value, - selectordinal, + "value", + "selectordinal", { - offset: undefined, - one: [ - #, - st Book, + "offset": undefined, + "one": [ + "#", + "st Book", ], - two: [ - #, - nd Book, + "two": [ + "#", + "nd Book", ], }, ], @@ -117,44 +117,44 @@ describe("compileMessage", () => { expect(tokens).toMatchInlineSnapshot(` [ [ - gender, - select, + "gender", + "select", { - female: [ + "female": [ [ - numOfGuests, - plural, + "numOfGuests", + "plural", { - offset: undefined, - one: She invites one guest, - other: [ - She invites , - #, - guests, + "offset": undefined, + "one": "She invites one guest", + "other": [ + "She invites ", + "#", + " guests", ], }, ], ], - male: [ + "male": [ [ - numOfGuests, - plural, + "numOfGuests", + "plural", { - offset: undefined, - one: He invites one guest, - other: [ - He invites , - #, - guests, + "offset": undefined, + "one": "He invites one guest", + "other": [ + "He invites ", + "#", + " guests", ], }, ], ], - offset: undefined, - other: [ - They is , + "offset": undefined, + "other": [ + "They is ", [ - gender, + "gender", ], ], }, @@ -168,12 +168,12 @@ describe("compileMessage", () => { expect(tokens).toMatchInlineSnapshot(` [ [ - value, - select, + "value", + "select", { - female: She, - offset: undefined, - other: They, + "female": "She", + "offset": undefined, + "other": "They", }, ], ] @@ -185,8 +185,8 @@ describe("compileMessage", () => { expect(tokens).toMatchInlineSnapshot(` [ [ - value, - date, + "value", + "date", ], ] `) @@ -196,17 +196,17 @@ describe("compileMessage", () => { expect(compileMessage("{value, number, percent}")).toMatchInlineSnapshot(` [ [ - value, - number, - percent, + "value", + "number", + "percent", ], ] `) expect(compileMessage("{value, number}")).toMatchInlineSnapshot(` [ [ - value, - number, + "value", + "number", ], ] `) diff --git a/packages/message-utils/src/generateMessageId.test.ts b/packages/message-utils/src/generateMessageId.test.ts index af161ea1b..d587227f6 100644 --- a/packages/message-utils/src/generateMessageId.test.ts +++ b/packages/message-utils/src/generateMessageId.test.ts @@ -3,12 +3,12 @@ import { generateMessageId } from "./generateMessageId" describe("generateMessageId", () => { it("Should generate an id for a message", () => { - expect(generateMessageId("my message")).toMatchInlineSnapshot(`vQhkQx`) + expect(generateMessageId("my message")).toMatchInlineSnapshot(`"vQhkQx"`) }) it("Should generate different id when context is provided", () => { const withContext = generateMessageId("my message", "custom context") - expect(withContext).toMatchInlineSnapshot(`gGUeZH`) + expect(withContext).toMatchInlineSnapshot(`"gGUeZH"`) expect(withContext != generateMessageId("my message")).toBeTruthy() }) diff --git a/packages/message-utils/vitest.config.mts b/packages/message-utils/vitest.config.mts index af5ca3133..4bef06cd5 100644 --- a/packages/message-utils/vitest.config.mts +++ b/packages/message-utils/vitest.config.mts @@ -2,7 +2,9 @@ import { defineConfig } from "vitest/config" import tsconfigPaths from "vite-tsconfig-paths" export default defineConfig({ - plugins: [tsconfigPaths()], + plugins: [tsconfigPaths({ + root: "./", + })], test: { environment: "node", }, diff --git a/packages/react/package.json b/packages/react/package.json index 74bb18a1d..2ab567355 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -28,7 +28,8 @@ ], "scripts": { "build": "rimraf ./dist && unbuild", - "stub": "unbuild --stub" + "stub": "unbuild --stub", + "test": "vitest --run" }, "repository": { "type": "git", diff --git a/packages/react/vitest.config.mts b/packages/react/vitest.config.mts index 645ed019d..d66feae54 100644 --- a/packages/react/vitest.config.mts +++ b/packages/react/vitest.config.mts @@ -2,7 +2,9 @@ import { defineConfig } from "vitest/config" import tsconfigPaths from "vite-tsconfig-paths" export default defineConfig({ - plugins: [tsconfigPaths()], + plugins: [tsconfigPaths({ + root: "./", + })], test: { environment: "jsdom", setupFiles: "./vitest.setup.ts", diff --git a/packages/remote-loader/package.json b/packages/remote-loader/package.json index 9c27a05c6..f4376fce7 100644 --- a/packages/remote-loader/package.json +++ b/packages/remote-loader/package.json @@ -24,7 +24,8 @@ ], "scripts": { "build": "rimraf ./dist && unbuild", - "stub": "unbuild --stub" + "stub": "unbuild --stub", + "test": "vitest --run" }, "repository": { "type": "git", diff --git a/packages/remote-loader/vitest.config.mts b/packages/remote-loader/vitest.config.mts index af5ca3133..4bef06cd5 100644 --- a/packages/remote-loader/vitest.config.mts +++ b/packages/remote-loader/vitest.config.mts @@ -2,7 +2,9 @@ import { defineConfig } from "vitest/config" import tsconfigPaths from "vite-tsconfig-paths" export default defineConfig({ - plugins: [tsconfigPaths()], + plugins: [tsconfigPaths({ + root: "./", + })], test: { environment: "node", }, diff --git a/packages/vite-plugin/package.json b/packages/vite-plugin/package.json index 31355af29..4610ec3b1 100644 --- a/packages/vite-plugin/package.json +++ b/packages/vite-plugin/package.json @@ -21,7 +21,8 @@ ], "scripts": { "build": "rimraf ./dist && unbuild", - "stub": "unbuild --stub" + "stub": "unbuild --stub", + "test": "vitest --run" }, "repository": { "type": "git", diff --git a/packages/vite-plugin/test/index.ts b/packages/vite-plugin/test/index.test.ts similarity index 98% rename from packages/vite-plugin/test/index.ts rename to packages/vite-plugin/test/index.test.ts index 3ec6c4bff..10734caa9 100644 --- a/packages/vite-plugin/test/index.ts +++ b/packages/vite-plugin/test/index.test.ts @@ -1,3 +1,4 @@ +import {describe, it, expect} from 'vitest'; import path from "path" import { exec as _exec } from "child_process" import { mkdtempSync } from "fs" diff --git a/packages/vite-plugin/vitest.config.mts b/packages/vite-plugin/vitest.config.mts index af5ca3133..4bef06cd5 100644 --- a/packages/vite-plugin/vitest.config.mts +++ b/packages/vite-plugin/vitest.config.mts @@ -2,7 +2,9 @@ import { defineConfig } from "vitest/config" import tsconfigPaths from "vite-tsconfig-paths" export default defineConfig({ - plugins: [tsconfigPaths()], + plugins: [tsconfigPaths({ + root: "./", + })], test: { environment: "node", }, diff --git a/vitest.workspace.ts b/vitest.workspace.ts index 6e1d37b68..82d99fac3 100644 --- a/vitest.workspace.ts +++ b/vitest.workspace.ts @@ -1,5 +1,5 @@ import { defineWorkspace } from "vitest/config" -export default defineWorkspace(["./packages/**/vite.config.mts"]) +export default defineWorkspace(["./packages/**/vitest.config.mts"]) // // export default ["packages/**/vite.config.mts"] diff --git a/yarn.lock b/yarn.lock index 7e0881545..63f7e6d5c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2357,7 +2357,7 @@ __metadata: languageName: node linkType: hard -"@jridgewell/gen-mapping@npm:^0.3.0, @jridgewell/gen-mapping@npm:^0.3.5": +"@jridgewell/gen-mapping@npm:^0.3.5": version: 0.3.5 resolution: "@jridgewell/gen-mapping@npm:0.3.5" dependencies: @@ -2382,13 +2382,13 @@ __metadata: languageName: node linkType: hard -"@jridgewell/source-map@npm:^0.3.2": - version: 0.3.2 - resolution: "@jridgewell/source-map@npm:0.3.2" +"@jridgewell/source-map@npm:^0.3.3": + version: 0.3.6 + resolution: "@jridgewell/source-map@npm:0.3.6" dependencies: - "@jridgewell/gen-mapping": ^0.3.0 - "@jridgewell/trace-mapping": ^0.3.9 - checksum: 1b83f0eb944e77b70559a394d5d3b3f98a81fcc186946aceb3ef42d036762b52ef71493c6c0a3b7c1d2f08785f53ba2df1277fe629a06e6109588ff4cdcf7482 + "@jridgewell/gen-mapping": ^0.3.5 + "@jridgewell/trace-mapping": ^0.3.25 + checksum: c9dc7d899397df95e3c9ec287b93c0b56f8e4453cd20743e2b9c8e779b1949bc3cccf6c01bb302779e46560eb45f62ea38d19fedd25370d814734268450a9f30 languageName: node linkType: hard @@ -2399,7 +2399,7 @@ __metadata: languageName: node linkType: hard -"@jridgewell/trace-mapping@npm:^0.3.15, @jridgewell/trace-mapping@npm:^0.3.17, @jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25, @jridgewell/trace-mapping@npm:^0.3.9": +"@jridgewell/trace-mapping@npm:^0.3.15, @jridgewell/trace-mapping@npm:^0.3.20, @jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25, @jridgewell/trace-mapping@npm:^0.3.9": version: 0.3.25 resolution: "@jridgewell/trace-mapping@npm:0.3.25" dependencies: @@ -2683,7 +2683,7 @@ __metadata: unbuild: 2.0.0 vite-tsconfig-paths: ^5.0.1 vitest: ^2.1.1 - webpack: ^5.76.1 + webpack: ^5.94.0 peerDependencies: webpack: ^5.0.0 languageName: unknown @@ -3859,26 +3859,6 @@ __metadata: languageName: node linkType: hard -"@types/eslint-scope@npm:^3.7.3": - version: 3.7.4 - resolution: "@types/eslint-scope@npm:3.7.4" - dependencies: - "@types/eslint": "*" - "@types/estree": "*" - checksum: ea6a9363e92f301cd3888194469f9ec9d0021fe0a397a97a6dd689e7545c75de0bd2153dfb13d3ab532853a278b6572c6f678ce846980669e41029d205653460 - languageName: node - linkType: hard - -"@types/eslint@npm:*": - version: 8.21.2 - resolution: "@types/eslint@npm:8.21.2" - dependencies: - "@types/estree": "*" - "@types/json-schema": "*" - checksum: a48864c837137ee5b3f4f934a5468dc00456c998a2479f8f7ba1c2c34e1fc08414d9f49157f90814a9e843b1dd2cd824b4660cba9425e23d109250ec7ae0a259 - languageName: node - linkType: hard - "@types/eslint@npm:^7.2.13": version: 7.29.0 resolution: "@types/eslint@npm:7.29.0" @@ -3889,17 +3869,17 @@ __metadata: languageName: node linkType: hard -"@types/estree@npm:*, @types/estree@npm:1.0.5, @types/estree@npm:^1.0.0": - version: 1.0.5 - resolution: "@types/estree@npm:1.0.5" - checksum: dd8b5bed28e6213b7acd0fb665a84e693554d850b0df423ac8076cc3ad5823a6bc26b0251d080bdc545af83179ede51dd3f6fa78cad2c46ed1f29624ddf3e41a +"@types/estree@npm:*, @types/estree@npm:^1.0.0, @types/estree@npm:^1.0.5": + version: 1.0.6 + resolution: "@types/estree@npm:1.0.6" + checksum: 8825d6e729e16445d9a1dd2fb1db2edc5ed400799064cd4d028150701031af012ba30d6d03fe9df40f4d7a437d0de6d2b256020152b7b09bde9f2e420afdffd9 languageName: node linkType: hard -"@types/estree@npm:^0.0.51": - version: 0.0.51 - resolution: "@types/estree@npm:0.0.51" - checksum: e56a3bcf759fd9185e992e7fdb3c6a5f81e8ff120e871641607581fb3728d16c811702a7d40fa5f869b7f7b4437ab6a87eb8d98ffafeee51e85bbe955932a189 +"@types/estree@npm:1.0.5": + version: 1.0.5 + resolution: "@types/estree@npm:1.0.5" + checksum: dd8b5bed28e6213b7acd0fb665a84e693554d850b0df423ac8076cc3ad5823a6bc26b0251d080bdc545af83179ede51dd3f6fa78cad2c46ed1f29624ddf3e41a languageName: node linkType: hard @@ -4428,154 +4408,154 @@ __metadata: languageName: node linkType: hard -"@webassemblyjs/ast@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/ast@npm:1.11.1" +"@webassemblyjs/ast@npm:1.12.1, @webassemblyjs/ast@npm:^1.12.1": + version: 1.12.1 + resolution: "@webassemblyjs/ast@npm:1.12.1" dependencies: - "@webassemblyjs/helper-numbers": 1.11.1 - "@webassemblyjs/helper-wasm-bytecode": 1.11.1 - checksum: 1eee1534adebeece635362f8e834ae03e389281972611408d64be7895fc49f48f98fddbbb5339bf8a72cb101bcb066e8bca3ca1bf1ef47dadf89def0395a8d87 + "@webassemblyjs/helper-numbers": 1.11.6 + "@webassemblyjs/helper-wasm-bytecode": 1.11.6 + checksum: 31bcc64147236bd7b1b6d29d1f419c1f5845c785e1e42dc9e3f8ca2e05a029e9393a271b84f3a5bff2a32d35f51ff59e2181a6e5f953fe88576acd6750506202 languageName: node linkType: hard -"@webassemblyjs/floating-point-hex-parser@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/floating-point-hex-parser@npm:1.11.1" - checksum: b8efc6fa08e4787b7f8e682182d84dfdf8da9d9c77cae5d293818bc4a55c1f419a87fa265ab85252b3e6c1fd323d799efea68d825d341a7c365c64bc14750e97 +"@webassemblyjs/floating-point-hex-parser@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/floating-point-hex-parser@npm:1.11.6" + checksum: 29b08758841fd8b299c7152eda36b9eb4921e9c584eb4594437b5cd90ed6b920523606eae7316175f89c20628da14326801090167cc7fbffc77af448ac84b7e2 languageName: node linkType: hard -"@webassemblyjs/helper-api-error@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/helper-api-error@npm:1.11.1" - checksum: 0792813f0ed4a0e5ee0750e8b5d0c631f08e927f4bdfdd9fe9105dc410c786850b8c61bff7f9f515fdfb149903bec3c976a1310573a4c6866a94d49bc7271959 +"@webassemblyjs/helper-api-error@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/helper-api-error@npm:1.11.6" + checksum: e8563df85161096343008f9161adb138a6e8f3c2cc338d6a36011aa55eabb32f2fd138ffe63bc278d009ada001cc41d263dadd1c0be01be6c2ed99076103689f languageName: node linkType: hard -"@webassemblyjs/helper-buffer@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/helper-buffer@npm:1.11.1" - checksum: a337ee44b45590c3a30db5a8b7b68a717526cf967ada9f10253995294dbd70a58b2da2165222e0b9830cd4fc6e4c833bf441a721128d1fe2e9a7ab26b36003ce +"@webassemblyjs/helper-buffer@npm:1.12.1": + version: 1.12.1 + resolution: "@webassemblyjs/helper-buffer@npm:1.12.1" + checksum: c3ffb723024130308db608e86e2bdccd4868bbb62dffb0a9a1530606496f79c87f8565bd8e02805ce64912b71f1a70ee5fb00307258b0c082c3abf961d097eca languageName: node linkType: hard -"@webassemblyjs/helper-numbers@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/helper-numbers@npm:1.11.1" +"@webassemblyjs/helper-numbers@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/helper-numbers@npm:1.11.6" dependencies: - "@webassemblyjs/floating-point-hex-parser": 1.11.1 - "@webassemblyjs/helper-api-error": 1.11.1 + "@webassemblyjs/floating-point-hex-parser": 1.11.6 + "@webassemblyjs/helper-api-error": 1.11.6 "@xtuc/long": 4.2.2 - checksum: 44d2905dac2f14d1e9b5765cf1063a0fa3d57295c6d8930f6c59a36462afecc6e763e8a110b97b342a0f13376166c5d41aa928e6ced92e2f06b071fd0db59d3a + checksum: f4b562fa219f84368528339e0f8d273ad44e047a07641ffcaaec6f93e5b76fd86490a009aa91a294584e1436d74b0a01fa9fde45e333a4c657b58168b04da424 languageName: node linkType: hard -"@webassemblyjs/helper-wasm-bytecode@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/helper-wasm-bytecode@npm:1.11.1" - checksum: eac400113127832c88f5826bcc3ad1c0db9b3dbd4c51a723cfdb16af6bfcbceb608170fdaac0ab7731a7e18b291be7af68a47fcdb41cfe0260c10857e7413d97 +"@webassemblyjs/helper-wasm-bytecode@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/helper-wasm-bytecode@npm:1.11.6" + checksum: 3535ef4f1fba38de3475e383b3980f4bbf3de72bbb631c2b6584c7df45be4eccd62c6ff48b5edd3f1bcff275cfd605a37679ec199fc91fd0a7705d7f1e3972dc languageName: node linkType: hard -"@webassemblyjs/helper-wasm-section@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/helper-wasm-section@npm:1.11.1" +"@webassemblyjs/helper-wasm-section@npm:1.12.1": + version: 1.12.1 + resolution: "@webassemblyjs/helper-wasm-section@npm:1.12.1" dependencies: - "@webassemblyjs/ast": 1.11.1 - "@webassemblyjs/helper-buffer": 1.11.1 - "@webassemblyjs/helper-wasm-bytecode": 1.11.1 - "@webassemblyjs/wasm-gen": 1.11.1 - checksum: 617696cfe8ecaf0532763162aaf748eb69096fb27950219bb87686c6b2e66e11cd0614d95d319d0ab1904bc14ebe4e29068b12c3e7c5e020281379741fe4bedf + "@webassemblyjs/ast": 1.12.1 + "@webassemblyjs/helper-buffer": 1.12.1 + "@webassemblyjs/helper-wasm-bytecode": 1.11.6 + "@webassemblyjs/wasm-gen": 1.12.1 + checksum: c19810cdd2c90ff574139b6d8c0dda254d42d168a9e5b3d353d1bc085f1d7164ccd1b3c05592a45a939c47f7e403dc8d03572bb686642f06a3d02932f6f0bc8f languageName: node linkType: hard -"@webassemblyjs/ieee754@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/ieee754@npm:1.11.1" +"@webassemblyjs/ieee754@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/ieee754@npm:1.11.6" dependencies: "@xtuc/ieee754": ^1.2.0 - checksum: 23a0ac02a50f244471631802798a816524df17e56b1ef929f0c73e3cde70eaf105a24130105c60aff9d64a24ce3b640dad443d6f86e5967f922943a7115022ec + checksum: 13574b8e41f6ca39b700e292d7edf102577db5650fe8add7066a320aa4b7a7c09a5056feccac7a74eb68c10dea9546d4461412af351f13f6b24b5f32379b49de languageName: node linkType: hard -"@webassemblyjs/leb128@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/leb128@npm:1.11.1" +"@webassemblyjs/leb128@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/leb128@npm:1.11.6" dependencies: "@xtuc/long": 4.2.2 - checksum: 33ccc4ade2f24de07bf31690844d0b1ad224304ee2062b0e464a610b0209c79e0b3009ac190efe0e6bd568b0d1578d7c3047fc1f9d0197c92fc061f56224ff4a + checksum: 7ea942dc9777d4b18a5ebfa3a937b30ae9e1d2ce1fee637583ed7f376334dd1d4274f813d2e250056cca803e0952def4b954913f1a3c9068bcd4ab4ee5143bf0 languageName: node linkType: hard -"@webassemblyjs/utf8@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/utf8@npm:1.11.1" - checksum: 972c5cfc769d7af79313a6bfb96517253a270a4bf0c33ba486aa43cac43917184fb35e51dfc9e6b5601548cd5931479a42e42c89a13bb591ffabebf30c8a6a0b +"@webassemblyjs/utf8@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/utf8@npm:1.11.6" + checksum: 807fe5b5ce10c390cfdd93e0fb92abda8aebabb5199980681e7c3743ee3306a75729bcd1e56a3903980e96c885ee53ef901fcbaac8efdfa480f9c0dae1d08713 languageName: node linkType: hard -"@webassemblyjs/wasm-edit@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/wasm-edit@npm:1.11.1" +"@webassemblyjs/wasm-edit@npm:^1.12.1": + version: 1.12.1 + resolution: "@webassemblyjs/wasm-edit@npm:1.12.1" dependencies: - "@webassemblyjs/ast": 1.11.1 - "@webassemblyjs/helper-buffer": 1.11.1 - "@webassemblyjs/helper-wasm-bytecode": 1.11.1 - "@webassemblyjs/helper-wasm-section": 1.11.1 - "@webassemblyjs/wasm-gen": 1.11.1 - "@webassemblyjs/wasm-opt": 1.11.1 - "@webassemblyjs/wasm-parser": 1.11.1 - "@webassemblyjs/wast-printer": 1.11.1 - checksum: 6d7d9efaec1227e7ef7585a5d7ff0be5f329f7c1c6b6c0e906b18ed2e9a28792a5635e450aca2d136770d0207225f204eff70a4b8fd879d3ac79e1dcc26dbeb9 + "@webassemblyjs/ast": 1.12.1 + "@webassemblyjs/helper-buffer": 1.12.1 + "@webassemblyjs/helper-wasm-bytecode": 1.11.6 + "@webassemblyjs/helper-wasm-section": 1.12.1 + "@webassemblyjs/wasm-gen": 1.12.1 + "@webassemblyjs/wasm-opt": 1.12.1 + "@webassemblyjs/wasm-parser": 1.12.1 + "@webassemblyjs/wast-printer": 1.12.1 + checksum: ae23642303f030af888d30c4ef37b08dfec7eab6851a9575a616e65d1219f880d9223913a39056dd654e49049d76e97555b285d1f7e56935047abf578cce0692 languageName: node linkType: hard -"@webassemblyjs/wasm-gen@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/wasm-gen@npm:1.11.1" +"@webassemblyjs/wasm-gen@npm:1.12.1": + version: 1.12.1 + resolution: "@webassemblyjs/wasm-gen@npm:1.12.1" dependencies: - "@webassemblyjs/ast": 1.11.1 - "@webassemblyjs/helper-wasm-bytecode": 1.11.1 - "@webassemblyjs/ieee754": 1.11.1 - "@webassemblyjs/leb128": 1.11.1 - "@webassemblyjs/utf8": 1.11.1 - checksum: 1f6921e640293bf99fb16b21e09acb59b340a79f986c8f979853a0ae9f0b58557534b81e02ea2b4ef11e929d946708533fd0693c7f3712924128fdafd6465f5b + "@webassemblyjs/ast": 1.12.1 + "@webassemblyjs/helper-wasm-bytecode": 1.11.6 + "@webassemblyjs/ieee754": 1.11.6 + "@webassemblyjs/leb128": 1.11.6 + "@webassemblyjs/utf8": 1.11.6 + checksum: 5787626bb7f0b033044471ddd00ce0c9fe1ee4584e8b73e232051e3a4c99ba1a102700d75337151c8b6055bae77eefa4548960c610a5e4a504e356bd872138ff languageName: node linkType: hard -"@webassemblyjs/wasm-opt@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/wasm-opt@npm:1.11.1" +"@webassemblyjs/wasm-opt@npm:1.12.1": + version: 1.12.1 + resolution: "@webassemblyjs/wasm-opt@npm:1.12.1" dependencies: - "@webassemblyjs/ast": 1.11.1 - "@webassemblyjs/helper-buffer": 1.11.1 - "@webassemblyjs/wasm-gen": 1.11.1 - "@webassemblyjs/wasm-parser": 1.11.1 - checksum: 21586883a20009e2b20feb67bdc451bbc6942252e038aae4c3a08e6f67b6bae0f5f88f20bfc7bd0452db5000bacaf5ab42b98cf9aa034a6c70e9fc616142e1db + "@webassemblyjs/ast": 1.12.1 + "@webassemblyjs/helper-buffer": 1.12.1 + "@webassemblyjs/wasm-gen": 1.12.1 + "@webassemblyjs/wasm-parser": 1.12.1 + checksum: 0e8fa8a0645304a1e18ff40d3db5a2e9233ebaa169b19fcc651d6fc9fe2cac0ce092ddee927318015ae735d9cd9c5d97c0cafb6a51dcd2932ac73587b62df991 languageName: node linkType: hard -"@webassemblyjs/wasm-parser@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/wasm-parser@npm:1.11.1" +"@webassemblyjs/wasm-parser@npm:1.12.1, @webassemblyjs/wasm-parser@npm:^1.12.1": + version: 1.12.1 + resolution: "@webassemblyjs/wasm-parser@npm:1.12.1" dependencies: - "@webassemblyjs/ast": 1.11.1 - "@webassemblyjs/helper-api-error": 1.11.1 - "@webassemblyjs/helper-wasm-bytecode": 1.11.1 - "@webassemblyjs/ieee754": 1.11.1 - "@webassemblyjs/leb128": 1.11.1 - "@webassemblyjs/utf8": 1.11.1 - checksum: 1521644065c360e7b27fad9f4bb2df1802d134dd62937fa1f601a1975cde56bc31a57b6e26408b9ee0228626ff3ba1131ae6f74ffb7d718415b6528c5a6dbfc2 + "@webassemblyjs/ast": 1.12.1 + "@webassemblyjs/helper-api-error": 1.11.6 + "@webassemblyjs/helper-wasm-bytecode": 1.11.6 + "@webassemblyjs/ieee754": 1.11.6 + "@webassemblyjs/leb128": 1.11.6 + "@webassemblyjs/utf8": 1.11.6 + checksum: 176015de3551ac068cd4505d837414f258d9ade7442bd71efb1232fa26c9f6d7d4e11a5c816caeed389943f409af7ebff6899289a992d7a70343cb47009d21a8 languageName: node linkType: hard -"@webassemblyjs/wast-printer@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/wast-printer@npm:1.11.1" +"@webassemblyjs/wast-printer@npm:1.12.1": + version: 1.12.1 + resolution: "@webassemblyjs/wast-printer@npm:1.12.1" dependencies: - "@webassemblyjs/ast": 1.11.1 + "@webassemblyjs/ast": 1.12.1 "@xtuc/long": 4.2.2 - checksum: f15ae4c2441b979a3b4fce78f3d83472fb22350c6dc3fd34bfe7c3da108e0b2360718734d961bba20e7716cb8578e964b870da55b035e209e50ec9db0378a3f7 + checksum: 2974b5dda8d769145ba0efd886ea94a601e61fb37114c14f9a9a7606afc23456799af652ac3052f284909bd42edc3665a76bc9b50f95f0794c053a8a1757b713 languageName: node linkType: hard @@ -4640,12 +4620,12 @@ __metadata: languageName: node linkType: hard -"acorn-import-assertions@npm:^1.7.6": - version: 1.8.0 - resolution: "acorn-import-assertions@npm:1.8.0" +"acorn-import-attributes@npm:^1.9.5": + version: 1.9.5 + resolution: "acorn-import-attributes@npm:1.9.5" peerDependencies: acorn: ^8 - checksum: 5c4cf7c850102ba7ae0eeae0deb40fb3158c8ca5ff15c0bca43b5c47e307a1de3d8ef761788f881343680ea374631ae9e9615ba8876fee5268dbe068c98bcba6 + checksum: 1c0c49b6a244503964ae46ae850baccf306e84caf99bc2010ed6103c69a423987b07b520a6c619f075d215388bd4923eccac995886a54309eda049ab78a4be95 languageName: node linkType: hard @@ -4667,12 +4647,12 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^8.5.0, acorn@npm:^8.7.1, acorn@npm:^8.9.0": - version: 8.10.0 - resolution: "acorn@npm:8.10.0" +"acorn@npm:^8.7.1, acorn@npm:^8.8.2, acorn@npm:^8.9.0": + version: 8.12.1 + resolution: "acorn@npm:8.12.1" bin: acorn: bin/acorn - checksum: 538ba38af0cc9e5ef983aee196c4b8b4d87c0c94532334fa7e065b2c8a1f85863467bb774231aae91613fcda5e68740c15d97b1967ae3394d20faddddd8af61d + checksum: 677880034aee5bdf7434cc2d25b641d7bedb0b5ef47868a78dadabedccf58e1c5457526d9d8249cd253f2df087e081c3fe7d903b448d8e19e5131a3065b83c07 languageName: node linkType: hard @@ -5304,17 +5284,17 @@ __metadata: languageName: node linkType: hard -"browserslist@npm:^4.14.5, browserslist@npm:^4.21.4, browserslist@npm:^4.22.2": - version: 4.23.1 - resolution: "browserslist@npm:4.23.1" +"browserslist@npm:^4.21.10, browserslist@npm:^4.21.4, browserslist@npm:^4.22.2": + version: 4.24.0 + resolution: "browserslist@npm:4.24.0" dependencies: - caniuse-lite: ^1.0.30001629 - electron-to-chromium: ^1.4.796 - node-releases: ^2.0.14 - update-browserslist-db: ^1.0.16 + caniuse-lite: ^1.0.30001663 + electron-to-chromium: ^1.5.28 + node-releases: ^2.0.18 + update-browserslist-db: ^1.1.0 bin: browserslist: cli.js - checksum: 06189e2d6666a203ce097cc0e713a40477d08420927b79af139211e5712f3cf676fdc4dd6af3aa493d47c09206a344b3420a8315577dbe88c58903132de9b0f5 + checksum: de200d3eb8d6ed819dad99719099a28fb6ebeb88016a5ac42fbdc11607e910c236a84ca1b0bbf232477d4b88ab64e8ab6aa67557cdd40a73ca9c2834f92ccce0 languageName: node linkType: hard @@ -5465,10 +5445,10 @@ __metadata: languageName: node linkType: hard -"caniuse-lite@npm:^1.0.30001629": - version: 1.0.30001640 - resolution: "caniuse-lite@npm:1.0.30001640" - checksum: ec492d8d1e11d1c55e0f5c0f218229369dc0a4bd1b5d0a579a6435865fe8f4c84bde7e816a844cce1b9cdd97f5a85b6dac5599639fabcdb0c4c5bd039e46cbfd +"caniuse-lite@npm:^1.0.30001663": + version: 1.0.30001663 + resolution: "caniuse-lite@npm:1.0.30001663" + checksum: 489a642feb6826a0fc7cfd7dbc35a3341cc1439eafdf0dae79338cf9033c5d9eddaedacbef7935acaddbb3c226a51097ed53d66dc6d8128cd6938c6763e1bbc4 languageName: node linkType: hard @@ -6485,10 +6465,10 @@ __metadata: languageName: node linkType: hard -"electron-to-chromium@npm:^1.4.796": - version: 1.4.816 - resolution: "electron-to-chromium@npm:1.4.816" - checksum: 5abaa04cee77af4889e68d7fd7305c50b98eaa9b4016b228c85de5713a933767e423e2e6bcd71007fff1c405c5bea79d6e9e9d18efddaa966040fe9e97f43e2e +"electron-to-chromium@npm:^1.5.28": + version: 1.5.28 + resolution: "electron-to-chromium@npm:1.5.28" + checksum: f997385e8f8a25900c6b04a666b65550b1592c5d2a11db94b4eebcc8921e942c7249b87e0eb33229ea156d79b5e0d5f3e0e1b0ac548c2de51d9e1d6fda097335 languageName: node linkType: hard @@ -6524,13 +6504,13 @@ __metadata: languageName: node linkType: hard -"enhanced-resolve@npm:^5.10.0": - version: 5.12.0 - resolution: "enhanced-resolve@npm:5.12.0" +"enhanced-resolve@npm:^5.10.0, enhanced-resolve@npm:^5.17.1": + version: 5.17.1 + resolution: "enhanced-resolve@npm:5.17.1" dependencies: graceful-fs: ^4.2.4 tapable: ^2.2.0 - checksum: bf3f787facaf4ce3439bef59d148646344e372bef5557f0d37ea8aa02c51f50a925cd1f07b8d338f18992c29f544ec235a8c64bcdb56030196c48832a5494174 + checksum: 4bc38cf1cea96456f97503db7280394177d1bc46f8f87c267297d04f795ac5efa81e48115a2f5b6273c781027b5b6bfc5f62b54df629e4d25fa7001a86624f59 languageName: node linkType: hard @@ -6634,10 +6614,10 @@ __metadata: languageName: node linkType: hard -"es-module-lexer@npm:^0.9.0": - version: 0.9.3 - resolution: "es-module-lexer@npm:0.9.3" - checksum: 84bbab23c396281db2c906c766af58b1ae2a1a2599844a504df10b9e8dc77ec800b3211fdaa133ff700f5703d791198807bba25d9667392d27a5e9feda344da8 +"es-module-lexer@npm:^1.2.1": + version: 1.5.4 + resolution: "es-module-lexer@npm:1.5.4" + checksum: a0cf04fb92d052647ac7d818d1913b98d3d3d0f5b9d88f0eafb993436e4c3e2c958599db68839d57f2dfa281fdf0f60e18d448eb78fc292c33c0f25635b6854f languageName: node linkType: hard @@ -7712,14 +7692,7 @@ __metadata: languageName: node linkType: hard -"flatted@npm:^3.1.0": - version: 3.2.7 - resolution: "flatted@npm:3.2.7" - checksum: 427633049d55bdb80201c68f7eb1cbd533e03eac541f97d3aecab8c5526f12a20ccecaeede08b57503e772c769e7f8680b37e8d482d1e5f8d7e2194687f9ea35 - languageName: node - linkType: hard - -"flatted@npm:^3.3.1": +"flatted@npm:^3.1.0, flatted@npm:^3.3.1": version: 3.3.1 resolution: "flatted@npm:3.3.1" checksum: 85ae7181650bb728c221e7644cbc9f4bf28bc556f2fc89bb21266962bdf0ce1029cc7acc44bb646cd469d9baac7c317f64e841c4c4c00516afa97320cdac7f94 @@ -8228,13 +8201,20 @@ __metadata: languageName: node linkType: hard -"graceful-fs@npm:4.2.10, graceful-fs@npm:^4.1.11, graceful-fs@npm:^4.1.15, graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9": +"graceful-fs@npm:4.2.10": version: 4.2.10 resolution: "graceful-fs@npm:4.2.10" checksum: 3f109d70ae123951905d85032ebeae3c2a5a7a997430df00ea30df0e3a6c60cf6689b109654d6fdacd28810a053348c4d14642da1d075049e6be1ba5216218da languageName: node linkType: hard +"graceful-fs@npm:^4.1.11, graceful-fs@npm:^4.1.15, graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.11, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9": + version: 4.2.11 + resolution: "graceful-fs@npm:4.2.11" + checksum: ac85f94da92d8eb6b7f5a8b20ce65e43d66761c55ce85ac96df6865308390da45a8d3f0296dd3a663de65d30ba497bd46c696cc1e248c72b13d6d567138a4fc7 + languageName: node + linkType: hard + "grapheme-splitter@npm:^1.0.4": version: 1.0.4 resolution: "grapheme-splitter@npm:1.0.4" @@ -10564,10 +10544,10 @@ __metadata: languageName: node linkType: hard -"node-releases@npm:^2.0.14": - version: 2.0.14 - resolution: "node-releases@npm:2.0.14" - checksum: 59443a2f77acac854c42d321bf1b43dea0aef55cd544c6a686e9816a697300458d4e82239e2d794ea05f7bbbc8a94500332e2d3ac3f11f52e4b16cbe638b3c41 +"node-releases@npm:^2.0.18": + version: 2.0.18 + resolution: "node-releases@npm:2.0.18" + checksum: ef55a3d853e1269a6d6279b7692cd6ff3e40bc74947945101138745bfdc9a5edabfe72cb19a31a8e45752e1910c4c65c77d931866af6357f242b172b7283f5b3 languageName: node linkType: hard @@ -12487,14 +12467,14 @@ __metadata: languageName: node linkType: hard -"schema-utils@npm:^3.1.0, schema-utils@npm:^3.1.1": - version: 3.1.1 - resolution: "schema-utils@npm:3.1.1" +"schema-utils@npm:^3.1.1, schema-utils@npm:^3.2.0": + version: 3.3.0 + resolution: "schema-utils@npm:3.3.0" dependencies: "@types/json-schema": ^7.0.8 ajv: ^6.12.5 ajv-keywords: ^3.5.2 - checksum: fb73f3d759d43ba033c877628fe9751620a26879f6301d3dbeeb48cf2a65baec5cdf99da65d1bf3b4ff5444b2e59cbe4f81c2456b5e0d2ba7d7fd4aed5da29ce + checksum: ea56971926fac2487f0757da939a871388891bc87c6a82220d125d587b388f1704788f3706e7f63a7b70e49fc2db974c41343528caea60444afd5ce0fe4b85c0 languageName: node linkType: hard @@ -13216,15 +13196,15 @@ __metadata: languageName: node linkType: hard -"terser-webpack-plugin@npm:^5.1.3": - version: 5.3.7 - resolution: "terser-webpack-plugin@npm:5.3.7" +"terser-webpack-plugin@npm:^5.3.10": + version: 5.3.10 + resolution: "terser-webpack-plugin@npm:5.3.10" dependencies: - "@jridgewell/trace-mapping": ^0.3.17 + "@jridgewell/trace-mapping": ^0.3.20 jest-worker: ^27.4.5 schema-utils: ^3.1.1 serialize-javascript: ^6.0.1 - terser: ^5.16.5 + terser: ^5.26.0 peerDependencies: webpack: ^5.1.0 peerDependenciesMeta: @@ -13234,21 +13214,21 @@ __metadata: optional: true uglify-js: optional: true - checksum: 095e699fdeeb553cdf2c6f75f983949271b396d9c201d7ae9fc633c45c1c1ad14c7257ef9d51ccc62213dd3e97f875870ba31550f6d4f1b6674f2615562da7f7 + checksum: bd6e7596cf815f3353e2a53e79cbdec959a1b0276f5e5d4e63e9d7c3c5bb5306df567729da287d1c7b39d79093e56863c569c42c6c24cc34c76aa313bd2cbcea languageName: node linkType: hard -"terser@npm:^5.16.5": - version: 5.16.6 - resolution: "terser@npm:5.16.6" +"terser@npm:^5.26.0": + version: 5.33.0 + resolution: "terser@npm:5.33.0" dependencies: - "@jridgewell/source-map": ^0.3.2 - acorn: ^8.5.0 + "@jridgewell/source-map": ^0.3.3 + acorn: ^8.8.2 commander: ^2.20.0 source-map-support: ~0.5.20 bin: terser: bin/terser - checksum: f763a7bcc7b98cb2bfc41434f7b92bfe8a701a12c92ea6049377736c8e6de328240d654a20dfe15ce170fd783491b9873fad9f4cd8fee4f6c6fb8ca407859dee + checksum: e0012bffa595470f481a19952dde18e5a58836eafc63305cf86823fc4406b187ba1b4d6856e1662fb0f464a844a21e7bccf68919128fc43343d58b6ad49485f1 languageName: node linkType: hard @@ -13910,7 +13890,7 @@ __metadata: languageName: node linkType: hard -"update-browserslist-db@npm:^1.0.16": +"update-browserslist-db@npm:^1.1.0": version: 1.1.0 resolution: "update-browserslist-db@npm:1.1.0" dependencies: @@ -14204,13 +14184,13 @@ __metadata: languageName: node linkType: hard -"watchpack@npm:^2.4.0": - version: 2.4.0 - resolution: "watchpack@npm:2.4.0" +"watchpack@npm:^2.4.1": + version: 2.4.2 + resolution: "watchpack@npm:2.4.2" dependencies: glob-to-regexp: ^0.4.1 graceful-fs: ^4.1.2 - checksum: 23d4bc58634dbe13b86093e01c6a68d8096028b664ab7139d58f0c37d962d549a940e98f2f201cecdabd6f9c340338dc73ef8bf094a2249ef582f35183d1a131 + checksum: 92d9d52ce3d16fd83ed6994d1dd66a4d146998882f4c362d37adfea9ab77748a5b4d1e0c65fa104797928b2d40f635efa8f9b925a6265428a69f1e1852ca3441 languageName: node linkType: hard @@ -14251,40 +14231,39 @@ __metadata: languageName: node linkType: hard -"webpack@npm:^5.76.1": - version: 5.76.1 - resolution: "webpack@npm:5.76.1" +"webpack@npm:^5.94.0": + version: 5.94.0 + resolution: "webpack@npm:5.94.0" dependencies: - "@types/eslint-scope": ^3.7.3 - "@types/estree": ^0.0.51 - "@webassemblyjs/ast": 1.11.1 - "@webassemblyjs/wasm-edit": 1.11.1 - "@webassemblyjs/wasm-parser": 1.11.1 + "@types/estree": ^1.0.5 + "@webassemblyjs/ast": ^1.12.1 + "@webassemblyjs/wasm-edit": ^1.12.1 + "@webassemblyjs/wasm-parser": ^1.12.1 acorn: ^8.7.1 - acorn-import-assertions: ^1.7.6 - browserslist: ^4.14.5 + acorn-import-attributes: ^1.9.5 + browserslist: ^4.21.10 chrome-trace-event: ^1.0.2 - enhanced-resolve: ^5.10.0 - es-module-lexer: ^0.9.0 + enhanced-resolve: ^5.17.1 + es-module-lexer: ^1.2.1 eslint-scope: 5.1.1 events: ^3.2.0 glob-to-regexp: ^0.4.1 - graceful-fs: ^4.2.9 + graceful-fs: ^4.2.11 json-parse-even-better-errors: ^2.3.1 loader-runner: ^4.2.0 mime-types: ^2.1.27 neo-async: ^2.6.2 - schema-utils: ^3.1.0 + schema-utils: ^3.2.0 tapable: ^2.1.1 - terser-webpack-plugin: ^5.1.3 - watchpack: ^2.4.0 + terser-webpack-plugin: ^5.3.10 + watchpack: ^2.4.1 webpack-sources: ^3.2.3 peerDependenciesMeta: webpack-cli: optional: true bin: webpack: bin/webpack.js - checksum: b01fe0bc2dbca0e10d290ddb0bf81e807a031de48028176e2b21afd696b4d3f25ab9accdad888ef4a1f7c7f4d41f13d5bf2395b7653fdf3e5e3dafa54e56dab2 + checksum: 6a3d667be304a69cd6dcb8d676bc29f47642c0d389af514cfcd646eaaa809961bc6989fc4b2621a717dfc461130f29c6e20006d62a32e012dafaa9517813a4e6 languageName: node linkType: hard From 4dffd1367fdf7146db746b8675276f2c2107a0de Mon Sep 17 00:00:00 2001 From: Timofei Iatsenko Date: Fri, 4 Oct 2024 11:08:26 +0200 Subject: [PATCH 08/24] wip: commonjs plugin for vite --- package.json | 5 +-- .../package.json | 1 + .../vitest.config.mts | 5 +-- .../babel-plugin-lingui-macro/src/index.ts | 5 +-- .../vitest.config.mts | 5 +-- packages/cli/src/api/extractors/index.ts | 9 ++-- packages/cli/vitest.config.mts | 5 +-- packages/conf/vitest.config.mts | 5 +-- packages/core/src/i18n.test.ts | 13 +++--- packages/core/tsconfig.json | 5 ++- packages/core/vitest.config.mts | 5 +-- packages/detect-locale/vitest.config.mts | 5 +-- packages/extractor-vue/vitest.config.mts | 5 +-- packages/format-csv/vitest.config.mts | 5 +-- packages/format-json/vitest.config.mts | 5 +-- packages/format-po-gettext/vitest.config.mts | 5 +-- packages/format-po/vitest.config.mts | 5 +-- packages/loader/tsconfig.json | 10 +++++ packages/loader/vitest.config.mts | 5 +-- packages/message-utils/vitest.config.mts | 5 +-- packages/react/vitest.config.mts | 5 +-- packages/remote-loader/vitest.config.mts | 5 +-- packages/vite-plugin/vitest.config.mts | 5 +-- tsconfig.json | 1 + yarn.lock | 42 ++++++++++++++++++- 25 files changed, 102 insertions(+), 69 deletions(-) create mode 100644 packages/loader/tsconfig.json diff --git a/package.json b/package.json index bf12bb29e..eee19b7ee 100644 --- a/package.json +++ b/package.json @@ -31,9 +31,7 @@ "release:next": "lerna publish from-package --canary --preid next --pre-dist-tag next --yes", "build:docs": "cd website && yarn install && yarn build", "size-limit": "size-limit", - "stub:all": "yarn workspaces foreach -p run stub", - "prepare": "husky install", - "postinstall": "yarn stub:all" + "prepare": "husky install" }, "engines": { "node": ">=20.0.0" @@ -79,6 +77,7 @@ "ts-jest": "^29.0.5", "typescript": "^4.9.5", "vite": "^5.4.7", + "vite-plugin-commonjs": "^0.10.3", "vitest": "^2.1.1" }, "workspaces": [ diff --git a/packages/babel-plugin-extract-messages/package.json b/packages/babel-plugin-extract-messages/package.json index c050432e9..caa41b251 100644 --- a/packages/babel-plugin-extract-messages/package.json +++ b/packages/babel-plugin-extract-messages/package.json @@ -47,6 +47,7 @@ "@lingui/babel-plugin-lingui-macro": "workspace:*", "@lingui/jest-mocks": "workspace:*", "unbuild": "2.0.0", + "vite-tsconfig-paths": "^5.0.1", "vitest": "^2.1.1" } } diff --git a/packages/babel-plugin-extract-messages/vitest.config.mts b/packages/babel-plugin-extract-messages/vitest.config.mts index 4bef06cd5..01e2a4232 100644 --- a/packages/babel-plugin-extract-messages/vitest.config.mts +++ b/packages/babel-plugin-extract-messages/vitest.config.mts @@ -1,10 +1,9 @@ import { defineConfig } from "vitest/config" import tsconfigPaths from "vite-tsconfig-paths" +import commonjs from 'vite-plugin-commonjs' export default defineConfig({ - plugins: [tsconfigPaths({ - root: "./", - })], + plugins: [commonjs(), tsconfigPaths({ projects: ["../../tsconfig.json"] })], test: { environment: "node", }, diff --git a/packages/babel-plugin-lingui-macro/src/index.ts b/packages/babel-plugin-lingui-macro/src/index.ts index aca1d14f7..73af2d2ce 100644 --- a/packages/babel-plugin-lingui-macro/src/index.ts +++ b/packages/babel-plugin-lingui-macro/src/index.ts @@ -1,4 +1,4 @@ -import type { PluginObj, Visitor, PluginPass, BabelFile } from "@babel/core" +import type { PluginObj, Visitor, PluginPass } from "@babel/core" import type * as babelTypes from "@babel/types" import { Program, Identifier } from "@babel/types" import { MacroJSX } from "./macroJsx" @@ -151,9 +151,6 @@ export default function ({ } return { name: "lingui-macro-plugin", - pre(file: BabelFile) { - file.hub - }, visitor: { Program: { enter(path, state) { diff --git a/packages/babel-plugin-lingui-macro/vitest.config.mts b/packages/babel-plugin-lingui-macro/vitest.config.mts index 4bef06cd5..01e2a4232 100644 --- a/packages/babel-plugin-lingui-macro/vitest.config.mts +++ b/packages/babel-plugin-lingui-macro/vitest.config.mts @@ -1,10 +1,9 @@ import { defineConfig } from "vitest/config" import tsconfigPaths from "vite-tsconfig-paths" +import commonjs from 'vite-plugin-commonjs' export default defineConfig({ - plugins: [tsconfigPaths({ - root: "./", - })], + plugins: [commonjs(), tsconfigPaths({ projects: ["../../tsconfig.json"] })], test: { environment: "node", }, diff --git a/packages/cli/src/api/extractors/index.ts b/packages/cli/src/api/extractors/index.ts index 8eaa773cd..928ed4bc8 100644 --- a/packages/cli/src/api/extractors/index.ts +++ b/packages/cli/src/api/extractors/index.ts @@ -22,10 +22,11 @@ export default async function extract( for (let e of extractorsToExtract) { let ext: ExtractorType = e - if (typeof e === "string") { - // in case of the user using require.resolve in their extractors, we require that module - ext = require(e) - } + // if (typeof e === "string") { + // // in case of the user using require.resolve in their extractors, we require that module + // /* @vite-ignore */ + // ext = require(e) + // } if ((ext as any).default) { ext = (ext as any).default } diff --git a/packages/cli/vitest.config.mts b/packages/cli/vitest.config.mts index cde5a2ad3..e5bc93fff 100644 --- a/packages/cli/vitest.config.mts +++ b/packages/cli/vitest.config.mts @@ -1,10 +1,9 @@ import { defineConfig } from "vitest/config" import tsconfigPaths from "vite-tsconfig-paths" +import commonjs from 'vite-plugin-commonjs' export default defineConfig({ - plugins: [tsconfigPaths({ - root: "./", - })], + plugins: [commonjs(), tsconfigPaths({ projects: ["../../tsconfig.json"] })], test: { environment: "node", snapshotSerializers: ["../../scripts/jest/stripAnsiSerializer.ts"], diff --git a/packages/conf/vitest.config.mts b/packages/conf/vitest.config.mts index ac1851cd2..a71530700 100644 --- a/packages/conf/vitest.config.mts +++ b/packages/conf/vitest.config.mts @@ -1,10 +1,9 @@ import { defineConfig } from "vitest/config" import tsconfigPaths from "vite-tsconfig-paths" +import commonjs from 'vite-plugin-commonjs' export default defineConfig({ - plugins: [tsconfigPaths({ - root: "./", - })], + plugins: [commonjs(), tsconfigPaths({ projects: ["../../tsconfig.json"] })], test: { environment: "node", snapshotSerializers: ["../../scripts/jest/stripAnsiSerializer.ts"], diff --git a/packages/core/src/i18n.test.ts b/packages/core/src/i18n.test.ts index 90f64370f..d6be52b36 100644 --- a/packages/core/src/i18n.test.ts +++ b/packages/core/src/i18n.test.ts @@ -123,8 +123,8 @@ describe("I18n", () => { mockEnv("production", () => { vi.resetModules() - mockConsole((console) => { - const { setupI18n } = require("@lingui/core") + mockConsole(async (console) => { + const { setupI18n } = await import("@lingui/core") const i18n = setupI18n() i18n.activate("xyz") expect(console.warn).not.toBeCalled() @@ -269,8 +269,9 @@ describe("I18n", () => { "My name is {name}": "Je m'appelle {name}", } - mockEnv("production", () => { - const { setupI18n } = require("@lingui/core") + mockEnv("production", async () => { + const { setupI18n } = await import("@lingui/core") + const i18n = setupI18n({ locale: "fr", messages: { fr: messages }, @@ -288,8 +289,8 @@ describe("I18n", () => { "My name is {name}": "Je m'appelle {name}", } - mockEnv("development", () => { - const { setupI18n } = require("@lingui/core") + mockEnv("development", async () => { + const { setupI18n } = await import("@lingui/core") const i18n = setupI18n({ locale: "fr", messages: { fr: messages }, diff --git a/packages/core/tsconfig.json b/packages/core/tsconfig.json index 7731e07a7..860a1d918 100644 --- a/packages/core/tsconfig.json +++ b/packages/core/tsconfig.json @@ -4,6 +4,7 @@ "strict": true, "noUncheckedIndexedAccess": true, "isolatedModules": true, - "forceConsistentCasingInFileNames": true, - } + "forceConsistentCasingInFileNames": true + }, + "exclude": ["vitest.config.mts"] } diff --git a/packages/core/vitest.config.mts b/packages/core/vitest.config.mts index 7e115f6c5..15c7c42d4 100644 --- a/packages/core/vitest.config.mts +++ b/packages/core/vitest.config.mts @@ -1,10 +1,9 @@ import { defineProject } from "vitest/config" import tsconfigPaths from "vite-tsconfig-paths" +import commonjs from 'vite-plugin-commonjs' export default defineProject({ - plugins: [tsconfigPaths({ - root: "./", - })], + plugins: [commonjs(), tsconfigPaths({ projects: ["../../tsconfig.json"] })], test: { name: "core", diff --git a/packages/detect-locale/vitest.config.mts b/packages/detect-locale/vitest.config.mts index 83ab1e196..55cd6298d 100644 --- a/packages/detect-locale/vitest.config.mts +++ b/packages/detect-locale/vitest.config.mts @@ -1,10 +1,9 @@ import { defineConfig } from "vitest/config" import tsconfigPaths from "vite-tsconfig-paths" +import commonjs from 'vite-plugin-commonjs' export default defineConfig({ - plugins: [tsconfigPaths({ - root: "./", - })], + plugins: [commonjs(), tsconfigPaths({ projects: ["../../tsconfig.json"] })], test: { environment: "jsdom", diff --git a/packages/extractor-vue/vitest.config.mts b/packages/extractor-vue/vitest.config.mts index 4bef06cd5..01e2a4232 100644 --- a/packages/extractor-vue/vitest.config.mts +++ b/packages/extractor-vue/vitest.config.mts @@ -1,10 +1,9 @@ import { defineConfig } from "vitest/config" import tsconfigPaths from "vite-tsconfig-paths" +import commonjs from 'vite-plugin-commonjs' export default defineConfig({ - plugins: [tsconfigPaths({ - root: "./", - })], + plugins: [commonjs(), tsconfigPaths({ projects: ["../../tsconfig.json"] })], test: { environment: "node", }, diff --git a/packages/format-csv/vitest.config.mts b/packages/format-csv/vitest.config.mts index 4bef06cd5..01e2a4232 100644 --- a/packages/format-csv/vitest.config.mts +++ b/packages/format-csv/vitest.config.mts @@ -1,10 +1,9 @@ import { defineConfig } from "vitest/config" import tsconfigPaths from "vite-tsconfig-paths" +import commonjs from 'vite-plugin-commonjs' export default defineConfig({ - plugins: [tsconfigPaths({ - root: "./", - })], + plugins: [commonjs(), tsconfigPaths({ projects: ["../../tsconfig.json"] })], test: { environment: "node", }, diff --git a/packages/format-json/vitest.config.mts b/packages/format-json/vitest.config.mts index 4bef06cd5..01e2a4232 100644 --- a/packages/format-json/vitest.config.mts +++ b/packages/format-json/vitest.config.mts @@ -1,10 +1,9 @@ import { defineConfig } from "vitest/config" import tsconfigPaths from "vite-tsconfig-paths" +import commonjs from 'vite-plugin-commonjs' export default defineConfig({ - plugins: [tsconfigPaths({ - root: "./", - })], + plugins: [commonjs(), tsconfigPaths({ projects: ["../../tsconfig.json"] })], test: { environment: "node", }, diff --git a/packages/format-po-gettext/vitest.config.mts b/packages/format-po-gettext/vitest.config.mts index 4bef06cd5..01e2a4232 100644 --- a/packages/format-po-gettext/vitest.config.mts +++ b/packages/format-po-gettext/vitest.config.mts @@ -1,10 +1,9 @@ import { defineConfig } from "vitest/config" import tsconfigPaths from "vite-tsconfig-paths" +import commonjs from 'vite-plugin-commonjs' export default defineConfig({ - plugins: [tsconfigPaths({ - root: "./", - })], + plugins: [commonjs(), tsconfigPaths({ projects: ["../../tsconfig.json"] })], test: { environment: "node", }, diff --git a/packages/format-po/vitest.config.mts b/packages/format-po/vitest.config.mts index 6ef694852..4580f637b 100644 --- a/packages/format-po/vitest.config.mts +++ b/packages/format-po/vitest.config.mts @@ -1,10 +1,9 @@ import { defineConfig } from "vitest/config" import tsconfigPaths from "vite-tsconfig-paths" +import commonjs from 'vite-plugin-commonjs' export default defineConfig({ - plugins: [tsconfigPaths({ - root: "./", - })], + plugins: [commonjs(), tsconfigPaths({ projects: ["../../tsconfig.json"] })], test: { environment: "node", setupFiles: ["./vitest.setup.ts"], diff --git a/packages/loader/tsconfig.json b/packages/loader/tsconfig.json new file mode 100644 index 000000000..eb425ca43 --- /dev/null +++ b/packages/loader/tsconfig.json @@ -0,0 +1,10 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "module": "ESNext", + "strict": true, + "noUncheckedIndexedAccess": true, + "isolatedModules": true, + "forceConsistentCasingInFileNames": true, + } +} diff --git a/packages/loader/vitest.config.mts b/packages/loader/vitest.config.mts index 4bef06cd5..01e2a4232 100644 --- a/packages/loader/vitest.config.mts +++ b/packages/loader/vitest.config.mts @@ -1,10 +1,9 @@ import { defineConfig } from "vitest/config" import tsconfigPaths from "vite-tsconfig-paths" +import commonjs from 'vite-plugin-commonjs' export default defineConfig({ - plugins: [tsconfigPaths({ - root: "./", - })], + plugins: [commonjs(), tsconfigPaths({ projects: ["../../tsconfig.json"] })], test: { environment: "node", }, diff --git a/packages/message-utils/vitest.config.mts b/packages/message-utils/vitest.config.mts index 4bef06cd5..01e2a4232 100644 --- a/packages/message-utils/vitest.config.mts +++ b/packages/message-utils/vitest.config.mts @@ -1,10 +1,9 @@ import { defineConfig } from "vitest/config" import tsconfigPaths from "vite-tsconfig-paths" +import commonjs from 'vite-plugin-commonjs' export default defineConfig({ - plugins: [tsconfigPaths({ - root: "./", - })], + plugins: [commonjs(), tsconfigPaths({ projects: ["../../tsconfig.json"] })], test: { environment: "node", }, diff --git a/packages/react/vitest.config.mts b/packages/react/vitest.config.mts index d66feae54..8515eb3b0 100644 --- a/packages/react/vitest.config.mts +++ b/packages/react/vitest.config.mts @@ -1,10 +1,9 @@ import { defineConfig } from "vitest/config" import tsconfigPaths from "vite-tsconfig-paths" +import commonjs from 'vite-plugin-commonjs' export default defineConfig({ - plugins: [tsconfigPaths({ - root: "./", - })], + plugins: [commonjs(), tsconfigPaths({ projects: ["../../tsconfig.json"] })], test: { environment: "jsdom", setupFiles: "./vitest.setup.ts", diff --git a/packages/remote-loader/vitest.config.mts b/packages/remote-loader/vitest.config.mts index 4bef06cd5..01e2a4232 100644 --- a/packages/remote-loader/vitest.config.mts +++ b/packages/remote-loader/vitest.config.mts @@ -1,10 +1,9 @@ import { defineConfig } from "vitest/config" import tsconfigPaths from "vite-tsconfig-paths" +import commonjs from 'vite-plugin-commonjs' export default defineConfig({ - plugins: [tsconfigPaths({ - root: "./", - })], + plugins: [commonjs(), tsconfigPaths({ projects: ["../../tsconfig.json"] })], test: { environment: "node", }, diff --git a/packages/vite-plugin/vitest.config.mts b/packages/vite-plugin/vitest.config.mts index 4bef06cd5..01e2a4232 100644 --- a/packages/vite-plugin/vitest.config.mts +++ b/packages/vite-plugin/vitest.config.mts @@ -1,10 +1,9 @@ import { defineConfig } from "vitest/config" import tsconfigPaths from "vite-tsconfig-paths" +import commonjs from 'vite-plugin-commonjs' export default defineConfig({ - plugins: [tsconfigPaths({ - root: "./", - })], + plugins: [commonjs(), tsconfigPaths({ projects: ["../../tsconfig.json"] })], test: { environment: "node", }, diff --git a/tsconfig.json b/tsconfig.json index 976d100e0..5cb71127a 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -5,6 +5,7 @@ "noEmit": true, "baseUrl": "./", "pretty": true, + "allowJs": true, "esModuleInterop": true, "stripInternal": true, "noUnusedLocals": true, diff --git a/yarn.lock b/yarn.lock index 63f7e6d5c..763b83c4b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2451,6 +2451,7 @@ __metadata: "@lingui/babel-plugin-lingui-macro": "workspace:*" "@lingui/jest-mocks": "workspace:*" unbuild: 2.0.0 + vite-tsconfig-paths: ^5.0.1 vitest: ^2.1.1 languageName: unknown linkType: soft @@ -4647,7 +4648,7 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^8.7.1, acorn@npm:^8.8.2, acorn@npm:^8.9.0": +"acorn@npm:^8.12.1, acorn@npm:^8.7.1, acorn@npm:^8.8.2, acorn@npm:^8.9.0": version: 8.12.1 resolution: "acorn@npm:8.12.1" bin: @@ -6614,7 +6615,7 @@ __metadata: languageName: node linkType: hard -"es-module-lexer@npm:^1.2.1": +"es-module-lexer@npm:^1.2.1, es-module-lexer@npm:^1.5.4": version: 1.5.4 resolution: "es-module-lexer@npm:1.5.4" checksum: a0cf04fb92d052647ac7d818d1913b98d3d3d0f5b9d88f0eafb993436e4c3e2c958599db68839d57f2dfa281fdf0f60e18d448eb78fc292c33c0f25635b6854f @@ -7558,6 +7559,19 @@ __metadata: languageName: node linkType: hard +"fast-glob@npm:^3.3.2": + version: 3.3.2 + resolution: "fast-glob@npm:3.3.2" + dependencies: + "@nodelib/fs.stat": ^2.0.2 + "@nodelib/fs.walk": ^1.2.3 + glob-parent: ^5.1.2 + merge2: ^1.3.0 + micromatch: ^4.0.4 + checksum: 900e4979f4dbc3313840078419245621259f349950411ca2fa445a2f9a1a6d98c3b5e7e0660c5ccd563aa61abe133a21765c6c0dec8e57da1ba71d8000b05ec1 + languageName: node + linkType: hard + "fast-json-stable-stringify@npm:2.x, fast-json-stable-stringify@npm:^2.0.0, fast-json-stable-stringify@npm:^2.1.0": version: 2.1.0 resolution: "fast-json-stable-stringify@npm:2.1.0" @@ -9272,6 +9286,7 @@ __metadata: ts-jest: ^29.0.5 typescript: ^4.9.5 vite: ^5.4.7 + vite-plugin-commonjs: ^0.10.3 vitest: ^2.1.1 languageName: unknown linkType: soft @@ -14013,6 +14028,29 @@ __metadata: languageName: node linkType: hard +"vite-plugin-commonjs@npm:^0.10.3": + version: 0.10.3 + resolution: "vite-plugin-commonjs@npm:0.10.3" + dependencies: + acorn: ^8.12.1 + magic-string: ^0.30.11 + vite-plugin-dynamic-import: ^1.6.0 + checksum: 9df157aafe0ef803aa2504f1302bd0699abb20d2d9a74c9147d071d86357cb82a5a880eb8ce082eccfb025843dc63afa482887a8b6f72d918db8aa4fa4900978 + languageName: node + linkType: hard + +"vite-plugin-dynamic-import@npm:^1.6.0": + version: 1.6.0 + resolution: "vite-plugin-dynamic-import@npm:1.6.0" + dependencies: + acorn: ^8.12.1 + es-module-lexer: ^1.5.4 + fast-glob: ^3.3.2 + magic-string: ^0.30.11 + checksum: 46b009c80db82a8ed935c6ec7c08a8d3d7e5d3118fbfb1b4e18f13e4e9c34db6b3f28fa697d7f78d3f36edae69479a0ba2dfae1b76d2b2ca8e3e06dcf1e9870c + languageName: node + linkType: hard + "vite-tsconfig-paths@npm:^5.0.1": version: 5.0.1 resolution: "vite-tsconfig-paths@npm:5.0.1" From ef15eae4372d81ea70bb3fff7a947c12038c2082 Mon Sep 17 00:00:00 2001 From: Andrii Bodnar Date: Thu, 28 Nov 2024 16:38:23 +0200 Subject: [PATCH 09/24] docs: update v5 social card (#2100) --- .../social-card.png | Bin 141255 -> 140636 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/website/blog/2024-11-28-announcing-lingui-5.0/social-card.png b/website/blog/2024-11-28-announcing-lingui-5.0/social-card.png index ae5c6b3a21ef9af6a3e2ab4cc369e205f4932c94..889fd3f41a75b230bd4dacbf1d9eb966fba08939 100644 GIT binary patch literal 140636 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

k5+V^ZU4*l35XOhLltZus9Wrjgt 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 From 8a25556a071dc21527378755e5f73c4edb3b96e2 Mon Sep 17 00:00:00 2001 From: Andrii Bodnar Date: Thu, 5 Dec 2024 09:31:59 +0200 Subject: [PATCH 10/24] docs: add v4 documentation link (#2107) --- website/docs/releases/migration-5.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/website/docs/releases/migration-5.md b/website/docs/releases/migration-5.md index 0f3564423..05716c247 100644 --- a/website/docs/releases/migration-5.md +++ b/website/docs/releases/migration-5.md @@ -4,6 +4,8 @@ This guide will help you migrate from Lingui 4.x to 5.x. It covers the most impo Need to upgrade an older project to v4 first? See our [older migration guide](/releases/migration-4). +If you're looking for 4.x documentation, you can find it [here](https://js-lingui-m3z8jlqt6-crowdin.vercel.app/). + ## Node.js Version The minimum supported version of Node.js in Lingui v5 is v20. From 38a0c6f8b7f4d961f1580228310f4ebe959eb5a5 Mon Sep 17 00:00:00 2001 From: monholm <73996878+monholm@users.noreply.github.com> Date: Thu, 5 Dec 2024 13:34:15 +0100 Subject: [PATCH 11/24] feat(vite-plugin): add support for vite@6 (#2108) --- packages/vite-plugin/package.json | 4 +- yarn.lock | 1205 +++++++++++------------------ 2 files changed, 474 insertions(+), 735 deletions(-) diff --git a/packages/vite-plugin/package.json b/packages/vite-plugin/package.json index 113ec1a49..34da460f0 100644 --- a/packages/vite-plugin/package.json +++ b/packages/vite-plugin/package.json @@ -43,13 +43,13 @@ "@lingui/conf": "5.0.0" }, "peerDependencies": { - "vite": "^3 || ^4 || ^5.0.9" + "vite": "^3 || ^4 || ^5.0.9 || ^6" }, "devDependencies": { "@lingui/core": "workspace:^", "@lingui/format-json": "workspace:^", "unbuild": "2.0.0", - "vite": "4.1.4", + "vite": "6.0.2", "vite-plugin-babel-macros": "^1.0.6" } } diff --git a/yarn.lock b/yarn.lock index c39ddd025..e78a277f2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -24,17 +24,7 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.15.8, @babel/code-frame@npm:^7.22.13, @babel/code-frame@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/code-frame@npm:7.24.7" - dependencies: - "@babel/highlight": ^7.24.7 - picocolors: ^1.0.0 - checksum: 830e62cd38775fdf84d612544251ce773d544a8e63df667728cc9e0126eeef14c6ebda79be0f0bc307e8318316b7f58c27ce86702e0a1f5c321d842eb38ffda4 - languageName: node - linkType: hard - -"@babel/code-frame@npm:^7.25.7": +"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.15.8, @babel/code-frame@npm:^7.22.13, @babel/code-frame@npm:^7.25.7": version: 7.25.7 resolution: "@babel/code-frame@npm:7.25.7" dependencies: @@ -44,44 +34,14 @@ __metadata: languageName: node linkType: hard -"@babel/compat-data@npm:^7.17.7, @babel/compat-data@npm:^7.20.1, @babel/compat-data@npm:^7.20.5, @babel/compat-data@npm:^7.25.2": - version: 7.25.4 - resolution: "@babel/compat-data@npm:7.25.4" - checksum: b12a91d27c3731a4b0bdc9312a50b1911f41f7f728aaf0d4b32486e2257fd2cb2d3ea1a295e98449600c48f2c7883a3196ca77cda1cef7d97a10c2e83d037974 - languageName: node - linkType: hard - -"@babel/compat-data@npm:^7.25.7": +"@babel/compat-data@npm:^7.17.7, @babel/compat-data@npm:^7.20.1, @babel/compat-data@npm:^7.20.5, @babel/compat-data@npm:^7.25.7": version: 7.25.7 resolution: "@babel/compat-data@npm:7.25.7" checksum: d1188aed1fda07b6463384f289409deb8e951a5f7cf31ef4757f359a633078edc8b2938056084cc823bca5b6166ba29ba8d4d649a18694e370789b6600d09339 languageName: node linkType: hard -"@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.17.7, @babel/core@npm:^7.20.12, @babel/core@npm:^7.21.0, @babel/core@npm:^7.22.9": - version: 7.25.2 - resolution: "@babel/core@npm:7.25.2" - dependencies: - "@ampproject/remapping": ^2.2.0 - "@babel/code-frame": ^7.24.7 - "@babel/generator": ^7.25.0 - "@babel/helper-compilation-targets": ^7.25.2 - "@babel/helper-module-transforms": ^7.25.2 - "@babel/helpers": ^7.25.0 - "@babel/parser": ^7.25.0 - "@babel/template": ^7.25.0 - "@babel/traverse": ^7.25.2 - "@babel/types": ^7.25.2 - convert-source-map: ^2.0.0 - debug: ^4.1.0 - gensync: ^1.0.0-beta.2 - json5: ^2.2.3 - semver: ^6.3.1 - checksum: 9a1ef604a7eb62195f70f9370cec45472a08114e3934e3eaaedee8fd754edf0730e62347c7b4b5e67d743ce57b5bb8cf3b92459482ca94d06e06246ef021390a - languageName: node - linkType: hard - -"@babel/core@npm:^7.23.9": +"@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.17.7, @babel/core@npm:^7.20.12, @babel/core@npm:^7.21.0, @babel/core@npm:^7.22.9, @babel/core@npm:^7.23.9": version: 7.25.7 resolution: "@babel/core@npm:7.25.7" dependencies: @@ -104,19 +64,7 @@ __metadata: languageName: node linkType: hard -"@babel/generator@npm:^7.21.1, @babel/generator@npm:^7.25.0, @babel/generator@npm:^7.25.6, @babel/generator@npm:^7.7.2": - version: 7.25.6 - resolution: "@babel/generator@npm:7.25.6" - dependencies: - "@babel/types": ^7.25.6 - "@jridgewell/gen-mapping": ^0.3.5 - "@jridgewell/trace-mapping": ^0.3.25 - jsesc: ^2.5.1 - checksum: b55975cd664f5602304d868bb34f4ee3bed6f5c7ce8132cd92ff27a46a53a119def28a182d91992e86f75db904f63094a81247703c4dc96e4db0c03fd04bcd68 - languageName: node - linkType: hard - -"@babel/generator@npm:^7.25.7": +"@babel/generator@npm:^7.21.1, @babel/generator@npm:^7.25.7, @babel/generator@npm:^7.7.2": version: 7.25.7 resolution: "@babel/generator@npm:7.25.7" dependencies: @@ -147,20 +95,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-compilation-targets@npm:^7.17.7, @babel/helper-compilation-targets@npm:^7.18.9, @babel/helper-compilation-targets@npm:^7.20.0, @babel/helper-compilation-targets@npm:^7.20.7, @babel/helper-compilation-targets@npm:^7.25.2": - version: 7.25.2 - resolution: "@babel/helper-compilation-targets@npm:7.25.2" - dependencies: - "@babel/compat-data": ^7.25.2 - "@babel/helper-validator-option": ^7.24.8 - browserslist: ^4.23.1 - lru-cache: ^5.1.1 - semver: ^6.3.1 - checksum: aed33c5496cb9db4b5e2d44e26bf8bc474074cc7f7bb5ebe1d4a20fdeb362cb3ba9e1596ca18c7484bcd6e5c3a155ab975e420d520c0ae60df81f9de04d0fd16 - languageName: node - linkType: hard - -"@babel/helper-compilation-targets@npm:^7.25.7": +"@babel/helper-compilation-targets@npm:^7.17.7, @babel/helper-compilation-targets@npm:^7.18.9, @babel/helper-compilation-targets@npm:^7.20.0, @babel/helper-compilation-targets@npm:^7.20.7, @babel/helper-compilation-targets@npm:^7.25.7": version: 7.25.7 resolution: "@babel/helper-compilation-targets@npm:7.25.7" dependencies: @@ -263,17 +198,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-module-imports@npm:^7.18.6, @babel/helper-module-imports@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-module-imports@npm:7.24.7" - dependencies: - "@babel/traverse": ^7.24.7 - "@babel/types": ^7.24.7 - checksum: 8ac15d96d262b8940bc469052a048e06430bba1296369be695fabdf6799f201dd0b00151762b56012a218464e706bc033f27c07f6cec20c6f8f5fd6543c67054 - languageName: node - linkType: hard - -"@babel/helper-module-imports@npm:^7.25.7": +"@babel/helper-module-imports@npm:^7.18.6, @babel/helper-module-imports@npm:^7.25.7": version: 7.25.7 resolution: "@babel/helper-module-imports@npm:7.25.7" dependencies: @@ -283,21 +208,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-module-transforms@npm:^7.18.6, @babel/helper-module-transforms@npm:^7.20.11, @babel/helper-module-transforms@npm:^7.25.2": - version: 7.25.2 - resolution: "@babel/helper-module-transforms@npm:7.25.2" - dependencies: - "@babel/helper-module-imports": ^7.24.7 - "@babel/helper-simple-access": ^7.24.7 - "@babel/helper-validator-identifier": ^7.24.7 - "@babel/traverse": ^7.25.2 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 282d4e3308df6746289e46e9c39a0870819630af5f84d632559171e4fae6045684d771a65f62df3d569e88ccf81dc2def78b8338a449ae3a94bb421aa14fc367 - languageName: node - linkType: hard - -"@babel/helper-module-transforms@npm:^7.25.7": +"@babel/helper-module-transforms@npm:^7.18.6, @babel/helper-module-transforms@npm:^7.20.11, @babel/helper-module-transforms@npm:^7.25.7": version: 7.25.7 resolution: "@babel/helper-module-transforms@npm:7.25.7" dependencies: @@ -355,17 +266,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-simple-access@npm:^7.20.2, @babel/helper-simple-access@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-simple-access@npm:7.24.7" - dependencies: - "@babel/traverse": ^7.24.7 - "@babel/types": ^7.24.7 - checksum: ddbf55f9dea1900213f2a1a8500fabfd21c5a20f44dcfa957e4b0d8638c730f88751c77f678644f754f1a1dc73f4eb8b766c300deb45a9daad000e4247957819 - languageName: node - linkType: hard - -"@babel/helper-simple-access@npm:^7.25.7": +"@babel/helper-simple-access@npm:^7.20.2, @babel/helper-simple-access@npm:^7.25.7": version: 7.25.7 resolution: "@babel/helper-simple-access@npm:7.25.7" dependencies: @@ -393,13 +294,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-string-parser@npm:^7.24.8": - version: 7.24.8 - resolution: "@babel/helper-string-parser@npm:7.24.8" - checksum: 39b03c5119216883878655b149148dc4d2e284791e969b19467a9411fccaa33f7a713add98f4db5ed519535f70ad273cdadfd2eb54d47ebbdeac5083351328ce - languageName: node - linkType: hard - "@babel/helper-string-parser@npm:^7.25.7": version: 7.25.7 resolution: "@babel/helper-string-parser@npm:7.25.7" @@ -407,28 +301,14 @@ __metadata: languageName: node linkType: hard -"@babel/helper-validator-identifier@npm:^7.19.1, @babel/helper-validator-identifier@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-validator-identifier@npm:7.24.7" - checksum: 6799ab117cefc0ecd35cd0b40ead320c621a298ecac88686a14cffceaac89d80cdb3c178f969861bf5fa5e4f766648f9161ea0752ecfe080d8e89e3147270257 - languageName: node - linkType: hard - -"@babel/helper-validator-identifier@npm:^7.25.7": +"@babel/helper-validator-identifier@npm:^7.19.1, @babel/helper-validator-identifier@npm:^7.25.7": version: 7.25.7 resolution: "@babel/helper-validator-identifier@npm:7.25.7" checksum: 062f55208deead4876eb474dc6fd55155c9eada8d0a505434de3b9aa06c34195562e0f3142b22a08793a38d740238efa2fe00ff42956cdcb8ac03f0b6c542247 languageName: node linkType: hard -"@babel/helper-validator-option@npm:^7.18.6, @babel/helper-validator-option@npm:^7.24.8": - version: 7.24.8 - resolution: "@babel/helper-validator-option@npm:7.24.8" - checksum: a52442dfa74be6719c0608fee3225bd0493c4057459f3014681ea1a4643cd38b68ff477fe867c4b356da7330d085f247f0724d300582fa4ab9a02efaf34d107c - languageName: node - linkType: hard - -"@babel/helper-validator-option@npm:^7.25.7": +"@babel/helper-validator-option@npm:^7.18.6, @babel/helper-validator-option@npm:^7.25.7": version: 7.25.7 resolution: "@babel/helper-validator-option@npm:7.25.7" checksum: 87b801fe7d8337699f2fba5323243dd974ea214d27cf51faf2f0063da6dc5bb67c9bb7867fd337573870f9ab498d2788a75bcf9685442bd9430611c62b0195d1 @@ -447,16 +327,6 @@ __metadata: languageName: node linkType: hard -"@babel/helpers@npm:^7.25.0": - version: 7.25.6 - resolution: "@babel/helpers@npm:7.25.6" - dependencies: - "@babel/template": ^7.25.0 - "@babel/types": ^7.25.6 - checksum: 5a548999db82049a5f7ac6de57576b4ed0d386ce07d058151698836ed411eae6230db12535487caeebb68a2ffc964491e8aead62364a5132ab0ae20e8b68e19f - languageName: node - linkType: hard - "@babel/helpers@npm:^7.25.7": version: 7.25.7 resolution: "@babel/helpers@npm:7.25.7" @@ -467,19 +337,7 @@ __metadata: languageName: node linkType: hard -"@babel/highlight@npm:^7.10.4, @babel/highlight@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/highlight@npm:7.24.7" - dependencies: - "@babel/helper-validator-identifier": ^7.24.7 - chalk: ^2.4.2 - js-tokens: ^4.0.0 - picocolors: ^1.0.0 - checksum: 5cd3a89f143671c4ac129960024ba678b669e6fc673ce078030f5175002d1d3d52bc10b22c5b916a6faf644b5028e9a4bd2bb264d053d9b05b6a98690f1d46f1 - languageName: node - linkType: hard - -"@babel/highlight@npm:^7.25.7": +"@babel/highlight@npm:^7.10.4, @babel/highlight@npm:^7.25.7": version: 7.25.7 resolution: "@babel/highlight@npm:7.25.7" dependencies: @@ -491,18 +349,7 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.16.4, @babel/parser@npm:^7.20.15, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.22.0, @babel/parser@npm:^7.25.0, @babel/parser@npm:^7.25.6, @babel/parser@npm:^7.7.0": - version: 7.25.6 - resolution: "@babel/parser@npm:7.25.6" - dependencies: - "@babel/types": ^7.25.6 - bin: - parser: ./bin/babel-parser.js - checksum: 85b237ded09ee43cc984493c35f3b1ff8a83e8dbbb8026b8132e692db6567acc5a1659ec928e4baa25499ddd840d7dae9dee3062be7108fe23ec5f94a8066b1e - languageName: node - linkType: hard - -"@babel/parser@npm:^7.23.9, @babel/parser@npm:^7.25.7": +"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.16.4, @babel/parser@npm:^7.20.15, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.22.0, @babel/parser@npm:^7.23.9, @babel/parser@npm:^7.25.7, @babel/parser@npm:^7.7.0": version: 7.25.7 resolution: "@babel/parser@npm:7.25.7" dependencies: @@ -1521,18 +1368,7 @@ __metadata: languageName: node linkType: hard -"@babel/template@npm:^7.18.10, @babel/template@npm:^7.20.7, @babel/template@npm:^7.22.5, @babel/template@npm:^7.25.0, @babel/template@npm:^7.3.3": - version: 7.25.0 - resolution: "@babel/template@npm:7.25.0" - dependencies: - "@babel/code-frame": ^7.24.7 - "@babel/parser": ^7.25.0 - "@babel/types": ^7.25.0 - checksum: 3f2db568718756d0daf2a16927b78f00c425046b654cd30b450006f2e84bdccaf0cbe6dc04994aa1f5f6a4398da2f11f3640a4d3ee31722e43539c4c919c817b - languageName: node - linkType: hard - -"@babel/template@npm:^7.25.7": +"@babel/template@npm:^7.18.10, @babel/template@npm:^7.20.7, @babel/template@npm:^7.22.5, @babel/template@npm:^7.25.7, @babel/template@npm:^7.3.3": version: 7.25.7 resolution: "@babel/template@npm:7.25.7" dependencies: @@ -1543,22 +1379,7 @@ __metadata: languageName: node linkType: hard -"@babel/traverse@npm:^7.20.12, @babel/traverse@npm:^7.20.5, @babel/traverse@npm:^7.20.7, @babel/traverse@npm:^7.24.7, @babel/traverse@npm:^7.25.2, @babel/traverse@npm:^7.7.0": - version: 7.25.6 - resolution: "@babel/traverse@npm:7.25.6" - dependencies: - "@babel/code-frame": ^7.24.7 - "@babel/generator": ^7.25.6 - "@babel/parser": ^7.25.6 - "@babel/template": ^7.25.0 - "@babel/types": ^7.25.6 - debug: ^4.3.1 - globals: ^11.1.0 - checksum: 11ee47269aa4356f2d6633a05b9af73405b5ed72c09378daf644289b686ef852035a6ac9aa410f601991993c6bbf72006795b5478283b78eb1ca77874ada7737 - languageName: node - linkType: hard - -"@babel/traverse@npm:^7.25.7": +"@babel/traverse@npm:^7.20.12, @babel/traverse@npm:^7.20.5, @babel/traverse@npm:^7.20.7, @babel/traverse@npm:^7.25.7, @babel/traverse@npm:^7.7.0": version: 7.25.7 resolution: "@babel/traverse@npm:7.25.7" dependencies: @@ -1573,18 +1394,7 @@ __metadata: languageName: node linkType: hard -"@babel/types@npm:^7.0.0, @babel/types@npm:^7.18.6, @babel/types@npm:^7.18.9, @babel/types@npm:^7.20.0, @babel/types@npm:^7.20.2, @babel/types@npm:^7.20.5, @babel/types@npm:^7.20.7, @babel/types@npm:^7.21.2, @babel/types@npm:^7.22.5, @babel/types@npm:^7.24.7, @babel/types@npm:^7.25.0, @babel/types@npm:^7.25.2, @babel/types@npm:^7.25.6, @babel/types@npm:^7.3.0, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4, @babel/types@npm:^7.7.0": - version: 7.25.6 - resolution: "@babel/types@npm:7.25.6" - dependencies: - "@babel/helper-string-parser": ^7.24.8 - "@babel/helper-validator-identifier": ^7.24.7 - to-fast-properties: ^2.0.0 - checksum: 9b2f84ff3f874ad05b0b9bf06862c56f478b65781801f82296b4cc01bee39e79c20a7c0a06959fed0ee582c8267e1cb21638318655c5e070b0287242a844d1c9 - languageName: node - linkType: hard - -"@babel/types@npm:^7.25.7": +"@babel/types@npm:^7.0.0, @babel/types@npm:^7.18.6, @babel/types@npm:^7.18.9, @babel/types@npm:^7.20.0, @babel/types@npm:^7.20.2, @babel/types@npm:^7.20.5, @babel/types@npm:^7.20.7, @babel/types@npm:^7.21.2, @babel/types@npm:^7.22.5, @babel/types@npm:^7.25.7, @babel/types@npm:^7.3.0, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4, @babel/types@npm:^7.7.0": version: 7.25.7 resolution: "@babel/types@npm:7.25.7" dependencies: @@ -1637,10 +1447,10 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-arm64@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/android-arm64@npm:0.16.17" - conditions: os=android & cpu=arm64 +"@esbuild/aix-ppc64@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/aix-ppc64@npm:0.24.0" + conditions: os=aix & cpu=ppc64 languageName: node linkType: hard @@ -1672,10 +1482,10 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-arm@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/android-arm@npm:0.16.17" - conditions: os=android & cpu=arm +"@esbuild/android-arm64@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/android-arm64@npm:0.24.0" + conditions: os=android & cpu=arm64 languageName: node linkType: hard @@ -1707,10 +1517,10 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-x64@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/android-x64@npm:0.16.17" - conditions: os=android & cpu=x64 +"@esbuild/android-arm@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/android-arm@npm:0.24.0" + conditions: os=android & cpu=arm languageName: node linkType: hard @@ -1742,10 +1552,10 @@ __metadata: languageName: node linkType: hard -"@esbuild/darwin-arm64@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/darwin-arm64@npm:0.16.17" - conditions: os=darwin & cpu=arm64 +"@esbuild/android-x64@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/android-x64@npm:0.24.0" + conditions: os=android & cpu=x64 languageName: node linkType: hard @@ -1777,10 +1587,10 @@ __metadata: languageName: node linkType: hard -"@esbuild/darwin-x64@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/darwin-x64@npm:0.16.17" - conditions: os=darwin & cpu=x64 +"@esbuild/darwin-arm64@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/darwin-arm64@npm:0.24.0" + conditions: os=darwin & cpu=arm64 languageName: node linkType: hard @@ -1812,10 +1622,10 @@ __metadata: languageName: node linkType: hard -"@esbuild/freebsd-arm64@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/freebsd-arm64@npm:0.16.17" - conditions: os=freebsd & cpu=arm64 +"@esbuild/darwin-x64@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/darwin-x64@npm:0.24.0" + conditions: os=darwin & cpu=x64 languageName: node linkType: hard @@ -1847,10 +1657,10 @@ __metadata: languageName: node linkType: hard -"@esbuild/freebsd-x64@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/freebsd-x64@npm:0.16.17" - conditions: os=freebsd & cpu=x64 +"@esbuild/freebsd-arm64@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/freebsd-arm64@npm:0.24.0" + conditions: os=freebsd & cpu=arm64 languageName: node linkType: hard @@ -1882,10 +1692,10 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-arm64@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/linux-arm64@npm:0.16.17" - conditions: os=linux & cpu=arm64 +"@esbuild/freebsd-x64@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/freebsd-x64@npm:0.24.0" + conditions: os=freebsd & cpu=x64 languageName: node linkType: hard @@ -1917,10 +1727,10 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-arm@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/linux-arm@npm:0.16.17" - conditions: os=linux & cpu=arm +"@esbuild/linux-arm64@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/linux-arm64@npm:0.24.0" + conditions: os=linux & cpu=arm64 languageName: node linkType: hard @@ -1952,10 +1762,10 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-ia32@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/linux-ia32@npm:0.16.17" - conditions: os=linux & cpu=ia32 +"@esbuild/linux-arm@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/linux-arm@npm:0.24.0" + conditions: os=linux & cpu=arm languageName: node linkType: hard @@ -1987,10 +1797,10 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-loong64@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/linux-loong64@npm:0.16.17" - conditions: os=linux & cpu=loong64 +"@esbuild/linux-ia32@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/linux-ia32@npm:0.24.0" + conditions: os=linux & cpu=ia32 languageName: node linkType: hard @@ -2022,10 +1832,10 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-mips64el@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/linux-mips64el@npm:0.16.17" - conditions: os=linux & cpu=mips64el +"@esbuild/linux-loong64@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/linux-loong64@npm:0.24.0" + conditions: os=linux & cpu=loong64 languageName: node linkType: hard @@ -2057,10 +1867,10 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-ppc64@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/linux-ppc64@npm:0.16.17" - conditions: os=linux & cpu=ppc64 +"@esbuild/linux-mips64el@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/linux-mips64el@npm:0.24.0" + conditions: os=linux & cpu=mips64el languageName: node linkType: hard @@ -2092,10 +1902,10 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-riscv64@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/linux-riscv64@npm:0.16.17" - conditions: os=linux & cpu=riscv64 +"@esbuild/linux-ppc64@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/linux-ppc64@npm:0.24.0" + conditions: os=linux & cpu=ppc64 languageName: node linkType: hard @@ -2127,10 +1937,10 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-s390x@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/linux-s390x@npm:0.16.17" - conditions: os=linux & cpu=s390x +"@esbuild/linux-riscv64@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/linux-riscv64@npm:0.24.0" + conditions: os=linux & cpu=riscv64 languageName: node linkType: hard @@ -2162,10 +1972,10 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-x64@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/linux-x64@npm:0.16.17" - conditions: os=linux & cpu=x64 +"@esbuild/linux-s390x@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/linux-s390x@npm:0.24.0" + conditions: os=linux & cpu=s390x languageName: node linkType: hard @@ -2197,10 +2007,10 @@ __metadata: languageName: node linkType: hard -"@esbuild/netbsd-x64@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/netbsd-x64@npm:0.16.17" - conditions: os=netbsd & cpu=x64 +"@esbuild/linux-x64@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/linux-x64@npm:0.24.0" + conditions: os=linux & cpu=x64 languageName: node linkType: hard @@ -2232,10 +2042,17 @@ __metadata: languageName: node linkType: hard -"@esbuild/openbsd-x64@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/openbsd-x64@npm:0.16.17" - conditions: os=openbsd & cpu=x64 +"@esbuild/netbsd-x64@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/netbsd-x64@npm:0.24.0" + conditions: os=netbsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/openbsd-arm64@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/openbsd-arm64@npm:0.24.0" + conditions: os=openbsd & cpu=arm64 languageName: node linkType: hard @@ -2267,10 +2084,10 @@ __metadata: languageName: node linkType: hard -"@esbuild/sunos-x64@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/sunos-x64@npm:0.16.17" - conditions: os=sunos & cpu=x64 +"@esbuild/openbsd-x64@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/openbsd-x64@npm:0.24.0" + conditions: os=openbsd & cpu=x64 languageName: node linkType: hard @@ -2302,10 +2119,10 @@ __metadata: languageName: node linkType: hard -"@esbuild/win32-arm64@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/win32-arm64@npm:0.16.17" - conditions: os=win32 & cpu=arm64 +"@esbuild/sunos-x64@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/sunos-x64@npm:0.24.0" + conditions: os=sunos & cpu=x64 languageName: node linkType: hard @@ -2337,10 +2154,10 @@ __metadata: languageName: node linkType: hard -"@esbuild/win32-ia32@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/win32-ia32@npm:0.16.17" - conditions: os=win32 & cpu=ia32 +"@esbuild/win32-arm64@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/win32-arm64@npm:0.24.0" + conditions: os=win32 & cpu=arm64 languageName: node linkType: hard @@ -2372,10 +2189,10 @@ __metadata: languageName: node linkType: hard -"@esbuild/win32-x64@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/win32-x64@npm:0.16.17" - conditions: os=win32 & cpu=x64 +"@esbuild/win32-ia32@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/win32-ia32@npm:0.24.0" + conditions: os=win32 & cpu=ia32 languageName: node linkType: hard @@ -2407,6 +2224,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/win32-x64@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/win32-x64@npm:0.24.0" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@eslint/eslintrc@npm:^0.4.3": version: 0.4.3 resolution: "@eslint/eslintrc@npm:0.4.3" @@ -2564,15 +2388,6 @@ __metadata: languageName: node linkType: hard -"@jest/expect-utils@npm:^29.4.3": - version: 29.4.3 - resolution: "@jest/expect-utils@npm:29.4.3" - dependencies: - jest-get-type: ^29.4.3 - checksum: 2bbed39ff2fb59f5acac465a1ce7303e3b4b62b479e4f386261986c9827f7f799ea912761e22629c5daf10addf8513f16733c14a29c2647bb66d4ee625e9ff92 - languageName: node - linkType: hard - "@jest/expect-utils@npm:^29.7.0": version: 29.7.0 resolution: "@jest/expect-utils@npm:29.7.0" @@ -2655,15 +2470,6 @@ __metadata: languageName: node linkType: hard -"@jest/schemas@npm:^29.4.3": - version: 29.4.3 - resolution: "@jest/schemas@npm:29.4.3" - dependencies: - "@sinclair/typebox": ^0.25.16 - checksum: ac754e245c19dc39e10ebd41dce09040214c96a4cd8efa143b82148e383e45128f24599195ab4f01433adae4ccfbe2db6574c90db2862ccd8551a86704b5bebd - languageName: node - linkType: hard - "@jest/schemas@npm:^29.6.3": version: 29.6.3 resolution: "@jest/schemas@npm:29.6.3" @@ -2731,20 +2537,6 @@ __metadata: languageName: node linkType: hard -"@jest/types@npm:^29.4.3, @jest/types@npm:^29.5.0": - version: 29.5.0 - resolution: "@jest/types@npm:29.5.0" - dependencies: - "@jest/schemas": ^29.4.3 - "@types/istanbul-lib-coverage": ^2.0.0 - "@types/istanbul-reports": ^3.0.0 - "@types/node": "*" - "@types/yargs": ^17.0.8 - chalk: ^4.0.0 - checksum: 1811f94b19cf8a9460a289c4f056796cfc373480e0492692a6125a553cd1a63824bd846d7bb78820b7b6f758f6dd3c2d4558293bb676d541b2fa59c70fdf9d39 - languageName: node - linkType: hard - "@jest/types@npm:^29.6.3": version: 29.6.3 resolution: "@jest/types@npm:29.6.3" @@ -3237,10 +3029,10 @@ __metadata: "@lingui/core": "workspace:^" "@lingui/format-json": "workspace:^" unbuild: 2.0.0 - vite: 4.1.4 + vite: 6.0.2 vite-plugin-babel-macros: ^1.0.6 peerDependencies: - vite: ^3 || ^4 || ^5.0.9 + vite: ^3 || ^4 || ^5.0.9 || ^6 languageName: unknown linkType: soft @@ -3649,13 +3441,6 @@ __metadata: languageName: node linkType: hard -"@octokit/openapi-types@npm:^16.0.0": - version: 16.0.0 - resolution: "@octokit/openapi-types@npm:16.0.0" - checksum: 844f30a545da380d63c712e0eb733366bc567d1aab34529c79fdfbec3d73810e81d83f06fdab13058a5cbc7dae786db1a9b90b5b61b1e606854ee45d5ec5f194 - languageName: node - linkType: hard - "@octokit/openapi-types@npm:^18.0.0": version: 18.1.1 resolution: "@octokit/openapi-types@npm:18.1.1" @@ -3755,16 +3540,7 @@ __metadata: languageName: node linkType: hard -"@octokit/types@npm:^9.0.0": - version: 9.0.0 - resolution: "@octokit/types@npm:9.0.0" - dependencies: - "@octokit/openapi-types": ^16.0.0 - checksum: 5c7f5cca8f00f7c4daa0d00f4fe991c1598ec47cd6ced50b1c5fbe9721bb9dee0adc2acdee265a3a715bb984e53ef3dc7f1cfb7326f712c6d809d59fc5c6648d - languageName: node - linkType: hard - -"@octokit/types@npm:^9.2.3": +"@octokit/types@npm:^9.0.0, @octokit/types@npm:^9.2.3": version: 9.3.2 resolution: "@octokit/types@npm:9.3.2" dependencies: @@ -3891,6 +3667,132 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-android-arm-eabi@npm:4.28.0": + version: 4.28.0 + resolution: "@rollup/rollup-android-arm-eabi@npm:4.28.0" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + +"@rollup/rollup-android-arm64@npm:4.28.0": + version: 4.28.0 + resolution: "@rollup/rollup-android-arm64@npm:4.28.0" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-darwin-arm64@npm:4.28.0": + version: 4.28.0 + resolution: "@rollup/rollup-darwin-arm64@npm:4.28.0" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-darwin-x64@npm:4.28.0": + version: 4.28.0 + resolution: "@rollup/rollup-darwin-x64@npm:4.28.0" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@rollup/rollup-freebsd-arm64@npm:4.28.0": + version: 4.28.0 + resolution: "@rollup/rollup-freebsd-arm64@npm:4.28.0" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-freebsd-x64@npm:4.28.0": + version: 4.28.0 + resolution: "@rollup/rollup-freebsd-x64@npm:4.28.0" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm-gnueabihf@npm:4.28.0": + version: 4.28.0 + resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.28.0" + conditions: os=linux & cpu=arm & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm-musleabihf@npm:4.28.0": + version: 4.28.0 + resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.28.0" + conditions: os=linux & cpu=arm & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm64-gnu@npm:4.28.0": + version: 4.28.0 + resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.28.0" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm64-musl@npm:4.28.0": + version: 4.28.0 + resolution: "@rollup/rollup-linux-arm64-musl@npm:4.28.0" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-linux-powerpc64le-gnu@npm:4.28.0": + version: 4.28.0 + resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.28.0" + conditions: os=linux & cpu=ppc64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-riscv64-gnu@npm:4.28.0": + version: 4.28.0 + resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.28.0" + conditions: os=linux & cpu=riscv64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-s390x-gnu@npm:4.28.0": + version: 4.28.0 + resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.28.0" + conditions: os=linux & cpu=s390x & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-x64-gnu@npm:4.28.0": + version: 4.28.0 + resolution: "@rollup/rollup-linux-x64-gnu@npm:4.28.0" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-x64-musl@npm:4.28.0": + version: 4.28.0 + resolution: "@rollup/rollup-linux-x64-musl@npm:4.28.0" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-win32-arm64-msvc@npm:4.28.0": + version: 4.28.0 + resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.28.0" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-win32-ia32-msvc@npm:4.28.0": + version: 4.28.0 + resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.28.0" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@rollup/rollup-win32-x64-msvc@npm:4.28.0": + version: 4.28.0 + resolution: "@rollup/rollup-win32-x64-msvc@npm:4.28.0" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@sigstore/bundle@npm:^2.3.2": version: 2.3.2 resolution: "@sigstore/bundle@npm:2.3.2" @@ -3949,13 +3851,6 @@ __metadata: languageName: node linkType: hard -"@sinclair/typebox@npm:^0.25.16": - version: 0.25.24 - resolution: "@sinclair/typebox@npm:0.25.24" - checksum: 10219c58f40b8414c50b483b0550445e9710d4fe7b2c4dccb9b66533dd90ba8e024acc776026cebe81e87f06fa24b07fdd7bc30dd277eb9cc386ec50151a3026 - languageName: node - linkType: hard - "@sinclair/typebox@npm:^0.27.8": version: 0.27.8 resolution: "@sinclair/typebox@npm:0.27.8" @@ -4346,10 +4241,10 @@ __metadata: languageName: node linkType: hard -"@types/estree@npm:*, @types/estree@npm:^1.0.0": - version: 1.0.0 - resolution: "@types/estree@npm:1.0.0" - checksum: 910d97fb7092c6738d30a7430ae4786a38542023c6302b95d46f49420b797f21619cdde11fa92b338366268795884111c2eb10356e4bd2c8ad5b92941e9e6443 +"@types/estree@npm:*, @types/estree@npm:1.0.6, @types/estree@npm:^1.0.0": + version: 1.0.6 + resolution: "@types/estree@npm:1.0.6" + checksum: 8825d6e729e16445d9a1dd2fb1db2edc5ed400799064cd4d028150701031af012ba30d6d03fe9df40f4d7a437d0de6d2b256020152b7b09bde9f2e420afdffd9 languageName: node linkType: hard @@ -4461,14 +4356,7 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:*": - version: 18.11.18 - resolution: "@types/node@npm:18.11.18" - checksum: 03f17f9480f8d775c8a72da5ea7e9383db5f6d85aa5fefde90dd953a1449bd5e4ffde376f139da4f3744b4c83942166d2a7603969a6f8ea826edfb16e6e3b49d - languageName: node - linkType: hard - -"@types/node@npm:20.14.8": +"@types/node@npm:*, @types/node@npm:20.14.8": version: 20.14.8 resolution: "@types/node@npm:20.14.8" dependencies: @@ -5748,21 +5636,7 @@ __metadata: languageName: node linkType: hard -"browserslist@npm:^4.14.5, browserslist@npm:^4.21.4, browserslist@npm:^4.23.1": - version: 4.23.3 - resolution: "browserslist@npm:4.23.3" - dependencies: - caniuse-lite: ^1.0.30001646 - electron-to-chromium: ^1.5.4 - node-releases: ^2.0.18 - update-browserslist-db: ^1.1.0 - bin: - browserslist: cli.js - checksum: 7906064f9970aeb941310b2fcb8b4ace4a1b50aa657c986677c6f1553a8cabcc94ee9c5922f715baffbedaa0e6cf0831b6fed7b059dde6873a4bfadcbe069c7e - languageName: node - linkType: hard - -"browserslist@npm:^4.24.0": +"browserslist@npm:^4.14.5, browserslist@npm:^4.21.4, browserslist@npm:^4.24.0": version: 4.24.0 resolution: "browserslist@npm:4.24.0" dependencies: @@ -5927,13 +5801,6 @@ __metadata: languageName: node linkType: hard -"caniuse-lite@npm:^1.0.30001646": - version: 1.0.30001662 - resolution: "caniuse-lite@npm:1.0.30001662" - checksum: 7a6a0c0d9f7c4a1c51de02838eb47f41f36fff57a77b846c8faed35ba9afba17b9399bc00bd637e5c1663cbc132534085d91151de48edca2ad8932a5d87e23af - languageName: node - linkType: hard - "caniuse-lite@npm:^1.0.30001663": version: 1.0.30001667 resolution: "caniuse-lite@npm:1.0.30001667" @@ -6900,13 +6767,6 @@ __metadata: languageName: node linkType: hard -"diff-sequences@npm:^29.4.3": - version: 29.4.3 - resolution: "diff-sequences@npm:29.4.3" - checksum: 28b265e04fdddcf7f9f814effe102cc95a9dec0564a579b5aed140edb24fc345c611ca52d76d725a3cab55d3888b915b5e8a4702e0f6058968a90fa5f41fcde7 - languageName: node - linkType: hard - "diff-sequences@npm:^29.6.3": version: 29.6.3 resolution: "diff-sequences@npm:29.6.3" @@ -7015,7 +6875,7 @@ __metadata: languageName: node linkType: hard -"ejs@npm:^3.1.10": +"ejs@npm:^3.1.10, ejs@npm:^3.1.7": version: 3.1.10 resolution: "ejs@npm:3.1.10" dependencies: @@ -7026,28 +6886,10 @@ __metadata: languageName: node linkType: hard -"ejs@npm:^3.1.7": - version: 3.1.8 - resolution: "ejs@npm:3.1.8" - dependencies: - jake: ^10.8.5 - bin: - ejs: bin/cli.js - checksum: 1d40d198ad52e315ccf37e577bdec06e24eefdc4e3c27aafa47751a03a0c7f0ec4310254c9277a5f14763c3cd4bbacce27497332b2d87c74232b9b1defef8efc - languageName: node - linkType: hard - "electron-to-chromium@npm:^1.5.28": version: 1.5.34 - resolution: "electron-to-chromium@npm:1.5.34" - checksum: d9fa460affd5322cb0aad5388e65c3ea73e463ecaeae4e6fde53add55eb7cfa3a29e2f2a16fd75fcb314e3ca9dbd44a0f040e72a8f1c2a77a05cfcc7e349c26d - languageName: node - linkType: hard - -"electron-to-chromium@npm:^1.5.4": - version: 1.5.27 - resolution: "electron-to-chromium@npm:1.5.27" - checksum: 1a32103306b92732979db40f299e013b94b284a80745c26390ceaee2bf76ef71a4167b1ababc17dc3d24cf4c27d5aa95dcf7c256c55c329164f726553dc9ea9a + resolution: "electron-to-chromium@npm:1.5.34" + checksum: d9fa460affd5322cb0aad5388e65c3ea73e463ecaeae4e6fde53add55eb7cfa3a29e2f2a16fd75fcb314e3ca9dbd44a0f040e72a8f1c2a77a05cfcc7e349c26d languageName: node linkType: hard @@ -7255,83 +7097,6 @@ __metadata: languageName: node linkType: hard -"esbuild@npm:^0.16.14": - version: 0.16.17 - resolution: "esbuild@npm:0.16.17" - dependencies: - "@esbuild/android-arm": 0.16.17 - "@esbuild/android-arm64": 0.16.17 - "@esbuild/android-x64": 0.16.17 - "@esbuild/darwin-arm64": 0.16.17 - "@esbuild/darwin-x64": 0.16.17 - "@esbuild/freebsd-arm64": 0.16.17 - "@esbuild/freebsd-x64": 0.16.17 - "@esbuild/linux-arm": 0.16.17 - "@esbuild/linux-arm64": 0.16.17 - "@esbuild/linux-ia32": 0.16.17 - "@esbuild/linux-loong64": 0.16.17 - "@esbuild/linux-mips64el": 0.16.17 - "@esbuild/linux-ppc64": 0.16.17 - "@esbuild/linux-riscv64": 0.16.17 - "@esbuild/linux-s390x": 0.16.17 - "@esbuild/linux-x64": 0.16.17 - "@esbuild/netbsd-x64": 0.16.17 - "@esbuild/openbsd-x64": 0.16.17 - "@esbuild/sunos-x64": 0.16.17 - "@esbuild/win32-arm64": 0.16.17 - "@esbuild/win32-ia32": 0.16.17 - "@esbuild/win32-x64": 0.16.17 - dependenciesMeta: - "@esbuild/android-arm": - optional: true - "@esbuild/android-arm64": - optional: true - "@esbuild/android-x64": - optional: true - "@esbuild/darwin-arm64": - optional: true - "@esbuild/darwin-x64": - optional: true - "@esbuild/freebsd-arm64": - optional: true - "@esbuild/freebsd-x64": - optional: true - "@esbuild/linux-arm": - optional: true - "@esbuild/linux-arm64": - optional: true - "@esbuild/linux-ia32": - optional: true - "@esbuild/linux-loong64": - optional: true - "@esbuild/linux-mips64el": - optional: true - "@esbuild/linux-ppc64": - optional: true - "@esbuild/linux-riscv64": - optional: true - "@esbuild/linux-s390x": - optional: true - "@esbuild/linux-x64": - optional: true - "@esbuild/netbsd-x64": - optional: true - "@esbuild/openbsd-x64": - optional: true - "@esbuild/sunos-x64": - optional: true - "@esbuild/win32-arm64": - optional: true - "@esbuild/win32-ia32": - optional: true - "@esbuild/win32-x64": - optional: true - bin: - esbuild: bin/esbuild - checksum: 4c2cc609ecfb426554bc3f75beb92d89eb2d0c515cfceebaa36c7599d7dcaab7056b70f6d6b51e72b45951ddf9021ee28e356cf205f8e42cc055d522312ea30c - languageName: node - linkType: hard - "esbuild@npm:^0.17.2": version: 0.17.11 resolution: "esbuild@npm:0.17.11" @@ -7643,6 +7408,89 @@ __metadata: languageName: node linkType: hard +"esbuild@npm:^0.24.0": + version: 0.24.0 + resolution: "esbuild@npm:0.24.0" + dependencies: + "@esbuild/aix-ppc64": 0.24.0 + "@esbuild/android-arm": 0.24.0 + "@esbuild/android-arm64": 0.24.0 + "@esbuild/android-x64": 0.24.0 + "@esbuild/darwin-arm64": 0.24.0 + "@esbuild/darwin-x64": 0.24.0 + "@esbuild/freebsd-arm64": 0.24.0 + "@esbuild/freebsd-x64": 0.24.0 + "@esbuild/linux-arm": 0.24.0 + "@esbuild/linux-arm64": 0.24.0 + "@esbuild/linux-ia32": 0.24.0 + "@esbuild/linux-loong64": 0.24.0 + "@esbuild/linux-mips64el": 0.24.0 + "@esbuild/linux-ppc64": 0.24.0 + "@esbuild/linux-riscv64": 0.24.0 + "@esbuild/linux-s390x": 0.24.0 + "@esbuild/linux-x64": 0.24.0 + "@esbuild/netbsd-x64": 0.24.0 + "@esbuild/openbsd-arm64": 0.24.0 + "@esbuild/openbsd-x64": 0.24.0 + "@esbuild/sunos-x64": 0.24.0 + "@esbuild/win32-arm64": 0.24.0 + "@esbuild/win32-ia32": 0.24.0 + "@esbuild/win32-x64": 0.24.0 + dependenciesMeta: + "@esbuild/aix-ppc64": + optional: true + "@esbuild/android-arm": + optional: true + "@esbuild/android-arm64": + optional: true + "@esbuild/android-x64": + optional: true + "@esbuild/darwin-arm64": + optional: true + "@esbuild/darwin-x64": + optional: true + "@esbuild/freebsd-arm64": + optional: true + "@esbuild/freebsd-x64": + optional: true + "@esbuild/linux-arm": + optional: true + "@esbuild/linux-arm64": + optional: true + "@esbuild/linux-ia32": + optional: true + "@esbuild/linux-loong64": + optional: true + "@esbuild/linux-mips64el": + optional: true + "@esbuild/linux-ppc64": + optional: true + "@esbuild/linux-riscv64": + optional: true + "@esbuild/linux-s390x": + optional: true + "@esbuild/linux-x64": + optional: true + "@esbuild/netbsd-x64": + optional: true + "@esbuild/openbsd-arm64": + optional: true + "@esbuild/openbsd-x64": + optional: true + "@esbuild/sunos-x64": + optional: true + "@esbuild/win32-arm64": + optional: true + "@esbuild/win32-ia32": + optional: true + "@esbuild/win32-x64": + optional: true + bin: + esbuild: bin/esbuild + checksum: dd386d92a05c7eb03078480522cdd8b40c434777b5f08487c27971d30933ecaae3f08bd221958dd8f9c66214915cdc85f844283ca9bdbf8ee703d889ae526edd + languageName: node + linkType: hard + "escalade@npm:^3.1.1, escalade@npm:^3.1.2": version: 3.2.0 resolution: "escalade@npm:3.2.0" @@ -8120,20 +7968,7 @@ __metadata: languageName: node linkType: hard -"expect@npm:^29.0.0": - version: 29.4.3 - resolution: "expect@npm:29.4.3" - dependencies: - "@jest/expect-utils": ^29.4.3 - jest-get-type: ^29.4.3 - jest-matcher-utils: ^29.4.3 - jest-message-util: ^29.4.3 - jest-util: ^29.4.3 - checksum: ff9dd8c50c0c6fd4b2b00f6dbd7ab0e2063fe1953be81a8c10ae1c005c7f5667ba452918e2efb055504b72b701a4f82575a081a0a7158efb16d87991b0366feb - languageName: node - linkType: hard - -"expect@npm:^29.7.0": +"expect@npm:^29.0.0, expect@npm:^29.7.0": version: 29.7.0 resolution: "expect@npm:29.7.0" dependencies: @@ -8412,18 +8247,7 @@ __metadata: languageName: node linkType: hard -"fs-extra@npm:^11.1.1": - version: 11.1.1 - resolution: "fs-extra@npm:11.1.1" - dependencies: - graceful-fs: ^4.2.0 - jsonfile: ^6.0.1 - universalify: ^2.0.0 - checksum: fb883c68245b2d777fbc1f2082c9efb084eaa2bbf9fddaa366130d196c03608eebef7fb490541276429ee1ca99f317e2d73e96f5ca0999eefedf5a624ae1edfd - languageName: node - linkType: hard - -"fs-extra@npm:^11.2.0": +"fs-extra@npm:^11.1.1, fs-extra@npm:^11.2.0": version: 11.2.0 resolution: "fs-extra@npm:11.2.0" dependencies: @@ -8459,19 +8283,19 @@ __metadata: languageName: node linkType: hard -"fsevents@npm:^2.3.2, fsevents@npm:~2.3.1, fsevents@npm:~2.3.2": - version: 2.3.2 - resolution: "fsevents@npm:2.3.2" +"fsevents@npm:^2.3.2, fsevents@npm:~2.3.1, fsevents@npm:~2.3.2, fsevents@npm:~2.3.3": + version: 2.3.3 + resolution: "fsevents@npm:2.3.3" dependencies: node-gyp: latest - checksum: 97ade64e75091afee5265e6956cb72ba34db7819b4c3e94c431d4be2b19b8bb7a2d4116da417950c3425f17c8fe693d25e20212cac583ac1521ad066b77ae31f + checksum: 11e6ea6fea15e42461fc55b4b0e4a0a3c654faa567f1877dbd353f39156f69def97a69936d1746619d656c4b93de2238bf731f6085a03a50cabf287c9d024317 conditions: os=darwin languageName: node linkType: hard -"fsevents@patch:fsevents@^2.3.2#~builtin, fsevents@patch:fsevents@~2.3.1#~builtin, fsevents@patch:fsevents@~2.3.2#~builtin": - version: 2.3.2 - resolution: "fsevents@patch:fsevents@npm%3A2.3.2#~builtin::version=2.3.2&hash=df0bf1" +"fsevents@patch:fsevents@^2.3.2#~builtin, fsevents@patch:fsevents@~2.3.1#~builtin, fsevents@patch:fsevents@~2.3.2#~builtin, fsevents@patch:fsevents@~2.3.3#~builtin": + version: 2.3.3 + resolution: "fsevents@patch:fsevents@npm%3A2.3.3#~builtin::version=2.3.3&hash=df0bf1" dependencies: node-gyp: latest conditions: os=darwin @@ -8871,20 +8695,13 @@ __metadata: languageName: node linkType: hard -"graceful-fs@npm:4.2.11": +"graceful-fs@npm:4.2.11, graceful-fs@npm:^4.1.11, graceful-fs@npm:^4.1.15, graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9": version: 4.2.11 resolution: "graceful-fs@npm:4.2.11" checksum: ac85f94da92d8eb6b7f5a8b20ce65e43d66761c55ce85ac96df6865308390da45a8d3f0296dd3a663de65d30ba497bd46c696cc1e248c72b13d6d567138a4fc7 languageName: node linkType: hard -"graceful-fs@npm:^4.1.11, graceful-fs@npm:^4.1.15, graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9": - version: 4.2.10 - resolution: "graceful-fs@npm:4.2.10" - checksum: 3f109d70ae123951905d85032ebeae3c2a5a7a997430df00ea30df0e3a6c60cf6689b109654d6fdacd28810a053348c4d14642da1d075049e6be1ba5216218da - languageName: node - linkType: hard - "grapheme-splitter@npm:^1.0.4": version: 1.0.4 resolution: "grapheme-splitter@npm:1.0.4" @@ -9371,13 +9188,6 @@ __metadata: languageName: node linkType: hard -"ip@npm:^2.0.0": - version: 2.0.0 - resolution: "ip@npm:2.0.0" - checksum: cfcfac6b873b701996d71ec82a7dd27ba92450afdb421e356f44044ed688df04567344c36cbacea7d01b1c39a4c732dc012570ebe9bebfb06f27314bca625349 - languageName: node - linkType: hard - "irregular-plurals@npm:^3.2.0": version: 3.4.1 resolution: "irregular-plurals@npm:3.4.1" @@ -10029,7 +9839,7 @@ __metadata: languageName: node linkType: hard -"jest-diff@npm:>=29.4.3 < 30, jest-diff@npm:^29.4.1, jest-diff@npm:^29.7.0": +"jest-diff@npm:>=29.4.3 < 30, jest-diff@npm:^29.0.3, jest-diff@npm:^29.4.1, jest-diff@npm:^29.7.0": version: 29.7.0 resolution: "jest-diff@npm:29.7.0" dependencies: @@ -10041,18 +9851,6 @@ __metadata: languageName: node linkType: hard -"jest-diff@npm:^29.0.3, jest-diff@npm:^29.4.3": - version: 29.5.0 - resolution: "jest-diff@npm:29.5.0" - dependencies: - chalk: ^4.0.0 - diff-sequences: ^29.4.3 - jest-get-type: ^29.4.3 - pretty-format: ^29.5.0 - checksum: dfd0f4a299b5d127779c76b40106c37854c89c3e0785098c717d52822d6620d227f6234c3a9291df204d619e799e3654159213bf93220f79c8e92a55475a3d39 - languageName: node - linkType: hard - "jest-docblock@npm:^29.7.0": version: 29.7.0 resolution: "jest-docblock@npm:29.7.0" @@ -10119,13 +9917,6 @@ __metadata: languageName: node linkType: hard -"jest-get-type@npm:^29.4.3": - version: 29.4.3 - resolution: "jest-get-type@npm:29.4.3" - checksum: 6ac7f2dde1c65e292e4355b6c63b3a4897d7e92cb4c8afcf6d397f2682f8080e094c8b0b68205a74d269882ec06bf696a9de6cd3e1b7333531e5ed7b112605ce - languageName: node - linkType: hard - "jest-get-type@npm:^29.6.3": version: 29.6.3 resolution: "jest-get-type@npm:29.6.3" @@ -10166,18 +9957,6 @@ __metadata: languageName: node linkType: hard -"jest-matcher-utils@npm:^29.4.3": - version: 29.4.3 - resolution: "jest-matcher-utils@npm:29.4.3" - dependencies: - chalk: ^4.0.0 - jest-diff: ^29.4.3 - jest-get-type: ^29.4.3 - pretty-format: ^29.4.3 - checksum: 9e13cbe42d2113bab2691110c7c3ba5cec3b94abad2727e1de90929d0f67da444e9b2066da3b476b5bf788df53a8ede0e0a950cfb06a04e4d6d566d115ee4f1d - languageName: node - linkType: hard - "jest-matcher-utils@npm:^29.7.0": version: 29.7.0 resolution: "jest-matcher-utils@npm:29.7.0" @@ -10190,23 +9969,6 @@ __metadata: languageName: node linkType: hard -"jest-message-util@npm:^29.4.3": - version: 29.5.0 - resolution: "jest-message-util@npm:29.5.0" - dependencies: - "@babel/code-frame": ^7.12.13 - "@jest/types": ^29.5.0 - "@types/stack-utils": ^2.0.0 - chalk: ^4.0.0 - graceful-fs: ^4.2.9 - micromatch: ^4.0.4 - pretty-format: ^29.5.0 - slash: ^3.0.0 - stack-utils: ^2.0.3 - checksum: daddece6bbf846eb6a2ab9be9f2446e54085bef4e5cecd13d2a538fa9c01cb89d38e564c6b74fd8e12d37ed9eface8a362240ae9f21d68b214590631e7a0d8bf - languageName: node - linkType: hard - "jest-message-util@npm:^29.7.0": version: 29.7.0 resolution: "jest-message-util@npm:29.7.0" @@ -10382,21 +10144,7 @@ __metadata: languageName: node linkType: hard -"jest-util@npm:^29.0.0, jest-util@npm:^29.4.3, jest-util@npm:^29.5.0": - version: 29.5.0 - resolution: "jest-util@npm:29.5.0" - dependencies: - "@jest/types": ^29.5.0 - "@types/node": "*" - chalk: ^4.0.0 - ci-info: ^3.2.0 - graceful-fs: ^4.2.9 - picomatch: ^2.2.3 - checksum: fd9212950d34d2ecad8c990dda0d8ea59a8a554b0c188b53ea5d6c4a0829a64f2e1d49e6e85e812014933d17426d7136da4785f9cf76fff1799de51b88bc85d3 - languageName: node - linkType: hard - -"jest-util@npm:^29.7.0": +"jest-util@npm:^29.0.0, jest-util@npm:^29.7.0": version: 29.7.0 resolution: "jest-util@npm:29.7.0" dependencies: @@ -10410,21 +10158,7 @@ __metadata: languageName: node linkType: hard -"jest-validate@npm:^29.4.3": - version: 29.4.3 - resolution: "jest-validate@npm:29.4.3" - dependencies: - "@jest/types": ^29.4.3 - camelcase: ^6.2.0 - chalk: ^4.0.0 - jest-get-type: ^29.4.3 - leven: ^3.1.0 - pretty-format: ^29.4.3 - checksum: 983e56430d86bed238448cae031535c1d908f760aa312cd4a4ec0e92f3bc1b6675415ddf57cdeceedb8ad9c698e5bcd10f0a856dfc93a8923bdecc7733f4ba80 - languageName: node - linkType: hard - -"jest-validate@npm:^29.7.0": +"jest-validate@npm:^29.4.3, jest-validate@npm:^29.7.0": version: 29.7.0 resolution: "jest-validate@npm:29.7.0" dependencies: @@ -10465,19 +10199,7 @@ __metadata: languageName: node linkType: hard -"jest-worker@npm:^29.5.0": - version: 29.5.0 - resolution: "jest-worker@npm:29.5.0" - dependencies: - "@types/node": "*" - jest-util: ^29.5.0 - merge-stream: ^2.0.0 - supports-color: ^8.0.0 - checksum: 1151a1ae3602b1ea7c42a8f1efe2b5a7bf927039deaa0827bf978880169899b705744e288f80a63603fb3fc2985e0071234986af7dc2c21c7a64333d8777c7c9 - languageName: node - linkType: hard - -"jest-worker@npm:^29.7.0": +"jest-worker@npm:^29.5.0, jest-worker@npm:^29.7.0": version: 29.7.0 resolution: "jest-worker@npm:29.7.0" dependencies: @@ -10696,15 +10418,6 @@ __metadata: languageName: node linkType: hard -"jsesc@npm:^2.5.1": - version: 2.5.2 - resolution: "jsesc@npm:2.5.2" - bin: - jsesc: bin/jsesc - checksum: 4dc190771129e12023f729ce20e1e0bfceac84d73a85bc3119f7f938843fe25a4aeccb54b6494dce26fcf263d815f5f31acdefac7cc9329efb8422a4f4d9fa9d - languageName: node - linkType: hard - "jsesc@npm:^3.0.2": version: 3.0.2 resolution: "jsesc@npm:3.0.2" @@ -11700,13 +11413,6 @@ __metadata: languageName: node linkType: hard -"minipass@npm:^4.0.0": - version: 4.2.4 - resolution: "minipass@npm:4.2.4" - checksum: c664f2ae4401408d1e7a6e4f50aca45f87b1b0634bc9261136df5c378e313e77355765f73f59c4a5abcadcdf43d83fcd3eb14e4a7cdcce8e36508e2290345753 - languageName: node - linkType: hard - "minipass@npm:^4.2.4": version: 4.2.8 resolution: "minipass@npm:4.2.8" @@ -11862,12 +11568,12 @@ __metadata: languageName: node linkType: hard -"nanoid@npm:^3.3.4": - version: 3.3.4 - resolution: "nanoid@npm:3.3.4" +"nanoid@npm:^3.3.4, nanoid@npm:^3.3.7": + version: 3.3.8 + resolution: "nanoid@npm:3.3.8" bin: nanoid: bin/nanoid.cjs - checksum: 2fddd6dee994b7676f008d3ffa4ab16035a754f4bb586c61df5a22cf8c8c94017aadd360368f47d653829e0569a92b129979152ff97af23a558331e47e37cd9c + checksum: dfe0adbc0c77e9655b550c333075f51bb28cfc7568afbf3237249904f9c86c9aaaed1f113f0fddddba75673ee31c758c30c43d4414f014a52a7a626efc5958c9 languageName: node linkType: hard @@ -12917,10 +12623,10 @@ __metadata: languageName: node linkType: hard -"picocolors@npm:^1.0.0, picocolors@npm:^1.0.1": - version: 1.1.0 - resolution: "picocolors@npm:1.1.0" - checksum: a64d653d3a188119ff45781dfcdaeedd7625583f45280aea33fcb032c7a0d3959f2368f9b192ad5e8aade75b74dbd954ffe3106c158509a45e4c18ab379a2acd +"picocolors@npm:^1.0.0, picocolors@npm:^1.0.1, picocolors@npm:^1.1.1": + version: 1.1.1 + resolution: "picocolors@npm:1.1.1" + checksum: e1cf46bf84886c79055fdfa9dcb3e4711ad259949e3565154b004b260cd356c5d54b31a1437ce9782624bf766272fe6b0154f5f0c744fb7af5d454d2b60db045 languageName: node linkType: hard @@ -13037,14 +12743,14 @@ __metadata: languageName: node linkType: hard -"postcss@npm:^8.1.10, postcss@npm:^8.4.21": - version: 8.4.21 - resolution: "postcss@npm:8.4.21" +"postcss@npm:^8.1.10, postcss@npm:^8.4.49": + version: 8.4.49 + resolution: "postcss@npm:8.4.49" dependencies: - nanoid: ^3.3.4 - picocolors: ^1.0.0 - source-map-js: ^1.0.2 - checksum: e39ac60ccd1542d4f9d93d894048aac0d686b3bb38e927d8386005718e6793dbbb46930f0a523fe382f1bbd843c6d980aaea791252bf5e176180e5a4336d9679 + nanoid: ^3.3.7 + picocolors: ^1.1.1 + source-map-js: ^1.2.1 + checksum: eb5d6cbdca24f50399aafa5d2bea489e4caee4c563ea1edd5a2485bc5f84e9ceef3febf170272bc83a99c31d23a316ad179213e853f34c2a7a8ffa534559d63a languageName: node linkType: hard @@ -13089,18 +12795,7 @@ __metadata: languageName: node linkType: hard -"pretty-format@npm:^29.0.0, pretty-format@npm:^29.4.3, pretty-format@npm:^29.5.0": - version: 29.5.0 - resolution: "pretty-format@npm:29.5.0" - dependencies: - "@jest/schemas": ^29.4.3 - ansi-styles: ^5.0.0 - react-is: ^18.0.0 - checksum: 4065356b558e6db25b4d41a01efb386935a6c06a0c9c104ef5ce59f2f476b8210edb8b3949b386e60ada0a6dc5ebcb2e6ccddc8c64dfd1a9943c3c3a9e7eaf89 - languageName: node - linkType: hard - -"pretty-format@npm:^29.7.0": +"pretty-format@npm:^29.0.0, pretty-format@npm:^29.7.0": version: 29.7.0 resolution: "pretty-format@npm:29.7.0" dependencies: @@ -13771,7 +13466,7 @@ __metadata: languageName: node linkType: hard -"rollup@npm:^3.10.0, rollup@npm:^3.28.1": +"rollup@npm:^3.28.1": version: 3.29.4 resolution: "rollup@npm:3.29.4" dependencies: @@ -13785,6 +13480,75 @@ __metadata: languageName: node linkType: hard +"rollup@npm:^4.23.0": + version: 4.28.0 + resolution: "rollup@npm:4.28.0" + dependencies: + "@rollup/rollup-android-arm-eabi": 4.28.0 + "@rollup/rollup-android-arm64": 4.28.0 + "@rollup/rollup-darwin-arm64": 4.28.0 + "@rollup/rollup-darwin-x64": 4.28.0 + "@rollup/rollup-freebsd-arm64": 4.28.0 + "@rollup/rollup-freebsd-x64": 4.28.0 + "@rollup/rollup-linux-arm-gnueabihf": 4.28.0 + "@rollup/rollup-linux-arm-musleabihf": 4.28.0 + "@rollup/rollup-linux-arm64-gnu": 4.28.0 + "@rollup/rollup-linux-arm64-musl": 4.28.0 + "@rollup/rollup-linux-powerpc64le-gnu": 4.28.0 + "@rollup/rollup-linux-riscv64-gnu": 4.28.0 + "@rollup/rollup-linux-s390x-gnu": 4.28.0 + "@rollup/rollup-linux-x64-gnu": 4.28.0 + "@rollup/rollup-linux-x64-musl": 4.28.0 + "@rollup/rollup-win32-arm64-msvc": 4.28.0 + "@rollup/rollup-win32-ia32-msvc": 4.28.0 + "@rollup/rollup-win32-x64-msvc": 4.28.0 + "@types/estree": 1.0.6 + fsevents: ~2.3.2 + dependenciesMeta: + "@rollup/rollup-android-arm-eabi": + optional: true + "@rollup/rollup-android-arm64": + optional: true + "@rollup/rollup-darwin-arm64": + optional: true + "@rollup/rollup-darwin-x64": + optional: true + "@rollup/rollup-freebsd-arm64": + optional: true + "@rollup/rollup-freebsd-x64": + optional: true + "@rollup/rollup-linux-arm-gnueabihf": + optional: true + "@rollup/rollup-linux-arm-musleabihf": + optional: true + "@rollup/rollup-linux-arm64-gnu": + optional: true + "@rollup/rollup-linux-arm64-musl": + optional: true + "@rollup/rollup-linux-powerpc64le-gnu": + optional: true + "@rollup/rollup-linux-riscv64-gnu": + optional: true + "@rollup/rollup-linux-s390x-gnu": + optional: true + "@rollup/rollup-linux-x64-gnu": + optional: true + "@rollup/rollup-linux-x64-musl": + optional: true + "@rollup/rollup-win32-arm64-msvc": + optional: true + "@rollup/rollup-win32-ia32-msvc": + optional: true + "@rollup/rollup-win32-x64-msvc": + optional: true + fsevents: + optional: true + bin: + rollup: dist/bin/rollup + checksum: 77919b29dd4b54ce5e131aa61f03d8bb7955b332970941914d9c8bd7afd70f8189dc463eb8a357355abcc1bc7add809ec75280d50144817e47cd9e87005bd8ac + languageName: node + linkType: hard + "run-async@npm:^2.4.0": version: 2.4.1 resolution: "run-async@npm:2.4.1" @@ -13905,7 +13669,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:7.3.8, semver@npm:^7.0.0, semver@npm:^7.1.1, semver@npm:^7.2.1, semver@npm:^7.3.2, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7": +"semver@npm:7.3.8": version: 7.3.8 resolution: "semver@npm:7.3.8" dependencies: @@ -13925,7 +13689,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:^7.3.8, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.3": +"semver@npm:^7.0.0, semver@npm:^7.1.1, semver@npm:^7.2.1, semver@npm:^7.3.2, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.3.8, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.3": version: 7.6.3 resolution: "semver@npm:7.6.3" bin: @@ -14128,17 +13892,7 @@ __metadata: languageName: node linkType: hard -"socks@npm:^2.6.2": - version: 2.7.1 - resolution: "socks@npm:2.7.1" - dependencies: - ip: ^2.0.0 - smart-buffer: ^4.2.0 - checksum: 259d9e3e8e1c9809a7f5c32238c3d4d2a36b39b83851d0f573bfde5f21c4b1288417ce1af06af1452569cd1eb0841169afd4998f0e04ba04656f6b7f0e46d748 - languageName: node - linkType: hard - -"socks@npm:^2.8.3": +"socks@npm:^2.6.2, socks@npm:^2.8.3": version: 2.8.3 resolution: "socks@npm:2.8.3" dependencies: @@ -14157,10 +13911,10 @@ __metadata: languageName: node linkType: hard -"source-map-js@npm:^1.0.2": - version: 1.0.2 - resolution: "source-map-js@npm:1.0.2" - checksum: c049a7fc4deb9a7e9b481ae3d424cc793cb4845daa690bc5a05d428bf41bf231ced49b4cf0c9e77f9d42fdb3d20d6187619fc586605f5eabe995a316da8d377c +"source-map-js@npm:^1.2.1": + version: 1.2.1 + resolution: "source-map-js@npm:1.2.1" + checksum: 4eb0cd997cdf228bc253bcaff9340afeb706176e64868ecd20efbe6efea931465f43955612346d6b7318789e5265bdc419bc7669c1cebe3db0eb255f57efa76b languageName: node linkType: hard @@ -14634,7 +14388,7 @@ __metadata: languageName: node linkType: hard -"tar@npm:6.2.1, tar@npm:^6.2.1": +"tar@npm:6.2.1, tar@npm:^6.1.11, tar@npm:^6.1.2, tar@npm:^6.2.1": version: 6.2.1 resolution: "tar@npm:6.2.1" dependencies: @@ -14648,20 +14402,6 @@ __metadata: languageName: node linkType: hard -"tar@npm:^6.1.11, tar@npm:^6.1.2": - version: 6.1.13 - resolution: "tar@npm:6.1.13" - dependencies: - chownr: ^2.0.0 - fs-minipass: ^2.0.0 - minipass: ^4.0.0 - minizlib: ^2.1.1 - mkdirp: ^1.0.3 - yallist: ^4.0.0 - checksum: 8a278bed123aa9f53549b256a36b719e317c8b96fe86a63406f3c62887f78267cea9b22dc6f7007009738509800d4a4dccc444abd71d762287c90f35b002eb1c - languageName: node - linkType: hard - "temp-dir@npm:1.0.0": version: 1.0.0 resolution: "temp-dir@npm:1.0.0" @@ -15486,41 +15226,55 @@ __metadata: languageName: node linkType: hard -"vite@npm:4.1.4": - version: 4.1.4 - resolution: "vite@npm:4.1.4" +"vite@npm:6.0.2": + version: 6.0.2 + resolution: "vite@npm:6.0.2" dependencies: - esbuild: ^0.16.14 - fsevents: ~2.3.2 - postcss: ^8.4.21 - resolve: ^1.22.1 - rollup: ^3.10.0 + esbuild: ^0.24.0 + fsevents: ~2.3.3 + postcss: ^8.4.49 + rollup: ^4.23.0 peerDependencies: - "@types/node": ">= 14" + "@types/node": ^18.0.0 || ^20.0.0 || >=22.0.0 + jiti: ">=1.21.0" less: "*" + lightningcss: ^1.21.0 sass: "*" + sass-embedded: "*" stylus: "*" sugarss: "*" - terser: ^5.4.0 + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 dependenciesMeta: fsevents: optional: true peerDependenciesMeta: "@types/node": optional: true + jiti: + optional: true less: optional: true + lightningcss: + optional: true sass: optional: true + sass-embedded: + optional: true stylus: optional: true sugarss: optional: true terser: optional: true + tsx: + optional: true + yaml: + optional: true bin: vite: bin/vite.js - checksum: 50a9a1f2e29e0ee8fefdec60314d38fb9b746df0bb6ae5a8114014b5bfd95e0fc9b29c0d5e73939361ba53af7eb66c7d20c5656bbe53a783e96540bd3b907c47 + checksum: 3a9e36a00afe3f9bef81238370b824a56e44da78213ea7b4b9f47d50dd079c1eba20dd904e1c1bb686df052932444e20262fb386e714451fc50e4e3b02c067d4 languageName: node linkType: hard @@ -16026,7 +15780,7 @@ __metadata: languageName: node linkType: hard -"yargs@npm:17.7.2": +"yargs@npm:17.7.2, yargs@npm:^17.3.1, yargs@npm:^17.6.2": version: 17.7.2 resolution: "yargs@npm:17.7.2" dependencies: @@ -16056,21 +15810,6 @@ __metadata: languageName: node linkType: hard -"yargs@npm:^17.3.1, yargs@npm:^17.6.2": - version: 17.7.1 - resolution: "yargs@npm:17.7.1" - dependencies: - cliui: ^8.0.1 - escalade: ^3.1.1 - get-caller-file: ^2.0.5 - require-directory: ^2.1.1 - string-width: ^4.2.3 - y18n: ^5.0.5 - yargs-parser: ^21.1.1 - checksum: 3d8a43c336a4942bc68080768664aca85c7bd406f018bad362fd255c41c8f4e650277f42fd65d543fce99e084124ddafee7bbfc1a5c6a8fda4cec78609dcf8d4 - languageName: node - linkType: hard - "yocto-queue@npm:^0.1.0": version: 0.1.0 resolution: "yocto-queue@npm:0.1.0" From e4875c5a34db35097c34f5a407bba5bfaa497f7b Mon Sep 17 00:00:00 2001 From: Andrii Bodnar Date: Fri, 6 Dec 2024 12:51:31 +0200 Subject: [PATCH 12/24] ci: fix size testing failing (#2112) --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index a031253f1..846bc4285 100644 --- a/package.json +++ b/package.json @@ -99,7 +99,7 @@ { "path": "./packages/core/dist/index.mjs", "import": "{ i18n }", - "limit": "3 kB" + "limit": "3.2 kB" }, { "path": "./packages/detect-locale/dist/index.mjs", From e93b73d075165d91fa598fa0c579a8ceb5c86845 Mon Sep 17 00:00:00 2001 From: Andrii Bodnar Date: Fri, 6 Dec 2024 14:47:21 +0200 Subject: [PATCH 13/24] feat(react): add support for React 19 (#2111) --- packages/react/package.json | 2 +- yarn.lock | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/react/package.json b/packages/react/package.json index f1b97e564..67c50544c 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -79,7 +79,7 @@ "peerDependencies": { "@lingui/babel-plugin-lingui-macro": "5.0.0", "babel-plugin-macros": "2 || 3", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" }, "peerDependenciesMeta": { "@lingui/babel-plugin-lingui-macro": { diff --git a/yarn.lock b/yarn.lock index e78a277f2..2a6696fb7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3000,7 +3000,7 @@ __metadata: peerDependencies: "@lingui/babel-plugin-lingui-macro": 5.0.0 babel-plugin-macros: 2 || 3 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 peerDependenciesMeta: "@lingui/babel-plugin-lingui-macro": optional: true From 36d62524358d0790a0c716a368af4035674f4f9c Mon Sep 17 00:00:00 2001 From: Lingui Bot Date: Fri, 6 Dec 2024 14:07:02 +0000 Subject: [PATCH 14/24] chore(release): published v5.1.0 [skip ci] --- CHANGELOG.md | 7 ++ lerna.json | 13 +-- .../CHANGELOG.md | 4 + .../package.json | 2 +- .../babel-plugin-lingui-macro/CHANGELOG.md | 8 ++ .../babel-plugin-lingui-macro/package.json | 8 +- packages/cli/CHANGELOG.md | 4 + packages/cli/package.json | 14 ++-- packages/conf/CHANGELOG.md | 4 + packages/conf/package.json | 2 +- packages/core/CHANGELOG.md | 4 + packages/core/package.json | 4 +- packages/detect-locale/CHANGELOG.md | 4 + packages/detect-locale/package.json | 2 +- packages/extractor-vue/CHANGELOG.md | 4 + packages/extractor-vue/package.json | 8 +- packages/format-csv/CHANGELOG.md | 4 + packages/format-csv/package.json | 4 +- packages/format-json/CHANGELOG.md | 4 + packages/format-json/package.json | 4 +- packages/format-po-gettext/CHANGELOG.md | 4 + packages/format-po-gettext/package.json | 8 +- packages/format-po/CHANGELOG.md | 4 + packages/format-po/package.json | 6 +- packages/loader/CHANGELOG.md | 4 + packages/loader/package.json | 8 +- packages/macro/CHANGELOG.md | 4 + packages/macro/package.json | 6 +- packages/message-utils/CHANGELOG.md | 4 + packages/message-utils/package.json | 2 +- packages/metro-transformer/CHANGELOG.md | 4 + packages/metro-transformer/package.json | 8 +- packages/react/CHANGELOG.md | 6 ++ packages/react/package.json | 4 +- packages/vite-plugin/CHANGELOG.md | 6 ++ packages/vite-plugin/package.json | 6 +- yarn.lock | 80 +++++++++---------- 37 files changed, 175 insertions(+), 97 deletions(-) create mode 100644 packages/babel-plugin-lingui-macro/CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md index 57466502e..33eda0748 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,13 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [5.1.0](https://github.com/lingui/js-lingui/compare/v5.0.0...v5.1.0) (2024-12-06) + +### Features + +- **react:** add support for React 19 ([#2111](https://github.com/lingui/js-lingui/issues/2111)) ([e93b73d](https://github.com/lingui/js-lingui/commit/e93b73d075165d91fa598fa0c579a8ceb5c86845)) +- **vite-plugin:** add support for vite@6 ([#2108](https://github.com/lingui/js-lingui/issues/2108)) ([38a0c6f](https://github.com/lingui/js-lingui/commit/38a0c6f8b7f4d961f1580228310f4ebe959eb5a5)) + ## [5.0.0](https://github.com/lingui/js-lingui/compare/v4.14.1...v5.0.0) (2024-11-28) We are pleased to announce the release of Lingui 5.0! This release is a **major milestone** for the project and includes a number of new features, improvements and bug fixes. diff --git a/lerna.json b/lerna.json index 760802738..274536bf0 100644 --- a/lerna.json +++ b/lerna.json @@ -1,8 +1,6 @@ { - "version": "5.0.0", - "packages": [ - "packages/*" - ], + "version": "5.1.0", + "packages": ["packages/*"], "npmClient": "yarn", "command": { "version": { @@ -18,10 +16,7 @@ ] }, "publish": { - "allowBranch": [ - "main", - "next" - ], + "allowBranch": ["main", "next"], "ignoreChanges": [ "**/CHANGELOG.md", "**/examples/*", @@ -34,4 +29,4 @@ } }, "$schema": "node_modules/lerna/schemas/lerna-schema.json" -} \ No newline at end of file +} diff --git a/packages/babel-plugin-extract-messages/CHANGELOG.md b/packages/babel-plugin-extract-messages/CHANGELOG.md index 851432b93..5eff9587e 100644 --- a/packages/babel-plugin-extract-messages/CHANGELOG.md +++ b/packages/babel-plugin-extract-messages/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [5.1.0](https://github.com/lingui/js-lingui/compare/v5.0.0...v5.1.0) (2024-12-06) + +**Note:** Version bump only for package @lingui/babel-plugin-extract-messages + ## [4.14.1](https://github.com/lingui/js-lingui/compare/v4.14.0...v4.14.1) (2024-11-28) **Note:** Version bump only for package @lingui/babel-plugin-extract-messages diff --git a/packages/babel-plugin-extract-messages/package.json b/packages/babel-plugin-extract-messages/package.json index a64ede1bb..8f99b1f0b 100644 --- a/packages/babel-plugin-extract-messages/package.json +++ b/packages/babel-plugin-extract-messages/package.json @@ -1,6 +1,6 @@ { "name": "@lingui/babel-plugin-extract-messages", - "version": "5.0.0", + "version": "5.1.0", "description": "Babel plugin for collecting messages from source code for internationalization", "main": "./dist/index.cjs", "module": "./dist/index.mjs", diff --git a/packages/babel-plugin-lingui-macro/CHANGELOG.md b/packages/babel-plugin-lingui-macro/CHANGELOG.md new file mode 100644 index 000000000..e368639d9 --- /dev/null +++ b/packages/babel-plugin-lingui-macro/CHANGELOG.md @@ -0,0 +1,8 @@ +# Change Log + +All notable changes to this project will be documented in this file. +See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +# [5.1.0](https://github.com/lingui/js-lingui/compare/v5.0.0...v5.1.0) (2024-12-06) + +**Note:** Version bump only for package @lingui/babel-plugin-lingui-macro diff --git a/packages/babel-plugin-lingui-macro/package.json b/packages/babel-plugin-lingui-macro/package.json index 6140eb84c..24efe575c 100644 --- a/packages/babel-plugin-lingui-macro/package.json +++ b/packages/babel-plugin-lingui-macro/package.json @@ -1,6 +1,6 @@ { "name": "@lingui/babel-plugin-lingui-macro", - "version": "5.0.0", + "version": "5.1.0", "description": "Babel plugin for transforming Lingui Macros", "main": "./dist/index.cjs", "module": "./dist/index.mjs", @@ -84,9 +84,9 @@ "@babel/core": "^7.20.12", "@babel/runtime": "^7.20.13", "@babel/types": "^7.20.7", - "@lingui/conf": "5.0.0", - "@lingui/core": "5.0.0", - "@lingui/message-utils": "5.0.0" + "@lingui/conf": "5.1.0", + "@lingui/core": "5.1.0", + "@lingui/message-utils": "5.1.0" }, "peerDependencies": { "babel-plugin-macros": "2 || 3" diff --git a/packages/cli/CHANGELOG.md b/packages/cli/CHANGELOG.md index f08905b56..b23b02be6 100644 --- a/packages/cli/CHANGELOG.md +++ b/packages/cli/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [5.1.0](https://github.com/lingui/js-lingui/compare/v5.0.0...v5.1.0) (2024-12-06) + +**Note:** Version bump only for package @lingui/cli + ## [4.14.1](https://github.com/lingui/js-lingui/compare/v4.14.0...v4.14.1) (2024-11-28) ### Bug Fixes diff --git a/packages/cli/package.json b/packages/cli/package.json index 5fd5a00c3..e1b3ced66 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@lingui/cli", - "version": "5.0.0", + "version": "5.1.0", "description": "CLI for working wit message catalogs", "keywords": [ "cli", @@ -57,12 +57,12 @@ "@babel/parser": "^7.22.0", "@babel/runtime": "^7.21.0", "@babel/types": "^7.21.2", - "@lingui/babel-plugin-extract-messages": "5.0.0", - "@lingui/babel-plugin-lingui-macro": "5.0.0", - "@lingui/conf": "5.0.0", - "@lingui/core": "5.0.0", - "@lingui/format-po": "5.0.0", - "@lingui/message-utils": "5.0.0", + "@lingui/babel-plugin-extract-messages": "5.1.0", + "@lingui/babel-plugin-lingui-macro": "5.1.0", + "@lingui/conf": "5.1.0", + "@lingui/core": "5.1.0", + "@lingui/format-po": "5.1.0", + "@lingui/message-utils": "5.1.0", "babel-plugin-macros": "^3.0.1", "chalk": "^4.1.0", "chokidar": "3.5.1", diff --git a/packages/conf/CHANGELOG.md b/packages/conf/CHANGELOG.md index 2748570aa..950eb6b58 100644 --- a/packages/conf/CHANGELOG.md +++ b/packages/conf/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [5.1.0](https://github.com/lingui/js-lingui/compare/v5.0.0...v5.1.0) (2024-12-06) + +**Note:** Version bump only for package @lingui/conf + ## [4.14.1](https://github.com/lingui/js-lingui/compare/v4.14.0...v4.14.1) (2024-11-28) **Note:** Version bump only for package @lingui/conf diff --git a/packages/conf/package.json b/packages/conf/package.json index 34e4c4837..b5ab80f03 100644 --- a/packages/conf/package.json +++ b/packages/conf/package.json @@ -1,6 +1,6 @@ { "name": "@lingui/conf", - "version": "5.0.0", + "version": "5.1.0", "sideEffects": false, "description": "Get lingui configuration from package.json", "keywords": [ diff --git a/packages/core/CHANGELOG.md b/packages/core/CHANGELOG.md index 766f25bd0..c0e7adf62 100644 --- a/packages/core/CHANGELOG.md +++ b/packages/core/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [5.1.0](https://github.com/lingui/js-lingui/compare/v5.0.0...v5.1.0) (2024-12-06) + +**Note:** Version bump only for package @lingui/core + ## [4.14.1](https://github.com/lingui/js-lingui/compare/v4.14.0...v4.14.1) (2024-11-28) **Note:** Version bump only for package @lingui/core diff --git a/packages/core/package.json b/packages/core/package.json index 9567ab408..ecee4ddf1 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@lingui/core", - "version": "5.0.0", + "version": "5.1.0", "sideEffects": false, "description": "I18n tools for javascript", "main": "./dist/index.cjs", @@ -60,7 +60,7 @@ ], "dependencies": { "@babel/runtime": "^7.20.13", - "@lingui/message-utils": "5.0.0", + "@lingui/message-utils": "5.1.0", "unraw": "^3.0.0" }, "devDependencies": { diff --git a/packages/detect-locale/CHANGELOG.md b/packages/detect-locale/CHANGELOG.md index f5bea814b..0e42832ec 100644 --- a/packages/detect-locale/CHANGELOG.md +++ b/packages/detect-locale/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [5.1.0](https://github.com/lingui/js-lingui/compare/v5.0.0...v5.1.0) (2024-12-06) + +**Note:** Version bump only for package @lingui/detect-locale + ## [4.14.1](https://github.com/lingui/js-lingui/compare/v4.14.0...v4.14.1) (2024-11-28) **Note:** Version bump only for package @lingui/detect-locale diff --git a/packages/detect-locale/package.json b/packages/detect-locale/package.json index c4bed6e52..cc7e05e07 100644 --- a/packages/detect-locale/package.json +++ b/packages/detect-locale/package.json @@ -1,6 +1,6 @@ { "name": "@lingui/detect-locale", - "version": "5.0.0", + "version": "5.1.0", "sideEffects": false, "description": "@Lingui package to help you find the correct browser/server locale", "main": "./dist/index.cjs", diff --git a/packages/extractor-vue/CHANGELOG.md b/packages/extractor-vue/CHANGELOG.md index f230198ac..32154214e 100644 --- a/packages/extractor-vue/CHANGELOG.md +++ b/packages/extractor-vue/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [5.1.0](https://github.com/lingui/js-lingui/compare/v5.0.0...v5.1.0) (2024-12-06) + +**Note:** Version bump only for package @lingui/extractor-vue + ## [4.14.1](https://github.com/lingui/js-lingui/compare/v4.14.0...v4.14.1) (2024-11-28) **Note:** Version bump only for package @lingui/extractor-vue diff --git a/packages/extractor-vue/package.json b/packages/extractor-vue/package.json index c1dfc28ea..997b683a7 100644 --- a/packages/extractor-vue/package.json +++ b/packages/extractor-vue/package.json @@ -1,6 +1,6 @@ { "name": "@lingui/extractor-vue", - "version": "5.0.0", + "version": "5.1.0", "description": "Custom Vue.js extractor to be used with the CLI tool", "main": "./dist/index.cjs", "module": "./dist/index.mjs", @@ -38,12 +38,12 @@ "/dist" ], "dependencies": { - "@lingui/cli": "5.0.0", - "@lingui/conf": "5.0.0", + "@lingui/cli": "5.1.0", + "@lingui/conf": "5.1.0", "@vue/compiler-sfc": "^3.2.47" }, "devDependencies": { - "@lingui/babel-plugin-extract-messages": "5.0.0", + "@lingui/babel-plugin-extract-messages": "5.1.0", "unbuild": "2.0.0" } } diff --git a/packages/format-csv/CHANGELOG.md b/packages/format-csv/CHANGELOG.md index 02b8d0e76..684c579f4 100644 --- a/packages/format-csv/CHANGELOG.md +++ b/packages/format-csv/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [5.1.0](https://github.com/lingui/js-lingui/compare/v5.0.0...v5.1.0) (2024-12-06) + +**Note:** Version bump only for package @lingui/format-csv + ## [4.14.1](https://github.com/lingui/js-lingui/compare/v4.14.0...v4.14.1) (2024-11-28) **Note:** Version bump only for package @lingui/format-csv diff --git a/packages/format-csv/package.json b/packages/format-csv/package.json index ae61feace..be9de15d0 100644 --- a/packages/format-csv/package.json +++ b/packages/format-csv/package.json @@ -1,6 +1,6 @@ { "name": "@lingui/format-csv", - "version": "5.0.0", + "version": "5.1.0", "description": "CSV format for Lingui Catalogs", "main": "./dist/csv.cjs", "module": "./dist/csv.mjs", @@ -39,7 +39,7 @@ "dist/" ], "dependencies": { - "@lingui/conf": "5.0.0", + "@lingui/conf": "5.1.0", "papaparse": "^5.4.0" }, "devDependencies": { diff --git a/packages/format-json/CHANGELOG.md b/packages/format-json/CHANGELOG.md index c73f11f46..7a6b6a5bb 100644 --- a/packages/format-json/CHANGELOG.md +++ b/packages/format-json/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [5.1.0](https://github.com/lingui/js-lingui/compare/v5.0.0...v5.1.0) (2024-12-06) + +**Note:** Version bump only for package @lingui/format-json + ## [4.14.1](https://github.com/lingui/js-lingui/compare/v4.14.0...v4.14.1) (2024-11-28) **Note:** Version bump only for package @lingui/format-json diff --git a/packages/format-json/package.json b/packages/format-json/package.json index 1b1f0fdce..9641cada8 100644 --- a/packages/format-json/package.json +++ b/packages/format-json/package.json @@ -1,6 +1,6 @@ { "name": "@lingui/format-json", - "version": "5.0.0", + "version": "5.1.0", "description": "JSON format for Lingui Catalogs", "main": "./dist/json.cjs", "module": "./dist/json.mjs", @@ -39,7 +39,7 @@ "dist/" ], "dependencies": { - "@lingui/conf": "5.0.0", + "@lingui/conf": "5.1.0", "ramda": "^0.28.0" }, "devDependencies": { diff --git a/packages/format-po-gettext/CHANGELOG.md b/packages/format-po-gettext/CHANGELOG.md index 706f74ca1..bbe3a5476 100644 --- a/packages/format-po-gettext/CHANGELOG.md +++ b/packages/format-po-gettext/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [5.1.0](https://github.com/lingui/js-lingui/compare/v5.0.0...v5.1.0) (2024-12-06) + +**Note:** Version bump only for package @lingui/format-po-gettext + ## [4.14.1](https://github.com/lingui/js-lingui/compare/v4.14.0...v4.14.1) (2024-11-28) **Note:** Version bump only for package @lingui/format-po-gettext diff --git a/packages/format-po-gettext/package.json b/packages/format-po-gettext/package.json index c48dec6ee..0ac1716c3 100644 --- a/packages/format-po-gettext/package.json +++ b/packages/format-po-gettext/package.json @@ -1,6 +1,6 @@ { "name": "@lingui/format-po-gettext", - "version": "5.0.0", + "version": "5.1.0", "description": "Gettext PO format with gettext-style plurals for Lingui Catalogs", "main": "./dist/po-gettext.cjs", "module": "./dist/po-gettext.mjs", @@ -41,9 +41,9 @@ "dist/" ], "dependencies": { - "@lingui/conf": "5.0.0", - "@lingui/format-po": "5.0.0", - "@lingui/message-utils": "5.0.0", + "@lingui/conf": "5.1.0", + "@lingui/format-po": "5.1.0", + "@lingui/message-utils": "5.1.0", "@messageformat/parser": "^5.0.0", "cldr-core": "^45.0.0", "node-gettext": "^3.0.0", diff --git a/packages/format-po/CHANGELOG.md b/packages/format-po/CHANGELOG.md index a2891a447..8c6212390 100644 --- a/packages/format-po/CHANGELOG.md +++ b/packages/format-po/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [5.1.0](https://github.com/lingui/js-lingui/compare/v5.0.0...v5.1.0) (2024-12-06) + +**Note:** Version bump only for package @lingui/format-po + ## [4.14.1](https://github.com/lingui/js-lingui/compare/v4.14.0...v4.14.1) (2024-11-28) **Note:** Version bump only for package @lingui/format-po diff --git a/packages/format-po/package.json b/packages/format-po/package.json index d460b8efe..940134703 100644 --- a/packages/format-po/package.json +++ b/packages/format-po/package.json @@ -1,6 +1,6 @@ { "name": "@lingui/format-po", - "version": "5.0.0", + "version": "5.1.0", "description": "Gettext PO format for Lingui Catalogs", "main": "./dist/po.cjs", "module": "./dist/po.mjs", @@ -41,8 +41,8 @@ "dist/" ], "dependencies": { - "@lingui/conf": "5.0.0", - "@lingui/message-utils": "5.0.0", + "@lingui/conf": "5.1.0", + "@lingui/message-utils": "5.1.0", "date-fns": "^3.6.0", "pofile": "^1.1.4" }, diff --git a/packages/loader/CHANGELOG.md b/packages/loader/CHANGELOG.md index f5914183b..850ed3d16 100644 --- a/packages/loader/CHANGELOG.md +++ b/packages/loader/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [5.1.0](https://github.com/lingui/js-lingui/compare/v5.0.0...v5.1.0) (2024-12-06) + +**Note:** Version bump only for package @lingui/loader + ## [4.14.1](https://github.com/lingui/js-lingui/compare/v4.14.0...v4.14.1) (2024-11-28) **Note:** Version bump only for package @lingui/loader diff --git a/packages/loader/package.json b/packages/loader/package.json index ad8d9e0b4..4aa16c306 100644 --- a/packages/loader/package.json +++ b/packages/loader/package.json @@ -1,6 +1,6 @@ { "name": "@lingui/loader", - "version": "5.0.0", + "version": "5.1.0", "description": "webpack loader for lingui message catalogs", "types": "./dist/index.d.ts", "main": "./dist/index.cjs", @@ -43,11 +43,11 @@ ], "dependencies": { "@babel/runtime": "^7.20.13", - "@lingui/cli": "5.0.0", - "@lingui/conf": "5.0.0" + "@lingui/cli": "5.1.0", + "@lingui/conf": "5.1.0" }, "devDependencies": { - "@lingui/format-json": "5.0.0", + "@lingui/format-json": "5.1.0", "unbuild": "2.0.0", "webpack": "^5.76.1" }, diff --git a/packages/macro/CHANGELOG.md b/packages/macro/CHANGELOG.md index 01e20d9b8..78814a19a 100644 --- a/packages/macro/CHANGELOG.md +++ b/packages/macro/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [5.1.0](https://github.com/lingui/js-lingui/compare/v5.0.0...v5.1.0) (2024-12-06) + +**Note:** Version bump only for package @lingui/macro + ## [4.14.1](https://github.com/lingui/js-lingui/compare/v4.14.0...v4.14.1) (2024-11-28) **Note:** Version bump only for package @lingui/macro diff --git a/packages/macro/package.json b/packages/macro/package.json index 548760740..bcf54573a 100644 --- a/packages/macro/package.json +++ b/packages/macro/package.json @@ -1,6 +1,6 @@ { "name": "@lingui/macro", - "version": "5.0.0", + "version": "5.1.0", "description": "Macro for generating messages in ICU MessageFormat syntax", "main": "./index.js", "types": "./index.d.ts", @@ -47,8 +47,8 @@ "index.js" ], "dependencies": { - "@lingui/core": "5.0.0", - "@lingui/react": "5.0.0" + "@lingui/core": "5.1.0", + "@lingui/react": "5.1.0" }, "peerDependencies": { "@lingui/babel-plugin-lingui-macro": "4.11.2", diff --git a/packages/message-utils/CHANGELOG.md b/packages/message-utils/CHANGELOG.md index 14eb6b8fb..d42b720d8 100644 --- a/packages/message-utils/CHANGELOG.md +++ b/packages/message-utils/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [5.1.0](https://github.com/lingui/js-lingui/compare/v5.0.0...v5.1.0) (2024-12-06) + +**Note:** Version bump only for package @lingui/message-utils + ## [4.14.1](https://github.com/lingui/js-lingui/compare/v4.14.0...v4.14.1) (2024-11-28) **Note:** Version bump only for package @lingui/message-utils diff --git a/packages/message-utils/package.json b/packages/message-utils/package.json index 6e911684e..eaf9cf142 100644 --- a/packages/message-utils/package.json +++ b/packages/message-utils/package.json @@ -1,6 +1,6 @@ { "name": "@lingui/message-utils", - "version": "5.0.0", + "version": "5.1.0", "license": "MIT", "keywords": [], "sideEffects": false, diff --git a/packages/metro-transformer/CHANGELOG.md b/packages/metro-transformer/CHANGELOG.md index bff45f41f..2934cf828 100644 --- a/packages/metro-transformer/CHANGELOG.md +++ b/packages/metro-transformer/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [5.1.0](https://github.com/lingui/js-lingui/compare/v5.0.0...v5.1.0) (2024-12-06) + +**Note:** Version bump only for package @lingui/metro-transformer + ## [4.14.1](https://github.com/lingui/js-lingui/compare/v4.14.0...v4.14.1) (2024-11-28) **Note:** Version bump only for package @lingui/metro-transformer diff --git a/packages/metro-transformer/package.json b/packages/metro-transformer/package.json index 613a36d04..f247e5a8e 100644 --- a/packages/metro-transformer/package.json +++ b/packages/metro-transformer/package.json @@ -1,6 +1,6 @@ { "name": "@lingui/metro-transformer", - "version": "5.0.0", + "version": "5.1.0", "description": "Metro bundler transformer for LinguiJS catalogs", "exports": { "./expo": { @@ -56,12 +56,12 @@ ], "dependencies": { "@babel/runtime": "^7.20.13", - "@lingui/cli": "5.0.0", - "@lingui/conf": "5.0.0", + "@lingui/cli": "5.1.0", + "@lingui/conf": "5.1.0", "memoize-one": "^6.0.0" }, "devDependencies": { - "@lingui/format-json": "5.0.0", + "@lingui/format-json": "5.1.0", "rimraf": "^6.0.1", "unbuild": "2.0.0" }, diff --git a/packages/react/CHANGELOG.md b/packages/react/CHANGELOG.md index 40c051d26..e161aaf3f 100644 --- a/packages/react/CHANGELOG.md +++ b/packages/react/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [5.1.0](https://github.com/lingui/js-lingui/compare/v5.0.0...v5.1.0) (2024-12-06) + +### Features + +- **react:** add support for React 19 ([#2111](https://github.com/lingui/js-lingui/issues/2111)) ([e93b73d](https://github.com/lingui/js-lingui/commit/e93b73d075165d91fa598fa0c579a8ceb5c86845)) + ## [4.14.1](https://github.com/lingui/js-lingui/compare/v4.14.0...v4.14.1) (2024-11-28) **Note:** Version bump only for package @lingui/react diff --git a/packages/react/package.json b/packages/react/package.json index 67c50544c..b0c909f58 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -1,6 +1,6 @@ { "name": "@lingui/react", - "version": "5.0.0", + "version": "5.1.0", "sideEffects": false, "description": "React components for translations", "main": "./dist/index.cjs", @@ -91,7 +91,7 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@lingui/core": "5.0.0" + "@lingui/core": "5.1.0" }, "devDependencies": { "@lingui/jest-mocks": "*", diff --git a/packages/vite-plugin/CHANGELOG.md b/packages/vite-plugin/CHANGELOG.md index 06aa4ab52..bb1febb39 100644 --- a/packages/vite-plugin/CHANGELOG.md +++ b/packages/vite-plugin/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [5.1.0](https://github.com/lingui/js-lingui/compare/v5.0.0...v5.1.0) (2024-12-06) + +### Features + +- **vite-plugin:** add support for vite@6 ([#2108](https://github.com/lingui/js-lingui/issues/2108)) ([38a0c6f](https://github.com/lingui/js-lingui/commit/38a0c6f8b7f4d961f1580228310f4ebe959eb5a5)) + ## [4.14.1](https://github.com/lingui/js-lingui/compare/v4.14.0...v4.14.1) (2024-11-28) **Note:** Version bump only for package @lingui/vite-plugin diff --git a/packages/vite-plugin/package.json b/packages/vite-plugin/package.json index 34da460f0..d010874c5 100644 --- a/packages/vite-plugin/package.json +++ b/packages/vite-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@lingui/vite-plugin", - "version": "5.0.0", + "version": "5.1.0", "description": "Vite plugin for Lingui message catalogs", "main": "./dist/index.cjs", "module": "./dist/index.mjs", @@ -39,8 +39,8 @@ "dist/" ], "dependencies": { - "@lingui/cli": "5.0.0", - "@lingui/conf": "5.0.0" + "@lingui/cli": "5.1.0", + "@lingui/conf": "5.1.0" }, "peerDependencies": { "vite": "^3 || ^4 || ^5.0.9 || ^6" diff --git a/yarn.lock b/yarn.lock index 2a6696fb7..b161b7cec 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2692,7 +2692,7 @@ __metadata: languageName: node linkType: hard -"@lingui/babel-plugin-extract-messages@5.0.0, @lingui/babel-plugin-extract-messages@workspace:packages/babel-plugin-extract-messages": +"@lingui/babel-plugin-extract-messages@5.1.0, @lingui/babel-plugin-extract-messages@workspace:packages/babel-plugin-extract-messages": version: 0.0.0-use.local resolution: "@lingui/babel-plugin-extract-messages@workspace:packages/babel-plugin-extract-messages" dependencies: @@ -2705,7 +2705,7 @@ __metadata: languageName: unknown linkType: soft -"@lingui/babel-plugin-lingui-macro@5.0.0, @lingui/babel-plugin-lingui-macro@workspace:*, @lingui/babel-plugin-lingui-macro@workspace:packages/babel-plugin-lingui-macro": +"@lingui/babel-plugin-lingui-macro@5.1.0, @lingui/babel-plugin-lingui-macro@workspace:*, @lingui/babel-plugin-lingui-macro@workspace:packages/babel-plugin-lingui-macro": version: 0.0.0-use.local resolution: "@lingui/babel-plugin-lingui-macro@workspace:packages/babel-plugin-lingui-macro" dependencies: @@ -2714,9 +2714,9 @@ __metadata: "@babel/runtime": ^7.20.13 "@babel/traverse": ^7.20.12 "@babel/types": ^7.20.7 - "@lingui/conf": 5.0.0 - "@lingui/core": 5.0.0 - "@lingui/message-utils": 5.0.0 + "@lingui/conf": 5.1.0 + "@lingui/core": 5.1.0 + "@lingui/message-utils": 5.1.0 "@types/babel-plugin-macros": ^2.8.5 prettier: 2.8.3 unbuild: 2.0.0 @@ -2728,7 +2728,7 @@ __metadata: languageName: unknown linkType: soft -"@lingui/cli@5.0.0, @lingui/cli@workspace:*, @lingui/cli@workspace:packages/cli": +"@lingui/cli@5.1.0, @lingui/cli@workspace:*, @lingui/cli@workspace:packages/cli": version: 0.0.0-use.local resolution: "@lingui/cli@workspace:packages/cli" dependencies: @@ -2737,13 +2737,13 @@ __metadata: "@babel/parser": ^7.22.0 "@babel/runtime": ^7.21.0 "@babel/types": ^7.21.2 - "@lingui/babel-plugin-extract-messages": 5.0.0 - "@lingui/babel-plugin-lingui-macro": 5.0.0 - "@lingui/conf": 5.0.0 - "@lingui/core": 5.0.0 - "@lingui/format-po": 5.0.0 + "@lingui/babel-plugin-extract-messages": 5.1.0 + "@lingui/babel-plugin-lingui-macro": 5.1.0 + "@lingui/conf": 5.1.0 + "@lingui/core": 5.1.0 + "@lingui/format-po": 5.1.0 "@lingui/jest-mocks": "*" - "@lingui/message-utils": 5.0.0 + "@lingui/message-utils": 5.1.0 "@types/convert-source-map": ^2.0.0 "@types/micromatch": ^4.0.1 "@types/normalize-path": ^3.0.0 @@ -2773,7 +2773,7 @@ __metadata: languageName: unknown linkType: soft -"@lingui/conf@5.0.0, @lingui/conf@workspace:packages/conf": +"@lingui/conf@5.1.0, @lingui/conf@workspace:packages/conf": version: 0.0.0-use.local resolution: "@lingui/conf@workspace:packages/conf" dependencies: @@ -2789,13 +2789,13 @@ __metadata: languageName: unknown linkType: soft -"@lingui/core@5.0.0, @lingui/core@workspace:*, @lingui/core@workspace:^, @lingui/core@workspace:packages/core": +"@lingui/core@5.1.0, @lingui/core@workspace:*, @lingui/core@workspace:^, @lingui/core@workspace:packages/core": version: 0.0.0-use.local resolution: "@lingui/core@workspace:packages/core" dependencies: "@babel/runtime": ^7.20.13 "@lingui/jest-mocks": "*" - "@lingui/message-utils": 5.0.0 + "@lingui/message-utils": 5.1.0 tsd: ^0.26.1 unbuild: 2.0.0 unraw: ^3.0.0 @@ -2833,9 +2833,9 @@ __metadata: version: 0.0.0-use.local resolution: "@lingui/extractor-vue@workspace:packages/extractor-vue" dependencies: - "@lingui/babel-plugin-extract-messages": 5.0.0 - "@lingui/cli": 5.0.0 - "@lingui/conf": 5.0.0 + "@lingui/babel-plugin-extract-messages": 5.1.0 + "@lingui/cli": 5.1.0 + "@lingui/conf": 5.1.0 "@vue/compiler-sfc": ^3.2.47 unbuild: 2.0.0 languageName: unknown @@ -2845,18 +2845,18 @@ __metadata: version: 0.0.0-use.local resolution: "@lingui/format-csv@workspace:packages/format-csv" dependencies: - "@lingui/conf": 5.0.0 + "@lingui/conf": 5.1.0 papaparse: ^5.4.0 tsd: ^0.28.0 unbuild: 2.0.0 languageName: unknown linkType: soft -"@lingui/format-json@5.0.0, @lingui/format-json@workspace:^, @lingui/format-json@workspace:packages/format-json": +"@lingui/format-json@5.1.0, @lingui/format-json@workspace:^, @lingui/format-json@workspace:packages/format-json": version: 0.0.0-use.local resolution: "@lingui/format-json@workspace:packages/format-json" dependencies: - "@lingui/conf": 5.0.0 + "@lingui/conf": 5.1.0 ramda: ^0.28.0 tsd: ^0.28.0 unbuild: ^2.0.0 @@ -2867,10 +2867,10 @@ __metadata: version: 0.0.0-use.local resolution: "@lingui/format-po-gettext@workspace:packages/format-po-gettext" dependencies: - "@lingui/conf": 5.0.0 - "@lingui/format-po": 5.0.0 + "@lingui/conf": 5.1.0 + "@lingui/format-po": 5.1.0 "@lingui/jest-mocks": "workspace:^" - "@lingui/message-utils": 5.0.0 + "@lingui/message-utils": 5.1.0 "@messageformat/parser": ^5.0.0 cldr-core: ^45.0.0 mockdate: ^3.0.5 @@ -2882,13 +2882,13 @@ __metadata: languageName: unknown linkType: soft -"@lingui/format-po@5.0.0, @lingui/format-po@workspace:packages/format-po": +"@lingui/format-po@5.1.0, @lingui/format-po@workspace:packages/format-po": version: 0.0.0-use.local resolution: "@lingui/format-po@workspace:packages/format-po" dependencies: - "@lingui/conf": 5.0.0 + "@lingui/conf": 5.1.0 "@lingui/jest-mocks": "workspace:^" - "@lingui/message-utils": 5.0.0 + "@lingui/message-utils": 5.1.0 date-fns: ^3.6.0 mockdate: ^3.0.5 pofile: ^1.1.4 @@ -2908,9 +2908,9 @@ __metadata: resolution: "@lingui/loader@workspace:packages/loader" dependencies: "@babel/runtime": ^7.20.13 - "@lingui/cli": 5.0.0 - "@lingui/conf": 5.0.0 - "@lingui/format-json": 5.0.0 + "@lingui/cli": 5.1.0 + "@lingui/conf": 5.1.0 + "@lingui/format-json": 5.1.0 unbuild: 2.0.0 webpack: ^5.76.1 peerDependencies: @@ -2922,8 +2922,8 @@ __metadata: version: 0.0.0-use.local resolution: "@lingui/macro@workspace:packages/macro" dependencies: - "@lingui/core": 5.0.0 - "@lingui/react": 5.0.0 + "@lingui/core": 5.1.0 + "@lingui/react": 5.1.0 peerDependencies: "@lingui/babel-plugin-lingui-macro": 4.11.2 babel-plugin-macros: 2 || 3 @@ -2935,7 +2935,7 @@ __metadata: languageName: unknown linkType: soft -"@lingui/message-utils@5.0.0, @lingui/message-utils@workspace:packages/message-utils": +"@lingui/message-utils@5.1.0, @lingui/message-utils@workspace:packages/message-utils": version: 0.0.0-use.local resolution: "@lingui/message-utils@workspace:packages/message-utils" dependencies: @@ -2960,9 +2960,9 @@ __metadata: resolution: "@lingui/metro-transformer@workspace:packages/metro-transformer" dependencies: "@babel/runtime": ^7.20.13 - "@lingui/cli": 5.0.0 - "@lingui/conf": 5.0.0 - "@lingui/format-json": 5.0.0 + "@lingui/cli": 5.1.0 + "@lingui/conf": 5.1.0 + "@lingui/format-json": 5.1.0 memoize-one: ^6.0.0 rimraf: ^6.0.1 unbuild: 2.0.0 @@ -2982,12 +2982,12 @@ __metadata: languageName: unknown linkType: soft -"@lingui/react@5.0.0, @lingui/react@workspace:*, @lingui/react@workspace:packages/react": +"@lingui/react@5.1.0, @lingui/react@workspace:*, @lingui/react@workspace:packages/react": version: 0.0.0-use.local resolution: "@lingui/react@workspace:packages/react" dependencies: "@babel/runtime": ^7.20.13 - "@lingui/core": 5.0.0 + "@lingui/core": 5.1.0 "@lingui/jest-mocks": "*" "@testing-library/react": ^14.0.0 "@types/react": ^18.2.13 @@ -3024,8 +3024,8 @@ __metadata: version: 0.0.0-use.local resolution: "@lingui/vite-plugin@workspace:packages/vite-plugin" dependencies: - "@lingui/cli": 5.0.0 - "@lingui/conf": 5.0.0 + "@lingui/cli": 5.1.0 + "@lingui/conf": 5.1.0 "@lingui/core": "workspace:^" "@lingui/format-json": "workspace:^" unbuild: 2.0.0 From 9ffef7734497bd3c17575e02d86c572f45b3b931 Mon Sep 17 00:00:00 2001 From: Andrii Bodnar Date: Mon, 9 Dec 2024 10:54:10 +0200 Subject: [PATCH 15/24] build(deps): fix peerDependencies (#2115) --- packages/core/package.json | 2 +- packages/macro/package.json | 2 +- packages/react/package.json | 2 +- yarn.lock | 6 +++--- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/core/package.json b/packages/core/package.json index ecee4ddf1..8b6fa93da 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -69,7 +69,7 @@ "unbuild": "2.0.0" }, "peerDependencies": { - "@lingui/babel-plugin-lingui-macro": "5.0.0", + "@lingui/babel-plugin-lingui-macro": "5.1.0", "babel-plugin-macros": "2 || 3" }, "peerDependenciesMeta": { diff --git a/packages/macro/package.json b/packages/macro/package.json index bcf54573a..095808721 100644 --- a/packages/macro/package.json +++ b/packages/macro/package.json @@ -51,7 +51,7 @@ "@lingui/react": "5.1.0" }, "peerDependencies": { - "@lingui/babel-plugin-lingui-macro": "4.11.2", + "@lingui/babel-plugin-lingui-macro": "5.1.0", "babel-plugin-macros": "2 || 3" }, "peerDependenciesMeta": { diff --git a/packages/react/package.json b/packages/react/package.json index b0c909f58..bb4b77221 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -77,7 +77,7 @@ "macro/index.js" ], "peerDependencies": { - "@lingui/babel-plugin-lingui-macro": "5.0.0", + "@lingui/babel-plugin-lingui-macro": "5.1.0", "babel-plugin-macros": "2 || 3", "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" }, diff --git a/yarn.lock b/yarn.lock index b161b7cec..0908796a6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2800,7 +2800,7 @@ __metadata: unbuild: 2.0.0 unraw: ^3.0.0 peerDependencies: - "@lingui/babel-plugin-lingui-macro": 5.0.0 + "@lingui/babel-plugin-lingui-macro": 5.1.0 babel-plugin-macros: 2 || 3 peerDependenciesMeta: "@lingui/babel-plugin-lingui-macro": @@ -2925,7 +2925,7 @@ __metadata: "@lingui/core": 5.1.0 "@lingui/react": 5.1.0 peerDependencies: - "@lingui/babel-plugin-lingui-macro": 4.11.2 + "@lingui/babel-plugin-lingui-macro": 5.1.0 babel-plugin-macros: 2 || 3 peerDependenciesMeta: "@lingui/babel-plugin-lingui-macro": @@ -2998,7 +2998,7 @@ __metadata: tsd: ^0.26.1 unbuild: 2.0.0 peerDependencies: - "@lingui/babel-plugin-lingui-macro": 5.0.0 + "@lingui/babel-plugin-lingui-macro": 5.1.0 babel-plugin-macros: 2 || 3 react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 peerDependenciesMeta: From de0517677882f1900a052018e396b94f406963d6 Mon Sep 17 00:00:00 2001 From: Lingui Bot Date: Mon, 16 Dec 2024 08:53:06 +0000 Subject: [PATCH 16/24] chore(release): published v5.1.1 [skip ci] --- CHANGELOG.md | 4 + lerna.json | 2 +- .../CHANGELOG.md | 4 + .../package.json | 2 +- .../babel-plugin-lingui-macro/CHANGELOG.md | 4 + .../babel-plugin-lingui-macro/package.json | 8 +- packages/cli/CHANGELOG.md | 4 + packages/cli/package.json | 14 ++-- packages/conf/CHANGELOG.md | 4 + packages/conf/package.json | 2 +- packages/core/CHANGELOG.md | 4 + packages/core/package.json | 4 +- packages/detect-locale/CHANGELOG.md | 4 + packages/detect-locale/package.json | 2 +- packages/extractor-vue/CHANGELOG.md | 4 + packages/extractor-vue/package.json | 8 +- packages/format-csv/CHANGELOG.md | 4 + packages/format-csv/package.json | 4 +- packages/format-json/CHANGELOG.md | 4 + packages/format-json/package.json | 4 +- packages/format-po-gettext/CHANGELOG.md | 4 + packages/format-po-gettext/package.json | 8 +- packages/format-po/CHANGELOG.md | 4 + packages/format-po/package.json | 6 +- packages/loader/CHANGELOG.md | 4 + packages/loader/package.json | 8 +- packages/macro/CHANGELOG.md | 4 + packages/macro/package.json | 6 +- packages/message-utils/CHANGELOG.md | 4 + packages/message-utils/package.json | 2 +- packages/metro-transformer/CHANGELOG.md | 4 + packages/metro-transformer/package.json | 8 +- packages/react/CHANGELOG.md | 4 + packages/react/package.json | 4 +- packages/vite-plugin/CHANGELOG.md | 4 + packages/vite-plugin/package.json | 6 +- yarn.lock | 80 +++++++++---------- 37 files changed, 161 insertions(+), 89 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 33eda0748..44becc225 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [5.1.1](https://github.com/lingui/js-lingui/compare/v5.1.0...v5.1.1) (2024-12-16) + +**Note:** Version bump only for package js-lingui-workspaces + # [5.1.0](https://github.com/lingui/js-lingui/compare/v5.0.0...v5.1.0) (2024-12-06) ### Features diff --git a/lerna.json b/lerna.json index 274536bf0..5c7e3d9d0 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "5.1.0", + "version": "5.1.1", "packages": ["packages/*"], "npmClient": "yarn", "command": { diff --git a/packages/babel-plugin-extract-messages/CHANGELOG.md b/packages/babel-plugin-extract-messages/CHANGELOG.md index 5eff9587e..637c8ad5a 100644 --- a/packages/babel-plugin-extract-messages/CHANGELOG.md +++ b/packages/babel-plugin-extract-messages/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [5.1.1](https://github.com/lingui/js-lingui/compare/v5.1.0...v5.1.1) (2024-12-16) + +**Note:** Version bump only for package @lingui/babel-plugin-extract-messages + # [5.1.0](https://github.com/lingui/js-lingui/compare/v5.0.0...v5.1.0) (2024-12-06) **Note:** Version bump only for package @lingui/babel-plugin-extract-messages diff --git a/packages/babel-plugin-extract-messages/package.json b/packages/babel-plugin-extract-messages/package.json index 8f99b1f0b..01a3c1e9c 100644 --- a/packages/babel-plugin-extract-messages/package.json +++ b/packages/babel-plugin-extract-messages/package.json @@ -1,6 +1,6 @@ { "name": "@lingui/babel-plugin-extract-messages", - "version": "5.1.0", + "version": "5.1.1", "description": "Babel plugin for collecting messages from source code for internationalization", "main": "./dist/index.cjs", "module": "./dist/index.mjs", diff --git a/packages/babel-plugin-lingui-macro/CHANGELOG.md b/packages/babel-plugin-lingui-macro/CHANGELOG.md index e368639d9..02161e44f 100644 --- a/packages/babel-plugin-lingui-macro/CHANGELOG.md +++ b/packages/babel-plugin-lingui-macro/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [5.1.1](https://github.com/lingui/js-lingui/compare/v5.1.0...v5.1.1) (2024-12-16) + +**Note:** Version bump only for package @lingui/babel-plugin-lingui-macro + # [5.1.0](https://github.com/lingui/js-lingui/compare/v5.0.0...v5.1.0) (2024-12-06) **Note:** Version bump only for package @lingui/babel-plugin-lingui-macro diff --git a/packages/babel-plugin-lingui-macro/package.json b/packages/babel-plugin-lingui-macro/package.json index 24efe575c..2920b00de 100644 --- a/packages/babel-plugin-lingui-macro/package.json +++ b/packages/babel-plugin-lingui-macro/package.json @@ -1,6 +1,6 @@ { "name": "@lingui/babel-plugin-lingui-macro", - "version": "5.1.0", + "version": "5.1.1", "description": "Babel plugin for transforming Lingui Macros", "main": "./dist/index.cjs", "module": "./dist/index.mjs", @@ -84,9 +84,9 @@ "@babel/core": "^7.20.12", "@babel/runtime": "^7.20.13", "@babel/types": "^7.20.7", - "@lingui/conf": "5.1.0", - "@lingui/core": "5.1.0", - "@lingui/message-utils": "5.1.0" + "@lingui/conf": "5.1.1", + "@lingui/core": "5.1.1", + "@lingui/message-utils": "5.1.1" }, "peerDependencies": { "babel-plugin-macros": "2 || 3" diff --git a/packages/cli/CHANGELOG.md b/packages/cli/CHANGELOG.md index b23b02be6..248af920d 100644 --- a/packages/cli/CHANGELOG.md +++ b/packages/cli/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [5.1.1](https://github.com/lingui/js-lingui/compare/v5.1.0...v5.1.1) (2024-12-16) + +**Note:** Version bump only for package @lingui/cli + # [5.1.0](https://github.com/lingui/js-lingui/compare/v5.0.0...v5.1.0) (2024-12-06) **Note:** Version bump only for package @lingui/cli diff --git a/packages/cli/package.json b/packages/cli/package.json index e1b3ced66..663e5539b 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@lingui/cli", - "version": "5.1.0", + "version": "5.1.1", "description": "CLI for working wit message catalogs", "keywords": [ "cli", @@ -57,12 +57,12 @@ "@babel/parser": "^7.22.0", "@babel/runtime": "^7.21.0", "@babel/types": "^7.21.2", - "@lingui/babel-plugin-extract-messages": "5.1.0", - "@lingui/babel-plugin-lingui-macro": "5.1.0", - "@lingui/conf": "5.1.0", - "@lingui/core": "5.1.0", - "@lingui/format-po": "5.1.0", - "@lingui/message-utils": "5.1.0", + "@lingui/babel-plugin-extract-messages": "5.1.1", + "@lingui/babel-plugin-lingui-macro": "5.1.1", + "@lingui/conf": "5.1.1", + "@lingui/core": "5.1.1", + "@lingui/format-po": "5.1.1", + "@lingui/message-utils": "5.1.1", "babel-plugin-macros": "^3.0.1", "chalk": "^4.1.0", "chokidar": "3.5.1", diff --git a/packages/conf/CHANGELOG.md b/packages/conf/CHANGELOG.md index 950eb6b58..ab40e86ab 100644 --- a/packages/conf/CHANGELOG.md +++ b/packages/conf/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [5.1.1](https://github.com/lingui/js-lingui/compare/v5.1.0...v5.1.1) (2024-12-16) + +**Note:** Version bump only for package @lingui/conf + # [5.1.0](https://github.com/lingui/js-lingui/compare/v5.0.0...v5.1.0) (2024-12-06) **Note:** Version bump only for package @lingui/conf diff --git a/packages/conf/package.json b/packages/conf/package.json index b5ab80f03..2e093a365 100644 --- a/packages/conf/package.json +++ b/packages/conf/package.json @@ -1,6 +1,6 @@ { "name": "@lingui/conf", - "version": "5.1.0", + "version": "5.1.1", "sideEffects": false, "description": "Get lingui configuration from package.json", "keywords": [ diff --git a/packages/core/CHANGELOG.md b/packages/core/CHANGELOG.md index c0e7adf62..38fa8d5f0 100644 --- a/packages/core/CHANGELOG.md +++ b/packages/core/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [5.1.1](https://github.com/lingui/js-lingui/compare/v5.1.0...v5.1.1) (2024-12-16) + +**Note:** Version bump only for package @lingui/core + # [5.1.0](https://github.com/lingui/js-lingui/compare/v5.0.0...v5.1.0) (2024-12-06) **Note:** Version bump only for package @lingui/core diff --git a/packages/core/package.json b/packages/core/package.json index 8b6fa93da..148c43155 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@lingui/core", - "version": "5.1.0", + "version": "5.1.1", "sideEffects": false, "description": "I18n tools for javascript", "main": "./dist/index.cjs", @@ -60,7 +60,7 @@ ], "dependencies": { "@babel/runtime": "^7.20.13", - "@lingui/message-utils": "5.1.0", + "@lingui/message-utils": "5.1.1", "unraw": "^3.0.0" }, "devDependencies": { diff --git a/packages/detect-locale/CHANGELOG.md b/packages/detect-locale/CHANGELOG.md index 0e42832ec..fba2315df 100644 --- a/packages/detect-locale/CHANGELOG.md +++ b/packages/detect-locale/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [5.1.1](https://github.com/lingui/js-lingui/compare/v5.1.0...v5.1.1) (2024-12-16) + +**Note:** Version bump only for package @lingui/detect-locale + # [5.1.0](https://github.com/lingui/js-lingui/compare/v5.0.0...v5.1.0) (2024-12-06) **Note:** Version bump only for package @lingui/detect-locale diff --git a/packages/detect-locale/package.json b/packages/detect-locale/package.json index cc7e05e07..2e7a4e0be 100644 --- a/packages/detect-locale/package.json +++ b/packages/detect-locale/package.json @@ -1,6 +1,6 @@ { "name": "@lingui/detect-locale", - "version": "5.1.0", + "version": "5.1.1", "sideEffects": false, "description": "@Lingui package to help you find the correct browser/server locale", "main": "./dist/index.cjs", diff --git a/packages/extractor-vue/CHANGELOG.md b/packages/extractor-vue/CHANGELOG.md index 32154214e..0f9111ac5 100644 --- a/packages/extractor-vue/CHANGELOG.md +++ b/packages/extractor-vue/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [5.1.1](https://github.com/lingui/js-lingui/compare/v5.1.0...v5.1.1) (2024-12-16) + +**Note:** Version bump only for package @lingui/extractor-vue + # [5.1.0](https://github.com/lingui/js-lingui/compare/v5.0.0...v5.1.0) (2024-12-06) **Note:** Version bump only for package @lingui/extractor-vue diff --git a/packages/extractor-vue/package.json b/packages/extractor-vue/package.json index 997b683a7..50b762679 100644 --- a/packages/extractor-vue/package.json +++ b/packages/extractor-vue/package.json @@ -1,6 +1,6 @@ { "name": "@lingui/extractor-vue", - "version": "5.1.0", + "version": "5.1.1", "description": "Custom Vue.js extractor to be used with the CLI tool", "main": "./dist/index.cjs", "module": "./dist/index.mjs", @@ -38,12 +38,12 @@ "/dist" ], "dependencies": { - "@lingui/cli": "5.1.0", - "@lingui/conf": "5.1.0", + "@lingui/cli": "5.1.1", + "@lingui/conf": "5.1.1", "@vue/compiler-sfc": "^3.2.47" }, "devDependencies": { - "@lingui/babel-plugin-extract-messages": "5.1.0", + "@lingui/babel-plugin-extract-messages": "5.1.1", "unbuild": "2.0.0" } } diff --git a/packages/format-csv/CHANGELOG.md b/packages/format-csv/CHANGELOG.md index 684c579f4..38cfd000f 100644 --- a/packages/format-csv/CHANGELOG.md +++ b/packages/format-csv/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [5.1.1](https://github.com/lingui/js-lingui/compare/v5.1.0...v5.1.1) (2024-12-16) + +**Note:** Version bump only for package @lingui/format-csv + # [5.1.0](https://github.com/lingui/js-lingui/compare/v5.0.0...v5.1.0) (2024-12-06) **Note:** Version bump only for package @lingui/format-csv diff --git a/packages/format-csv/package.json b/packages/format-csv/package.json index be9de15d0..39148aae7 100644 --- a/packages/format-csv/package.json +++ b/packages/format-csv/package.json @@ -1,6 +1,6 @@ { "name": "@lingui/format-csv", - "version": "5.1.0", + "version": "5.1.1", "description": "CSV format for Lingui Catalogs", "main": "./dist/csv.cjs", "module": "./dist/csv.mjs", @@ -39,7 +39,7 @@ "dist/" ], "dependencies": { - "@lingui/conf": "5.1.0", + "@lingui/conf": "5.1.1", "papaparse": "^5.4.0" }, "devDependencies": { diff --git a/packages/format-json/CHANGELOG.md b/packages/format-json/CHANGELOG.md index 7a6b6a5bb..db6eef3b8 100644 --- a/packages/format-json/CHANGELOG.md +++ b/packages/format-json/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [5.1.1](https://github.com/lingui/js-lingui/compare/v5.1.0...v5.1.1) (2024-12-16) + +**Note:** Version bump only for package @lingui/format-json + # [5.1.0](https://github.com/lingui/js-lingui/compare/v5.0.0...v5.1.0) (2024-12-06) **Note:** Version bump only for package @lingui/format-json diff --git a/packages/format-json/package.json b/packages/format-json/package.json index 9641cada8..0da665641 100644 --- a/packages/format-json/package.json +++ b/packages/format-json/package.json @@ -1,6 +1,6 @@ { "name": "@lingui/format-json", - "version": "5.1.0", + "version": "5.1.1", "description": "JSON format for Lingui Catalogs", "main": "./dist/json.cjs", "module": "./dist/json.mjs", @@ -39,7 +39,7 @@ "dist/" ], "dependencies": { - "@lingui/conf": "5.1.0", + "@lingui/conf": "5.1.1", "ramda": "^0.28.0" }, "devDependencies": { diff --git a/packages/format-po-gettext/CHANGELOG.md b/packages/format-po-gettext/CHANGELOG.md index bbe3a5476..652c7f922 100644 --- a/packages/format-po-gettext/CHANGELOG.md +++ b/packages/format-po-gettext/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [5.1.1](https://github.com/lingui/js-lingui/compare/v5.1.0...v5.1.1) (2024-12-16) + +**Note:** Version bump only for package @lingui/format-po-gettext + # [5.1.0](https://github.com/lingui/js-lingui/compare/v5.0.0...v5.1.0) (2024-12-06) **Note:** Version bump only for package @lingui/format-po-gettext diff --git a/packages/format-po-gettext/package.json b/packages/format-po-gettext/package.json index 0ac1716c3..41cef0c4f 100644 --- a/packages/format-po-gettext/package.json +++ b/packages/format-po-gettext/package.json @@ -1,6 +1,6 @@ { "name": "@lingui/format-po-gettext", - "version": "5.1.0", + "version": "5.1.1", "description": "Gettext PO format with gettext-style plurals for Lingui Catalogs", "main": "./dist/po-gettext.cjs", "module": "./dist/po-gettext.mjs", @@ -41,9 +41,9 @@ "dist/" ], "dependencies": { - "@lingui/conf": "5.1.0", - "@lingui/format-po": "5.1.0", - "@lingui/message-utils": "5.1.0", + "@lingui/conf": "5.1.1", + "@lingui/format-po": "5.1.1", + "@lingui/message-utils": "5.1.1", "@messageformat/parser": "^5.0.0", "cldr-core": "^45.0.0", "node-gettext": "^3.0.0", diff --git a/packages/format-po/CHANGELOG.md b/packages/format-po/CHANGELOG.md index 8c6212390..ee9c103f5 100644 --- a/packages/format-po/CHANGELOG.md +++ b/packages/format-po/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [5.1.1](https://github.com/lingui/js-lingui/compare/v5.1.0...v5.1.1) (2024-12-16) + +**Note:** Version bump only for package @lingui/format-po + # [5.1.0](https://github.com/lingui/js-lingui/compare/v5.0.0...v5.1.0) (2024-12-06) **Note:** Version bump only for package @lingui/format-po diff --git a/packages/format-po/package.json b/packages/format-po/package.json index 940134703..01323097b 100644 --- a/packages/format-po/package.json +++ b/packages/format-po/package.json @@ -1,6 +1,6 @@ { "name": "@lingui/format-po", - "version": "5.1.0", + "version": "5.1.1", "description": "Gettext PO format for Lingui Catalogs", "main": "./dist/po.cjs", "module": "./dist/po.mjs", @@ -41,8 +41,8 @@ "dist/" ], "dependencies": { - "@lingui/conf": "5.1.0", - "@lingui/message-utils": "5.1.0", + "@lingui/conf": "5.1.1", + "@lingui/message-utils": "5.1.1", "date-fns": "^3.6.0", "pofile": "^1.1.4" }, diff --git a/packages/loader/CHANGELOG.md b/packages/loader/CHANGELOG.md index 850ed3d16..e05a7903f 100644 --- a/packages/loader/CHANGELOG.md +++ b/packages/loader/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [5.1.1](https://github.com/lingui/js-lingui/compare/v5.1.0...v5.1.1) (2024-12-16) + +**Note:** Version bump only for package @lingui/loader + # [5.1.0](https://github.com/lingui/js-lingui/compare/v5.0.0...v5.1.0) (2024-12-06) **Note:** Version bump only for package @lingui/loader diff --git a/packages/loader/package.json b/packages/loader/package.json index 4aa16c306..e3e549207 100644 --- a/packages/loader/package.json +++ b/packages/loader/package.json @@ -1,6 +1,6 @@ { "name": "@lingui/loader", - "version": "5.1.0", + "version": "5.1.1", "description": "webpack loader for lingui message catalogs", "types": "./dist/index.d.ts", "main": "./dist/index.cjs", @@ -43,11 +43,11 @@ ], "dependencies": { "@babel/runtime": "^7.20.13", - "@lingui/cli": "5.1.0", - "@lingui/conf": "5.1.0" + "@lingui/cli": "5.1.1", + "@lingui/conf": "5.1.1" }, "devDependencies": { - "@lingui/format-json": "5.1.0", + "@lingui/format-json": "5.1.1", "unbuild": "2.0.0", "webpack": "^5.76.1" }, diff --git a/packages/macro/CHANGELOG.md b/packages/macro/CHANGELOG.md index 78814a19a..7f5838366 100644 --- a/packages/macro/CHANGELOG.md +++ b/packages/macro/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [5.1.1](https://github.com/lingui/js-lingui/compare/v5.1.0...v5.1.1) (2024-12-16) + +**Note:** Version bump only for package @lingui/macro + # [5.1.0](https://github.com/lingui/js-lingui/compare/v5.0.0...v5.1.0) (2024-12-06) **Note:** Version bump only for package @lingui/macro diff --git a/packages/macro/package.json b/packages/macro/package.json index 095808721..6abf5a23d 100644 --- a/packages/macro/package.json +++ b/packages/macro/package.json @@ -1,6 +1,6 @@ { "name": "@lingui/macro", - "version": "5.1.0", + "version": "5.1.1", "description": "Macro for generating messages in ICU MessageFormat syntax", "main": "./index.js", "types": "./index.d.ts", @@ -47,8 +47,8 @@ "index.js" ], "dependencies": { - "@lingui/core": "5.1.0", - "@lingui/react": "5.1.0" + "@lingui/core": "5.1.1", + "@lingui/react": "5.1.1" }, "peerDependencies": { "@lingui/babel-plugin-lingui-macro": "5.1.0", diff --git a/packages/message-utils/CHANGELOG.md b/packages/message-utils/CHANGELOG.md index d42b720d8..adb0e7505 100644 --- a/packages/message-utils/CHANGELOG.md +++ b/packages/message-utils/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [5.1.1](https://github.com/lingui/js-lingui/compare/v5.1.0...v5.1.1) (2024-12-16) + +**Note:** Version bump only for package @lingui/message-utils + # [5.1.0](https://github.com/lingui/js-lingui/compare/v5.0.0...v5.1.0) (2024-12-06) **Note:** Version bump only for package @lingui/message-utils diff --git a/packages/message-utils/package.json b/packages/message-utils/package.json index eaf9cf142..935f69e5f 100644 --- a/packages/message-utils/package.json +++ b/packages/message-utils/package.json @@ -1,6 +1,6 @@ { "name": "@lingui/message-utils", - "version": "5.1.0", + "version": "5.1.1", "license": "MIT", "keywords": [], "sideEffects": false, diff --git a/packages/metro-transformer/CHANGELOG.md b/packages/metro-transformer/CHANGELOG.md index 2934cf828..c9e02c701 100644 --- a/packages/metro-transformer/CHANGELOG.md +++ b/packages/metro-transformer/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [5.1.1](https://github.com/lingui/js-lingui/compare/v5.1.0...v5.1.1) (2024-12-16) + +**Note:** Version bump only for package @lingui/metro-transformer + # [5.1.0](https://github.com/lingui/js-lingui/compare/v5.0.0...v5.1.0) (2024-12-06) **Note:** Version bump only for package @lingui/metro-transformer diff --git a/packages/metro-transformer/package.json b/packages/metro-transformer/package.json index f247e5a8e..9ef2c6d3b 100644 --- a/packages/metro-transformer/package.json +++ b/packages/metro-transformer/package.json @@ -1,6 +1,6 @@ { "name": "@lingui/metro-transformer", - "version": "5.1.0", + "version": "5.1.1", "description": "Metro bundler transformer for LinguiJS catalogs", "exports": { "./expo": { @@ -56,12 +56,12 @@ ], "dependencies": { "@babel/runtime": "^7.20.13", - "@lingui/cli": "5.1.0", - "@lingui/conf": "5.1.0", + "@lingui/cli": "5.1.1", + "@lingui/conf": "5.1.1", "memoize-one": "^6.0.0" }, "devDependencies": { - "@lingui/format-json": "5.1.0", + "@lingui/format-json": "5.1.1", "rimraf": "^6.0.1", "unbuild": "2.0.0" }, diff --git a/packages/react/CHANGELOG.md b/packages/react/CHANGELOG.md index e161aaf3f..5ad8afadd 100644 --- a/packages/react/CHANGELOG.md +++ b/packages/react/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [5.1.1](https://github.com/lingui/js-lingui/compare/v5.1.0...v5.1.1) (2024-12-16) + +**Note:** Version bump only for package @lingui/react + # [5.1.0](https://github.com/lingui/js-lingui/compare/v5.0.0...v5.1.0) (2024-12-06) ### Features diff --git a/packages/react/package.json b/packages/react/package.json index bb4b77221..6f73e0267 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -1,6 +1,6 @@ { "name": "@lingui/react", - "version": "5.1.0", + "version": "5.1.1", "sideEffects": false, "description": "React components for translations", "main": "./dist/index.cjs", @@ -91,7 +91,7 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@lingui/core": "5.1.0" + "@lingui/core": "5.1.1" }, "devDependencies": { "@lingui/jest-mocks": "*", diff --git a/packages/vite-plugin/CHANGELOG.md b/packages/vite-plugin/CHANGELOG.md index bb1febb39..8d70ca51f 100644 --- a/packages/vite-plugin/CHANGELOG.md +++ b/packages/vite-plugin/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [5.1.1](https://github.com/lingui/js-lingui/compare/v5.1.0...v5.1.1) (2024-12-16) + +**Note:** Version bump only for package @lingui/vite-plugin + # [5.1.0](https://github.com/lingui/js-lingui/compare/v5.0.0...v5.1.0) (2024-12-06) ### Features diff --git a/packages/vite-plugin/package.json b/packages/vite-plugin/package.json index d010874c5..4eda7a9c9 100644 --- a/packages/vite-plugin/package.json +++ b/packages/vite-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@lingui/vite-plugin", - "version": "5.1.0", + "version": "5.1.1", "description": "Vite plugin for Lingui message catalogs", "main": "./dist/index.cjs", "module": "./dist/index.mjs", @@ -39,8 +39,8 @@ "dist/" ], "dependencies": { - "@lingui/cli": "5.1.0", - "@lingui/conf": "5.1.0" + "@lingui/cli": "5.1.1", + "@lingui/conf": "5.1.1" }, "peerDependencies": { "vite": "^3 || ^4 || ^5.0.9 || ^6" diff --git a/yarn.lock b/yarn.lock index 0908796a6..772462309 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2692,7 +2692,7 @@ __metadata: languageName: node linkType: hard -"@lingui/babel-plugin-extract-messages@5.1.0, @lingui/babel-plugin-extract-messages@workspace:packages/babel-plugin-extract-messages": +"@lingui/babel-plugin-extract-messages@5.1.1, @lingui/babel-plugin-extract-messages@workspace:packages/babel-plugin-extract-messages": version: 0.0.0-use.local resolution: "@lingui/babel-plugin-extract-messages@workspace:packages/babel-plugin-extract-messages" dependencies: @@ -2705,7 +2705,7 @@ __metadata: languageName: unknown linkType: soft -"@lingui/babel-plugin-lingui-macro@5.1.0, @lingui/babel-plugin-lingui-macro@workspace:*, @lingui/babel-plugin-lingui-macro@workspace:packages/babel-plugin-lingui-macro": +"@lingui/babel-plugin-lingui-macro@5.1.1, @lingui/babel-plugin-lingui-macro@workspace:*, @lingui/babel-plugin-lingui-macro@workspace:packages/babel-plugin-lingui-macro": version: 0.0.0-use.local resolution: "@lingui/babel-plugin-lingui-macro@workspace:packages/babel-plugin-lingui-macro" dependencies: @@ -2714,9 +2714,9 @@ __metadata: "@babel/runtime": ^7.20.13 "@babel/traverse": ^7.20.12 "@babel/types": ^7.20.7 - "@lingui/conf": 5.1.0 - "@lingui/core": 5.1.0 - "@lingui/message-utils": 5.1.0 + "@lingui/conf": 5.1.1 + "@lingui/core": 5.1.1 + "@lingui/message-utils": 5.1.1 "@types/babel-plugin-macros": ^2.8.5 prettier: 2.8.3 unbuild: 2.0.0 @@ -2728,7 +2728,7 @@ __metadata: languageName: unknown linkType: soft -"@lingui/cli@5.1.0, @lingui/cli@workspace:*, @lingui/cli@workspace:packages/cli": +"@lingui/cli@5.1.1, @lingui/cli@workspace:*, @lingui/cli@workspace:packages/cli": version: 0.0.0-use.local resolution: "@lingui/cli@workspace:packages/cli" dependencies: @@ -2737,13 +2737,13 @@ __metadata: "@babel/parser": ^7.22.0 "@babel/runtime": ^7.21.0 "@babel/types": ^7.21.2 - "@lingui/babel-plugin-extract-messages": 5.1.0 - "@lingui/babel-plugin-lingui-macro": 5.1.0 - "@lingui/conf": 5.1.0 - "@lingui/core": 5.1.0 - "@lingui/format-po": 5.1.0 + "@lingui/babel-plugin-extract-messages": 5.1.1 + "@lingui/babel-plugin-lingui-macro": 5.1.1 + "@lingui/conf": 5.1.1 + "@lingui/core": 5.1.1 + "@lingui/format-po": 5.1.1 "@lingui/jest-mocks": "*" - "@lingui/message-utils": 5.1.0 + "@lingui/message-utils": 5.1.1 "@types/convert-source-map": ^2.0.0 "@types/micromatch": ^4.0.1 "@types/normalize-path": ^3.0.0 @@ -2773,7 +2773,7 @@ __metadata: languageName: unknown linkType: soft -"@lingui/conf@5.1.0, @lingui/conf@workspace:packages/conf": +"@lingui/conf@5.1.1, @lingui/conf@workspace:packages/conf": version: 0.0.0-use.local resolution: "@lingui/conf@workspace:packages/conf" dependencies: @@ -2789,13 +2789,13 @@ __metadata: languageName: unknown linkType: soft -"@lingui/core@5.1.0, @lingui/core@workspace:*, @lingui/core@workspace:^, @lingui/core@workspace:packages/core": +"@lingui/core@5.1.1, @lingui/core@workspace:*, @lingui/core@workspace:^, @lingui/core@workspace:packages/core": version: 0.0.0-use.local resolution: "@lingui/core@workspace:packages/core" dependencies: "@babel/runtime": ^7.20.13 "@lingui/jest-mocks": "*" - "@lingui/message-utils": 5.1.0 + "@lingui/message-utils": 5.1.1 tsd: ^0.26.1 unbuild: 2.0.0 unraw: ^3.0.0 @@ -2833,9 +2833,9 @@ __metadata: version: 0.0.0-use.local resolution: "@lingui/extractor-vue@workspace:packages/extractor-vue" dependencies: - "@lingui/babel-plugin-extract-messages": 5.1.0 - "@lingui/cli": 5.1.0 - "@lingui/conf": 5.1.0 + "@lingui/babel-plugin-extract-messages": 5.1.1 + "@lingui/cli": 5.1.1 + "@lingui/conf": 5.1.1 "@vue/compiler-sfc": ^3.2.47 unbuild: 2.0.0 languageName: unknown @@ -2845,18 +2845,18 @@ __metadata: version: 0.0.0-use.local resolution: "@lingui/format-csv@workspace:packages/format-csv" dependencies: - "@lingui/conf": 5.1.0 + "@lingui/conf": 5.1.1 papaparse: ^5.4.0 tsd: ^0.28.0 unbuild: 2.0.0 languageName: unknown linkType: soft -"@lingui/format-json@5.1.0, @lingui/format-json@workspace:^, @lingui/format-json@workspace:packages/format-json": +"@lingui/format-json@5.1.1, @lingui/format-json@workspace:^, @lingui/format-json@workspace:packages/format-json": version: 0.0.0-use.local resolution: "@lingui/format-json@workspace:packages/format-json" dependencies: - "@lingui/conf": 5.1.0 + "@lingui/conf": 5.1.1 ramda: ^0.28.0 tsd: ^0.28.0 unbuild: ^2.0.0 @@ -2867,10 +2867,10 @@ __metadata: version: 0.0.0-use.local resolution: "@lingui/format-po-gettext@workspace:packages/format-po-gettext" dependencies: - "@lingui/conf": 5.1.0 - "@lingui/format-po": 5.1.0 + "@lingui/conf": 5.1.1 + "@lingui/format-po": 5.1.1 "@lingui/jest-mocks": "workspace:^" - "@lingui/message-utils": 5.1.0 + "@lingui/message-utils": 5.1.1 "@messageformat/parser": ^5.0.0 cldr-core: ^45.0.0 mockdate: ^3.0.5 @@ -2882,13 +2882,13 @@ __metadata: languageName: unknown linkType: soft -"@lingui/format-po@5.1.0, @lingui/format-po@workspace:packages/format-po": +"@lingui/format-po@5.1.1, @lingui/format-po@workspace:packages/format-po": version: 0.0.0-use.local resolution: "@lingui/format-po@workspace:packages/format-po" dependencies: - "@lingui/conf": 5.1.0 + "@lingui/conf": 5.1.1 "@lingui/jest-mocks": "workspace:^" - "@lingui/message-utils": 5.1.0 + "@lingui/message-utils": 5.1.1 date-fns: ^3.6.0 mockdate: ^3.0.5 pofile: ^1.1.4 @@ -2908,9 +2908,9 @@ __metadata: resolution: "@lingui/loader@workspace:packages/loader" dependencies: "@babel/runtime": ^7.20.13 - "@lingui/cli": 5.1.0 - "@lingui/conf": 5.1.0 - "@lingui/format-json": 5.1.0 + "@lingui/cli": 5.1.1 + "@lingui/conf": 5.1.1 + "@lingui/format-json": 5.1.1 unbuild: 2.0.0 webpack: ^5.76.1 peerDependencies: @@ -2922,8 +2922,8 @@ __metadata: version: 0.0.0-use.local resolution: "@lingui/macro@workspace:packages/macro" dependencies: - "@lingui/core": 5.1.0 - "@lingui/react": 5.1.0 + "@lingui/core": 5.1.1 + "@lingui/react": 5.1.1 peerDependencies: "@lingui/babel-plugin-lingui-macro": 5.1.0 babel-plugin-macros: 2 || 3 @@ -2935,7 +2935,7 @@ __metadata: languageName: unknown linkType: soft -"@lingui/message-utils@5.1.0, @lingui/message-utils@workspace:packages/message-utils": +"@lingui/message-utils@5.1.1, @lingui/message-utils@workspace:packages/message-utils": version: 0.0.0-use.local resolution: "@lingui/message-utils@workspace:packages/message-utils" dependencies: @@ -2960,9 +2960,9 @@ __metadata: resolution: "@lingui/metro-transformer@workspace:packages/metro-transformer" dependencies: "@babel/runtime": ^7.20.13 - "@lingui/cli": 5.1.0 - "@lingui/conf": 5.1.0 - "@lingui/format-json": 5.1.0 + "@lingui/cli": 5.1.1 + "@lingui/conf": 5.1.1 + "@lingui/format-json": 5.1.1 memoize-one: ^6.0.0 rimraf: ^6.0.1 unbuild: 2.0.0 @@ -2982,12 +2982,12 @@ __metadata: languageName: unknown linkType: soft -"@lingui/react@5.1.0, @lingui/react@workspace:*, @lingui/react@workspace:packages/react": +"@lingui/react@5.1.1, @lingui/react@workspace:*, @lingui/react@workspace:packages/react": version: 0.0.0-use.local resolution: "@lingui/react@workspace:packages/react" dependencies: "@babel/runtime": ^7.20.13 - "@lingui/core": 5.1.0 + "@lingui/core": 5.1.1 "@lingui/jest-mocks": "*" "@testing-library/react": ^14.0.0 "@types/react": ^18.2.13 @@ -3024,8 +3024,8 @@ __metadata: version: 0.0.0-use.local resolution: "@lingui/vite-plugin@workspace:packages/vite-plugin" dependencies: - "@lingui/cli": 5.1.0 - "@lingui/conf": 5.1.0 + "@lingui/cli": 5.1.1 + "@lingui/conf": 5.1.1 "@lingui/core": "workspace:^" "@lingui/format-json": "workspace:^" unbuild: 2.0.0 From e45a2af5dfc1c88131fa8196d596e0f0f25678ea Mon Sep 17 00:00:00 2001 From: Andrii Bodnar Date: Mon, 16 Dec 2024 20:26:58 +0200 Subject: [PATCH 17/24] chore(release): published v5.1.2 [skip ci] (#2125) --- CHANGELOG.md | 4 + lerna.json | 2 +- .../CHANGELOG.md | 4 + .../package.json | 2 +- .../babel-plugin-lingui-macro/CHANGELOG.md | 4 + .../babel-plugin-lingui-macro/package.json | 8 +- packages/cli/CHANGELOG.md | 4 + packages/cli/package.json | 14 +-- packages/conf/CHANGELOG.md | 4 + packages/conf/package.json | 2 +- packages/core/CHANGELOG.md | 4 + packages/core/package.json | 6 +- packages/detect-locale/CHANGELOG.md | 4 + packages/detect-locale/package.json | 2 +- packages/extractor-vue/CHANGELOG.md | 4 + packages/extractor-vue/package.json | 8 +- packages/format-csv/CHANGELOG.md | 4 + packages/format-csv/package.json | 4 +- packages/format-json/CHANGELOG.md | 4 + packages/format-json/package.json | 4 +- packages/format-po-gettext/CHANGELOG.md | 4 + packages/format-po-gettext/package.json | 8 +- packages/format-po/CHANGELOG.md | 4 + packages/format-po/package.json | 6 +- packages/loader/CHANGELOG.md | 4 + packages/loader/package.json | 8 +- packages/macro/CHANGELOG.md | 4 + packages/macro/package.json | 8 +- packages/message-utils/CHANGELOG.md | 4 + packages/message-utils/package.json | 2 +- packages/metro-transformer/CHANGELOG.md | 4 + packages/metro-transformer/package.json | 8 +- packages/react/CHANGELOG.md | 4 + packages/react/package.json | 6 +- packages/vite-plugin/CHANGELOG.md | 4 + packages/vite-plugin/package.json | 6 +- yarn.lock | 86 +++++++++---------- 37 files changed, 167 insertions(+), 95 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 44becc225..a0f5410ec 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [5.1.2](https://github.com/lingui/js-lingui/compare/v5.1.1...v5.1.2) (2024-12-16) + +**Note:** Version bump only for package js-lingui-workspaces + ## [5.1.1](https://github.com/lingui/js-lingui/compare/v5.1.0...v5.1.1) (2024-12-16) **Note:** Version bump only for package js-lingui-workspaces diff --git a/lerna.json b/lerna.json index 5c7e3d9d0..b9d02641f 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "5.1.1", + "version": "5.1.2", "packages": ["packages/*"], "npmClient": "yarn", "command": { diff --git a/packages/babel-plugin-extract-messages/CHANGELOG.md b/packages/babel-plugin-extract-messages/CHANGELOG.md index 637c8ad5a..d2d20d411 100644 --- a/packages/babel-plugin-extract-messages/CHANGELOG.md +++ b/packages/babel-plugin-extract-messages/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [5.1.2](https://github.com/lingui/js-lingui/compare/v5.1.1...v5.1.2) (2024-12-16) + +**Note:** Version bump only for package @lingui/babel-plugin-extract-messages + ## [5.1.1](https://github.com/lingui/js-lingui/compare/v5.1.0...v5.1.1) (2024-12-16) **Note:** Version bump only for package @lingui/babel-plugin-extract-messages diff --git a/packages/babel-plugin-extract-messages/package.json b/packages/babel-plugin-extract-messages/package.json index 01a3c1e9c..3f5e8413c 100644 --- a/packages/babel-plugin-extract-messages/package.json +++ b/packages/babel-plugin-extract-messages/package.json @@ -1,6 +1,6 @@ { "name": "@lingui/babel-plugin-extract-messages", - "version": "5.1.1", + "version": "5.1.2", "description": "Babel plugin for collecting messages from source code for internationalization", "main": "./dist/index.cjs", "module": "./dist/index.mjs", diff --git a/packages/babel-plugin-lingui-macro/CHANGELOG.md b/packages/babel-plugin-lingui-macro/CHANGELOG.md index 02161e44f..f5ca805bf 100644 --- a/packages/babel-plugin-lingui-macro/CHANGELOG.md +++ b/packages/babel-plugin-lingui-macro/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [5.1.2](https://github.com/lingui/js-lingui/compare/v5.1.1...v5.1.2) (2024-12-16) + +**Note:** Version bump only for package @lingui/babel-plugin-lingui-macro + ## [5.1.1](https://github.com/lingui/js-lingui/compare/v5.1.0...v5.1.1) (2024-12-16) **Note:** Version bump only for package @lingui/babel-plugin-lingui-macro diff --git a/packages/babel-plugin-lingui-macro/package.json b/packages/babel-plugin-lingui-macro/package.json index 2920b00de..086e66047 100644 --- a/packages/babel-plugin-lingui-macro/package.json +++ b/packages/babel-plugin-lingui-macro/package.json @@ -1,6 +1,6 @@ { "name": "@lingui/babel-plugin-lingui-macro", - "version": "5.1.1", + "version": "5.1.2", "description": "Babel plugin for transforming Lingui Macros", "main": "./dist/index.cjs", "module": "./dist/index.mjs", @@ -84,9 +84,9 @@ "@babel/core": "^7.20.12", "@babel/runtime": "^7.20.13", "@babel/types": "^7.20.7", - "@lingui/conf": "5.1.1", - "@lingui/core": "5.1.1", - "@lingui/message-utils": "5.1.1" + "@lingui/conf": "5.1.2", + "@lingui/core": "5.1.2", + "@lingui/message-utils": "5.1.2" }, "peerDependencies": { "babel-plugin-macros": "2 || 3" diff --git a/packages/cli/CHANGELOG.md b/packages/cli/CHANGELOG.md index 248af920d..3e4103577 100644 --- a/packages/cli/CHANGELOG.md +++ b/packages/cli/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [5.1.2](https://github.com/lingui/js-lingui/compare/v5.1.1...v5.1.2) (2024-12-16) + +**Note:** Version bump only for package @lingui/cli + ## [5.1.1](https://github.com/lingui/js-lingui/compare/v5.1.0...v5.1.1) (2024-12-16) **Note:** Version bump only for package @lingui/cli diff --git a/packages/cli/package.json b/packages/cli/package.json index 663e5539b..16824b3a1 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@lingui/cli", - "version": "5.1.1", + "version": "5.1.2", "description": "CLI for working wit message catalogs", "keywords": [ "cli", @@ -57,12 +57,12 @@ "@babel/parser": "^7.22.0", "@babel/runtime": "^7.21.0", "@babel/types": "^7.21.2", - "@lingui/babel-plugin-extract-messages": "5.1.1", - "@lingui/babel-plugin-lingui-macro": "5.1.1", - "@lingui/conf": "5.1.1", - "@lingui/core": "5.1.1", - "@lingui/format-po": "5.1.1", - "@lingui/message-utils": "5.1.1", + "@lingui/babel-plugin-extract-messages": "5.1.2", + "@lingui/babel-plugin-lingui-macro": "5.1.2", + "@lingui/conf": "5.1.2", + "@lingui/core": "5.1.2", + "@lingui/format-po": "5.1.2", + "@lingui/message-utils": "5.1.2", "babel-plugin-macros": "^3.0.1", "chalk": "^4.1.0", "chokidar": "3.5.1", diff --git a/packages/conf/CHANGELOG.md b/packages/conf/CHANGELOG.md index ab40e86ab..78fb7006f 100644 --- a/packages/conf/CHANGELOG.md +++ b/packages/conf/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [5.1.2](https://github.com/lingui/js-lingui/compare/v5.1.1...v5.1.2) (2024-12-16) + +**Note:** Version bump only for package @lingui/conf + ## [5.1.1](https://github.com/lingui/js-lingui/compare/v5.1.0...v5.1.1) (2024-12-16) **Note:** Version bump only for package @lingui/conf diff --git a/packages/conf/package.json b/packages/conf/package.json index 2e093a365..b1f5163b8 100644 --- a/packages/conf/package.json +++ b/packages/conf/package.json @@ -1,6 +1,6 @@ { "name": "@lingui/conf", - "version": "5.1.1", + "version": "5.1.2", "sideEffects": false, "description": "Get lingui configuration from package.json", "keywords": [ diff --git a/packages/core/CHANGELOG.md b/packages/core/CHANGELOG.md index 38fa8d5f0..449cdb370 100644 --- a/packages/core/CHANGELOG.md +++ b/packages/core/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [5.1.2](https://github.com/lingui/js-lingui/compare/v5.1.1...v5.1.2) (2024-12-16) + +**Note:** Version bump only for package @lingui/core + ## [5.1.1](https://github.com/lingui/js-lingui/compare/v5.1.0...v5.1.1) (2024-12-16) **Note:** Version bump only for package @lingui/core diff --git a/packages/core/package.json b/packages/core/package.json index 148c43155..6901944de 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@lingui/core", - "version": "5.1.1", + "version": "5.1.2", "sideEffects": false, "description": "I18n tools for javascript", "main": "./dist/index.cjs", @@ -60,7 +60,7 @@ ], "dependencies": { "@babel/runtime": "^7.20.13", - "@lingui/message-utils": "5.1.1", + "@lingui/message-utils": "5.1.2", "unraw": "^3.0.0" }, "devDependencies": { @@ -69,7 +69,7 @@ "unbuild": "2.0.0" }, "peerDependencies": { - "@lingui/babel-plugin-lingui-macro": "5.1.0", + "@lingui/babel-plugin-lingui-macro": "5.1.2", "babel-plugin-macros": "2 || 3" }, "peerDependenciesMeta": { diff --git a/packages/detect-locale/CHANGELOG.md b/packages/detect-locale/CHANGELOG.md index fba2315df..1cf732ae9 100644 --- a/packages/detect-locale/CHANGELOG.md +++ b/packages/detect-locale/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [5.1.2](https://github.com/lingui/js-lingui/compare/v5.1.1...v5.1.2) (2024-12-16) + +**Note:** Version bump only for package @lingui/detect-locale + ## [5.1.1](https://github.com/lingui/js-lingui/compare/v5.1.0...v5.1.1) (2024-12-16) **Note:** Version bump only for package @lingui/detect-locale diff --git a/packages/detect-locale/package.json b/packages/detect-locale/package.json index 2e7a4e0be..2b52e6ccf 100644 --- a/packages/detect-locale/package.json +++ b/packages/detect-locale/package.json @@ -1,6 +1,6 @@ { "name": "@lingui/detect-locale", - "version": "5.1.1", + "version": "5.1.2", "sideEffects": false, "description": "@Lingui package to help you find the correct browser/server locale", "main": "./dist/index.cjs", diff --git a/packages/extractor-vue/CHANGELOG.md b/packages/extractor-vue/CHANGELOG.md index 0f9111ac5..67927dd81 100644 --- a/packages/extractor-vue/CHANGELOG.md +++ b/packages/extractor-vue/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [5.1.2](https://github.com/lingui/js-lingui/compare/v5.1.1...v5.1.2) (2024-12-16) + +**Note:** Version bump only for package @lingui/extractor-vue + ## [5.1.1](https://github.com/lingui/js-lingui/compare/v5.1.0...v5.1.1) (2024-12-16) **Note:** Version bump only for package @lingui/extractor-vue diff --git a/packages/extractor-vue/package.json b/packages/extractor-vue/package.json index 50b762679..9068d1551 100644 --- a/packages/extractor-vue/package.json +++ b/packages/extractor-vue/package.json @@ -1,6 +1,6 @@ { "name": "@lingui/extractor-vue", - "version": "5.1.1", + "version": "5.1.2", "description": "Custom Vue.js extractor to be used with the CLI tool", "main": "./dist/index.cjs", "module": "./dist/index.mjs", @@ -38,12 +38,12 @@ "/dist" ], "dependencies": { - "@lingui/cli": "5.1.1", - "@lingui/conf": "5.1.1", + "@lingui/cli": "5.1.2", + "@lingui/conf": "5.1.2", "@vue/compiler-sfc": "^3.2.47" }, "devDependencies": { - "@lingui/babel-plugin-extract-messages": "5.1.1", + "@lingui/babel-plugin-extract-messages": "5.1.2", "unbuild": "2.0.0" } } diff --git a/packages/format-csv/CHANGELOG.md b/packages/format-csv/CHANGELOG.md index 38cfd000f..b896897c9 100644 --- a/packages/format-csv/CHANGELOG.md +++ b/packages/format-csv/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [5.1.2](https://github.com/lingui/js-lingui/compare/v5.1.1...v5.1.2) (2024-12-16) + +**Note:** Version bump only for package @lingui/format-csv + ## [5.1.1](https://github.com/lingui/js-lingui/compare/v5.1.0...v5.1.1) (2024-12-16) **Note:** Version bump only for package @lingui/format-csv diff --git a/packages/format-csv/package.json b/packages/format-csv/package.json index 39148aae7..9c6e53868 100644 --- a/packages/format-csv/package.json +++ b/packages/format-csv/package.json @@ -1,6 +1,6 @@ { "name": "@lingui/format-csv", - "version": "5.1.1", + "version": "5.1.2", "description": "CSV format for Lingui Catalogs", "main": "./dist/csv.cjs", "module": "./dist/csv.mjs", @@ -39,7 +39,7 @@ "dist/" ], "dependencies": { - "@lingui/conf": "5.1.1", + "@lingui/conf": "5.1.2", "papaparse": "^5.4.0" }, "devDependencies": { diff --git a/packages/format-json/CHANGELOG.md b/packages/format-json/CHANGELOG.md index db6eef3b8..471c920aa 100644 --- a/packages/format-json/CHANGELOG.md +++ b/packages/format-json/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [5.1.2](https://github.com/lingui/js-lingui/compare/v5.1.1...v5.1.2) (2024-12-16) + +**Note:** Version bump only for package @lingui/format-json + ## [5.1.1](https://github.com/lingui/js-lingui/compare/v5.1.0...v5.1.1) (2024-12-16) **Note:** Version bump only for package @lingui/format-json diff --git a/packages/format-json/package.json b/packages/format-json/package.json index 0da665641..f274885ab 100644 --- a/packages/format-json/package.json +++ b/packages/format-json/package.json @@ -1,6 +1,6 @@ { "name": "@lingui/format-json", - "version": "5.1.1", + "version": "5.1.2", "description": "JSON format for Lingui Catalogs", "main": "./dist/json.cjs", "module": "./dist/json.mjs", @@ -39,7 +39,7 @@ "dist/" ], "dependencies": { - "@lingui/conf": "5.1.1", + "@lingui/conf": "5.1.2", "ramda": "^0.28.0" }, "devDependencies": { diff --git a/packages/format-po-gettext/CHANGELOG.md b/packages/format-po-gettext/CHANGELOG.md index 652c7f922..8bedec6ed 100644 --- a/packages/format-po-gettext/CHANGELOG.md +++ b/packages/format-po-gettext/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [5.1.2](https://github.com/lingui/js-lingui/compare/v5.1.1...v5.1.2) (2024-12-16) + +**Note:** Version bump only for package @lingui/format-po-gettext + ## [5.1.1](https://github.com/lingui/js-lingui/compare/v5.1.0...v5.1.1) (2024-12-16) **Note:** Version bump only for package @lingui/format-po-gettext diff --git a/packages/format-po-gettext/package.json b/packages/format-po-gettext/package.json index 41cef0c4f..17ebb033e 100644 --- a/packages/format-po-gettext/package.json +++ b/packages/format-po-gettext/package.json @@ -1,6 +1,6 @@ { "name": "@lingui/format-po-gettext", - "version": "5.1.1", + "version": "5.1.2", "description": "Gettext PO format with gettext-style plurals for Lingui Catalogs", "main": "./dist/po-gettext.cjs", "module": "./dist/po-gettext.mjs", @@ -41,9 +41,9 @@ "dist/" ], "dependencies": { - "@lingui/conf": "5.1.1", - "@lingui/format-po": "5.1.1", - "@lingui/message-utils": "5.1.1", + "@lingui/conf": "5.1.2", + "@lingui/format-po": "5.1.2", + "@lingui/message-utils": "5.1.2", "@messageformat/parser": "^5.0.0", "cldr-core": "^45.0.0", "node-gettext": "^3.0.0", diff --git a/packages/format-po/CHANGELOG.md b/packages/format-po/CHANGELOG.md index ee9c103f5..9eb011a9b 100644 --- a/packages/format-po/CHANGELOG.md +++ b/packages/format-po/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [5.1.2](https://github.com/lingui/js-lingui/compare/v5.1.1...v5.1.2) (2024-12-16) + +**Note:** Version bump only for package @lingui/format-po + ## [5.1.1](https://github.com/lingui/js-lingui/compare/v5.1.0...v5.1.1) (2024-12-16) **Note:** Version bump only for package @lingui/format-po diff --git a/packages/format-po/package.json b/packages/format-po/package.json index 01323097b..e282ac2ef 100644 --- a/packages/format-po/package.json +++ b/packages/format-po/package.json @@ -1,6 +1,6 @@ { "name": "@lingui/format-po", - "version": "5.1.1", + "version": "5.1.2", "description": "Gettext PO format for Lingui Catalogs", "main": "./dist/po.cjs", "module": "./dist/po.mjs", @@ -41,8 +41,8 @@ "dist/" ], "dependencies": { - "@lingui/conf": "5.1.1", - "@lingui/message-utils": "5.1.1", + "@lingui/conf": "5.1.2", + "@lingui/message-utils": "5.1.2", "date-fns": "^3.6.0", "pofile": "^1.1.4" }, diff --git a/packages/loader/CHANGELOG.md b/packages/loader/CHANGELOG.md index e05a7903f..8b30fe6d8 100644 --- a/packages/loader/CHANGELOG.md +++ b/packages/loader/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [5.1.2](https://github.com/lingui/js-lingui/compare/v5.1.1...v5.1.2) (2024-12-16) + +**Note:** Version bump only for package @lingui/loader + ## [5.1.1](https://github.com/lingui/js-lingui/compare/v5.1.0...v5.1.1) (2024-12-16) **Note:** Version bump only for package @lingui/loader diff --git a/packages/loader/package.json b/packages/loader/package.json index e3e549207..d6b27a838 100644 --- a/packages/loader/package.json +++ b/packages/loader/package.json @@ -1,6 +1,6 @@ { "name": "@lingui/loader", - "version": "5.1.1", + "version": "5.1.2", "description": "webpack loader for lingui message catalogs", "types": "./dist/index.d.ts", "main": "./dist/index.cjs", @@ -43,11 +43,11 @@ ], "dependencies": { "@babel/runtime": "^7.20.13", - "@lingui/cli": "5.1.1", - "@lingui/conf": "5.1.1" + "@lingui/cli": "5.1.2", + "@lingui/conf": "5.1.2" }, "devDependencies": { - "@lingui/format-json": "5.1.1", + "@lingui/format-json": "5.1.2", "unbuild": "2.0.0", "webpack": "^5.76.1" }, diff --git a/packages/macro/CHANGELOG.md b/packages/macro/CHANGELOG.md index 7f5838366..1f28ade9f 100644 --- a/packages/macro/CHANGELOG.md +++ b/packages/macro/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [5.1.2](https://github.com/lingui/js-lingui/compare/v5.1.1...v5.1.2) (2024-12-16) + +**Note:** Version bump only for package @lingui/macro + ## [5.1.1](https://github.com/lingui/js-lingui/compare/v5.1.0...v5.1.1) (2024-12-16) **Note:** Version bump only for package @lingui/macro diff --git a/packages/macro/package.json b/packages/macro/package.json index 6abf5a23d..c4fa6d14c 100644 --- a/packages/macro/package.json +++ b/packages/macro/package.json @@ -1,6 +1,6 @@ { "name": "@lingui/macro", - "version": "5.1.1", + "version": "5.1.2", "description": "Macro for generating messages in ICU MessageFormat syntax", "main": "./index.js", "types": "./index.d.ts", @@ -47,11 +47,11 @@ "index.js" ], "dependencies": { - "@lingui/core": "5.1.1", - "@lingui/react": "5.1.1" + "@lingui/core": "5.1.2", + "@lingui/react": "5.1.2" }, "peerDependencies": { - "@lingui/babel-plugin-lingui-macro": "5.1.0", + "@lingui/babel-plugin-lingui-macro": "5.1.2", "babel-plugin-macros": "2 || 3" }, "peerDependenciesMeta": { diff --git a/packages/message-utils/CHANGELOG.md b/packages/message-utils/CHANGELOG.md index adb0e7505..1a4084e32 100644 --- a/packages/message-utils/CHANGELOG.md +++ b/packages/message-utils/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [5.1.2](https://github.com/lingui/js-lingui/compare/v5.1.1...v5.1.2) (2024-12-16) + +**Note:** Version bump only for package @lingui/message-utils + ## [5.1.1](https://github.com/lingui/js-lingui/compare/v5.1.0...v5.1.1) (2024-12-16) **Note:** Version bump only for package @lingui/message-utils diff --git a/packages/message-utils/package.json b/packages/message-utils/package.json index 935f69e5f..c7d2f6279 100644 --- a/packages/message-utils/package.json +++ b/packages/message-utils/package.json @@ -1,6 +1,6 @@ { "name": "@lingui/message-utils", - "version": "5.1.1", + "version": "5.1.2", "license": "MIT", "keywords": [], "sideEffects": false, diff --git a/packages/metro-transformer/CHANGELOG.md b/packages/metro-transformer/CHANGELOG.md index c9e02c701..33cd92312 100644 --- a/packages/metro-transformer/CHANGELOG.md +++ b/packages/metro-transformer/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [5.1.2](https://github.com/lingui/js-lingui/compare/v5.1.1...v5.1.2) (2024-12-16) + +**Note:** Version bump only for package @lingui/metro-transformer + ## [5.1.1](https://github.com/lingui/js-lingui/compare/v5.1.0...v5.1.1) (2024-12-16) **Note:** Version bump only for package @lingui/metro-transformer diff --git a/packages/metro-transformer/package.json b/packages/metro-transformer/package.json index 9ef2c6d3b..a5a6c5aef 100644 --- a/packages/metro-transformer/package.json +++ b/packages/metro-transformer/package.json @@ -1,6 +1,6 @@ { "name": "@lingui/metro-transformer", - "version": "5.1.1", + "version": "5.1.2", "description": "Metro bundler transformer for LinguiJS catalogs", "exports": { "./expo": { @@ -56,12 +56,12 @@ ], "dependencies": { "@babel/runtime": "^7.20.13", - "@lingui/cli": "5.1.1", - "@lingui/conf": "5.1.1", + "@lingui/cli": "5.1.2", + "@lingui/conf": "5.1.2", "memoize-one": "^6.0.0" }, "devDependencies": { - "@lingui/format-json": "5.1.1", + "@lingui/format-json": "5.1.2", "rimraf": "^6.0.1", "unbuild": "2.0.0" }, diff --git a/packages/react/CHANGELOG.md b/packages/react/CHANGELOG.md index 5ad8afadd..c7ed2bbce 100644 --- a/packages/react/CHANGELOG.md +++ b/packages/react/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [5.1.2](https://github.com/lingui/js-lingui/compare/v5.1.1...v5.1.2) (2024-12-16) + +**Note:** Version bump only for package @lingui/react + ## [5.1.1](https://github.com/lingui/js-lingui/compare/v5.1.0...v5.1.1) (2024-12-16) **Note:** Version bump only for package @lingui/react diff --git a/packages/react/package.json b/packages/react/package.json index 6f73e0267..87afbc854 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -1,6 +1,6 @@ { "name": "@lingui/react", - "version": "5.1.1", + "version": "5.1.2", "sideEffects": false, "description": "React components for translations", "main": "./dist/index.cjs", @@ -77,7 +77,7 @@ "macro/index.js" ], "peerDependencies": { - "@lingui/babel-plugin-lingui-macro": "5.1.0", + "@lingui/babel-plugin-lingui-macro": "5.1.2", "babel-plugin-macros": "2 || 3", "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" }, @@ -91,7 +91,7 @@ }, "dependencies": { "@babel/runtime": "^7.20.13", - "@lingui/core": "5.1.1" + "@lingui/core": "5.1.2" }, "devDependencies": { "@lingui/jest-mocks": "*", diff --git a/packages/vite-plugin/CHANGELOG.md b/packages/vite-plugin/CHANGELOG.md index 8d70ca51f..66d524b39 100644 --- a/packages/vite-plugin/CHANGELOG.md +++ b/packages/vite-plugin/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [5.1.1](https://github.com/lingui/js-lingui/compare/v5.1.1...v5.1.2) (2024-12-16) + +**Note:** Version bump only for package @lingui/vite-plugin + ## [5.1.1](https://github.com/lingui/js-lingui/compare/v5.1.0...v5.1.1) (2024-12-16) **Note:** Version bump only for package @lingui/vite-plugin diff --git a/packages/vite-plugin/package.json b/packages/vite-plugin/package.json index 4eda7a9c9..b02df971a 100644 --- a/packages/vite-plugin/package.json +++ b/packages/vite-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@lingui/vite-plugin", - "version": "5.1.1", + "version": "5.1.2", "description": "Vite plugin for Lingui message catalogs", "main": "./dist/index.cjs", "module": "./dist/index.mjs", @@ -39,8 +39,8 @@ "dist/" ], "dependencies": { - "@lingui/cli": "5.1.1", - "@lingui/conf": "5.1.1" + "@lingui/cli": "5.1.2", + "@lingui/conf": "5.1.2" }, "peerDependencies": { "vite": "^3 || ^4 || ^5.0.9 || ^6" diff --git a/yarn.lock b/yarn.lock index 772462309..65701762c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2692,7 +2692,7 @@ __metadata: languageName: node linkType: hard -"@lingui/babel-plugin-extract-messages@5.1.1, @lingui/babel-plugin-extract-messages@workspace:packages/babel-plugin-extract-messages": +"@lingui/babel-plugin-extract-messages@5.1.2, @lingui/babel-plugin-extract-messages@workspace:packages/babel-plugin-extract-messages": version: 0.0.0-use.local resolution: "@lingui/babel-plugin-extract-messages@workspace:packages/babel-plugin-extract-messages" dependencies: @@ -2705,7 +2705,7 @@ __metadata: languageName: unknown linkType: soft -"@lingui/babel-plugin-lingui-macro@5.1.1, @lingui/babel-plugin-lingui-macro@workspace:*, @lingui/babel-plugin-lingui-macro@workspace:packages/babel-plugin-lingui-macro": +"@lingui/babel-plugin-lingui-macro@5.1.2, @lingui/babel-plugin-lingui-macro@workspace:*, @lingui/babel-plugin-lingui-macro@workspace:packages/babel-plugin-lingui-macro": version: 0.0.0-use.local resolution: "@lingui/babel-plugin-lingui-macro@workspace:packages/babel-plugin-lingui-macro" dependencies: @@ -2714,9 +2714,9 @@ __metadata: "@babel/runtime": ^7.20.13 "@babel/traverse": ^7.20.12 "@babel/types": ^7.20.7 - "@lingui/conf": 5.1.1 - "@lingui/core": 5.1.1 - "@lingui/message-utils": 5.1.1 + "@lingui/conf": 5.1.2 + "@lingui/core": 5.1.2 + "@lingui/message-utils": 5.1.2 "@types/babel-plugin-macros": ^2.8.5 prettier: 2.8.3 unbuild: 2.0.0 @@ -2728,7 +2728,7 @@ __metadata: languageName: unknown linkType: soft -"@lingui/cli@5.1.1, @lingui/cli@workspace:*, @lingui/cli@workspace:packages/cli": +"@lingui/cli@5.1.2, @lingui/cli@workspace:*, @lingui/cli@workspace:packages/cli": version: 0.0.0-use.local resolution: "@lingui/cli@workspace:packages/cli" dependencies: @@ -2737,13 +2737,13 @@ __metadata: "@babel/parser": ^7.22.0 "@babel/runtime": ^7.21.0 "@babel/types": ^7.21.2 - "@lingui/babel-plugin-extract-messages": 5.1.1 - "@lingui/babel-plugin-lingui-macro": 5.1.1 - "@lingui/conf": 5.1.1 - "@lingui/core": 5.1.1 - "@lingui/format-po": 5.1.1 + "@lingui/babel-plugin-extract-messages": 5.1.2 + "@lingui/babel-plugin-lingui-macro": 5.1.2 + "@lingui/conf": 5.1.2 + "@lingui/core": 5.1.2 + "@lingui/format-po": 5.1.2 "@lingui/jest-mocks": "*" - "@lingui/message-utils": 5.1.1 + "@lingui/message-utils": 5.1.2 "@types/convert-source-map": ^2.0.0 "@types/micromatch": ^4.0.1 "@types/normalize-path": ^3.0.0 @@ -2773,7 +2773,7 @@ __metadata: languageName: unknown linkType: soft -"@lingui/conf@5.1.1, @lingui/conf@workspace:packages/conf": +"@lingui/conf@5.1.2, @lingui/conf@workspace:packages/conf": version: 0.0.0-use.local resolution: "@lingui/conf@workspace:packages/conf" dependencies: @@ -2789,18 +2789,18 @@ __metadata: languageName: unknown linkType: soft -"@lingui/core@5.1.1, @lingui/core@workspace:*, @lingui/core@workspace:^, @lingui/core@workspace:packages/core": +"@lingui/core@5.1.2, @lingui/core@workspace:*, @lingui/core@workspace:^, @lingui/core@workspace:packages/core": version: 0.0.0-use.local resolution: "@lingui/core@workspace:packages/core" dependencies: "@babel/runtime": ^7.20.13 "@lingui/jest-mocks": "*" - "@lingui/message-utils": 5.1.1 + "@lingui/message-utils": 5.1.2 tsd: ^0.26.1 unbuild: 2.0.0 unraw: ^3.0.0 peerDependencies: - "@lingui/babel-plugin-lingui-macro": 5.1.0 + "@lingui/babel-plugin-lingui-macro": 5.1.2 babel-plugin-macros: 2 || 3 peerDependenciesMeta: "@lingui/babel-plugin-lingui-macro": @@ -2833,9 +2833,9 @@ __metadata: version: 0.0.0-use.local resolution: "@lingui/extractor-vue@workspace:packages/extractor-vue" dependencies: - "@lingui/babel-plugin-extract-messages": 5.1.1 - "@lingui/cli": 5.1.1 - "@lingui/conf": 5.1.1 + "@lingui/babel-plugin-extract-messages": 5.1.2 + "@lingui/cli": 5.1.2 + "@lingui/conf": 5.1.2 "@vue/compiler-sfc": ^3.2.47 unbuild: 2.0.0 languageName: unknown @@ -2845,18 +2845,18 @@ __metadata: version: 0.0.0-use.local resolution: "@lingui/format-csv@workspace:packages/format-csv" dependencies: - "@lingui/conf": 5.1.1 + "@lingui/conf": 5.1.2 papaparse: ^5.4.0 tsd: ^0.28.0 unbuild: 2.0.0 languageName: unknown linkType: soft -"@lingui/format-json@5.1.1, @lingui/format-json@workspace:^, @lingui/format-json@workspace:packages/format-json": +"@lingui/format-json@5.1.2, @lingui/format-json@workspace:^, @lingui/format-json@workspace:packages/format-json": version: 0.0.0-use.local resolution: "@lingui/format-json@workspace:packages/format-json" dependencies: - "@lingui/conf": 5.1.1 + "@lingui/conf": 5.1.2 ramda: ^0.28.0 tsd: ^0.28.0 unbuild: ^2.0.0 @@ -2867,10 +2867,10 @@ __metadata: version: 0.0.0-use.local resolution: "@lingui/format-po-gettext@workspace:packages/format-po-gettext" dependencies: - "@lingui/conf": 5.1.1 - "@lingui/format-po": 5.1.1 + "@lingui/conf": 5.1.2 + "@lingui/format-po": 5.1.2 "@lingui/jest-mocks": "workspace:^" - "@lingui/message-utils": 5.1.1 + "@lingui/message-utils": 5.1.2 "@messageformat/parser": ^5.0.0 cldr-core: ^45.0.0 mockdate: ^3.0.5 @@ -2882,13 +2882,13 @@ __metadata: languageName: unknown linkType: soft -"@lingui/format-po@5.1.1, @lingui/format-po@workspace:packages/format-po": +"@lingui/format-po@5.1.2, @lingui/format-po@workspace:packages/format-po": version: 0.0.0-use.local resolution: "@lingui/format-po@workspace:packages/format-po" dependencies: - "@lingui/conf": 5.1.1 + "@lingui/conf": 5.1.2 "@lingui/jest-mocks": "workspace:^" - "@lingui/message-utils": 5.1.1 + "@lingui/message-utils": 5.1.2 date-fns: ^3.6.0 mockdate: ^3.0.5 pofile: ^1.1.4 @@ -2908,9 +2908,9 @@ __metadata: resolution: "@lingui/loader@workspace:packages/loader" dependencies: "@babel/runtime": ^7.20.13 - "@lingui/cli": 5.1.1 - "@lingui/conf": 5.1.1 - "@lingui/format-json": 5.1.1 + "@lingui/cli": 5.1.2 + "@lingui/conf": 5.1.2 + "@lingui/format-json": 5.1.2 unbuild: 2.0.0 webpack: ^5.76.1 peerDependencies: @@ -2922,10 +2922,10 @@ __metadata: version: 0.0.0-use.local resolution: "@lingui/macro@workspace:packages/macro" dependencies: - "@lingui/core": 5.1.1 - "@lingui/react": 5.1.1 + "@lingui/core": 5.1.2 + "@lingui/react": 5.1.2 peerDependencies: - "@lingui/babel-plugin-lingui-macro": 5.1.0 + "@lingui/babel-plugin-lingui-macro": 5.1.2 babel-plugin-macros: 2 || 3 peerDependenciesMeta: "@lingui/babel-plugin-lingui-macro": @@ -2935,7 +2935,7 @@ __metadata: languageName: unknown linkType: soft -"@lingui/message-utils@5.1.1, @lingui/message-utils@workspace:packages/message-utils": +"@lingui/message-utils@5.1.2, @lingui/message-utils@workspace:packages/message-utils": version: 0.0.0-use.local resolution: "@lingui/message-utils@workspace:packages/message-utils" dependencies: @@ -2960,9 +2960,9 @@ __metadata: resolution: "@lingui/metro-transformer@workspace:packages/metro-transformer" dependencies: "@babel/runtime": ^7.20.13 - "@lingui/cli": 5.1.1 - "@lingui/conf": 5.1.1 - "@lingui/format-json": 5.1.1 + "@lingui/cli": 5.1.2 + "@lingui/conf": 5.1.2 + "@lingui/format-json": 5.1.2 memoize-one: ^6.0.0 rimraf: ^6.0.1 unbuild: 2.0.0 @@ -2982,12 +2982,12 @@ __metadata: languageName: unknown linkType: soft -"@lingui/react@5.1.1, @lingui/react@workspace:*, @lingui/react@workspace:packages/react": +"@lingui/react@5.1.2, @lingui/react@workspace:*, @lingui/react@workspace:packages/react": version: 0.0.0-use.local resolution: "@lingui/react@workspace:packages/react" dependencies: "@babel/runtime": ^7.20.13 - "@lingui/core": 5.1.1 + "@lingui/core": 5.1.2 "@lingui/jest-mocks": "*" "@testing-library/react": ^14.0.0 "@types/react": ^18.2.13 @@ -2998,7 +2998,7 @@ __metadata: tsd: ^0.26.1 unbuild: 2.0.0 peerDependencies: - "@lingui/babel-plugin-lingui-macro": 5.1.0 + "@lingui/babel-plugin-lingui-macro": 5.1.2 babel-plugin-macros: 2 || 3 react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 peerDependenciesMeta: @@ -3024,8 +3024,8 @@ __metadata: version: 0.0.0-use.local resolution: "@lingui/vite-plugin@workspace:packages/vite-plugin" dependencies: - "@lingui/cli": 5.1.1 - "@lingui/conf": 5.1.1 + "@lingui/cli": 5.1.2 + "@lingui/conf": 5.1.2 "@lingui/core": "workspace:^" "@lingui/format-json": "workspace:^" unbuild: 2.0.0 From 099820abaef4b6b4e72dc97d81431a0759a07494 Mon Sep 17 00:00:00 2001 From: Timofei Iatsenko Date: Mon, 23 Dec 2024 09:36:13 +0100 Subject: [PATCH 18/24] docs: update for next 15 (#2073) --- examples/nextjs-swc/next.config.js | 19 - examples/nextjs-swc/next.config.ts | 17 + examples/nextjs-swc/package.json | 16 +- .../src/app/[lang]/app-router-demo/page.tsx | 8 +- examples/nextjs-swc/src/app/[lang]/layout.tsx | 17 +- examples/nextjs-swc/src/initLingui.tsx | 12 + examples/nextjs-swc/src/pagesRouterI18n.ts | 2 +- examples/nextjs-swc/src/withLingui.tsx | 45 - examples/nextjs-swc/yarn.lock | 1299 ++++++++++------- 9 files changed, 850 insertions(+), 585 deletions(-) delete mode 100644 examples/nextjs-swc/next.config.js create mode 100644 examples/nextjs-swc/next.config.ts create mode 100644 examples/nextjs-swc/src/initLingui.tsx delete mode 100644 examples/nextjs-swc/src/withLingui.tsx diff --git a/examples/nextjs-swc/next.config.js b/examples/nextjs-swc/next.config.js deleted file mode 100644 index e79bd2558..000000000 --- a/examples/nextjs-swc/next.config.js +++ /dev/null @@ -1,19 +0,0 @@ -/** @type {import('next').NextConfig} */ -module.exports = { - // i18n: { - // this option has been replaced by the middleware in src/ - // when migrating to support app router - // }, - webpack: (config) => { - config.module.rules.push({ - test: /\.po$/, - use: { - loader: '@lingui/loader' - } - }) - return config - }, - experimental: { - swcPlugins: [['@lingui/swc-plugin', {}]] - } -} diff --git a/examples/nextjs-swc/next.config.ts b/examples/nextjs-swc/next.config.ts new file mode 100644 index 000000000..2628cc2e6 --- /dev/null +++ b/examples/nextjs-swc/next.config.ts @@ -0,0 +1,17 @@ +import type { NextConfig } from 'next' + +const nextConfig: NextConfig = { + experimental: { + swcPlugins: [['@lingui/swc-plugin', {}]], + turbo: { + rules: { + '*.po': { + loaders: ['@lingui/loader'], + as: '*.js' + } + } + } + } +} + +export default nextConfig diff --git a/examples/nextjs-swc/package.json b/examples/nextjs-swc/package.json index be87c83c3..c09288644 100644 --- a/examples/nextjs-swc/package.json +++ b/examples/nextjs-swc/package.json @@ -3,7 +3,7 @@ "version": "0.1.0", "private": true, "scripts": { - "dev": "next dev", + "dev": "next dev --turbopack", "debug": "NODE_OPTIONS='--inspect' next dev", "build": "yarn lingui:extract && next build", "start": "next start", @@ -12,22 +12,22 @@ "type-check": "tsc --noEmit" }, "dependencies": { - "@lingui/core": "^5.0.0-next.3", - "@lingui/react": "^5.0.0-next.3", + "@lingui/core": "^5.1.2", + "@lingui/react": "^5.1.2", "negotiator": "^0.6.3", - "next": "^14.2.15", + "next": "15.0.1", "react": "18.2.0", "react-dom": "18.2.0" }, "devDependencies": { - "@lingui/cli": "^5.0.0-next.3", - "@lingui/loader": "^5.0.0-next.3", - "@lingui/swc-plugin": "^5.0.0-next.2", + "@lingui/cli": "^5.1.2", + "@lingui/loader": "^5.1.2", + "@lingui/swc-plugin": "^5.0.1", "@types/negotiator": "^0.6.3", "@types/react": "^18.3.3", "@types/react-dom": "^18.3.0", "eslint": "^8.57.0", - "eslint-config-next": "^14.2.3", + "eslint-config-next": "15.0.1", "typescript": "^5.4.5" } } diff --git a/examples/nextjs-swc/src/app/[lang]/app-router-demo/page.tsx b/examples/nextjs-swc/src/app/[lang]/app-router-demo/page.tsx index 842d5515e..03ee59221 100644 --- a/examples/nextjs-swc/src/app/[lang]/app-router-demo/page.tsx +++ b/examples/nextjs-swc/src/app/[lang]/app-router-demo/page.tsx @@ -1,4 +1,8 @@ import { HomePage } from '../../../components/HomePage' -import { withLinguiPage } from '../../../withLingui' +import { initLingui } from '../../../initLingui' -export default withLinguiPage(HomePage) +export default async function Page(props) { + const lang = (await props.params).lang + initLingui(lang) + return +} diff --git a/examples/nextjs-swc/src/app/[lang]/layout.tsx b/examples/nextjs-swc/src/app/[lang]/layout.tsx index 9eacb0e76..f9e678582 100644 --- a/examples/nextjs-swc/src/app/[lang]/layout.tsx +++ b/examples/nextjs-swc/src/app/[lang]/layout.tsx @@ -1,26 +1,27 @@ import linguiConfig from '../../../lingui.config' import { allMessages, getI18nInstance } from '../../appRouterI18n' import { LinguiClientProvider } from '../../components/LinguiClientProvider' -import { PageLangParam, withLinguiLayout } from '../../withLingui' +import { initLingui, PageLangParam } from '../../initLingui' import React from 'react' import { t } from '@lingui/macro' +import { setI18n } from '@lingui/react/server' export async function generateStaticParams() { return linguiConfig.locales.map((lang) => ({ lang })) } -export function generateMetadata({ params }: PageLangParam) { - const i18n = getI18nInstance(params.lang) +export async function generateMetadata(props: PageLangParam) { + const i18n = getI18nInstance((await props.params).lang) return { title: t(i18n)`Translation Demo` } } -export default withLinguiLayout(function RootLayout({ - children, - params: { lang } -}) { +export default async function RootLayout({ children, params }) { + const lang = (await params).lang + initLingui(lang) + return ( @@ -35,4 +36,4 @@ export default withLinguiLayout(function RootLayout({ ) -}) +} diff --git a/examples/nextjs-swc/src/initLingui.tsx b/examples/nextjs-swc/src/initLingui.tsx new file mode 100644 index 000000000..d80bb146c --- /dev/null +++ b/examples/nextjs-swc/src/initLingui.tsx @@ -0,0 +1,12 @@ +import { getI18nInstance } from './appRouterI18n' +import { setI18n } from '@lingui/react/server' + +export type PageLangParam = { + params: Promise<{ lang: string }> +} + +export function initLingui(lang: string) { + const i18n = getI18nInstance(lang) + setI18n(i18n) + return i18n +} diff --git a/examples/nextjs-swc/src/pagesRouterI18n.ts b/examples/nextjs-swc/src/pagesRouterI18n.ts index d51f4ba5e..3c7a9c4a7 100644 --- a/examples/nextjs-swc/src/pagesRouterI18n.ts +++ b/examples/nextjs-swc/src/pagesRouterI18n.ts @@ -3,7 +3,7 @@ import { useEffect } from 'react' import { usePathname } from 'next/navigation' export async function loadCatalog(locale: string) { - const catalog = await import(`@lingui/loader!./locales/${locale}.po`) + const catalog = await import(`./locales/${locale}.po`) return catalog.messages } diff --git a/examples/nextjs-swc/src/withLingui.tsx b/examples/nextjs-swc/src/withLingui.tsx deleted file mode 100644 index e350332e3..000000000 --- a/examples/nextjs-swc/src/withLingui.tsx +++ /dev/null @@ -1,45 +0,0 @@ -import React, { ReactNode } from 'react' -import { getI18nInstance } from './appRouterI18n' -import { setI18n } from '@lingui/react/server' - -export type PageLangParam = { - params: { lang: string } -} - -type PageProps = PageLangParam & { - searchParams?: any // in query -} - -type LayoutProps = PageLangParam & { - children: React.ReactNode -} - -type PageExposedToNextJS = (props: Props) => ReactNode - -export const withLinguiPage = ( - AppRouterPage: React.ComponentType -): PageExposedToNextJS => { - return function WithLingui(props) { - const lang = props.params.lang - const i18n = getI18nInstance(lang) - setI18n(i18n) - - return - } -} - -type LayoutExposedToNextJS = ( - props: Props -) => ReactNode - -export const withLinguiLayout = ( - AppRouterPage: React.ComponentType -): LayoutExposedToNextJS => { - return function WithLingui(props) { - const lang = props.params.lang - const i18n = getI18nInstance(lang) - setI18n(i18n) - - return - } -} diff --git a/examples/nextjs-swc/yarn.lock b/examples/nextjs-swc/yarn.lock index 0357755dc..4e15d4b93 100644 --- a/examples/nextjs-swc/yarn.lock +++ b/examples/nextjs-swc/yarn.lock @@ -400,15 +400,6 @@ __metadata: languageName: node linkType: hard -"@babel/runtime@npm:^7.23.2": - version: 7.24.6 - resolution: "@babel/runtime@npm:7.24.6" - dependencies: - regenerator-runtime: ^0.14.0 - checksum: 44d95ca743898fed31b4cefef31de6fd3cf7906e94493368e9d6538289cc52c6c46185205d9c01d38466a5b3f673550f80892d30b1ed02a2c13e704863a8cc48 - languageName: node - linkType: hard - "@babel/template@npm:^7.20.7": version: 7.20.7 resolution: "@babel/template@npm:7.20.7" @@ -497,6 +488,15 @@ __metadata: languageName: node linkType: hard +"@emnapi/runtime@npm:^1.2.0": + version: 1.3.1 + resolution: "@emnapi/runtime@npm:1.3.1" + dependencies: + tslib: ^2.4.0 + checksum: 9a16ae7905a9c0e8956cf1854ef74e5087fbf36739abdba7aa6b308485aafdc993da07c19d7af104cd5f8e425121120852851bb3a0f78e2160e420a36d47f42f + languageName: node + linkType: hard + "@esbuild/aix-ppc64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/aix-ppc64@npm:0.21.5" @@ -669,6 +669,24 @@ __metadata: languageName: node linkType: hard +"@eslint-community/eslint-utils@npm:^4.4.0": + version: 4.4.1 + resolution: "@eslint-community/eslint-utils@npm:4.4.1" + dependencies: + eslint-visitor-keys: ^3.4.3 + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + checksum: a7ffc838eb6a9ef594cda348458ccf38f34439ac77dc090fa1c120024bcd4eb911dfd74d5ef44d42063e7949fa7c5123ce714a015c4abb917d4124be1bd32bfe + languageName: node + linkType: hard + +"@eslint-community/regexpp@npm:^4.10.0": + version: 4.12.1 + resolution: "@eslint-community/regexpp@npm:4.12.1" + checksum: 0d628680e204bc316d545b4993d3658427ca404ae646ce541fcc65306b8c712c340e5e573e30fb9f85f4855c0c5f6dca9868931f2fcced06417fbe1a0c6cd2d6 + languageName: node + linkType: hard + "@eslint-community/regexpp@npm:^4.6.1": version: 4.10.0 resolution: "@eslint-community/regexpp@npm:4.10.0" @@ -732,6 +750,181 @@ __metadata: languageName: node linkType: hard +"@img/sharp-darwin-arm64@npm:0.33.5": + version: 0.33.5 + resolution: "@img/sharp-darwin-arm64@npm:0.33.5" + dependencies: + "@img/sharp-libvips-darwin-arm64": 1.0.4 + dependenciesMeta: + "@img/sharp-libvips-darwin-arm64": + optional: true + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@img/sharp-darwin-x64@npm:0.33.5": + version: 0.33.5 + resolution: "@img/sharp-darwin-x64@npm:0.33.5" + dependencies: + "@img/sharp-libvips-darwin-x64": 1.0.4 + dependenciesMeta: + "@img/sharp-libvips-darwin-x64": + optional: true + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@img/sharp-libvips-darwin-arm64@npm:1.0.4": + version: 1.0.4 + resolution: "@img/sharp-libvips-darwin-arm64@npm:1.0.4" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@img/sharp-libvips-darwin-x64@npm:1.0.4": + version: 1.0.4 + resolution: "@img/sharp-libvips-darwin-x64@npm:1.0.4" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@img/sharp-libvips-linux-arm64@npm:1.0.4": + version: 1.0.4 + resolution: "@img/sharp-libvips-linux-arm64@npm:1.0.4" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"@img/sharp-libvips-linux-arm@npm:1.0.5": + version: 1.0.5 + resolution: "@img/sharp-libvips-linux-arm@npm:1.0.5" + conditions: os=linux & cpu=arm & libc=glibc + languageName: node + linkType: hard + +"@img/sharp-libvips-linux-s390x@npm:1.0.4": + version: 1.0.4 + resolution: "@img/sharp-libvips-linux-s390x@npm:1.0.4" + conditions: os=linux & cpu=s390x & libc=glibc + languageName: node + linkType: hard + +"@img/sharp-libvips-linux-x64@npm:1.0.4": + version: 1.0.4 + resolution: "@img/sharp-libvips-linux-x64@npm:1.0.4" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@img/sharp-libvips-linuxmusl-arm64@npm:1.0.4": + version: 1.0.4 + resolution: "@img/sharp-libvips-linuxmusl-arm64@npm:1.0.4" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@img/sharp-libvips-linuxmusl-x64@npm:1.0.4": + version: 1.0.4 + resolution: "@img/sharp-libvips-linuxmusl-x64@npm:1.0.4" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@img/sharp-linux-arm64@npm:0.33.5": + version: 0.33.5 + resolution: "@img/sharp-linux-arm64@npm:0.33.5" + dependencies: + "@img/sharp-libvips-linux-arm64": 1.0.4 + dependenciesMeta: + "@img/sharp-libvips-linux-arm64": + optional: true + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"@img/sharp-linux-arm@npm:0.33.5": + version: 0.33.5 + resolution: "@img/sharp-linux-arm@npm:0.33.5" + dependencies: + "@img/sharp-libvips-linux-arm": 1.0.5 + dependenciesMeta: + "@img/sharp-libvips-linux-arm": + optional: true + conditions: os=linux & cpu=arm & libc=glibc + languageName: node + linkType: hard + +"@img/sharp-linux-s390x@npm:0.33.5": + version: 0.33.5 + resolution: "@img/sharp-linux-s390x@npm:0.33.5" + dependencies: + "@img/sharp-libvips-linux-s390x": 1.0.4 + dependenciesMeta: + "@img/sharp-libvips-linux-s390x": + optional: true + conditions: os=linux & cpu=s390x & libc=glibc + languageName: node + linkType: hard + +"@img/sharp-linux-x64@npm:0.33.5": + version: 0.33.5 + resolution: "@img/sharp-linux-x64@npm:0.33.5" + dependencies: + "@img/sharp-libvips-linux-x64": 1.0.4 + dependenciesMeta: + "@img/sharp-libvips-linux-x64": + optional: true + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@img/sharp-linuxmusl-arm64@npm:0.33.5": + version: 0.33.5 + resolution: "@img/sharp-linuxmusl-arm64@npm:0.33.5" + dependencies: + "@img/sharp-libvips-linuxmusl-arm64": 1.0.4 + dependenciesMeta: + "@img/sharp-libvips-linuxmusl-arm64": + optional: true + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@img/sharp-linuxmusl-x64@npm:0.33.5": + version: 0.33.5 + resolution: "@img/sharp-linuxmusl-x64@npm:0.33.5" + dependencies: + "@img/sharp-libvips-linuxmusl-x64": 1.0.4 + dependenciesMeta: + "@img/sharp-libvips-linuxmusl-x64": + optional: true + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@img/sharp-wasm32@npm:0.33.5": + version: 0.33.5 + resolution: "@img/sharp-wasm32@npm:0.33.5" + dependencies: + "@emnapi/runtime": ^1.2.0 + conditions: cpu=wasm32 + languageName: node + linkType: hard + +"@img/sharp-win32-ia32@npm:0.33.5": + version: 0.33.5 + resolution: "@img/sharp-win32-ia32@npm:0.33.5" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@img/sharp-win32-x64@npm:0.33.5": + version: 0.33.5 + resolution: "@img/sharp-win32-x64@npm:0.33.5" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@isaacs/cliui@npm:^8.0.2": version: 8.0.2 resolution: "@isaacs/cliui@npm:8.0.2" @@ -863,47 +1056,47 @@ __metadata: languageName: node linkType: hard -"@lingui/babel-plugin-extract-messages@npm:^5.0.0-next.3": - version: 5.0.0-next.3 - resolution: "@lingui/babel-plugin-extract-messages@npm:5.0.0-next.3" - checksum: a0c7632295c4e07eab9b5754b0f3e2944a7b59dda8cbbdacb5ba5c500b7be9c73b44e114bd1323dc3a6fa4ff64657f7f6d9b8c981facd2c55c782577418f68d8 +"@lingui/babel-plugin-extract-messages@npm:^5.1.2": + version: 5.1.2 + resolution: "@lingui/babel-plugin-extract-messages@npm:5.1.2" + checksum: 93fee41d7554f9c5a50d532f881a47fb96e113f8cdcd0b5aa19ed6436d43b47915459447ffd7f6d4cbd9b0814016e1b62b6f162310359ca2366e4541ac15eb1c languageName: node linkType: hard -"@lingui/babel-plugin-lingui-macro@npm:^5.0.0-next.3": - version: 5.0.0-next.3 - resolution: "@lingui/babel-plugin-lingui-macro@npm:5.0.0-next.3" +"@lingui/babel-plugin-lingui-macro@npm:^5.1.2": + version: 5.1.2 + resolution: "@lingui/babel-plugin-lingui-macro@npm:5.1.2" dependencies: "@babel/core": ^7.20.12 "@babel/runtime": ^7.20.13 "@babel/types": ^7.20.7 - "@lingui/conf": ^5.0.0-next.3 - "@lingui/core": ^5.0.0-next.3 - "@lingui/message-utils": ^5.0.0-next.3 + "@lingui/conf": ^5.1.2 + "@lingui/core": ^5.1.2 + "@lingui/message-utils": ^5.1.2 peerDependencies: babel-plugin-macros: 2 || 3 peerDependenciesMeta: babel-plugin-macros: optional: true - checksum: ac7ebe134c4c324a1945de6cbc1f28c9d821233fa3d5228134034fde420e5f38f9c240cd090de6cae905dfe910496462c304e73d25ecf6a91e23afc3458c6248 + checksum: d66ba012c329efacaf134e0dbda7144640fed453c8ff2394a4fa40371c6cd6d115e9f7ff575bb8c949135bb73d5cba44ff3c651a6391d53e53284cf0f6a207d2 languageName: node linkType: hard -"@lingui/cli@npm:^5.0.0-next.3": - version: 5.0.0-next.3 - resolution: "@lingui/cli@npm:5.0.0-next.3" +"@lingui/cli@npm:^5.1.2": + version: 5.1.2 + resolution: "@lingui/cli@npm:5.1.2" dependencies: "@babel/core": ^7.21.0 "@babel/generator": ^7.21.1 "@babel/parser": ^7.22.0 "@babel/runtime": ^7.21.0 "@babel/types": ^7.21.2 - "@lingui/babel-plugin-extract-messages": ^5.0.0-next.3 - "@lingui/babel-plugin-lingui-macro": ^5.0.0-next.3 - "@lingui/conf": ^5.0.0-next.3 - "@lingui/core": ^5.0.0-next.3 - "@lingui/format-po": ^5.0.0-next.3 - "@lingui/message-utils": ^5.0.0-next.3 + "@lingui/babel-plugin-extract-messages": ^5.1.2 + "@lingui/babel-plugin-lingui-macro": ^5.1.2 + "@lingui/conf": ^5.1.2 + "@lingui/core": ^5.1.2 + "@lingui/format-po": ^5.1.2 + "@lingui/message-utils": ^5.1.2 babel-plugin-macros: ^3.0.1 chalk: ^4.1.0 chokidar: 3.5.1 @@ -924,14 +1117,14 @@ __metadata: ramda: ^0.27.1 source-map: ^0.8.0-beta.0 bin: - lingui: dist/lingui.js - checksum: eada44db8e4c16fa4de50e46cf98889d8b787cf5accfca3edbb8bad9e45f77054e54f2bfffcbbf64f35d2f8199d0349cde69f57a5da49f4b34deb509b065bfd9 + lingui: ./dist/lingui.js + checksum: 055dd8e99726ea76dc7790ec80014e72b4dd5daaa7be8f662bd58b42d0b2f59b54992b440d481b702ccb9c2adb86781fbf2d72d13d9032c2d013ed1e5bbdbafb languageName: node linkType: hard -"@lingui/conf@npm:^5.0.0-next.3": - version: 5.0.0-next.3 - resolution: "@lingui/conf@npm:5.0.0-next.3" +"@lingui/conf@npm:^5.1.2": + version: 5.1.2 + resolution: "@lingui/conf@npm:5.1.2" dependencies: "@babel/runtime": ^7.20.13 chalk: ^4.1.0 @@ -939,94 +1132,94 @@ __metadata: jest-validate: ^29.4.3 jiti: ^1.17.1 lodash.get: ^4.4.2 - checksum: c618ab075f96678fc1bb32326b5b0a2ff43e1ab3320b79493bf8f2525e2fa3fa85215d848eb7b4d2db816671c80c92c680868029c9fc34cceb9a3177fa9126ca + checksum: 2e9b0fec1af6df44ad9023738caf292f122fd898f401001d8278c2a0eb1017bb4b9c9be87fde6439c61a525d0c0138ab219cd54fd9cd4b373d377709fa251cee languageName: node linkType: hard -"@lingui/core@npm:^5.0.0-next.3": - version: 5.0.0-next.3 - resolution: "@lingui/core@npm:5.0.0-next.3" +"@lingui/core@npm:^5.1.2": + version: 5.1.2 + resolution: "@lingui/core@npm:5.1.2" dependencies: "@babel/runtime": ^7.20.13 - "@lingui/message-utils": ^5.0.0-next.3 + "@lingui/message-utils": ^5.1.2 unraw: ^3.0.0 peerDependencies: - "@lingui/babel-plugin-lingui-macro": 5.0.0-next.3 + "@lingui/babel-plugin-lingui-macro": 5.1.2 babel-plugin-macros: 2 || 3 peerDependenciesMeta: "@lingui/babel-plugin-lingui-macro": optional: true babel-plugin-macros: optional: true - checksum: 4544ed44b2bc16ac6c0bf957b470608ba5ae4f62035030e706f9347225cefd0f845872658af728e758118f04cd65c1e7c851ebf6e7d1d7a660d30bf8404883df + checksum: 48e6f03c3324011d326709f42d2ce43f26deffc603e937a22d47544ec0cea12e95ec3b4c2df156f5d27e9b0c4a4456da3e638aebea55a791f43bb11db8b5c61d languageName: node linkType: hard -"@lingui/format-po@npm:^5.0.0-next.3": - version: 5.0.0-next.3 - resolution: "@lingui/format-po@npm:5.0.0-next.3" +"@lingui/format-po@npm:^5.1.2": + version: 5.1.2 + resolution: "@lingui/format-po@npm:5.1.2" dependencies: - "@lingui/conf": ^5.0.0-next.3 - "@lingui/message-utils": ^5.0.0-next.3 + "@lingui/conf": ^5.1.2 + "@lingui/message-utils": ^5.1.2 date-fns: ^3.6.0 pofile: ^1.1.4 - checksum: c73b4e2c4b95e4475e5c676817dc0299e9b46e5bf05f5c9204cc8b99fe65770072464aecdd0c93d4ae4492f384905469258b2786b5d546164e904d97019c9165 + checksum: 66371fdb0e4c8bc29a7db20815bfa5b6167fbc6490766d5ee0cc8380fe9cf1b528c06977e26dc7b653e218e91fe5ebd9483869463396aae92c3d2ddc0a29a605 languageName: node linkType: hard -"@lingui/loader@npm:^5.0.0-next.3": - version: 5.0.0-next.3 - resolution: "@lingui/loader@npm:5.0.0-next.3" +"@lingui/loader@npm:^5.1.2": + version: 5.1.2 + resolution: "@lingui/loader@npm:5.1.2" dependencies: "@babel/runtime": ^7.20.13 - "@lingui/cli": ^5.0.0-next.3 - "@lingui/conf": ^5.0.0-next.3 + "@lingui/cli": ^5.1.2 + "@lingui/conf": ^5.1.2 peerDependencies: webpack: ^5.0.0 - checksum: 3dc90e0c0c83695fba9f2ff135e12fb63f26600b578182ecdeb6df0748461b619dc49bc4e9e4401b334aa1acdb2d0b0ecbdd08c2e2fc4366631978b6ef116146 + checksum: b7e4db6b84bb62dd876689f8310a84c3275753fa1c590868efaf18f18865409c58abf61e90286b71b981f68609d6cdbb6ab8cd3275cdb0bfd560000fb62cab80 languageName: node linkType: hard -"@lingui/message-utils@npm:^5.0.0-next.3": - version: 5.0.0-next.3 - resolution: "@lingui/message-utils@npm:5.0.0-next.3" +"@lingui/message-utils@npm:^5.1.2": + version: 5.1.2 + resolution: "@lingui/message-utils@npm:5.1.2" dependencies: "@messageformat/parser": ^5.0.0 js-sha256: ^0.10.1 - checksum: 9aad0d2ae0829231b6683d2681aeb1703d06093bfc9a65037e58d2051496c1efe92f8d72edda85695c53aff5c075e28b4601bf10ad76d0883d74e662e1cdb02d + checksum: 49262a9a6a86c1dd7b6e1de3f8adc18b0498f45e2d3708163206ae9907f5e3b9562590a6744e97b696bf003fbbf8f2be5a8cc3b4610f6fd4dc6db30ea8910728 languageName: node linkType: hard -"@lingui/react@npm:^5.0.0-next.3": - version: 5.0.0-next.3 - resolution: "@lingui/react@npm:5.0.0-next.3" +"@lingui/react@npm:^5.1.2": + version: 5.1.2 + resolution: "@lingui/react@npm:5.1.2" dependencies: "@babel/runtime": ^7.20.13 - "@lingui/core": ^5.0.0-next.3 + "@lingui/core": ^5.1.2 peerDependencies: - "@lingui/babel-plugin-lingui-macro": 5.0.0-next.3 + "@lingui/babel-plugin-lingui-macro": 5.1.2 babel-plugin-macros: 2 || 3 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 peerDependenciesMeta: "@lingui/babel-plugin-lingui-macro": optional: true babel-plugin-macros: optional: true - checksum: c02d01d11fe308718c7cb497811a3f4f7ee33ae0bbb217e1428ece9318d24d70c2649cb6dd4d430585fb8d8384e2f9e8ff7d1aa4cce0a1d2f49e23c28e3660dd + checksum: 3824287a4bc074a7ee11e560a468f70efbc81070ff511218dbef9c846f38088a6db8203b6f91f29106c4078a46763963822f6f90440f5e48dc8f04349fd2c9a4 languageName: node linkType: hard -"@lingui/swc-plugin@npm:^5.0.0-next.2": - version: 5.0.0-next.2 - resolution: "@lingui/swc-plugin@npm:5.0.0-next.2" +"@lingui/swc-plugin@npm:^5.0.1": + version: 5.0.1 + resolution: "@lingui/swc-plugin@npm:5.0.1" peerDependencies: - "@lingui/macro": 4 + "@lingui/core": 5 peerDependenciesMeta: "@swc/core": optional: true next: optional: true - checksum: 4e5655f699577d22aa99099393d2e5bd7eaa94db011c1196d63c91cac5ea590796f1d1685aa19e2213195b55020350b9ac7d44a39051621da5e1a5cb3349bd74 + checksum: 54ac14199da87c8eb62c35c340035a21e2309c2007026fe16c8e9681f1aaaa48016f510c40b978a8577ddfd063f75c82f3b75cd3f6d2ffca278b56ad2d8185b5 languageName: node linkType: hard @@ -1039,81 +1232,74 @@ __metadata: languageName: node linkType: hard -"@next/env@npm:14.2.15": - version: 14.2.15 - resolution: "@next/env@npm:14.2.15" - checksum: bf794604ee62e86ca092120c790815c0caf367009966baa14e75dbd8454a59df524327539d5febc7da42841c3bf6a10443ae0f95280599352a8def56291857fd +"@next/env@npm:15.0.1": + version: 15.0.1 + resolution: "@next/env@npm:15.0.1" + checksum: c98ad82c9e3f593b556ba35fd1ee429638cd289449f6c34d00cc9ec68c3f45806cb8496e4397f679f3b62465e482a64cc8c2e1e120142930877118f3f12fc6bd languageName: node linkType: hard -"@next/eslint-plugin-next@npm:14.2.3": - version: 14.2.3 - resolution: "@next/eslint-plugin-next@npm:14.2.3" +"@next/eslint-plugin-next@npm:15.0.1": + version: 15.0.1 + resolution: "@next/eslint-plugin-next@npm:15.0.1" dependencies: - glob: 10.3.10 - checksum: f149344f0f347e02a7d2302c0e318a42a565e6930cd7a72b4681e157a0aa2c5079d2c5cf019b9b58a1e19ff5a3fe273fd80d53add8b3c1a9fe5b7ed70d70ae4a + fast-glob: 3.3.1 + checksum: f01b7a47765e9fb37d60fae960592e969c9255242f59b9f99c1ca320da27572e6a2da15e458b1249f11b5f6f5c6df2d125fc1e23203f43b480bc7ee642d65417 languageName: node linkType: hard -"@next/swc-darwin-arm64@npm:14.2.15": - version: 14.2.15 - resolution: "@next/swc-darwin-arm64@npm:14.2.15" +"@next/swc-darwin-arm64@npm:15.0.1": + version: 15.0.1 + resolution: "@next/swc-darwin-arm64@npm:15.0.1" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@next/swc-darwin-x64@npm:14.2.15": - version: 14.2.15 - resolution: "@next/swc-darwin-x64@npm:14.2.15" +"@next/swc-darwin-x64@npm:15.0.1": + version: 15.0.1 + resolution: "@next/swc-darwin-x64@npm:15.0.1" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@next/swc-linux-arm64-gnu@npm:14.2.15": - version: 14.2.15 - resolution: "@next/swc-linux-arm64-gnu@npm:14.2.15" +"@next/swc-linux-arm64-gnu@npm:15.0.1": + version: 15.0.1 + resolution: "@next/swc-linux-arm64-gnu@npm:15.0.1" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@next/swc-linux-arm64-musl@npm:14.2.15": - version: 14.2.15 - resolution: "@next/swc-linux-arm64-musl@npm:14.2.15" +"@next/swc-linux-arm64-musl@npm:15.0.1": + version: 15.0.1 + resolution: "@next/swc-linux-arm64-musl@npm:15.0.1" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@next/swc-linux-x64-gnu@npm:14.2.15": - version: 14.2.15 - resolution: "@next/swc-linux-x64-gnu@npm:14.2.15" +"@next/swc-linux-x64-gnu@npm:15.0.1": + version: 15.0.1 + resolution: "@next/swc-linux-x64-gnu@npm:15.0.1" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@next/swc-linux-x64-musl@npm:14.2.15": - version: 14.2.15 - resolution: "@next/swc-linux-x64-musl@npm:14.2.15" +"@next/swc-linux-x64-musl@npm:15.0.1": + version: 15.0.1 + resolution: "@next/swc-linux-x64-musl@npm:15.0.1" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@next/swc-win32-arm64-msvc@npm:14.2.15": - version: 14.2.15 - resolution: "@next/swc-win32-arm64-msvc@npm:14.2.15" +"@next/swc-win32-arm64-msvc@npm:15.0.1": + version: 15.0.1 + resolution: "@next/swc-win32-arm64-msvc@npm:15.0.1" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@next/swc-win32-ia32-msvc@npm:14.2.15": - version: 14.2.15 - resolution: "@next/swc-win32-ia32-msvc@npm:14.2.15" - conditions: os=win32 & cpu=ia32 - languageName: node - linkType: hard - -"@next/swc-win32-x64-msvc@npm:14.2.15": - version: 14.2.15 - resolution: "@next/swc-win32-x64-msvc@npm:14.2.15" +"@next/swc-win32-x64-msvc@npm:15.0.1": + version: 15.0.1 + resolution: "@next/swc-win32-x64-msvc@npm:15.0.1" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -1165,17 +1351,17 @@ __metadata: languageName: node linkType: hard -"@pkgjs/parseargs@npm:^0.11.0": - version: 0.11.0 - resolution: "@pkgjs/parseargs@npm:0.11.0" - checksum: 6ad6a00fc4f2f2cfc6bff76fb1d88b8ee20bc0601e18ebb01b6d4be583733a860239a521a7fbca73b612e66705078809483549d2b18f370eb346c5155c8e4a0f +"@rtsao/scc@npm:^1.1.0": + version: 1.1.0 + resolution: "@rtsao/scc@npm:1.1.0" + checksum: 17d04adf404e04c1e61391ed97bca5117d4c2767a76ae3e879390d6dec7b317fcae68afbf9e98badee075d0b64fa60f287729c4942021b4d19cd01db77385c01 languageName: node linkType: hard -"@rushstack/eslint-patch@npm:^1.3.3": - version: 1.10.3 - resolution: "@rushstack/eslint-patch@npm:1.10.3" - checksum: 1042779367ee102576a3c132f052d718d7111fee9f815758a72b21e8145620f7d3403c14fcde3b4cfa1cbc14b08b8519151ff77d0f353bf647f0a0a16eafdef5 +"@rushstack/eslint-patch@npm:^1.10.3": + version: 1.10.4 + resolution: "@rushstack/eslint-patch@npm:1.10.4" + checksum: ec17ac954ed01e9c714e29ae00da29099234a71615d6f61f2da5c7beeef283f5619132114faf9481cb1ca7b4417aed74c05a54d416e4d8facc189bb216d49066 languageName: node linkType: hard @@ -1186,20 +1372,19 @@ __metadata: languageName: node linkType: hard -"@swc/counter@npm:^0.1.3": +"@swc/counter@npm:0.1.3": version: 0.1.3 resolution: "@swc/counter@npm:0.1.3" checksum: df8f9cfba9904d3d60f511664c70d23bb323b3a0803ec9890f60133954173047ba9bdeabce28cd70ba89ccd3fd6c71c7b0bd58be85f611e1ffbe5d5c18616598 languageName: node linkType: hard -"@swc/helpers@npm:0.5.5": - version: 0.5.5 - resolution: "@swc/helpers@npm:0.5.5" +"@swc/helpers@npm:0.5.13": + version: 0.5.13 + resolution: "@swc/helpers@npm:0.5.13" dependencies: - "@swc/counter": ^0.1.3 tslib: ^2.4.0 - checksum: d4f207b191e54b29460804ddf2984ba6ece1d679a0b2f6a9c765dcf27bba92c5769e7965668a4546fb9f1021eaf0ff9be4bf5c235ce12adcd65acdfe77187d11 + checksum: d50c2c10da6ef940af423c6b03ad9c3c94cf9de59314b1e921a7d1bcc081a6074481c9d67b655fc8fe66a73288f98b25950743792a63882bfb5793b362494fc0 languageName: node linkType: hard @@ -1264,28 +1449,28 @@ __metadata: linkType: hard "@types/prop-types@npm:*": - version: 15.7.3 - resolution: "@types/prop-types@npm:15.7.3" - checksum: 41831d53c44c9eeafdaf9762bcb4553c13a3bbf990745ed9065a1cc3581b80633113b53fd49b202bf51731b258da5d0a9aa09c9035d5af7f78b0f6bc273f1325 + version: 15.7.13 + resolution: "@types/prop-types@npm:15.7.13" + checksum: 8935cad87c683c665d09a055919d617fe951cb3b2d5c00544e3a913f861a2bd8d2145b51c9aa6d2457d19f3107ab40784c40205e757232f6a80cc8b1c815513c languageName: node linkType: hard "@types/react-dom@npm:^18.3.0": - version: 18.3.0 - resolution: "@types/react-dom@npm:18.3.0" + version: 18.3.1 + resolution: "@types/react-dom@npm:18.3.1" dependencies: "@types/react": "*" - checksum: a0cd9b1b815a6abd2a367a9eabdd8df8dd8f13f95897b2f9e1359ea3ac6619f957c1432ece004af7d95e2a7caddbba19faa045f831f32d6263483fc5404a7596 + checksum: ad28ecce3915d30dc76adc2a1373fda1745ba429cea290e16c6628df9a05fd80b6403c8e87d78b45e6c60e51df7a67add389ab62b90070fbfdc9bda8307d9953 languageName: node linkType: hard "@types/react@npm:*, @types/react@npm:^18.3.3": - version: 18.3.3 - resolution: "@types/react@npm:18.3.3" + version: 18.3.12 + resolution: "@types/react@npm:18.3.12" dependencies: "@types/prop-types": "*" csstype: ^3.0.2 - checksum: c63d6a78163244e2022b01ef79b0baec4fe4da3475dc4a90bb8accefad35ef0c43560fd0312e5974f92a0f1108aa4d669ac72d73d66396aa060ea03b5d2e3873 + checksum: 4ab1577a8c2105a5e316536f724117c90eee5f4bd5c137fc82a2253d8c1fd299dedaa07e8dfc95d6e2f04a4be3cb8b0e1b06098c6233ebd55c508d88099395b7 languageName: node linkType: hard @@ -1305,67 +1490,119 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/parser@npm:^5.4.2 || ^6.0.0 || 7.0.0 - 7.2.0": - version: 7.2.0 - resolution: "@typescript-eslint/parser@npm:7.2.0" +"@typescript-eslint/eslint-plugin@npm:^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0": + version: 8.12.2 + resolution: "@typescript-eslint/eslint-plugin@npm:8.12.2" dependencies: - "@typescript-eslint/scope-manager": 7.2.0 - "@typescript-eslint/types": 7.2.0 - "@typescript-eslint/typescript-estree": 7.2.0 - "@typescript-eslint/visitor-keys": 7.2.0 + "@eslint-community/regexpp": ^4.10.0 + "@typescript-eslint/scope-manager": 8.12.2 + "@typescript-eslint/type-utils": 8.12.2 + "@typescript-eslint/utils": 8.12.2 + "@typescript-eslint/visitor-keys": 8.12.2 + graphemer: ^1.4.0 + ignore: ^5.3.1 + natural-compare: ^1.4.0 + ts-api-utils: ^1.3.0 + peerDependencies: + "@typescript-eslint/parser": ^8.0.0 || ^8.0.0-alpha.0 + eslint: ^8.57.0 || ^9.0.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: a1707704d91cd525ece0cf5a978f17cb309bb8918d65ded349e18b0aa364f585555d018a365cb0ab9450f273912fc07fae5600f34294e637151b244ba4485bc2 + languageName: node + linkType: hard + +"@typescript-eslint/parser@npm:^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0": + version: 8.12.2 + resolution: "@typescript-eslint/parser@npm:8.12.2" + dependencies: + "@typescript-eslint/scope-manager": 8.12.2 + "@typescript-eslint/types": 8.12.2 + "@typescript-eslint/typescript-estree": 8.12.2 + "@typescript-eslint/visitor-keys": 8.12.2 debug: ^4.3.4 peerDependencies: - eslint: ^8.56.0 + eslint: ^8.57.0 || ^9.0.0 peerDependenciesMeta: typescript: optional: true - checksum: 21deb2e7ad1fc730f637af08f5c549f30ef5b50f424639f57f5bc01274e648db47c696bb994bb24e87424b593d4084e306447c9431a0c0e4807952996db306f4 + checksum: 201f3e4b6073547726e447455b630c04816b0611346c1b9522493c47596d906c8edaf37d43e0d0e121e2965b374d9547c351e1fa0e125bceb37063e0fa806065 languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:7.2.0": - version: 7.2.0 - resolution: "@typescript-eslint/scope-manager@npm:7.2.0" +"@typescript-eslint/scope-manager@npm:8.12.2": + version: 8.12.2 + resolution: "@typescript-eslint/scope-manager@npm:8.12.2" dependencies: - "@typescript-eslint/types": 7.2.0 - "@typescript-eslint/visitor-keys": 7.2.0 - checksum: b4ef8e35a56f590fa56cf769e111907828abb4793f482bf57e3fc8c987294ec119acb96359aa4b0150eea7416816e0b2d8635dccd1e4a5c2b02678b0f74def94 + "@typescript-eslint/types": 8.12.2 + "@typescript-eslint/visitor-keys": 8.12.2 + checksum: dd960238f1cf0f24e6c16525f0cbdb6cf65bfc3cfe650f376ecda2583c378c2e3a7eb4c2d57e04e009626d009018226b722a670ca283086c2a6cc1931c2268d8 languageName: node linkType: hard -"@typescript-eslint/types@npm:7.2.0": - version: 7.2.0 - resolution: "@typescript-eslint/types@npm:7.2.0" - checksum: 237acd24aa55b762ee98904e4f422ba86579325200dcd058b3cbfe70775926e7f00ee0295788d81eb728f3a6326fe4401c648aee9eb1480d9030a441c17520e8 +"@typescript-eslint/type-utils@npm:8.12.2": + version: 8.12.2 + resolution: "@typescript-eslint/type-utils@npm:8.12.2" + dependencies: + "@typescript-eslint/typescript-estree": 8.12.2 + "@typescript-eslint/utils": 8.12.2 + debug: ^4.3.4 + ts-api-utils: ^1.3.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: a8f540d84674c4919d6f038848add5b4d41ef39cdf572734a13b75f0f797b00d45903b179dc7c25f7ae7690f9dbaf115e5bda596d9e439b1a0a8d7f9d799260e languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:7.2.0": - version: 7.2.0 - resolution: "@typescript-eslint/typescript-estree@npm:7.2.0" +"@typescript-eslint/types@npm:8.12.2": + version: 8.12.2 + resolution: "@typescript-eslint/types@npm:8.12.2" + checksum: b0f7effdac842428b15d76710295a8b4f1fe1ff14e40fbb10c8f571c11fd517d75d76decbecf90412bc5eabce0cd4ac0acf53d6b0d8ba2bdde86ab3b627bdac2 + languageName: node + linkType: hard + +"@typescript-eslint/typescript-estree@npm:8.12.2": + version: 8.12.2 + resolution: "@typescript-eslint/typescript-estree@npm:8.12.2" dependencies: - "@typescript-eslint/types": 7.2.0 - "@typescript-eslint/visitor-keys": 7.2.0 + "@typescript-eslint/types": 8.12.2 + "@typescript-eslint/visitor-keys": 8.12.2 debug: ^4.3.4 - globby: ^11.1.0 + fast-glob: ^3.3.2 is-glob: ^4.0.3 - minimatch: 9.0.3 - semver: ^7.5.4 - ts-api-utils: ^1.0.1 + minimatch: ^9.0.4 + semver: ^7.6.0 + ts-api-utils: ^1.3.0 peerDependenciesMeta: typescript: optional: true - checksum: fe882195cad45bb67e7e127efa9c31977348d0ca923ef26bb9fbd03a2ab64e6772e6e60954ba07a437684fae8e35897d71f0e6a1ef8fbf3f0025cd314960cd9d + checksum: 923d297ba891cbaf4f00618db2313123238657b179f56a5d42d02a4e6433c513f73a9dd9aa62cd2c5b9fb2c5912a59319eb0a14ef2403792e15757142722309a languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:7.2.0": - version: 7.2.0 - resolution: "@typescript-eslint/visitor-keys@npm:7.2.0" +"@typescript-eslint/utils@npm:8.12.2": + version: 8.12.2 + resolution: "@typescript-eslint/utils@npm:8.12.2" dependencies: - "@typescript-eslint/types": 7.2.0 - eslint-visitor-keys: ^3.4.1 - checksum: d9b11b52737450f213cea5c6e07e4672684da48325905c096ee09302b6b261c0bb226e1e350011bdf127c0cbbdd9e6474c905befdfa0a2118fc89ece16770f2b + "@eslint-community/eslint-utils": ^4.4.0 + "@typescript-eslint/scope-manager": 8.12.2 + "@typescript-eslint/types": 8.12.2 + "@typescript-eslint/typescript-estree": 8.12.2 + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + checksum: 7ae4ef40d0961642fc31644c47e05f751369b47f3d9f5ea4e6c6eaa09d534efc6a2ea89f12368eed7dc8b32a7378e533f84379f70f2acd85418815f63b249b18 + languageName: node + linkType: hard + +"@typescript-eslint/visitor-keys@npm:8.12.2": + version: 8.12.2 + resolution: "@typescript-eslint/visitor-keys@npm:8.12.2" + dependencies: + "@typescript-eslint/types": 8.12.2 + eslint-visitor-keys: ^3.4.3 + checksum: 97b919a0f0982e16a46ed568ae195906ec4aed7db358308d2311e9829ceb7f521e4a2017b3bdedad264ee61fdf08d3d12ada7d5622f13b20ac324118fe5b8447 languageName: node linkType: hard @@ -1467,9 +1704,9 @@ __metadata: linkType: hard "ansi-regex@npm:^6.0.1": - version: 6.0.1 - resolution: "ansi-regex@npm:6.0.1" - checksum: 1ff8b7667cded1de4fa2c9ae283e979fc87036864317da86a2e546725f96406746411d0d85e87a2d12fa5abd715d90006de7fa4fa0477c92321ad3b4c7d4e169 + version: 6.1.0 + resolution: "ansi-regex@npm:6.1.0" + checksum: 495834a53b0856c02acd40446f7130cb0f8284f4a39afdab20d5dc42b2e198b1196119fe887beed8f9055c4ff2055e3b2f6d4641d0be018cdfb64fedf6fc1aac languageName: node linkType: hard @@ -1539,12 +1776,10 @@ __metadata: languageName: node linkType: hard -"aria-query@npm:^5.3.0": - version: 5.3.0 - resolution: "aria-query@npm:5.3.0" - dependencies: - dequal: ^2.0.3 - checksum: 305bd73c76756117b59aba121d08f413c7ff5e80fa1b98e217a3443fcddb9a232ee790e24e432b59ae7625aebcf4c47cb01c2cac872994f0b426f5bdfcd96ba9 +"aria-query@npm:^5.3.2": + version: 5.3.2 + resolution: "aria-query@npm:5.3.2" + checksum: d971175c85c10df0f6d14adfe6f1292409196114ab3c62f238e208b53103686f46cc70695a4f775b73bc65f6a09b6a092fd963c4f3a5a7d690c8fc5094925717 languageName: node linkType: hard @@ -1571,7 +1806,7 @@ __metadata: languageName: node linkType: hard -"array-includes@npm:^3.1.6, array-includes@npm:^3.1.7": +"array-includes@npm:^3.1.6, array-includes@npm:^3.1.8": version: 3.1.8 resolution: "array-includes@npm:3.1.8" dependencies: @@ -1585,14 +1820,7 @@ __metadata: languageName: node linkType: hard -"array-union@npm:^2.1.0": - version: 2.1.0 - resolution: "array-union@npm:2.1.0" - checksum: 5bee12395cba82da674931df6d0fea23c4aa4660cb3b338ced9f828782a65caa232573e6bf3968f23e0c5eb301764a382cef2f128b170a9dc59de0e36c39f98d - languageName: node - linkType: hard - -"array.prototype.findlast@npm:^1.2.4": +"array.prototype.findlast@npm:^1.2.5": version: 1.2.5 resolution: "array.prototype.findlast@npm:1.2.5" dependencies: @@ -1606,7 +1834,7 @@ __metadata: languageName: node linkType: hard -"array.prototype.findlastindex@npm:^1.2.3": +"array.prototype.findlastindex@npm:^1.2.5": version: 1.2.5 resolution: "array.prototype.findlastindex@npm:1.2.5" dependencies: @@ -1644,28 +1872,16 @@ __metadata: languageName: node linkType: hard -"array.prototype.toreversed@npm:^1.1.2": - version: 1.1.2 - resolution: "array.prototype.toreversed@npm:1.1.2" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.2.0 - es-abstract: ^1.22.1 - es-shim-unscopables: ^1.0.0 - checksum: 58598193426282155297bedf950dc8d464624a0d81659822fb73124286688644cb7e0e4927a07f3ab2daaeb6617b647736cc3a5e6ca7ade5bb8e573b284e6240 - languageName: node - linkType: hard - -"array.prototype.tosorted@npm:^1.1.3": - version: 1.1.3 - resolution: "array.prototype.tosorted@npm:1.1.3" +"array.prototype.tosorted@npm:^1.1.4": + version: 1.1.4 + resolution: "array.prototype.tosorted@npm:1.1.4" dependencies: - call-bind: ^1.0.5 + call-bind: ^1.0.7 define-properties: ^1.2.1 - es-abstract: ^1.22.3 - es-errors: ^1.1.0 + es-abstract: ^1.23.3 + es-errors: ^1.3.0 es-shim-unscopables: ^1.0.2 - checksum: 555e8808086bbde9e634c5dc5a8c0a2f1773075447b43b2fa76ab4f94f4e90f416d2a4f881024e1ce1a2931614caf76cd6b408af901c9d7cd13061d0d268f5af + checksum: e4142d6f556bcbb4f393c02e7dbaea9af8f620c040450c2be137c9cbbd1a17f216b9c688c5f2c08fbb038ab83f55993fa6efdd9a05881d84693c7bcb5422127a languageName: node linkType: hard @@ -1701,19 +1917,17 @@ __metadata: languageName: node linkType: hard -"axe-core@npm:=4.7.0": - version: 4.7.0 - resolution: "axe-core@npm:4.7.0" - checksum: f086bcab42be1761ba2b0b127dec350087f4c3a853bba8dd58f69d898cefaac31a1561da23146f6f3c07954c76171d1f2ce460e555e052d2b02cd79af628fa4a +"axe-core@npm:^4.10.0": + version: 4.10.2 + resolution: "axe-core@npm:4.10.2" + checksum: 2b9b1c93ea73ea9f206604e4e17bd771d2d835f077bde54517d73028b8865c69b209460e73d5b109968cbdb39ab3d28943efa5695189bd79e16421ce1706719e languageName: node linkType: hard -"axobject-query@npm:^3.2.1": - version: 3.2.1 - resolution: "axobject-query@npm:3.2.1" - dependencies: - dequal: ^2.0.3 - checksum: a94047e702b57c91680e6a952ec4a1aaa2cfd0d80ead76bc8c954202980d8c51968a6ea18b4d8010e8e2cf95676533d8022a8ebba9abc1dfe25686721df26fd2 +"axobject-query@npm:^4.1.0": + version: 4.1.0 + resolution: "axobject-query@npm:4.1.0" + checksum: 7d1e87bf0aa7ae7a76cd39ab627b7c48fda3dc40181303d9adce4ba1d5b5ce73b5e5403ee6626ec8e91090448c887294d6144e24b6741a976f5be9347e3ae1df languageName: node linkType: hard @@ -2060,13 +2274,23 @@ __metadata: languageName: node linkType: hard -"color-name@npm:~1.1.4": +"color-name@npm:^1.0.0, color-name@npm:~1.1.4": version: 1.1.4 resolution: "color-name@npm:1.1.4" checksum: b0445859521eb4021cd0fb0cc1a75cecf67fceecae89b63f62b201cca8d345baf8b952c966862a9d9a2632987d4f6581f0ec8d957dfacece86f0a7919316f610 languageName: node linkType: hard +"color-string@npm:^1.9.0": + version: 1.9.1 + resolution: "color-string@npm:1.9.1" + dependencies: + color-name: ^1.0.0 + simple-swizzle: ^0.2.2 + checksum: c13fe7cff7885f603f49105827d621ce87f4571d78ba28ef4a3f1a104304748f620615e6bf065ecd2145d0d9dad83a3553f52bb25ede7239d18e9f81622f1cc5 + languageName: node + linkType: hard + "color-support@npm:^1.1.3": version: 1.1.3 resolution: "color-support@npm:1.1.3" @@ -2076,6 +2300,16 @@ __metadata: languageName: node linkType: hard +"color@npm:^4.2.3": + version: 4.2.3 + resolution: "color@npm:4.2.3" + dependencies: + color-convert: ^2.0.1 + color-string: ^1.9.0 + checksum: 0579629c02c631b426780038da929cca8e8d80a40158b09811a0112a107c62e10e4aad719843b791b1e658ab4e800558f2e87ca4522c8b32349d497ecb6adeb4 + languageName: node + linkType: hard + "colors@npm:1.0.3": version: 1.0.3 resolution: "colors@npm:1.0.3" @@ -2143,7 +2377,18 @@ __metadata: languageName: node linkType: hard -"cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.2": +"cross-spawn@npm:^7.0.0": + version: 7.0.6 + resolution: "cross-spawn@npm:7.0.6" + dependencies: + path-key: ^3.1.0 + shebang-command: ^2.0.0 + which: ^2.0.1 + checksum: 8d306efacaf6f3f60e0224c287664093fa9185680b2d195852ba9a863f85d02dcc737094c6e512175f8ee0161f9b87c73c6826034c2422e39de7d6569cf4503b + languageName: node + linkType: hard + +"cross-spawn@npm:^7.0.2": version: 7.0.3 resolution: "cross-spawn@npm:7.0.3" dependencies: @@ -2312,19 +2557,10 @@ __metadata: languageName: node linkType: hard -"dequal@npm:^2.0.3": +"detect-libc@npm:^2.0.3": version: 2.0.3 - resolution: "dequal@npm:2.0.3" - checksum: 8679b850e1a3d0ebbc46ee780d5df7b478c23f335887464023a631d1b9af051ad4a6595a44220f9ff8ff95a8ddccf019b5ad778a976fd7bbf77383d36f412f90 - languageName: node - linkType: hard - -"dir-glob@npm:^3.0.1": - version: 3.0.1 - resolution: "dir-glob@npm:3.0.1" - dependencies: - path-type: ^4.0.0 - checksum: fa05e18324510d7283f55862f3161c6759a3f2f8dbce491a2fc14c8324c498286c54282c1f0e933cb930da8419b30679389499b919122952a4f8592362ef4615 + resolution: "detect-libc@npm:2.0.3" + checksum: 2ba6a939ae55f189aea996ac67afceb650413c7a34726ee92c40fb0deb2400d57ef94631a8a3f052055eea7efb0f99a9b5e6ce923415daa3e68221f963cfc27d languageName: node linkType: hard @@ -2423,59 +2659,7 @@ __metadata: languageName: node linkType: hard -"es-abstract@npm:^1.18.0-next.2": - version: 1.18.3 - resolution: "es-abstract@npm:1.18.3" - dependencies: - call-bind: ^1.0.2 - es-to-primitive: ^1.2.1 - function-bind: ^1.1.1 - get-intrinsic: ^1.1.1 - has: ^1.0.3 - has-symbols: ^1.0.2 - is-callable: ^1.2.3 - is-negative-zero: ^2.0.1 - is-regex: ^1.1.3 - is-string: ^1.0.6 - object-inspect: ^1.10.3 - object-keys: ^1.1.1 - object.assign: ^4.1.2 - string.prototype.trimend: ^1.0.4 - string.prototype.trimstart: ^1.0.4 - unbox-primitive: ^1.0.1 - checksum: 6bbf526b5a60cdbd390397644facbf654fc6616564614533a5ce223ecc185f7812a1f45c3ab6d0334b4ff2e8f554237539f4d05a0fceb036be24dd5d1ec022b0 - languageName: node - linkType: hard - -"es-abstract@npm:^1.19.0": - version: 1.19.1 - resolution: "es-abstract@npm:1.19.1" - dependencies: - call-bind: ^1.0.2 - es-to-primitive: ^1.2.1 - function-bind: ^1.1.1 - get-intrinsic: ^1.1.1 - get-symbol-description: ^1.0.0 - has: ^1.0.3 - has-symbols: ^1.0.2 - internal-slot: ^1.0.3 - is-callable: ^1.2.4 - is-negative-zero: ^2.0.1 - is-regex: ^1.1.4 - is-shared-array-buffer: ^1.0.1 - is-string: ^1.0.7 - is-weakref: ^1.0.1 - object-inspect: ^1.11.0 - object-keys: ^1.1.1 - object.assign: ^4.1.2 - string.prototype.trimend: ^1.0.4 - string.prototype.trimstart: ^1.0.4 - unbox-primitive: ^1.0.1 - checksum: b6be8410672c5364db3fb01eb786e30c7b4bb32b4af63d381c08840f4382c4a168e7855cd338bf59d4f1a1a1138f4d748d1fd40ec65aaa071876f9e9fbfed949 - languageName: node - linkType: hard - -"es-abstract@npm:^1.22.1, es-abstract@npm:^1.22.3, es-abstract@npm:^1.23.0, es-abstract@npm:^1.23.1, es-abstract@npm:^1.23.2, es-abstract@npm:^1.23.3": +"es-abstract@npm:^1.17.5, es-abstract@npm:^1.22.1, es-abstract@npm:^1.22.3, es-abstract@npm:^1.23.0, es-abstract@npm:^1.23.1, es-abstract@npm:^1.23.2, es-abstract@npm:^1.23.3": version: 1.23.3 resolution: "es-abstract@npm:1.23.3" dependencies: @@ -2529,6 +2713,58 @@ __metadata: languageName: node linkType: hard +"es-abstract@npm:^1.18.0-next.2": + version: 1.18.3 + resolution: "es-abstract@npm:1.18.3" + dependencies: + call-bind: ^1.0.2 + es-to-primitive: ^1.2.1 + function-bind: ^1.1.1 + get-intrinsic: ^1.1.1 + has: ^1.0.3 + has-symbols: ^1.0.2 + is-callable: ^1.2.3 + is-negative-zero: ^2.0.1 + is-regex: ^1.1.3 + is-string: ^1.0.6 + object-inspect: ^1.10.3 + object-keys: ^1.1.1 + object.assign: ^4.1.2 + string.prototype.trimend: ^1.0.4 + string.prototype.trimstart: ^1.0.4 + unbox-primitive: ^1.0.1 + checksum: 6bbf526b5a60cdbd390397644facbf654fc6616564614533a5ce223ecc185f7812a1f45c3ab6d0334b4ff2e8f554237539f4d05a0fceb036be24dd5d1ec022b0 + languageName: node + linkType: hard + +"es-abstract@npm:^1.19.0": + version: 1.19.1 + resolution: "es-abstract@npm:1.19.1" + dependencies: + call-bind: ^1.0.2 + es-to-primitive: ^1.2.1 + function-bind: ^1.1.1 + get-intrinsic: ^1.1.1 + get-symbol-description: ^1.0.0 + has: ^1.0.3 + has-symbols: ^1.0.2 + internal-slot: ^1.0.3 + is-callable: ^1.2.4 + is-negative-zero: ^2.0.1 + is-regex: ^1.1.4 + is-shared-array-buffer: ^1.0.1 + is-string: ^1.0.7 + is-weakref: ^1.0.1 + object-inspect: ^1.11.0 + object-keys: ^1.1.1 + object.assign: ^4.1.2 + string.prototype.trimend: ^1.0.4 + string.prototype.trimstart: ^1.0.4 + unbox-primitive: ^1.0.1 + checksum: b6be8410672c5364db3fb01eb786e30c7b4bb32b4af63d381c08840f4382c4a168e7855cd338bf59d4f1a1a1138f4d748d1fd40ec65aaa071876f9e9fbfed949 + languageName: node + linkType: hard + "es-define-property@npm:^1.0.0": version: 1.0.0 resolution: "es-define-property@npm:1.0.0" @@ -2538,16 +2774,16 @@ __metadata: languageName: node linkType: hard -"es-errors@npm:^1.1.0, es-errors@npm:^1.2.1, es-errors@npm:^1.3.0": +"es-errors@npm:^1.2.1, es-errors@npm:^1.3.0": version: 1.3.0 resolution: "es-errors@npm:1.3.0" checksum: ec1414527a0ccacd7f15f4a3bc66e215f04f595ba23ca75cdae0927af099b5ec865f9f4d33e9d7e86f512f252876ac77d4281a7871531a50678132429b1271b5 languageName: node linkType: hard -"es-iterator-helpers@npm:^1.0.15, es-iterator-helpers@npm:^1.0.17": - version: 1.0.19 - resolution: "es-iterator-helpers@npm:1.0.19" +"es-iterator-helpers@npm:^1.1.0": + version: 1.1.0 + resolution: "es-iterator-helpers@npm:1.1.0" dependencies: call-bind: ^1.0.7 define-properties: ^1.2.1 @@ -2556,14 +2792,14 @@ __metadata: es-set-tostringtag: ^2.0.3 function-bind: ^1.1.2 get-intrinsic: ^1.2.4 - globalthis: ^1.0.3 + globalthis: ^1.0.4 has-property-descriptors: ^1.0.2 has-proto: ^1.0.3 has-symbols: ^1.0.3 internal-slot: ^1.0.7 - iterator.prototype: ^1.1.2 + iterator.prototype: ^1.1.3 safe-array-concat: ^1.1.2 - checksum: 7ae112b88359fbaf4b9d7d1d1358ae57c5138768c57ba3a8fb930393662653b0512bfd7917c15890d1471577fb012fee8b73b4465e59b331739e6ee94f961683 + checksum: 4ba3a32ab7ba05b85f0ae30604feeb8ffd801fe762e9df9577bd220a96b9eaa2e90af8e6bdc498e523051f293955e2f7d2bddd34de71e1428a1b8ff3fd961016 languageName: node linkType: hard @@ -2724,26 +2960,27 @@ __metadata: languageName: node linkType: hard -"eslint-config-next@npm:^14.2.3": - version: 14.2.3 - resolution: "eslint-config-next@npm:14.2.3" +"eslint-config-next@npm:15.0.1": + version: 15.0.1 + resolution: "eslint-config-next@npm:15.0.1" dependencies: - "@next/eslint-plugin-next": 14.2.3 - "@rushstack/eslint-patch": ^1.3.3 - "@typescript-eslint/parser": ^5.4.2 || ^6.0.0 || 7.0.0 - 7.2.0 + "@next/eslint-plugin-next": 15.0.1 + "@rushstack/eslint-patch": ^1.10.3 + "@typescript-eslint/eslint-plugin": ^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0 + "@typescript-eslint/parser": ^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0 eslint-import-resolver-node: ^0.3.6 eslint-import-resolver-typescript: ^3.5.2 - eslint-plugin-import: ^2.28.1 - eslint-plugin-jsx-a11y: ^6.7.1 - eslint-plugin-react: ^7.33.2 - eslint-plugin-react-hooks: ^4.5.0 || 5.0.0-canary-7118f5dd7-20230705 + eslint-plugin-import: ^2.31.0 + eslint-plugin-jsx-a11y: ^6.10.0 + eslint-plugin-react: ^7.35.0 + eslint-plugin-react-hooks: ^5.0.0 peerDependencies: - eslint: ^7.23.0 || ^8.0.0 + eslint: ^7.23.0 || ^8.0.0 || ^9.0.0 typescript: ">=3.3.1" peerDependenciesMeta: typescript: optional: true - checksum: 512bc0c21c189d086a6aa1f01fbb3b1d4ee62c017670a5bbf6b0fa9b44ad2b61047364d9b0800ec25f6208364090d87a20b513e65902367e795f33327c09e023 + checksum: 5905f588adeb7d5d007d9fcd033d7919a6b19d5b9f6f841fa5a06e9d6a1cf50ba38330b5923f1c3134a018d19621e21f0d10ab9baa4f318360ff017d71d1c820 languageName: node linkType: hard @@ -2786,7 +3023,19 @@ __metadata: languageName: node linkType: hard -"eslint-module-utils@npm:^2.7.4, eslint-module-utils@npm:^2.8.0": +"eslint-module-utils@npm:^2.12.0": + version: 2.12.0 + resolution: "eslint-module-utils@npm:2.12.0" + dependencies: + debug: ^3.2.7 + peerDependenciesMeta: + eslint: + optional: true + checksum: be3ac52e0971c6f46daeb1a7e760e45c7c45f820c8cc211799f85f10f04ccbf7afc17039165d56cb2da7f7ca9cec2b3a777013cddf0b976784b37eb9efa24180 + languageName: node + linkType: hard + +"eslint-module-utils@npm:^2.7.4": version: 2.8.1 resolution: "eslint-module-utils@npm:2.8.1" dependencies: @@ -2798,93 +3047,94 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-import@npm:^2.28.1": - version: 2.29.1 - resolution: "eslint-plugin-import@npm:2.29.1" +"eslint-plugin-import@npm:^2.31.0": + version: 2.31.0 + resolution: "eslint-plugin-import@npm:2.31.0" dependencies: - array-includes: ^3.1.7 - array.prototype.findlastindex: ^1.2.3 + "@rtsao/scc": ^1.1.0 + array-includes: ^3.1.8 + array.prototype.findlastindex: ^1.2.5 array.prototype.flat: ^1.3.2 array.prototype.flatmap: ^1.3.2 debug: ^3.2.7 doctrine: ^2.1.0 eslint-import-resolver-node: ^0.3.9 - eslint-module-utils: ^2.8.0 - hasown: ^2.0.0 - is-core-module: ^2.13.1 + eslint-module-utils: ^2.12.0 + hasown: ^2.0.2 + is-core-module: ^2.15.1 is-glob: ^4.0.3 minimatch: ^3.1.2 - object.fromentries: ^2.0.7 - object.groupby: ^1.0.1 - object.values: ^1.1.7 + object.fromentries: ^2.0.8 + object.groupby: ^1.0.3 + object.values: ^1.2.0 semver: ^6.3.1 + string.prototype.trimend: ^1.0.8 tsconfig-paths: ^3.15.0 peerDependencies: - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 - checksum: e65159aef808136d26d029b71c8c6e4cb5c628e65e5de77f1eb4c13a379315ae55c9c3afa847f43f4ff9df7e54515c77ffc6489c6a6f81f7dd7359267577468c + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9 + checksum: b1d2ac268b3582ff1af2a72a2c476eae4d250c100f2e335b6e102036e4a35efa530b80ec578dfc36761fabb34a635b9bf5ab071abe9d4404a4bb054fdf22d415 languageName: node linkType: hard -"eslint-plugin-jsx-a11y@npm:^6.7.1": - version: 6.8.0 - resolution: "eslint-plugin-jsx-a11y@npm:6.8.0" +"eslint-plugin-jsx-a11y@npm:^6.10.0": + version: 6.10.2 + resolution: "eslint-plugin-jsx-a11y@npm:6.10.2" dependencies: - "@babel/runtime": ^7.23.2 - aria-query: ^5.3.0 - array-includes: ^3.1.7 + aria-query: ^5.3.2 + array-includes: ^3.1.8 array.prototype.flatmap: ^1.3.2 ast-types-flow: ^0.0.8 - axe-core: =4.7.0 - axobject-query: ^3.2.1 + axe-core: ^4.10.0 + axobject-query: ^4.1.0 damerau-levenshtein: ^1.0.8 emoji-regex: ^9.2.2 - es-iterator-helpers: ^1.0.15 - hasown: ^2.0.0 + hasown: ^2.0.2 jsx-ast-utils: ^3.3.5 language-tags: ^1.0.9 minimatch: ^3.1.2 - object.entries: ^1.1.7 - object.fromentries: ^2.0.7 + object.fromentries: ^2.0.8 + safe-regex-test: ^1.0.3 + string.prototype.includes: ^2.0.1 peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 - checksum: 3dec00e2a3089c4c61ac062e4196a70985fb7eda1fd67fe035363d92578debde92fdb8ed2e472321fc0d71e75f4a1e8888c6a3218c14dd93c8e8d19eb6f51554 + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9 + checksum: 0cc861398fa26ada61ed5703eef5b335495fcb96253263dcd5e399488ff019a2636372021baacc040e3560d1a34bfcd5d5ad9f1754f44cd0509c956f7df94050 languageName: node linkType: hard -"eslint-plugin-react-hooks@npm:^4.5.0 || 5.0.0-canary-7118f5dd7-20230705": - version: 5.0.0-canary-7118f5dd7-20230705 - resolution: "eslint-plugin-react-hooks@npm:5.0.0-canary-7118f5dd7-20230705" +"eslint-plugin-react-hooks@npm:^5.0.0": + version: 5.0.0 + resolution: "eslint-plugin-react-hooks@npm:5.0.0" peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 - checksum: 20e334e60bf5e56cf9f760598411847525c3ff826e6ae7757c8efdc60b33d47a97ddbe1b94ce95956ea9f7bbef37995b19c716be50bd44e6a1e789cba08b6224 + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 + checksum: eddd514a8796e8f805aa0c712d5fe6120fa6db778e3ad2949459b208f8a4bed6a48c152edfa9613f137c7527b00b42d489b5f94363d01d3a509e1f31630674dd languageName: node linkType: hard -"eslint-plugin-react@npm:^7.33.2": - version: 7.34.1 - resolution: "eslint-plugin-react@npm:7.34.1" +"eslint-plugin-react@npm:^7.35.0": + version: 7.37.2 + resolution: "eslint-plugin-react@npm:7.37.2" dependencies: - array-includes: ^3.1.7 - array.prototype.findlast: ^1.2.4 + array-includes: ^3.1.8 + array.prototype.findlast: ^1.2.5 array.prototype.flatmap: ^1.3.2 - array.prototype.toreversed: ^1.1.2 - array.prototype.tosorted: ^1.1.3 + array.prototype.tosorted: ^1.1.4 doctrine: ^2.1.0 - es-iterator-helpers: ^1.0.17 + es-iterator-helpers: ^1.1.0 estraverse: ^5.3.0 + hasown: ^2.0.2 jsx-ast-utils: ^2.4.1 || ^3.0.0 minimatch: ^3.1.2 - object.entries: ^1.1.7 - object.fromentries: ^2.0.7 - object.hasown: ^1.1.3 - object.values: ^1.1.7 + object.entries: ^1.1.8 + object.fromentries: ^2.0.8 + object.values: ^1.2.0 prop-types: ^15.8.1 resolve: ^2.0.0-next.5 semver: ^6.3.1 - string.prototype.matchall: ^4.0.10 + string.prototype.matchall: ^4.0.11 + string.prototype.repeat: ^1.0.0 peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 - checksum: 82f391c5a093235c3bc2f664c54e009c49460778ee7d1b86c1536df9ac4d2a80d1dedc9241ac797df4a9dced936e955d9c89042fb3ac8d017b5359d1320d3c0f + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 + checksum: 7f5203afee7fbe3702b27fdd2b9a3c0ccbbb47d0672f58311b9d8a08dea819c9da4a87c15e8bd508f2562f327a9d29ee8bd9cd189bf758d8dc903de5648b0bfa languageName: node linkType: hard @@ -3028,7 +3278,20 @@ __metadata: languageName: node linkType: hard -"fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.1": +"fast-glob@npm:3.3.1": + version: 3.3.1 + resolution: "fast-glob@npm:3.3.1" + dependencies: + "@nodelib/fs.stat": ^2.0.2 + "@nodelib/fs.walk": ^1.2.3 + glob-parent: ^5.1.2 + merge2: ^1.3.0 + micromatch: ^4.0.4 + checksum: b6f3add6403e02cf3a798bfbb1183d0f6da2afd368f27456010c0bc1f9640aea308243d4cb2c0ab142f618276e65ecb8be1661d7c62a7b4e5ba774b9ce5432e5 + languageName: node + linkType: hard + +"fast-glob@npm:^3.3.1, fast-glob@npm:^3.3.2": version: 3.3.2 resolution: "fast-glob@npm:3.3.2" dependencies: @@ -3146,12 +3409,12 @@ __metadata: linkType: hard "foreground-child@npm:^3.1.0": - version: 3.1.1 - resolution: "foreground-child@npm:3.1.1" + version: 3.3.0 + resolution: "foreground-child@npm:3.3.0" dependencies: cross-spawn: ^7.0.0 signal-exit: ^4.0.1 - checksum: 139d270bc82dc9e6f8bc045fe2aae4001dc2472157044fdfad376d0a3457f77857fa883c1c8b21b491c6caade9a926a4bed3d3d2e8d3c9202b151a4cbbd0bcd5 + checksum: 1989698488f725b05b26bc9afc8a08f08ec41807cd7b92ad85d96004ddf8243fd3e79486b8348c64a3011ae5cc2c9f0936af989e1f28339805d8bc178a75b451 languageName: node linkType: hard @@ -3341,21 +3604,6 @@ __metadata: languageName: node linkType: hard -"glob@npm:10.3.10": - version: 10.3.10 - resolution: "glob@npm:10.3.10" - dependencies: - foreground-child: ^3.1.0 - jackspeak: ^2.3.5 - minimatch: ^9.0.1 - minipass: ^5.0.0 || ^6.0.2 || ^7.0.0 - path-scurry: ^1.10.1 - bin: - glob: dist/esm/bin.mjs - checksum: 4f2fe2511e157b5a3f525a54092169a5f92405f24d2aed3142f4411df328baca13059f4182f1db1bf933e2c69c0bd89e57ae87edd8950cba8c7ccbe84f721cf3 - languageName: node - linkType: hard - "glob@npm:^11.0.0": version: 11.0.0 resolution: "glob@npm:11.0.0" @@ -3415,7 +3663,7 @@ __metadata: languageName: node linkType: hard -"globalthis@npm:^1.0.3": +"globalthis@npm:^1.0.3, globalthis@npm:^1.0.4": version: 1.0.4 resolution: "globalthis@npm:1.0.4" dependencies: @@ -3425,20 +3673,6 @@ __metadata: languageName: node linkType: hard -"globby@npm:^11.1.0": - version: 11.1.0 - resolution: "globby@npm:11.1.0" - dependencies: - array-union: ^2.1.0 - dir-glob: ^3.0.1 - fast-glob: ^3.2.9 - ignore: ^5.2.0 - merge2: ^1.4.1 - slash: ^3.0.0 - checksum: b4be8885e0cfa018fc783792942d53926c35c50b3aefd3fdcfb9d22c627639dc26bd2327a40a0b74b074100ce95bb7187bfeae2f236856aa3de183af7a02aea6 - languageName: node - linkType: hard - "gopd@npm:^1.0.1": version: 1.0.1 resolution: "gopd@npm:1.0.1" @@ -3448,7 +3682,7 @@ __metadata: languageName: node linkType: hard -"graceful-fs@npm:^4.2.11, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6": +"graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6": version: 4.2.11 resolution: "graceful-fs@npm:4.2.11" checksum: ac85f94da92d8eb6b7f5a8b20ce65e43d66761c55ce85ac96df6865308390da45a8d3f0296dd3a663de65d30ba497bd46c696cc1e248c72b13d6d567138a4fc7 @@ -3641,6 +3875,13 @@ __metadata: languageName: node linkType: hard +"ignore@npm:^5.3.1": + version: 5.3.2 + resolution: "ignore@npm:5.3.2" + checksum: 2acfd32a573260ea522ea0bfeff880af426d68f6831f973129e2ba7363f422923cf53aab62f8369cbf4667c7b25b6f8a3761b34ecdb284ea18e87a5262a865be + languageName: node + linkType: hard + "import-fresh@npm:^3.2.1": version: 3.3.0 resolution: "import-fresh@npm:3.3.0" @@ -3756,6 +3997,13 @@ __metadata: languageName: node linkType: hard +"is-arrayish@npm:^0.3.1": + version: 0.3.2 + resolution: "is-arrayish@npm:0.3.2" + checksum: 977e64f54d91c8f169b59afcd80ff19227e9f5c791fa28fa2e5bce355cbaf6c2c356711b734656e80c9dd4a854dd7efcf7894402f1031dfc5de5d620775b4d5f + languageName: node + linkType: hard + "is-async-function@npm:^2.0.0": version: 2.0.0 resolution: "is-async-function@npm:2.0.0" @@ -3811,7 +4059,7 @@ __metadata: languageName: node linkType: hard -"is-core-module@npm:^2.11.0, is-core-module@npm:^2.13.0, is-core-module@npm:^2.13.1": +"is-core-module@npm:^2.11.0, is-core-module@npm:^2.13.0": version: 2.13.1 resolution: "is-core-module@npm:2.13.1" dependencies: @@ -3820,6 +4068,15 @@ __metadata: languageName: node linkType: hard +"is-core-module@npm:^2.15.1": + version: 2.15.1 + resolution: "is-core-module@npm:2.15.1" + dependencies: + hasown: ^2.0.2 + checksum: df134c168115690724b62018c37b2f5bba0d5745fa16960b329c5a00883a8bea6a5632fdb1e3efcce237c201826ba09f93197b7cd95577ea56b0df335be23633 + languageName: node + linkType: hard + "is-core-module@npm:^2.2.0": version: 2.4.0 resolution: "is-core-module@npm:2.4.0" @@ -4102,29 +4359,16 @@ __metadata: languageName: node linkType: hard -"iterator.prototype@npm:^1.1.2": - version: 1.1.2 - resolution: "iterator.prototype@npm:1.1.2" +"iterator.prototype@npm:^1.1.3": + version: 1.1.3 + resolution: "iterator.prototype@npm:1.1.3" dependencies: define-properties: ^1.2.1 get-intrinsic: ^1.2.1 has-symbols: ^1.0.3 reflect.getprototypeof: ^1.0.4 set-function-name: ^2.0.1 - checksum: d8a507e2ccdc2ce762e8a1d3f4438c5669160ac72b88b648e59a688eec6bc4e64b22338e74000518418d9e693faf2a092d2af21b9ec7dbf7763b037a54701168 - languageName: node - linkType: hard - -"jackspeak@npm:^2.3.5": - version: 2.3.6 - resolution: "jackspeak@npm:2.3.6" - dependencies: - "@isaacs/cliui": ^8.0.2 - "@pkgjs/parseargs": ^0.11.0 - dependenciesMeta: - "@pkgjs/parseargs": - optional: true - checksum: 57d43ad11eadc98cdfe7496612f6bbb5255ea69fe51ea431162db302c2a11011642f50cfad57288bd0aea78384a0612b16e131944ad8ecd09d619041c8531b54 + checksum: 7d2a1f8bcbba7b76f72e956faaf7b25405f4de54430c9d099992e6fb9d571717c3044604e8cdfb8e624cb881337d648030ee8b1541d544af8b338835e3f47ebe languageName: node linkType: hard @@ -4381,13 +4625,6 @@ __metadata: languageName: node linkType: hard -"lru-cache@npm:^10.2.0": - version: 10.2.2 - resolution: "lru-cache@npm:10.2.2" - checksum: 98e8fc93691c546f719a76103ef2bee5a3ac823955c755a47641ec41f8c7fafa1baeaba466937cc1cbfa9cfd47e03536d10e2db3158a64ad91ff3a58a32c893e - languageName: node - linkType: hard - "lru-cache@npm:^11.0.0": version: 11.0.1 resolution: "lru-cache@npm:11.0.1" @@ -4444,7 +4681,7 @@ __metadata: languageName: node linkType: hard -"merge2@npm:^1.3.0, merge2@npm:^1.4.1": +"merge2@npm:^1.3.0": version: 1.4.1 resolution: "merge2@npm:1.4.1" checksum: 7268db63ed5169466540b6fb947aec313200bcf6d40c5ab722c22e242f651994619bcd85601602972d3c85bd2cc45a358a4c61937e9f11a061919a1da569b0c2 @@ -4478,15 +4715,6 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:9.0.3": - version: 9.0.3 - resolution: "minimatch@npm:9.0.3" - dependencies: - brace-expansion: ^2.0.1 - checksum: 253487976bf485b612f16bf57463520a14f512662e592e95c571afdab1442a6a6864b6c88f248ce6fc4ff0b6de04ac7aa6c8bb51e868e99d1d65eb0658a708b5 - languageName: node - linkType: hard - "minimatch@npm:^10.0.0": version: 10.0.1 resolution: "minimatch@npm:10.0.1" @@ -4523,12 +4751,12 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:^9.0.1": - version: 9.0.4 - resolution: "minimatch@npm:9.0.4" +"minimatch@npm:^9.0.4": + version: 9.0.5 + resolution: "minimatch@npm:9.0.5" dependencies: brace-expansion: ^2.0.1 - checksum: cf717f597ec3eed7dabc33153482a2e8d49f4fd3c26e58fd9c71a94c5029a0838728841b93f46bf1263b65a8010e2ee800d0dc9b004ab8ba8b6d1ec07cc115b5 + checksum: 2c035575eda1e50623c731ec6c14f65a85296268f749b9337005210bb2b34e2705f8ef1a358b188f69892286ab99dc42c8fb98a57bde55c8d81b3023c19cea28 languageName: node linkType: hard @@ -4613,7 +4841,7 @@ __metadata: languageName: node linkType: hard -"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.1.2": +"minipass@npm:^7.1.2": version: 7.1.2 resolution: "minipass@npm:7.1.2" checksum: 2bfd325b95c555f2b4d2814d49325691c7bee937d753814861b0b49d5edcda55cbbf22b6b6a60bb91eddac8668771f03c5ff647dcd9d0f798e9548b9cdc46ee3 @@ -4690,31 +4918,32 @@ __metadata: languageName: node linkType: hard -"next@npm:^14.2.15": - version: 14.2.15 - resolution: "next@npm:14.2.15" +"next@npm:15.0.1": + version: 15.0.1 + resolution: "next@npm:15.0.1" dependencies: - "@next/env": 14.2.15 - "@next/swc-darwin-arm64": 14.2.15 - "@next/swc-darwin-x64": 14.2.15 - "@next/swc-linux-arm64-gnu": 14.2.15 - "@next/swc-linux-arm64-musl": 14.2.15 - "@next/swc-linux-x64-gnu": 14.2.15 - "@next/swc-linux-x64-musl": 14.2.15 - "@next/swc-win32-arm64-msvc": 14.2.15 - "@next/swc-win32-ia32-msvc": 14.2.15 - "@next/swc-win32-x64-msvc": 14.2.15 - "@swc/helpers": 0.5.5 + "@next/env": 15.0.1 + "@next/swc-darwin-arm64": 15.0.1 + "@next/swc-darwin-x64": 15.0.1 + "@next/swc-linux-arm64-gnu": 15.0.1 + "@next/swc-linux-arm64-musl": 15.0.1 + "@next/swc-linux-x64-gnu": 15.0.1 + "@next/swc-linux-x64-musl": 15.0.1 + "@next/swc-win32-arm64-msvc": 15.0.1 + "@next/swc-win32-x64-msvc": 15.0.1 + "@swc/counter": 0.1.3 + "@swc/helpers": 0.5.13 busboy: 1.6.0 caniuse-lite: ^1.0.30001579 - graceful-fs: ^4.2.11 postcss: 8.4.31 - styled-jsx: 5.1.1 + sharp: ^0.33.5 + styled-jsx: 5.1.6 peerDependencies: "@opentelemetry/api": ^1.1.0 "@playwright/test": ^1.41.2 - react: ^18.2.0 - react-dom: ^18.2.0 + babel-plugin-react-compiler: "*" + react: ^18.2.0 || 19.0.0-rc-69d4b800-20241021 + react-dom: ^18.2.0 || 19.0.0-rc-69d4b800-20241021 sass: ^1.3.0 dependenciesMeta: "@next/swc-darwin-arm64": @@ -4731,20 +4960,22 @@ __metadata: optional: true "@next/swc-win32-arm64-msvc": optional: true - "@next/swc-win32-ia32-msvc": - optional: true "@next/swc-win32-x64-msvc": optional: true + sharp: + optional: true peerDependenciesMeta: "@opentelemetry/api": optional: true "@playwright/test": optional: true + babel-plugin-react-compiler: + optional: true sass: optional: true bin: next: dist/bin/next - checksum: bed22817ea82c679e78c1f1e6530991ae89f3c51d547a876dddcda4a3b34cbb970af7c714793e1a1f0a1974859ccc97e10b5aceb61e9807ea94318116e8e7dd6 + checksum: 71539b65732fea57c9853c9b3057f842225711c140a8eb6adcd08ce34f2b4a640c628a099b03390556e24c92ccf28f97eed039d2db90b3769d4a8826265c77e2 languageName: node linkType: hard @@ -4752,18 +4983,18 @@ __metadata: version: 0.0.0-use.local resolution: "nextjs-swc-example@workspace:." dependencies: - "@lingui/cli": ^5.0.0-next.3 - "@lingui/core": ^5.0.0-next.3 - "@lingui/loader": ^5.0.0-next.3 - "@lingui/react": ^5.0.0-next.3 - "@lingui/swc-plugin": ^5.0.0-next.2 + "@lingui/cli": ^5.1.2 + "@lingui/core": ^5.1.2 + "@lingui/loader": ^5.1.2 + "@lingui/react": ^5.1.2 + "@lingui/swc-plugin": ^5.0.1 "@types/negotiator": ^0.6.3 "@types/react": ^18.3.3 "@types/react-dom": ^18.3.0 eslint: ^8.57.0 - eslint-config-next: ^14.2.3 + eslint-config-next: 15.0.1 negotiator: ^0.6.3 - next: ^14.2.15 + next: 15.0.1 react: 18.2.0 react-dom: 18.2.0 typescript: ^5.4.5 @@ -4905,7 +5136,7 @@ __metadata: languageName: node linkType: hard -"object.entries@npm:^1.1.7": +"object.entries@npm:^1.1.8": version: 1.1.8 resolution: "object.entries@npm:1.1.8" dependencies: @@ -4916,7 +5147,7 @@ __metadata: languageName: node linkType: hard -"object.fromentries@npm:^2.0.7": +"object.fromentries@npm:^2.0.8": version: 2.0.8 resolution: "object.fromentries@npm:2.0.8" dependencies: @@ -4928,7 +5159,7 @@ __metadata: languageName: node linkType: hard -"object.groupby@npm:^1.0.1": +"object.groupby@npm:^1.0.3": version: 1.0.3 resolution: "object.groupby@npm:1.0.3" dependencies: @@ -4939,18 +5170,7 @@ __metadata: languageName: node linkType: hard -"object.hasown@npm:^1.1.3": - version: 1.1.4 - resolution: "object.hasown@npm:1.1.4" - dependencies: - define-properties: ^1.2.1 - es-abstract: ^1.23.2 - es-object-atoms: ^1.0.0 - checksum: bc46eb5ca22106fcd07aab1411508c2c68b7565fe8fb272f166fb9bf203972e8b5c86a5a4b2c86204beead0626a7a4119d32cefbaf7c5dd57b400bf9e6363cb6 - languageName: node - linkType: hard - -"object.values@npm:^1.1.6, object.values@npm:^1.1.7": +"object.values@npm:^1.1.6, object.values@npm:^1.2.0": version: 1.2.0 resolution: "object.values@npm:1.2.0" dependencies: @@ -5132,16 +5352,6 @@ __metadata: languageName: node linkType: hard -"path-scurry@npm:^1.10.1": - version: 1.11.1 - resolution: "path-scurry@npm:1.11.1" - dependencies: - lru-cache: ^10.2.0 - minipass: ^5.0.0 || ^6.0.2 || ^7.0.0 - checksum: 890d5abcd593a7912dcce7cf7c6bf7a0b5648e3dee6caf0712c126ca0a65c7f3d7b9d769072a4d1baf370f61ce493ab5b038d59988688e0c5f3f646ee3c69023 - languageName: node - linkType: hard - "path-scurry@npm:^2.0.0": version: 2.0.0 resolution: "path-scurry@npm:2.0.0" @@ -5401,13 +5611,6 @@ __metadata: languageName: node linkType: hard -"regenerator-runtime@npm:^0.14.0": - version: 0.14.1 - resolution: "regenerator-runtime@npm:0.14.1" - checksum: 9f57c93277b5585d3c83b0cf76be47b473ae8c6d9142a46ce8b0291a04bb2cf902059f0f8445dcabb3fb7378e5fe4bb4ea1e008876343d42e46d3b484534ce38 - languageName: node - linkType: hard - "regexp.prototype.flags@npm:^1.5.2": version: 1.5.2 resolution: "regexp.prototype.flags@npm:1.5.2" @@ -5604,11 +5807,11 @@ __metadata: linkType: hard "scheduler@npm:^0.23.0": - version: 0.23.0 - resolution: "scheduler@npm:0.23.0" + version: 0.23.2 + resolution: "scheduler@npm:0.23.2" dependencies: loose-envify: ^1.1.0 - checksum: d79192eeaa12abef860c195ea45d37cbf2bbf5f66e3c4dcd16f54a7da53b17788a70d109ee3d3dde1a0fd50e6a8fc171f4300356c5aee4fc0171de526bf35f8a + checksum: 3e82d1f419e240ef6219d794ff29c7ee415fbdc19e038f680a10c067108e06284f1847450a210b29bbaf97b9d8a97ced5f624c31c681248ac84c80d56ad5a2c4 languageName: node linkType: hard @@ -5641,12 +5844,12 @@ __metadata: languageName: node linkType: hard -"semver@npm:^7.5.4": - version: 7.6.2 - resolution: "semver@npm:7.6.2" +"semver@npm:^7.6.0, semver@npm:^7.6.3": + version: 7.6.3 + resolution: "semver@npm:7.6.3" bin: semver: bin/semver.js - checksum: 40f6a95101e8d854357a644da1b8dd9d93ce786d5c6a77227bc69dbb17bea83d0d1d1d7c4cd5920a6df909f48e8bd8a5909869535007f90278289f2451d0292d + checksum: 4110ec5d015c9438f322257b1c51fe30276e5f766a3f64c09edd1d7ea7118ecbc3f379f3b69032bacf13116dc7abc4ad8ce0d7e2bd642e26b0d271b56b61a7d8 languageName: node linkType: hard @@ -5683,6 +5886,75 @@ __metadata: languageName: node linkType: hard +"sharp@npm:^0.33.5": + version: 0.33.5 + resolution: "sharp@npm:0.33.5" + dependencies: + "@img/sharp-darwin-arm64": 0.33.5 + "@img/sharp-darwin-x64": 0.33.5 + "@img/sharp-libvips-darwin-arm64": 1.0.4 + "@img/sharp-libvips-darwin-x64": 1.0.4 + "@img/sharp-libvips-linux-arm": 1.0.5 + "@img/sharp-libvips-linux-arm64": 1.0.4 + "@img/sharp-libvips-linux-s390x": 1.0.4 + "@img/sharp-libvips-linux-x64": 1.0.4 + "@img/sharp-libvips-linuxmusl-arm64": 1.0.4 + "@img/sharp-libvips-linuxmusl-x64": 1.0.4 + "@img/sharp-linux-arm": 0.33.5 + "@img/sharp-linux-arm64": 0.33.5 + "@img/sharp-linux-s390x": 0.33.5 + "@img/sharp-linux-x64": 0.33.5 + "@img/sharp-linuxmusl-arm64": 0.33.5 + "@img/sharp-linuxmusl-x64": 0.33.5 + "@img/sharp-wasm32": 0.33.5 + "@img/sharp-win32-ia32": 0.33.5 + "@img/sharp-win32-x64": 0.33.5 + color: ^4.2.3 + detect-libc: ^2.0.3 + semver: ^7.6.3 + dependenciesMeta: + "@img/sharp-darwin-arm64": + optional: true + "@img/sharp-darwin-x64": + optional: true + "@img/sharp-libvips-darwin-arm64": + optional: true + "@img/sharp-libvips-darwin-x64": + optional: true + "@img/sharp-libvips-linux-arm": + optional: true + "@img/sharp-libvips-linux-arm64": + optional: true + "@img/sharp-libvips-linux-s390x": + optional: true + "@img/sharp-libvips-linux-x64": + optional: true + "@img/sharp-libvips-linuxmusl-arm64": + optional: true + "@img/sharp-libvips-linuxmusl-x64": + optional: true + "@img/sharp-linux-arm": + optional: true + "@img/sharp-linux-arm64": + optional: true + "@img/sharp-linux-s390x": + optional: true + "@img/sharp-linux-x64": + optional: true + "@img/sharp-linuxmusl-arm64": + optional: true + "@img/sharp-linuxmusl-x64": + optional: true + "@img/sharp-wasm32": + optional: true + "@img/sharp-win32-ia32": + optional: true + "@img/sharp-win32-x64": + optional: true + checksum: 04beae89910ac65c5f145f88de162e8466bec67705f497ace128de849c24d168993e016f33a343a1f3c30b25d2a90c3e62b017a9a0d25452371556f6cd2471e4 + languageName: node + linkType: hard + "shebang-command@npm:^2.0.0": version: 2.0.0 resolution: "shebang-command@npm:2.0.0" @@ -5743,10 +6015,12 @@ __metadata: languageName: node linkType: hard -"slash@npm:^3.0.0": - version: 3.0.0 - resolution: "slash@npm:3.0.0" - checksum: 94a93fff615f25a999ad4b83c9d5e257a7280c90a32a7cb8b4a87996e4babf322e469c42b7f649fd5796edd8687652f3fb452a86dc97a816f01113183393f11c +"simple-swizzle@npm:^0.2.2": + version: 0.2.2 + resolution: "simple-swizzle@npm:0.2.2" + dependencies: + is-arrayish: ^0.3.1 + checksum: a7f3f2ab5c76c4472d5c578df892e857323e452d9f392e1b5cf74b74db66e6294a1e1b8b390b519fa1b96b5b613f2a37db6cffef52c3f1f8f3c5ea64eb2d54c0 languageName: node linkType: hard @@ -5843,7 +6117,18 @@ __metadata: languageName: node linkType: hard -"string.prototype.matchall@npm:^4.0.10": +"string.prototype.includes@npm:^2.0.1": + version: 2.0.1 + resolution: "string.prototype.includes@npm:2.0.1" + dependencies: + call-bind: ^1.0.7 + define-properties: ^1.2.1 + es-abstract: ^1.23.3 + checksum: ed4b7058b092f30d41c4df1e3e805eeea92479d2c7a886aa30f42ae32fde8924a10cc99cccc99c29b8e18c48216608a0fe6bf887f8b4aadf9559096a758f313a + languageName: node + linkType: hard + +"string.prototype.matchall@npm:^4.0.11": version: 4.0.11 resolution: "string.prototype.matchall@npm:4.0.11" dependencies: @@ -5863,6 +6148,16 @@ __metadata: languageName: node linkType: hard +"string.prototype.repeat@npm:^1.0.0": + version: 1.0.0 + resolution: "string.prototype.repeat@npm:1.0.0" + dependencies: + define-properties: ^1.1.3 + es-abstract: ^1.17.5 + checksum: 95dfc514ed7f328d80a066dabbfbbb1615c3e51490351085409db2eb7cbfed7ea29fdadaf277647fbf9f4a1e10e6dd9e95e78c0fd2c4e6bb6723ea6e59401004 + languageName: node + linkType: hard + "string.prototype.trim@npm:^1.2.9": version: 1.2.9 resolution: "string.prototype.trim@npm:1.2.9" @@ -5967,19 +6262,19 @@ __metadata: languageName: node linkType: hard -"styled-jsx@npm:5.1.1": - version: 5.1.1 - resolution: "styled-jsx@npm:5.1.1" +"styled-jsx@npm:5.1.6": + version: 5.1.6 + resolution: "styled-jsx@npm:5.1.6" dependencies: client-only: 0.0.1 peerDependencies: - react: ">= 16.8.0 || 17.x.x || ^18.0.0-0" + react: ">= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0" peerDependenciesMeta: "@babel/core": optional: true babel-plugin-macros: optional: true - checksum: 523a33b38603492547e861b98e29c873939b04e15fbe5ef16132c6f1e15958126647983c7d4675325038b428a5e91183d996e90141b18bdd1bbadf6e2c45b2fa + checksum: 879ad68e3e81adcf4373038aaafe55f968294955593660e173fbf679204aff158c59966716a60b29af72dc88795cfb2c479b6d2c3c87b2b2d282f3e27cc66461 languageName: node linkType: hard @@ -6077,7 +6372,7 @@ __metadata: languageName: node linkType: hard -"ts-api-utils@npm:^1.0.1": +"ts-api-utils@npm:^1.3.0": version: 1.3.0 resolution: "ts-api-utils@npm:1.3.0" peerDependencies: From 8cae5e0e5a4ab0ab9406aa1683b60a4796c2d9f2 Mon Sep 17 00:00:00 2001 From: Folkert de Vries Date: Mon, 23 Dec 2024 09:37:37 +0100 Subject: [PATCH 19/24] fix: Allow empty translations for pseudo locale in compile --strict (#2129) --- packages/cli/src/lingui-compile.ts | 2 +- packages/cli/src/test/compile.test.ts | 39 ++++++++++++++++++++++++++- 2 files changed, 39 insertions(+), 2 deletions(-) diff --git a/packages/cli/src/lingui-compile.ts b/packages/cli/src/lingui-compile.ts index e9640f075..14fd4a173 100644 --- a/packages/cli/src/lingui-compile.ts +++ b/packages/cli/src/lingui-compile.ts @@ -45,7 +45,7 @@ export async function command( }, }) - if (!options.allowEmpty && missingMessages.length > 0) { + if (!options.allowEmpty && locale !== config.pseudoLocale && missingMessages.length > 0) { console.error( chalk.red( `Error: Failed to compile catalog for locale ${chalk.bold(locale)}!` diff --git a/packages/cli/src/test/compile.test.ts b/packages/cli/src/test/compile.test.ts index 4406301bc..a55e7e10f 100644 --- a/packages/cli/src/test/compile.test.ts +++ b/packages/cli/src/test/compile.test.ts @@ -8,10 +8,11 @@ describe("CLI Command: Compile", () => { // todo }) - function getConfig(rootDir: string) { + function getConfig(rootDir: string, pseudoLocale?: string) { return makeConfig({ locales: ["en", "pl"], sourceLocale: "en", + pseudoLocale: pseudoLocale, rootDir: rootDir, catalogs: [ { @@ -100,6 +101,42 @@ msgstr "" } ) + it( + "Should allow empty translation for pseudo locale", + async () => { + expect.assertions(4) + + const rootDir = await createFixtures({ + "/test": { + "en.po": ` +msgid "Hello World" +msgstr "Hello World" + `, + "pl.po": ` +msgid "Hello World" +msgstr "" + `, + }, + }) + + const config = getConfig(rootDir, 'pl') + + await mockConsole(async (console) => { + const result = await command(config, { + allowEmpty: false, + }) + const actualFiles = readFsToJson(config.rootDir) + + expect(actualFiles["pl.js"]).toBeTruthy() + expect(actualFiles["en.js"]).toBeTruthy() + + const log = getConsoleMockCalls(console.error) + expect(log).toBeUndefined() + expect(result).toBeTruthy() + }) + } + ) + it("Should show missing messages verbosely when verbose = true", async () => { expect.assertions(2) const rootDir = await createFixtures({ From 5ae83630c5afe866b23c5739286eb09fdfe39b95 Mon Sep 17 00:00:00 2001 From: Timofei Iatsenko Date: Mon, 23 Dec 2024 09:39:39 +0100 Subject: [PATCH 20/24] feat: add meaningful error when locale is not set (#2131) --- packages/core/src/i18n.test.ts | 13 +++++++++++++ packages/core/src/i18n.ts | 8 ++++++++ packages/vite-plugin/test/macro-usage/entrypoint.js | 5 +++++ 3 files changed, 26 insertions(+) diff --git a/packages/core/src/i18n.test.ts b/packages/core/src/i18n.test.ts index 4e64511e4..34e132dc3 100644 --- a/packages/core/src/i18n.test.ts +++ b/packages/core/src/i18n.test.ts @@ -431,4 +431,17 @@ describe("I18n", () => { expect(i18n._("Software development")).toEqual("Software­entwicklung") expect(i18n._("Software development")).toEqual("Software­entwicklung") }) + + it("._ should throw a meaningful error when locale is not set", () => { + const i18n = setupI18n({}) + expect(() => + i18n._( + "Text {0, plural, offset:1 =0 {No books} =1 {1 book} other {# books}}" + ) + ).toThrowErrorMatchingInlineSnapshot(` + "Lingui: Attempted to call a translation function without setting a locale. + Make sure to call \`i18n.activate(locale)\` before using Lingui functions. + This issue may also occur due to a race condition in your initialization logic." + `) + }) }) diff --git a/packages/core/src/i18n.ts b/packages/core/src/i18n.ts index afcb7b640..a133b7cf2 100644 --- a/packages/core/src/i18n.ts +++ b/packages/core/src/i18n.ts @@ -240,6 +240,14 @@ export class I18n extends EventEmitter { values?: Values, options?: MessageOptions ): string { + if (!this.locale) { + throw new Error( + "Lingui: Attempted to call a translation function without setting a locale.\n" + + "Make sure to call `i18n.activate(locale)` before using Lingui functions.\n" + + "This issue may also occur due to a race condition in your initialization logic." + ) + } + let message = options?.message if (!id) { diff --git a/packages/vite-plugin/test/macro-usage/entrypoint.js b/packages/vite-plugin/test/macro-usage/entrypoint.js index 5a55c8a37..1a4eb4477 100644 --- a/packages/vite-plugin/test/macro-usage/entrypoint.js +++ b/packages/vite-plugin/test/macro-usage/entrypoint.js @@ -1,5 +1,10 @@ import { t } from "@lingui/core/macro" +import { i18n } from "@lingui/core" export async function load() { + i18n.loadAndActivate({ + locale: "en", + messages: {}, + }) return t`Ola` } From 7ebb88dc79846839e0826d073cc0d830c09dda27 Mon Sep 17 00:00:00 2001 From: Timofei Iatsenko Date: Mon, 23 Dec 2024 09:40:24 +0100 Subject: [PATCH 21/24] fix: don't use anything from "@babel/types" in runtime (#2132) --- packages/babel-plugin-extract-messages/src/index.ts | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/packages/babel-plugin-extract-messages/src/index.ts b/packages/babel-plugin-extract-messages/src/index.ts index ac86bd871..69cc86687 100644 --- a/packages/babel-plugin-extract-messages/src/index.ts +++ b/packages/babel-plugin-extract-messages/src/index.ts @@ -1,11 +1,10 @@ import type * as BabelTypesNamespace from "@babel/types" -import { +import type { Expression, Identifier, Node, ObjectExpression, ObjectProperty, - isObjectExpression, } from "@babel/types" import type { PluginObj, PluginPass, NodePath } from "@babel/core" import type { Hub } from "@babel/traverse" @@ -161,7 +160,7 @@ function extractFromObjectExpression( ;(exp.properties as ObjectProperty[]).forEach(({ key, value }, i) => { const name = (key as Identifier).name - if (name === "values" && isObjectExpression(value)) { + if (name === "values" && t.isObjectExpression(value)) { props.placeholders = valuesObjectExpressionToPlaceholdersRecord( t, value, @@ -274,7 +273,7 @@ export default function ({ types: t }: { types: BabelTypes }): PluginObj { if ( key === "values" && t.isJSXExpressionContainer(item.value) && - isObjectExpression(item.value.expression) + t.isObjectExpression(item.value.expression) ) { acc.placeholders = valuesObjectExpressionToPlaceholdersRecord( t, From 1cb5ecd8033cc603f0ff6f0e85cace6a88cac1b5 Mon Sep 17 00:00:00 2001 From: Timofei Iatsenko Date: Mon, 23 Dec 2024 10:10:07 +0100 Subject: [PATCH 22/24] chore: update ESLint (#2133) --- .eslintignore | 9 - .eslintrc | 26 - eslint.config.mjs | 62 + package.json | 18 +- packages/babel-plugin-lingui-macro/src/icu.ts | 5 +- .../babel-plugin-lingui-macro/src/index.ts | 7 +- .../babel-plugin-lingui-macro/src/macro.ts | 2 +- .../babel-plugin-lingui-macro/src/macroJs.ts | 4 +- .../babel-plugin-lingui-macro/src/macroJsx.ts | 2 +- .../test/js-defineMessage.test.ts | 6 +- .../test/js-t.test.ts | 10 +- .../test/macroTester.ts | 1 + .../cli/src/api/catalog/extractFromFiles.ts | 2 +- .../api/catalog/getTranslationsForCatalog.ts | 12 +- packages/cli/src/api/extractors/babel.ts | 2 +- packages/cli/src/api/extractors/index.ts | 2 +- packages/cli/src/api/help.ts | 4 +- packages/cli/src/api/stats.ts | 1 + packages/cli/src/lingui-extract-template.ts | 2 +- packages/cli/src/lingui-extract.ts | 6 +- packages/conf/src/makeConfig.ts | 13 +- packages/core/__typetests__/index.test-d.tsx | 1 - packages/core/src/essentials.ts | 1 + packages/core/src/i18n.ts | 12 +- .../src/detectors/fromSubdomain.ts | 2 +- .../detect-locale/src/utils/cookie-getter.ts | 4 +- .../format-po-gettext/src/plural-samples.ts | 14 +- packages/format-po-gettext/src/po-gettext.ts | 5 +- packages/react/src/Trans.test.tsx | 2 +- packages/react/src/format.test.tsx | 1 - yarn.lock | 2226 ++++++++++++----- 31 files changed, 1736 insertions(+), 728 deletions(-) delete mode 100644 .eslintignore delete mode 100644 .eslintrc create mode 100644 eslint.config.mjs diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index eaacd6a8d..000000000 --- a/.eslintignore +++ /dev/null @@ -1,9 +0,0 @@ -**/dist/* -**/node_modules/* -**/fixtures/* -**/locale/* -website/* -examples/* -README.md -**/npm/* -/packages/*/build/** diff --git a/.eslintrc b/.eslintrc deleted file mode 100644 index 50820da0f..000000000 --- a/.eslintrc +++ /dev/null @@ -1,26 +0,0 @@ -{ - "root": true, - "env": { - "jest/globals": true - }, - "parser": "@typescript-eslint/parser", - "parserOptions": { - "ecmaVersion": 2020, - "sourceType": "module", - "ecmaFeatures": { - "jsx": true - } - }, - "extends": [], - "plugins": ["promise", "jest", "@typescript-eslint", "import"], - "settings": { - "import/resolver": { - "typescript": true, - "node": true - } - }, - "rules": { - "@typescript-eslint/consistent-type-definitions": ["error", "type"], - "import/no-extraneous-dependencies": ["error", {"includeTypes": true}] - } -} diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 000000000..1ae56876b --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,62 @@ +import pluginJs from "@eslint/js" +import tseslint from "typescript-eslint" +import pluginReact from "eslint-plugin-react" +import { config } from "typescript-eslint" +import importPlugin from "eslint-plugin-import" + +export default config( + { files: ["./packages/**/*.{ts,tsx,js,jsx}"] }, + pluginJs.configs.recommended, + ...tseslint.configs.recommended, + { + plugins: { + import: importPlugin, + }, + }, + importPlugin.flatConfigs.typescript, + { + ignores: [ + "**/dist/*", + "**/fixtures/*", + "**/locale/*", + "**/test/**/expected/*", + "**/test/**/actual/*", + ], + }, + { + rules: { + "@typescript-eslint/no-unused-expressions": [ + "error", + { + allowShortCircuit: true, + allowTernary: true, + }, + ], + "@typescript-eslint/no-explicit-any": "off", + "@typescript-eslint/no-require-imports": "off", + "@typescript-eslint/no-unused-vars": "off", + "import/no-extraneous-dependencies": [ + "error", + { + devDependencies: [ + "**/test/**", + "**/*.test.{ts,tsx}", + "**/*.test-d.{ts,tsx}", + "**/vite.config.ts", + ], + }, + ], + "no-undef": "off", + }, + }, + { + files: ["**/*.test-d.{ts,tsx}", "**/*.test.{ts,tsx}", "eslint.config.mjs"], + rules: { + "import/no-extraneous-dependencies": "off", + }, + }, + { + files: ["./packages/react/*.{ts,tsx,js,jsx}"], + ...pluginReact.configs.flat.recommended, + } +) diff --git a/package.json b/package.json index 846bc4285..dcdbe2089 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,7 @@ "test:tsd": "jest -c jest.config.types.js", "test:all": "yarn test && yarn test:integration && yarn test:e2e && yarn test:tsd", "lint:types": "tsc", - "lint:eslint": "eslint './packages/**/*.{ts,tsx,js,jsx}'", + "lint:eslint": "eslint './packages", "lint:all": "yarn lint:eslint && yarn lint:types", "prettier": "prettier --write '**/*.{ts,tsx,js,jsx}'", "prettier:check": "prettier --check '**/*.{ts,tsx,js,jsx}'", @@ -41,6 +41,7 @@ "@babel/preset-env": "^7.20.2", "@babel/preset-react": "^7.18.6", "@babel/preset-typescript": "^7.18.6", + "@eslint/js": "^9.17.0", "@size-limit/preset-small-lib": "^8.1.1", "@swc/core": "^1.3.26", "@tsd/typescript": "^4.9.5", @@ -48,18 +49,12 @@ "@types/mock-fs": "^4.13.1", "@types/node": "20.14.8", "@types/ramda": "^0.27.23", - "@typescript-eslint/eslint-plugin": "^5.50.0", - "@typescript-eslint/parser": "^5.50.0", - "babel-eslint": "^10.1.0", "babel-jest": "^29.7.0", "chalk": "^4.1.0", "cross-env": "^7.0.2", - "eslint": "^7.32.0", - "eslint-import-resolver-typescript": "^3.5.3", - "eslint-plugin-import": "^2.27.5", - "eslint-plugin-jest": "^24.1.0", - "eslint-plugin-node": "^11.1.0", - "eslint-plugin-promise": "^4.1.1", + "eslint": "^9.17.0", + "eslint-plugin-import": "^2.31.0", + "eslint-plugin-react": "^7.37.2", "husky": "^8.0.3", "jest": "^29.7.0", "jest-environment-jsdom": "^29.7.0", @@ -79,7 +74,8 @@ "strip-ansi": "^6.0.1", "swc-node": "^1.0.0", "ts-jest": "^29.2.4", - "typescript": "^4.9.5" + "typescript": "^4.9.5", + "typescript-eslint": "^8.18.1" }, "workspaces": [ "packages/*", diff --git a/packages/babel-plugin-lingui-macro/src/icu.ts b/packages/babel-plugin-lingui-macro/src/icu.ts index ca3c425db..0e2c2f337 100644 --- a/packages/babel-plugin-lingui-macro/src/icu.ts +++ b/packages/babel-plugin-lingui-macro/src/icu.ts @@ -82,7 +82,7 @@ export class ICUMessageFormat { switch (token.format) { case "plural": case "select": - case "selectordinal": + case "selectordinal": { const formatOptions = Object.keys(token.options) .filter((key) => token.options[key] != null) .map((key) => { @@ -116,6 +116,7 @@ export class ICUMessageFormat { values, elements: jsxElements, } + } default: return { message: token.raw ? `${token.name}` : `{${token.name}}`, @@ -124,7 +125,7 @@ export class ICUMessageFormat { } } else if (token.type === "element") { let message = "" - let elementValues: ParsedResult["values"] = {} + const elementValues: ParsedResult["values"] = {} Object.assign(jsxElements, { [token.name]: token.value }) token.children.forEach((child) => { const { diff --git a/packages/babel-plugin-lingui-macro/src/index.ts b/packages/babel-plugin-lingui-macro/src/index.ts index 6f5c9df5e..fc13754db 100644 --- a/packages/babel-plugin-lingui-macro/src/index.ts +++ b/packages/babel-plugin-lingui-macro/src/index.ts @@ -1,8 +1,8 @@ -import type { PluginObj, Visitor, PluginPass, BabelFile } from "@babel/core" +import type { PluginObj, Visitor, PluginPass } from "@babel/core" import type * as babelTypes from "@babel/types" import { Program, Identifier } from "@babel/types" import { MacroJSX } from "./macroJsx" -import { NodePath } from "@babel/traverse" +import type { NodePath } from "@babel/traverse" import { MacroJs } from "./macroJs" import { MACRO_CORE_PACKAGE, @@ -161,9 +161,6 @@ export default function ({ } return { name: "lingui-macro-plugin", - pre(file: BabelFile) { - file.hub - }, visitor: { Program: { enter(path, state) { diff --git a/packages/babel-plugin-lingui-macro/src/macro.ts b/packages/babel-plugin-lingui-macro/src/macro.ts index 13319d82f..679a88bfa 100644 --- a/packages/babel-plugin-lingui-macro/src/macro.ts +++ b/packages/babel-plugin-lingui-macro/src/macro.ts @@ -1,6 +1,6 @@ import { createMacro, MacroParams } from "babel-plugin-macros" -import { VisitNodeObject } from "@babel/traverse" +import type { VisitNodeObject } from "@babel/traverse" import { Program } from "@babel/types" import linguiPlugin from "./index" diff --git a/packages/babel-plugin-lingui-macro/src/macroJs.ts b/packages/babel-plugin-lingui-macro/src/macroJs.ts index 3d35d9842..3fceaebb1 100644 --- a/packages/babel-plugin-lingui-macro/src/macroJs.ts +++ b/packages/babel-plugin-lingui-macro/src/macroJs.ts @@ -7,7 +7,7 @@ import { ObjectExpression, ObjectProperty, } from "@babel/types" -import { NodePath } from "@babel/traverse" +import type { NodePath } from "@babel/traverse" import { Tokens } from "./icu" import { JsMacroName } from "./constants" @@ -282,7 +282,7 @@ export class MacroJs { currentPath.isCallExpression() && currentPath.get("arguments")[0]?.isObjectExpression() ) { - let descriptor = processDescriptor( + const descriptor = processDescriptor( (currentPath.get("arguments")[0] as NodePath) .node, ctx diff --git a/packages/babel-plugin-lingui-macro/src/macroJsx.ts b/packages/babel-plugin-lingui-macro/src/macroJsx.ts index a867bac01..7c1cbf71c 100644 --- a/packages/babel-plugin-lingui-macro/src/macroJsx.ts +++ b/packages/babel-plugin-lingui-macro/src/macroJsx.ts @@ -13,7 +13,7 @@ import { TemplateLiteral, SourceLocation, } from "@babel/types" -import { NodePath } from "@babel/traverse" +import type { NodePath } from "@babel/traverse" import { ArgToken, ElementToken, TextToken, Token } from "./icu" import { makeCounter } from "./utils" diff --git a/packages/babel-plugin-lingui-macro/test/js-defineMessage.test.ts b/packages/babel-plugin-lingui-macro/test/js-defineMessage.test.ts index d6f15bba6..e596a9267 100644 --- a/packages/babel-plugin-lingui-macro/test/js-defineMessage.test.ts +++ b/packages/babel-plugin-lingui-macro/test/js-defineMessage.test.ts @@ -71,7 +71,7 @@ macroTester({ code: ` import { defineMessage } from '@lingui/core/macro'; const msg = defineMessage({ - message: \`Hello $\{name\}\`, + message: \`Hello \${name}\`, comment: 'description for translators', context: 'My Context', }) @@ -83,7 +83,7 @@ macroTester({ code: ` import { defineMessage } from '@lingui/core/macro'; const msg = defineMessage({ - message: \`Hello $\{name\}\`, + message: \`Hello \${name}\`, id: 'msgId', comment: 'description for translators', context: 'My Context', @@ -95,7 +95,7 @@ macroTester({ code: ` import { defineMessage, t } from '@lingui/core/macro'; const message = defineMessage({ - message: t\`Hello $\{name\}\` + message: t\`Hello \${name}\` }) `, }, diff --git a/packages/babel-plugin-lingui-macro/test/js-t.test.ts b/packages/babel-plugin-lingui-macro/test/js-t.test.ts index 239303451..b7677d233 100644 --- a/packages/babel-plugin-lingui-macro/test/js-t.test.ts +++ b/packages/babel-plugin-lingui-macro/test/js-t.test.ts @@ -51,7 +51,7 @@ macroTester({ name: "Variables with escaped double quotes are correctly formatted", code: ` import { t } from '@lingui/core/macro'; - t\`Variable \"name\"\`; + t\`Variable "name"\`; `, }, { @@ -194,7 +194,7 @@ macroTester({ import { t } from '@lingui/core/macro'; import { i18n } from './lingui'; const msg = t(i18n)({ - message: \`Hello $\{name\}\`, + message: \`Hello \${name}\`, id: 'msgId', comment: 'description for translators', context: 'My Context', @@ -207,7 +207,7 @@ macroTester({ code: ` import { t } from '@lingui/core/macro'; const msg = t({ - message: \`Hello $\{name\}\`, + message: \`Hello \${name}\`, id: 'msgId', comment: 'description for translators', context: 'My Context', @@ -223,7 +223,7 @@ macroTester({ code: ` import { t } from '@lingui/macro'; const msg = t({ - message: \`Hello $\{name\}\`, + message: \`Hello \${name}\`, id: 'msgId', comment: 'description for translators', context: 'My Context', @@ -239,7 +239,7 @@ macroTester({ code: ` import { t } from '@lingui/core/macro'; const msg = t({ - message: \`Hello $\{name\}\`, + message: \`Hello \${name}\`, id: 'msgId', comment: 'description for translators', context: 'My Context', diff --git a/packages/babel-plugin-lingui-macro/test/macroTester.ts b/packages/babel-plugin-lingui-macro/test/macroTester.ts index 02f0a1637..fe5c93f2e 100644 --- a/packages/babel-plugin-lingui-macro/test/macroTester.ts +++ b/packages/babel-plugin-lingui-macro/test/macroTester.ts @@ -1,5 +1,6 @@ // use package path instead relative because we want // to test it in from /dist folder in integration tests +// eslint-disable-next-line import/no-extraneous-dependencies import linguiMacroPlugin, { LinguiPluginOpts, } from "@lingui/babel-plugin-lingui-macro" diff --git a/packages/cli/src/api/catalog/extractFromFiles.ts b/packages/cli/src/api/catalog/extractFromFiles.ts index 9575c5947..c1a0eb1c6 100644 --- a/packages/cli/src/api/catalog/extractFromFiles.ts +++ b/packages/cli/src/api/catalog/extractFromFiles.ts @@ -35,7 +35,7 @@ export async function extractFromFiles( const messages: ExtractedCatalogType = {} let catalogSuccess = true - for (let filename of paths) { + for (const filename of paths) { const fileSuccess = await extract( filename, (next: ExtractedMessage) => { diff --git a/packages/cli/src/api/catalog/getTranslationsForCatalog.ts b/packages/cli/src/api/catalog/getTranslationsForCatalog.ts index 2bb6e6b1c..65a3698cd 100644 --- a/packages/cli/src/api/catalog/getTranslationsForCatalog.ts +++ b/packages/cli/src/api/catalog/getTranslationsForCatalog.ts @@ -73,7 +73,7 @@ function getTranslation( // -> template message // ** last resort ** // -> id - let translation = + const translation = // Get translation in target locale getTranslation(locale) || // We search in fallbackLocales as dependent of each locale @@ -83,12 +83,10 @@ function getTranslation( sourceLocaleFallback(catalogs[sourceLocale], key)) if (!translation) { - onMissing && - onMissing({ - id: key, - source: - msg.message || sourceLocaleFallback(catalogs[sourceLocale], key), - }) + onMissing?.({ + id: key, + source: msg.message || sourceLocaleFallback(catalogs[sourceLocale], key), + }) } return ( diff --git a/packages/cli/src/api/extractors/babel.ts b/packages/cli/src/api/extractors/babel.ts index 699a549b4..7eb5eef42 100644 --- a/packages/cli/src/api/extractors/babel.ts +++ b/packages/cli/src/api/extractors/babel.ts @@ -28,7 +28,7 @@ export const babelRe = new RegExp( ) const inlineSourceMapsRE = new RegExp( - /\/[\/\*][#@]\s+sourceMappingURL=data:application\/json;(?:charset:utf-8;)?base64,/i + /\/[/*][#@]\s+sourceMappingURL=data:application\/json;(?:charset:utf-8;)?base64,/i ) /** diff --git a/packages/cli/src/api/extractors/index.ts b/packages/cli/src/api/extractors/index.ts index fa82c0fc8..7e1efbb62 100644 --- a/packages/cli/src/api/extractors/index.ts +++ b/packages/cli/src/api/extractors/index.ts @@ -20,7 +20,7 @@ export default async function extract( ): Promise { const extractorsToExtract = options.extractors ?? DEFAULT_EXTRACTORS - for (let ext of extractorsToExtract) { + for (const ext of extractorsToExtract) { if (!ext.match(filename)) continue try { diff --git a/packages/cli/src/api/help.ts b/packages/cli/src/api/help.ts index 4417e8dd3..d13c60be1 100644 --- a/packages/cli/src/api/help.ts +++ b/packages/cli/src/api/help.ts @@ -26,7 +26,9 @@ export function helpRun(command: string) { let findRootPkgJson: Record try { findRootPkgJson = require(resolve(join(process.cwd(), "package.json"))) - } catch (error) {} + } catch (error) { + // noting + } if (findRootPkgJson?.scripts) { const res = Object.entries(findRootPkgJson.scripts).find(([_, value]) => diff --git a/packages/cli/src/api/stats.ts b/packages/cli/src/api/stats.ts index 3660cef37..37172659a 100644 --- a/packages/cli/src/api/stats.ts +++ b/packages/cli/src/api/stats.ts @@ -1,3 +1,4 @@ +// eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore import Table from "cli-table" import chalk from "chalk" diff --git a/packages/cli/src/lingui-extract-template.ts b/packages/cli/src/lingui-extract-template.ts index c2fd128ad..32663a08a 100644 --- a/packages/cli/src/lingui-extract-template.ts +++ b/packages/cli/src/lingui-extract-template.ts @@ -18,7 +18,7 @@ export default async function command( ): Promise { options.verbose && console.log("Extracting messages from source files…") const catalogs = await getCatalogs(config) - const catalogStats: { [path: string]: Number } = {} + const catalogStats: { [path: string]: number } = {} let commandSuccess = true diff --git a/packages/cli/src/lingui-extract.ts b/packages/cli/src/lingui-extract.ts index 1e85fff48..5836adf61 100644 --- a/packages/cli/src/lingui-extract.ts +++ b/packages/cli/src/lingui-extract.ts @@ -33,7 +33,7 @@ export default async function command( const spinner = ora().start() - for (let catalog of catalogs) { + for (const catalog of catalogs) { const result = await catalog.make({ ...(options as CliExtractOptions), orderBy: config.orderBy, @@ -211,8 +211,8 @@ if (require.main === module) { console.info(chalk.bold("Initializing Watch Mode...")) ;(async function initWatch() { const catalogs = await getCatalogs(config) - let paths: string[] = [] - let ignored: string[] = [] + const paths: string[] = [] + const ignored: string[] = [] catalogs.forEach((catalog) => { paths.push(...catalog.include) diff --git a/packages/conf/src/makeConfig.ts b/packages/conf/src/makeConfig.ts index cb138770b..665c07ad3 100644 --- a/packages/conf/src/makeConfig.ts +++ b/packages/conf/src/makeConfig.ts @@ -27,11 +27,9 @@ export function makeConfig( validateLocales(config) } - config = pipe( - // List config migrations from oldest to newest - setCldrParentLocales, - normalizeRuntimeConfigModule - )(config) + // List config migrations from oldest to newest + config = setCldrParentLocales(config) + config = normalizeRuntimeConfigModule(config) as any // `replaceRootDir` should always be the last return replaceRootDir( @@ -120,8 +118,3 @@ function validateLocales(config: LinguiConfig) { ) } } - -const pipe = - (...functions: Array) => - (args: any): any => - functions.reduce((arg, fn) => fn(arg), args) diff --git a/packages/core/__typetests__/index.test-d.tsx b/packages/core/__typetests__/index.test-d.tsx index 93b59a2c3..899865e7b 100644 --- a/packages/core/__typetests__/index.test-d.tsx +++ b/packages/core/__typetests__/index.test-d.tsx @@ -1,4 +1,3 @@ -// eslint-disable-next-line import/no-extraneous-dependencies import { expectType } from "tsd" import { i18n } from "@lingui/core" diff --git a/packages/core/src/essentials.ts b/packages/core/src/essentials.ts index f9e9cbf12..846a48868 100644 --- a/packages/core/src/essentials.ts +++ b/packages/core/src/essentials.ts @@ -1,2 +1,3 @@ export const isString = (s: unknown): s is string => typeof s === "string" +// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type export const isFunction = (f: unknown): f is Function => typeof f === "function" diff --git a/packages/core/src/i18n.ts b/packages/core/src/i18n.ts index a133b7cf2..079bdce39 100644 --- a/packages/core/src/i18n.ts +++ b/packages/core/src/i18n.ts @@ -164,17 +164,19 @@ export class I18n extends EventEmitter { /** * @deprecated Plurals automatically used from Intl.PluralRules you can safely remove this call. Deprecated in v4 */ - // @ts-ignore deprecated, so ignore the reported error - loadLocaleData(localeOrAllData, localeData?) { - if (localeData != null) { + loadLocaleData( + localeOrAllData: AllLocaleData | Locale, + localeData?: LocaleData + ) { + if (typeof localeOrAllData === "string") { // loadLocaleData('en', enLocaleData) // Loading locale data for a single locale. - this._loadLocaleData(localeOrAllData, localeData) + this._loadLocaleData(localeOrAllData, localeData!) } else { // loadLocaleData(allLocaleData) // Loading all locale data at once. Object.keys(localeOrAllData).forEach((locale) => - this._loadLocaleData(locale, localeOrAllData[locale]) + this._loadLocaleData(locale, localeOrAllData[locale]!) ) } diff --git a/packages/detect-locale/src/detectors/fromSubdomain.ts b/packages/detect-locale/src/detectors/fromSubdomain.ts index 22ec0764d..7d427437b 100644 --- a/packages/detect-locale/src/detectors/fromSubdomain.ts +++ b/packages/detect-locale/src/detectors/fromSubdomain.ts @@ -5,7 +5,7 @@ export default function detectFromSubdomain( location: Partial = globalThis.location ): LocaleString { const locale: RegExpMatchArray = location.href.match( - /(?:http[s]*\:\/\/)*(.*?)\.(?=[^\/]*\..{2,5})/gi + /(?:http[s]*:\/\/)*(.*?)\.(?=[^/]*\..{2,5})/gi ) if (Array.isArray(locale)) { return locale[localeSubdomainIndex] diff --git a/packages/detect-locale/src/utils/cookie-getter.ts b/packages/detect-locale/src/utils/cookie-getter.ts index ab0d1b82a..0c8b5ce90 100644 --- a/packages/detect-locale/src/utils/cookie-getter.ts +++ b/packages/detect-locale/src/utils/cookie-getter.ts @@ -24,7 +24,9 @@ export function getCookie(key: string): string { if (key === foundKey) { break } - } catch (e) {} + } catch (e) { + // nothing + } } return key ? jar[key] : jar diff --git a/packages/format-po-gettext/src/plural-samples.ts b/packages/format-po-gettext/src/plural-samples.ts index b790e624c..26266e9a7 100644 --- a/packages/format-po-gettext/src/plural-samples.ts +++ b/packages/format-po-gettext/src/plural-samples.ts @@ -25,21 +25,21 @@ export function renameKeys(rules: Record): FormattedRuleset { // Create array of sample values for single range // 5~16, 0.04~0.09. Both string & integer forms (when possible) export function fillRange(value: string): number[] { - let [start, end] = value.split("~") + const [start, end] = value.split("~") const decimals = (start.split(".")[1] || "").length // for example 0.1~0.9 has 10 values, need to add that many to list // 0.004~0.009 has 100 values - let mult = Math.pow(10, decimals) + const mult = Math.pow(10, decimals) const startNum = Number(start) const endNum = Number(end) - let range = Array(Math.ceil(endNum * mult - startNum * mult + 1)) + const range = Array(Math.ceil(endNum * mult - startNum * mult + 1)) .fill(0) .map((v, idx) => (idx + startNum * mult) / mult) - let last = range[range.length - 1] + const last = range[range.length - 1] // Number defined in the range should be the last one, i.e. 5~16 should have 16 if (endNum !== last) { @@ -74,10 +74,10 @@ export function createSamples(src: string): number[] { // Create fixtures for single locale rules export function createLocaleTest(rules) { - let result = {} + const result = {} Object.keys(rules).forEach((form) => { - let samples = rules[form].split(/@integer|@decimal/).slice(1) + const samples = rules[form].split(/@integer|@decimal/).slice(1) result[form] = [] samples.forEach((sample) => { @@ -97,7 +97,7 @@ export function getCldrPluralSamples(): Record< // Parse plural rules Object.entries(cardinals.supplemental["plurals-type-cardinal"]).forEach( ([loc, ruleset]) => { - let rules = renameKeys(ruleset) + const rules = renameKeys(ruleset) pluralRules[loc.toLowerCase()] = createLocaleTest(rules) } diff --git a/packages/format-po-gettext/src/po-gettext.ts b/packages/format-po-gettext/src/po-gettext.ts index 32f4d56f7..5dd921b0c 100644 --- a/packages/format-po-gettext/src/po-gettext.ts +++ b/packages/format-po-gettext/src/po-gettext.ts @@ -1,7 +1,6 @@ import { parse as parseIcu, Select, SelectCase } from "@messageformat/parser" import pluralsCldr from "plurals-cldr" import PO from "pofile" -// @ts-ignore import gettextPlurals from "node-gettext/lib/plurals" import type { CatalogFormatter, CatalogType, MessageType } from "@lingui/conf" @@ -185,7 +184,7 @@ const getPluralCases = ( const cases: string[] = [...Array(pluralsCldr.forms(correctLang).length)] - for (let form of pluralsCldr.forms(correctLang)) { + for (const form of pluralsCldr.forms(correctLang)) { const samples = cldrSamples[correctLang][form] // both need to cast to Number - funcs test with `===` and may return boolean const pluralForm = Number( @@ -324,7 +323,7 @@ export function formatter( // .po plurals are numbered 0-N and need to be mapped to ICU plural classes ("one", "few", "many"...). Different // languages can have different plural classes (some start with "zero", some with "one"), so read that data from CLDR. // `pluralForms` may be `null` if lang is not found. As long as no plural is used, don't report an error. - let pluralForms = getPluralCases( + const pluralForms = getPluralCases( po.headers.Language, po.headers["Plural-Forms"] ) diff --git a/packages/react/src/Trans.test.tsx b/packages/react/src/Trans.test.tsx index 0a32d5309..05e3b0a70 100644 --- a/packages/react/src/Trans.test.tsx +++ b/packages/react/src/Trans.test.tsx @@ -144,7 +144,7 @@ describe("Trans component", () => { id="unknown" message={"foo <0>{0} bar"} values={{ - 0: false && "lol", + 0: false, }} components={{ 0: , diff --git a/packages/react/src/format.test.tsx b/packages/react/src/format.test.tsx index 2eb30dfe3..1b4374b5d 100644 --- a/packages/react/src/format.test.tsx +++ b/packages/react/src/format.test.tsx @@ -1,7 +1,6 @@ import { render } from "@testing-library/react" import * as React from "react" import { formatElements } from "./format" -// eslint-disable-next-line import/no-extraneous-dependencies import { mockConsole } from "@lingui/jest-mocks" describe("formatElements", function () { diff --git a/yarn.lock b/yarn.lock index 65701762c..13d0f16c9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -15,15 +15,6 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:7.12.11": - version: 7.12.11 - resolution: "@babel/code-frame@npm:7.12.11" - dependencies: - "@babel/highlight": ^7.10.4 - checksum: 3963eff3ebfb0e091c7e6f99596ef4b258683e4ba8a134e4e95f77afe85be5c931e184fff6435fb4885d12eba04a5e25532f7fbc292ca13b48e7da943474e2f3 - languageName: node - linkType: hard - "@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.15.8, @babel/code-frame@npm:^7.22.13, @babel/code-frame@npm:^7.25.7": version: 7.25.7 resolution: "@babel/code-frame@npm:7.25.7" @@ -337,7 +328,7 @@ __metadata: languageName: node linkType: hard -"@babel/highlight@npm:^7.10.4, @babel/highlight@npm:^7.25.7": +"@babel/highlight@npm:^7.25.7": version: 7.25.7 resolution: "@babel/highlight@npm:7.25.7" dependencies: @@ -349,7 +340,7 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.16.4, @babel/parser@npm:^7.20.15, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.22.0, @babel/parser@npm:^7.23.9, @babel/parser@npm:^7.25.7, @babel/parser@npm:^7.7.0": +"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.16.4, @babel/parser@npm:^7.20.15, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.22.0, @babel/parser@npm:^7.23.9, @babel/parser@npm:^7.25.7": version: 7.25.7 resolution: "@babel/parser@npm:7.25.7" dependencies: @@ -1379,7 +1370,7 @@ __metadata: languageName: node linkType: hard -"@babel/traverse@npm:^7.20.12, @babel/traverse@npm:^7.20.5, @babel/traverse@npm:^7.20.7, @babel/traverse@npm:^7.25.7, @babel/traverse@npm:^7.7.0": +"@babel/traverse@npm:^7.20.12, @babel/traverse@npm:^7.20.5, @babel/traverse@npm:^7.20.7, @babel/traverse@npm:^7.25.7": version: 7.25.7 resolution: "@babel/traverse@npm:7.25.7" dependencies: @@ -1394,7 +1385,7 @@ __metadata: languageName: node linkType: hard -"@babel/types@npm:^7.0.0, @babel/types@npm:^7.18.6, @babel/types@npm:^7.18.9, @babel/types@npm:^7.20.0, @babel/types@npm:^7.20.2, @babel/types@npm:^7.20.5, @babel/types@npm:^7.20.7, @babel/types@npm:^7.21.2, @babel/types@npm:^7.22.5, @babel/types@npm:^7.25.7, @babel/types@npm:^7.3.0, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4, @babel/types@npm:^7.7.0": +"@babel/types@npm:^7.0.0, @babel/types@npm:^7.18.6, @babel/types@npm:^7.18.9, @babel/types@npm:^7.20.0, @babel/types@npm:^7.20.2, @babel/types@npm:^7.20.5, @babel/types@npm:^7.20.7, @babel/types@npm:^7.21.2, @babel/types@npm:^7.22.5, @babel/types@npm:^7.25.7, @babel/types@npm:^7.3.0, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4": version: 7.25.7 resolution: "@babel/types@npm:7.25.7" dependencies: @@ -2231,20 +2222,81 @@ __metadata: languageName: node linkType: hard -"@eslint/eslintrc@npm:^0.4.3": - version: 0.4.3 - resolution: "@eslint/eslintrc@npm:0.4.3" +"@eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.4.0": + version: 4.4.1 + resolution: "@eslint-community/eslint-utils@npm:4.4.1" + dependencies: + eslint-visitor-keys: ^3.4.3 + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + checksum: a7ffc838eb6a9ef594cda348458ccf38f34439ac77dc090fa1c120024bcd4eb911dfd74d5ef44d42063e7949fa7c5123ce714a015c4abb917d4124be1bd32bfe + languageName: node + linkType: hard + +"@eslint-community/regexpp@npm:^4.10.0, @eslint-community/regexpp@npm:^4.12.1": + version: 4.12.1 + resolution: "@eslint-community/regexpp@npm:4.12.1" + checksum: 0d628680e204bc316d545b4993d3658427ca404ae646ce541fcc65306b8c712c340e5e573e30fb9f85f4855c0c5f6dca9868931f2fcced06417fbe1a0c6cd2d6 + languageName: node + linkType: hard + +"@eslint/config-array@npm:^0.19.0": + version: 0.19.1 + resolution: "@eslint/config-array@npm:0.19.1" + dependencies: + "@eslint/object-schema": ^2.1.5 + debug: ^4.3.1 + minimatch: ^3.1.2 + checksum: 421aad712a5ef1a3d118b5e0857f79c080f9dd619a76ce19d20105d381521583786f7abb1195744af9e62a5124e6657066eb6780e920f4001846bd91c1a665f0 + languageName: node + linkType: hard + +"@eslint/core@npm:^0.9.0": + version: 0.9.1 + resolution: "@eslint/core@npm:0.9.1" + dependencies: + "@types/json-schema": ^7.0.15 + checksum: 33c8159842cc3a646caa267c008cb567ca60e0220bcdcf6e426128409953b8f6a9b142246db616c71d06331edf769c192d7e2792b3f19c2a6b8179e491512d89 + languageName: node + linkType: hard + +"@eslint/eslintrc@npm:^3.2.0": + version: 3.2.0 + resolution: "@eslint/eslintrc@npm:3.2.0" dependencies: ajv: ^6.12.4 - debug: ^4.1.1 - espree: ^7.3.0 - globals: ^13.9.0 - ignore: ^4.0.6 + debug: ^4.3.2 + espree: ^10.0.1 + globals: ^14.0.0 + ignore: ^5.2.0 import-fresh: ^3.2.1 - js-yaml: ^3.13.1 - minimatch: ^3.0.4 + js-yaml: ^4.1.0 + minimatch: ^3.1.2 strip-json-comments: ^3.1.1 - checksum: 03a7704150b868c318aab6a94d87a33d30dc2ec579d27374575014f06237ba1370ae11178db772f985ef680d469dc237e7b16a1c5d8edaaeb8c3733e7a95a6d3 + checksum: c898e4d12f4c9a79a61ee3c91e38eea5627a04e021cb749191e8537445858bfe32f810eca0cb2dc9902b8ad8b65ca07ef7221dc4bad52afe60cbbf50ec56c236 + languageName: node + linkType: hard + +"@eslint/js@npm:9.17.0, @eslint/js@npm:^9.17.0": + version: 9.17.0 + resolution: "@eslint/js@npm:9.17.0" + checksum: b68a14ff518ffa12e3b85fa9c72b818faeff092285acfbf02da2d0fb12a681b76651638881e98845f2df2ed346ed0d33faeb1d9caac163daf232c223b7efe89c + languageName: node + linkType: hard + +"@eslint/object-schema@npm:^2.1.5": + version: 2.1.5 + resolution: "@eslint/object-schema@npm:2.1.5" + checksum: 5facffc832bae93c510f4d38f0f1cbfebd3d7ec772ece6b801bd09bf2dce52e781f4dea500aa133d02257e04ed6a3958fa18cbaed1f9623974a804ee60a8ca54 + languageName: node + linkType: hard + +"@eslint/plugin-kit@npm:^0.2.3": + version: 0.2.4 + resolution: "@eslint/plugin-kit@npm:0.2.4" + dependencies: + levn: ^0.4.1 + checksum: 5693465dca5fc6f27b090f987b51bc738f48c6a6b5678dcc1791522921834206388b462578edd362d458e8de6dcd21cce1a2e8cff47d1512411ba0389112c231 languageName: node linkType: hard @@ -2255,21 +2307,41 @@ __metadata: languageName: node linkType: hard -"@humanwhocodes/config-array@npm:^0.5.0": - version: 0.5.0 - resolution: "@humanwhocodes/config-array@npm:0.5.0" +"@humanfs/core@npm:^0.19.1": + version: 0.19.1 + resolution: "@humanfs/core@npm:0.19.1" + checksum: 611e0545146f55ddfdd5c20239cfb7911f9d0e28258787c4fc1a1f6214250830c9367aaaeace0096ed90b6739bee1e9c52ad5ba8adaf74ab8b449119303babfe + languageName: node + linkType: hard + +"@humanfs/node@npm:^0.16.6": + version: 0.16.6 + resolution: "@humanfs/node@npm:0.16.6" dependencies: - "@humanwhocodes/object-schema": ^1.2.0 - debug: ^4.1.1 - minimatch: ^3.0.4 - checksum: 44ee6a9f05d93dd9d5935a006b17572328ba9caff8002442f601736cbda79c580cc0f5a49ce9eb88fbacc5c3a6b62098357c2e95326cd17bb9f1a6c61d6e95e7 + "@humanfs/core": ^0.19.1 + "@humanwhocodes/retry": ^0.3.0 + checksum: f9cb52bb235f8b9c6fcff43a7e500669a38f8d6ce26593404a9b56365a1644e0ed60c720dc65ff6a696b1f85f3563ab055bb554ec8674f2559085ba840e47710 languageName: node linkType: hard -"@humanwhocodes/object-schema@npm:^1.2.0": - version: 1.2.1 - resolution: "@humanwhocodes/object-schema@npm:1.2.1" - checksum: a824a1ec31591231e4bad5787641f59e9633827d0a2eaae131a288d33c9ef0290bd16fda8da6f7c0fcb014147865d12118df10db57f27f41e20da92369fcb3f1 +"@humanwhocodes/module-importer@npm:^1.0.1": + version: 1.0.1 + resolution: "@humanwhocodes/module-importer@npm:1.0.1" + checksum: 0fd22007db8034a2cdf2c764b140d37d9020bbfce8a49d3ec5c05290e77d4b0263b1b972b752df8c89e5eaa94073408f2b7d977aed131faf6cf396ebb5d7fb61 + languageName: node + linkType: hard + +"@humanwhocodes/retry@npm:^0.3.0": + version: 0.3.1 + resolution: "@humanwhocodes/retry@npm:0.3.1" + checksum: 7e5517bb51dbea3e02ab6cacef59a8f4b0ca023fc4b0b8cbc40de0ad29f46edd50b897c6e7fba79366a0217e3f48e2da8975056f6c35cfe19d9cc48f1d03c1dd + languageName: node + linkType: hard + +"@humanwhocodes/retry@npm:^0.4.1": + version: 0.4.1 + resolution: "@humanwhocodes/retry@npm:0.4.1" + checksum: f11167c28e8266faba470fd273cbaafe2827523492bc18c5623015adb7ed66f46b2e542e3d756fed9ca614300249267814220c2f5f03a59e07fdfa64fc14ad52 languageName: node linkType: hard @@ -3556,20 +3628,6 @@ __metadata: languageName: node linkType: hard -"@pkgr/utils@npm:^2.3.1": - version: 2.3.1 - resolution: "@pkgr/utils@npm:2.3.1" - dependencies: - cross-spawn: ^7.0.3 - is-glob: ^4.0.3 - open: ^8.4.0 - picocolors: ^1.0.0 - tiny-glob: ^0.2.9 - tslib: ^2.4.0 - checksum: 118a1971120253740121a1db0a6658c21195b7da962acf9c124b507a3df707cfc97b0b84a16edcbd4352853b182e8337da9fc6e8e3d06c60d75ae4fb42321c75 - languageName: node - linkType: hard - "@rollup/plugin-alias@npm:^5.0.0": version: 5.0.0 resolution: "@rollup/plugin-alias@npm:5.0.0" @@ -3793,6 +3851,13 @@ __metadata: languageName: node linkType: hard +"@rtsao/scc@npm:^1.1.0": + version: 1.1.0 + resolution: "@rtsao/scc@npm:1.1.0" + checksum: 17d04adf404e04c1e61391ed97bca5117d4c2767a76ae3e879390d6dec7b317fcae68afbf9e98badee075d0b64fa60f287729c4942021b4d19cd01db77385c01 + languageName: node + linkType: hard + "@sigstore/bundle@npm:^2.3.2": version: 2.3.2 resolution: "@sigstore/bundle@npm:2.3.2" @@ -4241,7 +4306,7 @@ __metadata: languageName: node linkType: hard -"@types/estree@npm:*, @types/estree@npm:1.0.6, @types/estree@npm:^1.0.0": +"@types/estree@npm:*, @types/estree@npm:1.0.6, @types/estree@npm:^1.0.0, @types/estree@npm:^1.0.6": version: 1.0.6 resolution: "@types/estree@npm:1.0.6" checksum: 8825d6e729e16445d9a1dd2fb1db2edc5ed400799064cd4d028150701031af012ba30d6d03fe9df40f4d7a437d0de6d2b256020152b7b09bde9f2e420afdffd9 @@ -4310,13 +4375,20 @@ __metadata: languageName: node linkType: hard -"@types/json-schema@npm:*, @types/json-schema@npm:^7.0.7, @types/json-schema@npm:^7.0.8, @types/json-schema@npm:^7.0.9": +"@types/json-schema@npm:*, @types/json-schema@npm:^7.0.8": version: 7.0.11 resolution: "@types/json-schema@npm:7.0.11" checksum: 527bddfe62db9012fccd7627794bd4c71beb77601861055d87e3ee464f2217c85fca7a4b56ae677478367bbd248dbde13553312b7d4dbc702a2f2bbf60c4018d languageName: node linkType: hard +"@types/json-schema@npm:^7.0.15": + version: 7.0.15 + resolution: "@types/json-schema@npm:7.0.15" + checksum: 97ed0cb44d4070aecea772b7b2e2ed971e10c81ec87dd4ecc160322ffa55ff330dace1793489540e3e318d90942064bb697cc0f8989391797792d919737b3b98 + languageName: node + linkType: hard + "@types/json5@npm:^0.0.29": version: 0.0.29 resolution: "@types/json5@npm:0.0.29" @@ -4436,13 +4508,6 @@ __metadata: languageName: node linkType: hard -"@types/semver@npm:^7.3.12": - version: 7.3.13 - resolution: "@types/semver@npm:7.3.13" - checksum: 00c0724d54757c2f4bc60b5032fe91cda6410e48689633d5f35ece8a0a66445e3e57fa1d6e07eb780f792e82ac542948ec4d0b76eb3484297b79bd18b8cf1cb0 - languageName: node - linkType: hard - "@types/stack-utils@npm:^2.0.0": version: 2.0.1 resolution: "@types/stack-utils@npm:2.0.1" @@ -4473,185 +4538,115 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:^5.50.0": - version: 5.50.0 - resolution: "@typescript-eslint/eslint-plugin@npm:5.50.0" +"@typescript-eslint/eslint-plugin@npm:8.18.1": + version: 8.18.1 + resolution: "@typescript-eslint/eslint-plugin@npm:8.18.1" dependencies: - "@typescript-eslint/scope-manager": 5.50.0 - "@typescript-eslint/type-utils": 5.50.0 - "@typescript-eslint/utils": 5.50.0 - debug: ^4.3.4 - grapheme-splitter: ^1.0.4 - ignore: ^5.2.0 - natural-compare-lite: ^1.4.0 - regexpp: ^3.2.0 - semver: ^7.3.7 - tsutils: ^3.21.0 - peerDependencies: - "@typescript-eslint/parser": ^5.0.0 - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: 351c4a157a7d717cc3835bdc09324b20d649463738a029c5701e5a38cdb162305ff7d56adff196a0c3245c24ea3167bbdac7f1c30399b8c1d495abbdbc1c53d6 - languageName: node - linkType: hard - -"@typescript-eslint/experimental-utils@npm:^4.0.1": - version: 4.33.0 - resolution: "@typescript-eslint/experimental-utils@npm:4.33.0" - dependencies: - "@types/json-schema": ^7.0.7 - "@typescript-eslint/scope-manager": 4.33.0 - "@typescript-eslint/types": 4.33.0 - "@typescript-eslint/typescript-estree": 4.33.0 - eslint-scope: ^5.1.1 - eslint-utils: ^3.0.0 + "@eslint-community/regexpp": ^4.10.0 + "@typescript-eslint/scope-manager": 8.18.1 + "@typescript-eslint/type-utils": 8.18.1 + "@typescript-eslint/utils": 8.18.1 + "@typescript-eslint/visitor-keys": 8.18.1 + graphemer: ^1.4.0 + ignore: ^5.3.1 + natural-compare: ^1.4.0 + ts-api-utils: ^1.3.0 peerDependencies: - eslint: "*" - checksum: f859800ada0884f92db6856f24efcb1d073ac9883ddc2b1aa9339f392215487895bed8447ebce3741e8141bb32e545244abef62b73193ba9a8a0527c523aabae + "@typescript-eslint/parser": ^8.0.0 || ^8.0.0-alpha.0 + eslint: ^8.57.0 || ^9.0.0 + typescript: ">=4.8.4 <5.8.0" + checksum: 662e416f7b1baaa20056495168f79994ce72396cef51bedb5efe9d35fd2b799eae6ad8a2aff1edebb2dc472d91216a43a0ac65f33300285db32f80e71b65f28c languageName: node linkType: hard -"@typescript-eslint/parser@npm:^5.50.0": - version: 5.50.0 - resolution: "@typescript-eslint/parser@npm:5.50.0" +"@typescript-eslint/parser@npm:8.18.1": + version: 8.18.1 + resolution: "@typescript-eslint/parser@npm:8.18.1" dependencies: - "@typescript-eslint/scope-manager": 5.50.0 - "@typescript-eslint/types": 5.50.0 - "@typescript-eslint/typescript-estree": 5.50.0 + "@typescript-eslint/scope-manager": 8.18.1 + "@typescript-eslint/types": 8.18.1 + "@typescript-eslint/typescript-estree": 8.18.1 + "@typescript-eslint/visitor-keys": 8.18.1 debug: ^4.3.4 peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: 816a421ce9a5c61a2e92499d6d400aed4211ca5b685e0212844b6659f7acfeba1cca0418b462236c44eea6e8a2574cd51ccb7abc2bf4a8cad5b7a275d71ae9bf - languageName: node - linkType: hard - -"@typescript-eslint/scope-manager@npm:4.33.0": - version: 4.33.0 - resolution: "@typescript-eslint/scope-manager@npm:4.33.0" - dependencies: - "@typescript-eslint/types": 4.33.0 - "@typescript-eslint/visitor-keys": 4.33.0 - checksum: 9a25fb7ba7c725ea7227a24d315b0f6aacbad002e2549a049edf723c1d3615c22f5c301f0d7d615b377f2cdf2f3519d97e79af0c459de6ef8d2aaf0906dff13e + eslint: ^8.57.0 || ^9.0.0 + typescript: ">=4.8.4 <5.8.0" + checksum: f79e027cefde0b9c08e28153159aaaa40dad26bc1afc28ef811f5afd33c8018fb66066b5bdae018d675b672b8934a0238454d6f96477e984762443dd82bd23f5 languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:5.50.0": - version: 5.50.0 - resolution: "@typescript-eslint/scope-manager@npm:5.50.0" +"@typescript-eslint/scope-manager@npm:8.18.1": + version: 8.18.1 + resolution: "@typescript-eslint/scope-manager@npm:8.18.1" dependencies: - "@typescript-eslint/types": 5.50.0 - "@typescript-eslint/visitor-keys": 5.50.0 - checksum: bd49447a834c82cb130e6900644042c3a84195bf7a63483385e90b6454c65856d6f276c997cad6bf9c36c9d0cb168fdde625ce4c78c3b8bcce42da782270794b + "@typescript-eslint/types": 8.18.1 + "@typescript-eslint/visitor-keys": 8.18.1 + checksum: be4894a135ee978b29f7f8490111a0b662985a027fc7eade2400102fbae139d0ba82fdc0c7c2e3daf690a04c8f77e45fb6f8f561b971cd1cb1fa7063905d2e39 languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:5.50.0": - version: 5.50.0 - resolution: "@typescript-eslint/type-utils@npm:5.50.0" +"@typescript-eslint/type-utils@npm:8.18.1": + version: 8.18.1 + resolution: "@typescript-eslint/type-utils@npm:8.18.1" dependencies: - "@typescript-eslint/typescript-estree": 5.50.0 - "@typescript-eslint/utils": 5.50.0 + "@typescript-eslint/typescript-estree": 8.18.1 + "@typescript-eslint/utils": 8.18.1 debug: ^4.3.4 - tsutils: ^3.21.0 + ts-api-utils: ^1.3.0 peerDependencies: - eslint: "*" - peerDependenciesMeta: - typescript: - optional: true - checksum: d2fc2fd10ef300865fd6a902ae92aef6c45cddc4359445f1e5c6dc9511063b52d2170cc6b525763395d4171c177b3d0fffd77cf9a2ab7e01fcd7109bd1a5a585 - languageName: node - linkType: hard - -"@typescript-eslint/types@npm:4.33.0": - version: 4.33.0 - resolution: "@typescript-eslint/types@npm:4.33.0" - checksum: 3baae1ca35872421b4eb60f5d3f3f32dc1d513f2ae0a67dee28c7d159fd7a43ed0d11a8a5a0f0c2d38507ffa036fc7c511cb0f18a5e8ac524b3ebde77390ec53 - languageName: node - linkType: hard - -"@typescript-eslint/types@npm:5.50.0": - version: 5.50.0 - resolution: "@typescript-eslint/types@npm:5.50.0" - checksum: 1189c63d35abeec685dd519fd923926b884e63d5e10e4a9fe995aebfde59b8a2e10773090ec3ba32a0ec408746b18f6a454d9bedb0b6c7ce8b6066547144fb4d + eslint: ^8.57.0 || ^9.0.0 + typescript: ">=4.8.4 <5.8.0" + checksum: c2a61777fd025b3689bb5cab9d2aa7acd2281a61d87d44e43d3036288fcdf28431d67c905e4e980ea1377ea7b6d861049aaf872c28ea8ebe2ab352eaa856fc1a languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:4.33.0": - version: 4.33.0 - resolution: "@typescript-eslint/typescript-estree@npm:4.33.0" - dependencies: - "@typescript-eslint/types": 4.33.0 - "@typescript-eslint/visitor-keys": 4.33.0 - debug: ^4.3.1 - globby: ^11.0.3 - is-glob: ^4.0.1 - semver: ^7.3.5 - tsutils: ^3.21.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: 2566984390c76bd95f43240057215c068c69769e406e27aba41e9f21fd300074d6772e4983fa58fe61e80eb5550af1548d2e31e80550d92ba1d051bb00fe6f5c +"@typescript-eslint/types@npm:8.18.1": + version: 8.18.1 + resolution: "@typescript-eslint/types@npm:8.18.1" + checksum: 0274d0c3d237454b4a584211ec85136c056dd38144879d5ab49cd37b1b31ed4a5cf6e84dce6e334d5b417dd0e83f40b507bc9eff28e326e00da8cdd6fed29c9f languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:5.50.0": - version: 5.50.0 - resolution: "@typescript-eslint/typescript-estree@npm:5.50.0" +"@typescript-eslint/typescript-estree@npm:8.18.1": + version: 8.18.1 + resolution: "@typescript-eslint/typescript-estree@npm:8.18.1" dependencies: - "@typescript-eslint/types": 5.50.0 - "@typescript-eslint/visitor-keys": 5.50.0 + "@typescript-eslint/types": 8.18.1 + "@typescript-eslint/visitor-keys": 8.18.1 debug: ^4.3.4 - globby: ^11.1.0 + fast-glob: ^3.3.2 is-glob: ^4.0.3 - semver: ^7.3.7 - tsutils: ^3.21.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: cb1ac8d39647da6d52750c713d9635750ed41245ec82f937a159a71ad3bf490ebabfad3b43eeca07bca39d60df30d3a2f31f8bed0061381731d92a62e284b867 - languageName: node - linkType: hard - -"@typescript-eslint/utils@npm:5.50.0": - version: 5.50.0 - resolution: "@typescript-eslint/utils@npm:5.50.0" - dependencies: - "@types/json-schema": ^7.0.9 - "@types/semver": ^7.3.12 - "@typescript-eslint/scope-manager": 5.50.0 - "@typescript-eslint/types": 5.50.0 - "@typescript-eslint/typescript-estree": 5.50.0 - eslint-scope: ^5.1.1 - eslint-utils: ^3.0.0 - semver: ^7.3.7 + minimatch: ^9.0.4 + semver: ^7.6.0 + ts-api-utils: ^1.3.0 peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - checksum: 4471ae8b24449300e009f1cc09ee0d38cce20ae9171e8fbf4ef752ce4eb87104cc0d813d8f7051b619fa05e1e7c12b748dad49832911685297b1bbfef3c01f0b + typescript: ">=4.8.4 <5.8.0" + checksum: 15d1419771cc0c532a7577332b5fbc24de13c5d8bb635875ef1b1120126df0bd45c1c35559b62d12bbe334dc9b35474ab92447d8259b604efb496205e7bcb4c4 languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:4.33.0": - version: 4.33.0 - resolution: "@typescript-eslint/visitor-keys@npm:4.33.0" +"@typescript-eslint/utils@npm:8.18.1": + version: 8.18.1 + resolution: "@typescript-eslint/utils@npm:8.18.1" dependencies: - "@typescript-eslint/types": 4.33.0 - eslint-visitor-keys: ^2.0.0 - checksum: 59953e474ad4610c1aa23b2b1a964445e2c6201521da6367752f37939d854352bbfced5c04ea539274065e012b1337ba3ffa49c2647a240a4e87155378ba9873 + "@eslint-community/eslint-utils": ^4.4.0 + "@typescript-eslint/scope-manager": 8.18.1 + "@typescript-eslint/types": 8.18.1 + "@typescript-eslint/typescript-estree": 8.18.1 + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: ">=4.8.4 <5.8.0" + checksum: 456da0728b73abaab63c68ee838dabc4ea047864cf23c1fe7757db3e6d6fe0f20cbe82381a5bf5c43cc704091c160efa4737d44213e49b70465e9f6f9302e46b languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:5.50.0": - version: 5.50.0 - resolution: "@typescript-eslint/visitor-keys@npm:5.50.0" +"@typescript-eslint/visitor-keys@npm:8.18.1": + version: 8.18.1 + resolution: "@typescript-eslint/visitor-keys@npm:8.18.1" dependencies: - "@typescript-eslint/types": 5.50.0 - eslint-visitor-keys: ^3.3.0 - checksum: 55319cb7ee7b78d07d9dc67a388d69fe0b7f11cbc79190e17e7f87a39c9992d08dab3b5872d5a7f01094dda28ad6ac61d3573e59015ef70bf138d4c4f8c45b88 + "@typescript-eslint/types": 8.18.1 + eslint-visitor-keys: ^4.2.0 + checksum: facc2115dcf06ee3aca5ac0f879f15cc1f1b097c4c90422160e2241166e55891214928de4f6975d65444483e254e77825b27774ce6e49b78a6b73cfe3022f0f2 languageName: node linkType: hard @@ -4980,7 +4975,7 @@ __metadata: languageName: node linkType: hard -"acorn-jsx@npm:^5.3.1": +"acorn-jsx@npm:^5.3.2": version: 5.3.2 resolution: "acorn-jsx@npm:5.3.2" peerDependencies: @@ -5003,7 +4998,7 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^7.1.1, acorn@npm:^7.4.0": +"acorn@npm:^7.1.1": version: 7.4.1 resolution: "acorn@npm:7.4.1" bin: @@ -5021,6 +5016,15 @@ __metadata: languageName: node linkType: hard +"acorn@npm:^8.14.0": + version: 8.14.0 + resolution: "acorn@npm:8.14.0" + bin: + acorn: bin/acorn + checksum: 8755074ba55fff94e84e81c72f1013c2d9c78e973c31231c8ae505a5f966859baf654bddd75046bffd73ce816b149298977fff5077a3033dedba0ae2aad152d4 + languageName: node + linkType: hard + "add-stream@npm:^1.0.0": version: 1.0.0 resolution: "add-stream@npm:1.0.0" @@ -5076,7 +5080,7 @@ __metadata: languageName: node linkType: hard -"ajv@npm:^6.10.0, ajv@npm:^6.12.3, ajv@npm:^6.12.4, ajv@npm:^6.12.5": +"ajv@npm:^6.12.3, ajv@npm:^6.12.4, ajv@npm:^6.12.5": version: 6.12.6 resolution: "ajv@npm:6.12.6" dependencies: @@ -5088,18 +5092,6 @@ __metadata: languageName: node linkType: hard -"ajv@npm:^8.0.1": - version: 8.12.0 - resolution: "ajv@npm:8.12.0" - dependencies: - fast-deep-equal: ^3.1.1 - json-schema-traverse: ^1.0.0 - require-from-string: ^2.0.2 - uri-js: ^4.2.2 - checksum: 4dc13714e316e67537c8b31bc063f99a1d9d9a497eb4bbd55191ac0dcd5e4985bbb71570352ad6f1e76684fb6d790928f96ba3b2d4fd6e10024be9612fe3f001 - languageName: node - linkType: hard - "ansi-colors@npm:^4.1.1": version: 4.1.3 resolution: "ansi-colors@npm:4.1.3" @@ -5248,6 +5240,16 @@ __metadata: languageName: node linkType: hard +"array-buffer-byte-length@npm:^1.0.1, array-buffer-byte-length@npm:^1.0.2": + version: 1.0.2 + resolution: "array-buffer-byte-length@npm:1.0.2" + dependencies: + call-bound: ^1.0.3 + is-array-buffer: ^3.0.5 + checksum: 0ae3786195c3211b423e5be8dd93357870e6fb66357d81da968c2c39ef43583ef6eece1f9cb1caccdae4806739c65dea832b44b8593414313cd76a89795fca63 + languageName: node + linkType: hard + "array-differ@npm:^3.0.0": version: 3.0.0 resolution: "array-differ@npm:3.0.0" @@ -5275,6 +5277,20 @@ __metadata: languageName: node linkType: hard +"array-includes@npm:^3.1.8": + version: 3.1.8 + resolution: "array-includes@npm:3.1.8" + dependencies: + call-bind: ^1.0.7 + define-properties: ^1.2.1 + es-abstract: ^1.23.2 + es-object-atoms: ^1.0.0 + get-intrinsic: ^1.2.4 + is-string: ^1.0.7 + checksum: eb39ba5530f64e4d8acab39297c11c1c5be2a4ea188ab2b34aba5fb7224d918f77717a9d57a3e2900caaa8440e59431bdaf5c974d5212ef65d97f132e38e2d91 + languageName: node + linkType: hard + "array-union@npm:^2.1.0": version: 2.1.0 resolution: "array-union@npm:2.1.0" @@ -5282,15 +5298,43 @@ __metadata: languageName: node linkType: hard -"array.prototype.flat@npm:^1.3.1": - version: 1.3.1 - resolution: "array.prototype.flat@npm:1.3.1" +"array.prototype.findlast@npm:^1.2.5": + version: 1.2.5 + resolution: "array.prototype.findlast@npm:1.2.5" dependencies: - call-bind: ^1.0.2 - define-properties: ^1.1.4 - es-abstract: ^1.20.4 - es-shim-unscopables: ^1.0.0 - checksum: 5a8415949df79bf6e01afd7e8839bbde5a3581300e8ad5d8449dea52639e9e59b26a467665622783697917b43bf39940a6e621877c7dd9b3d1c1f97484b9b88b + call-bind: ^1.0.7 + define-properties: ^1.2.1 + es-abstract: ^1.23.2 + es-errors: ^1.3.0 + es-object-atoms: ^1.0.0 + es-shim-unscopables: ^1.0.2 + checksum: 83ce4ad95bae07f136d316f5a7c3a5b911ac3296c3476abe60225bc4a17938bf37541972fcc37dd5adbc99cbb9c928c70bbbfc1c1ce549d41a415144030bb446 + languageName: node + linkType: hard + +"array.prototype.findlastindex@npm:^1.2.5": + version: 1.2.5 + resolution: "array.prototype.findlastindex@npm:1.2.5" + dependencies: + call-bind: ^1.0.7 + define-properties: ^1.2.1 + es-abstract: ^1.23.2 + es-errors: ^1.3.0 + es-object-atoms: ^1.0.0 + es-shim-unscopables: ^1.0.2 + checksum: 2c81cff2a75deb95bf1ed89b6f5f2bfbfb882211e3b7cc59c3d6b87df774cd9d6b36949a8ae39ac476e092c1d4a4905f5ee11a86a456abb10f35f8211ae4e710 + languageName: node + linkType: hard + +"array.prototype.flat@npm:^1.3.2": + version: 1.3.3 + resolution: "array.prototype.flat@npm:1.3.3" + dependencies: + call-bind: ^1.0.8 + define-properties: ^1.2.1 + es-abstract: ^1.23.5 + es-shim-unscopables: ^1.0.2 + checksum: 5d5a7829ab2bb271a8d30a1c91e6271cef0ec534593c0fe6d2fb9ebf8bb62c1e5326e2fddcbbcbbe5872ca04f5e6b54a1ecf092e0af704fb538da9b2bfd95b40 languageName: node linkType: hard @@ -5306,6 +5350,18 @@ __metadata: languageName: node linkType: hard +"array.prototype.flatmap@npm:^1.3.2": + version: 1.3.3 + resolution: "array.prototype.flatmap@npm:1.3.3" + dependencies: + call-bind: ^1.0.8 + define-properties: ^1.2.1 + es-abstract: ^1.23.5 + es-shim-unscopables: ^1.0.2 + checksum: 11b4de09b1cf008be6031bb507d997ad6f1892e57dc9153583de6ebca0f74ea403fffe0f203461d359de05048d609f3f480d9b46fed4099652d8b62cc972f284 + languageName: node + linkType: hard + "array.prototype.tosorted@npm:^1.1.1": version: 1.1.1 resolution: "array.prototype.tosorted@npm:1.1.1" @@ -5319,6 +5375,34 @@ __metadata: languageName: node linkType: hard +"array.prototype.tosorted@npm:^1.1.4": + version: 1.1.4 + resolution: "array.prototype.tosorted@npm:1.1.4" + dependencies: + call-bind: ^1.0.7 + define-properties: ^1.2.1 + es-abstract: ^1.23.3 + es-errors: ^1.3.0 + es-shim-unscopables: ^1.0.2 + checksum: e4142d6f556bcbb4f393c02e7dbaea9af8f620c040450c2be137c9cbbd1a17f216b9c688c5f2c08fbb038ab83f55993fa6efdd9a05881d84693c7bcb5422127a + languageName: node + linkType: hard + +"arraybuffer.prototype.slice@npm:^1.0.4": + version: 1.0.4 + resolution: "arraybuffer.prototype.slice@npm:1.0.4" + dependencies: + array-buffer-byte-length: ^1.0.1 + call-bind: ^1.0.8 + define-properties: ^1.2.1 + es-abstract: ^1.23.5 + es-errors: ^1.3.0 + get-intrinsic: ^1.2.6 + is-array-buffer: ^3.0.4 + checksum: b1d1fd20be4e972a3779b1569226f6740170dca10f07aa4421d42cefeec61391e79c557cda8e771f5baefe47d878178cd4438f60916ce831813c08132bced765 + languageName: node + linkType: hard + "arrify@npm:^1.0.1": version: 1.0.1 resolution: "arrify@npm:1.0.1" @@ -5377,6 +5461,15 @@ __metadata: languageName: node linkType: hard +"available-typed-arrays@npm:^1.0.7": + version: 1.0.7 + resolution: "available-typed-arrays@npm:1.0.7" + dependencies: + possible-typed-array-names: ^1.0.0 + checksum: 1aa3ffbfe6578276996de660848b6e95669d9a95ad149e3dd0c0cda77db6ee1dbd9d1dd723b65b6d277b882dd0c4b91a654ae9d3cf9e1254b7e93e4908d78fd3 + languageName: node + linkType: hard + "aws-sign2@npm:~0.7.0": version: 0.7.0 resolution: "aws-sign2@npm:0.7.0" @@ -5402,22 +5495,6 @@ __metadata: languageName: node linkType: hard -"babel-eslint@npm:^10.1.0": - version: 10.1.0 - resolution: "babel-eslint@npm:10.1.0" - dependencies: - "@babel/code-frame": ^7.0.0 - "@babel/parser": ^7.7.0 - "@babel/traverse": ^7.7.0 - "@babel/types": ^7.7.0 - eslint-visitor-keys: ^1.0.0 - resolve: ^1.12.0 - peerDependencies: - eslint: ">= 4.12.1" - checksum: bdc1f62b6b0f9c4d5108c96d835dad0c0066bc45b7c020fcb2d6a08107cf69c9217a99d3438dbd701b2816896190c4283ba04270ed9a8349ee07bd8dafcdc050 - languageName: node - linkType: hard - "babel-jest@npm:^29.7.0": version: 29.7.0 resolution: "babel-jest@npm:29.7.0" @@ -5759,6 +5836,16 @@ __metadata: languageName: node linkType: hard +"call-bind-apply-helpers@npm:^1.0.0, call-bind-apply-helpers@npm:^1.0.1": + version: 1.0.1 + resolution: "call-bind-apply-helpers@npm:1.0.1" + dependencies: + es-errors: ^1.3.0 + function-bind: ^1.1.2 + checksum: 3c55343261bb387c58a4762d15ad9d42053659a62681ec5eb50690c6b52a4a666302a01d557133ce6533e8bd04530ee3b209f23dd06c9577a1925556f8fcccdf + languageName: node + linkType: hard + "call-bind@npm:^1.0.0, call-bind@npm:^1.0.2": version: 1.0.2 resolution: "call-bind@npm:1.0.2" @@ -5769,6 +5856,28 @@ __metadata: languageName: node linkType: hard +"call-bind@npm:^1.0.7, call-bind@npm:^1.0.8": + version: 1.0.8 + resolution: "call-bind@npm:1.0.8" + dependencies: + call-bind-apply-helpers: ^1.0.0 + es-define-property: ^1.0.0 + get-intrinsic: ^1.2.4 + set-function-length: ^1.2.2 + checksum: aa2899bce917a5392fd73bd32e71799c37c0b7ab454e0ed13af7f6727549091182aade8bbb7b55f304a5bc436d543241c14090fb8a3137e9875e23f444f4f5a9 + languageName: node + linkType: hard + +"call-bound@npm:^1.0.2, call-bound@npm:^1.0.3": + version: 1.0.3 + resolution: "call-bound@npm:1.0.3" + dependencies: + call-bind-apply-helpers: ^1.0.1 + get-intrinsic: ^1.2.6 + checksum: a93bbe0f2d0a2d6c144a4349ccd0593d5d0d5d9309b69101710644af8964286420062f2cc3114dca120b9bc8cc07507952d4b1b3ea7672e0d7f6f1675efedb32 + languageName: node + linkType: hard + "callsites@npm:^3.0.0": version: 3.1.0 resolution: "callsites@npm:3.1.0" @@ -6486,7 +6595,7 @@ __metadata: languageName: node linkType: hard -"cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.1, cross-spawn@npm:^7.0.2, cross-spawn@npm:^7.0.3": +"cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.1, cross-spawn@npm:^7.0.3": version: 7.0.3 resolution: "cross-spawn@npm:7.0.3" dependencies: @@ -6497,6 +6606,17 @@ __metadata: languageName: node linkType: hard +"cross-spawn@npm:^7.0.6": + version: 7.0.6 + resolution: "cross-spawn@npm:7.0.6" + dependencies: + path-key: ^3.1.0 + shebang-command: ^2.0.0 + which: ^2.0.1 + checksum: 8d306efacaf6f3f60e0224c287664093fa9185680b2d195852ba9a863f85d02dcc737094c6e512175f8ee0161f9b87c73c6826034c2422e39de7d6569cf4503b + languageName: node + linkType: hard + "cssesc@npm:^3.0.0": version: 3.0.0 resolution: "cssesc@npm:3.0.0" @@ -6581,6 +6701,39 @@ __metadata: languageName: node linkType: hard +"data-view-buffer@npm:^1.0.2": + version: 1.0.2 + resolution: "data-view-buffer@npm:1.0.2" + dependencies: + call-bound: ^1.0.3 + es-errors: ^1.3.0 + is-data-view: ^1.0.2 + checksum: 1e1cd509c3037ac0f8ba320da3d1f8bf1a9f09b0be09394b5e40781b8cc15ff9834967ba7c9f843a425b34f9fe14ce44cf055af6662c44263424c1eb8d65659b + languageName: node + linkType: hard + +"data-view-byte-length@npm:^1.0.2": + version: 1.0.2 + resolution: "data-view-byte-length@npm:1.0.2" + dependencies: + call-bound: ^1.0.3 + es-errors: ^1.3.0 + is-data-view: ^1.0.2 + checksum: 3600c91ced1cfa935f19ef2abae11029e01738de8d229354d3b2a172bf0d7e4ed08ff8f53294b715569fdf72dfeaa96aa7652f479c0f60570878d88e7e8bddf6 + languageName: node + linkType: hard + +"data-view-byte-offset@npm:^1.0.1": + version: 1.0.1 + resolution: "data-view-byte-offset@npm:1.0.1" + dependencies: + call-bound: ^1.0.2 + es-errors: ^1.3.0 + is-data-view: ^1.0.1 + checksum: 8dd492cd51d19970876626b5b5169fbb67ca31ec1d1d3238ee6a71820ca8b80cafb141c485999db1ee1ef02f2cc3b99424c5eda8d59e852d9ebb79ab290eb5ee + languageName: node + linkType: hard + "date-fns@npm:^3.6.0": version: 3.6.0 resolution: "date-fns@npm:3.6.0" @@ -6595,7 +6748,7 @@ __metadata: languageName: node linkType: hard -"debug@npm:4, debug@npm:^4.0.1, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.3, debug@npm:^4.3.4": +"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.3, debug@npm:^4.3.4": version: 4.3.4 resolution: "debug@npm:4.3.4" dependencies: @@ -6616,6 +6769,18 @@ __metadata: languageName: node linkType: hard +"debug@npm:^4.3.2": + version: 4.4.0 + resolution: "debug@npm:4.4.0" + dependencies: + ms: ^2.1.3 + peerDependenciesMeta: + supports-color: + optional: true + checksum: fb42df878dd0e22816fc56e1fdca9da73caa85212fbe40c868b1295a6878f9101ae684f4eeef516c13acfc700f5ea07f1136954f43d4cd2d477a811144136479 + languageName: node + linkType: hard + "decamelize-keys@npm:^1.1.0": version: 1.1.1 resolution: "decamelize-keys@npm:1.1.1" @@ -6701,6 +6866,17 @@ __metadata: languageName: node linkType: hard +"define-data-property@npm:^1.0.1, define-data-property@npm:^1.1.4": + version: 1.1.4 + resolution: "define-data-property@npm:1.1.4" + dependencies: + es-define-property: ^1.0.0 + es-errors: ^1.3.0 + gopd: ^1.0.1 + checksum: 8068ee6cab694d409ac25936eb861eea704b7763f7f342adbdfe337fc27c78d7ae0eff2364b2917b58c508d723c7a074326d068eef2e45c4edcd85cf94d0313b + languageName: node + linkType: hard + "define-lazy-prop@npm:^2.0.0": version: 2.0.0 resolution: "define-lazy-prop@npm:2.0.0" @@ -6718,6 +6894,17 @@ __metadata: languageName: node linkType: hard +"define-properties@npm:^1.2.1": + version: 1.2.1 + resolution: "define-properties@npm:1.2.1" + dependencies: + define-data-property: ^1.0.1 + has-property-descriptors: ^1.0.0 + object-keys: ^1.1.1 + checksum: b4ccd00597dd46cb2d4a379398f5b19fca84a16f3374e2249201992f36b30f6835949a9429669ee6b41b6e837205a163eadd745e472069e70dfc10f03e5fcc12 + languageName: node + linkType: hard + "defu@npm:^6.1.2": version: 6.1.2 resolution: "defu@npm:6.1.2" @@ -6792,15 +6979,6 @@ __metadata: languageName: node linkType: hard -"doctrine@npm:^3.0.0": - version: 3.0.0 - resolution: "doctrine@npm:3.0.0" - dependencies: - esutils: ^2.0.2 - checksum: fd7673ca77fe26cd5cba38d816bc72d641f500f1f9b25b83e8ce28827fe2da7ad583a8da26ab6af85f834138cf8dae9f69b0cd6ab925f52ddab1754db44d99ce - languageName: node - linkType: hard - "dom-accessibility-api@npm:^0.5.9": version: 0.5.16 resolution: "dom-accessibility-api@npm:0.5.16" @@ -6851,6 +7029,17 @@ __metadata: languageName: node linkType: hard +"dunder-proto@npm:^1.0.0, dunder-proto@npm:^1.0.1": + version: 1.0.1 + resolution: "dunder-proto@npm:1.0.1" + dependencies: + call-bind-apply-helpers: ^1.0.1 + es-errors: ^1.3.0 + gopd: ^1.2.0 + checksum: 149207e36f07bd4941921b0ca929e3a28f1da7bd6b6ff8ff7f4e2f2e460675af4576eeba359c635723dc189b64cdd4787e0255897d5b135ccc5d15cb8685fc90 + languageName: node + linkType: hard + "duplexer@npm:^0.1.1": version: 0.1.2 resolution: "duplexer@npm:0.1.2" @@ -6942,7 +7131,7 @@ __metadata: languageName: node linkType: hard -"enquirer@npm:^2.3.5, enquirer@npm:~2.3.6": +"enquirer@npm:~2.3.6": version: 2.3.6 resolution: "enquirer@npm:2.3.6" dependencies: @@ -7001,6 +7190,61 @@ __metadata: languageName: node linkType: hard +"es-abstract@npm:^1.17.5, es-abstract@npm:^1.23.2, es-abstract@npm:^1.23.3, es-abstract@npm:^1.23.5, es-abstract@npm:^1.23.6": + version: 1.23.7 + resolution: "es-abstract@npm:1.23.7" + dependencies: + array-buffer-byte-length: ^1.0.2 + arraybuffer.prototype.slice: ^1.0.4 + available-typed-arrays: ^1.0.7 + call-bind: ^1.0.8 + call-bound: ^1.0.3 + data-view-buffer: ^1.0.2 + data-view-byte-length: ^1.0.2 + data-view-byte-offset: ^1.0.1 + es-define-property: ^1.0.1 + es-errors: ^1.3.0 + es-object-atoms: ^1.0.0 + es-set-tostringtag: ^2.0.3 + es-to-primitive: ^1.3.0 + function.prototype.name: ^1.1.8 + get-intrinsic: ^1.2.6 + get-symbol-description: ^1.1.0 + globalthis: ^1.0.4 + gopd: ^1.2.0 + has-property-descriptors: ^1.0.2 + has-proto: ^1.2.0 + has-symbols: ^1.1.0 + hasown: ^2.0.2 + internal-slot: ^1.1.0 + is-array-buffer: ^3.0.5 + is-callable: ^1.2.7 + is-data-view: ^1.0.2 + is-regex: ^1.2.1 + is-shared-array-buffer: ^1.0.4 + is-string: ^1.1.1 + is-typed-array: ^1.1.15 + is-weakref: ^1.1.0 + math-intrinsics: ^1.1.0 + object-inspect: ^1.13.3 + object-keys: ^1.1.1 + object.assign: ^4.1.7 + regexp.prototype.flags: ^1.5.3 + safe-array-concat: ^1.1.3 + safe-regex-test: ^1.1.0 + string.prototype.trim: ^1.2.10 + string.prototype.trimend: ^1.0.9 + string.prototype.trimstart: ^1.0.8 + typed-array-buffer: ^1.0.3 + typed-array-byte-length: ^1.0.3 + typed-array-byte-offset: ^1.0.4 + typed-array-length: ^1.0.7 + unbox-primitive: ^1.1.0 + which-typed-array: ^1.1.18 + checksum: 030f09ff2d7db69cd6c6da5b1ccb88aee986e23cf82149135f78b5b9675f1cd79a0e64de2d7e393ae40b98de76369292d87bf31db69b5b9151370f7948ee7c59 + languageName: node + linkType: hard + "es-abstract@npm:^1.19.0, es-abstract@npm:^1.20.4": version: 1.21.1 resolution: "es-abstract@npm:1.21.1" @@ -7042,6 +7286,20 @@ __metadata: languageName: node linkType: hard +"es-define-property@npm:^1.0.0, es-define-property@npm:^1.0.1": + version: 1.0.1 + resolution: "es-define-property@npm:1.0.1" + checksum: 0512f4e5d564021c9e3a644437b0155af2679d10d80f21adaf868e64d30efdfbd321631956f20f42d655fedb2e3a027da479fad3fa6048f768eb453a80a5f80a + languageName: node + linkType: hard + +"es-errors@npm:^1.3.0": + version: 1.3.0 + resolution: "es-errors@npm:1.3.0" + checksum: ec1414527a0ccacd7f15f4a3bc66e215f04f595ba23ca75cdae0927af099b5ec865f9f4d33e9d7e86f512f252876ac77d4281a7871531a50678132429b1271b5 + languageName: node + linkType: hard + "es-get-iterator@npm:^1.1.3": version: 1.1.3 resolution: "es-get-iterator@npm:1.1.3" @@ -7059,6 +7317,30 @@ __metadata: languageName: node linkType: hard +"es-iterator-helpers@npm:^1.1.0": + version: 1.2.1 + resolution: "es-iterator-helpers@npm:1.2.1" + dependencies: + call-bind: ^1.0.8 + call-bound: ^1.0.3 + define-properties: ^1.2.1 + es-abstract: ^1.23.6 + es-errors: ^1.3.0 + es-set-tostringtag: ^2.0.3 + function-bind: ^1.1.2 + get-intrinsic: ^1.2.6 + globalthis: ^1.0.4 + gopd: ^1.2.0 + has-property-descriptors: ^1.0.2 + has-proto: ^1.2.0 + has-symbols: ^1.1.0 + internal-slot: ^1.1.0 + iterator.prototype: ^1.1.4 + safe-array-concat: ^1.1.3 + checksum: 952808dd1df3643d67ec7adf20c30b36e5eecadfbf36354e6f39ed3266c8e0acf3446ce9bc465e38723d613cb1d915c1c07c140df65bdce85da012a6e7bda62b + languageName: node + linkType: hard + "es-module-lexer@npm:^0.9.0": version: 0.9.3 resolution: "es-module-lexer@npm:0.9.3" @@ -7066,6 +7348,15 @@ __metadata: languageName: node linkType: hard +"es-object-atoms@npm:^1.0.0": + version: 1.0.0 + resolution: "es-object-atoms@npm:1.0.0" + dependencies: + es-errors: ^1.3.0 + checksum: 26f0ff78ab93b63394e8403c353842b2272836968de4eafe97656adfb8a7c84b9099bf0fe96ed58f4a4cddc860f6e34c77f91649a58a5daa4a9c40b902744e3c + languageName: node + linkType: hard + "es-set-tostringtag@npm:^2.0.1": version: 2.0.1 resolution: "es-set-tostringtag@npm:2.0.1" @@ -7077,6 +7368,17 @@ __metadata: languageName: node linkType: hard +"es-set-tostringtag@npm:^2.0.3": + version: 2.0.3 + resolution: "es-set-tostringtag@npm:2.0.3" + dependencies: + get-intrinsic: ^1.2.4 + has-tostringtag: ^1.0.2 + hasown: ^2.0.1 + checksum: 7227fa48a41c0ce83e0377b11130d324ac797390688135b8da5c28994c0165be8b252e15cd1de41e1325e5a5412511586960213e88f9ab4a5e7d028895db5129 + languageName: node + linkType: hard + "es-shim-unscopables@npm:^1.0.0": version: 1.0.0 resolution: "es-shim-unscopables@npm:1.0.0" @@ -7086,6 +7388,15 @@ __metadata: languageName: node linkType: hard +"es-shim-unscopables@npm:^1.0.2": + version: 1.0.2 + resolution: "es-shim-unscopables@npm:1.0.2" + dependencies: + hasown: ^2.0.0 + checksum: 432bd527c62065da09ed1d37a3f8e623c423683285e6188108286f4a1e8e164a5bcbfbc0051557c7d14633cd2a41ce24c7048e6bbb66a985413fd32f1be72626 + languageName: node + linkType: hard + "es-to-primitive@npm:^1.2.1": version: 1.2.1 resolution: "es-to-primitive@npm:1.2.1" @@ -7097,6 +7408,17 @@ __metadata: languageName: node linkType: hard +"es-to-primitive@npm:^1.3.0": + version: 1.3.0 + resolution: "es-to-primitive@npm:1.3.0" + dependencies: + is-callable: ^1.2.7 + is-date-object: ^1.0.5 + is-symbol: ^1.0.4 + checksum: 966965880356486cd4d1fe9a523deda2084c81b3702d951212c098f5f2ee93605d1b7c1840062efb48a07d892641c7ed1bc194db563645c0dd2b919cb6d65b93 + languageName: node + linkType: hard + "esbuild@npm:^0.17.2": version: 0.17.11 resolution: "esbuild@npm:0.17.11" @@ -7554,119 +7876,55 @@ __metadata: languageName: node linkType: hard -"eslint-import-resolver-node@npm:^0.3.7": - version: 0.3.7 - resolution: "eslint-import-resolver-node@npm:0.3.7" +"eslint-import-resolver-node@npm:^0.3.9": + version: 0.3.9 + resolution: "eslint-import-resolver-node@npm:0.3.9" dependencies: debug: ^3.2.7 - is-core-module: ^2.11.0 - resolve: ^1.22.1 - checksum: 3379aacf1d2c6952c1b9666c6fa5982c3023df695430b0d391c0029f6403a7775414873d90f397e98ba6245372b6c8960e16e74d9e4a3b0c0a4582f3bdbe3d6e + is-core-module: ^2.13.0 + resolve: ^1.22.4 + checksum: 439b91271236b452d478d0522a44482e8c8540bf9df9bd744062ebb89ab45727a3acd03366a6ba2bdbcde8f9f718bab7fe8db64688aca75acf37e04eafd25e22 languageName: node linkType: hard -"eslint-import-resolver-typescript@npm:^3.5.3": - version: 3.5.3 - resolution: "eslint-import-resolver-typescript@npm:3.5.3" - dependencies: - debug: ^4.3.4 - enhanced-resolve: ^5.10.0 - get-tsconfig: ^4.2.0 - globby: ^13.1.2 - is-core-module: ^2.10.0 - is-glob: ^4.0.3 - synckit: ^0.8.4 - peerDependencies: - eslint: "*" - eslint-plugin-import: "*" - checksum: 63b5f28bec5a29b1d3be33b79795441f7b0da54479e5c99a115877d9b70b2b7464c19a928b4ae7674a937b9ee8e7d4b1d30b7f5e6325c4c3aaa8c607bb175258 - languageName: node - linkType: hard - -"eslint-module-utils@npm:^2.7.4": - version: 2.7.4 - resolution: "eslint-module-utils@npm:2.7.4" +"eslint-module-utils@npm:^2.12.0": + version: 2.12.0 + resolution: "eslint-module-utils@npm:2.12.0" dependencies: debug: ^3.2.7 peerDependenciesMeta: eslint: optional: true - checksum: 5da13645daff145a5c922896b258f8bba560722c3767254e458d894ff5fbb505d6dfd945bffa932a5b0ae06714da2379bd41011c4c20d2d59cc83e23895360f7 + checksum: be3ac52e0971c6f46daeb1a7e760e45c7c45f820c8cc211799f85f10f04ccbf7afc17039165d56cb2da7f7ca9cec2b3a777013cddf0b976784b37eb9efa24180 languageName: node linkType: hard -"eslint-plugin-es@npm:^3.0.0": - version: 3.0.1 - resolution: "eslint-plugin-es@npm:3.0.1" +"eslint-plugin-import@npm:^2.31.0": + version: 2.31.0 + resolution: "eslint-plugin-import@npm:2.31.0" dependencies: - eslint-utils: ^2.0.0 - regexpp: ^3.0.0 - peerDependencies: - eslint: ">=4.19.1" - checksum: e57592c52301ee8ddc296ae44216df007f3a870bcb3be8d1fbdb909a1d3a3efe3fa3785de02066f9eba1d6466b722d3eb3cc3f8b75b3cf6a1cbded31ac6298e4 - languageName: node - linkType: hard - -"eslint-plugin-import@npm:^2.27.5": - version: 2.27.5 - resolution: "eslint-plugin-import@npm:2.27.5" - dependencies: - array-includes: ^3.1.6 - array.prototype.flat: ^1.3.1 - array.prototype.flatmap: ^1.3.1 + "@rtsao/scc": ^1.1.0 + array-includes: ^3.1.8 + array.prototype.findlastindex: ^1.2.5 + array.prototype.flat: ^1.3.2 + array.prototype.flatmap: ^1.3.2 debug: ^3.2.7 doctrine: ^2.1.0 - eslint-import-resolver-node: ^0.3.7 - eslint-module-utils: ^2.7.4 - has: ^1.0.3 - is-core-module: ^2.11.0 + eslint-import-resolver-node: ^0.3.9 + eslint-module-utils: ^2.12.0 + hasown: ^2.0.2 + is-core-module: ^2.15.1 is-glob: ^4.0.3 minimatch: ^3.1.2 - object.values: ^1.1.6 - resolve: ^1.22.1 - semver: ^6.3.0 - tsconfig-paths: ^3.14.1 - peerDependencies: - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 - checksum: f500571a380167e25d72a4d925ef9a7aae8899eada57653e5f3051ec3d3c16d08271fcefe41a30a9a2f4fefc232f066253673ee4ea77b30dba65ae173dade85d - languageName: node - linkType: hard - -"eslint-plugin-jest@npm:^24.1.0": - version: 24.7.0 - resolution: "eslint-plugin-jest@npm:24.7.0" - dependencies: - "@typescript-eslint/experimental-utils": ^4.0.1 - peerDependencies: - "@typescript-eslint/eslint-plugin": ">= 4" - eslint: ">=5" - peerDependenciesMeta: - "@typescript-eslint/eslint-plugin": - optional: true - checksum: a4056582825ab3359d2e0e3aae50518f6f867d1cfb3240496605247d3ff9c84b4164f1a7e1f7087d5a2eae1343d738ada1ba74c422b13ad20b737601dc47ae08 - languageName: node - linkType: hard - -"eslint-plugin-node@npm:^11.1.0": - version: 11.1.0 - resolution: "eslint-plugin-node@npm:11.1.0" - dependencies: - eslint-plugin-es: ^3.0.0 - eslint-utils: ^2.0.0 - ignore: ^5.1.1 - minimatch: ^3.0.4 - resolve: ^1.10.1 - semver: ^6.1.0 + object.fromentries: ^2.0.8 + object.groupby: ^1.0.3 + object.values: ^1.2.0 + semver: ^6.3.1 + string.prototype.trimend: ^1.0.8 + tsconfig-paths: ^3.15.0 peerDependencies: - eslint: ">=5.16.0" - checksum: 5804c4f8a6e721f183ef31d46fbe3b4e1265832f352810060e0502aeac7de034df83352fc88643b19641bb2163f2587f1bd4119aff0fd21e8d98c57c450e013b - languageName: node - linkType: hard - -"eslint-plugin-promise@npm:^4.1.1": - version: 4.3.1 - resolution: "eslint-plugin-promise@npm:4.3.1" - checksum: 3a6f4180008bb3b7106371ed49060c9bca06ba5cffa82fb249f83d2c4fcf94bbefd468a837bff1164dd52066fe1be7ff2d126b212aaa8fe13e681916e78b1618 + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9 + checksum: b1d2ac268b3582ff1af2a72a2c476eae4d250c100f2e335b6e102036e4a35efa530b80ec578dfc36761fabb34a635b9bf5ab071abe9d4404a4bb054fdf22d415 languageName: node linkType: hard @@ -7704,6 +7962,34 @@ __metadata: languageName: node linkType: hard +"eslint-plugin-react@npm:^7.37.2": + version: 7.37.2 + resolution: "eslint-plugin-react@npm:7.37.2" + dependencies: + array-includes: ^3.1.8 + array.prototype.findlast: ^1.2.5 + array.prototype.flatmap: ^1.3.2 + array.prototype.tosorted: ^1.1.4 + doctrine: ^2.1.0 + es-iterator-helpers: ^1.1.0 + estraverse: ^5.3.0 + hasown: ^2.0.2 + jsx-ast-utils: ^2.4.1 || ^3.0.0 + minimatch: ^3.1.2 + object.entries: ^1.1.8 + object.fromentries: ^2.0.8 + object.values: ^1.2.0 + prop-types: ^15.8.1 + resolve: ^2.0.0-next.5 + semver: ^6.3.1 + string.prototype.matchall: ^4.0.11 + string.prototype.repeat: ^1.0.0 + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 + checksum: 7f5203afee7fbe3702b27fdd2b9a3c0ccbbb47d0672f58311b9d8a08dea819c9da4a87c15e8bd508f2562f327a9d29ee8bd9cd189bf758d8dc903de5648b0bfa + languageName: node + linkType: hard + "eslint-rule-docs@npm:^1.1.5": version: 1.1.235 resolution: "eslint-rule-docs@npm:1.1.235" @@ -7711,7 +7997,7 @@ __metadata: languageName: node linkType: hard -"eslint-scope@npm:5.1.1, eslint-scope@npm:^5.1.1": +"eslint-scope@npm:5.1.1": version: 5.1.1 resolution: "eslint-scope@npm:5.1.1" dependencies: @@ -7721,105 +8007,87 @@ __metadata: languageName: node linkType: hard -"eslint-utils@npm:^2.0.0, eslint-utils@npm:^2.1.0": - version: 2.1.0 - resolution: "eslint-utils@npm:2.1.0" - dependencies: - eslint-visitor-keys: ^1.1.0 - checksum: 27500938f348da42100d9e6ad03ae29b3de19ba757ae1a7f4a087bdcf83ac60949bbb54286492ca61fac1f5f3ac8692dd21537ce6214240bf95ad0122f24d71d - languageName: node - linkType: hard - -"eslint-utils@npm:^3.0.0": - version: 3.0.0 - resolution: "eslint-utils@npm:3.0.0" +"eslint-scope@npm:^8.2.0": + version: 8.2.0 + resolution: "eslint-scope@npm:8.2.0" dependencies: - eslint-visitor-keys: ^2.0.0 - peerDependencies: - eslint: ">=5" - checksum: 0668fe02f5adab2e5a367eee5089f4c39033af20499df88fe4e6aba2015c20720404d8c3d6349b6f716b08fdf91b9da4e5d5481f265049278099c4c836ccb619 - languageName: node - linkType: hard - -"eslint-visitor-keys@npm:^1.0.0, eslint-visitor-keys@npm:^1.1.0, eslint-visitor-keys@npm:^1.3.0": - version: 1.3.0 - resolution: "eslint-visitor-keys@npm:1.3.0" - checksum: 37a19b712f42f4c9027e8ba98c2b06031c17e0c0a4c696cd429bd9ee04eb43889c446f2cd545e1ff51bef9593fcec94ecd2c2ef89129fcbbf3adadbef520376a - languageName: node - linkType: hard - -"eslint-visitor-keys@npm:^2.0.0": - version: 2.1.0 - resolution: "eslint-visitor-keys@npm:2.1.0" - checksum: e3081d7dd2611a35f0388bbdc2f5da60b3a3c5b8b6e928daffff7391146b434d691577aa95064c8b7faad0b8a680266bcda0a42439c18c717b80e6718d7e267d + esrecurse: ^4.3.0 + estraverse: ^5.2.0 + checksum: 750eff4672ca2bf274ec0d1bbeae08aadd53c1907d5c6aff5564d8e047a5f49afa8ae6eee333cab637fd3ebcab2141659d8f2f040f6fdc982b0f61f8bf03136f languageName: node linkType: hard -"eslint-visitor-keys@npm:^3.3.0": - version: 3.3.0 - resolution: "eslint-visitor-keys@npm:3.3.0" - checksum: d59e68a7c5a6d0146526b0eec16ce87fbf97fe46b8281e0d41384224375c4e52f5ffb9e16d48f4ea50785cde93f766b0c898e31ab89978d88b0e1720fbfb7808 +"eslint-visitor-keys@npm:^3.4.3": + version: 3.4.3 + resolution: "eslint-visitor-keys@npm:3.4.3" + checksum: 36e9ef87fca698b6fd7ca5ca35d7b2b6eeaaf106572e2f7fd31c12d3bfdaccdb587bba6d3621067e5aece31c8c3a348b93922ab8f7b2cbc6aaab5e1d89040c60 languageName: node linkType: hard -"eslint@npm:^7.32.0": - version: 7.32.0 - resolution: "eslint@npm:7.32.0" - dependencies: - "@babel/code-frame": 7.12.11 - "@eslint/eslintrc": ^0.4.3 - "@humanwhocodes/config-array": ^0.5.0 - ajv: ^6.10.0 +"eslint-visitor-keys@npm:^4.2.0": + version: 4.2.0 + resolution: "eslint-visitor-keys@npm:4.2.0" + checksum: 779c604672b570bb4da84cef32f6abb085ac78379779c1122d7879eade8bb38ae715645324597cf23232d03cef06032c9844d25c73625bc282a5bfd30247e5b5 + languageName: node + linkType: hard + +"eslint@npm:^9.17.0": + version: 9.17.0 + resolution: "eslint@npm:9.17.0" + dependencies: + "@eslint-community/eslint-utils": ^4.2.0 + "@eslint-community/regexpp": ^4.12.1 + "@eslint/config-array": ^0.19.0 + "@eslint/core": ^0.9.0 + "@eslint/eslintrc": ^3.2.0 + "@eslint/js": 9.17.0 + "@eslint/plugin-kit": ^0.2.3 + "@humanfs/node": ^0.16.6 + "@humanwhocodes/module-importer": ^1.0.1 + "@humanwhocodes/retry": ^0.4.1 + "@types/estree": ^1.0.6 + "@types/json-schema": ^7.0.15 + ajv: ^6.12.4 chalk: ^4.0.0 - cross-spawn: ^7.0.2 - debug: ^4.0.1 - doctrine: ^3.0.0 - enquirer: ^2.3.5 + cross-spawn: ^7.0.6 + debug: ^4.3.2 escape-string-regexp: ^4.0.0 - eslint-scope: ^5.1.1 - eslint-utils: ^2.1.0 - eslint-visitor-keys: ^2.0.0 - espree: ^7.3.1 - esquery: ^1.4.0 + eslint-scope: ^8.2.0 + eslint-visitor-keys: ^4.2.0 + espree: ^10.3.0 + esquery: ^1.5.0 esutils: ^2.0.2 fast-deep-equal: ^3.1.3 - file-entry-cache: ^6.0.1 - functional-red-black-tree: ^1.0.1 - glob-parent: ^5.1.2 - globals: ^13.6.0 - ignore: ^4.0.6 - import-fresh: ^3.0.0 + file-entry-cache: ^8.0.0 + find-up: ^5.0.0 + glob-parent: ^6.0.2 + ignore: ^5.2.0 imurmurhash: ^0.1.4 is-glob: ^4.0.0 - js-yaml: ^3.13.1 json-stable-stringify-without-jsonify: ^1.0.1 - levn: ^0.4.1 lodash.merge: ^4.6.2 - minimatch: ^3.0.4 + minimatch: ^3.1.2 natural-compare: ^1.4.0 - optionator: ^0.9.1 - progress: ^2.0.0 - regexpp: ^3.1.0 - semver: ^7.2.1 - strip-ansi: ^6.0.0 - strip-json-comments: ^3.1.0 - table: ^6.0.9 - text-table: ^0.2.0 - v8-compile-cache: ^2.0.3 + optionator: ^0.9.3 + peerDependencies: + jiti: "*" + peerDependenciesMeta: + jiti: + optional: true bin: eslint: bin/eslint.js - checksum: cc85af9985a3a11085c011f3d27abe8111006d34cc274291b3c4d7bea51a4e2ff6135780249becd919ba7f6d6d1ecc38a6b73dacb6a7be08d38453b344dc8d37 + checksum: 0caae58c53bf4dc9b4893d75e62339e4c40fe5589652a3cb63f30a15bad1f34f8f784ca4fca471bbffedabee516a9f9620ebc33818b55e1b715e8f000865c851 languageName: node linkType: hard -"espree@npm:^7.3.0, espree@npm:^7.3.1": - version: 7.3.1 - resolution: "espree@npm:7.3.1" +"espree@npm:^10.0.1, espree@npm:^10.3.0": + version: 10.3.0 + resolution: "espree@npm:10.3.0" dependencies: - acorn: ^7.4.0 - acorn-jsx: ^5.3.1 - eslint-visitor-keys: ^1.3.0 - checksum: aa9b50dcce883449af2e23bc2b8d9abb77118f96f4cb313935d6b220f77137eaef7724a83c3f6243b96bc0e4ab14766198e60818caad99f9519ae5a336a39b45 + acorn: ^8.14.0 + acorn-jsx: ^5.3.2 + eslint-visitor-keys: ^4.2.0 + checksum: 63e8030ff5a98cea7f8b3e3a1487c998665e28d674af08b9b3100ed991670eb3cbb0e308c4548c79e03762753838fbe530c783f17309450d6b47a889fee72bef languageName: node linkType: hard @@ -7833,12 +8101,12 @@ __metadata: languageName: node linkType: hard -"esquery@npm:^1.4.0": - version: 1.5.0 - resolution: "esquery@npm:1.5.0" +"esquery@npm:^1.5.0": + version: 1.6.0 + resolution: "esquery@npm:1.6.0" dependencies: estraverse: ^5.1.0 - checksum: aefb0d2596c230118656cd4ec7532d447333a410a48834d80ea648b1e7b5c9bc9ed8b5e33a89cb04e487b60d622f44cf5713bf4abed7c97343edefdc84a35900 + checksum: 08ec4fe446d9ab27186da274d979558557fbdbbd10968fa9758552482720c54152a5640e08b9009e5a30706b66aba510692054d4129d32d0e12e05bbc0b96fb2 languageName: node linkType: hard @@ -8040,6 +8308,19 @@ __metadata: languageName: node linkType: hard +"fast-glob@npm:^3.3.2": + version: 3.3.2 + resolution: "fast-glob@npm:3.3.2" + dependencies: + "@nodelib/fs.stat": ^2.0.2 + "@nodelib/fs.walk": ^1.2.3 + glob-parent: ^5.1.2 + merge2: ^1.3.0 + micromatch: ^4.0.4 + checksum: 900e4979f4dbc3313840078419245621259f349950411ca2fa445a2f9a1a6d98c3b5e7e0660c5ccd563aa61abe133a21765c6c0dec8e57da1ba71d8000b05ec1 + languageName: node + linkType: hard + "fast-json-stable-stringify@npm:2.x, fast-json-stable-stringify@npm:^2.0.0, fast-json-stable-stringify@npm:^2.1.0": version: 2.1.0 resolution: "fast-json-stable-stringify@npm:2.1.0" @@ -8081,12 +8362,12 @@ __metadata: languageName: node linkType: hard -"file-entry-cache@npm:^6.0.1": - version: 6.0.1 - resolution: "file-entry-cache@npm:6.0.1" +"file-entry-cache@npm:^8.0.0": + version: 8.0.0 + resolution: "file-entry-cache@npm:8.0.0" dependencies: - flat-cache: ^3.0.4 - checksum: f49701feaa6314c8127c3c2f6173cfefff17612f5ed2daaafc6da13b5c91fd43e3b2a58fd0d63f9f94478a501b167615931e7200e31485e320f74a33885a9c74 + flat-cache: ^4.0.0 + checksum: f67802d3334809048c69b3d458f672e1b6d26daefda701761c81f203b80149c35dea04d78ea4238969dd617678e530876722a0634c43031a0957f10cc3ed190f languageName: node linkType: hard @@ -8136,13 +8417,23 @@ __metadata: languageName: node linkType: hard -"flat-cache@npm:^3.0.4": - version: 3.0.4 - resolution: "flat-cache@npm:3.0.4" +"find-up@npm:^5.0.0": + version: 5.0.0 + resolution: "find-up@npm:5.0.0" dependencies: - flatted: ^3.1.0 - rimraf: ^3.0.2 - checksum: 4fdd10ecbcbf7d520f9040dd1340eb5dfe951e6f0ecf2252edeec03ee68d989ec8b9a20f4434270e71bcfd57800dc09b3344fca3966b2eb8f613072c7d9a2365 + locate-path: ^6.0.0 + path-exists: ^4.0.0 + checksum: 07955e357348f34660bde7920783204ff5a26ac2cafcaa28bace494027158a97b9f56faaf2d89a6106211a8174db650dd9f503f9c0d526b1202d5554a00b9095 + languageName: node + linkType: hard + +"flat-cache@npm:^4.0.0": + version: 4.0.1 + resolution: "flat-cache@npm:4.0.1" + dependencies: + flatted: ^3.2.9 + keyv: ^4.5.4 + checksum: 899fc86bf6df093547d76e7bfaeb900824b869d7d457d02e9b8aae24836f0a99fbad79328cfd6415ee8908f180699bf259dc7614f793447cb14f707caf5996f6 languageName: node linkType: hard @@ -8155,10 +8446,10 @@ __metadata: languageName: node linkType: hard -"flatted@npm:^3.1.0": - version: 3.2.7 - resolution: "flatted@npm:3.2.7" - checksum: 427633049d55bdb80201c68f7eb1cbd533e03eac541f97d3aecab8c5526f12a20ccecaeede08b57503e772c769e7f8680b37e8d482d1e5f8d7e2194687f9ea35 +"flatted@npm:^3.2.9": + version: 3.3.2 + resolution: "flatted@npm:3.3.2" + checksum: ac3c159742e01d0e860a861164bcfd35bb567ccbebb8a0dd041e61cf3c64a435b917dd1e7ed1c380c2ebca85735fb16644485ec33665bc6aafc3b316aa1eed44 languageName: node linkType: hard @@ -8309,6 +8600,13 @@ __metadata: languageName: node linkType: hard +"function-bind@npm:^1.1.2": + version: 1.1.2 + resolution: "function-bind@npm:1.1.2" + checksum: 2b0ff4ce708d99715ad14a6d1f894e2a83242e4a52ccfcefaee5e40050562e5f6dafc1adbb4ce2d4ab47279a45dc736ab91ea5042d843c3c092820dfe032efb1 + languageName: node + linkType: hard + "function.prototype.name@npm:^1.1.5": version: 1.1.5 resolution: "function.prototype.name@npm:1.1.5" @@ -8321,10 +8619,17 @@ __metadata: languageName: node linkType: hard -"functional-red-black-tree@npm:^1.0.1": - version: 1.0.1 - resolution: "functional-red-black-tree@npm:1.0.1" - checksum: ca6c170f37640e2d94297da8bb4bf27a1d12bea3e00e6a3e007fd7aa32e37e000f5772acf941b4e4f3cf1c95c3752033d0c509af157ad8f526e7f00723b9eb9f +"function.prototype.name@npm:^1.1.6, function.prototype.name@npm:^1.1.8": + version: 1.1.8 + resolution: "function.prototype.name@npm:1.1.8" + dependencies: + call-bind: ^1.0.8 + call-bound: ^1.0.3 + define-properties: ^1.2.1 + functions-have-names: ^1.2.3 + hasown: ^2.0.2 + is-callable: ^1.2.7 + checksum: 3a366535dc08b25f40a322efefa83b2da3cd0f6da41db7775f2339679120ef63b6c7e967266182609e655b8f0a8f65596ed21c7fd72ad8bd5621c2340edd4010 languageName: node linkType: hard @@ -8393,6 +8698,24 @@ __metadata: languageName: node linkType: hard +"get-intrinsic@npm:^1.2.4, get-intrinsic@npm:^1.2.5, get-intrinsic@npm:^1.2.6": + version: 1.2.6 + resolution: "get-intrinsic@npm:1.2.6" + dependencies: + call-bind-apply-helpers: ^1.0.1 + dunder-proto: ^1.0.0 + es-define-property: ^1.0.1 + es-errors: ^1.3.0 + es-object-atoms: ^1.0.0 + function-bind: ^1.1.2 + gopd: ^1.2.0 + has-symbols: ^1.1.0 + hasown: ^2.0.2 + math-intrinsics: ^1.0.0 + checksum: a7592a0b7f023a2e83c0121fa9449ca83780e370a5feeebe8452119474d148016e43b455049134ae7a683b9b11b93d3f65eac199a0ad452ab740d5f0c299de47 + languageName: node + linkType: hard + "get-package-type@npm:^0.1.0": version: 0.1.0 resolution: "get-package-type@npm:0.1.0" @@ -8445,10 +8768,14 @@ __metadata: languageName: node linkType: hard -"get-tsconfig@npm:^4.2.0": - version: 4.4.0 - resolution: "get-tsconfig@npm:4.4.0" - checksum: e193558b4f0c84c81ae9688cf5b9950dc0b341e44f91b002713fd0c37cfb73108e1cd9998ed540bcc423f193fde32cc58a15e99dd469f5158a2eb4a148611176 +"get-symbol-description@npm:^1.1.0": + version: 1.1.0 + resolution: "get-symbol-description@npm:1.1.0" + dependencies: + call-bound: ^1.0.3 + es-errors: ^1.3.0 + get-intrinsic: ^1.2.6 + checksum: 655ed04db48ee65ef2ddbe096540d4405e79ba0a7f54225775fef43a7e2afcb93a77d141c5f05fdef0afce2eb93bcbfb3597142189d562ac167ff183582683cd languageName: node linkType: hard @@ -8524,7 +8851,7 @@ __metadata: languageName: node linkType: hard -"glob-parent@npm:6.0.2": +"glob-parent@npm:6.0.2, glob-parent@npm:^6.0.2": version: 6.0.2 resolution: "glob-parent@npm:6.0.2" dependencies: @@ -8627,12 +8954,10 @@ __metadata: languageName: node linkType: hard -"globals@npm:^13.6.0, globals@npm:^13.9.0": - version: 13.20.0 - resolution: "globals@npm:13.20.0" - dependencies: - type-fest: ^0.20.2 - checksum: ad1ecf914bd051325faad281d02ea2c0b1df5d01bd94d368dcc5513340eac41d14b3c61af325768e3c7f8d44576e72780ec0b6f2d366121f8eec6e03c3a3b97a +"globals@npm:^14.0.0": + version: 14.0.0 + resolution: "globals@npm:14.0.0" + checksum: 534b8216736a5425737f59f6e6a5c7f386254560c9f41d24a9227d60ee3ad4a9e82c5b85def0e212e9d92162f83a92544be4c7fd4c902cb913736c10e08237ac languageName: node linkType: hard @@ -8645,14 +8970,17 @@ __metadata: languageName: node linkType: hard -"globalyzer@npm:0.1.0": - version: 0.1.0 - resolution: "globalyzer@npm:0.1.0" - checksum: 419a0f95ba542534fac0842964d31b3dc2936a479b2b1a8a62bad7e8b61054faa9b0a06ad9f2e12593396b9b2621cac93358d9b3071d33723fb1778608d358a1 +"globalthis@npm:^1.0.4": + version: 1.0.4 + resolution: "globalthis@npm:1.0.4" + dependencies: + define-properties: ^1.2.1 + gopd: ^1.0.1 + checksum: 39ad667ad9f01476474633a1834a70842041f70a55571e8dcef5fb957980a92da5022db5430fca8aecc5d47704ae30618c0bc877a579c70710c904e9ef06108a languageName: node linkType: hard -"globby@npm:11.1.0, globby@npm:^11.0.1, globby@npm:^11.0.3, globby@npm:^11.1.0": +"globby@npm:11.1.0, globby@npm:^11.0.1, globby@npm:^11.1.0": version: 11.1.0 resolution: "globby@npm:11.1.0" dependencies: @@ -8666,7 +8994,7 @@ __metadata: languageName: node linkType: hard -"globby@npm:^13.1.2, globby@npm:^13.2.2": +"globby@npm:^13.2.2": version: 13.2.2 resolution: "globby@npm:13.2.2" dependencies: @@ -8679,13 +9007,6 @@ __metadata: languageName: node linkType: hard -"globrex@npm:^0.1.2": - version: 0.1.2 - resolution: "globrex@npm:0.1.2" - checksum: adca162494a176ce9ecf4dd232f7b802956bb1966b37f60c15e49d2e7d961b66c60826366dc2649093cad5a0d69970cfa8875bd1695b5a1a2f33dcd2aa88da3c - languageName: node - linkType: hard - "gopd@npm:^1.0.1": version: 1.0.1 resolution: "gopd@npm:1.0.1" @@ -8695,6 +9016,13 @@ __metadata: languageName: node linkType: hard +"gopd@npm:^1.2.0": + version: 1.2.0 + resolution: "gopd@npm:1.2.0" + checksum: cc6d8e655e360955bdccaca51a12a474268f95bb793fc3e1f2bdadb075f28bfd1fd988dab872daf77a61d78cbaf13744bc8727a17cfb1d150d76047d805375f3 + languageName: node + linkType: hard + "graceful-fs@npm:4.2.11, graceful-fs@npm:^4.1.11, graceful-fs@npm:^4.1.15, graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9": version: 4.2.11 resolution: "graceful-fs@npm:4.2.11" @@ -8702,10 +9030,10 @@ __metadata: languageName: node linkType: hard -"grapheme-splitter@npm:^1.0.4": - version: 1.0.4 - resolution: "grapheme-splitter@npm:1.0.4" - checksum: 0c22ec54dee1b05cd480f78cf14f732cb5b108edc073572c4ec205df4cd63f30f8db8025afc5debc8835a8ddeacf648a1c7992fe3dcd6ad38f9a476d84906620 +"graphemer@npm:^1.4.0": + version: 1.4.0 + resolution: "graphemer@npm:1.4.0" + checksum: bab8f0be9b568857c7bec9fda95a89f87b783546d02951c40c33f84d05bb7da3fd10f863a9beb901463669b6583173a8c8cc6d6b306ea2b9b9d5d3d943c3a673 languageName: node linkType: hard @@ -8781,6 +9109,15 @@ __metadata: languageName: node linkType: hard +"has-property-descriptors@npm:^1.0.2": + version: 1.0.2 + resolution: "has-property-descriptors@npm:1.0.2" + dependencies: + es-define-property: ^1.0.0 + checksum: fcbb246ea2838058be39887935231c6d5788babed499d0e9d0cc5737494c48aba4fe17ba1449e0d0fbbb1e36175442faa37f9c427ae357d6ccb1d895fbcd3de3 + languageName: node + linkType: hard + "has-proto@npm:^1.0.1": version: 1.0.1 resolution: "has-proto@npm:1.0.1" @@ -8788,6 +9125,15 @@ __metadata: languageName: node linkType: hard +"has-proto@npm:^1.2.0": + version: 1.2.0 + resolution: "has-proto@npm:1.2.0" + dependencies: + dunder-proto: ^1.0.0 + checksum: f55010cb94caa56308041d77967c72a02ffd71386b23f9afa8447e58bc92d49d15c19bf75173713468e92fe3fb1680b03b115da39c21c32c74886d1d50d3e7ff + languageName: node + linkType: hard + "has-symbols@npm:^1.0.2, has-symbols@npm:^1.0.3": version: 1.0.3 resolution: "has-symbols@npm:1.0.3" @@ -8795,6 +9141,13 @@ __metadata: languageName: node linkType: hard +"has-symbols@npm:^1.1.0": + version: 1.1.0 + resolution: "has-symbols@npm:1.1.0" + checksum: b2316c7302a0e8ba3aaba215f834e96c22c86f192e7310bdf689dd0e6999510c89b00fbc5742571507cebf25764d68c988b3a0da217369a73596191ac0ce694b + languageName: node + linkType: hard + "has-tostringtag@npm:^1.0.0": version: 1.0.0 resolution: "has-tostringtag@npm:1.0.0" @@ -8804,6 +9157,15 @@ __metadata: languageName: node linkType: hard +"has-tostringtag@npm:^1.0.2": + version: 1.0.2 + resolution: "has-tostringtag@npm:1.0.2" + dependencies: + has-symbols: ^1.0.3 + checksum: 999d60bb753ad714356b2c6c87b7fb74f32463b8426e159397da4bde5bca7e598ab1073f4d8d4deafac297f2eb311484cd177af242776bf05f0d11565680468d + languageName: node + linkType: hard + "has-unicode@npm:2.0.1, has-unicode@npm:^2.0.0, has-unicode@npm:^2.0.1": version: 2.0.1 resolution: "has-unicode@npm:2.0.1" @@ -8820,6 +9182,15 @@ __metadata: languageName: node linkType: hard +"hasown@npm:^2.0.0, hasown@npm:^2.0.1, hasown@npm:^2.0.2": + version: 2.0.2 + resolution: "hasown@npm:2.0.2" + dependencies: + function-bind: ^1.1.2 + checksum: e8516f776a15149ca6c6ed2ae3110c417a00b62260e222590e54aa367cbcd6ed99122020b37b7fbdf05748df57b265e70095d7bf35a47660587619b15ffb93db + languageName: node + linkType: hard + "hookable@npm:^5.5.3": version: 5.5.3 resolution: "hookable@npm:5.5.3" @@ -9020,21 +9391,21 @@ __metadata: languageName: node linkType: hard -"ignore@npm:^4.0.6": - version: 4.0.6 - resolution: "ignore@npm:4.0.6" - checksum: 248f82e50a430906f9ee7f35e1158e3ec4c3971451dd9f99c9bc1548261b4db2b99709f60ac6c6cac9333494384176cc4cc9b07acbe42d52ac6a09cad734d800 - languageName: node - linkType: hard - -"ignore@npm:^5.0.4, ignore@npm:^5.1.1, ignore@npm:^5.2.0, ignore@npm:^5.2.4": +"ignore@npm:^5.0.4, ignore@npm:^5.2.0, ignore@npm:^5.2.4": version: 5.2.4 resolution: "ignore@npm:5.2.4" checksum: 3d4c309c6006e2621659311783eaea7ebcd41fe4ca1d78c91c473157ad6666a57a2df790fe0d07a12300d9aac2888204d7be8d59f9aaf665b1c7fcdb432517ef languageName: node linkType: hard -"import-fresh@npm:^3.0.0, import-fresh@npm:^3.2.1, import-fresh@npm:^3.3.0": +"ignore@npm:^5.3.1": + version: 5.3.2 + resolution: "ignore@npm:5.3.2" + checksum: 2acfd32a573260ea522ea0bfeff880af426d68f6831f973129e2ba7363f422923cf53aab62f8369cbf4667c7b25b6f8a3761b34ecdb284ea18e87a5262a865be + languageName: node + linkType: hard + +"import-fresh@npm:^3.2.1, import-fresh@npm:^3.3.0": version: 3.3.0 resolution: "import-fresh@npm:3.3.0" dependencies: @@ -9178,6 +9549,17 @@ __metadata: languageName: node linkType: hard +"internal-slot@npm:^1.1.0": + version: 1.1.0 + resolution: "internal-slot@npm:1.1.0" + dependencies: + es-errors: ^1.3.0 + hasown: ^2.0.2 + side-channel: ^1.1.0 + checksum: 8e0991c2d048cc08dab0a91f573c99f6a4215075887517ea4fa32203ce8aea60fa03f95b177977fa27eb502e5168366d0f3e02c762b799691411d49900611861 + languageName: node + linkType: hard + "ip-address@npm:^9.0.5": version: 9.0.5 resolution: "ip-address@npm:9.0.5" @@ -9216,6 +9598,17 @@ __metadata: languageName: node linkType: hard +"is-array-buffer@npm:^3.0.4, is-array-buffer@npm:^3.0.5": + version: 3.0.5 + resolution: "is-array-buffer@npm:3.0.5" + dependencies: + call-bind: ^1.0.8 + call-bound: ^1.0.3 + get-intrinsic: ^1.2.6 + checksum: f137a2a6e77af682cdbffef1e633c140cf596f72321baf8bba0f4ef22685eb4339dde23dfe9e9ca430b5f961dee4d46577dcf12b792b68518c8449b134fb9156 + languageName: node + linkType: hard + "is-arrayish@npm:^0.2.1": version: 0.2.1 resolution: "is-arrayish@npm:0.2.1" @@ -9223,6 +9616,15 @@ __metadata: languageName: node linkType: hard +"is-async-function@npm:^2.0.0": + version: 2.0.0 + resolution: "is-async-function@npm:2.0.0" + dependencies: + has-tostringtag: ^1.0.0 + checksum: e3471d95e6c014bf37cad8a93f2f4b6aac962178e0a5041e8903147166964fdc1c5c1d2ef87e86d77322c370ca18f2ea004fa7420581fa747bcaf7c223069dbd + languageName: node + linkType: hard + "is-bigint@npm:^1.0.1": version: 1.0.4 resolution: "is-bigint@npm:1.0.4" @@ -9232,6 +9634,15 @@ __metadata: languageName: node linkType: hard +"is-bigint@npm:^1.1.0": + version: 1.1.0 + resolution: "is-bigint@npm:1.1.0" + dependencies: + has-bigints: ^1.0.2 + checksum: ee1544f0e664f253306786ed1dce494b8cf242ef415d6375d8545b4d8816b0f054bd9f948a8988ae2c6325d1c28260dd02978236b2f7b8fb70dfc4838a6c9fa7 + languageName: node + linkType: hard + "is-binary-path@npm:~2.1.0": version: 2.1.0 resolution: "is-binary-path@npm:2.1.0" @@ -9251,6 +9662,16 @@ __metadata: languageName: node linkType: hard +"is-boolean-object@npm:^1.2.1": + version: 1.2.1 + resolution: "is-boolean-object@npm:1.2.1" + dependencies: + call-bound: ^1.0.2 + has-tostringtag: ^1.0.2 + checksum: 2672609f0f2536172873810a38ec006a415e43ddc6a240f7638a1659cb20dfa91cc75c8a1bed36247bb046aa8f0eab945f20d1203bc69606418bd129c745f861 + languageName: node + linkType: hard + "is-builtin-module@npm:^3.2.1": version: 3.2.1 resolution: "is-builtin-module@npm:3.2.1" @@ -9278,7 +9699,16 @@ __metadata: languageName: node linkType: hard -"is-core-module@npm:^2.10.0, is-core-module@npm:^2.11.0, is-core-module@npm:^2.5.0, is-core-module@npm:^2.9.0": +"is-core-module@npm:^2.13.0, is-core-module@npm:^2.15.1, is-core-module@npm:^2.16.0": + version: 2.16.0 + resolution: "is-core-module@npm:2.16.0" + dependencies: + hasown: ^2.0.2 + checksum: 98aa14eaee864c2e86fff4e08813e0da3ca7ac38dd0a43b9f10aeec48bfbc4827e2677349adb626f66921caef7fa9e2745c80b8b7cafe8ac24d46dc8124cc216 + languageName: node + linkType: hard + +"is-core-module@npm:^2.5.0, is-core-module@npm:^2.9.0": version: 2.11.0 resolution: "is-core-module@npm:2.11.0" dependencies: @@ -9287,6 +9717,17 @@ __metadata: languageName: node linkType: hard +"is-data-view@npm:^1.0.1, is-data-view@npm:^1.0.2": + version: 1.0.2 + resolution: "is-data-view@npm:1.0.2" + dependencies: + call-bound: ^1.0.2 + get-intrinsic: ^1.2.6 + is-typed-array: ^1.1.13 + checksum: 31600dd19932eae7fd304567e465709ffbfa17fa236427c9c864148e1b54eb2146357fcf3aed9b686dee13c217e1bb5a649cb3b9c479e1004c0648e9febde1b2 + languageName: node + linkType: hard + "is-date-object@npm:^1.0.1, is-date-object@npm:^1.0.5": version: 1.0.5 resolution: "is-date-object@npm:1.0.5" @@ -9296,6 +9737,16 @@ __metadata: languageName: node linkType: hard +"is-date-object@npm:^1.1.0": + version: 1.1.0 + resolution: "is-date-object@npm:1.1.0" + dependencies: + call-bound: ^1.0.2 + has-tostringtag: ^1.0.2 + checksum: d6c36ab9d20971d65f3fc64cef940d57a4900a2ac85fb488a46d164c2072a33da1cb51eefcc039e3e5c208acbce343d3480b84ab5ff0983f617512da2742562a + languageName: node + linkType: hard + "is-docker@npm:^2.0.0, is-docker@npm:^2.1.1": version: 2.2.1 resolution: "is-docker@npm:2.2.1" @@ -9312,6 +9763,15 @@ __metadata: languageName: node linkType: hard +"is-finalizationregistry@npm:^1.1.0": + version: 1.1.1 + resolution: "is-finalizationregistry@npm:1.1.1" + dependencies: + call-bound: ^1.0.3 + checksum: 38c646c506e64ead41a36c182d91639833311970b6b6c6268634f109eef0a1a9d2f1f2e499ef4cb43c744a13443c4cdd2f0812d5afdcee5e9b65b72b28c48557 + languageName: node + linkType: hard + "is-fullwidth-code-point@npm:^1.0.0": version: 1.0.0 resolution: "is-fullwidth-code-point@npm:1.0.0" @@ -9342,6 +9802,15 @@ __metadata: languageName: node linkType: hard +"is-generator-function@npm:^1.0.10": + version: 1.0.10 + resolution: "is-generator-function@npm:1.0.10" + dependencies: + has-tostringtag: ^1.0.0 + checksum: d54644e7dbaccef15ceb1e5d91d680eb5068c9ee9f9eb0a9e04173eb5542c9b51b5ab52c5537f5703e48d5fddfd376817c1ca07a84a407b7115b769d4bdde72b + languageName: node + linkType: hard + "is-glob@npm:^4.0.0, is-glob@npm:^4.0.1, is-glob@npm:^4.0.3, is-glob@npm:~4.0.1": version: 4.0.3 resolution: "is-glob@npm:4.0.3" @@ -9372,6 +9841,13 @@ __metadata: languageName: node linkType: hard +"is-map@npm:^2.0.3": + version: 2.0.3 + resolution: "is-map@npm:2.0.3" + checksum: e6ce5f6380f32b141b3153e6ba9074892bbbbd655e92e7ba5ff195239777e767a976dcd4e22f864accaf30e53ebf961ab1995424aef91af68788f0591b7396cc + languageName: node + linkType: hard + "is-module@npm:^1.0.0": version: 1.0.0 resolution: "is-module@npm:1.0.0" @@ -9395,6 +9871,16 @@ __metadata: languageName: node linkType: hard +"is-number-object@npm:^1.1.1": + version: 1.1.1 + resolution: "is-number-object@npm:1.1.1" + dependencies: + call-bound: ^1.0.3 + has-tostringtag: ^1.0.2 + checksum: 6517f0a0e8c4b197a21afb45cd3053dc711e79d45d8878aa3565de38d0102b130ca8732485122c7b336e98c27dacd5236854e3e6526e0eb30cae64956535662f + languageName: node + linkType: hard + "is-number@npm:^7.0.0": version: 7.0.0 resolution: "is-number@npm:7.0.0" @@ -9458,6 +9944,18 @@ __metadata: languageName: node linkType: hard +"is-regex@npm:^1.2.1": + version: 1.2.1 + resolution: "is-regex@npm:1.2.1" + dependencies: + call-bound: ^1.0.2 + gopd: ^1.2.0 + has-tostringtag: ^1.0.2 + hasown: ^2.0.2 + checksum: 99ee0b6d30ef1bb61fa4b22fae7056c6c9b3c693803c0c284ff7a8570f83075a7d38cda53b06b7996d441215c27895ea5d1af62124562e13d91b3dbec41a5e13 + languageName: node + linkType: hard + "is-set@npm:^2.0.1, is-set@npm:^2.0.2": version: 2.0.2 resolution: "is-set@npm:2.0.2" @@ -9465,6 +9963,13 @@ __metadata: languageName: node linkType: hard +"is-set@npm:^2.0.3": + version: 2.0.3 + resolution: "is-set@npm:2.0.3" + checksum: 36e3f8c44bdbe9496c9689762cc4110f6a6a12b767c5d74c0398176aa2678d4467e3bf07595556f2dba897751bde1422480212b97d973c7b08a343100b0c0dfe + languageName: node + linkType: hard + "is-shared-array-buffer@npm:^1.0.2": version: 1.0.2 resolution: "is-shared-array-buffer@npm:1.0.2" @@ -9474,6 +9979,15 @@ __metadata: languageName: node linkType: hard +"is-shared-array-buffer@npm:^1.0.4": + version: 1.0.4 + resolution: "is-shared-array-buffer@npm:1.0.4" + dependencies: + call-bound: ^1.0.3 + checksum: 1611fedc175796eebb88f4dfc393dd969a4a8e6c69cadaff424ee9d4464f9f026399a5f84a90f7c62d6d7ee04e3626a912149726de102b0bd6c1ee6a9868fa5a + languageName: node + linkType: hard + "is-ssh@npm:^1.4.0": version: 1.4.0 resolution: "is-ssh@npm:1.4.0" @@ -9513,6 +10027,16 @@ __metadata: languageName: node linkType: hard +"is-string@npm:^1.1.1": + version: 1.1.1 + resolution: "is-string@npm:1.1.1" + dependencies: + call-bound: ^1.0.3 + has-tostringtag: ^1.0.2 + checksum: 2eeaaff605250f5e836ea3500d33d1a5d3aa98d008641d9d42fb941e929ffd25972326c2ef912987e54c95b6f10416281aaf1b35cdf81992cfb7524c5de8e193 + languageName: node + linkType: hard + "is-symbol@npm:^1.0.2, is-symbol@npm:^1.0.3": version: 1.0.4 resolution: "is-symbol@npm:1.0.4" @@ -9522,6 +10046,17 @@ __metadata: languageName: node linkType: hard +"is-symbol@npm:^1.0.4, is-symbol@npm:^1.1.1": + version: 1.1.1 + resolution: "is-symbol@npm:1.1.1" + dependencies: + call-bound: ^1.0.2 + has-symbols: ^1.1.0 + safe-regex-test: ^1.1.0 + checksum: bfafacf037af6f3c9d68820b74be4ae8a736a658a3344072df9642a090016e281797ba8edbeb1c83425879aae55d1cb1f30b38bf132d703692b2570367358032 + languageName: node + linkType: hard + "is-text-path@npm:^1.0.1": version: 1.0.1 resolution: "is-text-path@npm:1.0.1" @@ -9544,6 +10079,15 @@ __metadata: languageName: node linkType: hard +"is-typed-array@npm:^1.1.13, is-typed-array@npm:^1.1.14, is-typed-array@npm:^1.1.15": + version: 1.1.15 + resolution: "is-typed-array@npm:1.1.15" + dependencies: + which-typed-array: ^1.1.16 + checksum: ea7cfc46c282f805d19a9ab2084fd4542fed99219ee9dbfbc26284728bd713a51eac66daa74eca00ae0a43b61322920ba334793607dc39907465913e921e0892 + languageName: node + linkType: hard + "is-typedarray@npm:~1.0.0": version: 1.0.0 resolution: "is-typedarray@npm:1.0.0" @@ -9565,6 +10109,13 @@ __metadata: languageName: node linkType: hard +"is-weakmap@npm:^2.0.2": + version: 2.0.2 + resolution: "is-weakmap@npm:2.0.2" + checksum: f36aef758b46990e0d3c37269619c0a08c5b29428c0bb11ecba7f75203442d6c7801239c2f31314bc79199217ef08263787f3837d9e22610ad1da62970d6616d + languageName: node + linkType: hard + "is-weakref@npm:^1.0.2": version: 1.0.2 resolution: "is-weakref@npm:1.0.2" @@ -9574,6 +10125,15 @@ __metadata: languageName: node linkType: hard +"is-weakref@npm:^1.1.0": + version: 1.1.0 + resolution: "is-weakref@npm:1.1.0" + dependencies: + call-bound: ^1.0.2 + checksum: 2a2f3a1746ee1baecf9ac6483d903cd3f8ef3cca88e2baa42f2e85ea064bd246d218eed5f6d479fc1c76dae2231e71133b6b86160e821d176932be9fae3da4da + languageName: node + linkType: hard + "is-weakset@npm:^2.0.1": version: 2.0.2 resolution: "is-weakset@npm:2.0.2" @@ -9584,6 +10144,16 @@ __metadata: languageName: node linkType: hard +"is-weakset@npm:^2.0.3": + version: 2.0.4 + resolution: "is-weakset@npm:2.0.4" + dependencies: + call-bound: ^1.0.3 + get-intrinsic: ^1.2.6 + checksum: 5c6c8415a06065d78bdd5e3a771483aa1cd928df19138aa73c4c51333226f203f22117b4325df55cc8b3085a6716870a320c2d757efee92d7a7091a039082041 + languageName: node + linkType: hard + "is-wsl@npm:^2.2.0": version: 2.2.0 resolution: "is-wsl@npm:2.2.0" @@ -9700,6 +10270,20 @@ __metadata: languageName: node linkType: hard +"iterator.prototype@npm:^1.1.4": + version: 1.1.4 + resolution: "iterator.prototype@npm:1.1.4" + dependencies: + define-data-property: ^1.1.4 + es-object-atoms: ^1.0.0 + get-intrinsic: ^1.2.6 + has-symbols: ^1.1.0 + reflect.getprototypeof: ^1.0.8 + set-function-name: ^2.0.2 + checksum: e2b1f0f7678cf6ff02b74085dbd708bdfb6c18357af46cedc18a34e08d066c9b26e9dfb7dd2619dc199d17e681f30200b122425f793e9ad0105671191433d50f + languageName: node + linkType: hard + "jackspeak@npm:^3.1.2": version: 3.4.3 resolution: "jackspeak@npm:3.4.3" @@ -10246,6 +10830,7 @@ __metadata: "@babel/preset-env": ^7.20.2 "@babel/preset-react": ^7.18.6 "@babel/preset-typescript": ^7.18.6 + "@eslint/js": ^9.17.0 "@size-limit/preset-small-lib": ^8.1.1 "@swc/core": ^1.3.26 "@tsd/typescript": ^4.9.5 @@ -10253,18 +10838,12 @@ __metadata: "@types/mock-fs": ^4.13.1 "@types/node": 20.14.8 "@types/ramda": ^0.27.23 - "@typescript-eslint/eslint-plugin": ^5.50.0 - "@typescript-eslint/parser": ^5.50.0 - babel-eslint: ^10.1.0 babel-jest: ^29.7.0 chalk: ^4.1.0 cross-env: ^7.0.2 - eslint: ^7.32.0 - eslint-import-resolver-typescript: ^3.5.3 - eslint-plugin-import: ^2.27.5 - eslint-plugin-jest: ^24.1.0 - eslint-plugin-node: ^11.1.0 - eslint-plugin-promise: ^4.1.1 + eslint: ^9.17.0 + eslint-plugin-import: ^2.31.0 + eslint-plugin-react: ^7.37.2 husky: ^8.0.3 jest: ^29.7.0 jest-environment-jsdom: ^29.7.0 @@ -10285,6 +10864,7 @@ __metadata: swc-node: ^1.0.0 ts-jest: ^29.2.4 typescript: ^4.9.5 + typescript-eslint: ^8.18.1 languageName: unknown linkType: soft @@ -10436,6 +11016,13 @@ __metadata: languageName: node linkType: hard +"json-buffer@npm:3.0.1": + version: 3.0.1 + resolution: "json-buffer@npm:3.0.1" + checksum: 9026b03edc2847eefa2e37646c579300a1f3a4586cfb62bf857832b60c852042d0d6ae55d1afb8926163fa54c2b01d83ae24705f34990348bdac6273a29d4581 + languageName: node + linkType: hard + "json-parse-better-errors@npm:^1.0.1": version: 1.0.2 resolution: "json-parse-better-errors@npm:1.0.2" @@ -10464,13 +11051,6 @@ __metadata: languageName: node linkType: hard -"json-schema-traverse@npm:^1.0.0": - version: 1.0.0 - resolution: "json-schema-traverse@npm:1.0.0" - checksum: 02f2f466cdb0362558b2f1fd5e15cce82ef55d60cd7f8fa828cf35ba74330f8d767fcae5c5c2adb7851fa811766c694b9405810879bc4e1ddd78a7c0e03658ad - languageName: node - linkType: hard - "json-schema@npm:0.4.0": version: 0.4.0 resolution: "json-schema@npm:0.4.0" @@ -10499,7 +11079,7 @@ __metadata: languageName: node linkType: hard -"json5@npm:^1.0.1": +"json5@npm:^1.0.2": version: 1.0.2 resolution: "json5@npm:1.0.2" dependencies: @@ -10582,6 +11162,15 @@ __metadata: languageName: node linkType: hard +"keyv@npm:^4.5.4": + version: 4.5.4 + resolution: "keyv@npm:4.5.4" + dependencies: + json-buffer: 3.0.1 + checksum: 74a24395b1c34bd44ad5cb2b49140d087553e170625240b86755a6604cd65aa16efdbdeae5cdb17ba1284a0fbb25ad06263755dbc71b8d8b06f74232ce3cdd72 + languageName: node + linkType: hard + "kind-of@npm:^6.0.2, kind-of@npm:^6.0.3": version: 6.0.3 resolution: "kind-of@npm:6.0.3" @@ -10865,6 +11454,15 @@ __metadata: languageName: node linkType: hard +"locate-path@npm:^6.0.0": + version: 6.0.0 + resolution: "locate-path@npm:6.0.0" + dependencies: + p-locate: ^5.0.0 + checksum: 72eb661788a0368c099a184c59d2fee760b3831c9c1c33955e8a19ae4a21b4116e53fa736dc086cdeb9fce9f7cc508f2f92d2d3aae516f133e16a2bb59a39f5a + languageName: node + linkType: hard + "lodash.debounce@npm:^4.0.8": version: 4.0.8 resolution: "lodash.debounce@npm:4.0.8" @@ -10907,13 +11505,6 @@ __metadata: languageName: node linkType: hard -"lodash.truncate@npm:^4.4.2": - version: 4.4.2 - resolution: "lodash.truncate@npm:4.4.2" - checksum: b463d8a382cfb5f0e71c504dcb6f807a7bd379ff1ea216669aa42c52fc28c54e404bfbd96791aa09e6df0de2c1d7b8f1b7f4b1a61f324d38fe98bc535aeee4f5 - languageName: node - linkType: hard - "lodash@npm:^4.17.19, lodash@npm:^4.17.21, lodash@npm:^4.7.0": version: 4.17.21 resolution: "lodash@npm:4.17.21" @@ -11131,6 +11722,13 @@ __metadata: languageName: node linkType: hard +"math-intrinsics@npm:^1.0.0, math-intrinsics@npm:^1.1.0": + version: 1.1.0 + resolution: "math-intrinsics@npm:1.1.0" + checksum: 0e513b29d120f478c85a70f49da0b8b19bc638975eca466f2eeae0071f3ad00454c621bf66e16dd435896c208e719fc91ad79bbfba4e400fe0b372e7c1c9c9a2 + languageName: node + linkType: hard + "memoize-one@npm:^6.0.0": version: 6.0.0 resolution: "memoize-one@npm:6.0.0" @@ -11534,7 +12132,7 @@ __metadata: languageName: node linkType: hard -"ms@npm:^2.0.0, ms@npm:^2.1.1": +"ms@npm:^2.0.0, ms@npm:^2.1.1, ms@npm:^2.1.3": version: 2.1.3 resolution: "ms@npm:2.1.3" checksum: aa92de608021b242401676e35cfa5aa42dd70cbdc082b916da7fb925c542173e36bce97ea3e804923fe92c0ad991434e4a38327e15a1b5b5f945d66df615ae6d @@ -11586,13 +12184,6 @@ __metadata: languageName: node linkType: hard -"natural-compare-lite@npm:^1.4.0": - version: 1.4.0 - resolution: "natural-compare-lite@npm:1.4.0" - checksum: 5222ac3986a2b78dd6069ac62cbb52a7bf8ffc90d972ab76dfe7b01892485d229530ed20d0c62e79a6b363a663b273db3bde195a1358ce9e5f779d4453887225 - languageName: node - linkType: hard - "natural-compare@npm:^1.4.0": version: 1.4.0 resolution: "natural-compare@npm:1.4.0" @@ -12086,6 +12677,13 @@ __metadata: languageName: node linkType: hard +"object-inspect@npm:^1.13.3": + version: 1.13.3 + resolution: "object-inspect@npm:1.13.3" + checksum: 8c962102117241e18ea403b84d2521f78291b774b03a29ee80a9863621d88265ffd11d0d7e435c4c2cea0dc2a2fbf8bbc92255737a05536590f2df2e8756f297 + languageName: node + linkType: hard + "object-is@npm:^1.1.5": version: 1.1.5 resolution: "object-is@npm:1.1.5" @@ -12115,6 +12713,20 @@ __metadata: languageName: node linkType: hard +"object.assign@npm:^4.1.7": + version: 4.1.7 + resolution: "object.assign@npm:4.1.7" + dependencies: + call-bind: ^1.0.8 + call-bound: ^1.0.3 + define-properties: ^1.2.1 + es-object-atoms: ^1.0.0 + has-symbols: ^1.1.0 + object-keys: ^1.1.1 + checksum: 60e07d2651cf4f5528c485f1aa4dbded9b384c47d80e8187cefd11320abb1aebebf78df5483451dfa549059f8281c21f7b4bf7d19e9e5e97d8d617df0df298de + languageName: node + linkType: hard + "object.entries@npm:^1.1.6": version: 1.1.6 resolution: "object.entries@npm:1.1.6" @@ -12126,6 +12738,17 @@ __metadata: languageName: node linkType: hard +"object.entries@npm:^1.1.8": + version: 1.1.8 + resolution: "object.entries@npm:1.1.8" + dependencies: + call-bind: ^1.0.7 + define-properties: ^1.2.1 + es-object-atoms: ^1.0.0 + checksum: 5314877cb637ef3437a30bba61d9bacdb3ce74bf73ac101518be0633c37840c8cc67407edb341f766e8093b3d7516d5c3358f25adfee4a2c697c0ec4c8491907 + languageName: node + linkType: hard + "object.fromentries@npm:^2.0.6": version: 2.0.6 resolution: "object.fromentries@npm:2.0.6" @@ -12137,6 +12760,29 @@ __metadata: languageName: node linkType: hard +"object.fromentries@npm:^2.0.8": + version: 2.0.8 + resolution: "object.fromentries@npm:2.0.8" + dependencies: + call-bind: ^1.0.7 + define-properties: ^1.2.1 + es-abstract: ^1.23.2 + es-object-atoms: ^1.0.0 + checksum: 29b2207a2db2782d7ced83f93b3ff5d425f901945f3665ffda1821e30a7253cd1fd6b891a64279976098137ddfa883d748787a6fea53ecdb51f8df8b8cec0ae1 + languageName: node + linkType: hard + +"object.groupby@npm:^1.0.3": + version: 1.0.3 + resolution: "object.groupby@npm:1.0.3" + dependencies: + call-bind: ^1.0.7 + define-properties: ^1.2.1 + es-abstract: ^1.23.2 + checksum: 0d30693ca3ace29720bffd20b3130451dca7a56c612e1926c0a1a15e4306061d84410bdb1456be2656c5aca53c81b7a3661eceaa362db1bba6669c2c9b6d1982 + languageName: node + linkType: hard + "object.hasown@npm:^1.1.2": version: 1.1.2 resolution: "object.hasown@npm:1.1.2" @@ -12158,6 +12804,18 @@ __metadata: languageName: node linkType: hard +"object.values@npm:^1.2.0": + version: 1.2.1 + resolution: "object.values@npm:1.2.1" + dependencies: + call-bind: ^1.0.8 + call-bound: ^1.0.3 + define-properties: ^1.2.1 + es-object-atoms: ^1.0.0 + checksum: f9b9a2a125ccf8ded29414d7c056ae0d187b833ee74919821fc60d7e216626db220d9cb3cf33f965c84aaaa96133626ca13b80f3c158b673976dc8cfcfcd26bb + languageName: node + linkType: hard + "once@npm:^1.3.0, once@npm:^1.3.3, once@npm:^1.4.0": version: 1.4.0 resolution: "once@npm:1.4.0" @@ -12210,17 +12868,17 @@ __metadata: languageName: node linkType: hard -"optionator@npm:^0.9.1": - version: 0.9.1 - resolution: "optionator@npm:0.9.1" +"optionator@npm:^0.9.3": + version: 0.9.4 + resolution: "optionator@npm:0.9.4" dependencies: deep-is: ^0.1.3 fast-levenshtein: ^2.0.6 levn: ^0.4.1 prelude-ls: ^1.2.1 type-check: ^0.4.0 - word-wrap: ^1.2.3 - checksum: dbc6fa065604b24ea57d734261914e697bd73b69eff7f18e967e8912aa2a40a19a9f599a507fa805be6c13c24c4eae8c71306c239d517d42d4c041c942f508a0 + word-wrap: ^1.2.5 + checksum: ecbd010e3dc73e05d239976422d9ef54a82a13f37c11ca5911dff41c98a6c7f0f163b27f922c37e7f8340af9d36febd3b6e9cef508f3339d4c393d7276d716bb languageName: node linkType: hard @@ -12306,7 +12964,7 @@ __metadata: languageName: node linkType: hard -"p-limit@npm:^3.1.0": +"p-limit@npm:^3.0.2, p-limit@npm:^3.1.0": version: 3.1.0 resolution: "p-limit@npm:3.1.0" dependencies: @@ -12342,6 +13000,15 @@ __metadata: languageName: node linkType: hard +"p-locate@npm:^5.0.0": + version: 5.0.0 + resolution: "p-locate@npm:5.0.0" + dependencies: + p-limit: ^3.0.2 + checksum: 1623088f36cf1cbca58e9b61c4e62bf0c60a07af5ae1ca99a720837356b5b6c5ba3eb1b2127e47a06865fee59dd0453cad7cc844cda9d5a62ac1a5a51b7c86d3 + languageName: node + linkType: hard + "p-map-series@npm:2.1.0": version: 2.1.0 resolution: "p-map-series@npm:2.1.0" @@ -12733,6 +13400,13 @@ __metadata: languageName: node linkType: hard +"possible-typed-array-names@npm:^1.0.0": + version: 1.0.0 + resolution: "possible-typed-array-names@npm:1.0.0" + checksum: b32d403ece71e042385cc7856385cecf1cd8e144fa74d2f1de40d1e16035dba097bc189715925e79b67bdd1472796ff168d3a90d296356c9c94d272d5b95f3ae + languageName: node + linkType: hard + "postcss-selector-parser@npm:^6.0.10": version: 6.1.2 resolution: "postcss-selector-parser@npm:6.1.2" @@ -12827,13 +13501,6 @@ __metadata: languageName: node linkType: hard -"progress@npm:^2.0.0": - version: 2.0.3 - resolution: "progress@npm:2.0.3" - checksum: f67403fe7b34912148d9252cb7481266a354bd99ce82c835f79070643bb3c6583d10dbcfda4d41e04bbc1d8437e9af0fb1e1f2135727878f5308682a579429b7 - languageName: node - linkType: hard - "promise-all-reject-late@npm:^1.0.0": version: 1.0.1 resolution: "promise-all-reject-late@npm:1.0.1" @@ -13165,6 +13832,22 @@ __metadata: languageName: node linkType: hard +"reflect.getprototypeof@npm:^1.0.6, reflect.getprototypeof@npm:^1.0.8, reflect.getprototypeof@npm:^1.0.9": + version: 1.0.9 + resolution: "reflect.getprototypeof@npm:1.0.9" + dependencies: + call-bind: ^1.0.8 + define-properties: ^1.2.1 + dunder-proto: ^1.0.1 + es-abstract: ^1.23.6 + es-errors: ^1.3.0 + get-intrinsic: ^1.2.6 + gopd: ^1.2.0 + which-builtin-type: ^1.2.1 + checksum: 280cfdb1ba29d838440731ccea877431ec41415783dff7845d5f026c9923a71165a00e56ebd21050cec31e9c39e2e3620d6077ad3025d3782ede8b47d14ef8ab + languageName: node + linkType: hard + "regenerate-unicode-properties@npm:^10.1.0": version: 10.1.0 resolution: "regenerate-unicode-properties@npm:10.1.0" @@ -13208,10 +13891,15 @@ __metadata: languageName: node linkType: hard -"regexpp@npm:^3.0.0, regexpp@npm:^3.1.0, regexpp@npm:^3.2.0": - version: 3.2.0 - resolution: "regexpp@npm:3.2.0" - checksum: a78dc5c7158ad9ddcfe01aa9144f46e192ddbfa7b263895a70a5c6c73edd9ce85faf7c0430e59ac38839e1734e275b9c3de5c57ee3ab6edc0e0b1bdebefccef8 +"regexp.prototype.flags@npm:^1.5.3": + version: 1.5.3 + resolution: "regexp.prototype.flags@npm:1.5.3" + dependencies: + call-bind: ^1.0.7 + define-properties: ^1.2.1 + es-errors: ^1.3.0 + set-function-name: ^2.0.2 + checksum: 83ff0705b837f7cb6d664010a11642250f36d3f642263dd0f3bdfe8f150261aa7b26b50ee97f21c1da30ef82a580bb5afedbef5f45639d69edaafbeac9bbb0ed languageName: node linkType: hard @@ -13282,13 +13970,6 @@ __metadata: languageName: node linkType: hard -"require-from-string@npm:^2.0.2": - version: 2.0.2 - resolution: "require-from-string@npm:2.0.2" - checksum: a03ef6895445f33a4015300c426699bc66b2b044ba7b670aa238610381b56d3f07c686251740d575e22f4c87531ba662d06937508f0f3c0f1ddc04db3130560b - languageName: node - linkType: hard - "requires-port@npm:^1.0.0": version: 1.0.0 resolution: "requires-port@npm:1.0.0" @@ -13326,7 +14007,7 @@ __metadata: languageName: node linkType: hard -"resolve@npm:^1.10.0, resolve@npm:^1.10.1, resolve@npm:^1.12.0, resolve@npm:^1.14.2, resolve@npm:^1.19.0, resolve@npm:^1.20.0, resolve@npm:^1.22.1": +"resolve@npm:^1.10.0, resolve@npm:^1.14.2, resolve@npm:^1.19.0, resolve@npm:^1.20.0, resolve@npm:^1.22.1": version: 1.22.1 resolution: "resolve@npm:1.22.1" dependencies: @@ -13339,6 +14020,19 @@ __metadata: languageName: node linkType: hard +"resolve@npm:^1.22.4": + version: 1.22.10 + resolution: "resolve@npm:1.22.10" + dependencies: + is-core-module: ^2.16.0 + path-parse: ^1.0.7 + supports-preserve-symlinks-flag: ^1.0.0 + bin: + resolve: bin/resolve + checksum: ab7a32ff4046fcd7c6fdd525b24a7527847d03c3650c733b909b01b757f92eb23510afa9cc3e9bf3f26a3e073b48c88c706dfd4c1d2fb4a16a96b73b6328ddcf + languageName: node + linkType: hard + "resolve@npm:^2.0.0-next.4": version: 2.0.0-next.4 resolution: "resolve@npm:2.0.0-next.4" @@ -13352,7 +14046,20 @@ __metadata: languageName: node linkType: hard -"resolve@patch:resolve@^1.10.0#~builtin, resolve@patch:resolve@^1.10.1#~builtin, resolve@patch:resolve@^1.12.0#~builtin, resolve@patch:resolve@^1.14.2#~builtin, resolve@patch:resolve@^1.19.0#~builtin, resolve@patch:resolve@^1.20.0#~builtin, resolve@patch:resolve@^1.22.1#~builtin": +"resolve@npm:^2.0.0-next.5": + version: 2.0.0-next.5 + resolution: "resolve@npm:2.0.0-next.5" + dependencies: + is-core-module: ^2.13.0 + path-parse: ^1.0.7 + supports-preserve-symlinks-flag: ^1.0.0 + bin: + resolve: bin/resolve + checksum: a73ac69a1c4bd34c56b213d91f5b17ce390688fdb4a1a96ed3025cc7e08e7bfb90b3a06fcce461780cb0b589c958afcb0080ab802c71c01a7ecc8c64feafc89f + languageName: node + linkType: hard + +"resolve@patch:resolve@^1.10.0#~builtin, resolve@patch:resolve@^1.14.2#~builtin, resolve@patch:resolve@^1.19.0#~builtin, resolve@patch:resolve@^1.20.0#~builtin, resolve@patch:resolve@^1.22.1#~builtin": version: 1.22.1 resolution: "resolve@patch:resolve@npm%3A1.22.1#~builtin::version=1.22.1&hash=c3c19d" dependencies: @@ -13365,6 +14072,19 @@ __metadata: languageName: node linkType: hard +"resolve@patch:resolve@^1.22.4#~builtin": + version: 1.22.10 + resolution: "resolve@patch:resolve@npm%3A1.22.10#~builtin::version=1.22.10&hash=c3c19d" + dependencies: + is-core-module: ^2.16.0 + path-parse: ^1.0.7 + supports-preserve-symlinks-flag: ^1.0.0 + bin: + resolve: bin/resolve + checksum: 8aac1e4e4628bd00bf4b94b23de137dd3fe44097a8d528fd66db74484be929936e20c696e1a3edf4488f37e14180b73df6f600992baea3e089e8674291f16c9d + languageName: node + linkType: hard + "resolve@patch:resolve@^2.0.0-next.4#~builtin": version: 2.0.0-next.4 resolution: "resolve@patch:resolve@npm%3A2.0.0-next.4#~builtin::version=2.0.0-next.4&hash=c3c19d" @@ -13378,6 +14098,19 @@ __metadata: languageName: node linkType: hard +"resolve@patch:resolve@^2.0.0-next.5#~builtin": + version: 2.0.0-next.5 + resolution: "resolve@patch:resolve@npm%3A2.0.0-next.5#~builtin::version=2.0.0-next.5&hash=c3c19d" + dependencies: + is-core-module: ^2.13.0 + path-parse: ^1.0.7 + supports-preserve-symlinks-flag: ^1.0.0 + bin: + resolve: bin/resolve + checksum: 064d09c1808d0c51b3d90b5d27e198e6d0c5dad0eb57065fd40803d6a20553e5398b07f76739d69cbabc12547058bec6b32106ea66622375fb0d7e8fca6a846c + languageName: node + linkType: hard + "restore-cursor@npm:^3.1.0": version: 3.1.0 resolution: "restore-cursor@npm:3.1.0" @@ -13583,6 +14316,19 @@ __metadata: languageName: node linkType: hard +"safe-array-concat@npm:^1.1.3": + version: 1.1.3 + resolution: "safe-array-concat@npm:1.1.3" + dependencies: + call-bind: ^1.0.8 + call-bound: ^1.0.2 + get-intrinsic: ^1.2.6 + has-symbols: ^1.1.0 + isarray: ^2.0.5 + checksum: 00f6a68140e67e813f3ad5e73e6dedcf3e42a9fa01f04d44b0d3f7b1f4b257af876832a9bfc82ac76f307e8a6cc652e3cf95876048a26cbec451847cf6ae3707 + languageName: node + linkType: hard + "safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.0, safe-buffer@npm:^5.1.1, safe-buffer@npm:^5.1.2, safe-buffer@npm:~5.2.0": version: 5.2.1 resolution: "safe-buffer@npm:5.2.1" @@ -13608,6 +14354,17 @@ __metadata: languageName: node linkType: hard +"safe-regex-test@npm:^1.1.0": + version: 1.1.0 + resolution: "safe-regex-test@npm:1.1.0" + dependencies: + call-bound: ^1.0.2 + es-errors: ^1.3.0 + is-regex: ^1.2.1 + checksum: 3c809abeb81977c9ed6c869c83aca6873ea0f3ab0f806b8edbba5582d51713f8a6e9757d24d2b4b088f563801475ea946c8e77e7713e8c65cdd02305b6caedab + languageName: node + linkType: hard + "safer-buffer@npm:>= 2.1.2 < 3, safer-buffer@npm:>= 2.1.2 < 3.0.0, safer-buffer@npm:^2.0.2, safer-buffer@npm:^2.1.0, safer-buffer@npm:~2.1.0": version: 2.1.2 resolution: "safer-buffer@npm:2.1.2" @@ -13680,7 +14437,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:^6.0.0, semver@npm:^6.1.0, semver@npm:^6.1.1, semver@npm:^6.1.2, semver@npm:^6.3.0, semver@npm:^6.3.1": +"semver@npm:^6.0.0, semver@npm:^6.1.1, semver@npm:^6.1.2, semver@npm:^6.3.0, semver@npm:^6.3.1": version: 6.3.1 resolution: "semver@npm:6.3.1" bin: @@ -13689,7 +14446,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:^7.0.0, semver@npm:^7.1.1, semver@npm:^7.2.1, semver@npm:^7.3.2, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.3.8, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.3": +"semver@npm:^7.0.0, semver@npm:^7.1.1, semver@npm:^7.3.2, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.3.8, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.0, semver@npm:^7.6.3": version: 7.6.3 resolution: "semver@npm:7.6.3" bin: @@ -13714,6 +14471,32 @@ __metadata: languageName: node linkType: hard +"set-function-length@npm:^1.2.2": + version: 1.2.2 + resolution: "set-function-length@npm:1.2.2" + dependencies: + define-data-property: ^1.1.4 + es-errors: ^1.3.0 + function-bind: ^1.1.2 + get-intrinsic: ^1.2.4 + gopd: ^1.0.1 + has-property-descriptors: ^1.0.2 + checksum: a8248bdacdf84cb0fab4637774d9fb3c7a8e6089866d04c817583ff48e14149c87044ce683d7f50759a8c50fb87c7a7e173535b06169c87ef76f5fb276dfff72 + languageName: node + linkType: hard + +"set-function-name@npm:^2.0.2": + version: 2.0.2 + resolution: "set-function-name@npm:2.0.2" + dependencies: + define-data-property: ^1.1.4 + es-errors: ^1.3.0 + functions-have-names: ^1.2.3 + has-property-descriptors: ^1.0.2 + checksum: d6229a71527fd0404399fc6227e0ff0652800362510822a291925c9d7b48a1ca1a468b11b281471c34cd5a2da0db4f5d7ff315a61d26655e77f6e971e6d0c80f + languageName: node + linkType: hard + "shallow-clone@npm:^3.0.0": version: 3.0.1 resolution: "shallow-clone@npm:3.0.1" @@ -13739,6 +14522,41 @@ __metadata: languageName: node linkType: hard +"side-channel-list@npm:^1.0.0": + version: 1.0.0 + resolution: "side-channel-list@npm:1.0.0" + dependencies: + es-errors: ^1.3.0 + object-inspect: ^1.13.3 + checksum: 603b928997abd21c5a5f02ae6b9cc36b72e3176ad6827fab0417ead74580cc4fb4d5c7d0a8a2ff4ead34d0f9e35701ed7a41853dac8a6d1a664fcce1a044f86f + languageName: node + linkType: hard + +"side-channel-map@npm:^1.0.1": + version: 1.0.1 + resolution: "side-channel-map@npm:1.0.1" + dependencies: + call-bound: ^1.0.2 + es-errors: ^1.3.0 + get-intrinsic: ^1.2.5 + object-inspect: ^1.13.3 + checksum: 42501371cdf71f4ccbbc9c9e2eb00aaaab80a4c1c429d5e8da713fd4d39ef3b8d4a4b37ed4f275798a65260a551a7131fd87fe67e922dba4ac18586d6aab8b06 + languageName: node + linkType: hard + +"side-channel-weakmap@npm:^1.0.2": + version: 1.0.2 + resolution: "side-channel-weakmap@npm:1.0.2" + dependencies: + call-bound: ^1.0.2 + es-errors: ^1.3.0 + get-intrinsic: ^1.2.5 + object-inspect: ^1.13.3 + side-channel-map: ^1.0.1 + checksum: a815c89bc78c5723c714ea1a77c938377ea710af20d4fb886d362b0d1f8ac73a17816a5f6640f354017d7e292a43da9c5e876c22145bac00b76cfb3468001736 + languageName: node + linkType: hard + "side-channel@npm:^1.0.4": version: 1.0.4 resolution: "side-channel@npm:1.0.4" @@ -13750,6 +14568,19 @@ __metadata: languageName: node linkType: hard +"side-channel@npm:^1.1.0": + version: 1.1.0 + resolution: "side-channel@npm:1.1.0" + dependencies: + es-errors: ^1.3.0 + object-inspect: ^1.13.3 + side-channel-list: ^1.0.0 + side-channel-map: ^1.0.1 + side-channel-weakmap: ^1.0.2 + checksum: bf73d6d6682034603eb8e99c63b50155017ed78a522d27c2acec0388a792c3ede3238b878b953a08157093b85d05797217d270b7666ba1f111345fbe933380ff + languageName: node + linkType: hard + "signal-exit@npm:3.0.7, signal-exit@npm:^3.0.0, signal-exit@npm:^3.0.2, signal-exit@npm:^3.0.3, signal-exit@npm:^3.0.7": version: 3.0.7 resolution: "signal-exit@npm:3.0.7" @@ -14143,6 +14974,27 @@ __metadata: languageName: node linkType: hard +"string.prototype.matchall@npm:^4.0.11": + version: 4.0.12 + resolution: "string.prototype.matchall@npm:4.0.12" + dependencies: + call-bind: ^1.0.8 + call-bound: ^1.0.3 + define-properties: ^1.2.1 + es-abstract: ^1.23.6 + es-errors: ^1.3.0 + es-object-atoms: ^1.0.0 + get-intrinsic: ^1.2.6 + gopd: ^1.2.0 + has-symbols: ^1.1.0 + internal-slot: ^1.1.0 + regexp.prototype.flags: ^1.5.3 + set-function-name: ^2.0.2 + side-channel: ^1.1.0 + checksum: 98a09d6af91bfc6ee25556f3d7cd6646d02f5f08bda55d45528ed273d266d55a71af7291fe3fc76854deffb9168cc1a917d0b07a7d5a178c7e9537c99e6d2b57 + languageName: node + linkType: hard + "string.prototype.matchall@npm:^4.0.8": version: 4.0.8 resolution: "string.prototype.matchall@npm:4.0.8" @@ -14159,6 +15011,31 @@ __metadata: languageName: node linkType: hard +"string.prototype.repeat@npm:^1.0.0": + version: 1.0.0 + resolution: "string.prototype.repeat@npm:1.0.0" + dependencies: + define-properties: ^1.1.3 + es-abstract: ^1.17.5 + checksum: 95dfc514ed7f328d80a066dabbfbbb1615c3e51490351085409db2eb7cbfed7ea29fdadaf277647fbf9f4a1e10e6dd9e95e78c0fd2c4e6bb6723ea6e59401004 + languageName: node + linkType: hard + +"string.prototype.trim@npm:^1.2.10": + version: 1.2.10 + resolution: "string.prototype.trim@npm:1.2.10" + dependencies: + call-bind: ^1.0.8 + call-bound: ^1.0.2 + define-data-property: ^1.1.4 + define-properties: ^1.2.1 + es-abstract: ^1.23.5 + es-object-atoms: ^1.0.0 + has-property-descriptors: ^1.0.2 + checksum: 87659cd8561237b6c69f5376328fda934693aedde17bb7a2c57008e9d9ff992d0c253a391c7d8d50114e0e49ff7daf86a362f7961cf92f7564cd01342ca2e385 + languageName: node + linkType: hard + "string.prototype.trimend@npm:^1.0.6": version: 1.0.6 resolution: "string.prototype.trimend@npm:1.0.6" @@ -14170,6 +15047,18 @@ __metadata: languageName: node linkType: hard +"string.prototype.trimend@npm:^1.0.8, string.prototype.trimend@npm:^1.0.9": + version: 1.0.9 + resolution: "string.prototype.trimend@npm:1.0.9" + dependencies: + call-bind: ^1.0.8 + call-bound: ^1.0.2 + define-properties: ^1.2.1 + es-object-atoms: ^1.0.0 + checksum: cb86f639f41d791a43627784be2175daa9ca3259c7cb83e7a207a729909b74f2ea0ec5d85de5761e6835e5f443e9420c6ff3f63a845378e4a61dd793177bc287 + languageName: node + linkType: hard + "string.prototype.trimstart@npm:^1.0.6": version: 1.0.6 resolution: "string.prototype.trimstart@npm:1.0.6" @@ -14181,6 +15070,17 @@ __metadata: languageName: node linkType: hard +"string.prototype.trimstart@npm:^1.0.8": + version: 1.0.8 + resolution: "string.prototype.trimstart@npm:1.0.8" + dependencies: + call-bind: ^1.0.7 + define-properties: ^1.2.1 + es-object-atoms: ^1.0.0 + checksum: df1007a7f580a49d692375d996521dc14fd103acda7f3034b3c558a60b82beeed3a64fa91e494e164581793a8ab0ae2f59578a49896a7af6583c1f20472bce96 + languageName: node + linkType: hard + "string_decoder@npm:^1.1.1": version: 1.3.0 resolution: "string_decoder@npm:1.3.0" @@ -14263,7 +15163,7 @@ __metadata: languageName: node linkType: hard -"strip-json-comments@npm:^3.1.0, strip-json-comments@npm:^3.1.1": +"strip-json-comments@npm:^3.1.1": version: 3.1.1 resolution: "strip-json-comments@npm:3.1.1" checksum: 492f73e27268f9b1c122733f28ecb0e7e8d8a531a6662efbd08e22cccb3f9475e90a1b82cab06a392f6afae6d2de636f977e231296400d0ec5304ba70f166443 @@ -14345,29 +15245,6 @@ __metadata: languageName: node linkType: hard -"synckit@npm:^0.8.4": - version: 0.8.5 - resolution: "synckit@npm:0.8.5" - dependencies: - "@pkgr/utils": ^2.3.1 - tslib: ^2.5.0 - checksum: 8a9560e5d8f3d94dc3cf5f7b9c83490ffa30d320093560a37b88f59483040771fd1750e76b9939abfbb1b5a23fd6dfbae77f6b338abffe7cae7329cd9b9bb86b - languageName: node - linkType: hard - -"table@npm:^6.0.9": - version: 6.8.1 - resolution: "table@npm:6.8.1" - dependencies: - ajv: ^8.0.1 - lodash.truncate: ^4.4.2 - slice-ansi: ^4.0.0 - string-width: ^4.2.3 - strip-ansi: ^6.0.1 - checksum: 08249c7046125d9d0a944a6e96cfe9ec66908d6b8a9db125531be6eb05fa0de047fd5542e9d43b4f987057f00a093b276b8d3e19af162a9c40db2681058fd306 - languageName: node - linkType: hard - "tapable@npm:^2.1.1, tapable@npm:^2.2.0": version: 2.2.1 resolution: "tapable@npm:2.2.1" @@ -14463,13 +15340,6 @@ __metadata: languageName: node linkType: hard -"text-table@npm:^0.2.0": - version: 0.2.0 - resolution: "text-table@npm:0.2.0" - checksum: b6937a38c80c7f84d9c11dd75e49d5c44f71d95e810a3250bd1f1797fc7117c57698204adf676b71497acc205d769d65c16ae8fa10afad832ae1322630aef10a - languageName: node - linkType: hard - "through2@npm:^2.0.0": version: 2.0.5 resolution: "through2@npm:2.0.5" @@ -14487,16 +15357,6 @@ __metadata: languageName: node linkType: hard -"tiny-glob@npm:^0.2.9": - version: 0.2.9 - resolution: "tiny-glob@npm:0.2.9" - dependencies: - globalyzer: 0.1.0 - globrex: ^0.1.2 - checksum: aea5801eb6663ddf77ebb74900b8f8bd9dfcfc9b6a1cc8018cb7421590c00bf446109ff45e4b64a98e6c95ddb1255a337a5d488fb6311930e2a95334151ec9c6 - languageName: node - linkType: hard - "tmp@npm:^0.0.33": version: 0.0.33 resolution: "tmp@npm:0.0.33" @@ -14608,6 +15468,15 @@ __metadata: languageName: node linkType: hard +"ts-api-utils@npm:^1.3.0": + version: 1.4.3 + resolution: "ts-api-utils@npm:1.4.3" + peerDependencies: + typescript: ">=4.2.0" + checksum: ea00dee382d19066b2a3d8929f1089888b05fec797e32e7a7004938eda1dccf2e77274ee2afcd4166f53fab9b8d7ee90ebb225a3183f9ba8817d636f688a148d + languageName: node + linkType: hard + "ts-jest@npm:^29.2.4": version: 29.2.5 resolution: "ts-jest@npm:29.2.5" @@ -14652,15 +15521,15 @@ __metadata: languageName: node linkType: hard -"tsconfig-paths@npm:^3.14.1": - version: 3.14.1 - resolution: "tsconfig-paths@npm:3.14.1" +"tsconfig-paths@npm:^3.15.0": + version: 3.15.0 + resolution: "tsconfig-paths@npm:3.15.0" dependencies: "@types/json5": ^0.0.29 - json5: ^1.0.1 + json5: ^1.0.2 minimist: ^1.2.6 strip-bom: ^3.0.0 - checksum: 8afa01c673ebb4782ba53d3a12df97fa837ce524f8ad38ee4e2b2fd57f5ac79abc21c574e9e9eb014d93efe7fe8214001b96233b5c6ea75bd1ea82afe17a4c6d + checksum: 59f35407a390d9482b320451f52a411a256a130ff0e7543d18c6f20afab29ac19fbe55c360a93d6476213cc335a4d76ce90f67df54c4e9037f7d240920832201 languageName: node linkType: hard @@ -14717,31 +15586,20 @@ __metadata: languageName: node linkType: hard -"tslib@npm:^1.8.1, tslib@npm:^1.9.0": +"tslib@npm:^1.9.0": version: 1.14.1 resolution: "tslib@npm:1.14.1" checksum: dbe628ef87f66691d5d2959b3e41b9ca0045c3ee3c7c7b906cc1e328b39f199bb1ad9e671c39025bd56122ac57dfbf7385a94843b1cc07c60a4db74795829acd languageName: node linkType: hard -"tslib@npm:^2.1.0, tslib@npm:^2.3.0, tslib@npm:^2.4.0, tslib@npm:^2.4.1, tslib@npm:^2.5.0": +"tslib@npm:^2.1.0, tslib@npm:^2.3.0, tslib@npm:^2.4.0, tslib@npm:^2.4.1": version: 2.5.0 resolution: "tslib@npm:2.5.0" checksum: ae3ed5f9ce29932d049908ebfdf21b3a003a85653a9a140d614da6b767a93ef94f460e52c3d787f0e4f383546981713f165037dc2274df212ea9f8a4541004e1 languageName: node linkType: hard -"tsutils@npm:^3.21.0": - version: 3.21.0 - resolution: "tsutils@npm:3.21.0" - dependencies: - tslib: ^1.8.1 - peerDependencies: - typescript: ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - checksum: 1843f4c1b2e0f975e08c4c21caa4af4f7f65a12ac1b81b3b8489366826259323feb3fc7a243123453d2d1a02314205a7634e048d4a8009921da19f99755cdc48 - languageName: node - linkType: hard - "tuf-js@npm:^2.2.1": version: 2.2.1 resolution: "tuf-js@npm:2.2.1" @@ -14801,13 +15659,6 @@ __metadata: languageName: node linkType: hard -"type-fest@npm:^0.20.2": - version: 0.20.2 - resolution: "type-fest@npm:0.20.2" - checksum: 4fb3272df21ad1c552486f8a2f8e115c09a521ad7a8db3d56d53718d0c907b62c6e9141ba5f584af3f6830d0872c521357e512381f24f7c44acae583ad517d73 - languageName: node - linkType: hard - "type-fest@npm:^0.21.3": version: 0.21.3 resolution: "type-fest@npm:0.21.3" @@ -14836,6 +15687,45 @@ __metadata: languageName: node linkType: hard +"typed-array-buffer@npm:^1.0.3": + version: 1.0.3 + resolution: "typed-array-buffer@npm:1.0.3" + dependencies: + call-bound: ^1.0.3 + es-errors: ^1.3.0 + is-typed-array: ^1.1.14 + checksum: 3fb91f0735fb413b2bbaaca9fabe7b8fc14a3fa5a5a7546bab8a57e755be0e3788d893195ad9c2b842620592de0e68d4c077d4c2c41f04ec25b8b5bb82fa9a80 + languageName: node + linkType: hard + +"typed-array-byte-length@npm:^1.0.3": + version: 1.0.3 + resolution: "typed-array-byte-length@npm:1.0.3" + dependencies: + call-bind: ^1.0.8 + for-each: ^0.3.3 + gopd: ^1.2.0 + has-proto: ^1.2.0 + is-typed-array: ^1.1.14 + checksum: cda9352178ebeab073ad6499b03e938ebc30c4efaea63a26839d89c4b1da9d2640b0d937fc2bd1f049eb0a38def6fbe8a061b601292ae62fe079a410ce56e3a6 + languageName: node + linkType: hard + +"typed-array-byte-offset@npm:^1.0.4": + version: 1.0.4 + resolution: "typed-array-byte-offset@npm:1.0.4" + dependencies: + available-typed-arrays: ^1.0.7 + call-bind: ^1.0.8 + for-each: ^0.3.3 + gopd: ^1.2.0 + has-proto: ^1.2.0 + is-typed-array: ^1.1.15 + reflect.getprototypeof: ^1.0.9 + checksum: 670b7e6bb1d3c2cf6160f27f9f529e60c3f6f9611c67e47ca70ca5cfa24ad95415694c49d1dbfeda016d3372cab7dfc9e38c7b3e1bb8d692cae13a63d3c144d7 + languageName: node + linkType: hard + "typed-array-length@npm:^1.0.4": version: 1.0.4 resolution: "typed-array-length@npm:1.0.4" @@ -14847,6 +15737,20 @@ __metadata: languageName: node linkType: hard +"typed-array-length@npm:^1.0.7": + version: 1.0.7 + resolution: "typed-array-length@npm:1.0.7" + dependencies: + call-bind: ^1.0.7 + for-each: ^0.3.3 + gopd: ^1.0.1 + is-typed-array: ^1.1.13 + possible-typed-array-names: ^1.0.0 + reflect.getprototypeof: ^1.0.6 + checksum: deb1a4ffdb27cd930b02c7030cb3e8e0993084c643208e52696e18ea6dd3953dfc37b939df06ff78170423d353dc8b10d5bae5796f3711c1b3abe52872b3774c + languageName: node + linkType: hard + "typedarray@npm:^0.0.6": version: 0.0.6 resolution: "typedarray@npm:0.0.6" @@ -14854,6 +15758,20 @@ __metadata: languageName: node linkType: hard +"typescript-eslint@npm:^8.18.1": + version: 8.18.1 + resolution: "typescript-eslint@npm:8.18.1" + dependencies: + "@typescript-eslint/eslint-plugin": 8.18.1 + "@typescript-eslint/parser": 8.18.1 + "@typescript-eslint/utils": 8.18.1 + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: ">=4.8.4 <5.8.0" + checksum: 23c2eacaa3a71eca57686c0875845888348ea96268db14e69d196bc033b8a19a5741faab9dfee54c8f425d47fa0465593e9ce0610c97f97a9c2ee58ce9e4ce23 + languageName: node + linkType: hard + "typescript-nodenext-resolution@workspace:test/typescript-nodenext-resolution": version: 0.0.0-use.local resolution: "typescript-nodenext-resolution@workspace:test/typescript-nodenext-resolution" @@ -14933,6 +15851,18 @@ __metadata: languageName: node linkType: hard +"unbox-primitive@npm:^1.1.0": + version: 1.1.0 + resolution: "unbox-primitive@npm:1.1.0" + dependencies: + call-bound: ^1.0.3 + has-bigints: ^1.0.2 + has-symbols: ^1.1.0 + which-boxed-primitive: ^1.1.1 + checksum: 729f13b84a5bfa3fead1d8139cee5c38514e63a8d6a437819a473e241ba87eeb593646568621c7fc7f133db300ef18d65d1a5a60dc9c7beb9000364d93c581df + languageName: node + linkType: hard + "unbuild@npm:2.0.0, unbuild@npm:^2.0.0": version: 2.0.0 resolution: "unbuild@npm:2.0.0" @@ -15156,13 +16086,6 @@ __metadata: languageName: node linkType: hard -"v8-compile-cache@npm:^2.0.3": - version: 2.3.0 - resolution: "v8-compile-cache@npm:2.3.0" - checksum: adb0a271eaa2297f2f4c536acbfee872d0dd26ec2d76f66921aa7fc437319132773483344207bdbeee169225f4739016d8d2dbf0553913a52bb34da6d0334f8e - languageName: node - linkType: hard - "v8-to-istanbul@npm:^9.0.1": version: 9.1.0 resolution: "v8-to-istanbul@npm:9.1.0" @@ -15506,6 +16429,40 @@ __metadata: languageName: node linkType: hard +"which-boxed-primitive@npm:^1.1.0, which-boxed-primitive@npm:^1.1.1": + version: 1.1.1 + resolution: "which-boxed-primitive@npm:1.1.1" + dependencies: + is-bigint: ^1.1.0 + is-boolean-object: ^1.2.1 + is-number-object: ^1.1.1 + is-string: ^1.1.1 + is-symbol: ^1.1.1 + checksum: ee41d0260e4fd39551ad77700c7047d3d281ec03d356f5e5c8393fe160ba0db53ef446ff547d05f76ffabfd8ad9df7c9a827e12d4cccdbc8fccf9239ff8ac21e + languageName: node + linkType: hard + +"which-builtin-type@npm:^1.2.1": + version: 1.2.1 + resolution: "which-builtin-type@npm:1.2.1" + dependencies: + call-bound: ^1.0.2 + function.prototype.name: ^1.1.6 + has-tostringtag: ^1.0.2 + is-async-function: ^2.0.0 + is-date-object: ^1.1.0 + is-finalizationregistry: ^1.1.0 + is-generator-function: ^1.0.10 + is-regex: ^1.2.1 + is-weakref: ^1.0.2 + isarray: ^2.0.5 + which-boxed-primitive: ^1.1.0 + which-collection: ^1.0.2 + which-typed-array: ^1.1.16 + checksum: 7a3617ba0e7cafb795f74db418df889867d12bce39a477f3ee29c6092aa64d396955bf2a64eae3726d8578440e26777695544057b373c45a8bcf5fbe920bf633 + languageName: node + linkType: hard + "which-collection@npm:^1.0.1": version: 1.0.1 resolution: "which-collection@npm:1.0.1" @@ -15518,6 +16475,32 @@ __metadata: languageName: node linkType: hard +"which-collection@npm:^1.0.2": + version: 1.0.2 + resolution: "which-collection@npm:1.0.2" + dependencies: + is-map: ^2.0.3 + is-set: ^2.0.3 + is-weakmap: ^2.0.2 + is-weakset: ^2.0.3 + checksum: c51821a331624c8197916598a738fc5aeb9a857f1e00d89f5e4c03dc7c60b4032822b8ec5696d28268bb83326456a8b8216344fb84270d18ff1d7628051879d9 + languageName: node + linkType: hard + +"which-typed-array@npm:^1.1.16, which-typed-array@npm:^1.1.18": + version: 1.1.18 + resolution: "which-typed-array@npm:1.1.18" + dependencies: + available-typed-arrays: ^1.0.7 + call-bind: ^1.0.8 + call-bound: ^1.0.3 + for-each: ^0.3.3 + gopd: ^1.2.0 + has-tostringtag: ^1.0.2 + checksum: d2feea7f51af66b3a240397aa41c796585033e1069f18e5b6d4cd3878538a1e7780596fd3ea9bf347c43d9e98e13be09b37d9ea3887cef29b11bc291fd47bb52 + languageName: node + linkType: hard + "which-typed-array@npm:^1.1.9": version: 1.1.9 resolution: "which-typed-array@npm:1.1.9" @@ -15563,7 +16546,14 @@ __metadata: languageName: node linkType: hard -"word-wrap@npm:^1.2.3, word-wrap@npm:~1.2.3": +"word-wrap@npm:^1.2.5": + version: 1.2.5 + resolution: "word-wrap@npm:1.2.5" + checksum: f93ba3586fc181f94afdaff3a6fef27920b4b6d9eaefed0f428f8e07adea2a7f54a5f2830ce59406c8416f033f86902b91eb824072354645eea687dff3691ccb + languageName: node + linkType: hard + +"word-wrap@npm:~1.2.3": version: 1.2.3 resolution: "word-wrap@npm:1.2.3" checksum: 30b48f91fcf12106ed3186ae4fa86a6a1842416df425be7b60485de14bec665a54a68e4b5156647dec3a70f25e84d270ca8bc8cd23182ed095f5c7206a938c1f From d5d8c9cfee4ff2fd452f400c18c7c5674dd925fb Mon Sep 17 00:00:00 2001 From: Timofei Iatsenko Date: Mon, 23 Dec 2024 12:11:32 +0100 Subject: [PATCH 23/24] wip --- package.json | 7 +- .../test/jsx-plural.test.ts | 1 + .../api/__snapshots__/compile.test.ts.snap | 26 +- .../conf/src/__snapshots__/index.test.ts.snap | 69 +- packages/format-json/package.json | 1 + .../src/plural-samples.test.ts | 9 +- .../test/__snapshots__/index.test.ts.snap | 15 + vitest.workspace.ts | 2 - yarn.lock | 1824 +++++++++++------ 9 files changed, 1372 insertions(+), 582 deletions(-) create mode 100644 packages/vite-plugin/test/__snapshots__/index.test.ts.snap diff --git a/package.json b/package.json index dcdbe2089..128ce307c 100644 --- a/package.json +++ b/package.json @@ -113,5 +113,10 @@ "limit": "8 kB" } ], - "packageManager": "yarn@3.4.1" + "packageManager": "yarn@3.4.1", + "dependencies": { + "@vitest/ui": "^2.1.8", + "vite-plugin-commonjs": "^0.10.4", + "vitest": "^2.1.8" + } } diff --git a/packages/babel-plugin-lingui-macro/test/jsx-plural.test.ts b/packages/babel-plugin-lingui-macro/test/jsx-plural.test.ts index e01faeb0d..a56c5bfc7 100644 --- a/packages/babel-plugin-lingui-macro/test/jsx-plural.test.ts +++ b/packages/babel-plugin-lingui-macro/test/jsx-plural.test.ts @@ -1,3 +1,4 @@ +import { describe } from "vitest" import { macroTester } from "./macroTester" describe.skip("", () => {}) diff --git a/packages/cli/src/api/__snapshots__/compile.test.ts.snap b/packages/cli/src/api/__snapshots__/compile.test.ts.snap index aab9d12c8..71dbb9cca 100644 --- a/packages/cli/src/api/__snapshots__/compile.test.ts.snap +++ b/packages/cli/src/api/__snapshots__/compile.test.ts.snap @@ -1,4 +1,28 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`createCompiledCatalog > options.compilerBabelOptions > by default should return catalog without ASCII chars 1`] = `/*eslint-disable*/module.exports={messages:JSON.parse("{\\"Hello\\":[\\"Alohà\\"]}")};`; + +exports[`createCompiledCatalog > options.compilerBabelOptions > should return catalog without ASCII chars 1`] = `/*eslint-disable*/module.exports={messages:JSON.parse("{\\"Hello\\":[\\"Aloh\\xE0\\"]}")};`; + +exports[`createCompiledCatalog > options.namespace > should compile with es 1`] = `/*eslint-disable*/export const messages=JSON.parse("{\\"key\\":[\\"Hello \\",[\\"name\\"]]}");`; + +exports[`createCompiledCatalog > options.namespace > should compile with global 1`] = `/*eslint-disable*/global.test={messages:JSON.parse("{\\"key\\":[\\"Hello \\",[\\"name\\"]]}")};`; + +exports[`createCompiledCatalog > options.namespace > should compile with json 1`] = `{"messages":{"key":["Hello ",["name"]]}}`; + +exports[`createCompiledCatalog > options.namespace > should compile with ts 1`] = `/*eslint-disable*/import type{Messages}from"@lingui/core";export const messages=JSON.parse("{\\"key\\":[\\"Hello \\",[\\"name\\"]]}")as Messages;`; + +exports[`createCompiledCatalog > options.namespace > should compile with window 1`] = `/*eslint-disable*/window.test={messages:JSON.parse("{\\"key\\":[\\"Hello \\",[\\"name\\"]]}")};`; + +exports[`createCompiledCatalog > options.namespace > should error with invalid value 1`] = `[Error: Invalid namespace param: "global"]`; + +exports[`createCompiledCatalog > options.pseudoLocale > should return catalog with pseudolocalized messages 1`] = `/*eslint-disable*/module.exports={messages:JSON.parse("{\\"Hello\\":[\\"ÀĥōĴ\\"]}")};`; + +exports[`createCompiledCatalog > options.pseudoLocale > should return compiled catalog when pseudoLocale doesn't match current locale 1`] = `/*eslint-disable*/module.exports={messages:JSON.parse("{\\"Hello\\":[\\"Ahoj\\"]}")};`; + +exports[`createCompiledCatalog > options.strict > should return message key as a fallback translation 1`] = `/*eslint-disable*/module.exports={messages:JSON.parse("{\\"Hello\\":[\\"Ahoj\\"],\\"Missing\\":[\\"Missing\\"],\\"Select\\":[[\\"id\\",\\"select\\",{\\"Gen\\":[\\"Genesis\\"],\\"1John\\":[\\"1 John\\"],\\"other\\":[\\"____\\"]}]]}")};`; + +exports[`createCompiledCatalog > options.strict > should't return message key as a fallback in strict mode 1`] = `/*eslint-disable*/module.exports={messages:JSON.parse("{\\"Hello\\":[\\"Ahoj\\"],\\"Missing\\":[],\\"Select\\":[[\\"id\\",\\"select\\",{\\"Gen\\":[\\"Genesis\\"],\\"1John\\":[\\"1 John\\"],\\"other\\":[\\"____\\"]}]]}")};`; exports[`createCompiledCatalog options.compilerBabelOptions by default should return catalog without ASCII chars 1`] = `/*eslint-disable*/module.exports={messages:JSON.parse("{\\"Hello\\":[\\"Alohà\\"]}")};`; diff --git a/packages/conf/src/__snapshots__/index.test.ts.snap b/packages/conf/src/__snapshots__/index.test.ts.snap index 0df35e5c5..48290a769 100644 --- a/packages/conf/src/__snapshots__/index.test.ts.snap +++ b/packages/conf/src/__snapshots__/index.test.ts.snap @@ -1,4 +1,71 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`@lingui/conf > should return default config 1`] = ` +{ + catalogs: [ + { + exclude: [ + */node_modules/*, + ], + include: [ + ., + ], + path: ./locale/{locale}/messages, + }, + ], + catalogsMergePath: , + compileNamespace: cjs, + compilerBabelOptions: { + jsescOption: { + minimal: true, + }, + minified: true, + }, + extractorParserOptions: { + flow: false, + tsExperimentalDecorators: false, + }, + fallbackLocales: { + en-gb: en, + }, + format: po, + formatOptions: { + lineNumbers: true, + origins: true, + }, + locales: [ + en-gb, + ], + orderBy: message, + pseudoLocale: , + rootDir: ., + runtimeConfigModule: { + Trans: [ + @lingui/react, + Trans, + ], + i18n: [ + @lingui/core, + i18n, + ], + useLingui: [ + @lingui/react, + useLingui, + ], + }, + service: { + apiKey: , + name: , + }, + sourceLocale: , +} +`; + +exports[`@lingui/conf > should throw error if config is not discovered 1`] = ` +Lingui was unable to find a config! + +Create 'lingui.config.js' file with LinguiJS configuration in root of your project (next to package.json). See https://lingui.dev/ref/conf +`; exports[`@lingui/conf should return default config 1`] = ` { diff --git a/packages/format-json/package.json b/packages/format-json/package.json index b3df261c0..de603d3c7 100644 --- a/packages/format-json/package.json +++ b/packages/format-json/package.json @@ -46,6 +46,7 @@ "devDependencies": { "tsd": "^0.28.0", "unbuild": "^2.0.0", + "vite-plugin-commonjs": "^0.10.4", "vite-tsconfig-paths": "^5.0.1", "vitest": "^2.1.1" } diff --git a/packages/format-po-gettext/src/plural-samples.test.ts b/packages/format-po-gettext/src/plural-samples.test.ts index 45c5c2632..d7ffe5f67 100644 --- a/packages/format-po-gettext/src/plural-samples.test.ts +++ b/packages/format-po-gettext/src/plural-samples.test.ts @@ -4,6 +4,7 @@ import { fillRange, renameKeys, } from "./plural-samples" +import { describe, test, expect } from "vitest" describe("Plural samples generation util", () => { test.each([ @@ -126,12 +127,12 @@ describe("Plural samples generation util", () => { } expect(createLocaleTest(ruleset)).toMatchInlineSnapshot(` { - pluralRule-count-few: [ + "pluralRule-count-few": [ 2, 3, 4, ], - pluralRule-count-many: [ + "pluralRule-count-many": [ 0, 0.1, 0.2, @@ -155,10 +156,10 @@ describe("Plural samples generation util", () => { 100000, 1000000, ], - pluralRule-count-one: [ + "pluralRule-count-one": [ 1, ], - pluralRule-count-other: [ + "pluralRule-count-other": [ 0, 5, 6, diff --git a/packages/vite-plugin/test/__snapshots__/index.test.ts.snap b/packages/vite-plugin/test/__snapshots__/index.test.ts.snap new file mode 100644 index 000000000..9d0f1bce0 --- /dev/null +++ b/packages/vite-plugin/test/__snapshots__/index.test.ts.snap @@ -0,0 +1,15 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`vite-plugin > should return compiled catalog json 1`] = ` +{ + "key": [ + "Message", + ], + "key2": [ + "Hello ", + [ + "name", + ], + ], +} +`; diff --git a/vitest.workspace.ts b/vitest.workspace.ts index 82d99fac3..38e38ca37 100644 --- a/vitest.workspace.ts +++ b/vitest.workspace.ts @@ -1,5 +1,3 @@ import { defineWorkspace } from "vitest/config" export default defineWorkspace(["./packages/**/vitest.config.mts"]) -// -// export default ["packages/**/vite.config.mts"] diff --git a/yarn.lock b/yarn.lock index 13d0f16c9..75b1d8fe1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5,6 +5,13 @@ __metadata: version: 6 cacheKey: 8 +"@adobe/css-tools@npm:^4.4.0": + version: 4.4.1 + resolution: "@adobe/css-tools@npm:4.4.1" + checksum: bbded8a03c314afee0fb0b42922f664f437e0e2f0b86eeeb06dee9d02cd8fc958cf87aa3314952b00074e0b22fc5b8da23f45b61b6f8291c8aaa7cffc56a76e9 + languageName: node + linkType: hard + "@ampproject/remapping@npm:^2.2.0": version: 2.2.0 resolution: "@ampproject/remapping@npm:2.2.0" @@ -2633,7 +2640,7 @@ __metadata: languageName: node linkType: hard -"@jridgewell/gen-mapping@npm:^0.3.0, @jridgewell/gen-mapping@npm:^0.3.5": +"@jridgewell/gen-mapping@npm:^0.3.5": version: 0.3.5 resolution: "@jridgewell/gen-mapping@npm:0.3.5" dependencies: @@ -2658,24 +2665,24 @@ __metadata: languageName: node linkType: hard -"@jridgewell/source-map@npm:^0.3.2": - version: 0.3.2 - resolution: "@jridgewell/source-map@npm:0.3.2" +"@jridgewell/source-map@npm:^0.3.3": + version: 0.3.6 + resolution: "@jridgewell/source-map@npm:0.3.6" dependencies: - "@jridgewell/gen-mapping": ^0.3.0 - "@jridgewell/trace-mapping": ^0.3.9 - checksum: 1b83f0eb944e77b70559a394d5d3b3f98a81fcc186946aceb3ef42d036762b52ef71493c6c0a3b7c1d2f08785f53ba2df1277fe629a06e6109588ff4cdcf7482 + "@jridgewell/gen-mapping": ^0.3.5 + "@jridgewell/trace-mapping": ^0.3.25 + checksum: c9dc7d899397df95e3c9ec287b93c0b56f8e4453cd20743e2b9c8e779b1949bc3cccf6c01bb302779e46560eb45f62ea38d19fedd25370d814734268450a9f30 languageName: node linkType: hard -"@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.13, @jridgewell/sourcemap-codec@npm:^1.4.14, @jridgewell/sourcemap-codec@npm:^1.4.15": +"@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.13, @jridgewell/sourcemap-codec@npm:^1.4.14, @jridgewell/sourcemap-codec@npm:^1.4.15, @jridgewell/sourcemap-codec@npm:^1.5.0": version: 1.5.0 resolution: "@jridgewell/sourcemap-codec@npm:1.5.0" checksum: 05df4f2538b3b0f998ea4c1cd34574d0feba216fa5d4ccaef0187d12abf82eafe6021cec8b49f9bb4d90f2ba4582ccc581e72986a5fcf4176ae0cfeb04cf52ec languageName: node linkType: hard -"@jridgewell/trace-mapping@npm:^0.3.12, @jridgewell/trace-mapping@npm:^0.3.17, @jridgewell/trace-mapping@npm:^0.3.18, @jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25, @jridgewell/trace-mapping@npm:^0.3.9": +"@jridgewell/trace-mapping@npm:^0.3.12, @jridgewell/trace-mapping@npm:^0.3.18, @jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25, @jridgewell/trace-mapping@npm:^0.3.9": version: 0.3.25 resolution: "@jridgewell/trace-mapping@npm:0.3.25" dependencies: @@ -2774,6 +2781,8 @@ __metadata: "@lingui/babel-plugin-lingui-macro": "workspace:*" "@lingui/jest-mocks": "workspace:*" unbuild: 2.0.0 + vite-tsconfig-paths: ^5.0.1 + vitest: ^2.1.1 languageName: unknown linkType: soft @@ -2792,6 +2801,7 @@ __metadata: "@types/babel-plugin-macros": ^2.8.5 prettier: 2.8.3 unbuild: 2.0.0 + vitest: ^2.1.1 peerDependencies: babel-plugin-macros: 2 || 3 peerDependenciesMeta: @@ -2840,6 +2850,8 @@ __metadata: pseudolocale: ^2.0.0 ramda: ^0.27.1 source-map: ^0.8.0-beta.0 + vite-tsconfig-paths: ^5.0.1 + vitest: ^2.1.1 bin: lingui: ./dist/lingui.js languageName: unknown @@ -2858,6 +2870,7 @@ __metadata: lodash.get: ^4.4.2 tsd: ^0.26.1 unbuild: ^2.0.0 + vitest: ^2.1.1 languageName: unknown linkType: soft @@ -2871,6 +2884,8 @@ __metadata: tsd: ^0.26.1 unbuild: 2.0.0 unraw: ^3.0.0 + vite-tsconfig-paths: ^5.0.1 + vitest: ^2.1.1 peerDependencies: "@lingui/babel-plugin-lingui-macro": 5.1.2 babel-plugin-macros: 2 || 3 @@ -2896,8 +2911,10 @@ __metadata: version: 0.0.0-use.local resolution: "@lingui/detect-locale@workspace:packages/detect-locale" dependencies: - jsdom: ^16.4.0 + jsdom: ^25.0.1 unbuild: 2.0.0 + vite-tsconfig-paths: ^5.0.1 + vitest: ^2.1.1 languageName: unknown linkType: soft @@ -2921,6 +2938,8 @@ __metadata: papaparse: ^5.4.0 tsd: ^0.28.0 unbuild: 2.0.0 + vite-tsconfig-paths: ^5.0.1 + vitest: ^2.1.1 languageName: unknown linkType: soft @@ -2932,6 +2951,9 @@ __metadata: ramda: ^0.28.0 tsd: ^0.28.0 unbuild: ^2.0.0 + vite-plugin-commonjs: ^0.10.4 + vite-tsconfig-paths: ^5.0.1 + vitest: ^2.1.1 languageName: unknown linkType: soft @@ -2951,6 +2973,8 @@ __metadata: pofile: ^1.1.4 tsd: ^0.28.0 unbuild: 2.0.0 + vite-tsconfig-paths: ^5.0.1 + vitest: ^2.1.1 languageName: unknown linkType: soft @@ -2966,12 +2990,16 @@ __metadata: pofile: ^1.1.4 tsd: ^0.28.0 unbuild: 2.0.0 + vite-tsconfig-paths: ^5.0.1 + vitest: ^2.1.1 languageName: unknown linkType: soft "@lingui/jest-mocks@*, @lingui/jest-mocks@workspace:*, @lingui/jest-mocks@workspace:^, @lingui/jest-mocks@workspace:packages/jest-mocks": version: 0.0.0-use.local resolution: "@lingui/jest-mocks@workspace:packages/jest-mocks" + dependencies: + vitest: ^2.1.1 languageName: unknown linkType: soft @@ -2984,7 +3012,9 @@ __metadata: "@lingui/conf": 5.1.2 "@lingui/format-json": 5.1.2 unbuild: 2.0.0 - webpack: ^5.76.1 + vite-tsconfig-paths: ^5.0.1 + vitest: ^2.1.1 + webpack: ^5.94.0 peerDependencies: webpack: ^5.0.0 languageName: unknown @@ -3015,6 +3045,8 @@ __metadata: "@messageformat/parser": ^5.0.0 js-sha256: ^0.10.1 unbuild: 2.0.0 + vite-tsconfig-paths: ^5.0.1 + vitest: ^2.1.1 languageName: unknown linkType: soft @@ -3061,7 +3093,9 @@ __metadata: "@babel/runtime": ^7.20.13 "@lingui/core": 5.1.2 "@lingui/jest-mocks": "*" - "@testing-library/react": ^14.0.0 + "@testing-library/dom": ^10.4.0 + "@testing-library/jest-dom": ^6.5.0 + "@testing-library/react": ^16.0.1 "@types/react": ^18.2.13 eslint-plugin-react: ^7.32.2 eslint-plugin-react-hooks: ^4.6.0 @@ -3069,6 +3103,8 @@ __metadata: react-dom: ^18.2.0 tsd: ^0.26.1 unbuild: 2.0.0 + vite-tsconfig-paths: ^5.0.1 + vitest: ^2.1.1 peerDependencies: "@lingui/babel-plugin-lingui-macro": 5.1.2 babel-plugin-macros: 2 || 3 @@ -3089,6 +3125,8 @@ __metadata: "@lingui/message-utils": 4.0.0 ramda: ^0.27.1 unbuild: 2.0.0 + vite-tsconfig-paths: ^5.0.1 + vitest: ^2.1.1 languageName: unknown linkType: soft @@ -3628,6 +3666,13 @@ __metadata: languageName: node linkType: hard +"@polka/url@npm:^1.0.0-next.24": + version: 1.0.0-next.28 + resolution: "@polka/url@npm:1.0.0-next.28" + checksum: 7402aaf1de781d0eb0870d50cbcd394f949aee11b38a267a5c3b4e3cfee117e920693e6e93ce24c87ae2d477a59634f39d9edde8e86471cae756839b07c79af7 + languageName: node + linkType: hard + "@rollup/plugin-alias@npm:^5.0.0": version: 5.0.0 resolution: "@rollup/plugin-alias@npm:5.0.0" @@ -3732,6 +3777,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-android-arm-eabi@npm:4.29.1": + version: 4.29.1 + resolution: "@rollup/rollup-android-arm-eabi@npm:4.29.1" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + "@rollup/rollup-android-arm64@npm:4.28.0": version: 4.28.0 resolution: "@rollup/rollup-android-arm64@npm:4.28.0" @@ -3739,6 +3791,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-android-arm64@npm:4.29.1": + version: 4.29.1 + resolution: "@rollup/rollup-android-arm64@npm:4.29.1" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + "@rollup/rollup-darwin-arm64@npm:4.28.0": version: 4.28.0 resolution: "@rollup/rollup-darwin-arm64@npm:4.28.0" @@ -3746,6 +3805,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-darwin-arm64@npm:4.29.1": + version: 4.29.1 + resolution: "@rollup/rollup-darwin-arm64@npm:4.29.1" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + "@rollup/rollup-darwin-x64@npm:4.28.0": version: 4.28.0 resolution: "@rollup/rollup-darwin-x64@npm:4.28.0" @@ -3753,6 +3819,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-darwin-x64@npm:4.29.1": + version: 4.29.1 + resolution: "@rollup/rollup-darwin-x64@npm:4.29.1" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + "@rollup/rollup-freebsd-arm64@npm:4.28.0": version: 4.28.0 resolution: "@rollup/rollup-freebsd-arm64@npm:4.28.0" @@ -3760,6 +3833,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-freebsd-arm64@npm:4.29.1": + version: 4.29.1 + resolution: "@rollup/rollup-freebsd-arm64@npm:4.29.1" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + "@rollup/rollup-freebsd-x64@npm:4.28.0": version: 4.28.0 resolution: "@rollup/rollup-freebsd-x64@npm:4.28.0" @@ -3767,6 +3847,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-freebsd-x64@npm:4.29.1": + version: 4.29.1 + resolution: "@rollup/rollup-freebsd-x64@npm:4.29.1" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + "@rollup/rollup-linux-arm-gnueabihf@npm:4.28.0": version: 4.28.0 resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.28.0" @@ -3774,6 +3861,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-arm-gnueabihf@npm:4.29.1": + version: 4.29.1 + resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.29.1" + conditions: os=linux & cpu=arm & libc=glibc + languageName: node + linkType: hard + "@rollup/rollup-linux-arm-musleabihf@npm:4.28.0": version: 4.28.0 resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.28.0" @@ -3781,6 +3875,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-arm-musleabihf@npm:4.29.1": + version: 4.29.1 + resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.29.1" + conditions: os=linux & cpu=arm & libc=musl + languageName: node + linkType: hard + "@rollup/rollup-linux-arm64-gnu@npm:4.28.0": version: 4.28.0 resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.28.0" @@ -3788,6 +3889,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-arm64-gnu@npm:4.29.1": + version: 4.29.1 + resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.29.1" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + "@rollup/rollup-linux-arm64-musl@npm:4.28.0": version: 4.28.0 resolution: "@rollup/rollup-linux-arm64-musl@npm:4.28.0" @@ -3795,6 +3903,20 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-arm64-musl@npm:4.29.1": + version: 4.29.1 + resolution: "@rollup/rollup-linux-arm64-musl@npm:4.29.1" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-linux-loongarch64-gnu@npm:4.29.1": + version: 4.29.1 + resolution: "@rollup/rollup-linux-loongarch64-gnu@npm:4.29.1" + conditions: os=linux & cpu=loong64 & libc=glibc + languageName: node + linkType: hard + "@rollup/rollup-linux-powerpc64le-gnu@npm:4.28.0": version: 4.28.0 resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.28.0" @@ -3802,6 +3924,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-powerpc64le-gnu@npm:4.29.1": + version: 4.29.1 + resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.29.1" + conditions: os=linux & cpu=ppc64 & libc=glibc + languageName: node + linkType: hard + "@rollup/rollup-linux-riscv64-gnu@npm:4.28.0": version: 4.28.0 resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.28.0" @@ -3809,6 +3938,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-riscv64-gnu@npm:4.29.1": + version: 4.29.1 + resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.29.1" + conditions: os=linux & cpu=riscv64 & libc=glibc + languageName: node + linkType: hard + "@rollup/rollup-linux-s390x-gnu@npm:4.28.0": version: 4.28.0 resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.28.0" @@ -3816,6 +3952,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-s390x-gnu@npm:4.29.1": + version: 4.29.1 + resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.29.1" + conditions: os=linux & cpu=s390x & libc=glibc + languageName: node + linkType: hard + "@rollup/rollup-linux-x64-gnu@npm:4.28.0": version: 4.28.0 resolution: "@rollup/rollup-linux-x64-gnu@npm:4.28.0" @@ -3823,6 +3966,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-x64-gnu@npm:4.29.1": + version: 4.29.1 + resolution: "@rollup/rollup-linux-x64-gnu@npm:4.29.1" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + "@rollup/rollup-linux-x64-musl@npm:4.28.0": version: 4.28.0 resolution: "@rollup/rollup-linux-x64-musl@npm:4.28.0" @@ -3830,6 +3980,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-x64-musl@npm:4.29.1": + version: 4.29.1 + resolution: "@rollup/rollup-linux-x64-musl@npm:4.29.1" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + "@rollup/rollup-win32-arm64-msvc@npm:4.28.0": version: 4.28.0 resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.28.0" @@ -3837,6 +3994,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-win32-arm64-msvc@npm:4.29.1": + version: 4.29.1 + resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.29.1" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + "@rollup/rollup-win32-ia32-msvc@npm:4.28.0": version: 4.28.0 resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.28.0" @@ -3844,6 +4008,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-win32-ia32-msvc@npm:4.29.1": + version: 4.29.1 + resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.29.1" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + "@rollup/rollup-win32-x64-msvc@npm:4.28.0": version: 4.28.0 resolution: "@rollup/rollup-win32-x64-msvc@npm:4.28.0" @@ -3851,6 +4022,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-win32-x64-msvc@npm:4.29.1": + version: 4.29.1 + resolution: "@rollup/rollup-win32-x64-msvc@npm:4.29.1" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@rtsao/scc@npm:^1.1.0": version: 1.1.0 resolution: "@rtsao/scc@npm:1.1.0" @@ -4121,40 +4299,54 @@ __metadata: languageName: node linkType: hard -"@testing-library/dom@npm:^9.0.0": - version: 9.3.1 - resolution: "@testing-library/dom@npm:9.3.1" +"@testing-library/dom@npm:^10.4.0": + version: 10.4.0 + resolution: "@testing-library/dom@npm:10.4.0" dependencies: "@babel/code-frame": ^7.10.4 "@babel/runtime": ^7.12.5 "@types/aria-query": ^5.0.1 - aria-query: 5.1.3 + aria-query: 5.3.0 chalk: ^4.1.0 dom-accessibility-api: ^0.5.9 lz-string: ^1.5.0 pretty-format: ^27.0.2 - checksum: 8ee3136451644e39990edea93709c38cf1e8ce5306f3c66273ca00935963faa51ca74e8d92b02eb442ccb842cfa28ca62833e393e075eb269cf9bef6f5600663 + checksum: bb128b90be0c8cd78c5f5e67aa45f53de614cc048a2b50b230e736ec710805ac6c73375af354b83c74d710b3928d52b83a273a4cb89de4eb3efe49e91e706837 languageName: node linkType: hard -"@testing-library/react@npm:^14.0.0": - version: 14.0.0 - resolution: "@testing-library/react@npm:14.0.0" +"@testing-library/jest-dom@npm:^6.5.0": + version: 6.6.3 + resolution: "@testing-library/jest-dom@npm:6.6.3" dependencies: - "@babel/runtime": ^7.12.5 - "@testing-library/dom": ^9.0.0 - "@types/react-dom": ^18.0.0 - peerDependencies: - react: ^18.0.0 - react-dom: ^18.0.0 - checksum: 4a54c8f56cc4a39b50803205f84f06280bb76521d6d5d4b3b36651d760c7c7752ef142d857d52aaf4fad4848ed7a8be49afc793a5dda105955d2f8bef24901ac + "@adobe/css-tools": ^4.4.0 + aria-query: ^5.0.0 + chalk: ^3.0.0 + css.escape: ^1.5.1 + dom-accessibility-api: ^0.6.3 + lodash: ^4.17.21 + redent: ^3.0.0 + checksum: c1dc4260b05309a0084416639006cd105849acc5b102bef682a3b19bd6fce07ff6762085fc7f2599546c995a2fc66fdb1d70e50e22a634a0098524056cc9e511 languageName: node linkType: hard -"@tootallnate/once@npm:1": - version: 1.1.2 - resolution: "@tootallnate/once@npm:1.1.2" - checksum: e1fb1bbbc12089a0cb9433dc290f97bddd062deadb6178ce9bcb93bb7c1aecde5e60184bc7065aec42fe1663622a213493c48bbd4972d931aae48315f18e1be9 +"@testing-library/react@npm:^16.0.1": + version: 16.1.0 + resolution: "@testing-library/react@npm:16.1.0" + dependencies: + "@babel/runtime": ^7.12.5 + peerDependencies: + "@testing-library/dom": ^10.0.0 + "@types/react": ^18.0.0 || ^19.0.0 + "@types/react-dom": ^18.0.0 || ^19.0.0 + react: ^18.0.0 || ^19.0.0 + react-dom: ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 5dc8e7abda23d108c29f43cdacd43fad750e981ee87ee8902fb349a2683f2f774ef1136f2d3ef3d9efb87e8b04426c43d7b46e95511cd7c9d37b10c3bdd3e9e2 languageName: node linkType: hard @@ -4276,13 +4468,13 @@ __metadata: languageName: node linkType: hard -"@types/eslint-scope@npm:^3.7.3": - version: 3.7.4 - resolution: "@types/eslint-scope@npm:3.7.4" +"@types/eslint-scope@npm:^3.7.7": + version: 3.7.7 + resolution: "@types/eslint-scope@npm:3.7.7" dependencies: "@types/eslint": "*" "@types/estree": "*" - checksum: ea6a9363e92f301cd3888194469f9ec9d0021fe0a397a97a6dd689e7545c75de0bd2153dfb13d3ab532853a278b6572c6f678ce846980669e41029d205653460 + checksum: e2889a124aaab0b89af1bab5959847c5bec09809209255de0e63b9f54c629a94781daa04adb66bffcdd742f5e25a17614fb933965093c0eea64aacda4309380e languageName: node linkType: hard @@ -4313,13 +4505,6 @@ __metadata: languageName: node linkType: hard -"@types/estree@npm:^0.0.51": - version: 0.0.51 - resolution: "@types/estree@npm:0.0.51" - checksum: e56a3bcf759fd9185e992e7fdb3c6a5f81e8ff120e871641607581fb3728d16c811702a7d40fa5f869b7f7b4437ab6a87eb8d98ffafeee51e85bbe955932a189 - languageName: node - linkType: hard - "@types/graceful-fs@npm:^4.1.3": version: 4.1.6 resolution: "@types/graceful-fs@npm:4.1.6" @@ -4382,7 +4567,7 @@ __metadata: languageName: node linkType: hard -"@types/json-schema@npm:^7.0.15": +"@types/json-schema@npm:^7.0.15, @types/json-schema@npm:^7.0.9": version: 7.0.15 resolution: "@types/json-schema@npm:7.0.15" checksum: 97ed0cb44d4070aecea772b7b2e2ed971e10c81ec87dd4ecc160322ffa55ff330dace1793489540e3e318d90942064bb697cc0f8989391797792d919737b3b98 @@ -4474,16 +4659,7 @@ __metadata: languageName: node linkType: hard -"@types/react-dom@npm:^18.0.0": - version: 18.2.6 - resolution: "@types/react-dom@npm:18.2.6" - dependencies: - "@types/react": "*" - checksum: b56e42efab121a3a8013d2eb8c1688e6028a25ea6d33c4362d2846f0af3760b164b4d7c34846614024cfb8956cca70dd1743487f152e32ff89a00fe6fbd2be54 - languageName: node - linkType: hard - -"@types/react@npm:*, @types/react@npm:^18.2.13": +"@types/react@npm:^18.2.13": version: 18.2.13 resolution: "@types/react@npm:18.2.13" dependencies: @@ -4650,6 +4826,104 @@ __metadata: languageName: node linkType: hard +"@vitest/expect@npm:2.1.8": + version: 2.1.8 + resolution: "@vitest/expect@npm:2.1.8" + dependencies: + "@vitest/spy": 2.1.8 + "@vitest/utils": 2.1.8 + chai: ^5.1.2 + tinyrainbow: ^1.2.0 + checksum: 3e81e61dfb5222797ab5e6a70bee2d032fb382c9e7ddc4abe03114f0efbc4cc3b56fc2648e89ae26f5d9261554ea7c696b3a329c8ccea2c702cb87476e4a6842 + languageName: node + linkType: hard + +"@vitest/mocker@npm:2.1.8": + version: 2.1.8 + resolution: "@vitest/mocker@npm:2.1.8" + dependencies: + "@vitest/spy": 2.1.8 + estree-walker: ^3.0.3 + magic-string: ^0.30.12 + peerDependencies: + msw: ^2.4.9 + vite: ^5.0.0 + peerDependenciesMeta: + msw: + optional: true + vite: + optional: true + checksum: 0022d76ff78043c0788380b4e530a03690f8a89a14d1d07c4c069c8fd828a4741d2777ebc486ca0f89b2fb8cf880a7880d6891dd7cfb8cf4339f040131a8bda2 + languageName: node + linkType: hard + +"@vitest/pretty-format@npm:2.1.8, @vitest/pretty-format@npm:^2.1.8": + version: 2.1.8 + resolution: "@vitest/pretty-format@npm:2.1.8" + dependencies: + tinyrainbow: ^1.2.0 + checksum: 2214ca317a19220a5f308a4e77fe403fa091c2f006d1f5b1bd91e8fad6e167db2fdc7882e564da3518d5b2cd9dedb1e97067bb666a820519c54f1c26ac9b0c5a + languageName: node + linkType: hard + +"@vitest/runner@npm:2.1.8": + version: 2.1.8 + resolution: "@vitest/runner@npm:2.1.8" + dependencies: + "@vitest/utils": 2.1.8 + pathe: ^1.1.2 + checksum: 50625597a01fbb55e7edf303b2ce6df7a46347bf05017ce7c4b4ce491ac6d85380aa5dd80127307f2621dc4b3b4081ef8ba1f3f825335f0af812a8e4e08d4aa2 + languageName: node + linkType: hard + +"@vitest/snapshot@npm:2.1.8": + version: 2.1.8 + resolution: "@vitest/snapshot@npm:2.1.8" + dependencies: + "@vitest/pretty-format": 2.1.8 + magic-string: ^0.30.12 + pathe: ^1.1.2 + checksum: ff6a6033fe891c9b19fc33ef2518c29e8afca17c02c463b6b1f40e7e7d51867d5c0bb9b49f524b7c0889337a2c0cae7dcc864851a59a28d3a6e0488cecc45040 + languageName: node + linkType: hard + +"@vitest/spy@npm:2.1.8": + version: 2.1.8 + resolution: "@vitest/spy@npm:2.1.8" + dependencies: + tinyspy: ^3.0.2 + checksum: 0e497e7a7f3170f761c0dbdf983f13d09616b2bae7f640c216644f8d3d1f1a6b6e59aa1e6b75ca2a773355811f0ad6b9d7b6b14596d9b99378040917cada5d49 + languageName: node + linkType: hard + +"@vitest/ui@npm:^2.1.8": + version: 2.1.8 + resolution: "@vitest/ui@npm:2.1.8" + dependencies: + "@vitest/utils": 2.1.8 + fflate: ^0.8.2 + flatted: ^3.3.1 + pathe: ^1.1.2 + sirv: ^3.0.0 + tinyglobby: ^0.2.10 + tinyrainbow: ^1.2.0 + peerDependencies: + vitest: 2.1.8 + checksum: 0bd1f4d1d134dcdea4fc0dbd2d36fbcd40f4c76da2a3fae55d97f72bd0edf838e0898427dcbe7d318385c8ff33609a93c8e83b341d6bdb604d96d763afd97738 + languageName: node + linkType: hard + +"@vitest/utils@npm:2.1.8": + version: 2.1.8 + resolution: "@vitest/utils@npm:2.1.8" + dependencies: + "@vitest/pretty-format": 2.1.8 + loupe: ^3.1.2 + tinyrainbow: ^1.2.0 + checksum: 711e7998ba9785880ed416d08b478e2b881cd218d37c3d773b26477adaa6aab91758e01ac039f839175f446111118fb5aa041317b619eeeb05537e3912159eb7 + languageName: node + linkType: hard + "@vue/compiler-core@npm:3.2.47": version: 3.2.47 resolution: "@vue/compiler-core@npm:3.2.47" @@ -4720,154 +4994,154 @@ __metadata: languageName: node linkType: hard -"@webassemblyjs/ast@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/ast@npm:1.11.1" +"@webassemblyjs/ast@npm:1.14.1, @webassemblyjs/ast@npm:^1.14.1": + version: 1.14.1 + resolution: "@webassemblyjs/ast@npm:1.14.1" dependencies: - "@webassemblyjs/helper-numbers": 1.11.1 - "@webassemblyjs/helper-wasm-bytecode": 1.11.1 - checksum: 1eee1534adebeece635362f8e834ae03e389281972611408d64be7895fc49f48f98fddbbb5339bf8a72cb101bcb066e8bca3ca1bf1ef47dadf89def0395a8d87 + "@webassemblyjs/helper-numbers": 1.13.2 + "@webassemblyjs/helper-wasm-bytecode": 1.13.2 + checksum: f9154ad9ea14f6f2374ebe918c221fd69a4d4514126a1acc6fa4966e8d27ab28cb550a5e6880032cf620e19640578658a7e5a55bd2aad1e3db4e9d598b8f2099 languageName: node linkType: hard -"@webassemblyjs/floating-point-hex-parser@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/floating-point-hex-parser@npm:1.11.1" - checksum: b8efc6fa08e4787b7f8e682182d84dfdf8da9d9c77cae5d293818bc4a55c1f419a87fa265ab85252b3e6c1fd323d799efea68d825d341a7c365c64bc14750e97 +"@webassemblyjs/floating-point-hex-parser@npm:1.13.2": + version: 1.13.2 + resolution: "@webassemblyjs/floating-point-hex-parser@npm:1.13.2" + checksum: e866ec8433f4a70baa511df5e8f2ebcd6c24f4e2cc6274c7c5aabe2bcce3459ea4680e0f35d450e1f3602acf3913b6b8e4f15069c8cfd34ae8609fb9a7d01795 languageName: node linkType: hard -"@webassemblyjs/helper-api-error@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/helper-api-error@npm:1.11.1" - checksum: 0792813f0ed4a0e5ee0750e8b5d0c631f08e927f4bdfdd9fe9105dc410c786850b8c61bff7f9f515fdfb149903bec3c976a1310573a4c6866a94d49bc7271959 +"@webassemblyjs/helper-api-error@npm:1.13.2": + version: 1.13.2 + resolution: "@webassemblyjs/helper-api-error@npm:1.13.2" + checksum: 48b5df7fd3095bb252f59a139fe2cbd999a62ac9b488123e9a0da3906ad8a2f2da7b2eb21d328c01a90da987380928706395c2897d1f3ed9e2125b6d75a920d0 languageName: node linkType: hard -"@webassemblyjs/helper-buffer@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/helper-buffer@npm:1.11.1" - checksum: a337ee44b45590c3a30db5a8b7b68a717526cf967ada9f10253995294dbd70a58b2da2165222e0b9830cd4fc6e4c833bf441a721128d1fe2e9a7ab26b36003ce +"@webassemblyjs/helper-buffer@npm:1.14.1": + version: 1.14.1 + resolution: "@webassemblyjs/helper-buffer@npm:1.14.1" + checksum: b611e981dfd6a797c3d8fc3a772de29a6e55033737c2c09c31bb66c613bdbb2d25f915df1dee62a602c6acc057ca71128432fa8c3e22a893e1219dc454f14ede languageName: node linkType: hard -"@webassemblyjs/helper-numbers@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/helper-numbers@npm:1.11.1" +"@webassemblyjs/helper-numbers@npm:1.13.2": + version: 1.13.2 + resolution: "@webassemblyjs/helper-numbers@npm:1.13.2" dependencies: - "@webassemblyjs/floating-point-hex-parser": 1.11.1 - "@webassemblyjs/helper-api-error": 1.11.1 + "@webassemblyjs/floating-point-hex-parser": 1.13.2 + "@webassemblyjs/helper-api-error": 1.13.2 "@xtuc/long": 4.2.2 - checksum: 44d2905dac2f14d1e9b5765cf1063a0fa3d57295c6d8930f6c59a36462afecc6e763e8a110b97b342a0f13376166c5d41aa928e6ced92e2f06b071fd0db59d3a + checksum: 49e2c9bf9b66997e480f6b44d80f895b3cde4de52ac135921d28e144565edca6903a519f627f4089b5509de1d7f9e5023f0e1a94ff78a36c9e2eb30e7c18ffd2 languageName: node linkType: hard -"@webassemblyjs/helper-wasm-bytecode@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/helper-wasm-bytecode@npm:1.11.1" - checksum: eac400113127832c88f5826bcc3ad1c0db9b3dbd4c51a723cfdb16af6bfcbceb608170fdaac0ab7731a7e18b291be7af68a47fcdb41cfe0260c10857e7413d97 +"@webassemblyjs/helper-wasm-bytecode@npm:1.13.2": + version: 1.13.2 + resolution: "@webassemblyjs/helper-wasm-bytecode@npm:1.13.2" + checksum: 8e059e1c1f0294f4fc3df8e4eaff3c5ef6e2e1358f34ebc118eaf5070ed59e56ed7fc92b28be734ebde17c8d662d5d27e06ade686c282445135da083ae11c128 languageName: node linkType: hard -"@webassemblyjs/helper-wasm-section@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/helper-wasm-section@npm:1.11.1" +"@webassemblyjs/helper-wasm-section@npm:1.14.1": + version: 1.14.1 + resolution: "@webassemblyjs/helper-wasm-section@npm:1.14.1" dependencies: - "@webassemblyjs/ast": 1.11.1 - "@webassemblyjs/helper-buffer": 1.11.1 - "@webassemblyjs/helper-wasm-bytecode": 1.11.1 - "@webassemblyjs/wasm-gen": 1.11.1 - checksum: 617696cfe8ecaf0532763162aaf748eb69096fb27950219bb87686c6b2e66e11cd0614d95d319d0ab1904bc14ebe4e29068b12c3e7c5e020281379741fe4bedf + "@webassemblyjs/ast": 1.14.1 + "@webassemblyjs/helper-buffer": 1.14.1 + "@webassemblyjs/helper-wasm-bytecode": 1.13.2 + "@webassemblyjs/wasm-gen": 1.14.1 + checksum: 0a08d454a63192cd66abf91b6f060ac4b466cef341262246e9dcc828dd4c8536195dea9b46a1244b1eac65b59b8b502164a771a190052a92ff0a0a2ded0f8f53 languageName: node linkType: hard -"@webassemblyjs/ieee754@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/ieee754@npm:1.11.1" +"@webassemblyjs/ieee754@npm:1.13.2": + version: 1.13.2 + resolution: "@webassemblyjs/ieee754@npm:1.13.2" dependencies: "@xtuc/ieee754": ^1.2.0 - checksum: 23a0ac02a50f244471631802798a816524df17e56b1ef929f0c73e3cde70eaf105a24130105c60aff9d64a24ce3b640dad443d6f86e5967f922943a7115022ec + checksum: d7e3520baa37a7309fa7db4d73d69fb869878853b1ebd4b168821bd03fcc4c0e1669c06231315b0039035d9a7a462e53de3ad982da4a426a4b0743b5888e8673 languageName: node linkType: hard -"@webassemblyjs/leb128@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/leb128@npm:1.11.1" +"@webassemblyjs/leb128@npm:1.13.2": + version: 1.13.2 + resolution: "@webassemblyjs/leb128@npm:1.13.2" dependencies: "@xtuc/long": 4.2.2 - checksum: 33ccc4ade2f24de07bf31690844d0b1ad224304ee2062b0e464a610b0209c79e0b3009ac190efe0e6bd568b0d1578d7c3047fc1f9d0197c92fc061f56224ff4a + checksum: 64083507f7cff477a6d71a9e325d95665cea78ec8df99ca7c050e1cfbe300fbcf0842ca3dcf3b4fa55028350135588a4f879398d3dd2b6a8de9913ce7faf5333 languageName: node linkType: hard -"@webassemblyjs/utf8@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/utf8@npm:1.11.1" - checksum: 972c5cfc769d7af79313a6bfb96517253a270a4bf0c33ba486aa43cac43917184fb35e51dfc9e6b5601548cd5931479a42e42c89a13bb591ffabebf30c8a6a0b +"@webassemblyjs/utf8@npm:1.13.2": + version: 1.13.2 + resolution: "@webassemblyjs/utf8@npm:1.13.2" + checksum: 95ec6052f30eefa8d50c9b2a3394d08b17d53a4aa52821451d41d774c126fa8f39b988fbf5bff56da86852a87c16d676e576775a4071e5e5ccf020cc85a4b281 languageName: node linkType: hard -"@webassemblyjs/wasm-edit@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/wasm-edit@npm:1.11.1" +"@webassemblyjs/wasm-edit@npm:^1.14.1": + version: 1.14.1 + resolution: "@webassemblyjs/wasm-edit@npm:1.14.1" dependencies: - "@webassemblyjs/ast": 1.11.1 - "@webassemblyjs/helper-buffer": 1.11.1 - "@webassemblyjs/helper-wasm-bytecode": 1.11.1 - "@webassemblyjs/helper-wasm-section": 1.11.1 - "@webassemblyjs/wasm-gen": 1.11.1 - "@webassemblyjs/wasm-opt": 1.11.1 - "@webassemblyjs/wasm-parser": 1.11.1 - "@webassemblyjs/wast-printer": 1.11.1 - checksum: 6d7d9efaec1227e7ef7585a5d7ff0be5f329f7c1c6b6c0e906b18ed2e9a28792a5635e450aca2d136770d0207225f204eff70a4b8fd879d3ac79e1dcc26dbeb9 + "@webassemblyjs/ast": 1.14.1 + "@webassemblyjs/helper-buffer": 1.14.1 + "@webassemblyjs/helper-wasm-bytecode": 1.13.2 + "@webassemblyjs/helper-wasm-section": 1.14.1 + "@webassemblyjs/wasm-gen": 1.14.1 + "@webassemblyjs/wasm-opt": 1.14.1 + "@webassemblyjs/wasm-parser": 1.14.1 + "@webassemblyjs/wast-printer": 1.14.1 + checksum: 9341c3146bb1b7863f03d6050c2a66990f20384ca137388047bbe1feffacb599e94fca7b7c18287d17e2449ffb4005fdc7f41f674a6975af9ad8522756f8ffff languageName: node linkType: hard -"@webassemblyjs/wasm-gen@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/wasm-gen@npm:1.11.1" +"@webassemblyjs/wasm-gen@npm:1.14.1": + version: 1.14.1 + resolution: "@webassemblyjs/wasm-gen@npm:1.14.1" dependencies: - "@webassemblyjs/ast": 1.11.1 - "@webassemblyjs/helper-wasm-bytecode": 1.11.1 - "@webassemblyjs/ieee754": 1.11.1 - "@webassemblyjs/leb128": 1.11.1 - "@webassemblyjs/utf8": 1.11.1 - checksum: 1f6921e640293bf99fb16b21e09acb59b340a79f986c8f979853a0ae9f0b58557534b81e02ea2b4ef11e929d946708533fd0693c7f3712924128fdafd6465f5b + "@webassemblyjs/ast": 1.14.1 + "@webassemblyjs/helper-wasm-bytecode": 1.13.2 + "@webassemblyjs/ieee754": 1.13.2 + "@webassemblyjs/leb128": 1.13.2 + "@webassemblyjs/utf8": 1.13.2 + checksum: 401b12bec7431c4fc29d9414bbe40d3c6dc5be04d25a116657c42329f5481f0129f3b5834c293f26f0e42681ceac9157bf078ce9bdb6a7f78037c650373f98b2 languageName: node linkType: hard -"@webassemblyjs/wasm-opt@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/wasm-opt@npm:1.11.1" +"@webassemblyjs/wasm-opt@npm:1.14.1": + version: 1.14.1 + resolution: "@webassemblyjs/wasm-opt@npm:1.14.1" dependencies: - "@webassemblyjs/ast": 1.11.1 - "@webassemblyjs/helper-buffer": 1.11.1 - "@webassemblyjs/wasm-gen": 1.11.1 - "@webassemblyjs/wasm-parser": 1.11.1 - checksum: 21586883a20009e2b20feb67bdc451bbc6942252e038aae4c3a08e6f67b6bae0f5f88f20bfc7bd0452db5000bacaf5ab42b98cf9aa034a6c70e9fc616142e1db + "@webassemblyjs/ast": 1.14.1 + "@webassemblyjs/helper-buffer": 1.14.1 + "@webassemblyjs/wasm-gen": 1.14.1 + "@webassemblyjs/wasm-parser": 1.14.1 + checksum: 60c697a9e9129d8d23573856df0791ba33cea4a3bc2339044cae73128c0983802e5e50a42157b990eeafe1237eb8e7653db6de5f02b54a0ae7b81b02dcdf2ae9 languageName: node linkType: hard -"@webassemblyjs/wasm-parser@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/wasm-parser@npm:1.11.1" +"@webassemblyjs/wasm-parser@npm:1.14.1, @webassemblyjs/wasm-parser@npm:^1.14.1": + version: 1.14.1 + resolution: "@webassemblyjs/wasm-parser@npm:1.14.1" dependencies: - "@webassemblyjs/ast": 1.11.1 - "@webassemblyjs/helper-api-error": 1.11.1 - "@webassemblyjs/helper-wasm-bytecode": 1.11.1 - "@webassemblyjs/ieee754": 1.11.1 - "@webassemblyjs/leb128": 1.11.1 - "@webassemblyjs/utf8": 1.11.1 - checksum: 1521644065c360e7b27fad9f4bb2df1802d134dd62937fa1f601a1975cde56bc31a57b6e26408b9ee0228626ff3ba1131ae6f74ffb7d718415b6528c5a6dbfc2 + "@webassemblyjs/ast": 1.14.1 + "@webassemblyjs/helper-api-error": 1.13.2 + "@webassemblyjs/helper-wasm-bytecode": 1.13.2 + "@webassemblyjs/ieee754": 1.13.2 + "@webassemblyjs/leb128": 1.13.2 + "@webassemblyjs/utf8": 1.13.2 + checksum: 93f1fe2676da465b4e824419d9812a3d7218de4c3addd4e916c04bc86055fa134416c1b67e4b7cbde8d728c0dce2721d06cc0bfe7a7db7c093a0898009937405 languageName: node linkType: hard -"@webassemblyjs/wast-printer@npm:1.11.1": - version: 1.11.1 - resolution: "@webassemblyjs/wast-printer@npm:1.11.1" +"@webassemblyjs/wast-printer@npm:1.14.1": + version: 1.14.1 + resolution: "@webassemblyjs/wast-printer@npm:1.14.1" dependencies: - "@webassemblyjs/ast": 1.11.1 + "@webassemblyjs/ast": 1.14.1 "@xtuc/long": 4.2.2 - checksum: f15ae4c2441b979a3b4fce78f3d83472fb22350c6dc3fd34bfe7c3da108e0b2360718734d961bba20e7716cb8578e964b870da55b035e209e50ec9db0378a3f7 + checksum: 517881a0554debe6945de719d100b2d8883a2d24ddf47552cdeda866341e2bb153cd824a864bc7e2a61190a4b66b18f9899907e0074e9e820d2912ac0789ea60 languageName: node linkType: hard @@ -4925,7 +5199,7 @@ __metadata: languageName: node linkType: hard -"abab@npm:^2.0.3, abab@npm:^2.0.5, abab@npm:^2.0.6": +"abab@npm:^2.0.6": version: 2.0.6 resolution: "abab@npm:2.0.6" checksum: 6ffc1af4ff315066c62600123990d87551ceb0aafa01e6539da77b0f5987ac7019466780bf480f1787576d4385e3690c81ccc37cfda12819bf510b8ab47e5a3e @@ -4946,16 +5220,6 @@ __metadata: languageName: node linkType: hard -"acorn-globals@npm:^6.0.0": - version: 6.0.0 - resolution: "acorn-globals@npm:6.0.0" - dependencies: - acorn: ^7.1.1 - acorn-walk: ^7.1.1 - checksum: 72d95e5b5e585f9acd019b993ab8bbba68bb3cbc9d9b5c1ebb3c2f1fe5981f11deababfb4949f48e6262f9c57878837f5958c0cca396f81023814680ca878042 - languageName: node - linkType: hard - "acorn-globals@npm:^7.0.0": version: 7.0.1 resolution: "acorn-globals@npm:7.0.1" @@ -4966,15 +5230,6 @@ __metadata: languageName: node linkType: hard -"acorn-import-assertions@npm:^1.7.6": - version: 1.8.0 - resolution: "acorn-import-assertions@npm:1.8.0" - peerDependencies: - acorn: ^8 - checksum: 5c4cf7c850102ba7ae0eeae0deb40fb3158c8ca5ff15c0bca43b5c47e307a1de3d8ef761788f881343680ea374631ae9e9615ba8876fee5268dbe068c98bcba6 - languageName: node - linkType: hard - "acorn-jsx@npm:^5.3.2": version: 5.3.2 resolution: "acorn-jsx@npm:5.3.2" @@ -4984,13 +5239,6 @@ __metadata: languageName: node linkType: hard -"acorn-walk@npm:^7.1.1": - version: 7.2.0 - resolution: "acorn-walk@npm:7.2.0" - checksum: 9252158a79b9d92f1bc0dd6acc0fcfb87a67339e84bcc301bb33d6078936d27e35d606b4d35626d2962cd43c256d6f27717e70cbe15c04fff999ab0b2260b21f - languageName: node - linkType: hard - "acorn-walk@npm:^8.0.2": version: 8.2.0 resolution: "acorn-walk@npm:8.2.0" @@ -4998,16 +5246,7 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^7.1.1": - version: 7.4.1 - resolution: "acorn@npm:7.4.1" - bin: - acorn: bin/acorn - checksum: 1860f23c2107c910c6177b7b7be71be350db9e1080d814493fae143ae37605189504152d1ba8743ba3178d0b37269ce1ffc42b101547fdc1827078f82671e407 - languageName: node - linkType: hard - -"acorn@npm:^8.1.0, acorn@npm:^8.2.4, acorn@npm:^8.5.0, acorn@npm:^8.7.1, acorn@npm:^8.8.1, acorn@npm:^8.9.0": +"acorn@npm:^8.1.0, acorn@npm:^8.8.1, acorn@npm:^8.9.0": version: 8.10.0 resolution: "acorn@npm:8.10.0" bin: @@ -5016,7 +5255,7 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^8.14.0": +"acorn@npm:^8.12.1, acorn@npm:^8.14.0, acorn@npm:^8.8.2": version: 8.14.0 resolution: "acorn@npm:8.14.0" bin: @@ -5050,6 +5289,13 @@ __metadata: languageName: node linkType: hard +"agent-base@npm:^7.1.2": + version: 7.1.3 + resolution: "agent-base@npm:7.1.3" + checksum: 87bb7ee54f5ecf0ccbfcba0b07473885c43ecd76cb29a8db17d6137a19d9f9cd443a2a7c5fd8a3f24d58ad8145f9eb49116344a66b107e1aeab82cf2383f4753 + languageName: node + linkType: hard + "agentkeepalive@npm:^4.2.1": version: 4.2.1 resolution: "agentkeepalive@npm:4.2.1" @@ -5071,6 +5317,20 @@ __metadata: languageName: node linkType: hard +"ajv-formats@npm:^2.1.1": + version: 2.1.1 + resolution: "ajv-formats@npm:2.1.1" + dependencies: + ajv: ^8.0.0 + peerDependencies: + ajv: ^8.0.0 + peerDependenciesMeta: + ajv: + optional: true + checksum: 4a287d937f1ebaad4683249a4c40c0fa3beed30d9ddc0adba04859026a622da0d317851316ea64b3680dc60f5c3c708105ddd5d5db8fe595d9d0207fd19f90b7 + languageName: node + linkType: hard + "ajv-keywords@npm:^3.5.2": version: 3.5.2 resolution: "ajv-keywords@npm:3.5.2" @@ -5080,6 +5340,17 @@ __metadata: languageName: node linkType: hard +"ajv-keywords@npm:^5.1.0": + version: 5.1.0 + resolution: "ajv-keywords@npm:5.1.0" + dependencies: + fast-deep-equal: ^3.1.3 + peerDependencies: + ajv: ^8.8.2 + checksum: c35193940b853119242c6757787f09ecf89a2c19bcd36d03ed1a615e710d19d450cb448bfda407b939aba54b002368c8bff30529cc50a0536a8e10bcce300421 + languageName: node + linkType: hard + "ajv@npm:^6.12.3, ajv@npm:^6.12.4, ajv@npm:^6.12.5": version: 6.12.6 resolution: "ajv@npm:6.12.6" @@ -5092,6 +5363,18 @@ __metadata: languageName: node linkType: hard +"ajv@npm:^8.0.0, ajv@npm:^8.9.0": + version: 8.17.1 + resolution: "ajv@npm:8.17.1" + dependencies: + fast-deep-equal: ^3.1.3 + fast-uri: ^3.0.1 + json-schema-traverse: ^1.0.0 + require-from-string: ^2.0.2 + checksum: 1797bf242cfffbaf3b870d13565bd1716b73f214bb7ada9a497063aada210200da36e3ed40237285f3255acc4feeae91b1fb183625331bad27da95973f7253d9 + languageName: node + linkType: hard + "ansi-colors@npm:^4.1.1": version: 4.1.3 resolution: "ansi-colors@npm:4.1.3" @@ -5221,22 +5504,19 @@ __metadata: languageName: node linkType: hard -"aria-query@npm:5.1.3": - version: 5.1.3 - resolution: "aria-query@npm:5.1.3" +"aria-query@npm:5.3.0": + version: 5.3.0 + resolution: "aria-query@npm:5.3.0" dependencies: - deep-equal: ^2.0.5 - checksum: 929ff95f02857b650fb4cbcd2f41072eee2f46159a6605ea03bf63aa572e35ffdff43d69e815ddc462e16e07de8faba3978afc2813650b4448ee18c9895d982b + dequal: ^2.0.3 + checksum: 305bd73c76756117b59aba121d08f413c7ff5e80fa1b98e217a3443fcddb9a232ee790e24e432b59ae7625aebcf4c47cb01c2cac872994f0b426f5bdfcd96ba9 languageName: node linkType: hard -"array-buffer-byte-length@npm:^1.0.0": - version: 1.0.0 - resolution: "array-buffer-byte-length@npm:1.0.0" - dependencies: - call-bind: ^1.0.2 - is-array-buffer: ^3.0.1 - checksum: 044e101ce150f4804ad19c51d6c4d4cfa505c5b2577bd179256e4aa3f3f6a0a5e9874c78cd428ee566ac574c8a04d7ce21af9fe52e844abfdccb82b33035a7c3 +"aria-query@npm:^5.0.0": + version: 5.3.2 + resolution: "aria-query@npm:5.3.2" + checksum: d971175c85c10df0f6d14adfe6f1292409196114ab3c62f238e208b53103686f46cc70695a4f775b73bc65f6a09b6a092fd963c4f3a5a7d690c8fc5094925717 languageName: node linkType: hard @@ -5433,6 +5713,13 @@ __metadata: languageName: node linkType: hard +"assertion-error@npm:^2.0.1": + version: 2.0.1 + resolution: "assertion-error@npm:2.0.1" + checksum: a0789dd882211b87116e81e2648ccb7f60340b34f19877dd020b39ebb4714e475eb943e14ba3e22201c221ef6645b7bfe10297e76b6ac95b48a9898c1211ce66 + languageName: node + linkType: hard + "astral-regex@npm:^2.0.0": version: 2.0.0 resolution: "astral-regex@npm:2.0.0" @@ -5706,14 +5993,7 @@ __metadata: languageName: node linkType: hard -"browser-process-hrtime@npm:^1.0.0": - version: 1.0.0 - resolution: "browser-process-hrtime@npm:1.0.0" - checksum: e30f868cdb770b1201afb714ad1575dd86366b6e861900884665fb627109b3cc757c40067d3bfee1ff2a29c835257ea30725a8018a9afd02ac1c24b408b1e45f - languageName: node - linkType: hard - -"browserslist@npm:^4.14.5, browserslist@npm:^4.21.4, browserslist@npm:^4.24.0": +"browserslist@npm:^4.21.4, browserslist@npm:^4.24.0": version: 4.24.0 resolution: "browserslist@npm:4.24.0" dependencies: @@ -5790,6 +6070,13 @@ __metadata: languageName: node linkType: hard +"cac@npm:^6.7.14": + version: 6.7.14 + resolution: "cac@npm:6.7.14" + checksum: 45a2496a9443abbe7f52a49b22fbe51b1905eff46e03fd5e6c98e3f85077be3f8949685a1849b1a9cd2bc3e5567dfebcf64f01ce01847baf918f1b37c839791a + languageName: node + linkType: hard + "cacache@npm:^16.1.0": version: 16.1.3 resolution: "cacache@npm:16.1.3" @@ -5924,6 +6211,19 @@ __metadata: languageName: node linkType: hard +"chai@npm:^5.1.2": + version: 5.1.2 + resolution: "chai@npm:5.1.2" + dependencies: + assertion-error: ^2.0.1 + check-error: ^2.1.1 + deep-eql: ^5.0.1 + loupe: ^3.1.0 + pathval: ^2.0.0 + checksum: f2341967ab5632612548d372c27b46219adad3af35021d8cba2ae3c262f588de2c60cb3f004e6ad40e363a9cad6d20d0de51f00e7e9ac31cce17fb05d4efa316 + languageName: node + linkType: hard + "chalk@npm:4.1.0": version: 4.1.0 resolution: "chalk@npm:4.1.0" @@ -5945,6 +6245,16 @@ __metadata: languageName: node linkType: hard +"chalk@npm:^3.0.0": + version: 3.0.0 + resolution: "chalk@npm:3.0.0" + dependencies: + ansi-styles: ^4.1.0 + supports-color: ^7.1.0 + checksum: 8e3ddf3981c4da405ddbd7d9c8d91944ddf6e33d6837756979f7840a29272a69a5189ecae0ff84006750d6d1e92368d413335eab4db5476db6e6703a1d1e0505 + languageName: node + linkType: hard + "chalk@npm:^4.0.0, chalk@npm:^4.0.2, chalk@npm:^4.1.0, chalk@npm:^4.1.1, chalk@npm:^4.1.2": version: 4.1.2 resolution: "chalk@npm:4.1.2" @@ -5976,6 +6286,13 @@ __metadata: languageName: node linkType: hard +"check-error@npm:^2.1.1": + version: 2.1.1 + resolution: "check-error@npm:2.1.1" + checksum: d785ed17b1d4a4796b6e75c765a9a290098cf52ff9728ce0756e8ffd4293d2e419dd30c67200aee34202463b474306913f2fcfaf1890641026d9fc6966fea27a + languageName: node + linkType: hard + "chokidar@npm:3.5.1": version: 3.5.1 resolution: "chokidar@npm:3.5.1" @@ -6617,6 +6934,13 @@ __metadata: languageName: node linkType: hard +"css.escape@npm:^1.5.1": + version: 1.5.1 + resolution: "css.escape@npm:1.5.1" + checksum: f6d38088d870a961794a2580b2b2af1027731bb43261cfdce14f19238a88664b351cc8978abc20f06cc6bbde725699dec8deb6fe9816b139fc3f2af28719e774 + languageName: node + linkType: hard + "cssesc@npm:^3.0.0": version: 3.0.0 resolution: "cssesc@npm:3.0.0" @@ -6626,13 +6950,6 @@ __metadata: languageName: node linkType: hard -"cssom@npm:^0.4.4": - version: 0.4.4 - resolution: "cssom@npm:0.4.4" - checksum: e3bc1076e7ee4213d4fef05e7ae03bfa83dc05f32611d8edc341f4ecc3d9647b89c8245474c7dd2cdcdb797a27c462e99da7ad00a34399694559f763478ff53f - languageName: node - linkType: hard - "cssom@npm:^0.5.0": version: 0.5.0 resolution: "cssom@npm:0.5.0" @@ -6656,6 +6973,15 @@ __metadata: languageName: node linkType: hard +"cssstyle@npm:^4.1.0": + version: 4.1.0 + resolution: "cssstyle@npm:4.1.0" + dependencies: + rrweb-cssom: ^0.7.1 + checksum: a8f5746430c42347e76dc830548f3a296882e42a90af188ae44e4c1a4131aec246b0b6c8562e3e6e4fa0ff14aeee5cd14a0e2fe5a7105dcf39f98eb70d16b634 + languageName: node + linkType: hard + "csstype@npm:^3.0.2": version: 3.1.1 resolution: "csstype@npm:3.1.1" @@ -6679,17 +7005,6 @@ __metadata: languageName: node linkType: hard -"data-urls@npm:^2.0.0": - version: 2.0.0 - resolution: "data-urls@npm:2.0.0" - dependencies: - abab: ^2.0.3 - whatwg-mimetype: ^2.3.0 - whatwg-url: ^8.0.0 - checksum: 97caf828aac25e25e04ba6869db0f99c75e6859bb5b424ada28d3e7841941ebf08ddff3c1b1bb4585986bd507a5d54c2a716853ea6cb98af877400e637393e71 - languageName: node - linkType: hard - "data-urls@npm:^3.0.2": version: 3.0.2 resolution: "data-urls@npm:3.0.2" @@ -6701,6 +7016,16 @@ __metadata: languageName: node linkType: hard +"data-urls@npm:^5.0.0": + version: 5.0.0 + resolution: "data-urls@npm:5.0.0" + dependencies: + whatwg-mimetype: ^4.0.0 + whatwg-url: ^14.0.0 + checksum: 5c40568c31b02641a70204ff233bc4e42d33717485d074244a98661e5f2a1e80e38fe05a5755dfaf2ee549f2ab509d6a3af2a85f4b2ad2c984e5d176695eaf46 + languageName: node + linkType: hard + "data-view-buffer@npm:^1.0.2": version: 1.0.2 resolution: "data-view-buffer@npm:1.0.2" @@ -6769,7 +7094,7 @@ __metadata: languageName: node linkType: hard -"debug@npm:^4.3.2": +"debug@npm:^4.3.2, debug@npm:^4.3.7": version: 4.4.0 resolution: "debug@npm:4.4.0" dependencies: @@ -6798,7 +7123,7 @@ __metadata: languageName: node linkType: hard -"decimal.js@npm:^10.2.1, decimal.js@npm:^10.4.2": +"decimal.js@npm:^10.4.2, decimal.js@npm:^10.4.3": version: 10.4.3 resolution: "decimal.js@npm:10.4.3" checksum: 796404dcfa9d1dbfdc48870229d57f788b48c21c603c3f6554a1c17c10195fc1024de338b0cf9e1efe0c7c167eeb18f04548979bcc5fdfabebb7cc0ae3287bae @@ -6817,29 +7142,10 @@ __metadata: languageName: node linkType: hard -"deep-equal@npm:^2.0.5": - version: 2.2.1 - resolution: "deep-equal@npm:2.2.1" - dependencies: - array-buffer-byte-length: ^1.0.0 - call-bind: ^1.0.2 - es-get-iterator: ^1.1.3 - get-intrinsic: ^1.2.0 - is-arguments: ^1.1.1 - is-array-buffer: ^3.0.2 - is-date-object: ^1.0.5 - is-regex: ^1.1.4 - is-shared-array-buffer: ^1.0.2 - isarray: ^2.0.5 - object-is: ^1.1.5 - object-keys: ^1.1.1 - object.assign: ^4.1.4 - regexp.prototype.flags: ^1.5.0 - side-channel: ^1.0.4 - which-boxed-primitive: ^1.0.2 - which-collection: ^1.0.1 - which-typed-array: ^1.1.9 - checksum: 561f0e001a07b2f1b80ff914d0b3d76964bbfc102f34c2128bc8039c0050e63b1a504a8911910e011d8cd1cd4b600a9686c049e327f4ef94420008efc42d25f4 +"deep-eql@npm:^5.0.1": + version: 5.0.2 + resolution: "deep-eql@npm:5.0.2" + checksum: 6aaaadb4c19cbce42e26b2bbe5bd92875f599d2602635dc97f0294bae48da79e89470aedee05f449e0ca8c65e9fd7e7872624d1933a1db02713d99c2ca8d1f24 languageName: node linkType: hard @@ -6940,6 +7246,13 @@ __metadata: languageName: node linkType: hard +"dequal@npm:^2.0.3": + version: 2.0.3 + resolution: "dequal@npm:2.0.3" + checksum: 8679b850e1a3d0ebbc46ee780d5df7b478c23f335887464023a631d1b9af051ad4a6595a44220f9ff8ff95a8ddccf019b5ad778a976fd7bbf77383d36f412f90 + languageName: node + linkType: hard + "detect-indent@npm:^5.0.0": version: 5.0.0 resolution: "detect-indent@npm:5.0.0" @@ -6986,12 +7299,10 @@ __metadata: languageName: node linkType: hard -"domexception@npm:^2.0.1": - version: 2.0.1 - resolution: "domexception@npm:2.0.1" - dependencies: - webidl-conversions: ^5.0.0 - checksum: d638e9cb05c52999f1b2eb87c374b03311ea5b1d69c2f875bc92da73e17db60c12142b45c950228642ff7f845c536b65305483350d080df59003a653da80b691 +"dom-accessibility-api@npm:^0.6.3": + version: 0.6.3 + resolution: "dom-accessibility-api@npm:0.6.3" + checksum: c325b5144bb406df23f4affecffc117dbaec9af03daad9ee6b510c5be647b14d28ef0a4ea5ca06d696d8ab40bb777e5fed98b985976fdef9d8790178fa1d573f languageName: node linkType: hard @@ -7121,13 +7432,13 @@ __metadata: languageName: node linkType: hard -"enhanced-resolve@npm:^5.10.0": - version: 5.12.0 - resolution: "enhanced-resolve@npm:5.12.0" +"enhanced-resolve@npm:^5.17.1": + version: 5.18.0 + resolution: "enhanced-resolve@npm:5.18.0" dependencies: graceful-fs: ^4.2.4 tapable: ^2.2.0 - checksum: bf3f787facaf4ce3439bef59d148646344e372bef5557f0d37ea8aa02c51f50a925cd1f07b8d338f18992c29f544ec235a8c64bcdb56030196c48832a5494174 + checksum: 77c6b11f0d19f21f52214e5a2c0dfb7070decb4045572f44be4cacf92b4be5e2c1d9a4c044a226d1003ca9daf9b71d498d256e7520ff5060f23d0284f814d392 languageName: node linkType: hard @@ -7147,6 +7458,13 @@ __metadata: languageName: node linkType: hard +"entities@npm:^4.5.0": + version: 4.5.0 + resolution: "entities@npm:4.5.0" + checksum: 853f8ebd5b425d350bffa97dd6958143179a5938352ccae092c62d1267c4e392a039be1bae7d51b6e4ffad25f51f9617531fedf5237f15df302ccfb452cbf2d7 + languageName: node + linkType: hard + "env-paths@npm:^2.2.0, env-paths@npm:^2.2.1": version: 2.2.1 resolution: "env-paths@npm:2.2.1" @@ -7300,23 +7618,6 @@ __metadata: languageName: node linkType: hard -"es-get-iterator@npm:^1.1.3": - version: 1.1.3 - resolution: "es-get-iterator@npm:1.1.3" - dependencies: - call-bind: ^1.0.2 - get-intrinsic: ^1.1.3 - has-symbols: ^1.0.3 - is-arguments: ^1.1.1 - is-map: ^2.0.2 - is-set: ^2.0.2 - is-string: ^1.0.7 - isarray: ^2.0.5 - stop-iteration-iterator: ^1.0.0 - checksum: 8fa118da42667a01a7c7529f8a8cca514feeff243feec1ce0bb73baaa3514560bd09d2b3438873cf8a5aaec5d52da248131de153b28e2638a061b6e4df13267d - languageName: node - linkType: hard - "es-iterator-helpers@npm:^1.1.0": version: 1.2.1 resolution: "es-iterator-helpers@npm:1.2.1" @@ -7341,10 +7642,10 @@ __metadata: languageName: node linkType: hard -"es-module-lexer@npm:^0.9.0": - version: 0.9.3 - resolution: "es-module-lexer@npm:0.9.3" - checksum: 84bbab23c396281db2c906c766af58b1ae2a1a2599844a504df10b9e8dc77ec800b3211fdaa133ff700f5703d791198807bba25d9667392d27a5e9feda344da8 +"es-module-lexer@npm:^1.2.1, es-module-lexer@npm:^1.5.4": + version: 1.5.4 + resolution: "es-module-lexer@npm:1.5.4" + checksum: a0cf04fb92d052647ac7d818d1913b98d3d3d0f5b9d88f0eafb993436e4c3e2c958599db68839d57f2dfa281fdf0f60e18d448eb78fc292c33c0f25635b6854f languageName: node linkType: hard @@ -7650,7 +7951,7 @@ __metadata: languageName: node linkType: hard -"esbuild@npm:^0.21.5": +"esbuild@npm:^0.21.3, esbuild@npm:^0.21.5": version: 0.21.5 resolution: "esbuild@npm:0.21.5" dependencies: @@ -8140,6 +8441,15 @@ __metadata: languageName: node linkType: hard +"estree-walker@npm:^3.0.3": + version: 3.0.3 + resolution: "estree-walker@npm:3.0.3" + dependencies: + "@types/estree": ^1.0.0 + checksum: a65728d5727b71de172c5df323385755a16c0fdab8234dc756c3854cfee343261ddfbb72a809a5660fac8c75d960bb3e21aa898c2d7e9b19bb298482ca58a3af + languageName: node + linkType: hard + "esutils@npm:^2.0.2": version: 2.0.3 resolution: "esutils@npm:2.0.3" @@ -8236,6 +8546,13 @@ __metadata: languageName: node linkType: hard +"expect-type@npm:^1.1.0": + version: 1.1.0 + resolution: "expect-type@npm:1.1.0" + checksum: 65d25ec10bca32bcf650dcfe734532acc4b7a73677c656f299a7cbed273b5c4d6a3dab11af76f452645d54a95c4ef39fc73772f2c8eb6684ba35672958d6f3b3 + languageName: node + linkType: hard + "expect@npm:^29.0.0, expect@npm:^29.7.0": version: 29.7.0 resolution: "expect@npm:29.7.0" @@ -8335,6 +8652,13 @@ __metadata: languageName: node linkType: hard +"fast-uri@npm:^3.0.1": + version: 3.0.3 + resolution: "fast-uri@npm:3.0.3" + checksum: c52e6c86465f5c240e84a4485fb001088cc743d261a4b54b0050ce4758b1648bdbe53da1328ef9620149dca1435e3de64184f226d7c0a3656cb5837b3491e149 + languageName: node + linkType: hard + "fastq@npm:^1.6.0": version: 1.15.0 resolution: "fastq@npm:1.15.0" @@ -8353,6 +8677,25 @@ __metadata: languageName: node linkType: hard +"fdir@npm:^6.4.2": + version: 6.4.2 + resolution: "fdir@npm:6.4.2" + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + checksum: 517ad31c495f1c0778238eef574a7818788efaaf2ce1969ffa18c70793e2951a9763dfa2e6720b8fcef615e602a3cbb47f9b8aea9da0b02147579ab36043f22f + languageName: node + linkType: hard + +"fflate@npm:^0.8.2": + version: 0.8.2 + resolution: "fflate@npm:0.8.2" + checksum: 29470337b85d3831826758e78f370e15cda3169c5cd4477c9b5eea2402261a74b2975bae816afabe1c15d21d98591e0d30a574f7103aa117bff60756fa3035d4 + languageName: node + linkType: hard + "figures@npm:3.2.0, figures@npm:^3.0.0": version: 3.2.0 resolution: "figures@npm:3.2.0" @@ -8446,7 +8789,7 @@ __metadata: languageName: node linkType: hard -"flatted@npm:^3.2.9": +"flatted@npm:^3.2.9, flatted@npm:^3.3.1": version: 3.3.2 resolution: "flatted@npm:3.3.2" checksum: ac3c159742e01d0e860a861164bcfd35bb567ccbebb8a0dd041e61cf3c64a435b917dd1e7ed1c380c2ebca85735fb16644485ec33665bc6aafc3b316aa1eed44 @@ -8489,17 +8832,6 @@ __metadata: languageName: node linkType: hard -"form-data@npm:^3.0.0": - version: 3.0.1 - resolution: "form-data@npm:3.0.1" - dependencies: - asynckit: ^0.4.0 - combined-stream: ^1.0.8 - mime-types: ^2.1.12 - checksum: b019e8d35c8afc14a2bd8a7a92fa4f525a4726b6d5a9740e8d2623c30e308fbb58dc8469f90415a856698933c8479b01646a9dff33c87cc4e76d72aedbbf860d - languageName: node - linkType: hard - "form-data@npm:^4.0.0": version: 4.0.0 resolution: "form-data@npm:4.0.0" @@ -9007,6 +9339,13 @@ __metadata: languageName: node linkType: hard +"globrex@npm:^0.1.2": + version: 0.1.2 + resolution: "globrex@npm:0.1.2" + checksum: adca162494a176ce9ecf4dd232f7b802956bb1966b37f60c15e49d2e7d961b66c60826366dc2649093cad5a0d69970cfa8875bd1695b5a1a2f33dcd2aa88da3c + languageName: node + linkType: hard + "gopd@npm:^1.0.1": version: 1.0.1 resolution: "gopd@npm:1.0.1" @@ -9023,7 +9362,7 @@ __metadata: languageName: node linkType: hard -"graceful-fs@npm:4.2.11, graceful-fs@npm:^4.1.11, graceful-fs@npm:^4.1.15, graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9": +"graceful-fs@npm:4.2.11, graceful-fs@npm:^4.1.11, graceful-fs@npm:^4.1.15, graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.11, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9": version: 4.2.11 resolution: "graceful-fs@npm:4.2.11" checksum: ac85f94da92d8eb6b7f5a8b20ce65e43d66761c55ce85ac96df6865308390da45a8d3f0296dd3a663de65d30ba497bd46c696cc1e248c72b13d6d567138a4fc7 @@ -9223,15 +9562,6 @@ __metadata: languageName: node linkType: hard -"html-encoding-sniffer@npm:^2.0.1": - version: 2.0.1 - resolution: "html-encoding-sniffer@npm:2.0.1" - dependencies: - whatwg-encoding: ^1.0.5 - checksum: bf30cce461015ed7e365736fcd6a3063c7bc016a91f74398ef6158886970a96333938f7c02417ab3c12aa82e3e53b40822145facccb9ddfbcdc15a879ae4d7ba - languageName: node - linkType: hard - "html-encoding-sniffer@npm:^3.0.0": version: 3.0.0 resolution: "html-encoding-sniffer@npm:3.0.0" @@ -9241,6 +9571,15 @@ __metadata: languageName: node linkType: hard +"html-encoding-sniffer@npm:^4.0.0": + version: 4.0.0 + resolution: "html-encoding-sniffer@npm:4.0.0" + dependencies: + whatwg-encoding: ^3.1.1 + checksum: 3339b71dab2723f3159a56acf541ae90a408ce2d11169f00fe7e0c4663d31d6398c8a4408b504b4eec157444e47b084df09b3cb039c816660f0dd04846b8957d + languageName: node + linkType: hard + "html-escaper@npm:^2.0.0": version: 2.0.2 resolution: "html-escaper@npm:2.0.2" @@ -9255,17 +9594,6 @@ __metadata: languageName: node linkType: hard -"http-proxy-agent@npm:^4.0.1": - version: 4.0.1 - resolution: "http-proxy-agent@npm:4.0.1" - dependencies: - "@tootallnate/once": 1 - agent-base: 6 - debug: 4 - checksum: c6a5da5a1929416b6bbdf77b1aca13888013fe7eb9d59fc292e25d18e041bb154a8dfada58e223fc7b76b9b2d155a87e92e608235201f77d34aa258707963a82 - languageName: node - linkType: hard - "http-proxy-agent@npm:^5.0.0": version: 5.0.0 resolution: "http-proxy-agent@npm:5.0.0" @@ -9277,7 +9605,7 @@ __metadata: languageName: node linkType: hard -"http-proxy-agent@npm:^7.0.0": +"http-proxy-agent@npm:^7.0.0, http-proxy-agent@npm:^7.0.2": version: 7.0.2 resolution: "http-proxy-agent@npm:7.0.2" dependencies: @@ -9318,6 +9646,16 @@ __metadata: languageName: node linkType: hard +"https-proxy-agent@npm:^7.0.5": + version: 7.0.6 + resolution: "https-proxy-agent@npm:7.0.6" + dependencies: + agent-base: ^7.1.2 + debug: 4 + checksum: b882377a120aa0544846172e5db021fa8afbf83fea2a897d397bd2ddd8095ab268c24bc462f40a15f2a8c600bf4aa05ce52927f70038d4014e68aefecfa94e8d + languageName: node + linkType: hard + "human-signals@npm:^2.1.0": version: 2.1.0 resolution: "human-signals@npm:2.1.0" @@ -9357,15 +9695,6 @@ __metadata: languageName: node linkType: hard -"iconv-lite@npm:0.4.24, iconv-lite@npm:^0.4.24": - version: 0.4.24 - resolution: "iconv-lite@npm:0.4.24" - dependencies: - safer-buffer: ">= 2.1.2 < 3" - checksum: bd9f120f5a5b306f0bc0b9ae1edeb1577161503f5f8252a20f1a9e56ef8775c9959fd01c55f2d3a39d9a8abaf3e30c1abeb1895f367dcbbe0a8fd1c9ca01c4f6 - languageName: node - linkType: hard - "iconv-lite@npm:0.6.3, iconv-lite@npm:^0.6.2": version: 0.6.3 resolution: "iconv-lite@npm:0.6.3" @@ -9375,6 +9704,15 @@ __metadata: languageName: node linkType: hard +"iconv-lite@npm:^0.4.24": + version: 0.4.24 + resolution: "iconv-lite@npm:0.4.24" + dependencies: + safer-buffer: ">= 2.1.2 < 3" + checksum: bd9f120f5a5b306f0bc0b9ae1edeb1577161503f5f8252a20f1a9e56ef8775c9959fd01c55f2d3a39d9a8abaf3e30c1abeb1895f367dcbbe0a8fd1c9ca01c4f6 + languageName: node + linkType: hard + "ieee754@npm:^1.1.13": version: 1.2.1 resolution: "ieee754@npm:1.2.1" @@ -9577,17 +9915,7 @@ __metadata: languageName: node linkType: hard -"is-arguments@npm:^1.1.1": - version: 1.1.1 - resolution: "is-arguments@npm:1.1.1" - dependencies: - call-bind: ^1.0.2 - has-tostringtag: ^1.0.0 - checksum: 7f02700ec2171b691ef3e4d0e3e6c0ba408e8434368504bb593d0d7c891c0dbfda6d19d30808b904a6cb1929bca648c061ba438c39f296c2a8ca083229c49f27 - languageName: node - linkType: hard - -"is-array-buffer@npm:^3.0.1, is-array-buffer@npm:^3.0.2": +"is-array-buffer@npm:^3.0.1": version: 3.0.2 resolution: "is-array-buffer@npm:3.0.2" dependencies: @@ -9834,13 +10162,6 @@ __metadata: languageName: node linkType: hard -"is-map@npm:^2.0.1, is-map@npm:^2.0.2": - version: 2.0.2 - resolution: "is-map@npm:2.0.2" - checksum: ace3d0ecd667bbdefdb1852de601268f67f2db725624b1958f279316e13fecb8fa7df91fd60f690d7417b4ec180712f5a7ee967008e27c65cfd475cc84337728 - languageName: node - linkType: hard - "is-map@npm:^2.0.3": version: 2.0.3 resolution: "is-map@npm:2.0.3" @@ -9956,13 +10277,6 @@ __metadata: languageName: node linkType: hard -"is-set@npm:^2.0.1, is-set@npm:^2.0.2": - version: 2.0.2 - resolution: "is-set@npm:2.0.2" - checksum: b64343faf45e9387b97a6fd32be632ee7b269bd8183701f3b3f5b71a7cf00d04450ed8669d0bd08753e08b968beda96fca73a10fd0ff56a32603f64deba55a57 - languageName: node - linkType: hard - "is-set@npm:^2.0.3": version: 2.0.3 resolution: "is-set@npm:2.0.3" @@ -10102,13 +10416,6 @@ __metadata: languageName: node linkType: hard -"is-weakmap@npm:^2.0.1": - version: 2.0.1 - resolution: "is-weakmap@npm:2.0.1" - checksum: 1222bb7e90c32bdb949226e66d26cb7bce12e1e28e3e1b40bfa6b390ba3e08192a8664a703dff2a00a84825f4e022f9cd58c4599ff9981ab72b1d69479f4f7f6 - languageName: node - linkType: hard - "is-weakmap@npm:^2.0.2": version: 2.0.2 resolution: "is-weakmap@npm:2.0.2" @@ -10134,16 +10441,6 @@ __metadata: languageName: node linkType: hard -"is-weakset@npm:^2.0.1": - version: 2.0.2 - resolution: "is-weakset@npm:2.0.2" - dependencies: - call-bind: ^1.0.2 - get-intrinsic: ^1.1.1 - checksum: 5d8698d1fa599a0635d7ca85be9c26d547b317ed8fd83fc75f03efbe75d50001b5eececb1e9971de85fcde84f69ae6f8346bc92d20d55d46201d328e4c74a367 - languageName: node - linkType: hard - "is-weakset@npm:^2.0.3": version: 2.0.4 resolution: "is-weakset@npm:2.0.4" @@ -10838,6 +11135,7 @@ __metadata: "@types/mock-fs": ^4.13.1 "@types/node": 20.14.8 "@types/ramda": ^0.27.23 + "@vitest/ui": ^2.1.8 babel-jest: ^29.7.0 chalk: ^4.1.0 cross-env: ^7.0.2 @@ -10865,6 +11163,8 @@ __metadata: ts-jest: ^29.2.4 typescript: ^4.9.5 typescript-eslint: ^8.18.1 + vite-plugin-commonjs: ^0.10.4 + vitest: ^2.1.8 languageName: unknown linkType: soft @@ -10919,46 +11219,6 @@ __metadata: languageName: node linkType: hard -"jsdom@npm:^16.4.0": - version: 16.7.0 - resolution: "jsdom@npm:16.7.0" - dependencies: - abab: ^2.0.5 - acorn: ^8.2.4 - acorn-globals: ^6.0.0 - cssom: ^0.4.4 - cssstyle: ^2.3.0 - data-urls: ^2.0.0 - decimal.js: ^10.2.1 - domexception: ^2.0.1 - escodegen: ^2.0.0 - form-data: ^3.0.0 - html-encoding-sniffer: ^2.0.1 - http-proxy-agent: ^4.0.1 - https-proxy-agent: ^5.0.0 - is-potential-custom-element-name: ^1.0.1 - nwsapi: ^2.2.0 - parse5: 6.0.1 - saxes: ^5.0.1 - symbol-tree: ^3.2.4 - tough-cookie: ^4.0.0 - w3c-hr-time: ^1.0.2 - w3c-xmlserializer: ^2.0.0 - webidl-conversions: ^6.1.0 - whatwg-encoding: ^1.0.5 - whatwg-mimetype: ^2.3.0 - whatwg-url: ^8.5.0 - ws: ^7.4.6 - xml-name-validator: ^3.0.0 - peerDependencies: - canvas: ^2.5.0 - peerDependenciesMeta: - canvas: - optional: true - checksum: 454b83371857000763ed31130a049acd1b113e3b927e6dcd75c67ddc30cdd242d7ebcac5c2294b7a1a6428155cb1398709c573b3c6d809218692ea68edd93370 - languageName: node - linkType: hard - "jsdom@npm:^20.0.0": version: 20.0.3 resolution: "jsdom@npm:20.0.3" @@ -10998,6 +11258,40 @@ __metadata: languageName: node linkType: hard +"jsdom@npm:^25.0.1": + version: 25.0.1 + resolution: "jsdom@npm:25.0.1" + dependencies: + cssstyle: ^4.1.0 + data-urls: ^5.0.0 + decimal.js: ^10.4.3 + form-data: ^4.0.0 + html-encoding-sniffer: ^4.0.0 + http-proxy-agent: ^7.0.2 + https-proxy-agent: ^7.0.5 + is-potential-custom-element-name: ^1.0.1 + nwsapi: ^2.2.12 + parse5: ^7.1.2 + rrweb-cssom: ^0.7.1 + saxes: ^6.0.0 + symbol-tree: ^3.2.4 + tough-cookie: ^5.0.0 + w3c-xmlserializer: ^5.0.0 + webidl-conversions: ^7.0.0 + whatwg-encoding: ^3.1.1 + whatwg-mimetype: ^4.0.0 + whatwg-url: ^14.0.0 + ws: ^8.18.0 + xml-name-validator: ^5.0.0 + peerDependencies: + canvas: ^2.11.2 + peerDependenciesMeta: + canvas: + optional: true + checksum: b637d28445d570014195b3c77d06e54ef69d1f807eaf61388cb470e4d9227244e7fe2e0c32b6df03ac4fe35f746d7c721672d9136ecebb49d2e61a04ab9628e0 + languageName: node + linkType: hard + "jsesc@npm:^3.0.2": version: 3.0.2 resolution: "jsesc@npm:3.0.2" @@ -11051,6 +11345,13 @@ __metadata: languageName: node linkType: hard +"json-schema-traverse@npm:^1.0.0": + version: 1.0.0 + resolution: "json-schema-traverse@npm:1.0.0" + checksum: 02f2f466cdb0362558b2f1fd5e15cce82ef55d60cd7f8fa828cf35ba74330f8d767fcae5c5c2adb7851fa811766c694b9405810879bc4e1ddd78a7c0e03658ad + languageName: node + linkType: hard + "json-schema@npm:0.4.0": version: 0.4.0 resolution: "json-schema@npm:0.4.0" @@ -11505,7 +11806,7 @@ __metadata: languageName: node linkType: hard -"lodash@npm:^4.17.19, lodash@npm:^4.17.21, lodash@npm:^4.7.0": +"lodash@npm:^4.17.19, lodash@npm:^4.17.21": version: 4.17.21 resolution: "lodash@npm:4.17.21" checksum: eb835a2e51d381e561e508ce932ea50a8e5a68f4ebdd771ea240d3048244a8d13658acbd502cd4829768c56f2e16bdd4340b9ea141297d472517b83868e677f7 @@ -11545,6 +11846,13 @@ __metadata: languageName: node linkType: hard +"loupe@npm:^3.1.0, loupe@npm:^3.1.2": + version: 3.1.2 + resolution: "loupe@npm:3.1.2" + checksum: 4a75bbe8877a1ced3603e08b1095cd6f4c987c50fe63719fdc3009029560f91e07a915e7f6eff1322bb62bfb2a2beeef06b13ccb3c12f81bda9f3674434dcab9 + languageName: node + linkType: hard + "lru-cache@npm:^10.0.1, lru-cache@npm:^10.2.0, lru-cache@npm:^10.2.2": version: 10.4.3 resolution: "lru-cache@npm:10.4.3" @@ -11611,6 +11919,15 @@ __metadata: languageName: node linkType: hard +"magic-string@npm:^0.30.11, magic-string@npm:^0.30.12": + version: 0.30.17 + resolution: "magic-string@npm:0.30.17" + dependencies: + "@jridgewell/sourcemap-codec": ^1.5.0 + checksum: f4b4ed17c5ada64f77fc98491847302ebad64894a905c417c943840c0384662118c9b37f9f68bb86add159fa4749ff6f118c4627d69a470121b46731f8debc6d + languageName: node + linkType: hard + "magic-string@npm:^0.30.3, magic-string@npm:^0.30.4": version: 0.30.5 resolution: "magic-string@npm:0.30.5" @@ -12125,6 +12442,13 @@ __metadata: languageName: node linkType: hard +"mrmime@npm:^2.0.0": + version: 2.0.0 + resolution: "mrmime@npm:2.0.0" + checksum: f6fe11ec667c3d96f1ce5fd41184ed491d5f0a5f4045e82446a471ccda5f84c7f7610dff61d378b73d964f73a320bd7f89788f9e6b9403e32cc4be28ba99f569 + languageName: node + linkType: hard + "ms@npm:2.1.2": version: 2.1.2 resolution: "ms@npm:2.1.2" @@ -12567,7 +12891,14 @@ __metadata: languageName: node linkType: hard -"nwsapi@npm:^2.2.0, nwsapi@npm:^2.2.2": +"nwsapi@npm:^2.2.12": + version: 2.2.16 + resolution: "nwsapi@npm:2.2.16" + checksum: 467b36a74b7b8647d53fd61d05ca7d6c73a4a5d1b94ea84f770c03150b00ef46d38076cf8e708936246ae450c42a1f21e28e153023719784dc4d1a19b1737d47 + languageName: node + linkType: hard + +"nwsapi@npm:^2.2.2": version: 2.2.2 resolution: "nwsapi@npm:2.2.2" checksum: 43769106292bc95f776756ca2f3513dab7b4d506a97c67baec32406447841a35f65f29c1f95ab5d42785210fd41668beed33ca16fa058780be43b101ad73e205 @@ -12684,16 +13015,6 @@ __metadata: languageName: node linkType: hard -"object-is@npm:^1.1.5": - version: 1.1.5 - resolution: "object-is@npm:1.1.5" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.1.3 - checksum: 989b18c4cba258a6b74dc1d74a41805c1a1425bce29f6cabb50dcb1a6a651ea9104a1b07046739a49a5bb1bc49727bcb00efd5c55f932f6ea04ec8927a7901fe - languageName: node - linkType: hard - "object-keys@npm:^1.1.1": version: 1.1.1 resolution: "object-keys@npm:1.1.1" @@ -13182,13 +13503,6 @@ __metadata: languageName: node linkType: hard -"parse5@npm:6.0.1": - version: 6.0.1 - resolution: "parse5@npm:6.0.1" - checksum: 7d569a176c5460897f7c8f3377eff640d54132b9be51ae8a8fa4979af940830b2b0c296ce75e5bd8f4041520aadde13170dbdec44889975f906098ea0002f4bd - languageName: node - linkType: hard - "parse5@npm:^7.0.0, parse5@npm:^7.1.1": version: 7.1.2 resolution: "parse5@npm:7.1.2" @@ -13198,6 +13512,15 @@ __metadata: languageName: node linkType: hard +"parse5@npm:^7.1.2": + version: 7.2.1 + resolution: "parse5@npm:7.2.1" + dependencies: + entities: ^4.5.0 + checksum: 11253cf8aa2e7fc41c004c64cba6f2c255f809663365db65bd7ad0e8cf7b89e436a563c20059346371cc543a6c1b567032088883ca6a2cbc88276c666b68236d + languageName: node + linkType: hard + "path-exists@npm:^3.0.0": version: 3.0.0 resolution: "path-exists@npm:3.0.0" @@ -13283,6 +13606,20 @@ __metadata: languageName: node linkType: hard +"pathe@npm:^1.1.2": + version: 1.1.2 + resolution: "pathe@npm:1.1.2" + checksum: ec5f778d9790e7b9ffc3e4c1df39a5bb1ce94657a4e3ad830c1276491ca9d79f189f47609884671db173400256b005f4955f7952f52a2aeb5834ad5fb4faf134 + languageName: node + linkType: hard + +"pathval@npm:^2.0.0": + version: 2.0.0 + resolution: "pathval@npm:2.0.0" + checksum: 682b6a6289de7990909effef7dae9aa7bb6218c0426727bccf66a35b34e7bfbc65615270c5e44e3c9557a5cb44b1b9ef47fc3cb18bce6ad3ba92bcd28467ed7d + languageName: node + linkType: hard + "performance-now@npm:^2.1.0": version: 2.1.0 resolution: "performance-now@npm:2.1.0" @@ -13304,6 +13641,13 @@ __metadata: languageName: node linkType: hard +"picomatch@npm:^4.0.2": + version: 4.0.2 + resolution: "picomatch@npm:4.0.2" + checksum: a7a5188c954f82c6585720e9143297ccd0e35ad8072231608086ca950bee672d51b0ef676254af0788205e59bd4e4deb4e7708769226bed725bf13370a7d1464 + languageName: node + linkType: hard + "pidtree@npm:^0.6.0": version: 0.6.0 resolution: "pidtree@npm:0.6.0" @@ -13417,7 +13761,7 @@ __metadata: languageName: node linkType: hard -"postcss@npm:^8.1.10, postcss@npm:^8.4.49": +"postcss@npm:^8.1.10, postcss@npm:^8.4.43, postcss@npm:^8.4.49": version: 8.4.49 resolution: "postcss@npm:8.4.49" dependencies: @@ -13608,6 +13952,13 @@ __metadata: languageName: node linkType: hard +"punycode@npm:^2.3.1": + version: 2.3.1 + resolution: "punycode@npm:2.3.1" + checksum: bb0a0ceedca4c3c57a9b981b90601579058903c62be23c5e8e843d2c2d4148a3ecf029d5133486fb0e1822b098ba8bba09e89d6b21742d02fa26bda6441a6fb2 + languageName: node + linkType: hard + "pure-rand@npm:^6.0.0": version: 6.1.0 resolution: "pure-rand@npm:6.1.0" @@ -13880,7 +14231,7 @@ __metadata: languageName: node linkType: hard -"regexp.prototype.flags@npm:^1.4.3, regexp.prototype.flags@npm:^1.5.0": +"regexp.prototype.flags@npm:^1.4.3": version: 1.5.0 resolution: "regexp.prototype.flags@npm:1.5.0" dependencies: @@ -13970,6 +14321,13 @@ __metadata: languageName: node linkType: hard +"require-from-string@npm:^2.0.2": + version: 2.0.2 + resolution: "require-from-string@npm:2.0.2" + checksum: a03ef6895445f33a4015300c426699bc66b2b044ba7b670aa238610381b56d3f07c686251740d575e22f4c87531ba662d06937508f0f3c0f1ddc04db3130560b + languageName: node + linkType: hard + "requires-port@npm:^1.0.0": version: 1.0.0 resolution: "requires-port@npm:1.0.0" @@ -14213,6 +14571,78 @@ __metadata: languageName: node linkType: hard +"rollup@npm:^4.20.0": + version: 4.29.1 + resolution: "rollup@npm:4.29.1" + dependencies: + "@rollup/rollup-android-arm-eabi": 4.29.1 + "@rollup/rollup-android-arm64": 4.29.1 + "@rollup/rollup-darwin-arm64": 4.29.1 + "@rollup/rollup-darwin-x64": 4.29.1 + "@rollup/rollup-freebsd-arm64": 4.29.1 + "@rollup/rollup-freebsd-x64": 4.29.1 + "@rollup/rollup-linux-arm-gnueabihf": 4.29.1 + "@rollup/rollup-linux-arm-musleabihf": 4.29.1 + "@rollup/rollup-linux-arm64-gnu": 4.29.1 + "@rollup/rollup-linux-arm64-musl": 4.29.1 + "@rollup/rollup-linux-loongarch64-gnu": 4.29.1 + "@rollup/rollup-linux-powerpc64le-gnu": 4.29.1 + "@rollup/rollup-linux-riscv64-gnu": 4.29.1 + "@rollup/rollup-linux-s390x-gnu": 4.29.1 + "@rollup/rollup-linux-x64-gnu": 4.29.1 + "@rollup/rollup-linux-x64-musl": 4.29.1 + "@rollup/rollup-win32-arm64-msvc": 4.29.1 + "@rollup/rollup-win32-ia32-msvc": 4.29.1 + "@rollup/rollup-win32-x64-msvc": 4.29.1 + "@types/estree": 1.0.6 + fsevents: ~2.3.2 + dependenciesMeta: + "@rollup/rollup-android-arm-eabi": + optional: true + "@rollup/rollup-android-arm64": + optional: true + "@rollup/rollup-darwin-arm64": + optional: true + "@rollup/rollup-darwin-x64": + optional: true + "@rollup/rollup-freebsd-arm64": + optional: true + "@rollup/rollup-freebsd-x64": + optional: true + "@rollup/rollup-linux-arm-gnueabihf": + optional: true + "@rollup/rollup-linux-arm-musleabihf": + optional: true + "@rollup/rollup-linux-arm64-gnu": + optional: true + "@rollup/rollup-linux-arm64-musl": + optional: true + "@rollup/rollup-linux-loongarch64-gnu": + optional: true + "@rollup/rollup-linux-powerpc64le-gnu": + optional: true + "@rollup/rollup-linux-riscv64-gnu": + optional: true + "@rollup/rollup-linux-s390x-gnu": + optional: true + "@rollup/rollup-linux-x64-gnu": + optional: true + "@rollup/rollup-linux-x64-musl": + optional: true + "@rollup/rollup-win32-arm64-msvc": + optional: true + "@rollup/rollup-win32-ia32-msvc": + optional: true + "@rollup/rollup-win32-x64-msvc": + optional: true + fsevents: + optional: true + bin: + rollup: dist/bin/rollup + checksum: fde90276bda2e4042bd6f1d86d263c42bd9c55b2c609fe0582f47b3aff626537719b97786d2d0f84fdd14e1e652336735b1d53a3d392c3060405290988d2dad3 + languageName: node + linkType: hard + "rollup@npm:^4.23.0": version: 4.28.0 resolution: "rollup@npm:4.28.0" @@ -14282,6 +14712,13 @@ __metadata: languageName: node linkType: hard +"rrweb-cssom@npm:^0.7.1": + version: 0.7.1 + resolution: "rrweb-cssom@npm:0.7.1" + checksum: 62e410ddbaaba6abc196c3bbfa8de4952e0a134d9f2b454ee293039bf9931322d806e14d52ed122a5c2bd332a868b9da2e99358fb6232c33758b5ede86d992c8 + languageName: node + linkType: hard + "run-async@npm:^2.4.0": version: 2.4.1 resolution: "run-async@npm:2.4.1" @@ -14372,15 +14809,6 @@ __metadata: languageName: node linkType: hard -"saxes@npm:^5.0.1": - version: 5.0.1 - resolution: "saxes@npm:5.0.1" - dependencies: - xmlchars: ^2.2.0 - checksum: 5636b55cf15f7cf0baa73f2797bf992bdcf75d1b39d82c0aa4608555c774368f6ac321cb641fd5f3d3ceb87805122cd47540da6a7b5960fe0dbdb8f8c263f000 - languageName: node - linkType: hard - "saxes@npm:^6.0.0": version: 6.0.0 resolution: "saxes@npm:6.0.0" @@ -14399,14 +14827,26 @@ __metadata: languageName: node linkType: hard -"schema-utils@npm:^3.1.0, schema-utils@npm:^3.1.1": - version: 3.1.1 - resolution: "schema-utils@npm:3.1.1" +"schema-utils@npm:^3.2.0": + version: 3.3.0 + resolution: "schema-utils@npm:3.3.0" dependencies: "@types/json-schema": ^7.0.8 ajv: ^6.12.5 ajv-keywords: ^3.5.2 - checksum: fb73f3d759d43ba033c877628fe9751620a26879f6301d3dbeeb48cf2a65baec5cdf99da65d1bf3b4ff5444b2e59cbe4f81c2456b5e0d2ba7d7fd4aed5da29ce + checksum: ea56971926fac2487f0757da939a871388891bc87c6a82220d125d587b388f1704788f3706e7f63a7b70e49fc2db974c41343528caea60444afd5ce0fe4b85c0 + languageName: node + linkType: hard + +"schema-utils@npm:^4.3.0": + version: 4.3.0 + resolution: "schema-utils@npm:4.3.0" + dependencies: + "@types/json-schema": ^7.0.9 + ajv: ^8.9.0 + ajv-formats: ^2.1.1 + ajv-keywords: ^5.1.0 + checksum: 3dbd9056727c871818eaf3cabeeb5c9e173ae2b17bbf2a9c7a2e49c220fa1a580e44df651c876aea3b4926cecf080730a39e28202cb63f2b68d99872b49cd37a languageName: node linkType: hard @@ -14455,12 +14895,12 @@ __metadata: languageName: node linkType: hard -"serialize-javascript@npm:^6.0.1": - version: 6.0.1 - resolution: "serialize-javascript@npm:6.0.1" +"serialize-javascript@npm:^6.0.2": + version: 6.0.2 + resolution: "serialize-javascript@npm:6.0.2" dependencies: randombytes: ^2.1.0 - checksum: 3c4f4cb61d0893b988415bdb67243637333f3f574e9e9cc9a006a2ced0b390b0b3b44aef8d51c951272a9002ec50885eefdc0298891bc27eb2fe7510ea87dc4f + checksum: c4839c6206c1d143c0f80763997a361310305751171dd95e4b57efee69b8f6edd8960a0b7fbfc45042aadff98b206d55428aee0dc276efe54f100899c7fa8ab7 languageName: node linkType: hard @@ -14581,6 +15021,13 @@ __metadata: languageName: node linkType: hard +"siginfo@npm:^2.0.0": + version: 2.0.0 + resolution: "siginfo@npm:2.0.0" + checksum: 8aa5a98640ca09fe00d74416eca97551b3e42991614a3d1b824b115fc1401543650914f651ab1311518177e4d297e80b953f4cd4cd7ea1eabe824e8f2091de01 + languageName: node + linkType: hard + "signal-exit@npm:3.0.7, signal-exit@npm:^3.0.0, signal-exit@npm:^3.0.2, signal-exit@npm:^3.0.3, signal-exit@npm:^3.0.7": version: 3.0.7 resolution: "signal-exit@npm:3.0.7" @@ -14609,6 +15056,17 @@ __metadata: languageName: node linkType: hard +"sirv@npm:^3.0.0": + version: 3.0.0 + resolution: "sirv@npm:3.0.0" + dependencies: + "@polka/url": ^1.0.0-next.24 + mrmime: ^2.0.0 + totalist: ^3.0.0 + checksum: 04b8036cab13971737dbb12b184a88f3d9aba955eed5600d27250f3dfd0a0ad1ff7a343537511b54d4fda36f629e2ffe25813f900d84cf4e3c08a7292f458af1 + languageName: node + linkType: hard + "sisteransi@npm:^1.0.5": version: 1.0.5 resolution: "sisteransi@npm:1.0.5" @@ -14915,12 +15373,17 @@ __metadata: languageName: node linkType: hard -"stop-iteration-iterator@npm:^1.0.0": - version: 1.0.0 - resolution: "stop-iteration-iterator@npm:1.0.0" - dependencies: - internal-slot: ^1.0.4 - checksum: d04173690b2efa40e24ab70e5e51a3ff31d56d699550cfad084104ab3381390daccb36652b25755e420245f3b0737de66c1879eaa2a8d4fc0a78f9bf892fcb42 +"stackback@npm:0.0.2": + version: 0.0.2 + resolution: "stackback@npm:0.0.2" + checksum: 2d4dc4e64e2db796de4a3c856d5943daccdfa3dd092e452a1ce059c81e9a9c29e0b9badba91b43ef0d5ff5c04ee62feb3bcc559a804e16faf447bac2d883aa99 + languageName: node + linkType: hard + +"std-env@npm:^3.8.0": + version: 3.8.0 + resolution: "std-env@npm:3.8.0" + checksum: ad4554485c2d09138a1d0f03944245e169510e6f5200b7d30fcdd4536e27a2a9a2fd934caff7ef58ebbe21993fa0e2b9e5b1979f431743c925305863b7ff36d5 languageName: node linkType: hard @@ -15286,15 +15749,15 @@ __metadata: languageName: node linkType: hard -"terser-webpack-plugin@npm:^5.1.3": - version: 5.3.7 - resolution: "terser-webpack-plugin@npm:5.3.7" +"terser-webpack-plugin@npm:^5.3.10": + version: 5.3.11 + resolution: "terser-webpack-plugin@npm:5.3.11" dependencies: - "@jridgewell/trace-mapping": ^0.3.17 + "@jridgewell/trace-mapping": ^0.3.25 jest-worker: ^27.4.5 - schema-utils: ^3.1.1 - serialize-javascript: ^6.0.1 - terser: ^5.16.5 + schema-utils: ^4.3.0 + serialize-javascript: ^6.0.2 + terser: ^5.31.1 peerDependencies: webpack: ^5.1.0 peerDependenciesMeta: @@ -15304,21 +15767,21 @@ __metadata: optional: true uglify-js: optional: true - checksum: 095e699fdeeb553cdf2c6f75f983949271b396d9c201d7ae9fc633c45c1c1ad14c7257ef9d51ccc62213dd3e97f875870ba31550f6d4f1b6674f2615562da7f7 + checksum: c84c005d4041ad2e2eed0c9059b52a50ffd27f1e2afca7d34864a2b4b2bb1295405bc7578eeb25bae732e358339954d8cb6fbf6d83df52e8aa9333e8bf409ebe languageName: node linkType: hard -"terser@npm:^5.16.5": - version: 5.16.6 - resolution: "terser@npm:5.16.6" +"terser@npm:^5.31.1": + version: 5.37.0 + resolution: "terser@npm:5.37.0" dependencies: - "@jridgewell/source-map": ^0.3.2 - acorn: ^8.5.0 + "@jridgewell/source-map": ^0.3.3 + acorn: ^8.8.2 commander: ^2.20.0 source-map-support: ~0.5.20 bin: terser: bin/terser - checksum: f763a7bcc7b98cb2bfc41434f7b92bfe8a701a12c92ea6049377736c8e6de328240d654a20dfe15ce170fd783491b9873fad9f4cd8fee4f6c6fb8ca407859dee + checksum: 70c06a8ce1288ff4370a7e481beb6fc8b22fc4995371479f49df1552aa9cf8e794ace66e1da6e87057eda1745644311213f5043bda9a06cf55421eff68b3ac06 languageName: node linkType: hard @@ -15357,6 +15820,69 @@ __metadata: languageName: node linkType: hard +"tinybench@npm:^2.9.0": + version: 2.9.0 + resolution: "tinybench@npm:2.9.0" + checksum: 1ab00d7dfe0d1f127cbf00822bacd9024f7a50a3ecd1f354a8168e0b7d2b53a639a24414e707c27879d1adc0f5153141d51d76ebd7b4d37fe245e742e5d91fe8 + languageName: node + linkType: hard + +"tinyexec@npm:^0.3.1": + version: 0.3.1 + resolution: "tinyexec@npm:0.3.1" + checksum: 691b531d464bdc09eeba934e43d8ac2a74c9d22a4bec9cd7f4991375c64e22712f7e5a95ba243a9369a478afd34d41171359012a2248ea49615cd2816ab12959 + languageName: node + linkType: hard + +"tinyglobby@npm:^0.2.10": + version: 0.2.10 + resolution: "tinyglobby@npm:0.2.10" + dependencies: + fdir: ^6.4.2 + picomatch: ^4.0.2 + checksum: 7e2ffe262ebc149036bdef37c56b32d02d52cf09efa7d43dbdab2ea3c12844a4da881058835ce4c74d1891190e5ad5ec5133560a11ec8314849b68ad0d99d3f4 + languageName: node + linkType: hard + +"tinypool@npm:^1.0.1": + version: 1.0.2 + resolution: "tinypool@npm:1.0.2" + checksum: 752f23114d8fc95a9497fc812231d6d0a63728376aa11e6e8499c10423a91112e760e388887ea7854f1b16977c321f07c0eab061ec2f60f6761e58b184aac880 + languageName: node + linkType: hard + +"tinyrainbow@npm:^1.2.0": + version: 1.2.0 + resolution: "tinyrainbow@npm:1.2.0" + checksum: d1e2cb5400032c0092be00e4a3da5450bea8b4fad58bfb5d3c58ca37ff5c5e252f7fcfb9af247914854af79c46014add9d1042fe044358c305a129ed55c8be35 + languageName: node + linkType: hard + +"tinyspy@npm:^3.0.2": + version: 3.0.2 + resolution: "tinyspy@npm:3.0.2" + checksum: 5db671b2ff5cd309de650c8c4761ca945459d7204afb1776db9a04fb4efa28a75f08517a8620c01ee32a577748802231ad92f7d5b194dc003ee7f987a2a06337 + languageName: node + linkType: hard + +"tldts-core@npm:^6.1.69": + version: 6.1.69 + resolution: "tldts-core@npm:6.1.69" + checksum: b11f5a2461b6eb2616c0c48567db2e4fd042a72d5d6e80c410b163fe575644220beb1628d625582c52ffb310e2a7b269d541ab857bf08836e1ae6c402231c376 + languageName: node + linkType: hard + +"tldts@npm:^6.1.32": + version: 6.1.69 + resolution: "tldts@npm:6.1.69" + dependencies: + tldts-core: ^6.1.69 + bin: + tldts: bin/cli.js + checksum: ea09623cc24123d86feafe876ee1db1f9936fb86c4c9dcdd411a537e74c7cd21d1440438e3ff4628948de8ea5762d5ffa866c67ddde6ca619c56989b9e7e18f4 + languageName: node + linkType: hard + "tmp@npm:^0.0.33": version: 0.0.33 resolution: "tmp@npm:0.0.33" @@ -15398,7 +15924,14 @@ __metadata: languageName: node linkType: hard -"tough-cookie@npm:^4.0.0, tough-cookie@npm:^4.1.2": +"totalist@npm:^3.0.0": + version: 3.0.1 + resolution: "totalist@npm:3.0.1" + checksum: 5132d562cf88ff93fd710770a92f31dbe67cc19b5c6ccae2efc0da327f0954d211bbfd9456389655d726c624f284b4a23112f56d1da931ca7cfabbe1f45e778a + languageName: node + linkType: hard + +"tough-cookie@npm:^4.1.2": version: 4.1.2 resolution: "tough-cookie@npm:4.1.2" dependencies: @@ -15410,6 +15943,15 @@ __metadata: languageName: node linkType: hard +"tough-cookie@npm:^5.0.0": + version: 5.0.0 + resolution: "tough-cookie@npm:5.0.0" + dependencies: + tldts: ^6.1.32 + checksum: 774f6c939c96f74b5847361f7e11e0d69383681d21a35a2d37a20956638e614ec521782d2d20bcb32b58638ff337bba87cc72fb72c987bd02ea0fdfc93994cdb + languageName: node + linkType: hard + "tough-cookie@npm:~2.5.0": version: 2.5.0 resolution: "tough-cookie@npm:2.5.0" @@ -15429,15 +15971,6 @@ __metadata: languageName: node linkType: hard -"tr46@npm:^2.1.0": - version: 2.1.0 - resolution: "tr46@npm:2.1.0" - dependencies: - punycode: ^2.1.1 - checksum: ffe6049b9dca3ae329b059aada7f515b0f0064c611b39b51ff6b53897e954650f6f63d9319c6c008d36ead477c7b55e5f64c9dc60588ddc91ff720d64eb710b3 - languageName: node - linkType: hard - "tr46@npm:^3.0.0": version: 3.0.0 resolution: "tr46@npm:3.0.0" @@ -15447,6 +15980,15 @@ __metadata: languageName: node linkType: hard +"tr46@npm:^5.0.0": + version: 5.0.0 + resolution: "tr46@npm:5.0.0" + dependencies: + punycode: ^2.3.1 + checksum: 8d8b021f8e17675ebf9e672c224b6b6cfdb0d5b92141349e9665c14a2501c54a298d11264bbb0b17b447581e1e83d4fc3c038c929f3d210e3964d4be47460288 + languageName: node + linkType: hard + "tr46@npm:~0.0.3": version: 0.0.3 resolution: "tr46@npm:0.0.3" @@ -15521,6 +16063,20 @@ __metadata: languageName: node linkType: hard +"tsconfck@npm:^3.0.3": + version: 3.1.4 + resolution: "tsconfck@npm:3.1.4" + peerDependencies: + typescript: ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true + bin: + tsconfck: bin/tsconfck.js + checksum: 007b92ca65e95c3511cf52d78020fedb322b98862474507d129d14f28eaf43f2d9ff6337da643ba6fd67a2041884f81191d1e384006c579fd4cac6597063cf1b + languageName: node + linkType: hard + "tsconfig-paths@npm:^3.15.0": version: 3.15.0 resolution: "tsconfig-paths@npm:3.15.0" @@ -16134,6 +16690,21 @@ __metadata: languageName: node linkType: hard +"vite-node@npm:2.1.8": + version: 2.1.8 + resolution: "vite-node@npm:2.1.8" + dependencies: + cac: ^6.7.14 + debug: ^4.3.7 + es-module-lexer: ^1.5.4 + pathe: ^1.1.2 + vite: ^5.0.0 + bin: + vite-node: vite-node.mjs + checksum: 17914342d05f9ace35c1574555c59dd4116148b71a22bf330f019681d7238a2244b6c2b4a8930d03d5f78e24666d81806c68b84a8db42d7e84165cb10d1c756a + languageName: node + linkType: hard + "vite-plugin-babel-macros@npm:^1.0.6": version: 1.0.6 resolution: "vite-plugin-babel-macros@npm:1.0.6" @@ -16149,6 +16720,45 @@ __metadata: languageName: node linkType: hard +"vite-plugin-commonjs@npm:^0.10.4": + version: 0.10.4 + resolution: "vite-plugin-commonjs@npm:0.10.4" + dependencies: + acorn: ^8.12.1 + magic-string: ^0.30.11 + vite-plugin-dynamic-import: ^1.6.0 + checksum: f61bda791a85449ab72bc5bdd0f75de55dcdf09dc6f8f3910b71e53e46bacfb957e7b7af05cdbf8e26ed396cbce2f3694be1511c2a399fafb38c1b58e6329309 + languageName: node + linkType: hard + +"vite-plugin-dynamic-import@npm:^1.6.0": + version: 1.6.0 + resolution: "vite-plugin-dynamic-import@npm:1.6.0" + dependencies: + acorn: ^8.12.1 + es-module-lexer: ^1.5.4 + fast-glob: ^3.3.2 + magic-string: ^0.30.11 + checksum: 46b009c80db82a8ed935c6ec7c08a8d3d7e5d3118fbfb1b4e18f13e4e9c34db6b3f28fa697d7f78d3f36edae69479a0ba2dfae1b76d2b2ca8e3e06dcf1e9870c + languageName: node + linkType: hard + +"vite-tsconfig-paths@npm:^5.0.1": + version: 5.1.4 + resolution: "vite-tsconfig-paths@npm:5.1.4" + dependencies: + debug: ^4.1.1 + globrex: ^0.1.2 + tsconfck: ^3.0.3 + peerDependencies: + vite: "*" + peerDependenciesMeta: + vite: + optional: true + checksum: 9d868fcad7ac59049c08ce60f65a0e1b1caebb3d849c60ebe6ed47645255007fd8275c22a42155666fd76ee947bc36481d83c0527b2d9fa45ccafac4dbf99722 + languageName: node + linkType: hard + "vite@npm:6.0.2": version: 6.0.2 resolution: "vite@npm:6.0.2" @@ -16201,21 +16811,96 @@ __metadata: languageName: node linkType: hard -"w3c-hr-time@npm:^1.0.2": - version: 1.0.2 - resolution: "w3c-hr-time@npm:1.0.2" - dependencies: - browser-process-hrtime: ^1.0.0 - checksum: ec3c2dacbf8050d917bbf89537a101a08c2e333b4c19155f7d3bedde43529d4339db6b3d049d9610789cb915f9515f8be037e0c54c079e9d4735c50b37ed52b9 - languageName: node - linkType: hard - -"w3c-xmlserializer@npm:^2.0.0": - version: 2.0.0 - resolution: "w3c-xmlserializer@npm:2.0.0" +"vite@npm:^5.0.0": + version: 5.4.11 + resolution: "vite@npm:5.4.11" dependencies: - xml-name-validator: ^3.0.0 - checksum: ae25c51cf71f1fb2516df1ab33a481f83461a117565b95e3d0927432522323f93b1b2846cbb60196d337970c421adb604fc2d0d180c6a47a839da01db5b9973b + esbuild: ^0.21.3 + fsevents: ~2.3.3 + postcss: ^8.4.43 + rollup: ^4.20.0 + peerDependencies: + "@types/node": ^18.0.0 || >=20.0.0 + less: "*" + lightningcss: ^1.21.0 + sass: "*" + sass-embedded: "*" + stylus: "*" + sugarss: "*" + terser: ^5.4.0 + dependenciesMeta: + fsevents: + optional: true + peerDependenciesMeta: + "@types/node": + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + bin: + vite: bin/vite.js + checksum: 8c5b31d17487b69c40a30419dc0ade9f33360eb6893dbfa33a90980271bd74d35ae550b5cbb2a9e640f0df41ea36fd1bb4f222c98f6d02e607080f20832e69e8 + languageName: node + linkType: hard + +"vitest@npm:^2.1.1, vitest@npm:^2.1.8": + version: 2.1.8 + resolution: "vitest@npm:2.1.8" + dependencies: + "@vitest/expect": 2.1.8 + "@vitest/mocker": 2.1.8 + "@vitest/pretty-format": ^2.1.8 + "@vitest/runner": 2.1.8 + "@vitest/snapshot": 2.1.8 + "@vitest/spy": 2.1.8 + "@vitest/utils": 2.1.8 + chai: ^5.1.2 + debug: ^4.3.7 + expect-type: ^1.1.0 + magic-string: ^0.30.12 + pathe: ^1.1.2 + std-env: ^3.8.0 + tinybench: ^2.9.0 + tinyexec: ^0.3.1 + tinypool: ^1.0.1 + tinyrainbow: ^1.2.0 + vite: ^5.0.0 + vite-node: 2.1.8 + why-is-node-running: ^2.3.0 + peerDependencies: + "@edge-runtime/vm": "*" + "@types/node": ^18.0.0 || >=20.0.0 + "@vitest/browser": 2.1.8 + "@vitest/ui": 2.1.8 + happy-dom: "*" + jsdom: "*" + peerDependenciesMeta: + "@edge-runtime/vm": + optional: true + "@types/node": + optional: true + "@vitest/browser": + optional: true + "@vitest/ui": + optional: true + happy-dom: + optional: true + jsdom: + optional: true + bin: + vitest: vitest.mjs + checksum: 2d2f69364556829123c3ff704b36dfd7a2f11cc05fad8a7caf9f0b8c74205caee92f892d4bd5b92a9c2a48267e9b0865a171b2f40fcd593d681f980c3486b299 languageName: node linkType: hard @@ -16228,6 +16913,15 @@ __metadata: languageName: node linkType: hard +"w3c-xmlserializer@npm:^5.0.0": + version: 5.0.0 + resolution: "w3c-xmlserializer@npm:5.0.0" + dependencies: + xml-name-validator: ^5.0.0 + checksum: 593acc1fdab3f3207ec39d851e6df0f3fa41a36b5809b0ace364c7a6d92e351938c53424a7618ce8e0fbaffee8be2e8e070a5734d05ee54666a8bdf1a376cc40 + languageName: node + linkType: hard + "walk-up-path@npm:^3.0.1": version: 3.0.1 resolution: "walk-up-path@npm:3.0.1" @@ -16244,13 +16938,13 @@ __metadata: languageName: node linkType: hard -"watchpack@npm:^2.4.0": - version: 2.4.0 - resolution: "watchpack@npm:2.4.0" +"watchpack@npm:^2.4.1": + version: 2.4.2 + resolution: "watchpack@npm:2.4.2" dependencies: glob-to-regexp: ^0.4.1 graceful-fs: ^4.1.2 - checksum: 23d4bc58634dbe13b86093e01c6a68d8096028b664ab7139d58f0c37d962d549a940e98f2f201cecdabd6f9c340338dc73ef8bf094a2249ef582f35183d1a131 + checksum: 92d9d52ce3d16fd83ed6994d1dd66a4d146998882f4c362d37adfea9ab77748a5b4d1e0c65fa104797928b2d40f635efa8f9b925a6265428a69f1e1852ca3441 languageName: node linkType: hard @@ -16277,20 +16971,6 @@ __metadata: languageName: node linkType: hard -"webidl-conversions@npm:^5.0.0": - version: 5.0.0 - resolution: "webidl-conversions@npm:5.0.0" - checksum: ccf1ec2ca7c0b5671e5440ace4a66806ae09c49016ab821481bec0c05b1b82695082dc0a27d1fe9d804d475a408ba0c691e6803fd21be608e710955d4589cd69 - languageName: node - linkType: hard - -"webidl-conversions@npm:^6.1.0": - version: 6.1.0 - resolution: "webidl-conversions@npm:6.1.0" - checksum: 1f526507aa491f972a0c1409d07f8444e1d28778dfa269a9971f2e157182f3d496dc33296e4ed45b157fdb3bf535bb90c90bf10c50dcf1dd6caacb2a34cc84fb - languageName: node - linkType: hard - "webidl-conversions@npm:^7.0.0": version: 7.0.0 resolution: "webidl-conversions@npm:7.0.0" @@ -16305,49 +16985,39 @@ __metadata: languageName: node linkType: hard -"webpack@npm:^5.76.1": - version: 5.76.1 - resolution: "webpack@npm:5.76.1" +"webpack@npm:^5.94.0": + version: 5.97.1 + resolution: "webpack@npm:5.97.1" dependencies: - "@types/eslint-scope": ^3.7.3 - "@types/estree": ^0.0.51 - "@webassemblyjs/ast": 1.11.1 - "@webassemblyjs/wasm-edit": 1.11.1 - "@webassemblyjs/wasm-parser": 1.11.1 - acorn: ^8.7.1 - acorn-import-assertions: ^1.7.6 - browserslist: ^4.14.5 + "@types/eslint-scope": ^3.7.7 + "@types/estree": ^1.0.6 + "@webassemblyjs/ast": ^1.14.1 + "@webassemblyjs/wasm-edit": ^1.14.1 + "@webassemblyjs/wasm-parser": ^1.14.1 + acorn: ^8.14.0 + browserslist: ^4.24.0 chrome-trace-event: ^1.0.2 - enhanced-resolve: ^5.10.0 - es-module-lexer: ^0.9.0 + enhanced-resolve: ^5.17.1 + es-module-lexer: ^1.2.1 eslint-scope: 5.1.1 events: ^3.2.0 glob-to-regexp: ^0.4.1 - graceful-fs: ^4.2.9 + graceful-fs: ^4.2.11 json-parse-even-better-errors: ^2.3.1 loader-runner: ^4.2.0 mime-types: ^2.1.27 neo-async: ^2.6.2 - schema-utils: ^3.1.0 + schema-utils: ^3.2.0 tapable: ^2.1.1 - terser-webpack-plugin: ^5.1.3 - watchpack: ^2.4.0 + terser-webpack-plugin: ^5.3.10 + watchpack: ^2.4.1 webpack-sources: ^3.2.3 peerDependenciesMeta: webpack-cli: optional: true bin: webpack: bin/webpack.js - checksum: b01fe0bc2dbca0e10d290ddb0bf81e807a031de48028176e2b21afd696b4d3f25ab9accdad888ef4a1f7c7f4d41f13d5bf2395b7653fdf3e5e3dafa54e56dab2 - languageName: node - linkType: hard - -"whatwg-encoding@npm:^1.0.5": - version: 1.0.5 - resolution: "whatwg-encoding@npm:1.0.5" - dependencies: - iconv-lite: 0.4.24 - checksum: 5be4efe111dce29ddee3448d3915477fcc3b28f991d9cf1300b4e50d6d189010d47bca2f51140a844cf9b726e8f066f4aee72a04d687bfe4f2ee2767b2f5b1e6 + checksum: 649065e2258b495ae41a4088be804b4be2ec07d280aa514ebef43da79caf96fa973d26a08826c3902b5676a098d9b37c589f16be7b4da17b68b08b6c76441196 languageName: node linkType: hard @@ -16360,10 +17030,12 @@ __metadata: languageName: node linkType: hard -"whatwg-mimetype@npm:^2.3.0": - version: 2.3.0 - resolution: "whatwg-mimetype@npm:2.3.0" - checksum: 23eb885940bcbcca4ff841c40a78e9cbb893ec42743993a42bf7aed16085b048b44b06f3402018931687153550f9a32d259dfa524e4f03577ab898b6965e5383 +"whatwg-encoding@npm:^3.1.1": + version: 3.1.1 + resolution: "whatwg-encoding@npm:3.1.1" + dependencies: + iconv-lite: 0.6.3 + checksum: f75a61422421d991e4aec775645705beaf99a16a88294d68404866f65e92441698a4f5b9fa11dd609017b132d7b286c3c1534e2de5b3e800333856325b549e3c languageName: node linkType: hard @@ -16374,6 +17046,13 @@ __metadata: languageName: node linkType: hard +"whatwg-mimetype@npm:^4.0.0": + version: 4.0.0 + resolution: "whatwg-mimetype@npm:4.0.0" + checksum: f97edd4b4ee7e46a379f3fb0e745de29fe8b839307cc774300fd49059fcdd560d38cb8fe21eae5575b8f39b022f23477cc66e40b0355c2851ce84760339cef30 + languageName: node + linkType: hard + "whatwg-url@npm:^11.0.0": version: 11.0.0 resolution: "whatwg-url@npm:11.0.0" @@ -16384,6 +17063,16 @@ __metadata: languageName: node linkType: hard +"whatwg-url@npm:^14.0.0": + version: 14.1.0 + resolution: "whatwg-url@npm:14.1.0" + dependencies: + tr46: ^5.0.0 + webidl-conversions: ^7.0.0 + checksum: e429d1d2a5fc1b7886d9343f5b03d91201a9a32726b13e48a7fb943cf94c276771f6aa648337ae520484deb25b657ce6ad19a90dfca0d2d1c9596e21b438e3a0 + languageName: node + linkType: hard + "whatwg-url@npm:^5.0.0": version: 5.0.0 resolution: "whatwg-url@npm:5.0.0" @@ -16405,17 +17094,6 @@ __metadata: languageName: node linkType: hard -"whatwg-url@npm:^8.0.0, whatwg-url@npm:^8.5.0": - version: 8.7.0 - resolution: "whatwg-url@npm:8.7.0" - dependencies: - lodash: ^4.7.0 - tr46: ^2.1.0 - webidl-conversions: ^6.1.0 - checksum: a87abcc6cefcece5311eb642858c8fdb234e51ec74196bfacf8def2edae1bfbffdf6acb251646ed6301f8cee44262642d8769c707256125a91387e33f405dd1e - languageName: node - linkType: hard - "which-boxed-primitive@npm:^1.0.2": version: 1.0.2 resolution: "which-boxed-primitive@npm:1.0.2" @@ -16463,18 +17141,6 @@ __metadata: languageName: node linkType: hard -"which-collection@npm:^1.0.1": - version: 1.0.1 - resolution: "which-collection@npm:1.0.1" - dependencies: - is-map: ^2.0.1 - is-set: ^2.0.1 - is-weakmap: ^2.0.1 - is-weakset: ^2.0.1 - checksum: c815bbd163107ef9cb84f135e6f34453eaf4cca994e7ba85ddb0d27cea724c623fae2a473ceccfd5549c53cc65a5d82692de418166df3f858e1e5dc60818581c - languageName: node - linkType: hard - "which-collection@npm:^1.0.2": version: 1.0.2 resolution: "which-collection@npm:1.0.2" @@ -16537,6 +17203,18 @@ __metadata: languageName: node linkType: hard +"why-is-node-running@npm:^2.3.0": + version: 2.3.0 + resolution: "why-is-node-running@npm:2.3.0" + dependencies: + siginfo: ^2.0.0 + stackback: 0.0.2 + bin: + why-is-node-running: cli.js + checksum: 58ebbf406e243ace97083027f0df7ff4c2108baf2595bb29317718ef207cc7a8104e41b711ff65d6fa354f25daa8756b67f2f04931a4fd6ba9d13ae8197496fb + languageName: node + linkType: hard + "wide-align@npm:1.1.5, wide-align@npm:^1.1.0, wide-align@npm:^1.1.5": version: 1.1.5 resolution: "wide-align@npm:1.1.5" @@ -16663,24 +17341,24 @@ __metadata: languageName: node linkType: hard -"ws@npm:^7.4.6": - version: 7.5.9 - resolution: "ws@npm:7.5.9" +"ws@npm:^8.11.0": + version: 8.12.1 + resolution: "ws@npm:8.12.1" peerDependencies: bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 + utf-8-validate: ">=5.0.2" peerDependenciesMeta: bufferutil: optional: true utf-8-validate: optional: true - checksum: c3c100a181b731f40b7f2fddf004aa023f79d64f489706a28bc23ff88e87f6a64b3c6651fbec3a84a53960b75159574d7a7385709847a62ddb7ad6af76f49138 + checksum: 97301c1c4d838fc81bd413f370f75c12aabe44527b31323b761eab3043a9ecb7e32ffd668548382c9a6a5ad3a1c3a9249608e8338e6b939f2f9540f1e21970b5 languageName: node linkType: hard -"ws@npm:^8.11.0": - version: 8.12.1 - resolution: "ws@npm:8.12.1" +"ws@npm:^8.18.0": + version: 8.18.0 + resolution: "ws@npm:8.18.0" peerDependencies: bufferutil: ^4.0.1 utf-8-validate: ">=5.0.2" @@ -16689,14 +17367,7 @@ __metadata: optional: true utf-8-validate: optional: true - checksum: 97301c1c4d838fc81bd413f370f75c12aabe44527b31323b761eab3043a9ecb7e32ffd668548382c9a6a5ad3a1c3a9249608e8338e6b939f2f9540f1e21970b5 - languageName: node - linkType: hard - -"xml-name-validator@npm:^3.0.0": - version: 3.0.0 - resolution: "xml-name-validator@npm:3.0.0" - checksum: b3ac459afed783c285bb98e4960bd1f3ba12754fd4f2320efa0f9181ca28928c53cc75ca660d15d205e81f92304419afe94c531c7cfb3e0649aa6d140d53ecb0 + checksum: 91d4d35bc99ff6df483bdf029b9ea4bfd7af1f16fc91231a96777a63d263e1eabf486e13a2353970efc534f9faa43bdbf9ee76525af22f4752cbc5ebda333975 languageName: node linkType: hard @@ -16707,6 +17378,13 @@ __metadata: languageName: node linkType: hard +"xml-name-validator@npm:^5.0.0": + version: 5.0.0 + resolution: "xml-name-validator@npm:5.0.0" + checksum: 86effcc7026f437701252fcc308b877b4bc045989049cfc79b0cc112cb365cf7b009f4041fab9fb7cd1795498722c3e9fe9651afc66dfa794c16628a639a4c45 + languageName: node + linkType: hard + "xmlchars@npm:^2.2.0": version: 2.2.0 resolution: "xmlchars@npm:2.2.0" From 7ccd129b471185fd3b085d6dacbb88dff42ab348 Mon Sep 17 00:00:00 2001 From: Timofei Iatsenko Date: Mon, 23 Dec 2024 13:58:23 +0100 Subject: [PATCH 24/24] wip --- packages/core/src/i18n.test.ts | 19 +-- .../src/__snapshots__/po-gettext.test.ts.snap | 120 +++++++-------- .../format-po-gettext/src/po-gettext.test.ts | 42 +++--- packages/loader/package.json | 1 + .../test/__snapshots__/loader.test.ts.snap | 49 ------- packages/loader/test/loader.js | 4 + packages/loader/test/loader.test.ts | 3 +- packages/loader/vitest.config.mts | 7 +- .../message-utils/src/compileMessage.test.ts | 137 +++++++++--------- packages/remote-loader/test/index.test.ts | 4 +- yarn.lock | 10 ++ 11 files changed, 185 insertions(+), 211 deletions(-) delete mode 100644 packages/loader/test/__snapshots__/loader.test.ts.snap create mode 100644 packages/loader/test/loader.js diff --git a/packages/core/src/i18n.test.ts b/packages/core/src/i18n.test.ts index 34e132dc3..b1846b37d 100644 --- a/packages/core/src/i18n.test.ts +++ b/packages/core/src/i18n.test.ts @@ -1,13 +1,14 @@ import { setupI18n } from "./i18n" import { mockConsole, mockEnv } from "@lingui/jest-mocks" import { compileMessage } from "@lingui/message-utils/compileMessage" +import { describe, it, expect, vi } from "vitest" describe("I18n", () => { describe("I18n.load", () => { it("should emit event", () => { const i18n = setupI18n() - const cbChange = jest.fn() + const cbChange = vi.fn() i18n.on("change", cbChange) i18n.load("en", { msg: "Message" }) expect(cbChange).toBeCalled() @@ -66,7 +67,7 @@ describe("I18n", () => { }, }) - const cbChange = jest.fn() + const cbChange = vi.fn() i18n.on("change", cbChange) i18n.activate("en") expect(cbChange).toBeCalled() @@ -122,7 +123,7 @@ describe("I18n", () => { }) mockEnv("production", () => { - jest.resetModules() + vi.resetModules() mockConsole((console) => { const { setupI18n } = require("@lingui/core") const i18n = setupI18n() @@ -137,7 +138,7 @@ describe("I18n", () => { it("should set locale and messages", () => { const i18n = setupI18n() - const cbChange = jest.fn() + const cbChange = vi.fn() i18n.on("change", cbChange) i18n.loadAndActivate({ @@ -364,7 +365,7 @@ describe("I18n", () => { messages: { en: { exists: "exists" } }, }) - const handler = jest.fn() + const handler = vi.fn() i18n.on("missing", handler) i18n._("exists") expect(handler).toHaveBeenCalledTimes(0) @@ -384,7 +385,7 @@ describe("I18n", () => { messages: { en: {} }, }) - const handler = jest.fn() + const handler = vi.fn() i18n.on("missing", handler) // @ts-expect-error 'id' should be of 'MessageDescriptor' or 'string' type. i18n._() @@ -407,7 +408,7 @@ describe("I18n", () => { }) it("._ should call a function with message ID of missing translation", () => { - const missing = jest.fn((locale, id) => id.split("").reverse().join("")) + const missing = vi.fn((locale, id) => id.split("").reverse().join("")) const i18n = setupI18n({ locale: "en", messages: { @@ -439,9 +440,9 @@ describe("I18n", () => { "Text {0, plural, offset:1 =0 {No books} =1 {1 book} other {# books}}" ) ).toThrowErrorMatchingInlineSnapshot(` - "Lingui: Attempted to call a translation function without setting a locale. + [Error: Lingui: Attempted to call a translation function without setting a locale. Make sure to call \`i18n.activate(locale)\` before using Lingui functions. - This issue may also occur due to a race condition in your initialization logic." + This issue may also occur due to a race condition in your initialization logic.] `) }) }) diff --git a/packages/format-po-gettext/src/__snapshots__/po-gettext.test.ts.snap b/packages/format-po-gettext/src/__snapshots__/po-gettext.test.ts.snap index b3e0285af..5d60534c3 100644 --- a/packages/format-po-gettext/src/__snapshots__/po-gettext.test.ts.snap +++ b/packages/format-po-gettext/src/__snapshots__/po-gettext.test.ts.snap @@ -181,10 +181,10 @@ exports[`po-gettext format > should convert gettext plurals to ICU plural messag } `; -exports[`po-gettext format using custom prefix handles custom prefix 1`] = ` -msgid "" +exports[`po-gettext format > using custom prefix > handles custom prefix 1`] = ` +"msgid "" msgstr "" -"POT-Creation-Date: 2018-08-27 10:00+0000\\n" +"POT-Creation-Date: 2018-08-27 12:00+0200\\n" "MIME-Version: 1.0\\n" "Content-Type: text/plain; charset=utf-8\\n" "Content-Transfer-Encoding: 8bit\\n" @@ -210,80 +210,80 @@ msgid "Singular case" msgid_plural "Case number {anotherCount}" msgstr[0] "Singular case" msgstr[1] "Case number {anotherCount}" - +" `; -exports[`po-gettext format using custom prefix warns and falls back to using count if prefix is not found 1`] = ` +exports[`po-gettext format > using custom prefix > warns and falls back to using count if prefix is not found 1`] = ` { - lO3l+X: { - comments: [ - js-lingui:icu=%7BanotherCount%2C+plural%2C+one+%7BSingular+case%7D+other+%7BCase+number+%7BanotherCount%7D%7D%7D&pluralize_on=anotherCount, + "lO3l+X": { + "comments": [ + "js-lingui:icu=%7BanotherCount%2C+plural%2C+one+%7BSingular+case%7D+other+%7BCase+number+%7BanotherCount%7D%7D%7D&pluralize_on=anotherCount", ], - context: null, - extra: { - flags: [], - translatorComments: [], + "context": null, + "extra": { + "flags": [], + "translatorComments": [], }, - message: Singular case, - obsolete: false, - origin: [], - translation: {count, plural, one {Singular case} other {Case number {anotherCount}}}, + "message": "Singular case", + "obsolete": false, + "origin": [], + "translation": "{count, plural, one {Singular case} other {Case number {anotherCount}}}", }, - maCaRp: { - comments: [ - js-lingui:icu=%7Bcount%2C+plural%2C+one+%7BSingular%7D+other+%7BPlural%7D%7D&pluralize_on=count, + "maCaRp": { + "comments": [ + "js-lingui:icu=%7Bcount%2C+plural%2C+one+%7BSingular%7D+other+%7BPlural%7D%7D&pluralize_on=count", ], - context: null, - extra: { - flags: [], - translatorComments: [], + "context": null, + "extra": { + "flags": [], + "translatorComments": [], }, - message: Singular, - obsolete: false, - origin: [], - translation: , + "message": "Singular", + "obsolete": false, + "origin": [], + "translation": "", }, - message_with_id: { - comments: [ - js-lingui:pluralize_on=someCount, - js-lingui-explicit-id, + "message_with_id": { + "comments": [ + "js-lingui:pluralize_on=someCount", + "js-lingui-explicit-id", ], - context: null, - extra: { - flags: [], - translatorComments: [], + "context": null, + "extra": { + "flags": [], + "translatorComments": [], }, - obsolete: false, - origin: [], - translation: {count, plural, one {Singular case} other {Case number {someCount}}}, + "obsolete": false, + "origin": [], + "translation": "{count, plural, one {Singular case} other {Case number {someCount}}}", }, - message_with_id_but_without_translation: { - comments: [ - Comment made by the developers., - js-lingui:pluralize_on=count, - js-lingui-explicit-id, + "message_with_id_but_without_translation": { + "comments": [ + "Comment made by the developers.", + "js-lingui:pluralize_on=count", + "js-lingui-explicit-id", ], - context: null, - extra: { - flags: [], - translatorComments: [], + "context": null, + "extra": { + "flags": [], + "translatorComments": [], }, - obsolete: false, - origin: [], - translation: , + "obsolete": false, + "origin": [], + "translation": "", }, - static: { - comments: [ - js-lingui-explicit-id, + "static": { + "comments": [ + "js-lingui-explicit-id", ], - context: null, - extra: { - flags: [], - translatorComments: [], + "context": null, + "extra": { + "flags": [], + "translatorComments": [], }, - obsolete: false, - origin: [], - translation: Static message, + "obsolete": false, + "origin": [], + "translation": "Static message", }, } `; diff --git a/packages/format-po-gettext/src/po-gettext.test.ts b/packages/format-po-gettext/src/po-gettext.test.ts index 585069211..871910b11 100644 --- a/packages/format-po-gettext/src/po-gettext.test.ts +++ b/packages/format-po-gettext/src/po-gettext.test.ts @@ -1,4 +1,4 @@ -import { afterAll, beforeAll, describe, expect, it } from "vitest" +import { afterAll, beforeAll, describe, expect, it, test } from "vitest" import { mockConsole } from "@lingui/jest-mocks" import fs from "fs" import path from "path" @@ -252,17 +252,17 @@ msgstr[2] "{count} jours" // Note that the last case must be `other` (the 4th CLDR case name) instead of `many` (the 3rd CLDR case name). expect(parsed).toMatchInlineSnapshot(` { - ZETJEQ: { - comments: [], - context: null, - extra: { - flags: [], - translatorComments: [], + "ZETJEQ": { + "comments": [], + "context": null, + "extra": { + "flags": [], + "translatorComments": [], }, - message: {0, plural, one {{count} day} other {{count} days}}, - obsolete: false, - origin: [], - translation: {0, plural, one {{count} jour} many {{count} jours} other {{count} jours}}, + "message": "{0, plural, one {{count} day} other {{count} days}}", + "obsolete": false, + "origin": [], + "translation": "{0, plural, one {{count} jour} many {{count} jours} other {{count} jours}}", }, } `) @@ -291,17 +291,17 @@ msgstr[3] "# dní" // Note that the last case must be `other` (the 4th CLDR case name) instead of `many` (the 3rd CLDR case name). expect(parsed).toMatchInlineSnapshot(` { - GMnlGy: { - comments: [], - context: null, - extra: { - flags: [], - translatorComments: [], + "GMnlGy": { + "comments": [], + "context": null, + "extra": { + "flags": [], + "translatorComments": [], }, - message: {count, plural, one {{count} day} few {{count} days} many {{count} days} other {{count} days}}, - obsolete: false, - origin: [], - translation: {#, plural, one {# den} few {# dny} other {# dní}}, + "message": "{count, plural, one {{count} day} few {{count} days} many {{count} days} other {{count} days}}", + "obsolete": false, + "origin": [], + "translation": "{#, plural, one {# den} few {# dny} other {# dní}}", }, } `) diff --git a/packages/loader/package.json b/packages/loader/package.json index 99eb20605..8e8926915 100644 --- a/packages/loader/package.json +++ b/packages/loader/package.json @@ -49,6 +49,7 @@ }, "devDependencies": { "@lingui/format-json": "5.1.2", + "jiti": "^2.4.2", "unbuild": "2.0.0", "vite-tsconfig-paths": "^5.0.1", "vitest": "^2.1.1", diff --git a/packages/loader/test/__snapshots__/loader.test.ts.snap b/packages/loader/test/__snapshots__/loader.test.ts.snap deleted file mode 100644 index 412a6daa5..000000000 --- a/packages/loader/test/__snapshots__/loader.test.ts.snap +++ /dev/null @@ -1,49 +0,0 @@ -// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html - -exports[`lingui-loader should compile catalog in json format 1`] = ` -{ - key: [ - Message, - ], - key2: [ - Hello , - [ - name, - ], - ], -} -`; - -exports[`lingui-loader should compile catalog in po format 1`] = ` -{ - ED2Xk0: [ - String from template, - ], - mVmaLu: [ - My name is , - [ - name, - ], - ], - mY42CM: [ - Hello World, - ], -} -`; - -exports[`lingui-loader should compile catalog with relative path with no warnings 1`] = ` -{ - ED2Xk0: [ - String from template, - ], - mVmaLu: [ - My name is , - [ - name, - ], - ], - mY42CM: [ - Hello World, - ], -} -`; diff --git a/packages/loader/test/loader.js b/packages/loader/test/loader.js new file mode 100644 index 000000000..b2deea859 --- /dev/null +++ b/packages/loader/test/loader.js @@ -0,0 +1,4 @@ +// const { createJiti } = require("jiti") +// const jiti = createJiti(__filename) + +module.exports = require("../src/webpackLoader.ts") diff --git a/packages/loader/test/loader.test.ts b/packages/loader/test/loader.test.ts index 33695f224..c2080b618 100644 --- a/packages/loader/test/loader.test.ts +++ b/packages/loader/test/loader.test.ts @@ -1,4 +1,4 @@ -import { describe, expect, it, vi } from "vitest"; +import { describe, expect, it, vi } from "vitest" import path from "path" import fs from "node:fs/promises" import { build, watch } from "./compiler" @@ -9,6 +9,7 @@ describe("lingui-loader", () => { it("should compile catalog in po format", async () => { const built = await build(path.join(__dirname, "po-format/entrypoint.js")) + console.log(built.stats.errors[0]) const data = await built.loadBundle() expect(built.stats.errors).toEqual([]) expect(built.stats.warnings).toEqual([]) diff --git a/packages/loader/vitest.config.mts b/packages/loader/vitest.config.mts index 01e2a4232..efb474cc7 100644 --- a/packages/loader/vitest.config.mts +++ b/packages/loader/vitest.config.mts @@ -1,10 +1,15 @@ import { defineConfig } from "vitest/config" import tsconfigPaths from "vite-tsconfig-paths" -import commonjs from 'vite-plugin-commonjs' +import commonjs from "vite-plugin-commonjs" export default defineConfig({ plugins: [commonjs(), tsconfigPaths({ projects: ["../../tsconfig.json"] })], test: { environment: "node", + server: { + deps: { + inline: ["webpack", "loader-runner"], + }, + }, }, }) diff --git a/packages/message-utils/src/compileMessage.test.ts b/packages/message-utils/src/compileMessage.test.ts index 8071c12dc..ac1471364 100644 --- a/packages/message-utils/src/compileMessage.test.ts +++ b/packages/message-utils/src/compileMessage.test.ts @@ -1,5 +1,6 @@ import { mockConsole } from "@lingui/jest-mocks" import { compileMessage } from "./compileMessage" +import { describe, it, expect } from "vitest" describe("compileMessage", () => { it("should handle an error if message has syntax errors", () => { @@ -38,11 +39,11 @@ describe("compileMessage", () => { const tokens = compileMessage("Hey {name}!") expect(tokens).toMatchInlineSnapshot(` [ - Hey , + "Hey ", [ - name, + "name", ], - !, + "!", ] `) }) @@ -51,7 +52,7 @@ describe("compileMessage", () => { const tokens = compileMessage("Hey '{name}'!") expect(tokens).toMatchInlineSnapshot(` [ - Hey {name}!, + "Hey {name}!", ] `) }) @@ -63,26 +64,26 @@ describe("compileMessage", () => { expect(tokens).toMatchInlineSnapshot(` [ [ - value, - plural, + "value", + "plural", { - 0: [ - No Books, + "0": [ + "No Books", ], - 42: [ - FourtyTwo books, + "42": [ + "FourtyTwo books", ], - 99: [ - Books with problems, + "99": [ + "Books with problems", ], - offset: 1, - one: [ - #, - Book, + "offset": 1, + "one": [ + "#", + " Book", ], - other: [ - #, - Books, + "other": [ + "#", + " Books", ], }, ], @@ -97,17 +98,17 @@ describe("compileMessage", () => { expect(tokens).toMatchInlineSnapshot(` [ [ - value, - selectordinal, + "value", + "selectordinal", { - offset: undefined, - one: [ - #, - st Book, + "offset": undefined, + "one": [ + "#", + "st Book", ], - two: [ - #, - nd Book, + "two": [ + "#", + "nd Book", ], }, ], @@ -126,48 +127,48 @@ describe("compileMessage", () => { expect(tokens).toMatchInlineSnapshot(` [ [ - gender, - select, + "gender", + "select", { - female: [ + "female": [ [ - numOfGuests, - plural, + "numOfGuests", + "plural", { - offset: undefined, - one: [ - She invites one guest, + "offset": undefined, + "one": [ + "She invites one guest", ], - other: [ - She invites , - #, - guests, + "other": [ + "She invites ", + "#", + " guests", ], }, ], ], - male: [ + "male": [ [ - numOfGuests, - plural, + "numOfGuests", + "plural", { - offset: undefined, - one: [ - He invites one guest, + "offset": undefined, + "one": [ + "He invites one guest", ], - other: [ - He invites , - #, - guests, + "other": [ + "He invites ", + "#", + " guests", ], }, ], ], - offset: undefined, - other: [ - They is , + "offset": undefined, + "other": [ + "They is ", [ - gender, + "gender", ], ], }, @@ -181,15 +182,15 @@ describe("compileMessage", () => { expect(tokens).toMatchInlineSnapshot(` [ [ - value, - select, + "value", + "select", { - female: [ - She, + "female": [ + "She", ], - offset: undefined, - other: [ - They, + "offset": undefined, + "other": [ + "They", ], }, ], @@ -202,8 +203,8 @@ describe("compileMessage", () => { expect(tokens).toMatchInlineSnapshot(` [ [ - value, - date, + "value", + "date", ], ] `) @@ -213,17 +214,17 @@ describe("compileMessage", () => { expect(compileMessage("{value, number, percent}")).toMatchInlineSnapshot(` [ [ - value, - number, - percent, + "value", + "number", + "percent", ], ] `) expect(compileMessage("{value, number}")).toMatchInlineSnapshot(` [ [ - value, - number, + "value", + "number", ], ] `) diff --git a/packages/remote-loader/test/index.test.ts b/packages/remote-loader/test/index.test.ts index cd7c2f9a8..6f6b27fec 100644 --- a/packages/remote-loader/test/index.test.ts +++ b/packages/remote-loader/test/index.test.ts @@ -1,8 +1,8 @@ -import { describe, expect, it } from "vitest"; +import { describe, expect, it } from "vitest" import { remoteLoader } from "../src" import fs from "fs" -xdescribe("remote-loader", () => { +describe.skip("remote-loader", () => { it("should compile correctly JSON messages coming from the fly", async () => { const unlink = createConfig("minimal") const messages = await simulatedJsonResponse() diff --git a/yarn.lock b/yarn.lock index 75b1d8fe1..81fa6095a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3011,6 +3011,7 @@ __metadata: "@lingui/cli": 5.1.2 "@lingui/conf": 5.1.2 "@lingui/format-json": 5.1.2 + jiti: ^2.4.2 unbuild: 2.0.0 vite-tsconfig-paths: ^5.0.1 vitest: ^2.1.1 @@ -11120,6 +11121,15 @@ __metadata: languageName: node linkType: hard +"jiti@npm:^2.4.2": + version: 2.4.2 + resolution: "jiti@npm:2.4.2" + bin: + jiti: lib/jiti-cli.mjs + checksum: c6c30c7b6b293e9f26addfb332b63d964a9f143cdd2cf5e946dbe5143db89f7c1b50ad9223b77fb1f6ddb0b9c5ecef995fea024ecf7d2861d285d779cde66e1e + languageName: node + linkType: hard + "js-lingui-workspaces@workspace:.": version: 0.0.0-use.local resolution: "js-lingui-workspaces@workspace:."