This is an automated email from the ASF dual-hosted git repository.

tiagobento pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-kie-tools.git


The following commit(s) were added to refs/heads/main by this push:
     new 683be53c9d6 kie-issues#1376: The width information are not being 
deleted from DMN when the expression is deleted in the new Boxed Expression 
Editor (#2602)
683be53c9d6 is described below

commit 683be53c9d61d1c39f0bc8ad1b5bb45fdb86dd8e
Author: Daniel José dos Santos <[email protected]>
AuthorDate: Mon Sep 23 18:39:59 2024 -0300

    kie-issues#1376: The width information are not being deleted from DMN when 
the expression is deleted in the new Boxed Expression Editor (#2602)
---
 packages/dmn-editor/jest.config.js                 |  30 +++
 packages/dmn-editor/package.json                   |  10 +-
 .../src/boxedExpressions/BoxedExpressionScreen.tsx |   1 -
 .../src/mutations/updateExpressionWidths.ts        |  15 +-
 .../tests/mutations/updateExpressionWidth.test.ts  | 242 +++++++++++++++++++++
 packages/dmn-editor/tsconfig.tests.json            |   3 +
 pnpm-lock.yaml                                     | 183 ++++++++++++++++
 7 files changed, 469 insertions(+), 15 deletions(-)

diff --git a/packages/dmn-editor/jest.config.js 
b/packages/dmn-editor/jest.config.js
new file mode 100644
index 00000000000..cd848227e0f
--- /dev/null
+++ b/packages/dmn-editor/jest.config.js
@@ -0,0 +1,30 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+const { config, babelTransform, typescriptTransform } = 
require("@kie-tools/jest-base/jest.config");
+
+/** @type {import('ts-jest').JestConfigWithTsJest} */
+module.exports = {
+  ...config,
+  testEnvironment: "node",
+  transform: {
+    ...babelTransform,
+    ...typescriptTransform,
+  },
+};
diff --git a/packages/dmn-editor/package.json b/packages/dmn-editor/package.json
index 1d0aab8ade2..a7328dac98e 100644
--- a/packages/dmn-editor/package.json
+++ b/packages/dmn-editor/package.json
@@ -18,13 +18,14 @@
   ],
   "scripts": {
     "build:dev": "rimraf dist && pnpm copy:css && tsc -p tsconfig.json",
-    "build:prod": "rimraf dist && pnpm copy:css && pnpm lint && tsc -p 
tsconfig.json && pnpm test-e2e",
+    "build:prod": "rimraf dist && pnpm copy:css && pnpm lint && tsc -p 
tsconfig.json && pnpm test-e2e && pnpm test",
     "build:storybook": "storybook build -o dist-storybook",
     "copy:css": "copyfiles -u 1 \"src/**/*.{sass,scss,css}\" dist/",
     "lint": "run-script-if --bool \"$(build-env linters.run)\" --then 
\"kie-tools--eslint ./src\"",
     "start": "run-script-os",
     "start:linux:darwin": "cross-env STORYBOOK_PORT=$(build-env 
dmnEditor.storybook.port) pnpm kie-tools--storybook --storybookArgs=\"dev 
--no-open\"",
     "start:win32": "pnpm powershell \"cross-env STORYBOOK_PORT=$(build-env 
dmnEditor.storybook.port) pnpm kie-tools--storybook --storybookArgs='dev 
--no-open'",
+    "test": "run-script-if --ignore-errors \"$(build-env 
tests.ignoreFailures)\" --bool \"$(build-env tests.run)\" --then \"jest 
--silent --verbose --passWithNoTests\"",
     "test-e2e": "run-script-if --ignore-errors \"$(build-env 
endToEndTests.ignoreFailures)\" --bool \"$(build-env endToEndTests.run)\" 
--then \"pnpm rimraf ./dist-tests-e2e\" \"pnpm test-e2e:run\"",
     "test-e2e:open": "pnpm exec playwright show-report dist-tests-e2e/reports",
     "test-e2e:run": "pnpm exec playwright test"
@@ -65,6 +66,7 @@
     "@babel/preset-typescript": "^7.22.5",
     "@kie-tools-core/webpack-base": "workspace:*",
     "@kie-tools/eslint": "workspace:*",
