├── compare-automation.png
├── .gitignore
├── jest.config.js
├── package.json
├── tests
├── translations
│ ├── react-i18next
│ │ ├── Basic.tsx
│ │ └── Basic_expected.tsx
│ └── react-intl
│ │ ├── Basic.tsx
│ │ └── Basic_expected.tsx
├── transformer-react-intl.test.ts
└── transformer-react-i18next.test.ts
├── LICENSE
├── README.md
├── src
└── transformers
│ ├── react-intl.ts
│ └── react-i18next.ts
├── tsconfig.json
└── pnpm-lock.yaml
/compare-automation.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lingualdev/react-i18n-transformations/HEAD/compare-automation.png
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules/
2 |
3 | npm-debug.log*
4 | yarn-debug.log*
5 | yarn-error.log*
6 |
7 | yarn.lock
8 |
9 | .DS_Store
--------------------------------------------------------------------------------
/jest.config.js:
--------------------------------------------------------------------------------
1 | /** @type {import('ts-jest').JestConfigWithTsJest} */
2 | module.exports = {
3 | preset: "ts-jest",
4 | testEnvironment: "node",
5 | };
6 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@lingual/react-i18n-transformations",
3 | "version": "0.0.1",
4 | "description": "Example repository showing how to transform React to introduce i18n",
5 | "license": "MIT",
6 | "scripts": {
7 | "test": "jest"
8 | },
9 | "dependencies": {
10 | "typescript": "^5.7.2"
11 | },
12 | "devDependencies": {
13 | "@types/jest": "^29.5.14",
14 | "@types/node": "^22.10.2",
15 | "jest": "^29.7.0",
16 | "ts-jest": "^29.2.5",
17 | "ts-morph": "^24.0.0"
18 | },
19 | "repository": {
20 | "type": "git",
21 | "url": "https://github.com/lingualdev/i18n-check.git"
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/tests/translations/react-i18next/Basic.tsx:
--------------------------------------------------------------------------------
1 | // @ts-nocheck
2 | import React from "react";
3 |
4 | export const Basic = () => {
5 | return (
6 |
7 |
This is some title
8 |
This is some paragraph
9 |
This is some div
10 |
11 | );
12 | };
13 |
14 | function DoNothing() {
15 | return {""}
;
16 | }
17 |
18 | function HasTranslations() {
19 | return Some translation in here
;
20 | }
21 |
22 | function HasTranslationsWithTFunction() {
23 | const { t } = useTranslation();
24 | return (
25 |
26 |
{t("some.key", "this is some other translation")}
27 | Some untranslated text inside a span
28 |
29 | );
30 | }
31 |
--------------------------------------------------------------------------------
/tests/translations/react-intl/Basic.tsx:
--------------------------------------------------------------------------------
1 | // @ts-nocheck
2 | import React from "react";
3 |
4 | export const Basic = () => {
5 | return (
6 |
7 |
This is some title
8 |
This is some paragraph
9 |
This is some div
10 |
11 | );
12 | };
13 |
14 | function DoNothing() {
15 | return {""}
;
16 | }
17 |
18 | function HasTranslations() {
19 | return Some translation in here
;
20 | }
21 |
22 | function HasTranslationsWithIntl() {
23 | const intl = useIntl();
24 | return (
25 |
26 |
27 | {intl.formatMessage({
28 | id: "some.existing.key",
29 | defaultMessage: "this is some other translation",
30 | })}
31 |
32 | Some untranslated text inside a span
33 |
34 | );
35 | }
36 |
--------------------------------------------------------------------------------
/tests/transformer-react-intl.test.ts:
--------------------------------------------------------------------------------
1 | import { transform } from "../src/transformers/react-intl";
2 | import fs from "node:fs";
3 | import path from "node:path";
4 |
5 | const originalFile = path.join(
6 | __dirname,
7 | "./translations/react-intl/Basic.tsx"
8 | );
9 | const compareFile = path.join(
10 | __dirname,
11 | "./translations/react-intl/BasicTest.tsx"
12 | );
13 | const expectedFile = path.join(
14 | __dirname,
15 | "./translations/react-intl/Basic_expected.tsx"
16 | );
17 |
18 | beforeEach(() => {
19 | fs.copyFile(originalFile, compareFile, (error) => {
20 | if (error) {
21 | throw error;
22 | }
23 | });
24 | });
25 | afterEach(() => {
26 | fs.rmSync(compareFile);
27 | });
28 |
29 | describe("transformer", () => {
30 | it("should replace a string literal with intl.formatMessage", () => {
31 | transform({
32 | filesPaths: [compareFile],
33 | });
34 |
35 | const result = fs.readFileSync(compareFile, "utf-8");
36 | const expected = fs.readFileSync(expectedFile, "utf8");
37 |
38 | expect(result).toEqual(expected);
39 | });
40 | });
41 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2024 lingual
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/tests/translations/react-i18next/Basic_expected.tsx:
--------------------------------------------------------------------------------
1 | // @ts-nocheck
2 | import React from "react";
3 | import { useTranslation } from "react-i18next";
4 |
5 | export const Basic = () => {
6 | const { t } = useTranslation();
7 |
8 | return (
9 |
10 |
{t("basictest.this_is_some_title", "This is some title")}
11 |
{t("basictest.this_is_some_paragraph", "This is some paragraph")}
12 |
{t("basictest.this_is_some_div", "This is some div")}
13 |
14 | );
15 | };
16 |
17 | function DoNothing() {
18 | return {""}
;
19 | }
20 |
21 | function HasTranslations() {
22 | const { t } = useTranslation();
23 |
24 | return {t("basictest.some_translation_in_here", "Some translation in here")}
;
25 | }
26 |
27 | function HasTranslationsWithTFunction() {
28 | const { t } = useTranslation();
29 | return (
30 |
31 |
{t("some.key", "this is some other translation")}
32 | {t("basictest.some_untranslated_text_inside_a_span", "Some untranslated text inside a span")}
33 |
34 | );
35 | }
36 |
--------------------------------------------------------------------------------
/tests/transformer-react-i18next.test.ts:
--------------------------------------------------------------------------------
1 | import { transform } from "../src/transformers/react-i18next";
2 | import fs from "node:fs";
3 | import path from "node:path";
4 |
5 | const originalFile = path.join(
6 | __dirname,
7 | "./translations/react-i18next/Basic.tsx"
8 | );
9 | const compareFile = path.join(
10 | __dirname,
11 | "./translations/react-i18next/BasicTest.tsx"
12 | );
13 | const expectedFile = path.join(
14 | __dirname,
15 | "./translations/react-i18next/Basic_expected.tsx"
16 | );
17 |
18 | beforeEach(() => {
19 | fs.copyFile(originalFile, compareFile, (error) => {
20 | if (error) {
21 | throw error;
22 | }
23 | });
24 | });
25 | afterEach(() => {
26 | fs.rmSync(compareFile);
27 | });
28 |
29 | describe("transformer", () => {
30 | it("should replace a string literal with a t function", () => {
31 | // const tsConfigFilePath = path.join(cwd(), "tsconfig.json");
32 |
33 | transform({
34 | filesPaths: [compareFile],
35 | });
36 |
37 | const result = fs.readFileSync(compareFile, "utf-8");
38 | const expected = fs.readFileSync(expectedFile, "utf-8");
39 |
40 | expect(result).toEqual(expected);
41 | });
42 | });
43 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Scaffolding React i18n examples
2 |
3 | This repository contains examples on how to transform your React code to replace hard coded strings with translation functions. The setup can be seen as a starting point for building your own transformers to scaffold your `react-i18next` or `react-intl` internationalization. These examples are used in the blog post [Scaffolding your internatlization in React with automation](https://lingual.dev/blog/automating-your-react-internationalization/).
4 |
5 | 
6 |
7 | The examples use [ts-morph](https://ts-morph.com/) but this can be replaced by either working directly with the [Typscript compiler API](https://github.com/microsoft/TypeScript/wiki/Using-the-Compiler-API) or using another AST parser.
8 |
9 | There are more transformations than can be useful like automatically replacing any alt tags text with a translation function. The `transform` function can be extended to handle more automatic transformations.
10 |
11 | ## How to test
12 |
13 | The `transformers` can be found in the [`src/transformers`](./src/transformers/) folder, and the tests in the [`tests`](./tests/) folder.
14 |
15 | Install all required dependencies:
16 |
17 | ```bash
18 | pnpm install
19 | ```
20 |
21 | Then run all the tests:
22 |
23 | ```bash
24 | pnpm test
25 | ```
26 |
--------------------------------------------------------------------------------
/tests/translations/react-intl/Basic_expected.tsx:
--------------------------------------------------------------------------------
1 | // @ts-nocheck
2 | import React from "react";
3 | import { useIntl } from "react-intl";
4 |
5 | export const Basic = () => {
6 | const intl = useIntl();
7 |
8 | return (
9 |
10 |
{intl.formatMessage({ id: "basictest.this_is_some_title", defaultMessage: "This is some title" })}
11 |
{intl.formatMessage({ id: "basictest.this_is_some_paragraph", defaultMessage: "This is some paragraph" })}
12 |
{intl.formatMessage({ id: "basictest.this_is_some_div", defaultMessage: "This is some div" })}
13 |
14 | );
15 | };
16 |
17 | function DoNothing() {
18 | return {""}
;
19 | }
20 |
21 | function HasTranslations() {
22 | const intl = useIntl();
23 |
24 | return {intl.formatMessage({ id: "basictest.some_translation_in_here", defaultMessage: "Some translation in here" })}
;
25 | }
26 |
27 | function HasTranslationsWithIntl() {
28 | const intl = useIntl();
29 | return (
30 |
31 |
32 | {intl.formatMessage({
33 | id: "some.existing.key",
34 | defaultMessage: "this is some other translation",
35 | })}
36 |
37 | {intl.formatMessage({ id: "basictest.some_untranslated_text_inside_a_span", defaultMessage: "Some untranslated text inside a span" })}
38 |
39 | );
40 | }
41 |
--------------------------------------------------------------------------------
/src/transformers/react-intl.ts:
--------------------------------------------------------------------------------
1 | import { printNode, Project, ProjectOptions, SyntaxKind, ts } from "ts-morph";
2 |
3 | const factory = ts.factory;
4 |
5 | export const transform = ({
6 | tsConfigFilePath,
7 | filesPaths,
8 | }: {
9 | tsConfigFilePath?: ProjectOptions["tsConfigFilePath"];
10 | filesPaths: string | string[];
11 | }) => {
12 | const project = new Project({
13 | tsConfigFilePath,
14 | });
15 |
16 | project.addSourceFilesAtPaths(filesPaths);
17 |
18 | for (const sourceFile of project.getSourceFiles()) {
19 | for (const statement of sourceFile.getStatements()) {
20 | const hasTranslatableContent = statement
21 | .getDescendantsOfKind(SyntaxKind.JsxText)
22 | .some((node) => !node.containsOnlyTriviaWhiteSpaces());
23 |
24 | if (!hasTranslatableContent) {
25 | continue;
26 | }
27 |
28 | statement.transform((traversal) => {
29 | const node = traversal.visitChildren();
30 | if (ts.isJsxText(node) && !node.containsOnlyTriviaWhiteSpaces) {
31 | const text = node.getText();
32 | const key = `${sourceFile
33 | .getBaseNameWithoutExtension()
34 | .toLowerCase()}.${text
35 | .substring(0, 100)
36 | .replace(/ /g, "_")
37 | .toLowerCase()}`;
38 |
39 | return traversal.factory.updateJsxText(
40 | node,
41 | `{intl.formatMessage({id: "${key}", defaultMessage: "${text}"})}`
42 | );
43 | }
44 | return node;
45 | });
46 |
47 | // add import function
48 | const hasUserTranslationImport =
49 | sourceFile.getImportDeclaration("react-intl");
50 |
51 | if (!hasUserTranslationImport) {
52 | sourceFile.addImportDeclaration({
53 | namedImports: ["useIntl"],
54 | moduleSpecifier: "react-intl",
55 | });
56 | }
57 |
58 | // add useTranslation hook
59 | const hasTranslateHook = statement
60 | .getDescendantsOfKind(ts.SyntaxKind.CallExpression)
61 | .some((node) => node.getText().startsWith("useIntl"));
62 |
63 | if (!hasTranslateHook) {
64 | // add the useTranslation hook as no translation was found
65 | const [blocks] = statement.getDescendantsOfKind(SyntaxKind.Block);
66 | const useTranslationStatement = printNode(
67 | factory.createVariableStatement(
68 | undefined,
69 | factory.createVariableDeclarationList(
70 | [
71 | factory.createVariableDeclaration(
72 | factory.createIdentifier("intl"),
73 | undefined,
74 | undefined,
75 | factory.createCallExpression(
76 | factory.createIdentifier("useIntl"),
77 | undefined,
78 | []
79 | )
80 | ),
81 | ],
82 | ts.NodeFlags.Const
83 | )
84 | )
85 | );
86 |
87 | if (blocks) {
88 | blocks.insertText(blocks.getStatements()[0].getPos(), (writer) => {
89 | writer.newLine();
90 | writer.write(useTranslationStatement);
91 | writer.newLine();
92 | });
93 | }
94 | }
95 | }
96 |
97 | sourceFile.formatText();
98 | sourceFile.saveSync();
99 | }
100 | };
101 |
--------------------------------------------------------------------------------
/src/transformers/react-i18next.ts:
--------------------------------------------------------------------------------
1 | import { printNode, Project, ProjectOptions, SyntaxKind, ts } from "ts-morph";
2 |
3 | const factory = ts.factory;
4 |
5 | export const transform = ({
6 | tsConfigFilePath,
7 | filesPaths,
8 | }: {
9 | tsConfigFilePath?: ProjectOptions["tsConfigFilePath"];
10 | filesPaths: string | string[];
11 | }) => {
12 | const project = new Project({
13 | tsConfigFilePath,
14 | });
15 |
16 | project.addSourceFilesAtPaths(filesPaths);
17 |
18 | for (const sourceFile of project.getSourceFiles()) {
19 | for (const statement of sourceFile.getStatements()) {
20 | const hasTranslatableContent = statement
21 | .getDescendantsOfKind(SyntaxKind.JsxText)
22 | .some((node) => !node.containsOnlyTriviaWhiteSpaces());
23 |
24 | if (!hasTranslatableContent) {
25 | continue;
26 | }
27 |
28 | statement.transform((traversal) => {
29 | const node = traversal.visitChildren();
30 | if (ts.isJsxText(node) && !node.containsOnlyTriviaWhiteSpaces) {
31 | const text = node.getText();
32 | const key = `${sourceFile
33 | .getBaseNameWithoutExtension()
34 | .toLowerCase()}.${text
35 | .substring(0, 100)
36 | .replace(/ /g, "_")
37 | .toLowerCase()}`;
38 |
39 | return traversal.factory.updateJsxText(
40 | node,
41 | `{t("${key}", "${text}")}`
42 | );
43 | }
44 | return node;
45 | });
46 |
47 | // add import function
48 | const hasUserTranslationImport =
49 | sourceFile.getImportDeclaration("react-i18next");
50 |
51 | if (!hasUserTranslationImport) {
52 | sourceFile.addImportDeclaration({
53 | namedImports: ["useTranslation"],
54 | moduleSpecifier: "react-i18next",
55 | });
56 | }
57 |
58 | // add useTranslation hook
59 | const hasTranslateHook = statement
60 | .getDescendantsOfKind(ts.SyntaxKind.CallExpression)
61 | .some((node) => node.getText().startsWith("useTranslation"));
62 |
63 | if (!hasTranslateHook) {
64 | // add the useTranslation hook as no translation was found
65 | const [blocks] = statement.getDescendantsOfKind(SyntaxKind.Block);
66 | const useTranslationStatement = printNode(
67 | factory.createVariableStatement(
68 | undefined,
69 | factory.createVariableDeclarationList(
70 | [
71 | factory.createVariableDeclaration(
72 | factory.createObjectBindingPattern([
73 | factory.createBindingElement(
74 | undefined,
75 | undefined,
76 | factory.createIdentifier("t"),
77 | undefined
78 | ),
79 | ]),
80 | undefined,
81 | undefined,
82 | factory.createCallExpression(
83 | factory.createIdentifier("useTranslation"),
84 | undefined,
85 | []
86 | )
87 | ),
88 | ],
89 | ts.NodeFlags.Const
90 | )
91 | )
92 | );
93 |
94 | if (blocks) {
95 | blocks.insertText(blocks.getStatements()[0].getPos(), (writer) => {
96 | writer.newLine();
97 | writer.write(useTranslationStatement);
98 | writer.newLine();
99 | });
100 | }
101 | }
102 | }
103 |
104 | sourceFile.formatText();
105 | sourceFile.saveSync();
106 | }
107 | };
108 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | /* Visit https://aka.ms/tsconfig to read more about this file */
4 |
5 | /* Projects */
6 | // "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */
7 | // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */
8 | // "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */
9 | // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */
10 | // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */
11 | // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */
12 |
13 | /* Language and Environment */
14 | "target": "es2016" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */,
15 | // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */
16 | // "jsx": "preserve", /* Specify what JSX code is generated. */
17 | // "experimentalDecorators": true, /* Enable experimental support for legacy experimental decorators. */
18 | // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */
19 | // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */
20 | // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */
21 | // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */
22 | // "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */
23 | // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */
24 | // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */
25 | // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */
26 |
27 | /* Modules */
28 | "module": "NodeNext" /* Specify what module code is generated. */,
29 | // "rootDir": "./", /* Specify the root folder within your source files. */
30 | // "moduleResolution": "node10", /* Specify how TypeScript looks up a file from a given module specifier. */
31 | // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */
32 | // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */
33 | // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */
34 | // "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */
35 | "types": [
36 | "node",
37 | "jest"
38 | ] /* Specify type package names to be included without being referenced in a source file. */,
39 | // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */
40 | // "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */
41 | // "allowImportingTsExtensions": true, /* Allow imports to include TypeScript file extensions. Requires '--moduleResolution bundler' and either '--noEmit' or '--emitDeclarationOnly' to be set. */
42 | // "resolvePackageJsonExports": true, /* Use the package.json 'exports' field when resolving package imports. */
43 | // "resolvePackageJsonImports": true, /* Use the package.json 'imports' field when resolving imports. */
44 | // "customConditions": [], /* Conditions to set in addition to the resolver-specific defaults when resolving imports. */
45 | // "resolveJsonModule": true, /* Enable importing .json files. */
46 | // "allowArbitraryExtensions": true, /* Enable importing files with any extension, provided a declaration file is present. */
47 | // "noResolve": true, /* Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project. */
48 |
49 | /* JavaScript Support */
50 | // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */
51 | // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */
52 | // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */
53 |
54 | /* Emit */
55 | "declaration": true /* Generate .d.ts files from TypeScript and JavaScript files in your project. */,
56 | // "declarationMap": true, /* Create sourcemaps for d.ts files. */
57 | // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */
58 | // "sourceMap": true, /* Create source map files for emitted JavaScript files. */
59 | // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */
60 | // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */
61 | "outDir": "./dist" /* Specify an output folder for all emitted files. */,
62 | // "removeComments": true, /* Disable emitting comments. */
63 | // "noEmit": true, /* Disable emitting files from a compilation. */
64 | // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */
65 | // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types. */
66 | // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */
67 | // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */
68 | // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */
69 | // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */
70 | // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */
71 | // "newLine": "crlf", /* Set the newline character for emitting files. */
72 | // "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */
73 | // "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */
74 | // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */
75 | // "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */
76 | // "declarationDir": "./", /* Specify the output directory for generated declaration files. */
77 | // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */
78 |
79 | /* Interop Constraints */
80 | // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */
81 | // "verbatimModuleSyntax": true, /* Do not transform or elide any imports or exports not marked as type-only, ensuring they are written in the output file's format based on the 'module' setting. */
82 | // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */
83 | "esModuleInterop": true /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */,
84 | // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */
85 | "forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */,
86 |
87 | /* Type Checking */
88 | "strict": true /* Enable all strict type-checking options. */,
89 | // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */
90 | // "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */
91 | // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */
92 | // "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */
93 | // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */
94 | // "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */
95 | // "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */
96 | // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */
97 | // "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */
98 | // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */
99 | // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */
100 | // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */
101 | // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */
102 | // "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */
103 | // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */
104 | // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */
105 | // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */
106 | // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */
107 |
108 | /* Completeness */
109 | // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */
110 | "skipLibCheck": true /* Skip type checking all .d.ts files. */
111 | },
112 | "exclude": ["node_modules"]
113 | }
114 |
--------------------------------------------------------------------------------
/pnpm-lock.yaml:
--------------------------------------------------------------------------------
1 | lockfileVersion: '9.0'
2 |
3 | settings:
4 | autoInstallPeers: true
5 | excludeLinksFromLockfile: false
6 |
7 | importers:
8 |
9 | .:
10 | dependencies:
11 | typescript:
12 | specifier: ^5.7.2
13 | version: 5.7.2
14 | devDependencies:
15 | '@types/jest':
16 | specifier: ^29.5.14
17 | version: 29.5.14
18 | '@types/node':
19 | specifier: ^22.10.2
20 | version: 22.10.2
21 | jest:
22 | specifier: ^29.7.0
23 | version: 29.7.0(@types/node@22.10.2)
24 | ts-jest:
25 | specifier: ^29.2.5
26 | version: 29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(jest@29.7.0(@types/node@22.10.2))(typescript@5.7.2)
27 | ts-morph:
28 | specifier: ^24.0.0
29 | version: 24.0.0
30 |
31 | packages:
32 |
33 | '@ampproject/remapping@2.3.0':
34 | resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
35 | engines: {node: '>=6.0.0'}
36 |
37 | '@babel/code-frame@7.26.2':
38 | resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==}
39 | engines: {node: '>=6.9.0'}
40 |
41 | '@babel/compat-data@7.26.3':
42 | resolution: {integrity: sha512-nHIxvKPniQXpmQLb0vhY3VaFb3S0YrTAwpOWJZh1wn3oJPjJk9Asva204PsBdmAE8vpzfHudT8DB0scYvy9q0g==}
43 | engines: {node: '>=6.9.0'}
44 |
45 | '@babel/core@7.26.0':
46 | resolution: {integrity: sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==}
47 | engines: {node: '>=6.9.0'}
48 |
49 | '@babel/generator@7.26.3':
50 | resolution: {integrity: sha512-6FF/urZvD0sTeO7k6/B15pMLC4CHUv1426lzr3N01aHJTl046uCAh9LXW/fzeXXjPNCJ6iABW5XaWOsIZB93aQ==}
51 | engines: {node: '>=6.9.0'}
52 |
53 | '@babel/helper-compilation-targets@7.25.9':
54 | resolution: {integrity: sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==}
55 | engines: {node: '>=6.9.0'}
56 |
57 | '@babel/helper-module-imports@7.25.9':
58 | resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==}
59 | engines: {node: '>=6.9.0'}
60 |
61 | '@babel/helper-module-transforms@7.26.0':
62 | resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==}
63 | engines: {node: '>=6.9.0'}
64 | peerDependencies:
65 | '@babel/core': ^7.0.0
66 |
67 | '@babel/helper-plugin-utils@7.25.9':
68 | resolution: {integrity: sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==}
69 | engines: {node: '>=6.9.0'}
70 |
71 | '@babel/helper-string-parser@7.25.9':
72 | resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==}
73 | engines: {node: '>=6.9.0'}
74 |
75 | '@babel/helper-validator-identifier@7.25.9':
76 | resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==}
77 | engines: {node: '>=6.9.0'}
78 |
79 | '@babel/helper-validator-option@7.25.9':
80 | resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==}
81 | engines: {node: '>=6.9.0'}
82 |
83 | '@babel/helpers@7.26.0':
84 | resolution: {integrity: sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==}
85 | engines: {node: '>=6.9.0'}
86 |
87 | '@babel/parser@7.26.3':
88 | resolution: {integrity: sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA==}
89 | engines: {node: '>=6.0.0'}
90 | hasBin: true
91 |
92 | '@babel/plugin-syntax-async-generators@7.8.4':
93 | resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==}
94 | peerDependencies:
95 | '@babel/core': ^7.0.0-0
96 |
97 | '@babel/plugin-syntax-bigint@7.8.3':
98 | resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==}
99 | peerDependencies:
100 | '@babel/core': ^7.0.0-0
101 |
102 | '@babel/plugin-syntax-class-properties@7.12.13':
103 | resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==}
104 | peerDependencies:
105 | '@babel/core': ^7.0.0-0
106 |
107 | '@babel/plugin-syntax-class-static-block@7.14.5':
108 | resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==}
109 | engines: {node: '>=6.9.0'}
110 | peerDependencies:
111 | '@babel/core': ^7.0.0-0
112 |
113 | '@babel/plugin-syntax-import-attributes@7.26.0':
114 | resolution: {integrity: sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==}
115 | engines: {node: '>=6.9.0'}
116 | peerDependencies:
117 | '@babel/core': ^7.0.0-0
118 |
119 | '@babel/plugin-syntax-import-meta@7.10.4':
120 | resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==}
121 | peerDependencies:
122 | '@babel/core': ^7.0.0-0
123 |
124 | '@babel/plugin-syntax-json-strings@7.8.3':
125 | resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==}
126 | peerDependencies:
127 | '@babel/core': ^7.0.0-0
128 |
129 | '@babel/plugin-syntax-jsx@7.25.9':
130 | resolution: {integrity: sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==}
131 | engines: {node: '>=6.9.0'}
132 | peerDependencies:
133 | '@babel/core': ^7.0.0-0
134 |
135 | '@babel/plugin-syntax-logical-assignment-operators@7.10.4':
136 | resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==}
137 | peerDependencies:
138 | '@babel/core': ^7.0.0-0
139 |
140 | '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3':
141 | resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==}
142 | peerDependencies:
143 | '@babel/core': ^7.0.0-0
144 |
145 | '@babel/plugin-syntax-numeric-separator@7.10.4':
146 | resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==}
147 | peerDependencies:
148 | '@babel/core': ^7.0.0-0
149 |
150 | '@babel/plugin-syntax-object-rest-spread@7.8.3':
151 | resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==}
152 | peerDependencies:
153 | '@babel/core': ^7.0.0-0
154 |
155 | '@babel/plugin-syntax-optional-catch-binding@7.8.3':
156 | resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==}
157 | peerDependencies:
158 | '@babel/core': ^7.0.0-0
159 |
160 | '@babel/plugin-syntax-optional-chaining@7.8.3':
161 | resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==}
162 | peerDependencies:
163 | '@babel/core': ^7.0.0-0
164 |
165 | '@babel/plugin-syntax-private-property-in-object@7.14.5':
166 | resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==}
167 | engines: {node: '>=6.9.0'}
168 | peerDependencies:
169 | '@babel/core': ^7.0.0-0
170 |
171 | '@babel/plugin-syntax-top-level-await@7.14.5':
172 | resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==}
173 | engines: {node: '>=6.9.0'}
174 | peerDependencies:
175 | '@babel/core': ^7.0.0-0
176 |
177 | '@babel/plugin-syntax-typescript@7.25.9':
178 | resolution: {integrity: sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==}
179 | engines: {node: '>=6.9.0'}
180 | peerDependencies:
181 | '@babel/core': ^7.0.0-0
182 |
183 | '@babel/template@7.25.9':
184 | resolution: {integrity: sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==}
185 | engines: {node: '>=6.9.0'}
186 |
187 | '@babel/traverse@7.26.4':
188 | resolution: {integrity: sha512-fH+b7Y4p3yqvApJALCPJcwb0/XaOSgtK4pzV6WVjPR5GLFQBRI7pfoX2V2iM48NXvX07NUxxm1Vw98YjqTcU5w==}
189 | engines: {node: '>=6.9.0'}
190 |
191 | '@babel/types@7.26.3':
192 | resolution: {integrity: sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==}
193 | engines: {node: '>=6.9.0'}
194 |
195 | '@bcoe/v8-coverage@0.2.3':
196 | resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==}
197 |
198 | '@istanbuljs/load-nyc-config@1.1.0':
199 | resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==}
200 | engines: {node: '>=8'}
201 |
202 | '@istanbuljs/schema@0.1.3':
203 | resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==}
204 | engines: {node: '>=8'}
205 |
206 | '@jest/console@29.7.0':
207 | resolution: {integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==}
208 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
209 |
210 | '@jest/core@29.7.0':
211 | resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==}
212 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
213 | peerDependencies:
214 | node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
215 | peerDependenciesMeta:
216 | node-notifier:
217 | optional: true
218 |
219 | '@jest/environment@29.7.0':
220 | resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==}
221 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
222 |
223 | '@jest/expect-utils@29.7.0':
224 | resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==}
225 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
226 |
227 | '@jest/expect@29.7.0':
228 | resolution: {integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==}
229 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
230 |
231 | '@jest/fake-timers@29.7.0':
232 | resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==}
233 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
234 |
235 | '@jest/globals@29.7.0':
236 | resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==}
237 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
238 |
239 | '@jest/reporters@29.7.0':
240 | resolution: {integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==}
241 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
242 | peerDependencies:
243 | node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
244 | peerDependenciesMeta:
245 | node-notifier:
246 | optional: true
247 |
248 | '@jest/schemas@29.6.3':
249 | resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==}
250 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
251 |
252 | '@jest/source-map@29.6.3':
253 | resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==}
254 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
255 |
256 | '@jest/test-result@29.7.0':
257 | resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==}
258 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
259 |
260 | '@jest/test-sequencer@29.7.0':
261 | resolution: {integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==}
262 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
263 |
264 | '@jest/transform@29.7.0':
265 | resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==}
266 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
267 |
268 | '@jest/types@29.6.3':
269 | resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==}
270 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
271 |
272 | '@jridgewell/gen-mapping@0.3.8':
273 | resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==}
274 | engines: {node: '>=6.0.0'}
275 |
276 | '@jridgewell/resolve-uri@3.1.2':
277 | resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
278 | engines: {node: '>=6.0.0'}
279 |
280 | '@jridgewell/set-array@1.2.1':
281 | resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==}
282 | engines: {node: '>=6.0.0'}
283 |
284 | '@jridgewell/sourcemap-codec@1.5.0':
285 | resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==}
286 |
287 | '@jridgewell/trace-mapping@0.3.25':
288 | resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==}
289 |
290 | '@sinclair/typebox@0.27.8':
291 | resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==}
292 |
293 | '@sinonjs/commons@3.0.1':
294 | resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==}
295 |
296 | '@sinonjs/fake-timers@10.3.0':
297 | resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==}
298 |
299 | '@ts-morph/common@0.25.0':
300 | resolution: {integrity: sha512-kMnZz+vGGHi4GoHnLmMhGNjm44kGtKUXGnOvrKmMwAuvNjM/PgKVGfUnL7IDvK7Jb2QQ82jq3Zmp04Gy+r3Dkg==}
301 |
302 | '@types/babel__core@7.20.5':
303 | resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==}
304 |
305 | '@types/babel__generator@7.6.8':
306 | resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==}
307 |
308 | '@types/babel__template@7.4.4':
309 | resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==}
310 |
311 | '@types/babel__traverse@7.20.6':
312 | resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==}
313 |
314 | '@types/graceful-fs@4.1.9':
315 | resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==}
316 |
317 | '@types/istanbul-lib-coverage@2.0.6':
318 | resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==}
319 |
320 | '@types/istanbul-lib-report@3.0.3':
321 | resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==}
322 |
323 | '@types/istanbul-reports@3.0.4':
324 | resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==}
325 |
326 | '@types/jest@29.5.14':
327 | resolution: {integrity: sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==}
328 |
329 | '@types/node@22.10.2':
330 | resolution: {integrity: sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==}
331 |
332 | '@types/stack-utils@2.0.3':
333 | resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==}
334 |
335 | '@types/yargs-parser@21.0.3':
336 | resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==}
337 |
338 | '@types/yargs@17.0.33':
339 | resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==}
340 |
341 | ansi-escapes@4.3.2:
342 | resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==}
343 | engines: {node: '>=8'}
344 |
345 | ansi-regex@5.0.1:
346 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
347 | engines: {node: '>=8'}
348 |
349 | ansi-styles@4.3.0:
350 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
351 | engines: {node: '>=8'}
352 |
353 | ansi-styles@5.2.0:
354 | resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==}
355 | engines: {node: '>=10'}
356 |
357 | anymatch@3.1.3:
358 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
359 | engines: {node: '>= 8'}
360 |
361 | argparse@1.0.10:
362 | resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==}
363 |
364 | async@3.2.6:
365 | resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==}
366 |
367 | babel-jest@29.7.0:
368 | resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==}
369 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
370 | peerDependencies:
371 | '@babel/core': ^7.8.0
372 |
373 | babel-plugin-istanbul@6.1.1:
374 | resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==}
375 | engines: {node: '>=8'}
376 |
377 | babel-plugin-jest-hoist@29.6.3:
378 | resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==}
379 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
380 |
381 | babel-preset-current-node-syntax@1.1.0:
382 | resolution: {integrity: sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==}
383 | peerDependencies:
384 | '@babel/core': ^7.0.0
385 |
386 | babel-preset-jest@29.6.3:
387 | resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==}
388 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
389 | peerDependencies:
390 | '@babel/core': ^7.0.0
391 |
392 | balanced-match@1.0.2:
393 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
394 |
395 | brace-expansion@1.1.11:
396 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
397 |
398 | brace-expansion@2.0.1:
399 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
400 |
401 | braces@3.0.3:
402 | resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
403 | engines: {node: '>=8'}
404 |
405 | browserslist@4.24.3:
406 | resolution: {integrity: sha512-1CPmv8iobE2fyRMV97dAcMVegvvWKxmq94hkLiAkUGwKVTyDLw33K+ZxiFrREKmmps4rIw6grcCFCnTMSZ/YiA==}
407 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
408 | hasBin: true
409 |
410 | bs-logger@0.2.6:
411 | resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==}
412 | engines: {node: '>= 6'}
413 |
414 | bser@2.1.1:
415 | resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==}
416 |
417 | buffer-from@1.1.2:
418 | resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
419 |
420 | callsites@3.1.0:
421 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
422 | engines: {node: '>=6'}
423 |
424 | camelcase@5.3.1:
425 | resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==}
426 | engines: {node: '>=6'}
427 |
428 | camelcase@6.3.0:
429 | resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==}
430 | engines: {node: '>=10'}
431 |
432 | caniuse-lite@1.0.30001690:
433 | resolution: {integrity: sha512-5ExiE3qQN6oF8Clf8ifIDcMRCRE/dMGcETG/XGMD8/XiXm6HXQgQTh1yZYLXXpSOsEUlJm1Xr7kGULZTuGtP/w==}
434 |
435 | chalk@4.1.2:
436 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
437 | engines: {node: '>=10'}
438 |
439 | char-regex@1.0.2:
440 | resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==}
441 | engines: {node: '>=10'}
442 |
443 | ci-info@3.9.0:
444 | resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==}
445 | engines: {node: '>=8'}
446 |
447 | cjs-module-lexer@1.4.1:
448 | resolution: {integrity: sha512-cuSVIHi9/9E/+821Qjdvngor+xpnlwnuwIyZOaLmHBVdXL+gP+I6QQB9VkO7RI77YIcTV+S1W9AreJ5eN63JBA==}
449 |
450 | cliui@8.0.1:
451 | resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==}
452 | engines: {node: '>=12'}
453 |
454 | co@4.6.0:
455 | resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==}
456 | engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'}
457 |
458 | code-block-writer@13.0.3:
459 | resolution: {integrity: sha512-Oofo0pq3IKnsFtuHqSF7TqBfr71aeyZDVJ0HpmqB7FBM2qEigL0iPONSCZSO9pE9dZTAxANe5XHG9Uy0YMv8cg==}
460 |
461 | collect-v8-coverage@1.0.2:
462 | resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==}
463 |
464 | color-convert@2.0.1:
465 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
466 | engines: {node: '>=7.0.0'}
467 |
468 | color-name@1.1.4:
469 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
470 |
471 | concat-map@0.0.1:
472 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
473 |
474 | convert-source-map@2.0.0:
475 | resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
476 |
477 | create-jest@29.7.0:
478 | resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==}
479 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
480 | hasBin: true
481 |
482 | cross-spawn@7.0.6:
483 | resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==}
484 | engines: {node: '>= 8'}
485 |
486 | debug@4.4.0:
487 | resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==}
488 | engines: {node: '>=6.0'}
489 | peerDependencies:
490 | supports-color: '*'
491 | peerDependenciesMeta:
492 | supports-color:
493 | optional: true
494 |
495 | dedent@1.5.3:
496 | resolution: {integrity: sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==}
497 | peerDependencies:
498 | babel-plugin-macros: ^3.1.0
499 | peerDependenciesMeta:
500 | babel-plugin-macros:
501 | optional: true
502 |
503 | deepmerge@4.3.1:
504 | resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
505 | engines: {node: '>=0.10.0'}
506 |
507 | detect-newline@3.1.0:
508 | resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==}
509 | engines: {node: '>=8'}
510 |
511 | diff-sequences@29.6.3:
512 | resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==}
513 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
514 |
515 | ejs@3.1.10:
516 | resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==}
517 | engines: {node: '>=0.10.0'}
518 | hasBin: true
519 |
520 | electron-to-chromium@1.5.76:
521 | resolution: {integrity: sha512-CjVQyG7n7Sr+eBXE86HIulnL5N8xZY1sgmOPGuq/F0Rr0FJq63lg0kEtOIDfZBk44FnDLf6FUJ+dsJcuiUDdDQ==}
522 |
523 | emittery@0.13.1:
524 | resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==}
525 | engines: {node: '>=12'}
526 |
527 | emoji-regex@8.0.0:
528 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
529 |
530 | error-ex@1.3.2:
531 | resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==}
532 |
533 | escalade@3.2.0:
534 | resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
535 | engines: {node: '>=6'}
536 |
537 | escape-string-regexp@2.0.0:
538 | resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==}
539 | engines: {node: '>=8'}
540 |
541 | esprima@4.0.1:
542 | resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
543 | engines: {node: '>=4'}
544 | hasBin: true
545 |
546 | execa@5.1.1:
547 | resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==}
548 | engines: {node: '>=10'}
549 |
550 | exit@0.1.2:
551 | resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==}
552 | engines: {node: '>= 0.8.0'}
553 |
554 | expect@29.7.0:
555 | resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==}
556 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
557 |
558 | fast-json-stable-stringify@2.1.0:
559 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
560 |
561 | fb-watchman@2.0.2:
562 | resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==}
563 |
564 | fdir@6.4.2:
565 | resolution: {integrity: sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ==}
566 | peerDependencies:
567 | picomatch: ^3 || ^4
568 | peerDependenciesMeta:
569 | picomatch:
570 | optional: true
571 |
572 | filelist@1.0.4:
573 | resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==}
574 |
575 | fill-range@7.1.1:
576 | resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
577 | engines: {node: '>=8'}
578 |
579 | find-up@4.1.0:
580 | resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==}
581 | engines: {node: '>=8'}
582 |
583 | fs.realpath@1.0.0:
584 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
585 |
586 | fsevents@2.3.3:
587 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
588 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
589 | os: [darwin]
590 |
591 | function-bind@1.1.2:
592 | resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
593 |
594 | gensync@1.0.0-beta.2:
595 | resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
596 | engines: {node: '>=6.9.0'}
597 |
598 | get-caller-file@2.0.5:
599 | resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
600 | engines: {node: 6.* || 8.* || >= 10.*}
601 |
602 | get-package-type@0.1.0:
603 | resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==}
604 | engines: {node: '>=8.0.0'}
605 |
606 | get-stream@6.0.1:
607 | resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==}
608 | engines: {node: '>=10'}
609 |
610 | glob@7.2.3:
611 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
612 | deprecated: Glob versions prior to v9 are no longer supported
613 |
614 | globals@11.12.0:
615 | resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
616 | engines: {node: '>=4'}
617 |
618 | graceful-fs@4.2.11:
619 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
620 |
621 | has-flag@4.0.0:
622 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
623 | engines: {node: '>=8'}
624 |
625 | hasown@2.0.2:
626 | resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
627 | engines: {node: '>= 0.4'}
628 |
629 | html-escaper@2.0.2:
630 | resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==}
631 |
632 | human-signals@2.1.0:
633 | resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==}
634 | engines: {node: '>=10.17.0'}
635 |
636 | import-local@3.2.0:
637 | resolution: {integrity: sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==}
638 | engines: {node: '>=8'}
639 | hasBin: true
640 |
641 | imurmurhash@0.1.4:
642 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
643 | engines: {node: '>=0.8.19'}
644 |
645 | inflight@1.0.6:
646 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
647 | deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
648 |
649 | inherits@2.0.4:
650 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
651 |
652 | is-arrayish@0.2.1:
653 | resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==}
654 |
655 | is-core-module@2.16.1:
656 | resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==}
657 | engines: {node: '>= 0.4'}
658 |
659 | is-fullwidth-code-point@3.0.0:
660 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
661 | engines: {node: '>=8'}
662 |
663 | is-generator-fn@2.1.0:
664 | resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==}
665 | engines: {node: '>=6'}
666 |
667 | is-number@7.0.0:
668 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
669 | engines: {node: '>=0.12.0'}
670 |
671 | is-stream@2.0.1:
672 | resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==}
673 | engines: {node: '>=8'}
674 |
675 | isexe@2.0.0:
676 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
677 |
678 | istanbul-lib-coverage@3.2.2:
679 | resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==}
680 | engines: {node: '>=8'}
681 |
682 | istanbul-lib-instrument@5.2.1:
683 | resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==}
684 | engines: {node: '>=8'}
685 |
686 | istanbul-lib-instrument@6.0.3:
687 | resolution: {integrity: sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==}
688 | engines: {node: '>=10'}
689 |
690 | istanbul-lib-report@3.0.1:
691 | resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==}
692 | engines: {node: '>=10'}
693 |
694 | istanbul-lib-source-maps@4.0.1:
695 | resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==}
696 | engines: {node: '>=10'}
697 |
698 | istanbul-reports@3.1.7:
699 | resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==}
700 | engines: {node: '>=8'}
701 |
702 | jake@10.9.2:
703 | resolution: {integrity: sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==}
704 | engines: {node: '>=10'}
705 | hasBin: true
706 |
707 | jest-changed-files@29.7.0:
708 | resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==}
709 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
710 |
711 | jest-circus@29.7.0:
712 | resolution: {integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==}
713 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
714 |
715 | jest-cli@29.7.0:
716 | resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==}
717 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
718 | hasBin: true
719 | peerDependencies:
720 | node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
721 | peerDependenciesMeta:
722 | node-notifier:
723 | optional: true
724 |
725 | jest-config@29.7.0:
726 | resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==}
727 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
728 | peerDependencies:
729 | '@types/node': '*'
730 | ts-node: '>=9.0.0'
731 | peerDependenciesMeta:
732 | '@types/node':
733 | optional: true
734 | ts-node:
735 | optional: true
736 |
737 | jest-diff@29.7.0:
738 | resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==}
739 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
740 |
741 | jest-docblock@29.7.0:
742 | resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==}
743 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
744 |
745 | jest-each@29.7.0:
746 | resolution: {integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==}
747 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
748 |
749 | jest-environment-node@29.7.0:
750 | resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==}
751 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
752 |
753 | jest-get-type@29.6.3:
754 | resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==}
755 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
756 |
757 | jest-haste-map@29.7.0:
758 | resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==}
759 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
760 |
761 | jest-leak-detector@29.7.0:
762 | resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==}
763 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
764 |
765 | jest-matcher-utils@29.7.0:
766 | resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==}
767 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
768 |
769 | jest-message-util@29.7.0:
770 | resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==}
771 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
772 |
773 | jest-mock@29.7.0:
774 | resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==}
775 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
776 |
777 | jest-pnp-resolver@1.2.3:
778 | resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==}
779 | engines: {node: '>=6'}
780 | peerDependencies:
781 | jest-resolve: '*'
782 | peerDependenciesMeta:
783 | jest-resolve:
784 | optional: true
785 |
786 | jest-regex-util@29.6.3:
787 | resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==}
788 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
789 |
790 | jest-resolve-dependencies@29.7.0:
791 | resolution: {integrity: sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==}
792 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
793 |
794 | jest-resolve@29.7.0:
795 | resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==}
796 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
797 |
798 | jest-runner@29.7.0:
799 | resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==}
800 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
801 |
802 | jest-runtime@29.7.0:
803 | resolution: {integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==}
804 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
805 |
806 | jest-snapshot@29.7.0:
807 | resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==}
808 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
809 |
810 | jest-util@29.7.0:
811 | resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==}
812 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
813 |
814 | jest-validate@29.7.0:
815 | resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==}
816 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
817 |
818 | jest-watcher@29.7.0:
819 | resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==}
820 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
821 |
822 | jest-worker@29.7.0:
823 | resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==}
824 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
825 |
826 | jest@29.7.0:
827 | resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==}
828 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
829 | hasBin: true
830 | peerDependencies:
831 | node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
832 | peerDependenciesMeta:
833 | node-notifier:
834 | optional: true
835 |
836 | js-tokens@4.0.0:
837 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
838 |
839 | js-yaml@3.14.1:
840 | resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==}
841 | hasBin: true
842 |
843 | jsesc@3.1.0:
844 | resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==}
845 | engines: {node: '>=6'}
846 | hasBin: true
847 |
848 | json-parse-even-better-errors@2.3.1:
849 | resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
850 |
851 | json5@2.2.3:
852 | resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
853 | engines: {node: '>=6'}
854 | hasBin: true
855 |
856 | kleur@3.0.3:
857 | resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==}
858 | engines: {node: '>=6'}
859 |
860 | leven@3.1.0:
861 | resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==}
862 | engines: {node: '>=6'}
863 |
864 | lines-and-columns@1.2.4:
865 | resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
866 |
867 | locate-path@5.0.0:
868 | resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==}
869 | engines: {node: '>=8'}
870 |
871 | lodash.memoize@4.1.2:
872 | resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==}
873 |
874 | lru-cache@5.1.1:
875 | resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
876 |
877 | make-dir@4.0.0:
878 | resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==}
879 | engines: {node: '>=10'}
880 |
881 | make-error@1.3.6:
882 | resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==}
883 |
884 | makeerror@1.0.12:
885 | resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==}
886 |
887 | merge-stream@2.0.0:
888 | resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
889 |
890 | micromatch@4.0.8:
891 | resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==}
892 | engines: {node: '>=8.6'}
893 |
894 | mimic-fn@2.1.0:
895 | resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
896 | engines: {node: '>=6'}
897 |
898 | minimatch@3.1.2:
899 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
900 |
901 | minimatch@5.1.6:
902 | resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==}
903 | engines: {node: '>=10'}
904 |
905 | minimatch@9.0.5:
906 | resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==}
907 | engines: {node: '>=16 || 14 >=14.17'}
908 |
909 | ms@2.1.3:
910 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
911 |
912 | natural-compare@1.4.0:
913 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
914 |
915 | node-int64@0.4.0:
916 | resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==}
917 |
918 | node-releases@2.0.19:
919 | resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==}
920 |
921 | normalize-path@3.0.0:
922 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
923 | engines: {node: '>=0.10.0'}
924 |
925 | npm-run-path@4.0.1:
926 | resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==}
927 | engines: {node: '>=8'}
928 |
929 | once@1.4.0:
930 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
931 |
932 | onetime@5.1.2:
933 | resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==}
934 | engines: {node: '>=6'}
935 |
936 | p-limit@2.3.0:
937 | resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==}
938 | engines: {node: '>=6'}
939 |
940 | p-limit@3.1.0:
941 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
942 | engines: {node: '>=10'}
943 |
944 | p-locate@4.1.0:
945 | resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==}
946 | engines: {node: '>=8'}
947 |
948 | p-try@2.2.0:
949 | resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==}
950 | engines: {node: '>=6'}
951 |
952 | parse-json@5.2.0:
953 | resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==}
954 | engines: {node: '>=8'}
955 |
956 | path-browserify@1.0.1:
957 | resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==}
958 |
959 | path-exists@4.0.0:
960 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
961 | engines: {node: '>=8'}
962 |
963 | path-is-absolute@1.0.1:
964 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
965 | engines: {node: '>=0.10.0'}
966 |
967 | path-key@3.1.1:
968 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
969 | engines: {node: '>=8'}
970 |
971 | path-parse@1.0.7:
972 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
973 |
974 | picocolors@1.1.1:
975 | resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
976 |
977 | picomatch@2.3.1:
978 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
979 | engines: {node: '>=8.6'}
980 |
981 | picomatch@4.0.2:
982 | resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==}
983 | engines: {node: '>=12'}
984 |
985 | pirates@4.0.6:
986 | resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==}
987 | engines: {node: '>= 6'}
988 |
989 | pkg-dir@4.2.0:
990 | resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==}
991 | engines: {node: '>=8'}
992 |
993 | pretty-format@29.7.0:
994 | resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==}
995 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
996 |
997 | prompts@2.4.2:
998 | resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==}
999 | engines: {node: '>= 6'}
1000 |
1001 | pure-rand@6.1.0:
1002 | resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==}
1003 |
1004 | react-is@18.3.1:
1005 | resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==}
1006 |
1007 | require-directory@2.1.1:
1008 | resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
1009 | engines: {node: '>=0.10.0'}
1010 |
1011 | resolve-cwd@3.0.0:
1012 | resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==}
1013 | engines: {node: '>=8'}
1014 |
1015 | resolve-from@5.0.0:
1016 | resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==}
1017 | engines: {node: '>=8'}
1018 |
1019 | resolve.exports@2.0.3:
1020 | resolution: {integrity: sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==}
1021 | engines: {node: '>=10'}
1022 |
1023 | resolve@1.22.10:
1024 | resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==}
1025 | engines: {node: '>= 0.4'}
1026 | hasBin: true
1027 |
1028 | semver@6.3.1:
1029 | resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
1030 | hasBin: true
1031 |
1032 | semver@7.6.3:
1033 | resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==}
1034 | engines: {node: '>=10'}
1035 | hasBin: true
1036 |
1037 | shebang-command@2.0.0:
1038 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
1039 | engines: {node: '>=8'}
1040 |
1041 | shebang-regex@3.0.0:
1042 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
1043 | engines: {node: '>=8'}
1044 |
1045 | signal-exit@3.0.7:
1046 | resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
1047 |
1048 | sisteransi@1.0.5:
1049 | resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==}
1050 |
1051 | slash@3.0.0:
1052 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
1053 | engines: {node: '>=8'}
1054 |
1055 | source-map-support@0.5.13:
1056 | resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==}
1057 |
1058 | source-map@0.6.1:
1059 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
1060 | engines: {node: '>=0.10.0'}
1061 |
1062 | sprintf-js@1.0.3:
1063 | resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
1064 |
1065 | stack-utils@2.0.6:
1066 | resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==}
1067 | engines: {node: '>=10'}
1068 |
1069 | string-length@4.0.2:
1070 | resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==}
1071 | engines: {node: '>=10'}
1072 |
1073 | string-width@4.2.3:
1074 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
1075 | engines: {node: '>=8'}
1076 |
1077 | strip-ansi@6.0.1:
1078 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
1079 | engines: {node: '>=8'}
1080 |
1081 | strip-bom@4.0.0:
1082 | resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==}
1083 | engines: {node: '>=8'}
1084 |
1085 | strip-final-newline@2.0.0:
1086 | resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==}
1087 | engines: {node: '>=6'}
1088 |
1089 | strip-json-comments@3.1.1:
1090 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
1091 | engines: {node: '>=8'}
1092 |
1093 | supports-color@7.2.0:
1094 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
1095 | engines: {node: '>=8'}
1096 |
1097 | supports-color@8.1.1:
1098 | resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==}
1099 | engines: {node: '>=10'}
1100 |
1101 | supports-preserve-symlinks-flag@1.0.0:
1102 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
1103 | engines: {node: '>= 0.4'}
1104 |
1105 | test-exclude@6.0.0:
1106 | resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==}
1107 | engines: {node: '>=8'}
1108 |
1109 | tinyglobby@0.2.10:
1110 | resolution: {integrity: sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew==}
1111 | engines: {node: '>=12.0.0'}
1112 |
1113 | tmpl@1.0.5:
1114 | resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==}
1115 |
1116 | to-regex-range@5.0.1:
1117 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
1118 | engines: {node: '>=8.0'}
1119 |
1120 | ts-jest@29.2.5:
1121 | resolution: {integrity: sha512-KD8zB2aAZrcKIdGk4OwpJggeLcH1FgrICqDSROWqlnJXGCXK4Mn6FcdK2B6670Xr73lHMG1kHw8R87A0ecZ+vA==}
1122 | engines: {node: ^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0}
1123 | hasBin: true
1124 | peerDependencies:
1125 | '@babel/core': '>=7.0.0-beta.0 <8'
1126 | '@jest/transform': ^29.0.0
1127 | '@jest/types': ^29.0.0
1128 | babel-jest: ^29.0.0
1129 | esbuild: '*'
1130 | jest: ^29.0.0
1131 | typescript: '>=4.3 <6'
1132 | peerDependenciesMeta:
1133 | '@babel/core':
1134 | optional: true
1135 | '@jest/transform':
1136 | optional: true
1137 | '@jest/types':
1138 | optional: true
1139 | babel-jest:
1140 | optional: true
1141 | esbuild:
1142 | optional: true
1143 |
1144 | ts-morph@24.0.0:
1145 | resolution: {integrity: sha512-2OAOg/Ob5yx9Et7ZX4CvTCc0UFoZHwLEJ+dpDPSUi5TgwwlTlX47w+iFRrEwzUZwYACjq83cgjS/Da50Ga37uw==}
1146 |
1147 | type-detect@4.0.8:
1148 | resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==}
1149 | engines: {node: '>=4'}
1150 |
1151 | type-fest@0.21.3:
1152 | resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==}
1153 | engines: {node: '>=10'}
1154 |
1155 | typescript@5.7.2:
1156 | resolution: {integrity: sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==}
1157 | engines: {node: '>=14.17'}
1158 | hasBin: true
1159 |
1160 | undici-types@6.20.0:
1161 | resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==}
1162 |
1163 | update-browserslist-db@1.1.1:
1164 | resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==}
1165 | hasBin: true
1166 | peerDependencies:
1167 | browserslist: '>= 4.21.0'
1168 |
1169 | v8-to-istanbul@9.3.0:
1170 | resolution: {integrity: sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==}
1171 | engines: {node: '>=10.12.0'}
1172 |
1173 | walker@1.0.8:
1174 | resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==}
1175 |
1176 | which@2.0.2:
1177 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
1178 | engines: {node: '>= 8'}
1179 | hasBin: true
1180 |
1181 | wrap-ansi@7.0.0:
1182 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
1183 | engines: {node: '>=10'}
1184 |
1185 | wrappy@1.0.2:
1186 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
1187 |
1188 | write-file-atomic@4.0.2:
1189 | resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==}
1190 | engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
1191 |
1192 | y18n@5.0.8:
1193 | resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
1194 | engines: {node: '>=10'}
1195 |
1196 | yallist@3.1.1:
1197 | resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
1198 |
1199 | yargs-parser@21.1.1:
1200 | resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
1201 | engines: {node: '>=12'}
1202 |
1203 | yargs@17.7.2:
1204 | resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==}
1205 | engines: {node: '>=12'}
1206 |
1207 | yocto-queue@0.1.0:
1208 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
1209 | engines: {node: '>=10'}
1210 |
1211 | snapshots:
1212 |
1213 | '@ampproject/remapping@2.3.0':
1214 | dependencies:
1215 | '@jridgewell/gen-mapping': 0.3.8
1216 | '@jridgewell/trace-mapping': 0.3.25
1217 |
1218 | '@babel/code-frame@7.26.2':
1219 | dependencies:
1220 | '@babel/helper-validator-identifier': 7.25.9
1221 | js-tokens: 4.0.0
1222 | picocolors: 1.1.1
1223 |
1224 | '@babel/compat-data@7.26.3': {}
1225 |
1226 | '@babel/core@7.26.0':
1227 | dependencies:
1228 | '@ampproject/remapping': 2.3.0
1229 | '@babel/code-frame': 7.26.2
1230 | '@babel/generator': 7.26.3
1231 | '@babel/helper-compilation-targets': 7.25.9
1232 | '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0)
1233 | '@babel/helpers': 7.26.0
1234 | '@babel/parser': 7.26.3
1235 | '@babel/template': 7.25.9
1236 | '@babel/traverse': 7.26.4
1237 | '@babel/types': 7.26.3
1238 | convert-source-map: 2.0.0
1239 | debug: 4.4.0
1240 | gensync: 1.0.0-beta.2
1241 | json5: 2.2.3
1242 | semver: 6.3.1
1243 | transitivePeerDependencies:
1244 | - supports-color
1245 |
1246 | '@babel/generator@7.26.3':
1247 | dependencies:
1248 | '@babel/parser': 7.26.3
1249 | '@babel/types': 7.26.3
1250 | '@jridgewell/gen-mapping': 0.3.8
1251 | '@jridgewell/trace-mapping': 0.3.25
1252 | jsesc: 3.1.0
1253 |
1254 | '@babel/helper-compilation-targets@7.25.9':
1255 | dependencies:
1256 | '@babel/compat-data': 7.26.3
1257 | '@babel/helper-validator-option': 7.25.9
1258 | browserslist: 4.24.3
1259 | lru-cache: 5.1.1
1260 | semver: 6.3.1
1261 |
1262 | '@babel/helper-module-imports@7.25.9':
1263 | dependencies:
1264 | '@babel/traverse': 7.26.4
1265 | '@babel/types': 7.26.3
1266 | transitivePeerDependencies:
1267 | - supports-color
1268 |
1269 | '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.0)':
1270 | dependencies:
1271 | '@babel/core': 7.26.0
1272 | '@babel/helper-module-imports': 7.25.9
1273 | '@babel/helper-validator-identifier': 7.25.9
1274 | '@babel/traverse': 7.26.4
1275 | transitivePeerDependencies:
1276 | - supports-color
1277 |
1278 | '@babel/helper-plugin-utils@7.25.9': {}
1279 |
1280 | '@babel/helper-string-parser@7.25.9': {}
1281 |
1282 | '@babel/helper-validator-identifier@7.25.9': {}
1283 |
1284 | '@babel/helper-validator-option@7.25.9': {}
1285 |
1286 | '@babel/helpers@7.26.0':
1287 | dependencies:
1288 | '@babel/template': 7.25.9
1289 | '@babel/types': 7.26.3
1290 |
1291 | '@babel/parser@7.26.3':
1292 | dependencies:
1293 | '@babel/types': 7.26.3
1294 |
1295 | '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.26.0)':
1296 | dependencies:
1297 | '@babel/core': 7.26.0
1298 | '@babel/helper-plugin-utils': 7.25.9
1299 |
1300 | '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.26.0)':
1301 | dependencies:
1302 | '@babel/core': 7.26.0
1303 | '@babel/helper-plugin-utils': 7.25.9
1304 |
1305 | '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.26.0)':
1306 | dependencies:
1307 | '@babel/core': 7.26.0
1308 | '@babel/helper-plugin-utils': 7.25.9
1309 |
1310 | '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.26.0)':
1311 | dependencies:
1312 | '@babel/core': 7.26.0
1313 | '@babel/helper-plugin-utils': 7.25.9
1314 |
1315 | '@babel/plugin-syntax-import-attributes@7.26.0(@babel/core@7.26.0)':
1316 | dependencies:
1317 | '@babel/core': 7.26.0
1318 | '@babel/helper-plugin-utils': 7.25.9
1319 |
1320 | '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.26.0)':
1321 | dependencies:
1322 | '@babel/core': 7.26.0
1323 | '@babel/helper-plugin-utils': 7.25.9
1324 |
1325 | '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.26.0)':
1326 | dependencies:
1327 | '@babel/core': 7.26.0
1328 | '@babel/helper-plugin-utils': 7.25.9
1329 |
1330 | '@babel/plugin-syntax-jsx@7.25.9(@babel/core@7.26.0)':
1331 | dependencies:
1332 | '@babel/core': 7.26.0
1333 | '@babel/helper-plugin-utils': 7.25.9
1334 |
1335 | '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.26.0)':
1336 | dependencies:
1337 | '@babel/core': 7.26.0
1338 | '@babel/helper-plugin-utils': 7.25.9
1339 |
1340 | '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.26.0)':
1341 | dependencies:
1342 | '@babel/core': 7.26.0
1343 | '@babel/helper-plugin-utils': 7.25.9
1344 |
1345 | '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.26.0)':
1346 | dependencies:
1347 | '@babel/core': 7.26.0
1348 | '@babel/helper-plugin-utils': 7.25.9
1349 |
1350 | '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.26.0)':
1351 | dependencies:
1352 | '@babel/core': 7.26.0
1353 | '@babel/helper-plugin-utils': 7.25.9
1354 |
1355 | '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.26.0)':
1356 | dependencies:
1357 | '@babel/core': 7.26.0
1358 | '@babel/helper-plugin-utils': 7.25.9
1359 |
1360 | '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.26.0)':
1361 | dependencies:
1362 | '@babel/core': 7.26.0
1363 | '@babel/helper-plugin-utils': 7.25.9
1364 |
1365 | '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.26.0)':
1366 | dependencies:
1367 | '@babel/core': 7.26.0
1368 | '@babel/helper-plugin-utils': 7.25.9
1369 |
1370 | '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.26.0)':
1371 | dependencies:
1372 | '@babel/core': 7.26.0
1373 | '@babel/helper-plugin-utils': 7.25.9
1374 |
1375 | '@babel/plugin-syntax-typescript@7.25.9(@babel/core@7.26.0)':
1376 | dependencies:
1377 | '@babel/core': 7.26.0
1378 | '@babel/helper-plugin-utils': 7.25.9
1379 |
1380 | '@babel/template@7.25.9':
1381 | dependencies:
1382 | '@babel/code-frame': 7.26.2
1383 | '@babel/parser': 7.26.3
1384 | '@babel/types': 7.26.3
1385 |
1386 | '@babel/traverse@7.26.4':
1387 | dependencies:
1388 | '@babel/code-frame': 7.26.2
1389 | '@babel/generator': 7.26.3
1390 | '@babel/parser': 7.26.3
1391 | '@babel/template': 7.25.9
1392 | '@babel/types': 7.26.3
1393 | debug: 4.4.0
1394 | globals: 11.12.0
1395 | transitivePeerDependencies:
1396 | - supports-color
1397 |
1398 | '@babel/types@7.26.3':
1399 | dependencies:
1400 | '@babel/helper-string-parser': 7.25.9
1401 | '@babel/helper-validator-identifier': 7.25.9
1402 |
1403 | '@bcoe/v8-coverage@0.2.3': {}
1404 |
1405 | '@istanbuljs/load-nyc-config@1.1.0':
1406 | dependencies:
1407 | camelcase: 5.3.1
1408 | find-up: 4.1.0
1409 | get-package-type: 0.1.0
1410 | js-yaml: 3.14.1
1411 | resolve-from: 5.0.0
1412 |
1413 | '@istanbuljs/schema@0.1.3': {}
1414 |
1415 | '@jest/console@29.7.0':
1416 | dependencies:
1417 | '@jest/types': 29.6.3
1418 | '@types/node': 22.10.2
1419 | chalk: 4.1.2
1420 | jest-message-util: 29.7.0
1421 | jest-util: 29.7.0
1422 | slash: 3.0.0
1423 |
1424 | '@jest/core@29.7.0':
1425 | dependencies:
1426 | '@jest/console': 29.7.0
1427 | '@jest/reporters': 29.7.0
1428 | '@jest/test-result': 29.7.0
1429 | '@jest/transform': 29.7.0
1430 | '@jest/types': 29.6.3
1431 | '@types/node': 22.10.2
1432 | ansi-escapes: 4.3.2
1433 | chalk: 4.1.2
1434 | ci-info: 3.9.0
1435 | exit: 0.1.2
1436 | graceful-fs: 4.2.11
1437 | jest-changed-files: 29.7.0
1438 | jest-config: 29.7.0(@types/node@22.10.2)
1439 | jest-haste-map: 29.7.0
1440 | jest-message-util: 29.7.0
1441 | jest-regex-util: 29.6.3
1442 | jest-resolve: 29.7.0
1443 | jest-resolve-dependencies: 29.7.0
1444 | jest-runner: 29.7.0
1445 | jest-runtime: 29.7.0
1446 | jest-snapshot: 29.7.0
1447 | jest-util: 29.7.0
1448 | jest-validate: 29.7.0
1449 | jest-watcher: 29.7.0
1450 | micromatch: 4.0.8
1451 | pretty-format: 29.7.0
1452 | slash: 3.0.0
1453 | strip-ansi: 6.0.1
1454 | transitivePeerDependencies:
1455 | - babel-plugin-macros
1456 | - supports-color
1457 | - ts-node
1458 |
1459 | '@jest/environment@29.7.0':
1460 | dependencies:
1461 | '@jest/fake-timers': 29.7.0
1462 | '@jest/types': 29.6.3
1463 | '@types/node': 22.10.2
1464 | jest-mock: 29.7.0
1465 |
1466 | '@jest/expect-utils@29.7.0':
1467 | dependencies:
1468 | jest-get-type: 29.6.3
1469 |
1470 | '@jest/expect@29.7.0':
1471 | dependencies:
1472 | expect: 29.7.0
1473 | jest-snapshot: 29.7.0
1474 | transitivePeerDependencies:
1475 | - supports-color
1476 |
1477 | '@jest/fake-timers@29.7.0':
1478 | dependencies:
1479 | '@jest/types': 29.6.3
1480 | '@sinonjs/fake-timers': 10.3.0
1481 | '@types/node': 22.10.2
1482 | jest-message-util: 29.7.0
1483 | jest-mock: 29.7.0
1484 | jest-util: 29.7.0
1485 |
1486 | '@jest/globals@29.7.0':
1487 | dependencies:
1488 | '@jest/environment': 29.7.0
1489 | '@jest/expect': 29.7.0
1490 | '@jest/types': 29.6.3
1491 | jest-mock: 29.7.0
1492 | transitivePeerDependencies:
1493 | - supports-color
1494 |
1495 | '@jest/reporters@29.7.0':
1496 | dependencies:
1497 | '@bcoe/v8-coverage': 0.2.3
1498 | '@jest/console': 29.7.0
1499 | '@jest/test-result': 29.7.0
1500 | '@jest/transform': 29.7.0
1501 | '@jest/types': 29.6.3
1502 | '@jridgewell/trace-mapping': 0.3.25
1503 | '@types/node': 22.10.2
1504 | chalk: 4.1.2
1505 | collect-v8-coverage: 1.0.2
1506 | exit: 0.1.2
1507 | glob: 7.2.3
1508 | graceful-fs: 4.2.11
1509 | istanbul-lib-coverage: 3.2.2
1510 | istanbul-lib-instrument: 6.0.3
1511 | istanbul-lib-report: 3.0.1
1512 | istanbul-lib-source-maps: 4.0.1
1513 | istanbul-reports: 3.1.7
1514 | jest-message-util: 29.7.0
1515 | jest-util: 29.7.0
1516 | jest-worker: 29.7.0
1517 | slash: 3.0.0
1518 | string-length: 4.0.2
1519 | strip-ansi: 6.0.1
1520 | v8-to-istanbul: 9.3.0
1521 | transitivePeerDependencies:
1522 | - supports-color
1523 |
1524 | '@jest/schemas@29.6.3':
1525 | dependencies:
1526 | '@sinclair/typebox': 0.27.8
1527 |
1528 | '@jest/source-map@29.6.3':
1529 | dependencies:
1530 | '@jridgewell/trace-mapping': 0.3.25
1531 | callsites: 3.1.0
1532 | graceful-fs: 4.2.11
1533 |
1534 | '@jest/test-result@29.7.0':
1535 | dependencies:
1536 | '@jest/console': 29.7.0
1537 | '@jest/types': 29.6.3
1538 | '@types/istanbul-lib-coverage': 2.0.6
1539 | collect-v8-coverage: 1.0.2
1540 |
1541 | '@jest/test-sequencer@29.7.0':
1542 | dependencies:
1543 | '@jest/test-result': 29.7.0
1544 | graceful-fs: 4.2.11
1545 | jest-haste-map: 29.7.0
1546 | slash: 3.0.0
1547 |
1548 | '@jest/transform@29.7.0':
1549 | dependencies:
1550 | '@babel/core': 7.26.0
1551 | '@jest/types': 29.6.3
1552 | '@jridgewell/trace-mapping': 0.3.25
1553 | babel-plugin-istanbul: 6.1.1
1554 | chalk: 4.1.2
1555 | convert-source-map: 2.0.0
1556 | fast-json-stable-stringify: 2.1.0
1557 | graceful-fs: 4.2.11
1558 | jest-haste-map: 29.7.0
1559 | jest-regex-util: 29.6.3
1560 | jest-util: 29.7.0
1561 | micromatch: 4.0.8
1562 | pirates: 4.0.6
1563 | slash: 3.0.0
1564 | write-file-atomic: 4.0.2
1565 | transitivePeerDependencies:
1566 | - supports-color
1567 |
1568 | '@jest/types@29.6.3':
1569 | dependencies:
1570 | '@jest/schemas': 29.6.3
1571 | '@types/istanbul-lib-coverage': 2.0.6
1572 | '@types/istanbul-reports': 3.0.4
1573 | '@types/node': 22.10.2
1574 | '@types/yargs': 17.0.33
1575 | chalk: 4.1.2
1576 |
1577 | '@jridgewell/gen-mapping@0.3.8':
1578 | dependencies:
1579 | '@jridgewell/set-array': 1.2.1
1580 | '@jridgewell/sourcemap-codec': 1.5.0
1581 | '@jridgewell/trace-mapping': 0.3.25
1582 |
1583 | '@jridgewell/resolve-uri@3.1.2': {}
1584 |
1585 | '@jridgewell/set-array@1.2.1': {}
1586 |
1587 | '@jridgewell/sourcemap-codec@1.5.0': {}
1588 |
1589 | '@jridgewell/trace-mapping@0.3.25':
1590 | dependencies:
1591 | '@jridgewell/resolve-uri': 3.1.2
1592 | '@jridgewell/sourcemap-codec': 1.5.0
1593 |
1594 | '@sinclair/typebox@0.27.8': {}
1595 |
1596 | '@sinonjs/commons@3.0.1':
1597 | dependencies:
1598 | type-detect: 4.0.8
1599 |
1600 | '@sinonjs/fake-timers@10.3.0':
1601 | dependencies:
1602 | '@sinonjs/commons': 3.0.1
1603 |
1604 | '@ts-morph/common@0.25.0':
1605 | dependencies:
1606 | minimatch: 9.0.5
1607 | path-browserify: 1.0.1
1608 | tinyglobby: 0.2.10
1609 |
1610 | '@types/babel__core@7.20.5':
1611 | dependencies:
1612 | '@babel/parser': 7.26.3
1613 | '@babel/types': 7.26.3
1614 | '@types/babel__generator': 7.6.8
1615 | '@types/babel__template': 7.4.4
1616 | '@types/babel__traverse': 7.20.6
1617 |
1618 | '@types/babel__generator@7.6.8':
1619 | dependencies:
1620 | '@babel/types': 7.26.3
1621 |
1622 | '@types/babel__template@7.4.4':
1623 | dependencies:
1624 | '@babel/parser': 7.26.3
1625 | '@babel/types': 7.26.3
1626 |
1627 | '@types/babel__traverse@7.20.6':
1628 | dependencies:
1629 | '@babel/types': 7.26.3
1630 |
1631 | '@types/graceful-fs@4.1.9':
1632 | dependencies:
1633 | '@types/node': 22.10.2
1634 |
1635 | '@types/istanbul-lib-coverage@2.0.6': {}
1636 |
1637 | '@types/istanbul-lib-report@3.0.3':
1638 | dependencies:
1639 | '@types/istanbul-lib-coverage': 2.0.6
1640 |
1641 | '@types/istanbul-reports@3.0.4':
1642 | dependencies:
1643 | '@types/istanbul-lib-report': 3.0.3
1644 |
1645 | '@types/jest@29.5.14':
1646 | dependencies:
1647 | expect: 29.7.0
1648 | pretty-format: 29.7.0
1649 |
1650 | '@types/node@22.10.2':
1651 | dependencies:
1652 | undici-types: 6.20.0
1653 |
1654 | '@types/stack-utils@2.0.3': {}
1655 |
1656 | '@types/yargs-parser@21.0.3': {}
1657 |
1658 | '@types/yargs@17.0.33':
1659 | dependencies:
1660 | '@types/yargs-parser': 21.0.3
1661 |
1662 | ansi-escapes@4.3.2:
1663 | dependencies:
1664 | type-fest: 0.21.3
1665 |
1666 | ansi-regex@5.0.1: {}
1667 |
1668 | ansi-styles@4.3.0:
1669 | dependencies:
1670 | color-convert: 2.0.1
1671 |
1672 | ansi-styles@5.2.0: {}
1673 |
1674 | anymatch@3.1.3:
1675 | dependencies:
1676 | normalize-path: 3.0.0
1677 | picomatch: 2.3.1
1678 |
1679 | argparse@1.0.10:
1680 | dependencies:
1681 | sprintf-js: 1.0.3
1682 |
1683 | async@3.2.6: {}
1684 |
1685 | babel-jest@29.7.0(@babel/core@7.26.0):
1686 | dependencies:
1687 | '@babel/core': 7.26.0
1688 | '@jest/transform': 29.7.0
1689 | '@types/babel__core': 7.20.5
1690 | babel-plugin-istanbul: 6.1.1
1691 | babel-preset-jest: 29.6.3(@babel/core@7.26.0)
1692 | chalk: 4.1.2
1693 | graceful-fs: 4.2.11
1694 | slash: 3.0.0
1695 | transitivePeerDependencies:
1696 | - supports-color
1697 |
1698 | babel-plugin-istanbul@6.1.1:
1699 | dependencies:
1700 | '@babel/helper-plugin-utils': 7.25.9
1701 | '@istanbuljs/load-nyc-config': 1.1.0
1702 | '@istanbuljs/schema': 0.1.3
1703 | istanbul-lib-instrument: 5.2.1
1704 | test-exclude: 6.0.0
1705 | transitivePeerDependencies:
1706 | - supports-color
1707 |
1708 | babel-plugin-jest-hoist@29.6.3:
1709 | dependencies:
1710 | '@babel/template': 7.25.9
1711 | '@babel/types': 7.26.3
1712 | '@types/babel__core': 7.20.5
1713 | '@types/babel__traverse': 7.20.6
1714 |
1715 | babel-preset-current-node-syntax@1.1.0(@babel/core@7.26.0):
1716 | dependencies:
1717 | '@babel/core': 7.26.0
1718 | '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.26.0)
1719 | '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.26.0)
1720 | '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.26.0)
1721 | '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.26.0)
1722 | '@babel/plugin-syntax-import-attributes': 7.26.0(@babel/core@7.26.0)
1723 | '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.26.0)
1724 | '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.26.0)
1725 | '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.26.0)
1726 | '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.26.0)
1727 | '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.26.0)
1728 | '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.26.0)
1729 | '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.26.0)
1730 | '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.26.0)
1731 | '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.26.0)
1732 | '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.26.0)
1733 |
1734 | babel-preset-jest@29.6.3(@babel/core@7.26.0):
1735 | dependencies:
1736 | '@babel/core': 7.26.0
1737 | babel-plugin-jest-hoist: 29.6.3
1738 | babel-preset-current-node-syntax: 1.1.0(@babel/core@7.26.0)
1739 |
1740 | balanced-match@1.0.2: {}
1741 |
1742 | brace-expansion@1.1.11:
1743 | dependencies:
1744 | balanced-match: 1.0.2
1745 | concat-map: 0.0.1
1746 |
1747 | brace-expansion@2.0.1:
1748 | dependencies:
1749 | balanced-match: 1.0.2
1750 |
1751 | braces@3.0.3:
1752 | dependencies:
1753 | fill-range: 7.1.1
1754 |
1755 | browserslist@4.24.3:
1756 | dependencies:
1757 | caniuse-lite: 1.0.30001690
1758 | electron-to-chromium: 1.5.76
1759 | node-releases: 2.0.19
1760 | update-browserslist-db: 1.1.1(browserslist@4.24.3)
1761 |
1762 | bs-logger@0.2.6:
1763 | dependencies:
1764 | fast-json-stable-stringify: 2.1.0
1765 |
1766 | bser@2.1.1:
1767 | dependencies:
1768 | node-int64: 0.4.0
1769 |
1770 | buffer-from@1.1.2: {}
1771 |
1772 | callsites@3.1.0: {}
1773 |
1774 | camelcase@5.3.1: {}
1775 |
1776 | camelcase@6.3.0: {}
1777 |
1778 | caniuse-lite@1.0.30001690: {}
1779 |
1780 | chalk@4.1.2:
1781 | dependencies:
1782 | ansi-styles: 4.3.0
1783 | supports-color: 7.2.0
1784 |
1785 | char-regex@1.0.2: {}
1786 |
1787 | ci-info@3.9.0: {}
1788 |
1789 | cjs-module-lexer@1.4.1: {}
1790 |
1791 | cliui@8.0.1:
1792 | dependencies:
1793 | string-width: 4.2.3
1794 | strip-ansi: 6.0.1
1795 | wrap-ansi: 7.0.0
1796 |
1797 | co@4.6.0: {}
1798 |
1799 | code-block-writer@13.0.3: {}
1800 |
1801 | collect-v8-coverage@1.0.2: {}
1802 |
1803 | color-convert@2.0.1:
1804 | dependencies:
1805 | color-name: 1.1.4
1806 |
1807 | color-name@1.1.4: {}
1808 |
1809 | concat-map@0.0.1: {}
1810 |
1811 | convert-source-map@2.0.0: {}
1812 |
1813 | create-jest@29.7.0(@types/node@22.10.2):
1814 | dependencies:
1815 | '@jest/types': 29.6.3
1816 | chalk: 4.1.2
1817 | exit: 0.1.2
1818 | graceful-fs: 4.2.11
1819 | jest-config: 29.7.0(@types/node@22.10.2)
1820 | jest-util: 29.7.0
1821 | prompts: 2.4.2
1822 | transitivePeerDependencies:
1823 | - '@types/node'
1824 | - babel-plugin-macros
1825 | - supports-color
1826 | - ts-node
1827 |
1828 | cross-spawn@7.0.6:
1829 | dependencies:
1830 | path-key: 3.1.1
1831 | shebang-command: 2.0.0
1832 | which: 2.0.2
1833 |
1834 | debug@4.4.0:
1835 | dependencies:
1836 | ms: 2.1.3
1837 |
1838 | dedent@1.5.3: {}
1839 |
1840 | deepmerge@4.3.1: {}
1841 |
1842 | detect-newline@3.1.0: {}
1843 |
1844 | diff-sequences@29.6.3: {}
1845 |
1846 | ejs@3.1.10:
1847 | dependencies:
1848 | jake: 10.9.2
1849 |
1850 | electron-to-chromium@1.5.76: {}
1851 |
1852 | emittery@0.13.1: {}
1853 |
1854 | emoji-regex@8.0.0: {}
1855 |
1856 | error-ex@1.3.2:
1857 | dependencies:
1858 | is-arrayish: 0.2.1
1859 |
1860 | escalade@3.2.0: {}
1861 |
1862 | escape-string-regexp@2.0.0: {}
1863 |
1864 | esprima@4.0.1: {}
1865 |
1866 | execa@5.1.1:
1867 | dependencies:
1868 | cross-spawn: 7.0.6
1869 | get-stream: 6.0.1
1870 | human-signals: 2.1.0
1871 | is-stream: 2.0.1
1872 | merge-stream: 2.0.0
1873 | npm-run-path: 4.0.1
1874 | onetime: 5.1.2
1875 | signal-exit: 3.0.7
1876 | strip-final-newline: 2.0.0
1877 |
1878 | exit@0.1.2: {}
1879 |
1880 | expect@29.7.0:
1881 | dependencies:
1882 | '@jest/expect-utils': 29.7.0
1883 | jest-get-type: 29.6.3
1884 | jest-matcher-utils: 29.7.0
1885 | jest-message-util: 29.7.0
1886 | jest-util: 29.7.0
1887 |
1888 | fast-json-stable-stringify@2.1.0: {}
1889 |
1890 | fb-watchman@2.0.2:
1891 | dependencies:
1892 | bser: 2.1.1
1893 |
1894 | fdir@6.4.2(picomatch@4.0.2):
1895 | optionalDependencies:
1896 | picomatch: 4.0.2
1897 |
1898 | filelist@1.0.4:
1899 | dependencies:
1900 | minimatch: 5.1.6
1901 |
1902 | fill-range@7.1.1:
1903 | dependencies:
1904 | to-regex-range: 5.0.1
1905 |
1906 | find-up@4.1.0:
1907 | dependencies:
1908 | locate-path: 5.0.0
1909 | path-exists: 4.0.0
1910 |
1911 | fs.realpath@1.0.0: {}
1912 |
1913 | fsevents@2.3.3:
1914 | optional: true
1915 |
1916 | function-bind@1.1.2: {}
1917 |
1918 | gensync@1.0.0-beta.2: {}
1919 |
1920 | get-caller-file@2.0.5: {}
1921 |
1922 | get-package-type@0.1.0: {}
1923 |
1924 | get-stream@6.0.1: {}
1925 |
1926 | glob@7.2.3:
1927 | dependencies:
1928 | fs.realpath: 1.0.0
1929 | inflight: 1.0.6
1930 | inherits: 2.0.4
1931 | minimatch: 3.1.2
1932 | once: 1.4.0
1933 | path-is-absolute: 1.0.1
1934 |
1935 | globals@11.12.0: {}
1936 |
1937 | graceful-fs@4.2.11: {}
1938 |
1939 | has-flag@4.0.0: {}
1940 |
1941 | hasown@2.0.2:
1942 | dependencies:
1943 | function-bind: 1.1.2
1944 |
1945 | html-escaper@2.0.2: {}
1946 |
1947 | human-signals@2.1.0: {}
1948 |
1949 | import-local@3.2.0:
1950 | dependencies:
1951 | pkg-dir: 4.2.0
1952 | resolve-cwd: 3.0.0
1953 |
1954 | imurmurhash@0.1.4: {}
1955 |
1956 | inflight@1.0.6:
1957 | dependencies:
1958 | once: 1.4.0
1959 | wrappy: 1.0.2
1960 |
1961 | inherits@2.0.4: {}
1962 |
1963 | is-arrayish@0.2.1: {}
1964 |
1965 | is-core-module@2.16.1:
1966 | dependencies:
1967 | hasown: 2.0.2
1968 |
1969 | is-fullwidth-code-point@3.0.0: {}
1970 |
1971 | is-generator-fn@2.1.0: {}
1972 |
1973 | is-number@7.0.0: {}
1974 |
1975 | is-stream@2.0.1: {}
1976 |
1977 | isexe@2.0.0: {}
1978 |
1979 | istanbul-lib-coverage@3.2.2: {}
1980 |
1981 | istanbul-lib-instrument@5.2.1:
1982 | dependencies:
1983 | '@babel/core': 7.26.0
1984 | '@babel/parser': 7.26.3
1985 | '@istanbuljs/schema': 0.1.3
1986 | istanbul-lib-coverage: 3.2.2
1987 | semver: 6.3.1
1988 | transitivePeerDependencies:
1989 | - supports-color
1990 |
1991 | istanbul-lib-instrument@6.0.3:
1992 | dependencies:
1993 | '@babel/core': 7.26.0
1994 | '@babel/parser': 7.26.3
1995 | '@istanbuljs/schema': 0.1.3
1996 | istanbul-lib-coverage: 3.2.2
1997 | semver: 7.6.3
1998 | transitivePeerDependencies:
1999 | - supports-color
2000 |
2001 | istanbul-lib-report@3.0.1:
2002 | dependencies:
2003 | istanbul-lib-coverage: 3.2.2
2004 | make-dir: 4.0.0
2005 | supports-color: 7.2.0
2006 |
2007 | istanbul-lib-source-maps@4.0.1:
2008 | dependencies:
2009 | debug: 4.4.0
2010 | istanbul-lib-coverage: 3.2.2
2011 | source-map: 0.6.1
2012 | transitivePeerDependencies:
2013 | - supports-color
2014 |
2015 | istanbul-reports@3.1.7:
2016 | dependencies:
2017 | html-escaper: 2.0.2
2018 | istanbul-lib-report: 3.0.1
2019 |
2020 | jake@10.9.2:
2021 | dependencies:
2022 | async: 3.2.6
2023 | chalk: 4.1.2
2024 | filelist: 1.0.4
2025 | minimatch: 3.1.2
2026 |
2027 | jest-changed-files@29.7.0:
2028 | dependencies:
2029 | execa: 5.1.1
2030 | jest-util: 29.7.0
2031 | p-limit: 3.1.0
2032 |
2033 | jest-circus@29.7.0:
2034 | dependencies:
2035 | '@jest/environment': 29.7.0
2036 | '@jest/expect': 29.7.0
2037 | '@jest/test-result': 29.7.0
2038 | '@jest/types': 29.6.3
2039 | '@types/node': 22.10.2
2040 | chalk: 4.1.2
2041 | co: 4.6.0
2042 | dedent: 1.5.3
2043 | is-generator-fn: 2.1.0
2044 | jest-each: 29.7.0
2045 | jest-matcher-utils: 29.7.0
2046 | jest-message-util: 29.7.0
2047 | jest-runtime: 29.7.0
2048 | jest-snapshot: 29.7.0
2049 | jest-util: 29.7.0
2050 | p-limit: 3.1.0
2051 | pretty-format: 29.7.0
2052 | pure-rand: 6.1.0
2053 | slash: 3.0.0
2054 | stack-utils: 2.0.6
2055 | transitivePeerDependencies:
2056 | - babel-plugin-macros
2057 | - supports-color
2058 |
2059 | jest-cli@29.7.0(@types/node@22.10.2):
2060 | dependencies:
2061 | '@jest/core': 29.7.0
2062 | '@jest/test-result': 29.7.0
2063 | '@jest/types': 29.6.3
2064 | chalk: 4.1.2
2065 | create-jest: 29.7.0(@types/node@22.10.2)
2066 | exit: 0.1.2
2067 | import-local: 3.2.0
2068 | jest-config: 29.7.0(@types/node@22.10.2)
2069 | jest-util: 29.7.0
2070 | jest-validate: 29.7.0
2071 | yargs: 17.7.2
2072 | transitivePeerDependencies:
2073 | - '@types/node'
2074 | - babel-plugin-macros
2075 | - supports-color
2076 | - ts-node
2077 |
2078 | jest-config@29.7.0(@types/node@22.10.2):
2079 | dependencies:
2080 | '@babel/core': 7.26.0
2081 | '@jest/test-sequencer': 29.7.0
2082 | '@jest/types': 29.6.3
2083 | babel-jest: 29.7.0(@babel/core@7.26.0)
2084 | chalk: 4.1.2
2085 | ci-info: 3.9.0
2086 | deepmerge: 4.3.1
2087 | glob: 7.2.3
2088 | graceful-fs: 4.2.11
2089 | jest-circus: 29.7.0
2090 | jest-environment-node: 29.7.0
2091 | jest-get-type: 29.6.3
2092 | jest-regex-util: 29.6.3
2093 | jest-resolve: 29.7.0
2094 | jest-runner: 29.7.0
2095 | jest-util: 29.7.0
2096 | jest-validate: 29.7.0
2097 | micromatch: 4.0.8
2098 | parse-json: 5.2.0
2099 | pretty-format: 29.7.0
2100 | slash: 3.0.0
2101 | strip-json-comments: 3.1.1
2102 | optionalDependencies:
2103 | '@types/node': 22.10.2
2104 | transitivePeerDependencies:
2105 | - babel-plugin-macros
2106 | - supports-color
2107 |
2108 | jest-diff@29.7.0:
2109 | dependencies:
2110 | chalk: 4.1.2
2111 | diff-sequences: 29.6.3
2112 | jest-get-type: 29.6.3
2113 | pretty-format: 29.7.0
2114 |
2115 | jest-docblock@29.7.0:
2116 | dependencies:
2117 | detect-newline: 3.1.0
2118 |
2119 | jest-each@29.7.0:
2120 | dependencies:
2121 | '@jest/types': 29.6.3
2122 | chalk: 4.1.2
2123 | jest-get-type: 29.6.3
2124 | jest-util: 29.7.0
2125 | pretty-format: 29.7.0
2126 |
2127 | jest-environment-node@29.7.0:
2128 | dependencies:
2129 | '@jest/environment': 29.7.0
2130 | '@jest/fake-timers': 29.7.0
2131 | '@jest/types': 29.6.3
2132 | '@types/node': 22.10.2
2133 | jest-mock: 29.7.0
2134 | jest-util: 29.7.0
2135 |
2136 | jest-get-type@29.6.3: {}
2137 |
2138 | jest-haste-map@29.7.0:
2139 | dependencies:
2140 | '@jest/types': 29.6.3
2141 | '@types/graceful-fs': 4.1.9
2142 | '@types/node': 22.10.2
2143 | anymatch: 3.1.3
2144 | fb-watchman: 2.0.2
2145 | graceful-fs: 4.2.11
2146 | jest-regex-util: 29.6.3
2147 | jest-util: 29.7.0
2148 | jest-worker: 29.7.0
2149 | micromatch: 4.0.8
2150 | walker: 1.0.8
2151 | optionalDependencies:
2152 | fsevents: 2.3.3
2153 |
2154 | jest-leak-detector@29.7.0:
2155 | dependencies:
2156 | jest-get-type: 29.6.3
2157 | pretty-format: 29.7.0
2158 |
2159 | jest-matcher-utils@29.7.0:
2160 | dependencies:
2161 | chalk: 4.1.2
2162 | jest-diff: 29.7.0
2163 | jest-get-type: 29.6.3
2164 | pretty-format: 29.7.0
2165 |
2166 | jest-message-util@29.7.0:
2167 | dependencies:
2168 | '@babel/code-frame': 7.26.2
2169 | '@jest/types': 29.6.3
2170 | '@types/stack-utils': 2.0.3
2171 | chalk: 4.1.2
2172 | graceful-fs: 4.2.11
2173 | micromatch: 4.0.8
2174 | pretty-format: 29.7.0
2175 | slash: 3.0.0
2176 | stack-utils: 2.0.6
2177 |
2178 | jest-mock@29.7.0:
2179 | dependencies:
2180 | '@jest/types': 29.6.3
2181 | '@types/node': 22.10.2
2182 | jest-util: 29.7.0
2183 |
2184 | jest-pnp-resolver@1.2.3(jest-resolve@29.7.0):
2185 | optionalDependencies:
2186 | jest-resolve: 29.7.0
2187 |
2188 | jest-regex-util@29.6.3: {}
2189 |
2190 | jest-resolve-dependencies@29.7.0:
2191 | dependencies:
2192 | jest-regex-util: 29.6.3
2193 | jest-snapshot: 29.7.0
2194 | transitivePeerDependencies:
2195 | - supports-color
2196 |
2197 | jest-resolve@29.7.0:
2198 | dependencies:
2199 | chalk: 4.1.2
2200 | graceful-fs: 4.2.11
2201 | jest-haste-map: 29.7.0
2202 | jest-pnp-resolver: 1.2.3(jest-resolve@29.7.0)
2203 | jest-util: 29.7.0
2204 | jest-validate: 29.7.0
2205 | resolve: 1.22.10
2206 | resolve.exports: 2.0.3
2207 | slash: 3.0.0
2208 |
2209 | jest-runner@29.7.0:
2210 | dependencies:
2211 | '@jest/console': 29.7.0
2212 | '@jest/environment': 29.7.0
2213 | '@jest/test-result': 29.7.0
2214 | '@jest/transform': 29.7.0
2215 | '@jest/types': 29.6.3
2216 | '@types/node': 22.10.2
2217 | chalk: 4.1.2
2218 | emittery: 0.13.1
2219 | graceful-fs: 4.2.11
2220 | jest-docblock: 29.7.0
2221 | jest-environment-node: 29.7.0
2222 | jest-haste-map: 29.7.0
2223 | jest-leak-detector: 29.7.0
2224 | jest-message-util: 29.7.0
2225 | jest-resolve: 29.7.0
2226 | jest-runtime: 29.7.0
2227 | jest-util: 29.7.0
2228 | jest-watcher: 29.7.0
2229 | jest-worker: 29.7.0
2230 | p-limit: 3.1.0
2231 | source-map-support: 0.5.13
2232 | transitivePeerDependencies:
2233 | - supports-color
2234 |
2235 | jest-runtime@29.7.0:
2236 | dependencies:
2237 | '@jest/environment': 29.7.0
2238 | '@jest/fake-timers': 29.7.0
2239 | '@jest/globals': 29.7.0
2240 | '@jest/source-map': 29.6.3
2241 | '@jest/test-result': 29.7.0
2242 | '@jest/transform': 29.7.0
2243 | '@jest/types': 29.6.3
2244 | '@types/node': 22.10.2
2245 | chalk: 4.1.2
2246 | cjs-module-lexer: 1.4.1
2247 | collect-v8-coverage: 1.0.2
2248 | glob: 7.2.3
2249 | graceful-fs: 4.2.11
2250 | jest-haste-map: 29.7.0
2251 | jest-message-util: 29.7.0
2252 | jest-mock: 29.7.0
2253 | jest-regex-util: 29.6.3
2254 | jest-resolve: 29.7.0
2255 | jest-snapshot: 29.7.0
2256 | jest-util: 29.7.0
2257 | slash: 3.0.0
2258 | strip-bom: 4.0.0
2259 | transitivePeerDependencies:
2260 | - supports-color
2261 |
2262 | jest-snapshot@29.7.0:
2263 | dependencies:
2264 | '@babel/core': 7.26.0
2265 | '@babel/generator': 7.26.3
2266 | '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.0)
2267 | '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.0)
2268 | '@babel/types': 7.26.3
2269 | '@jest/expect-utils': 29.7.0
2270 | '@jest/transform': 29.7.0
2271 | '@jest/types': 29.6.3
2272 | babel-preset-current-node-syntax: 1.1.0(@babel/core@7.26.0)
2273 | chalk: 4.1.2
2274 | expect: 29.7.0
2275 | graceful-fs: 4.2.11
2276 | jest-diff: 29.7.0
2277 | jest-get-type: 29.6.3
2278 | jest-matcher-utils: 29.7.0
2279 | jest-message-util: 29.7.0
2280 | jest-util: 29.7.0
2281 | natural-compare: 1.4.0
2282 | pretty-format: 29.7.0
2283 | semver: 7.6.3
2284 | transitivePeerDependencies:
2285 | - supports-color
2286 |
2287 | jest-util@29.7.0:
2288 | dependencies:
2289 | '@jest/types': 29.6.3
2290 | '@types/node': 22.10.2
2291 | chalk: 4.1.2
2292 | ci-info: 3.9.0
2293 | graceful-fs: 4.2.11
2294 | picomatch: 2.3.1
2295 |
2296 | jest-validate@29.7.0:
2297 | dependencies:
2298 | '@jest/types': 29.6.3
2299 | camelcase: 6.3.0
2300 | chalk: 4.1.2
2301 | jest-get-type: 29.6.3
2302 | leven: 3.1.0
2303 | pretty-format: 29.7.0
2304 |
2305 | jest-watcher@29.7.0:
2306 | dependencies:
2307 | '@jest/test-result': 29.7.0
2308 | '@jest/types': 29.6.3
2309 | '@types/node': 22.10.2
2310 | ansi-escapes: 4.3.2
2311 | chalk: 4.1.2
2312 | emittery: 0.13.1
2313 | jest-util: 29.7.0
2314 | string-length: 4.0.2
2315 |
2316 | jest-worker@29.7.0:
2317 | dependencies:
2318 | '@types/node': 22.10.2
2319 | jest-util: 29.7.0
2320 | merge-stream: 2.0.0
2321 | supports-color: 8.1.1
2322 |
2323 | jest@29.7.0(@types/node@22.10.2):
2324 | dependencies:
2325 | '@jest/core': 29.7.0
2326 | '@jest/types': 29.6.3
2327 | import-local: 3.2.0
2328 | jest-cli: 29.7.0(@types/node@22.10.2)
2329 | transitivePeerDependencies:
2330 | - '@types/node'
2331 | - babel-plugin-macros
2332 | - supports-color
2333 | - ts-node
2334 |
2335 | js-tokens@4.0.0: {}
2336 |
2337 | js-yaml@3.14.1:
2338 | dependencies:
2339 | argparse: 1.0.10
2340 | esprima: 4.0.1
2341 |
2342 | jsesc@3.1.0: {}
2343 |
2344 | json-parse-even-better-errors@2.3.1: {}
2345 |
2346 | json5@2.2.3: {}
2347 |
2348 | kleur@3.0.3: {}
2349 |
2350 | leven@3.1.0: {}
2351 |
2352 | lines-and-columns@1.2.4: {}
2353 |
2354 | locate-path@5.0.0:
2355 | dependencies:
2356 | p-locate: 4.1.0
2357 |
2358 | lodash.memoize@4.1.2: {}
2359 |
2360 | lru-cache@5.1.1:
2361 | dependencies:
2362 | yallist: 3.1.1
2363 |
2364 | make-dir@4.0.0:
2365 | dependencies:
2366 | semver: 7.6.3
2367 |
2368 | make-error@1.3.6: {}
2369 |
2370 | makeerror@1.0.12:
2371 | dependencies:
2372 | tmpl: 1.0.5
2373 |
2374 | merge-stream@2.0.0: {}
2375 |
2376 | micromatch@4.0.8:
2377 | dependencies:
2378 | braces: 3.0.3
2379 | picomatch: 2.3.1
2380 |
2381 | mimic-fn@2.1.0: {}
2382 |
2383 | minimatch@3.1.2:
2384 | dependencies:
2385 | brace-expansion: 1.1.11
2386 |
2387 | minimatch@5.1.6:
2388 | dependencies:
2389 | brace-expansion: 2.0.1
2390 |
2391 | minimatch@9.0.5:
2392 | dependencies:
2393 | brace-expansion: 2.0.1
2394 |
2395 | ms@2.1.3: {}
2396 |
2397 | natural-compare@1.4.0: {}
2398 |
2399 | node-int64@0.4.0: {}
2400 |
2401 | node-releases@2.0.19: {}
2402 |
2403 | normalize-path@3.0.0: {}
2404 |
2405 | npm-run-path@4.0.1:
2406 | dependencies:
2407 | path-key: 3.1.1
2408 |
2409 | once@1.4.0:
2410 | dependencies:
2411 | wrappy: 1.0.2
2412 |
2413 | onetime@5.1.2:
2414 | dependencies:
2415 | mimic-fn: 2.1.0
2416 |
2417 | p-limit@2.3.0:
2418 | dependencies:
2419 | p-try: 2.2.0
2420 |
2421 | p-limit@3.1.0:
2422 | dependencies:
2423 | yocto-queue: 0.1.0
2424 |
2425 | p-locate@4.1.0:
2426 | dependencies:
2427 | p-limit: 2.3.0
2428 |
2429 | p-try@2.2.0: {}
2430 |
2431 | parse-json@5.2.0:
2432 | dependencies:
2433 | '@babel/code-frame': 7.26.2
2434 | error-ex: 1.3.2
2435 | json-parse-even-better-errors: 2.3.1
2436 | lines-and-columns: 1.2.4
2437 |
2438 | path-browserify@1.0.1: {}
2439 |
2440 | path-exists@4.0.0: {}
2441 |
2442 | path-is-absolute@1.0.1: {}
2443 |
2444 | path-key@3.1.1: {}
2445 |
2446 | path-parse@1.0.7: {}
2447 |
2448 | picocolors@1.1.1: {}
2449 |
2450 | picomatch@2.3.1: {}
2451 |
2452 | picomatch@4.0.2: {}
2453 |
2454 | pirates@4.0.6: {}
2455 |
2456 | pkg-dir@4.2.0:
2457 | dependencies:
2458 | find-up: 4.1.0
2459 |
2460 | pretty-format@29.7.0:
2461 | dependencies:
2462 | '@jest/schemas': 29.6.3
2463 | ansi-styles: 5.2.0
2464 | react-is: 18.3.1
2465 |
2466 | prompts@2.4.2:
2467 | dependencies:
2468 | kleur: 3.0.3
2469 | sisteransi: 1.0.5
2470 |
2471 | pure-rand@6.1.0: {}
2472 |
2473 | react-is@18.3.1: {}
2474 |
2475 | require-directory@2.1.1: {}
2476 |
2477 | resolve-cwd@3.0.0:
2478 | dependencies:
2479 | resolve-from: 5.0.0
2480 |
2481 | resolve-from@5.0.0: {}
2482 |
2483 | resolve.exports@2.0.3: {}
2484 |
2485 | resolve@1.22.10:
2486 | dependencies:
2487 | is-core-module: 2.16.1
2488 | path-parse: 1.0.7
2489 | supports-preserve-symlinks-flag: 1.0.0
2490 |
2491 | semver@6.3.1: {}
2492 |
2493 | semver@7.6.3: {}
2494 |
2495 | shebang-command@2.0.0:
2496 | dependencies:
2497 | shebang-regex: 3.0.0
2498 |
2499 | shebang-regex@3.0.0: {}
2500 |
2501 | signal-exit@3.0.7: {}
2502 |
2503 | sisteransi@1.0.5: {}
2504 |
2505 | slash@3.0.0: {}
2506 |
2507 | source-map-support@0.5.13:
2508 | dependencies:
2509 | buffer-from: 1.1.2
2510 | source-map: 0.6.1
2511 |
2512 | source-map@0.6.1: {}
2513 |
2514 | sprintf-js@1.0.3: {}
2515 |
2516 | stack-utils@2.0.6:
2517 | dependencies:
2518 | escape-string-regexp: 2.0.0
2519 |
2520 | string-length@4.0.2:
2521 | dependencies:
2522 | char-regex: 1.0.2
2523 | strip-ansi: 6.0.1
2524 |
2525 | string-width@4.2.3:
2526 | dependencies:
2527 | emoji-regex: 8.0.0
2528 | is-fullwidth-code-point: 3.0.0
2529 | strip-ansi: 6.0.1
2530 |
2531 | strip-ansi@6.0.1:
2532 | dependencies:
2533 | ansi-regex: 5.0.1
2534 |
2535 | strip-bom@4.0.0: {}
2536 |
2537 | strip-final-newline@2.0.0: {}
2538 |
2539 | strip-json-comments@3.1.1: {}
2540 |
2541 | supports-color@7.2.0:
2542 | dependencies:
2543 | has-flag: 4.0.0
2544 |
2545 | supports-color@8.1.1:
2546 | dependencies:
2547 | has-flag: 4.0.0
2548 |
2549 | supports-preserve-symlinks-flag@1.0.0: {}
2550 |
2551 | test-exclude@6.0.0:
2552 | dependencies:
2553 | '@istanbuljs/schema': 0.1.3
2554 | glob: 7.2.3
2555 | minimatch: 3.1.2
2556 |
2557 | tinyglobby@0.2.10:
2558 | dependencies:
2559 | fdir: 6.4.2(picomatch@4.0.2)
2560 | picomatch: 4.0.2
2561 |
2562 | tmpl@1.0.5: {}
2563 |
2564 | to-regex-range@5.0.1:
2565 | dependencies:
2566 | is-number: 7.0.0
2567 |
2568 | ts-jest@29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(jest@29.7.0(@types/node@22.10.2))(typescript@5.7.2):
2569 | dependencies:
2570 | bs-logger: 0.2.6
2571 | ejs: 3.1.10
2572 | fast-json-stable-stringify: 2.1.0
2573 | jest: 29.7.0(@types/node@22.10.2)
2574 | jest-util: 29.7.0
2575 | json5: 2.2.3
2576 | lodash.memoize: 4.1.2
2577 | make-error: 1.3.6
2578 | semver: 7.6.3
2579 | typescript: 5.7.2
2580 | yargs-parser: 21.1.1
2581 | optionalDependencies:
2582 | '@babel/core': 7.26.0
2583 | '@jest/transform': 29.7.0
2584 | '@jest/types': 29.6.3
2585 | babel-jest: 29.7.0(@babel/core@7.26.0)
2586 |
2587 | ts-morph@24.0.0:
2588 | dependencies:
2589 | '@ts-morph/common': 0.25.0
2590 | code-block-writer: 13.0.3
2591 |
2592 | type-detect@4.0.8: {}
2593 |
2594 | type-fest@0.21.3: {}
2595 |
2596 | typescript@5.7.2: {}
2597 |
2598 | undici-types@6.20.0: {}
2599 |
2600 | update-browserslist-db@1.1.1(browserslist@4.24.3):
2601 | dependencies:
2602 | browserslist: 4.24.3
2603 | escalade: 3.2.0
2604 | picocolors: 1.1.1
2605 |
2606 | v8-to-istanbul@9.3.0:
2607 | dependencies:
2608 | '@jridgewell/trace-mapping': 0.3.25
2609 | '@types/istanbul-lib-coverage': 2.0.6
2610 | convert-source-map: 2.0.0
2611 |
2612 | walker@1.0.8:
2613 | dependencies:
2614 | makeerror: 1.0.12
2615 |
2616 | which@2.0.2:
2617 | dependencies:
2618 | isexe: 2.0.0
2619 |
2620 | wrap-ansi@7.0.0:
2621 | dependencies:
2622 | ansi-styles: 4.3.0
2623 | string-width: 4.2.3
2624 | strip-ansi: 6.0.1
2625 |
2626 | wrappy@1.0.2: {}
2627 |
2628 | write-file-atomic@4.0.2:
2629 | dependencies:
2630 | imurmurhash: 0.1.4
2631 | signal-exit: 3.0.7
2632 |
2633 | y18n@5.0.8: {}
2634 |
2635 | yallist@3.1.1: {}
2636 |
2637 | yargs-parser@21.1.1: {}
2638 |
2639 | yargs@17.7.2:
2640 | dependencies:
2641 | cliui: 8.0.1
2642 | escalade: 3.2.0
2643 | get-caller-file: 2.0.5
2644 | require-directory: 2.1.1
2645 | string-width: 4.2.3
2646 | y18n: 5.0.8
2647 | yargs-parser: 21.1.1
2648 |
2649 | yocto-queue@0.1.0: {}
2650 |
--------------------------------------------------------------------------------