diff --git a/libs/coin-modules/coin-stellar/package.json b/libs/coin-modules/coin-stellar/package.json index 74a36ea0569d..e6f6fbc09d36 100644 --- a/libs/coin-modules/coin-stellar/package.json +++ b/libs/coin-modules/coin-stellar/package.json @@ -134,7 +134,7 @@ "@faker-js/faker": "^8.4.1", "@types/invariant": "^2.2.2", "@types/jest": "^29.5.10", - "@types/node": "^16.11.7", + "@types/node": "^20.8.10", "jest": "^29.7.0", "ts-jest": "^29.1.1" } diff --git a/libs/coin-modules/coin-stellar/src/api/index.integ.test.ts b/libs/coin-modules/coin-stellar/src/api/index.integ.test.ts index 9d851826145b..865efffba888 100644 --- a/libs/coin-modules/coin-stellar/src/api/index.integ.test.ts +++ b/libs/coin-modules/coin-stellar/src/api/index.integ.test.ts @@ -75,8 +75,8 @@ describe("Stellar Api", () => { }); // Then - expect(result.slice(0, 68)).toEqual( - "AAAAAgAAAAD9Ai6ZfJT42rd0Nl8YJeODFgju688SXPzMZvSA369YPwAAAGQAAHloAAAI", + expect(result.slice(0, 67)).toEqual( + "AAAAAgAAAAD9Ai6ZfJT42rd0Nl8YJeODFgju688SXPzMZvSA369YPwAAAGQAAHloAAA", ); expect(result.slice(70)).toEqual( "AAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAD9Ai6ZfJT42rd0Nl8YJeODFgju688SXPzMZvSA369YPwAAAAAAAAAAAA9CQAAAAAAAAAAA", diff --git a/libs/coin-modules/coin-stellar/src/broadcast.test.ts b/libs/coin-modules/coin-stellar/src/bridge/broadcast.test.ts similarity index 91% rename from libs/coin-modules/coin-stellar/src/broadcast.test.ts rename to libs/coin-modules/coin-stellar/src/bridge/broadcast.test.ts index c50fc435ebed..c5958e7d08ef 100644 --- a/libs/coin-modules/coin-stellar/src/broadcast.test.ts +++ b/libs/coin-modules/coin-stellar/src/bridge/broadcast.test.ts @@ -1,8 +1,8 @@ import { broadcast } from "./broadcast"; -import { createFixtureAccount, createFixtureOperation } from "./types/bridge.fixture"; +import { createFixtureAccount, createFixtureOperation } from "../types/bridge.fixture"; const mockBroadcast = jest.fn(); -jest.mock("./network", () => ({ +jest.mock("../network", () => ({ broadcastTransaction: (sig: unknown) => mockBroadcast(sig), })); diff --git a/libs/coin-modules/coin-stellar/src/bridge/buildTransaction.integ.test.ts b/libs/coin-modules/coin-stellar/src/bridge/buildTransaction.integ.test.ts index df05d6e346ad..ab0205d7297f 100644 --- a/libs/coin-modules/coin-stellar/src/bridge/buildTransaction.integ.test.ts +++ b/libs/coin-modules/coin-stellar/src/bridge/buildTransaction.integ.test.ts @@ -1,11 +1,11 @@ import BigNumber from "bignumber.js"; import { buildTransaction } from "./buildTransaction"; import { createFixtureAccount, createFixtureTransaction } from "../types/bridge.fixture"; -import { NetworkInfo } from "../types"; import coinConfig, { type StellarCoinConfig } from "../config"; +import { NetworkInfo } from "../types"; describe("buildTransaction", () => { - const sender = "GCTS5ANSL6YCXR2M4XXM5BPN34UUT3M2VUJWVYOX5EMSHZC3T7O5Z6NZ"; + const sender = "GAT4LBXYJGJJJRSNK74NPFLO55CDDXSYVMQODSEAAH3M6EY4S7LPH5GV"; beforeAll(() => { coinConfig.setCoinConfig( @@ -19,22 +19,24 @@ describe("buildTransaction", () => { ); }); - it("throws an error when no fees are setted in the transaction", async () => { + it("throws an error if transaction has no NetworkInfo", async () => { // Given - const account = createFixtureAccount(); - const transaction = createFixtureTransaction(); + const account = createFixtureAccount({ freshAddress: sender }); + const transaction = createFixtureTransaction({ fees: BigNumber(1) }); // When - await expect(buildTransaction(account, transaction)).rejects.toThrow("FeeNotLoaded"); + await expect(buildTransaction(account, transaction)).rejects.toThrow("stellar family"); }); - it("throws an error if transaction has no NetworkInfo", async () => { + it("throws an error when no fees are setted in the transaction", async () => { // Given - const account = createFixtureAccount({ freshAddress: sender }); - const transaction = createFixtureTransaction({ fees: BigNumber(1) }); + const account = createFixtureAccount(); + const transaction = createFixtureTransaction({ + networkInfo: { family: "stellar" } as NetworkInfo, + }); // When - await expect(buildTransaction(account, transaction)).rejects.toThrow("stellar family"); + await expect(buildTransaction(account, transaction)).rejects.toThrow("FeeNotLoaded"); }); it.skip("crash if transaction amount is 0", async () => { @@ -89,8 +91,8 @@ describe("buildTransaction", () => { expect((operation as any).amount).toEqual("0.0000010"); expect((operation as any).asset.code).toEqual("XLM"); expect((operation as any).asset.issuer).toBeUndefined(); - expect(builtTransaction.toXDR().slice(0, 68)).toEqual( - "AAAAAgAAAACnLoGyX7Arx0zl7s6F7d8pSe2arRNq4dfpGSPkW5/d3AAAAAECbx/3AAHJ", + expect(builtTransaction.toXDR().slice(0, 67)).toEqual( + "AAAAAgAAAAAnxYb4SZKUxk1X+NeVbu9EMd5YqyDhyIAB9s8THJfW8wAAAAEBn2AnAAA", ); expect(builtTransaction.toXDR().slice(70)).toEqual( "AAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAADw9kGYtpM1vsCgDoHjZOVO/sjTKLsmA51f8vdM9oaecgAAAAAAAAAAAAAACgAAAAAAAAAA", @@ -124,8 +126,8 @@ describe("buildTransaction", () => { expect((operation as any).amount).toEqual("50.0239411"); expect((operation as any).asset.code).toEqual("XLM"); expect((operation as any).asset.issuer).toBeUndefined(); - expect(builtTransaction.toXDR().slice(0, 68)).toEqual( - "AAAAAgAAAACnLoGyX7Arx0zl7s6F7d8pSe2arRNq4dfpGSPkW5/d3AAAAAECbx/3AAHJ", + expect(builtTransaction.toXDR().slice(0, 67)).toEqual( + "AAAAAgAAAAAnxYb4SZKUxk1X+NeVbu9EMd5YqyDhyIAB9s8THJfW8wAAAAEBn2AnAAA", ); expect(builtTransaction.toXDR().slice(70)).toEqual( "AAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAADw9kGYtpM1vsCgDoHjZOVO/sjTKLsmA51f8vdM9oaecgAAAAAAAAAAHdEMMwAAAAAAAAAA", @@ -157,8 +159,8 @@ describe("buildTransaction", () => { expect((operation as any).asset.issuer).toEqual( "GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVN", ); - expect(builtTransaction.toXDR().slice(0, 68)).toEqual( - "AAAAAgAAAACnLoGyX7Arx0zl7s6F7d8pSe2arRNq4dfpGSPkW5/d3AAAAAECbx/3AAHJ", + expect(builtTransaction.toXDR().slice(0, 67)).toEqual( + "AAAAAgAAAAAnxYb4SZKUxk1X+NeVbu9EMd5YqyDhyIAB9s8THJfW8wAAAAEBn2AnAAA", ); }); @@ -186,8 +188,8 @@ describe("buildTransaction", () => { expect(operation.type).toEqual("payment"); expect((operation as any).asset.code).toEqual("XLM"); expect((operation as any).asset.issuer).toBeUndefined(); - expect(builtTransaction.toXDR().slice(0, 68)).toEqual( - "AAAAAgAAAACnLoGyX7Arx0zl7s6F7d8pSe2arRNq4dfpGSPkW5/d3AAAAAECbx/3AAHJ", + expect(builtTransaction.toXDR().slice(0, 67)).toEqual( + "AAAAAgAAAAAnxYb4SZKUxk1X+NeVbu9EMd5YqyDhyIAB9s8THJfW8wAAAAEBn2AnAAA", ); expect(builtTransaction.toXDR().slice(70)).toEqual( "AAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAVIZWxsbwAAAAAAAAEAAAAAAAAAAQAAAADw9kGYtpM1vsCgDoHjZOVO/sjTKLsmA51f8vdM9oaecgAAAAAAAAAAAAAACgAAAAAAAAAA", diff --git a/libs/coin-modules/coin-stellar/src/signOperation.test.ts b/libs/coin-modules/coin-stellar/src/bridge/signOperation.test.ts similarity index 91% rename from libs/coin-modules/coin-stellar/src/signOperation.test.ts rename to libs/coin-modules/coin-stellar/src/bridge/signOperation.test.ts index 659b06eda549..f0058a138cf4 100644 --- a/libs/coin-modules/coin-stellar/src/signOperation.test.ts +++ b/libs/coin-modules/coin-stellar/src/bridge/signOperation.test.ts @@ -1,13 +1,13 @@ -import BigNumber from "bignumber.js"; import { SignOperationEvent } from "@ledgerhq/types-live"; -import { buildSignOperation } from "./signOperation"; -import { setCoinConfig, type StellarCoinConfig } from "./config"; -import { StellarSigner } from "./types/signer"; -import { createFixtureAccount, createFixtureTransaction } from "./types/bridge.fixture"; -import { NetworkInfo } from "./types"; import { Keypair } from "@stellar/stellar-sdk"; -import buildTransaction from "./buildTransaction"; +import BigNumber from "bignumber.js"; import { subtle } from "crypto"; +import coinConfig, { type StellarCoinConfig } from "../config"; +import { NetworkInfo } from "../types"; +import { createFixtureAccount, createFixtureTransaction } from "../types/bridge.fixture"; +import { StellarSigner } from "../types/signer"; +import buildTransaction from "./buildTransaction"; +import { buildSignOperation } from "./signOperation"; const stellarKp = Keypair.random(); const mockLoadAccount = jest.fn().mockResolvedValue( @@ -28,8 +28,8 @@ const mockLoadAccount = jest.fn().mockResolvedValue( incrementSequenceNumber: () => "1", }, ); -jest.mock("./network", () => ({ - ...jest.requireActual("./network"), +jest.mock("../network", () => ({ + ...jest.requireActual("../network"), loadAccount: () => mockLoadAccount(), fetchSequence: jest.fn(), })); @@ -46,9 +46,12 @@ describe.skip("signOperation", () => { const deviceId = "dummyDeviceId"; beforeAll(() => { - setCoinConfig( + coinConfig.setCoinConfig( (): StellarCoinConfig => ({ status: { type: "active" }, + explorer: { + url: "https://localhost", + }, }), ); }); diff --git a/libs/coin-modules/coin-stellar/src/synchronization.integ.test.ts b/libs/coin-modules/coin-stellar/src/bridge/synchronization.integ.test.ts similarity index 87% rename from libs/coin-modules/coin-stellar/src/synchronization.integ.test.ts rename to libs/coin-modules/coin-stellar/src/bridge/synchronization.integ.test.ts index 6af36b0f5fba..6658fdf4114f 100644 --- a/libs/coin-modules/coin-stellar/src/synchronization.integ.test.ts +++ b/libs/coin-modules/coin-stellar/src/bridge/synchronization.integ.test.ts @@ -1,9 +1,9 @@ import { firstValueFrom, reduce } from "rxjs"; import { Account, AccountBridge, SyncConfig, TransactionCommon } from "@ledgerhq/types-live"; -import type { StellarCoinConfig } from "./config"; -import { Transaction, StellarAccount } from "./types"; -import { createBridges } from "./bridge/index"; -import { createFixtureAccount } from "./types/bridge.fixture"; +import type { StellarCoinConfig } from "../config"; +import { Transaction, StellarAccount } from "../types"; +import { createBridges } from "../bridge/index"; +import { createFixtureAccount } from "../types/bridge.fixture"; const defaultSyncConfig = { paginationConfig: {}, diff --git a/libs/coin-modules/coin-stellar/src/buildTransaction.integ.test.ts b/libs/coin-modules/coin-stellar/src/buildTransaction.integ.test.ts deleted file mode 100644 index d3e6d247fc3f..000000000000 --- a/libs/coin-modules/coin-stellar/src/buildTransaction.integ.test.ts +++ /dev/null @@ -1,196 +0,0 @@ -import BigNumber from "bignumber.js"; -import { buildTransaction } from "./buildTransaction"; -import { createFixtureAccount, createFixtureTransaction } from "./types/bridge.fixture"; -import { setCoinConfig, type StellarCoinConfig } from "./config"; -import { NetworkInfo } from "./types"; - -describe("buildTransaction", () => { - const sender = "GAT4LBXYJGJJJRSNK74NPFLO55CDDXSYVMQODSEAAH3M6EY4S7LPH5GV"; - - beforeAll(() => { - setCoinConfig( - (): StellarCoinConfig => ({ - status: { type: "active" }, - explorer: { - url: "https://stellar.coin.ledger.com", //"https://horizon-testnet.stellar.org/", - fetchLimit: 100, - }, - }), - ); - }); - - it("throws an error when no fees are setted in the transaction", async () => { - // Given - const account = createFixtureAccount(); - const transaction = createFixtureTransaction(); - - // When - await expect(buildTransaction(account, transaction)).rejects.toThrow("FeeNotLoaded"); - }); - - it("throws an error if transaction has no NetworkInfo", async () => { - // Given - const account = createFixtureAccount({ freshAddress: sender }); - const transaction = createFixtureTransaction({ fees: BigNumber(1) }); - - // When - await expect(buildTransaction(account, transaction)).rejects.toThrow("stellar family"); - }); - - it.skip("crash if transaction amount is 0", async () => { - // Given - const account = createFixtureAccount({ freshAddress: sender }); - const transaction = createFixtureTransaction({ - amount: BigNumber(0), - fees: BigNumber(1), - networkInfo: { family: "stellar" } as NetworkInfo, - }); - - // When - const builtTransaction = await buildTransaction(account, transaction); - - // Then - expect(builtTransaction).toBeUndefined(); - }); - - it("throws an error when recipient is an invalid address", async () => { - // Given - const account = createFixtureAccount({ freshAddress: sender }); - const transaction = createFixtureTransaction({ - amount: BigNumber(10), - fees: BigNumber(1), - networkInfo: { family: "stellar" } as NetworkInfo, - recipient: "NEW", - }); - - // When - await expect(buildTransaction(account, transaction)).rejects.toThrow("destination is invalid"); - }); - - it("returns a built transaction in Stellar format", async () => { - // Given - const account = createFixtureAccount({ freshAddress: sender }); - const transaction = createFixtureTransaction({ - amount: BigNumber(10), - fees: BigNumber(1), - networkInfo: { family: "stellar" } as NetworkInfo, - }); - - // When - const builtTransaction = await buildTransaction(account, transaction); - - // Then - expect(builtTransaction.fee).toEqual("1"); - expect(builtTransaction.source).toEqual(sender); - expect(builtTransaction.operations).toHaveLength(1); - const operation = builtTransaction.operations[0]; - expect(operation.type).toEqual("payment"); - expect((operation as any).destination).toEqual(transaction.recipient); - expect((operation as any).amount).toEqual("0.0000010"); - expect((operation as any).asset.code).toEqual("XLM"); - expect((operation as any).asset.issuer).toBeUndefined(); - expect(builtTransaction.toXDR().slice(0, 67)).toEqual( - "AAAAAgAAAAAnxYb4SZKUxk1X+NeVbu9EMd5YqyDhyIAB9s8THJfW8wAAAAEBn2AnAAA", - ); - expect(builtTransaction.toXDR().slice(70)).toEqual( - "AAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAADw9kGYtpM1vsCgDoHjZOVO/sjTKLsmA51f8vdM9oaecgAAAAAAAAAAAAAACgAAAAAAAAAA", - ); - }); - - it("returns a built transaction in Stellar format when useAllAmount", async () => { - // Given - const account = createFixtureAccount({ - freshAddress: sender, - balance: BigNumber(600239412), - spendableBalance: BigNumber(500239412), - }); - const transaction = createFixtureTransaction({ - amount: BigNumber(10), - fees: BigNumber(1), - networkInfo: { family: "stellar" } as NetworkInfo, - useAllAmount: true, - }); - - // When - const builtTransaction = await buildTransaction(account, transaction); - - // Then - expect(builtTransaction.fee).toEqual("1"); - expect(builtTransaction.source).toEqual(sender); - expect(builtTransaction.operations).toHaveLength(1); - const operation = builtTransaction.operations[0]; - expect(operation.type).toEqual("payment"); - expect((operation as any).destination).toEqual(transaction.recipient); - expect((operation as any).amount).toEqual("50.0239411"); - expect((operation as any).asset.code).toEqual("XLM"); - expect((operation as any).asset.issuer).toBeUndefined(); - expect(builtTransaction.toXDR().slice(0, 67)).toEqual( - "AAAAAgAAAAAnxYb4SZKUxk1X+NeVbu9EMd5YqyDhyIAB9s8THJfW8wAAAAEBn2AnAAA", - ); - expect(builtTransaction.toXDR().slice(70)).toEqual( - "AAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAADw9kGYtpM1vsCgDoHjZOVO/sjTKLsmA51f8vdM9oaecgAAAAAAAAAAHdEMMwAAAAAAAAAA", - ); - }); - - it("returns a built transaction in Stellar format when asset used is USDC", async () => { - // Given - const account = createFixtureAccount({ freshAddress: sender }); - const transaction = createFixtureTransaction({ - amount: BigNumber(10), - fees: BigNumber(1), - networkInfo: { family: "stellar" } as NetworkInfo, - recipient: "GDRQAROTM7WYEHZ42SXUVUOHO36MLQKLFIZ5Y2JBWVQRPCJ3SQBBA3LH", - assetCode: "USDC", - assetIssuer: "GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVN", - }); - - // When - const builtTransaction = await buildTransaction(account, transaction); - - // Then - expect(builtTransaction.fee).toEqual("1"); - expect(builtTransaction.source).toEqual(sender); - expect(builtTransaction.operations).toHaveLength(1); - const operation = builtTransaction.operations[0]; - expect(operation.type).toEqual("payment"); - expect((operation as any).asset.code).toEqual("USDC"); - expect((operation as any).asset.issuer).toEqual( - "GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVN", - ); - expect(builtTransaction.toXDR().slice(0, 67)).toEqual( - "AAAAAgAAAAAnxYb4SZKUxk1X+NeVbu9EMd5YqyDhyIAB9s8THJfW8wAAAAEBn2AnAAA", - ); - }); - - it("returns a built transaction in Stellar format", async () => { - // Given - const account = createFixtureAccount({ freshAddress: sender }); - const transaction = createFixtureTransaction({ - amount: BigNumber(10), - fees: BigNumber(1), - networkInfo: { family: "stellar" } as NetworkInfo, - memoType: "MEMO_TEXT", - memoValue: "Hello", - }); - - // When - const builtTransaction = await buildTransaction(account, transaction); - - // Then - expect(builtTransaction.fee).toEqual("1"); - expect(builtTransaction.source).toEqual(sender); - expect(builtTransaction.operations).toHaveLength(1); - expect(builtTransaction.memo.type).toEqual("text"); - expect(builtTransaction.memo.value).toEqual("Hello"); - const operation = builtTransaction.operations[0]; - expect(operation.type).toEqual("payment"); - expect((operation as any).asset.code).toEqual("XLM"); - expect((operation as any).asset.issuer).toBeUndefined(); - expect(builtTransaction.toXDR().slice(0, 67)).toEqual( - "AAAAAgAAAAAnxYb4SZKUxk1X+NeVbu9EMd5YqyDhyIAB9s8THJfW8wAAAAEBn2AnAAA", - ); - expect(builtTransaction.toXDR().slice(70)).toEqual( - "AAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAVIZWxsbwAAAAAAAAEAAAAAAAAAAQAAAADw9kGYtpM1vsCgDoHjZOVO/sjTKLsmA51f8vdM9oaecgAAAAAAAAAAAAAACgAAAAAAAAAA", - ); - }); -}); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ea0c024d306f..db5ba0a2e4ce 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2529,14 +2529,14 @@ importers: specifier: ^29.5.10 version: 29.5.12 '@types/node': - specifier: ^16.11.7 - version: 16.18.101 + specifier: ^20.8.10 + version: 20.12.12 jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@16.18.101) + version: 29.7.0(@types/node@20.12.12) ts-jest: specifier: ^29.1.1 - version: 29.1.5(jest@29.7.0(@types/node@16.18.101))(typescript@5.4.3) + version: 29.1.5(jest@29.7.0(@types/node@20.12.12))(typescript@5.4.3) libs/coin-modules/coin-tezos: dependencies: @@ -14256,9 +14256,6 @@ packages: '@types/node@13.13.52': resolution: {integrity: sha512-s3nugnZumCC//n4moGGe6tkNMyYEdaDBitVjwPxXmR5lnMG5dHePinH2EdxkG3Rh1ghFHHixAG4NJhpJW1rthQ==} - '@types/node@16.18.101': - resolution: {integrity: sha512-AAsx9Rgz2IzG8KJ6tXd6ndNkVcu+GYB6U/SnFAaokSPNx2N7dcIIfnighYUNumvj6YS2q39Dejz5tT0NCV7CWA==} - '@types/node@18.15.13': resolution: {integrity: sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q==} @@ -42356,8 +42353,6 @@ snapshots: '@types/node@13.13.52': {} - '@types/node@16.18.101': {} - '@types/node@18.15.13': {} '@types/node@18.19.26': @@ -46121,22 +46116,6 @@ snapshots: - supports-color - ts-node - create-jest@29.7.0(@types/node@16.18.101): - 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/node@16.18.101) - jest-util: 29.7.0 - prompts: 2.4.2 - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - metro - - supports-color - - ts-node - create-jest@29.7.0(@types/node@18.19.26)(ts-node@10.9.2(@types/node@18.19.26)(source-map-support@0.5.21)(typescript@4.9.5)): dependencies: '@jest/types': 29.6.3 @@ -51689,26 +51668,6 @@ snapshots: - supports-color - ts-node - jest-cli@29.7.0(@types/node@16.18.101): - dependencies: - '@jest/core': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/types': 29.6.3 - chalk: 4.1.2 - create-jest: 29.7.0(@types/node@16.18.101) - exit: 0.1.2 - import-local: 3.1.0 - jest-config: 29.7.0(@types/node@16.18.101) - jest-util: 29.7.0 - jest-validate: 29.7.0 - yargs: 17.7.2 - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - metro - - supports-color - - ts-node - jest-cli@29.7.0(@types/node@18.19.26)(ts-node@10.9.2(@types/node@18.19.26)(source-map-support@0.5.21)(typescript@4.9.5)): dependencies: '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@18.19.26)(source-map-support@0.5.21)(typescript@4.9.5)) @@ -51991,37 +51950,6 @@ snapshots: - metro - supports-color - jest-config@29.7.0(@types/node@16.18.101): - dependencies: - '@babel/core': 7.24.3 - '@jest/test-sequencer': 29.7.0 - '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.24.3) - chalk: 4.1.2 - ci-info: 3.9.0 - deepmerge: 4.3.1 - 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': 16.18.101 - transitivePeerDependencies: - - babel-plugin-macros - - metro - - supports-color - jest-config@29.7.0(@types/node@18.19.26)(ts-node@10.9.2(@types/node@18.19.26)(source-map-support@0.5.21)(typescript@4.9.5)): dependencies: '@babel/core': 7.24.3 @@ -53274,19 +53202,6 @@ snapshots: - supports-color - ts-node - jest@29.7.0(@types/node@16.18.101): - dependencies: - '@jest/core': 29.7.0 - '@jest/types': 29.6.3 - import-local: 3.1.0 - jest-cli: 29.7.0(@types/node@16.18.101) - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - metro - - supports-color - - ts-node - jest@29.7.0(@types/node@18.19.26)(ts-node@10.9.2(@types/node@18.19.26)(source-map-support@0.5.21)(typescript@4.9.5)): dependencies: '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@18.19.26)(source-map-support@0.5.21)(typescript@4.9.5)) @@ -62095,11 +62010,11 @@ snapshots: typescript: 5.4.3 yargs-parser: 21.1.1 - ts-jest@29.1.5(jest@29.7.0(@types/node@16.18.101))(typescript@5.4.3): + ts-jest@29.1.5(jest@29.7.0(@types/node@20.12.12))(typescript@5.4.3): dependencies: bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 - jest: 29.7.0(@types/node@16.18.101) + jest: 29.7.0(@types/node@20.12.12) jest-util: 29.7.0 json5: 2.2.3 lodash.memoize: 4.1.2