+    "@kie-tools/jest-base": "workspace:*",
     "@kie-tools/playwright-base": "workspace:*",
     "@kie-tools/root-env": "workspace:*",
     "@kie-tools/storybook-base": "workspace:*",
@@ -79,6 +81,8 @@
     "@storybook/react-webpack5": "^7.3.2",
     "@types/d3-drag": "^3.0.3",
     "@types/d3-selection": "^3.0.6",
+    "@types/jest": "^29.5.12",
+    "@types/jest-when": "^3.5.5",
     "@types/lodash": "^4.14.168",
     "@types/node": "^20.14.2",
     "@types/react": "^17.0.6",
@@ -89,11 +93,15 @@
     "cross-env": "^7.0.3",
     "deep-object-diff": "^1.1.9",
     "file-loader": "^6.2.0",
+    "jest": "^29.7.0",
+    "jest-junit": "^16.0.0",
+    "jest-when": "^3.6.0",
     "lodash": "^4.17.21",
     "rimraf": "^3.0.2",
     "run-script-os": "^1.1.6",
     "start-server-and-test": "^2.0.3",
     "storybook": "^7.3.2",
+    "ts-jest": "^29.1.5",
     "typescript": "^5.5.3",
     "webpack": "^5.94.0",
     "webpack-cli": "^4.10.0",
