diff --git a/packages/dmn-feel-antlr4-parser/src/parser/VariablesRepository.ts b/packages/dmn-feel-antlr4-parser/src/parser/VariablesRepository.ts index 5f137916a3f..a923a0186f7 100644 --- a/packages/dmn-feel-antlr4-parser/src/parser/VariablesRepository.ts +++ b/packages/dmn-feel-antlr4-parser/src/parser/VariablesRepository.ts @@ -379,6 +379,35 @@ export class VariablesRepository { this.addVariable(id, "", FeelSyntacticSymbolNature.LocalVariable, parent); } + private addDecisionTableEntryNode(parent: VariableContext, entryId: string) { + const ruleInputElementNode = this.addVariable(entryId, "", FeelSyntacticSymbolNature.LocalVariable, parent); + parent.children.set(ruleInputElementNode.uuid, ruleInputElementNode); + this.addVariable(ruleInputElementNode.uuid, "", FeelSyntacticSymbolNature.LocalVariable, ruleInputElementNode); + } + + private addDecisionTable(parent: VariableContext, decisionTable: DmnDecisionTable) { + const variableNode = this.addVariable( + decisionTable["@_id"] ?? "", + "", + FeelSyntacticSymbolNature.LocalVariable, + parent + ); + parent.children.set(variableNode.uuid, variableNode); + + if (decisionTable.rule) { + for (const ruleElement of decisionTable.rule) { + ruleElement.inputEntry?.forEach((ruleInputElement) => + this.addDecisionTableEntryNode(parent, ruleInputElement["@_id"] ?? "") + ); + ruleElement.outputEntry?.forEach((ruleOutputElement) => + this.addDecisionTableEntryNode(parent, ruleOutputElement["@_id"] ?? "") + ); + } + } + + this.addVariable(variableNode.uuid, "", FeelSyntacticSymbolNature.LocalVariable, parent); + } + private addInvocation(parent: VariableContext, element: DmnInvocation) { if (element.binding) { for (const bindingElement of element.binding) { @@ -594,7 +623,8 @@ export class VariablesRepository { break; case "decisionTable": - // Do nothing because DecisionTable does not define variables + // It doesn't define variables but we need it to create its own context to use variables inside of Decision Table. + this.addDecisionTable(parent, expression); break; case "context": diff --git a/packages/feel-input-component/package.json b/packages/feel-input-component/package.json index be2dfee300d..da5dc24036d 100644 --- a/packages/feel-input-component/package.json +++ b/packages/feel-input-component/package.json @@ -30,6 +30,7 @@ "@babel/preset-env": "^7.16.0", "@babel/preset-react": "^7.16.0", "@kie-tools-core/webpack-base": "workspace:*", + "@kie-tools/dmn-marshaller": "workspace:*", "@kie-tools/eslint": "workspace:*", "@kie-tools/jest-base": "workspace:*", "@kie-tools/root-env": "workspace:*", diff --git a/packages/feel-input-component/tests-data/variables-inside-decision-tables/included.dmn b/packages/feel-input-component/tests-data/variables-inside-decision-tables/included.dmn new file mode 100644 index 00000000000..20e48f0279a --- /dev/null +++ b/packages/feel-input-component/tests-data/variables-inside-decision-tables/included.dmn @@ -0,0 +1,106 @@ + + + + + + + + + + + + + + + Input + + + + + + + + + + + + + + + + + 190 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/feel-input-component/tests-data/variables-inside-decision-tables/modelWithInclude.dmn b/packages/feel-input-component/tests-data/variables-inside-decision-tables/modelWithInclude.dmn new file mode 100644 index 00000000000..29d96398958 --- /dev/null +++ b/packages/feel-input-component/tests-data/variables-inside-decision-tables/modelWithInclude.dmn @@ -0,0 +1,188 @@ + + + + + + + + + + + + + + + + + + + + + Input + + + + + + + - + + + MyIncludedModel.MyDS(LocalInput) + MyIncludedModel.RemoteInput + + + + + + + + - + + + LocalInput + LocalDecision + + + + + + + + - + + + MyIncludedModel.MyDS(LocalInput) + MyIncludedModel.RemoteInput + LocalInput + LocalDecision + + + + + + + + + + + + + + + + + + + 60 + 118 + 773 + 240 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/feel-input-component/tests/semanticTokensProvider.test.ts b/packages/feel-input-component/tests/semanticTokensProvider.test.ts index 644547c8dac..44d2261587c 100644 --- a/packages/feel-input-component/tests/semanticTokensProvider.test.ts +++ b/packages/feel-input-component/tests/semanticTokensProvider.test.ts @@ -22,6 +22,9 @@ import { BuiltInTypes, DmnDefinitions, FeelVariables } from "@kie-tools/dmn-feel import * as Monaco from "@kie-tools-core/monaco-editor"; import { Element } from "@kie-tools/feel-input-component/dist/themes/Element"; +import * as fs from "fs"; +import * as path from "path"; +import { getMarshaller } from "@kie-tools/dmn-marshaller"; describe("Semantic Tokens Provider", () => { const cancellationTokenMock = { @@ -286,6 +289,145 @@ ThatShouldFailWhenBreakLine`, } }); }); + + describe("variables inside Decision Tables", () => { + const dmnModelWithIncludesPosixPathRelativeToTheTestFile = + "../tests-data/variables-inside-decision-tables/modelWithInclude.dmn"; + const includedDmnModelPosixPathRelativeToTheTestFile = + "../tests-data/variables-inside-decision-tables/included.dmn"; + const localModel = getDmnModelFromFilePath(dmnModelWithIncludesPosixPathRelativeToTheTestFile); + const includedModel = getDmnModelFromFilePath(includedDmnModelPosixPathRelativeToTheTestFile); + + test("should recognize local nodes", async () => { + const expression = "LocalInput + LocalDecision"; + const id = "_AEC3EEB0-8436-4767-A214-20FF5E5CB7BE"; + const modelMock = createModelMockForExpression(expression); + + const feelVariables = new FeelVariables( + localModel.definitions, + new Map([[includedModel.definitions["@_namespace"] ?? "", includedModel]]) + ); + + const semanticTokensProvider = new SemanticTokensProvider(feelVariables, id, () => {}); + + const semanticMonacoTokens = await semanticTokensProvider.provideDocumentSemanticTokens( + modelMock as unknown as Monaco.editor.ITextModel, + null, + cancellationTokenMock + ); + + const expected = [ + ...getMonacoSemanticToken({ + startLineRelativeToPreviousLine: 0, + startIndexRelativeToPreviousStartIndex: 0, + tokenLength: "LocalInput".length, + }), + ...getMonacoSemanticToken({ + startLineRelativeToPreviousLine: 0, + startIndexRelativeToPreviousStartIndex: "LocalInput".length + 3, // +3 because of the " + " + tokenLength: "LocalDecision".length, + }), + ]; + + for (let i = 0; i < expected.length; i++) { + expect(semanticMonacoTokens?.data[i]).toEqual(expected[i]); + } + }); + + test("should recognize included nodes", async () => { + const expression = "MyIncludedModel.MyDS(LocalInput) + MyIncludedModel.RemoteInput"; + const id = "_206131ED-0B81-4013-980A-4BB2539A53D0"; + const modelMock = createModelMockForExpression(expression); + + const feelVariables = new FeelVariables( + localModel.definitions, + new Map([[includedModel.definitions["@_namespace"] ?? "", includedModel]]) + ); + + const semanticTokensProvider = new SemanticTokensProvider(feelVariables, id, () => {}); + + const semanticMonacoTokens = await semanticTokensProvider.provideDocumentSemanticTokens( + modelMock as unknown as Monaco.editor.ITextModel, + null, + cancellationTokenMock + ); + + const expected = [ + ...getMonacoSemanticToken({ + startLineRelativeToPreviousLine: 0, + startIndexRelativeToPreviousStartIndex: 0, + tokenLength: "MyIncludedModel.MyDS".length, + tokenType: Element.FunctionCall, + }), + ...getMonacoSemanticToken({ + startLineRelativeToPreviousLine: 0, + startIndexRelativeToPreviousStartIndex: "MyIncludedModel.MyDS".length + 1, // +1 because of the "(" + tokenLength: "LocalInput".length, + }), + ...getMonacoSemanticToken({ + startLineRelativeToPreviousLine: 0, + startIndexRelativeToPreviousStartIndex: "LocalInput".length + ") + ".length, + tokenLength: "MyIncludedModel.RemoteInput".length, + }), + ]; + + for (let i = 0; i < expected.length; i++) { + expect(semanticMonacoTokens?.data[i]).toEqual(expected[i]); + } + }); + + test("should recognize included nodes mixed with included nodes", async () => { + const expression = "MyIncludedModel.MyDS(LocalInput) + MyIncludedModel.RemoteInput + LocalInput + LocalDecision"; + const id = "_18832484-9481-49BC-BD40-927CB9872C6B"; + const modelMock = createModelMockForExpression(expression); + + const feelVariables = new FeelVariables( + localModel.definitions, + new Map([[includedModel.definitions["@_namespace"] ?? "", includedModel]]) + ); + + const semanticTokensProvider = new SemanticTokensProvider(feelVariables, id, () => {}); + + const semanticMonacoTokens = await semanticTokensProvider.provideDocumentSemanticTokens( + modelMock as unknown as Monaco.editor.ITextModel, + null, + cancellationTokenMock + ); + + const expected = [ + ...getMonacoSemanticToken({ + startLineRelativeToPreviousLine: 0, + startIndexRelativeToPreviousStartIndex: 0, + tokenLength: "MyIncludedModel.MyDS".length, + tokenType: Element.FunctionCall, + }), + ...getMonacoSemanticToken({ + startLineRelativeToPreviousLine: 0, + startIndexRelativeToPreviousStartIndex: "MyIncludedModel.MyDS".length + 1, // +1 because of the "(" + tokenLength: "LocalInput".length, + }), + ...getMonacoSemanticToken({ + startLineRelativeToPreviousLine: 0, + startIndexRelativeToPreviousStartIndex: "LocalInput".length + ") + ".length, + tokenLength: "MyIncludedModel.RemoteInput".length, + }), + ...getMonacoSemanticToken({ + startLineRelativeToPreviousLine: 0, + startIndexRelativeToPreviousStartIndex: "MyIncludedModel.RemoteInput".length + " + ".length, + tokenLength: "LocalInput".length, + }), + ...getMonacoSemanticToken({ + startLineRelativeToPreviousLine: 0, + startIndexRelativeToPreviousStartIndex: "LocalInput".length + " + ".length, + tokenLength: "LocalDecision".length, + }), + ]; + + for (let i = 0; i < expected.length; i++) { + expect(semanticMonacoTokens?.data[i]).toEqual(expected[i]); + } + }); + }); }); function getDmnModelWithContextEntry({ @@ -377,3 +519,11 @@ function createModelMockForExpression(expression: string) { getLinesContent: jest.fn().mockReturnValue(expression.split("\n")), }; } + +function getDmnModelFromFilePath(modelFilePosixPathRelativeToTheTestFile: string) { + const { parser } = getMarshaller( + fs.readFileSync(path.join(__dirname, modelFilePosixPathRelativeToTheTestFile), "utf-8"), + { upgradeTo: "latest" } + ); + return parser.parse(); +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a7977bd811f..7be777f4158 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -852,13 +852,13 @@ importers: version: 1.67.0 jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@22.5.2)(node-notifier@8.0.2)(ts-node@10.9.2(@types/node@22.5.2)(typescript@5.5.3)) + version: 29.7.0(@types/node@20.14.2)(node-notifier@8.0.2)(ts-node@10.9.2(@types/node@20.14.2)(typescript@5.5.3)) jest-junit: specifier: ^16.0.0 version: 16.0.0 jest-when: specifier: ^3.6.0 - version: 3.6.0(jest@29.7.0(@types/node@22.5.2)(node-notifier@8.0.2)(ts-node@10.9.2(@types/node@22.5.2)(typescript@5.5.3))) + version: 3.6.0(jest@29.7.0(@types/node@20.14.2)(node-notifier@8.0.2)(ts-node@10.9.2(@types/node@20.14.2)(typescript@5.5.3))) rimraf: specifier: ^3.0.2 version: 3.0.2 @@ -867,7 +867,7 @@ importers: version: 0.0.2 ts-jest: specifier: ^29.1.5 - version: 29.1.5(@babel/core@7.16.12)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.16.12))(jest@29.7.0(@types/node@22.5.2)(node-notifier@8.0.2)(ts-node@10.9.2(@types/node@22.5.2)(typescript@5.5.3)))(typescript@5.5.3) + version: 29.1.5(@babel/core@7.16.12)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.16.12))(jest@29.7.0(@types/node@20.14.2)(node-notifier@8.0.2)(ts-node@10.9.2(@types/node@20.14.2)(typescript@5.5.3)))(typescript@5.5.3) typescript: specifier: ^5.5.3 version: 5.5.3 @@ -1021,13 +1021,13 @@ importers: version: 6.2.0(webpack@5.94.0(@swc/core@1.3.92)(esbuild@0.18.20)(webpack-cli@4.10.0)) jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@20.14.2)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.92)(@types/node@20.14.2)(typescript@5.5.3)) + version: 29.7.0(@types/node@22.5.2)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.92)(@types/node@22.5.2)(typescript@5.5.3)) jest-junit: specifier: ^16.0.0 version: 16.0.0 jest-when: specifier: ^3.6.0 - version: 3.6.0(jest@29.7.0(@types/node@20.14.2)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.92)(@types/node@20.14.2)(typescript@5.5.3))) + version: 3.6.0(jest@29.7.0(@types/node@22.5.2)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.92)(@types/node@22.5.2)(typescript@5.5.3))) react-json-view: specifier: ^1.21.3 version: 1.21.3(@types/react@17.0.21)(react-dom@17.0.2(react@17.0.2))(react@17.0.2) @@ -1042,7 +1042,7 @@ importers: version: 7.4.6 ts-jest: specifier: ^29.1.5 - version: 29.1.5(@babel/core@7.16.12)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.16.12))(esbuild@0.18.20)(jest@29.7.0(@types/node@20.14.2)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.92)(@types/node@20.14.2)(typescript@5.5.3)))(typescript@5.5.3) + version: 29.1.5(@babel/core@7.16.12)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.16.12))(esbuild@0.18.20)(jest@29.7.0(@types/node@22.5.2)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.92)(@types/node@22.5.2)(typescript@5.5.3)))(typescript@5.5.3) typescript: specifier: ^5.5.3 version: 5.5.3 @@ -4532,6 +4532,9 @@ importers: '@kie-tools-core/webpack-base': specifier: workspace:* version: link:../webpack-base + '@kie-tools/dmn-marshaller': + specifier: workspace:* + version: link:../dmn-marshaller '@kie-tools/eslint': specifier: workspace:* version: link:../eslint @@ -19436,9 +19439,6 @@ packages: '@types/http-proxy@1.17.14': resolution: {integrity: sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==} - '@types/inquirer@7.3.3': - resolution: {integrity: sha512-HhxyLejTHMfohAuhRun4csWigAMjXTmRyiJTU1Y/I1xmggikFMkOUoMQRlFm+zQcPEGHSs3io/0FAmNZf8EymQ==} - '@types/invariant@2.2.35': resolution: {integrity: sha512-DxX1V9P8zdJPYQat1gHyY0xj3efl8gnMVjiM9iCY6y27lj+PoQWkgjt8jDqmovPqULkKVpKRg8J36iQiA+EtEg==} @@ -19709,9 +19709,6 @@ packages: '@types/testing-library__jest-dom@5.14.9': resolution: {integrity: sha512-FSYhIjFlfOpGSRyVoMBMuS3ws5ehFQODymf3vlI7U1K8c7PHwWwFY7VREfmsuzHSOnoKs/9/Y983ayOs7eRzqw==} - '@types/through@0.0.30': - resolution: {integrity: sha512-FvnCJljyxhPM3gkRgWmxmDZyAQSiBQQWLI0A0VFL0K7W1oRUrPJSqNO0NvTnLkBcotdlp3lKvaT0JrnyRDkzOg==} - '@types/tough-cookie@4.0.2': resolution: {integrity: sha512-Q5vtl1W5ue16D+nIaW8JWebSSraJVlK+EthKn7e7UcD4KWsaSJ8BqGPXNaPghgtcn/fhvrN17Tv8ksUsQpiplw==} @@ -24213,10 +24210,6 @@ packages: resolution: {integrity: sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - inquirer@8.2.0: - resolution: {integrity: sha512-0crLweprevJ02tTuA6ThpoAERAGyVILC4sS74uib58Xf/zSr1/ZWtmm7D5CI+bSQEaA04f0K7idaHpQbSWgiVQ==} - engines: {node: '>=8.0.0'} - inquirer@8.2.4: resolution: {integrity: sha512-nn4F01dxU8VeKfq192IjLsxu0/OmMZ4Lg3xKAns148rCaXP6ntAoEkVYZThWjwON8AlzdZZi6oqnhNbxUG9hVg==} engines: {node: '>=12.0.0'} @@ -28105,10 +28098,6 @@ packages: resolution: {integrity: sha512-ql6P2LzhBTTDfzKts+Qo4H94VUKpxKDFz6QxxwaUZN0mwvi7L3lpOI7BqPCq7lgDh3XLl0dpeXwfcVIitlrYrw==} hasBin: true - rxjs@6.6.7: - resolution: {integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==} - engines: {npm: '>=2.0.0'} - rxjs@7.5.2: resolution: {integrity: sha512-PwDt186XaL3QN5qXj/H9DGyHhP3/RYYgZZwqBv9Tv8rsAaiwFH1IsJJlcgD37J7UW5a6O67qX0KWKS3/pu0m4w==} @@ -37826,41 +37815,6 @@ snapshots: - supports-color - ts-node - '@jest/core@29.7.0(ts-node@10.9.2(@types/node@22.5.2)(typescript@5.5.3))': - dependencies: - '@jest/console': 29.7.0 - '@jest/reporters': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 20.14.2 - ansi-escapes: 4.3.2 - chalk: 4.1.2 - ci-info: 3.3.2 - exit: 0.1.2 - graceful-fs: 4.2.11 - jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@20.14.2)(ts-node@10.9.2(@types/node@22.5.2)(typescript@5.5.3)) - jest-haste-map: 29.7.0 - jest-message-util: 29.7.0 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-resolve-dependencies: 29.7.0 - jest-runner: 29.7.0 - jest-runtime: 29.7.0 - jest-snapshot: 29.7.0 - jest-util: 29.7.0 - jest-validate: 29.7.0 - jest-watcher: 29.7.0 - micromatch: 4.0.5 - pretty-format: 29.7.0 - slash: 3.0.0 - strip-ansi: 6.0.1 - transitivePeerDependencies: - - babel-plugin-macros - - supports-color - - ts-node - '@jest/environment@29.7.0': dependencies: '@jest/fake-timers': 29.7.0 @@ -37925,6 +37879,7 @@ snapshots: v8-to-istanbul: 9.1.3 transitivePeerDependencies: - supports-color + optional: true '@jest/reporters@29.7.0(node-notifier@8.0.2)': dependencies: @@ -42116,21 +42071,6 @@ snapshots: '@types/jest': 29.5.12 jest: 29.7.0(@types/node@22.5.2)(node-notifier@8.0.2)(ts-node@10.9.2(@types/node@22.5.2)(typescript@5.5.3)) - '@testing-library/jest-dom@6.4.6(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@22.5.2)(ts-node@10.9.2(@types/node@22.5.2)(typescript@5.5.3)))': - dependencies: - '@adobe/css-tools': 4.4.0 - '@babel/runtime': 7.23.6 - aria-query: 5.1.3 - chalk: 3.0.0 - css.escape: 1.5.1 - dom-accessibility-api: 0.6.3 - lodash: 4.17.21 - redent: 3.0.0 - optionalDependencies: - '@jest/globals': 29.7.0 - '@types/jest': 29.5.12 - jest: 29.7.0(@types/node@22.5.2)(ts-node@10.9.2(@types/node@22.5.2)(typescript@5.5.3)) - '@testing-library/react-hooks@8.0.1(@types/react@17.0.21)(react-dom@17.0.2(react@17.0.2))(react-test-renderer@17.0.2(react@17.0.2))(react@17.0.2)': dependencies: '@babel/runtime': 7.23.6 @@ -42530,11 +42470,6 @@ snapshots: dependencies: '@types/node': 20.14.13 - '@types/inquirer@7.3.3': - dependencies: - '@types/through': 0.0.30 - rxjs: 6.6.7 - '@types/invariant@2.2.35': {} '@types/istanbul-lib-coverage@2.0.1': {} @@ -42840,10 +42775,6 @@ snapshots: dependencies: '@types/jest': 29.5.12 - '@types/through@0.0.30': - dependencies: - '@types/node': 20.14.2 - '@types/tough-cookie@4.0.2': {} '@types/treeify@1.0.0': {} @@ -49507,23 +49438,6 @@ snapshots: ini@4.1.3: {} - inquirer@8.2.0: - dependencies: - ansi-escapes: 4.3.2 - chalk: 4.1.2 - cli-cursor: 3.1.0 - cli-width: 3.0.0 - external-editor: 3.1.0 - figures: 3.2.0 - lodash: 4.17.21 - mute-stream: 0.0.8 - ora: 5.4.1 - run-async: 2.4.1 - rxjs: 7.5.2 - string-width: 4.2.3 - strip-ansi: 6.0.1 - through: 2.3.8 - inquirer@8.2.4: dependencies: ansi-escapes: 4.3.2 @@ -50127,25 +50041,6 @@ snapshots: - supports-color - ts-node - jest-cli@29.7.0(@types/node@22.5.2)(ts-node@10.9.2(@types/node@22.5.2)(typescript@5.5.3)): - dependencies: - '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@22.5.2)(typescript@5.5.3)) - '@jest/test-result': 29.7.0 - '@jest/types': 29.6.3 - chalk: 4.1.2 - create-jest: 29.7.0(@types/node@22.5.2)(ts-node@10.9.2(@types/node@22.5.2)(typescript@5.5.3)) - exit: 0.1.2 - import-local: 3.0.2 - jest-config: 29.7.0(@types/node@22.5.2)(ts-node@10.9.2(@types/node@22.5.2)(typescript@5.5.3)) - jest-util: 29.7.0 - jest-validate: 29.7.0 - yargs: 17.7.2 - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - jest-config@29.7.0(@types/node@20.14.2): dependencies: '@babel/core': 7.24.9 @@ -50732,6 +50627,10 @@ snapshots: dependencies: jest: 29.7.0(@types/node@20.14.2)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.92)(@types/node@20.14.2)(typescript@5.5.3)) + jest-when@3.6.0(jest@29.7.0(@types/node@20.14.2)(node-notifier@8.0.2)(ts-node@10.9.2(@types/node@20.14.2)(typescript@5.5.3))): + dependencies: + jest: 29.7.0(@types/node@20.14.2)(node-notifier@8.0.2)(ts-node@10.9.2(@types/node@20.14.2)(typescript@5.5.3)) + jest-when@3.6.0(jest@29.7.0(@types/node@22.5.2)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.92)(@types/node@22.5.2)(typescript@5.5.3))): dependencies: jest: 29.7.0(@types/node@22.5.2)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.92)(@types/node@22.5.2)(typescript@5.5.3)) @@ -50740,10 +50639,6 @@ snapshots: dependencies: jest: 29.7.0(@types/node@22.5.2)(node-notifier@8.0.2)(ts-node@10.9.2(@types/node@22.5.2)(typescript@5.5.3)) - jest-when@3.6.0(jest@29.7.0(@types/node@22.5.2)(ts-node@10.9.2(@types/node@22.5.2)(typescript@5.5.3))): - dependencies: - jest: 29.7.0(@types/node@22.5.2)(ts-node@10.9.2(@types/node@22.5.2)(typescript@5.5.3)) - jest-worker@25.5.0: dependencies: merge-stream: 2.0.0 @@ -50851,18 +50746,6 @@ snapshots: - supports-color - ts-node - jest@29.7.0(@types/node@22.5.2)(ts-node@10.9.2(@types/node@22.5.2)(typescript@5.5.3)): - dependencies: - '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@22.5.2)(typescript@5.5.3)) - '@jest/types': 29.6.3 - import-local: 3.0.2 - jest-cli: 29.7.0(@types/node@22.5.2)(ts-node@10.9.2(@types/node@22.5.2)(typescript@5.5.3)) - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - jiti@1.17.1: {} jiti@1.21.6: {} @@ -54750,10 +54633,6 @@ snapshots: run-script-os@1.1.6: {} - rxjs@6.6.7: - dependencies: - tslib: 1.14.1 - rxjs@7.5.2: dependencies: tslib: 2.3.1 @@ -56280,11 +56159,11 @@ snapshots: babel-jest: 29.7.0(@babel/core@7.16.12) esbuild: 0.15.13 - ts-jest@29.1.5(@babel/core@7.16.12)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.16.12))(esbuild@0.18.20)(jest@29.7.0(@types/node@20.14.2)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.92)(@types/node@20.14.2)(typescript@5.5.3)))(typescript@5.5.3): + ts-jest@29.1.5(@babel/core@7.16.12)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.16.12))(esbuild@0.18.20)(jest@29.7.0(@types/node@22.5.2)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.92)(@types/node@22.5.2)(typescript@5.5.3)))(typescript@5.5.3): dependencies: bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 - jest: 29.7.0(@types/node@20.14.2)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.92)(@types/node@20.14.2)(typescript@5.5.3)) + jest: 29.7.0(@types/node@22.5.2)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.92)(@types/node@22.5.2)(typescript@5.5.3)) jest-util: 29.7.0 json5: 2.2.3 lodash.memoize: 4.1.2 @@ -56299,11 +56178,11 @@ snapshots: babel-jest: 29.7.0(@babel/core@7.16.12) esbuild: 0.18.20 - ts-jest@29.1.5(@babel/core@7.16.12)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.16.12))(jest@29.7.0(@types/node@22.5.2)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.92)(@types/node@22.5.2)(typescript@5.5.3)))(typescript@5.5.3): + ts-jest@29.1.5(@babel/core@7.16.12)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.16.12))(jest@29.7.0(@types/node@20.14.2)(node-notifier@8.0.2)(ts-node@10.9.2(@types/node@20.14.2)(typescript@5.5.3)))(typescript@5.5.3): dependencies: bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 - jest: 29.7.0(@types/node@22.5.2)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.92)(@types/node@22.5.2)(typescript@5.5.3)) + jest: 29.7.0(@types/node@20.14.2)(node-notifier@8.0.2)(ts-node@10.9.2(@types/node@20.14.2)(typescript@5.5.3)) jest-util: 29.7.0 json5: 2.2.3 lodash.memoize: 4.1.2 @@ -56317,11 +56196,11 @@ snapshots: '@jest/types': 29.6.3 babel-jest: 29.7.0(@babel/core@7.16.12) - ts-jest@29.1.5(@babel/core@7.16.12)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.16.12))(jest@29.7.0(@types/node@22.5.2)(node-notifier@8.0.2)(ts-node@10.9.2(@types/node@22.5.2)(typescript@5.5.3)))(typescript@5.5.3): + ts-jest@29.1.5(@babel/core@7.16.12)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.16.12))(jest@29.7.0(@types/node@22.5.2)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.92)(@types/node@22.5.2)(typescript@5.5.3)))(typescript@5.5.3): dependencies: bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 - jest: 29.7.0(@types/node@22.5.2)(node-notifier@8.0.2)(ts-node@10.9.2(@types/node@22.5.2)(typescript@5.5.3)) + jest: 29.7.0(@types/node@22.5.2)(node-notifier@8.0.2)(ts-node@10.9.2(@swc/core@1.3.92)(@types/node@22.5.2)(typescript@5.5.3)) jest-util: 29.7.0 json5: 2.2.3 lodash.memoize: 4.1.2 @@ -56335,11 +56214,11 @@ snapshots: '@jest/types': 29.6.3 babel-jest: 29.7.0(@babel/core@7.16.12) - ts-jest@29.1.5(@babel/core@7.16.12)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.16.12))(jest@29.7.0(@types/node@22.5.2)(ts-node@10.9.2(@types/node@22.5.2)(typescript@5.5.3)))(typescript@5.5.3): + ts-jest@29.1.5(@babel/core@7.16.12)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.16.12))(jest@29.7.0(@types/node@22.5.2)(node-notifier@8.0.2)(ts-node@10.9.2(@types/node@22.5.2)(typescript@5.5.3)))(typescript@5.5.3): dependencies: bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 - jest: 29.7.0(@types/node@22.5.2)(ts-node@10.9.2(@types/node@22.5.2)(typescript@5.5.3)) + jest: 29.7.0(@types/node@22.5.2)(node-notifier@8.0.2)(ts-node@10.9.2(@types/node@22.5.2)(typescript@5.5.3)) jest-util: 29.7.0 json5: 2.2.3 lodash.memoize: 4.1.2