diff --git a/packages/dmn-editor/src/boxedExpressions/BoxedExpressionScreen.tsx 
b/packages/dmn-editor/src/boxedExpressions/BoxedExpressionScreen.tsx
index 18c7be1da75..3a0c4e08fa8 100644
--- a/packages/dmn-editor/src/boxedExpressions/BoxedExpressionScreen.tsx
+++ b/packages/dmn-editor/src/boxedExpressions/BoxedExpressionScreen.tsx
@@ -89,7 +89,6 @@ export function BoxedExpressionScreen({ container }: { 
container: React.RefObjec
   const dmnEditorStoreApi = useDmnEditorStoreApi();
 
   const thisDmn = useDmnEditorStore((s) => s.dmn);
-  const diagram = useDmnEditorStore((s) => s.diagram);
 
   const activeDrgElementId = useDmnEditorStore((s) => 
s.boxedExpressionEditor.activeDrgElementId);
   const isPropertiesPanelOpen = useDmnEditorStore((s) => 
s.boxedExpressionEditor.propertiesPanel.isOpen);
diff --git a/packages/dmn-editor/src/mutations/updateExpressionWidths.ts 
b/packages/dmn-editor/src/mutations/updateExpressionWidths.ts
index 7e6fb2d3dce..51574efcec8 100644
--- a/packages/dmn-editor/src/mutations/updateExpressionWidths.ts
+++ b/packages/dmn-editor/src/mutations/updateExpressionWidths.ts
@@ -30,20 +30,9 @@ export function updateExpressionWidths({
   drdIndex: number;
   widthsById: Map<string, number[]>;
 }): void {
-  const { widthsExtension, widths } = addOrGetDrd({ definitions, drdIndex });
-  const componentWidthsMap = widths.reduce(
-    (acc, e) =>
-      e["@_dmnElementRef"]
-        ? acc.set(
-            e["@_dmnElementRef"],
-            (e["kie:width"] ?? []).map((vv) => vv.__$$text)
-          )
-        : acc,
-    new Map<string, number[]>()
-  );
+  const { widthsExtension } = addOrGetDrd({ definitions, drdIndex });
 
-  widthsById.forEach((v, k) => componentWidthsMap.set(k, v));
-  widthsExtension["kie:ComponentWidths"] = 
[...componentWidthsMap.entries()].map(([k, v]) => ({
+  widthsExtension["kie:ComponentWidths"] = [...widthsById.entries()].map(([k, 
v]) => ({
     "@_dmnElementRef": k,
     "kie:width": v.map((vv) => ({ __$$text: vv })),
   }));
diff --git a/packages/dmn-editor/tests/mutations/updateExpressionWidth.test.ts 
b/packages/dmn-editor/tests/mutations/updateExpressionWidth.test.ts
new file mode 100644
index 00000000000..a7ab7490158
--- /dev/null
+++ b/packages/dmn-editor/tests/mutations/updateExpressionWidth.test.ts
@@ -0,0 +1,242 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import { Normalized } from 
"@kie-tools/dmn-editor/dist/normalization/normalize";
+import { DMN15__tDefinitions } from 
"@kie-tools/dmn-marshaller/dist/schemas/dmn-1_5/ts-gen/types";
+import { generateUuid } from "@kie-tools/boxed-expression-component/dist/api";
+import { KIE__tComponentsWidthsExtension } from 
"@kie-tools/dmn-marshaller/dist/schemas/kie-1_0/ts-gen/types";
+import { updateExpressionWidths } from 
"@kie-tools/dmn-editor/dist/mutations/updateExpressionWidths";
+
+describe("updateExpressionWidth", () => {
+  const drdIndex = 0;
+
+  test("when a definition is deleted from widthsFromId map, it should also be 
deleted from definitions", () => {
+    const widthEntryForElementA = { dmnElementRef: "a", widths: [10, 150, 110] 
};
+    const widthEntryForElementB = { dmnElementRef: "b", widths: [20, 250, 210] 
};
+    const widthEntryForElementC = { dmnElementRef: "c", widths: [30, 350, 310] 
};
+    const widthEntryForElementD = { dmnElementRef: "d", widths: [40, 450, 410] 
};
+
+    const definitions = createDefinitionsWithComponentWidths([
+      widthEntryForElementA,
+      widthEntryForElementB,
+      widthEntryForElementC,
+      widthEntryForElementD,
+    ]);
+
+    const widthsById: Map<string, number[]> = new Map([
+      [widthEntryForElementA.dmnElementRef, widthEntryForElementA.widths],
+      [widthEntryForElementB.dmnElementRef, widthEntryForElementB.widths],
+      [widthEntryForElementC.dmnElementRef, widthEntryForElementC.widths],
+    ]);
+
+    updateExpressionWidths({ definitions, drdIndex, widthsById });
+
+    expect(
+      definitionContainsWidthExtension({
+        widthEntry: widthEntryForElementA,
+        definitions: definitions,
+      })
+    ).toBeTruthy();
+
+    expect(
+      definitionContainsWidthExtension({
+        widthEntry: widthEntryForElementB,
+        definitions: definitions,
+      })
+    ).toBeTruthy();
+
+    expect(
+      definitionContainsWidthExtension({
+        widthEntry: widthEntryForElementC,
+        definitions: definitions,
+      })
+    ).toBeTruthy();
+
+    expect(
+      definitionContainsWidthExtension({
+        widthEntry: widthEntryForElementD,
+        definitions: definitions,
+      })
+    ).toBeFalsy();
+  });
+
+  test("when a definition is changed in widthsFromId map, it should be changed 
in definitions", () => {
+    const originalWidthEntryForElementA = { dmnElementRef: "a", widths: [1, 1, 
1] };
+    const originalWidthEntryForElementB = { dmnElementRef: "b", widths: [2, 2, 
2] };
+    const originalWidthEntryForElementC = { dmnElementRef: "c", widths: [3, 3, 
3] };
+
+    const changedWidthEntryForElementA = { dmnElementRef: "a", widths: [11, 
11, 11, 11, 11] };
+    const changedWidthEntryForElementB = { dmnElementRef: "b", widths: [20, 
20, 20] };
+    const changedWidthEntryForElementC = { dmnElementRef: "c", widths: [3, 3] 
};
+
+    const definitions = createDefinitionsWithComponentWidths([
+      originalWidthEntryForElementA,
+      originalWidthEntryForElementB,
+      originalWidthEntryForElementC,
+    ]);
+
+    const widthsById: Map<string, number[]> = new Map([
+      [changedWidthEntryForElementA.dmnElementRef, 
changedWidthEntryForElementA.widths],
+      [changedWidthEntryForElementB.dmnElementRef, 
changedWidthEntryForElementB.widths],
+      [changedWidthEntryForElementC.dmnElementRef, 
changedWidthEntryForElementC.widths],
+    ]);
+
+    updateExpressionWidths({ definitions, drdIndex, widthsById });
+
+    expect(
+      definitionContainsWidthExtension({
+        widthEntry: originalWidthEntryForElementA,
+        definitions: definitions,
+      })
+    ).toBeFalsy();
+
+    expect(
+      definitionContainsWidthExtension({
+        widthEntry: originalWidthEntryForElementB,
+        definitions: definitions,
+      })
+    ).toBeFalsy();
+
+    expect(
+      definitionContainsWidthExtension({
+        widthEntry: originalWidthEntryForElementC,
+        definitions: definitions,
+      })
+    ).toBeFalsy();
+
+    expect(
+      definitionContainsWidthExtension({
+        widthEntry: changedWidthEntryForElementA,
+        definitions: definitions,
+      })
+    ).toBeTruthy();
+
+    expect(
+      definitionContainsWidthExtension({
+        widthEntry: changedWidthEntryForElementB,
+        definitions: definitions,
+      })
+    ).toBeTruthy();
+
+    expect(
+      definitionContainsWidthExtension({
+        widthEntry: changedWidthEntryForElementC,
+        definitions: definitions,
+      })
+    ).toBeTruthy();
+  });
+
+  test("when a definition is added in widthsFromId map, it should also be 
added in definitions", () => {
+    const originalWidthEntryForElementA = { dmnElementRef: "a", widths: [1, 1, 
1] };
+    const originalWidthEntryForElementB = { dmnElementRef: "b", widths: [2, 2, 
2] };
+
+    const newWidthEntry = { dmnElementRef: "c", widths: [3, 3] };
+
+    const definitions = createDefinitionsWithComponentWidths([
+      originalWidthEntryForElementA,
+      originalWidthEntryForElementB,
+    ]);
+
+    const widthsById: Map<string, number[]> = new Map([
+      [originalWidthEntryForElementA.dmnElementRef, 
originalWidthEntryForElementA.widths],
+      [originalWidthEntryForElementB.dmnElementRef, 
originalWidthEntryForElementB.widths],
+      [newWidthEntry.dmnElementRef, newWidthEntry.widths],
+    ]);
+
+    updateExpressionWidths({ definitions, drdIndex, widthsById });
+
+    expect(
+      definitionContainsWidthExtension({
+        widthEntry: originalWidthEntryForElementA,
+        definitions: definitions,
+      })
+    ).toBeTruthy();
+
+    expect(
+      definitionContainsWidthExtension({
+        widthEntry: originalWidthEntryForElementB,
+        definitions: definitions,
+      })
+    ).toBeTruthy();
+
+    expect(
+      definitionContainsWidthExtension({
+        widthEntry: newWidthEntry,
+        definitions: definitions,
+      })
+    ).toBeTruthy();
+  });
+});
+
+function definitionContainsWidthExtension(args: {
+  widthEntry: { dmnElementRef: string; widths: number[] };
+  definitions: Normalized<DMN15__tDefinitions>;
+}) {
+  const componentsWidthExtension =
+    
args.definitions?.["dmndi:DMNDI"]?.["dmndi:DMNDiagram"]?.[0]["di:extension"]?.["kie:ComponentsWidthsExtension"];
+
+  const element = {
+    "@_dmnElementRef": args.widthEntry.dmnElementRef,
+    "kie:width": args.widthEntry.widths.map((w) => {
+      return { __$$text: w };
+    }),
+  };
+
+  return componentsWidthExtension?.["kie:ComponentWidths"]?.find(
+    (e) =>
+      e["@_dmnElementRef"] === element["@_dmnElementRef"] &&
+      e["kie:width"]?.length === element["kie:width"].length &&
+      e["kie:width"]?.every((val, index) => val.__$$text === 
element["kie:width"]?.[index].__$$text)
+  );
+}
+
+function createDefinitionsWithComponentWidths(widthDefinition: { 
dmnElementRef: string; widths: number[] }[]) {
+  // Do not inline this variable for type safety. See 
https://github.com/microsoft/TypeScript/issues/241
+  const definitions: Normalized<DMN15__tDefinitions> = {
+    "@_namespace": "https://kie.org/dmn/_982CA10C-B1B9-495C-9CFC-98FAA801BB50";,
+    "@_id": generateUuid(),
+    "@_name": "my definitions",
+    "dmndi:DMNDI": {
+      "dmndi:DMNDiagram": [
+        {
+          "@_id": generateUuid(),
+          "di:extension": createComponentWidthExtension(widthDefinition),
+        },
+      ],
+    },
+  };
+  return definitions;
+}
+
+function createComponentWidthExtension(widthDefinition: { dmnElementRef: 
string; widths: number[] }[]) {
+  // Do not inline this variable for type safety. See 
https://github.com/microsoft/TypeScript/issues/241
+  const componentsWidthsExtension: KIE__tComponentsWidthsExtension = {
+    ComponentWidths: [
+      ...widthDefinition.map((w) => {
+        return {
+          "@_dmnElementRef": w.dmnElementRef,
+          width: w.widths.map((w) => {
+            return { __$$text: w };
+          }),
+        };
+      }),
+    ],
+  };
+  return componentsWidthsExtension;
+}
diff --git a/packages/dmn-editor/tsconfig.tests.json 
b/packages/dmn-editor/tsconfig.tests.json
new file mode 100644
index 00000000000..fc8520e7376
--- /dev/null
+++ b/packages/dmn-editor/tsconfig.tests.json
@@ -0,0 +1,3 @@
+{
+  "extends": "./tsconfig.json"
+}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 2e6dcff6232..7a7854836e8 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -3373,6 +3373,9 @@ importers:
       '@kie-tools/eslint':
         specifier: workspace:*
         version: link:../eslint
+      '@kie-tools/jest-base':
+        specifier: workspace:*
+        version: link:../jest-base
       '@kie-tools/playwright-base':
         specifier: workspace:*
         version: link:../playwright-base
@@ -3415,6 +3418,12 @@ importers:
       '@types/d3-selection':
         specifier: ^3.0.6
         version: 3.0.10
+      '@types/jest':
+        specifier: ^29.5.12
+        version: 29.5.12
+      '@types/jest-when':
+        specifier: ^3.5.5
+        version: 3.5.5
       '@types/lodash':
         specifier: ^4.14.168
         version: 4.14.169
@@ -3445,6 +3454,15 @@ importers:
       file-loader:
         specifier: ^6.2.0
         version: 
6.2.0([email protected](@swc/[email protected])([email protected])([email protected]))
+      jest:
+        specifier: ^29.7.0
+        version: 
29.7.0(@types/[email protected])([email protected])([email protected](@swc/[email protected])(@types/[email protected])([email protected]))
+      jest-junit:
+        specifier: ^16.0.0
+        version: 16.0.0
+      jest-when:
+        specifier: ^3.6.0
+        version: 
3.6.0([email protected](@types/[email protected])([email protected])([email protected](@swc/[email protected])(@types/[email protected])([email protected])))
       lodash:
         specifier: ^4.17.21
         version: 4.17.21
@@ -3460,6 +3478,9 @@ importers:
       storybook:
         specifier: ^7.3.2
         version: 7.6.13([email protected])
+      ts-jest:
+        specifier: ^29.1.5
+        version: 
29.1.5(@babel/[email protected])(@jest/[email protected])(@jest/[email protected])([email protected](@babel/[email protected]))([email protected])([email protected](@types/[email protected])([email protected])([email protected](@swc/[email protected])(@types/[email protected])([email protected])))([email protected])
       typescript:
         specifier: ^5.5.3
         version: 5.5.3
@@ -37906,6 +37927,43 @@ snapshots:
       - ts-node
     optional: true
 
+  
'@jest/[email protected]([email protected])([email protected](@swc/[email protected])(@types/[email protected])([email protected]))':
+    dependencies:
+      '@jest/console': 29.7.0
+      '@jest/reporters': 29.7.0([email protected])
+      '@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/[email protected])([email protected](@swc/[email protected])(@types/[email protected])([email protected]))
+      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
+    optionalDependencies:
+      node-notifier: 8.0.2
+    transitivePeerDependencies:
+      - babel-plugin-macros
+      - supports-color
+      - ts-node
+
   
'@jest/[email protected]([email protected])([email protected](@swc/[email protected])(@types/[email protected])([email protected]))':
     dependencies:
       '@jest/console': 29.7.0
@@ -46271,6 +46329,21 @@ snapshots:
       safe-buffer: 5.2.1
       sha.js: 2.4.11
 
+  
[email protected](@types/[email protected])([email protected](@swc/[email protected])(@types/[email protected])([email protected])):
+    dependencies:
+      '@jest/types': 29.6.3
+      chalk: 4.1.2
+      exit: 0.1.2
+      graceful-fs: 4.2.11
+      jest-config: 
29.7.0(@types/[email protected])([email protected](@swc/[email protected])(@types/[email protected])([email protected]))
+      jest-util: 29.7.0
+      prompts: 2.4.2
+    transitivePeerDependencies:
+      - '@types/node'
+      - babel-plugin-macros
+      - supports-color
+      - ts-node
+
   
[email protected](@types/[email protected])([email protected](@types/[email protected])([email protected])):
     dependencies:
       '@jest/types': 29.6.3
@@ -50267,6 +50340,27 @@ snapshots:
       - babel-plugin-macros
       - supports-color
 
+  
[email protected](@types/[email protected])([email protected])([email protected](@swc/[email protected])(@types/[email protected])([email protected])):
+    dependencies:
+      '@jest/core': 
29.7.0([email protected])([email protected](@swc/[email protected])(@types/[email protected])([email protected]))
+      '@jest/test-result': 29.7.0
+      '@jest/types': 29.6.3
+      chalk: 4.1.2
+      create-jest: 
29.7.0(@types/[email protected])([email protected](@swc/[email protected])(@types/[email protected])([email protected]))
+      exit: 0.1.2
+      import-local: 3.0.2
+      jest-config: 
29.7.0(@types/[email protected])([email protected](@swc/[email protected])(@types/[email protected])([email protected]))
+      jest-util: 29.7.0
+      jest-validate: 29.7.0
+      yargs: 17.7.2
+    optionalDependencies:
+      node-notifier: 8.0.2
+    transitivePeerDependencies:
+      - '@types/node'
+      - babel-plugin-macros
+      - supports-color
+      - ts-node
+
   
[email protected](@types/[email protected])([email protected])([email protected](@types/[email protected])([email protected])):
     dependencies:
       '@jest/core': 
29.7.0([email protected])([email protected](@types/[email protected])([email protected]))
@@ -50421,6 +50515,37 @@ snapshots:
       - supports-color
     optional: true
 
+  
[email protected](@types/[email protected])([email protected](@swc/[email protected])(@types/[email protected])([email protected])):
+    dependencies:
+      '@babel/core': 7.23.9
+      '@jest/test-sequencer': 29.7.0
+      '@jest/types': 29.6.3
+      babel-jest: 29.7.0(@babel/[email protected])
+      chalk: 4.1.2
+      ci-info: 3.3.2
+      deepmerge: 4.2.2
+      glob: 7.2.3
+      graceful-fs: 4.2.11
+      jest-circus: 29.7.0
+      jest-environment-node: 29.7.0
+      jest-get-type: 29.6.3
+      jest-regex-util: 29.6.3
+      jest-resolve: 29.7.0
+      jest-runner: 29.7.0
+      jest-util: 29.7.0
+      jest-validate: 29.7.0
+      micromatch: 4.0.5
+      parse-json: 5.2.0
+      pretty-format: 29.7.0
+      slash: 3.0.0
+      strip-json-comments: 3.1.1
+    optionalDependencies:
+      '@types/node': 20.14.2
+      ts-node: 10.9.2(@swc/[email protected])(@types/[email protected])([email protected])
+    transitivePeerDependencies:
+      - babel-plugin-macros
+      - supports-color
+
   
[email protected](@types/[email protected])([email protected](@swc/[email protected])(@types/[email protected])([email protected])):
     dependencies:
       '@babel/core': 7.23.9
@@ -50941,6 +51066,10 @@ snapshots:
 
   [email protected]: {}
 
+  
[email protected]([email protected](@types/[email protected])([email protected])([email protected](@swc/[email protected])(@types/[email protected])([email protected]))):
+    dependencies:
+      jest: 
29.7.0(@types/[email protected])([email protected])([email protected](@swc/[email protected])(@types/[email protected])([email protected]))
+
   
[email protected]([email protected](@types/[email protected])([email protected])([email protected](@types/[email protected])([email protected]))):
     dependencies:
       jest: 
29.7.0(@types/[email protected])([email protected])([email protected](@types/[email protected])([email protected]))
@@ -50981,6 +51110,20 @@ snapshots:
       merge-stream: 2.0.0
       supports-color: 8.1.1
 
+  
[email protected](@types/[email protected])([email protected])([email protected](@swc/[email protected])(@types/[email protected])([email protected])):
+    dependencies:
+      '@jest/core': 
29.7.0([email protected])([email protected](@swc/[email protected])(@types/[email protected])([email protected]))
+      '@jest/types': 29.6.3
+      import-local: 3.0.2
+      jest-cli: 
29.7.0(@types/[email protected])([email protected])([email protected](@swc/[email protected])(@types/[email protected])([email protected]))
+    optionalDependencies:
+      node-notifier: 8.0.2
+    transitivePeerDependencies:
+      - '@types/node'
+      - babel-plugin-macros
+      - supports-color
+      - ts-node
+
   
[email protected](@types/[email protected])([email protected])([email protected](@types/[email protected])([email protected])):
     dependencies:
       '@jest/core': 
29.7.0([email protected])([email protected](@types/[email protected])([email protected]))
@@ -56629,6 +56772,25 @@ snapshots:
       '@jest/types': 29.6.3
       babel-jest: 29.7.0(@babel/[email protected])
 
+  
[email protected](@babel/[email protected])(@jest/[email protected])(@jest/[email protected])([email protected](@babel/[email protected]))([email protected])([email protected](@types/[email protected])([email protected])([email protected](@swc/[email protected])(@types/[email protected])([email protected])))([email protected]):
+    dependencies:
+      bs-logger: 0.2.6
+      fast-json-stable-stringify: 2.1.0
+      jest: 
29.7.0(@types/[email protected])([email protected])([email protected](@swc/[email protected])(@types/[email protected])([email protected]))
+      jest-util: 29.7.0
+      json5: 2.2.3
+      lodash.memoize: 4.1.2
+      make-error: 1.3.6
+      semver: 7.5.4
+      typescript: 5.5.3
+      yargs-parser: 21.1.1
+    optionalDependencies:
+      '@babel/core': 7.23.0
+      '@jest/transform': 29.7.0
+      '@jest/types': 29.6.3
+      babel-jest: 29.7.0(@babel/[email protected])
+      esbuild: 0.18.20
+
   
[email protected](@babel/[email protected])(@jest/[email protected])(@jest/[email protected])([email protected](@babel/[email protected]))([email protected](@types/[email protected])([email protected])([email protected](@swc/[email protected])(@types/[email protected])([email protected])))([email protected]):
     dependencies:
       bs-logger: 0.2.6
@@ -56812,6 +56974,27 @@ snapshots:
 
   [email protected]: {}
 
+  [email protected](@swc/[email protected])(@types/[email protected])([email protected]):
+    dependencies:
+      '@cspotcode/source-map-support': 0.8.1
+      '@tsconfig/node10': 1.0.9
+      '@tsconfig/node12': 1.0.11
+      '@tsconfig/node14': 1.0.3
+      '@tsconfig/node16': 1.0.3
+      '@types/node': 20.14.2
+      acorn: 8.10.0
+      acorn-walk: 8.2.0
+      arg: 4.1.0
+      create-require: 1.1.1
+      diff: 4.0.1
+      make-error: 1.3.6
+      typescript: 5.5.3
+      v8-compile-cache-lib: 3.0.1
+      yn: 3.1.1
+    optionalDependencies:
+      '@swc/core': 1.3.92
+    optional: true
+
   [email protected](@swc/[email protected])(@types/[email protected])([email protected]):
     dependencies:
       '@cspotcode/source-map-support': 0.8.1


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to