diff --git a/__tests__/payment-destination/lnurl.spec.ts b/__tests__/payment-destination/lnurl.spec.ts index 38f40515cf..2e319f072e 100644 --- a/__tests__/payment-destination/lnurl.spec.ts +++ b/__tests__/payment-destination/lnurl.spec.ts @@ -1,7 +1,6 @@ -import { LNURLPayParams, LNURLResponse, LNURLWithdrawParams, getParams } from "js-lnurl" +import { LNURLResponse, LNURLWithdrawParams, getParams } from "js-lnurl" import { requestPayServiceParams } from "lnurl-pay" -import { LnUrlPayServiceResponse } from "lnurl-pay/dist/types/types" -import { createMock } from "ts-auto-mock" +import { LnUrlPayServiceResponse, Satoshis } from "lnurl-pay/dist/types/types" import { createLnurlPaymentDestination, @@ -14,23 +13,17 @@ import { PaymentType } from "@galoymoney/client" import { defaultPaymentDetailParams } from "./helpers" -jest.mock("lnurl-pay", () => { - return { - requestPayServiceParams: jest.fn(), - } -}) +jest.mock("lnurl-pay", () => ({ + requestPayServiceParams: jest.fn(), +})) -jest.mock("js-lnurl", () => { - return { - getParams: jest.fn(), - } -}) +jest.mock("js-lnurl", () => ({ + getParams: jest.fn(), +})) -jest.mock("@app/screens/send-bitcoin-screen/payment-details", () => { - return { - createLnurlPaymentDetails: jest.fn(), - } -}) +jest.mock("@app/screens/send-bitcoin-screen/payment-details", () => ({ + createLnurlPaymentDetails: jest.fn(), +})) const mockRequestPayServiceParams = requestPayServiceParams as jest.MockedFunction< typeof requestPayServiceParams @@ -44,6 +37,46 @@ const throwError = () => { throw new Error("test error") } +// Manual mocks for LnUrlPayServiceResponse and LNURLResponse +const manualMockLnUrlPayServiceResponse = ( + identifier: string, +): LnUrlPayServiceResponse => ({ + callback: "mocked_callback", + fixed: true, + min: 0 as Satoshis, + max: 2000 as Satoshis, + domain: "example.com", + metadata: [ + ["text/plain", "description"], + ["image/png;base64", "base64EncodedImage"], + ], + metadataHash: "mocked_metadata_hash", + identifier, + description: "mocked_description", + image: "mocked_image_url", + commentAllowed: 140, + rawData: {}, +}) + +const manualMockLNURLResponse = (): LNURLResponse => ({ + status: "string", + reason: "string", + domain: "string", + url: "string", +}) + +const manualMockLNURLWithdrawParams = (): LNURLWithdrawParams => ({ + // Example structure. Adjust according to your actual LNURLWithdrawParams type + tag: "withdrawRequest", + k1: "some_random_string", + callback: "http://example.com/callback", + domain: "example.com", + maxWithdrawable: 2000, + minWithdrawable: 0, + defaultDescription: "Test withdraw", + // ... add other required properties +}) + describe("resolve lnurl destination", () => { describe("with ln address", () => { const lnurlPaymentDestinationParams = { @@ -58,11 +91,12 @@ describe("resolve lnurl destination", () => { } it("creates lnurl pay destination", async () => { - const lnurlPayParams = createMock({ - identifier: lnurlPaymentDestinationParams.parsedLnurlDestination.lnurl, - }) + const lnurlPayParams = manualMockLnUrlPayServiceResponse( + lnurlPaymentDestinationParams.parsedLnurlDestination.lnurl, + ) + mockRequestPayServiceParams.mockResolvedValue(lnurlPayParams) - mockGetParams.mockResolvedValue(createMock()) + mockGetParams.mockResolvedValue(manualMockLNURLResponse()) const destination = await resolveLnurlDestination(lnurlPaymentDestinationParams) @@ -93,11 +127,11 @@ describe("resolve lnurl destination", () => { } it("creates lnurl pay destination", async () => { - const lnurlPayParams = createMock({ - identifier: lnurlPaymentDestinationParams.parsedLnurlDestination.lnurl, - }) + const lnurlPayParams = manualMockLnUrlPayServiceResponse( + lnurlPaymentDestinationParams.parsedLnurlDestination.lnurl, + ) mockRequestPayServiceParams.mockResolvedValue(lnurlPayParams) - mockGetParams.mockResolvedValue(createMock()) + mockGetParams.mockResolvedValue(manualMockLNURLResponse()) const destination = await resolveLnurlDestination(lnurlPaymentDestinationParams) @@ -129,7 +163,7 @@ describe("resolve lnurl destination", () => { it("creates lnurl withdraw destination", async () => { mockRequestPayServiceParams.mockImplementation(throwError) - const mockLnurlWithdrawParams = createMock() + const mockLnurlWithdrawParams = manualMockLNURLWithdrawParams() mockGetParams.mockResolvedValue(mockLnurlWithdrawParams) const destination = await resolveLnurlDestination(lnurlPaymentDestinationParams) @@ -166,11 +200,29 @@ describe("resolve lnurl destination", () => { describe("create lnurl destination", () => { it("correctly creates payment detail", () => { + const manualMockLnUrlPayServiceResponse = { + callback: "mocked_callback", + fixed: true, + min: 0 as Satoshis, + max: 2000 as Satoshis, + domain: "example.com", + metadata: [ + ["text/plain", "description"], + ["image/png;base64", "base64EncodedImage"], + ], + metadataHash: "mocked_metadata_hash", + identifier: "testlnurl", + description: "mocked_description", + image: "mocked_image_url", + commentAllowed: 140, + rawData: {}, + } + const lnurlPaymentDestinationParams = { paymentType: "lnurl", valid: true, lnurl: "testlnurl", - lnurlParams: createMock(), + lnurlParams: manualMockLnUrlPayServiceResponse, } as const const lnurlPayDestination = createLnurlPaymentDestination( diff --git a/__tests__/payment-details/lnurl-payment-details.spec.ts b/__tests__/payment-details/lnurl-payment-details.spec.ts index 6c9adf8477..ba0e8807a3 100644 --- a/__tests__/payment-details/lnurl-payment-details.spec.ts +++ b/__tests__/payment-details/lnurl-payment-details.spec.ts @@ -1,5 +1,4 @@ import { LnUrlPayServiceResponse, Satoshis } from "lnurl-pay/dist/types/types" -import { createMock } from "ts-auto-mock" import { WalletCurrency } from "@app/graphql/generated" import * as PaymentDetails from "@app/screens/send-bitcoin-screen/payment-details/lightning" @@ -16,12 +15,29 @@ import { usdSendingWalletDescriptor, } from "./helpers" +const mockLnUrlPayServiceResponse = ( + min: Satoshis, + max: Satoshis, +): LnUrlPayServiceResponse => ({ + callback: "mockCallbackUrl", + fixed: false, + min, + max, + domain: "mockDomain", + metadata: [["mockMetadata"]], + metadataHash: "mockMetadataHash", + identifier: "mockIdentifier", + description: "mockDescription", + image: "mockImageUrl", + commentAllowed: 0, + rawData: { + mockKey: "mockValue", + }, +}) + const defaultParamsWithoutInvoice = { lnurl: "testlnurl", - lnurlParams: createMock({ - min: 1 as Satoshis, - max: 1000 as Satoshis, - }), + lnurlParams: mockLnUrlPayServiceResponse(1 as Satoshis, 1000 as Satoshis), convertMoneyAmount: convertMoneyAmountMock, sendingWalletDescriptor: btcSendingWalletDescriptor, unitOfAccountAmount: testAmount, @@ -35,10 +51,7 @@ const defaultParamsWithInvoice = { const defaultParamsWithEqualMinMaxAmount = { ...defaultParamsWithoutInvoice, - lnurlParams: createMock({ - min: 100 as Satoshis, - max: 100 as Satoshis, - }), + lnurlParams: mockLnUrlPayServiceResponse(100 as Satoshis, 100 as Satoshis), } const spy = jest.spyOn(PaymentDetails, "createLnurlPaymentDetails") @@ -226,10 +239,12 @@ describe("lnurl payment details", () => { it("can set sending wallet descriptor", () => { const testSetSendingWalletDescriptor = getTestSetSendingWalletDescriptor() - testSetSendingWalletDescriptor({ - defaultParams: defaultParamsWithoutInvoice, - spy, - creatorFunction: createLnurlPaymentDetails, - }) + testSetSendingWalletDescriptor( + { + defaultParams: defaultParamsWithoutInvoice, + spy, + creatorFunction: createLnurlPaymentDetails, + }, + ) }) }) diff --git a/__tests__/payment-request/payment-request.spec.ts b/__tests__/payment-request/payment-request.spec.ts index d0ddef1cc0..d0c0337712 100644 --- a/__tests__/payment-request/payment-request.spec.ts +++ b/__tests__/payment-request/payment-request.spec.ts @@ -1,6 +1,3 @@ -import { createMock } from "ts-auto-mock" - -import { LnInvoice } from "@app/graphql/generated" import { GeneratePaymentRequestMutations, Invoice, @@ -20,62 +17,93 @@ const btcAmountInvoice = "lnbc23690n1p3l2qugpp5jeflfqjpxhe0hg3tzttc325j5l6czs9vq9zqx5edpt0yf7k6cypsdqqcqzpuxqyz5vqsp5lteanmnwddszwut839etrgjenfr3dv5tnvz2d2ww2mvggq7zn46q9qyyssqzcz0rvt7r30q7jul79xqqwpr4k2e8mgd23fkjm422sdgpndwql93d4wh3lap9yfwahue9n7ju80ynkqly0lrqqd2978dr8srkrlrjvcq2v5s6k" const mockOnChainAddress = "tb1qw508d6qejxtdg4y5r3zarvary0c5xw7kxpjzsx" -const mockLnInvoice = createMock({ +// Manually created mock objects +const mockLnInvoice = { + __typename: "LnInvoice", paymentRequest: btcAmountInvoice, -}) - -const mockLnInvoiceCreate = jest.fn().mockResolvedValue({ - data: { - lnInvoiceCreate: { - invoice: mockLnInvoice, - errors: [], - }, - }, - errors: [], -}) + // Add other necessary properties here +} -const mockLnUsdInvoice = createMock({ +const mockLnUsdInvoice = { + __typename: "LnInvoice", paymentRequest: usdAmountInvoice, -}) - -const mockLnUsdInvoiceCreate = jest.fn().mockResolvedValue({ - data: { - lnUsdInvoiceCreate: { - invoice: mockLnUsdInvoice, - errors: [], - }, - }, - errors: [], -}) + // Add other necessary properties here +} -const mockLnNoAmountInvoice = createMock({ +const mockLnNoAmountInvoice = { + __typename: "LnInvoice", paymentRequest: noAmountInvoice, -}) + // Add other necessary properties here +} -const mockLnNoAmountInvoiceCreate = jest.fn().mockResolvedValue({ - data: { - lnNoAmountInvoiceCreate: { - invoice: mockLnNoAmountInvoice, - errors: [], +const mockLnInvoiceCreate = jest.fn(() => + Promise.resolve({ + data: { + __typename: "Mutation", // Correct placement according to your schema + lnInvoiceCreate: { + __typename: "LnInvoicePayload", + invoice: mockLnInvoice, + errors: [], + }, }, - }, - errors: [], -}) - -const mockOnChainAddressCurrent = jest.fn().mockResolvedValue({ - data: { - onChainAddressCurrent: { - address: mockOnChainAddress, - errors: [], + errors: [], + }), +) + +const mockLnUsdInvoiceCreate = jest.fn(() => + Promise.resolve({ + data: { + __typename: "Mutation", // Correct placement according to your schema + lnUsdInvoiceCreate: { + __typename: "LnInvoicePayload", + invoice: mockLnUsdInvoice, + errors: [], + }, }, - }, - errors: [], -}) + errors: [], + }), +) + +const mockLnNoAmountInvoiceCreate = jest.fn(() => + Promise.resolve({ + data: { + __typename: "Mutation", // Correct placement according to your schema + lnNoAmountInvoiceCreate: { + __typename: "LnNoAmountInvoicePayload", + invoice: mockLnNoAmountInvoice, + errors: [], + }, + }, + errors: [], + }), +) + +const mockOnChainAddressCurrent = jest.fn(() => + Promise.resolve({ + data: { + __typename: "Mutation", // Correct placement according to your schema + onChainAddressCurrent: { + __typename: "OnChainAddressPayload", + address: mockOnChainAddress, + errors: [], + }, + }, + errors: [], + }), +) export const mutations: GeneratePaymentRequestMutations = { + // eslint-disable-next-line + // @ts-ignore type mismatch, but we don't care because it's a mock lnInvoiceCreate: mockLnInvoiceCreate, + // eslint-disable-next-line + // @ts-ignore type mismatch, but we don't care because it's a mock lnUsdInvoiceCreate: mockLnUsdInvoiceCreate, + // eslint-disable-next-line + // @ts-ignore type mismatch, but we don't care because it's a mock lnNoAmountInvoiceCreate: mockLnNoAmountInvoiceCreate, + // eslint-disable-next-line + // @ts-ignore type mismatch, but we don't care because it's a mock onChainAddressCurrent: mockOnChainAddressCurrent, } diff --git a/ios/GaloyApp.xcodeproj/project.pbxproj b/ios/GaloyApp.xcodeproj/project.pbxproj index a3dde8337b..c5ee4dda06 100644 --- a/ios/GaloyApp.xcodeproj/project.pbxproj +++ b/ios/GaloyApp.xcodeproj/project.pbxproj @@ -11,16 +11,16 @@ 13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.mm */; }; 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; - 3152A8AF830F40A7AB689E42 /* (null) in Resources */ = {isa = PBXBuildFile; }; - 3E3C92C2FC91412D8DFDE94D /* (null) in Resources */ = {isa = PBXBuildFile; }; - 560415592C5B4119B9F91553 /* (null) in Resources */ = {isa = PBXBuildFile; }; + 3152A8AF830F40A7AB689E42 /* BuildFile in Resources */ = {isa = PBXBuildFile; }; + 3E3C92C2FC91412D8DFDE94D /* BuildFile in Resources */ = {isa = PBXBuildFile; }; + 560415592C5B4119B9F91553 /* BuildFile in Resources */ = {isa = PBXBuildFile; }; 81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */; }; - 94D9F3C84EB547D68D41C50F /* (null) in Resources */ = {isa = PBXBuildFile; }; + 94D9F3C84EB547D68D41C50F /* BuildFile in Resources */ = {isa = PBXBuildFile; }; AEBBD0A1234A4C5490A44CC1 /* DMSans-Bold.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 6C8483F4C3424986AEBE74CC /* DMSans-Bold.ttf */; }; - BD157A9851974C298EB06CB7 /* (null) in Resources */ = {isa = PBXBuildFile; }; + BD157A9851974C298EB06CB7 /* BuildFile in Resources */ = {isa = PBXBuildFile; }; BFD1E05462E2DE8ADB6856A2 /* libPods-GaloyApp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7BF3F16B9970ED9E2ACFEC81 /* libPods-GaloyApp.a */; }; C41200B62BCD042900FBB850 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = C41200B52BCD042900FBB850 /* PrivacyInfo.xcprivacy */; }; - C426C81D58C8450C878B6086 /* (null) in Resources */ = {isa = PBXBuildFile; }; + C426C81D58C8450C878B6086 /* BuildFile in Resources */ = {isa = PBXBuildFile; }; C61EE0AD23C530E30054100C /* AuthenticationServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C61EE0AC23C530E30054100C /* AuthenticationServices.framework */; }; C6E810012333FDA500D41794 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = C6E810002333FDA400D41794 /* GoogleService-Info.plist */; }; F1D71F3628CE5C9A00636277 /* AppDelegate.h in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FAF1A68108700A75B9A /* AppDelegate.h */; }; @@ -227,13 +227,13 @@ 0D25368529E5EE4B00037874 /* BootSplash.storyboard in Resources */, 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */, C6E810012333FDA500D41794 /* GoogleService-Info.plist in Resources */, - 560415592C5B4119B9F91553 /* (null) in Resources */, - 3E3C92C2FC91412D8DFDE94D /* (null) in Resources */, + 560415592C5B4119B9F91553 /* BuildFile in Resources */, + 3E3C92C2FC91412D8DFDE94D /* BuildFile in Resources */, C41200B62BCD042900FBB850 /* PrivacyInfo.xcprivacy in Resources */, - BD157A9851974C298EB06CB7 /* (null) in Resources */, - 3152A8AF830F40A7AB689E42 /* (null) in Resources */, - 94D9F3C84EB547D68D41C50F /* (null) in Resources */, - C426C81D58C8450C878B6086 /* (null) in Resources */, + BD157A9851974C298EB06CB7 /* BuildFile in Resources */, + 3152A8AF830F40A7AB689E42 /* BuildFile in Resources */, + 94D9F3C84EB547D68D41C50F /* BuildFile in Resources */, + C426C81D58C8450C878B6086 /* BuildFile in Resources */, AEBBD0A1234A4C5490A44CC1 /* DMSans-Bold.ttf in Resources */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/jest-ts-auto-mock-config.ts b/jest-ts-auto-mock-config.ts deleted file mode 100644 index 0f63e68f5c..0000000000 --- a/jest-ts-auto-mock-config.ts +++ /dev/null @@ -1 +0,0 @@ -import "jest-ts-auto-mock" diff --git a/jest.config.js b/jest.config.js index 858c7c6703..e1fc389c63 100644 --- a/jest.config.js +++ b/jest.config.js @@ -1,15 +1,12 @@ module.exports = { preset: "react-native", - setupFiles: [ - "/jest-ts-auto-mock-config.ts", - "./node_modules/react-native-gesture-handler/jestSetup.js", - ], + setupFiles: ["./node_modules/react-native-gesture-handler/jestSetup.js"], setupFilesAfterEnv: ["@testing-library/jest-native/extend-expect"], transform: { "\\.(ts|tsx)$": [ "ts-jest", { - compiler: "ttypescript", + compiler: "ttsc", tsconfig: "tsconfig.jest.json", }, ], diff --git a/package.json b/package.json index 869cf5f472..168b223492 100644 --- a/package.json +++ b/package.json @@ -247,13 +247,12 @@ "rimraf": "4.4.1", "sharp": "^0.32.5", "solidarity": "^3.0.0", - "ts-auto-mock": "^3.6.4", "ts-jest": "^29.1.1", "ts-node": "^10.9.1", "tsconfig-paths": "^4.1.2", "tsx": "^3.12.7", - "ttypescript": "^1.5.15", - "typescript": "4.9.x", + "ttsc": "^0.3.1", + "typescript": "^5.3.3", "webdriverio": "^8.15.4", "yalc": "^1.0.0-pre.53" }, diff --git a/tsconfig.json b/tsconfig.json index 7482c2abda..131eb075a3 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -7,15 +7,15 @@ "paths": { "@app/*": ["app/*"] }, - "plugins": [ - { - "transform": "ts-auto-mock/transformer", - "cacheBetweenTests": false, - "features": ["random"] - } - ], - "types": ["node", "react-native", "@wdio/globals/types", "@wdio/mocha-framework", "@wdio/devtools-service", "@types/jest"], + "types": [ + "node", + "react-native", + "@wdio/globals/types", + "@wdio/mocha-framework", + "@wdio/devtools-service", + "@types/jest" + ] }, "exclude": ["**/*.stories.tsx"], - "include": ["app", "e2e", "__tests__", ".storybook"], + "include": ["app", "e2e", "__tests__", ".storybook"] } diff --git a/yarn.lock b/yarn.lock index 961038d1b7..5d9c76694a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1482,11 +1482,6 @@ resolved "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== -"@colors/colors@1.6.0": - version "1.6.0" - resolved "https://registry.npmjs.org/@colors/colors/-/colors-1.6.0.tgz#ec6cd237440700bc23ca23087f513c75508958b0" - integrity sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA== - "@cspotcode/source-map-support@^0.8.0": version "0.8.1" resolved "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" @@ -1494,15 +1489,6 @@ dependencies: "@jridgewell/trace-mapping" "0.3.9" -"@dabh/diagnostics@^2.0.2": - version "2.0.3" - resolved "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.3.tgz#7f7e97ee9a725dffc7808d93668cc984e1dc477a" - integrity sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA== - dependencies: - colorspace "1.1.x" - enabled "2.0.x" - kuler "^2.0.0" - "@discoveryjs/json-ext@^0.5.3": version "0.5.7" resolved "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70" @@ -6308,11 +6294,6 @@ resolved "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.12.tgz#bc2cab12e87978eee89fb21576b670350d6d86ab" integrity sha512-bTHG8fcxEqv1M9+TD14P8ok8hjxoOCkfKc8XXLaaD05kI7ohpeI956jtDOD3XHKBQrlyPughUtzm1jtVhHpA5Q== -"@types/triple-beam@^1.3.2": - version "1.3.5" - resolved "https://registry.npmjs.org/@types/triple-beam/-/triple-beam-1.3.5.tgz#74fef9ffbaa198eb8b588be029f38b00299caa2c" - integrity sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw== - "@types/uglify-js@*": version "3.17.4" resolved "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.17.4.tgz#3c70021f08023e5a760ce133d22966f200e1d31c" @@ -9244,7 +9225,7 @@ color-support@^1.1.2: resolved "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== -color@^3.1.3, color@^3.2.1: +color@^3.2.1: version "3.2.1" resolved "https://registry.npmjs.org/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164" integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA== @@ -9280,14 +9261,6 @@ colors@~0.6.2: resolved "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz#2423fe6678ac0c5dae8852e5d0e5be08c997abcc" integrity sha512-OsSVtHK8Ir8r3+Fxw/b4jS1ZLPXkV6ZxDRJQzeD7qo0SqMXWrHDM71DgYzPMHY8SFJ0Ao+nNU2p1MmwdzKqPrw== -colorspace@1.1.x: - version "1.1.4" - resolved "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz#8d442d1186152f60453bf8070cd66eb364e59243" - integrity sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w== - dependencies: - color "^3.1.3" - text-hex "1.0.x" - combined-stream@^1.0.8: version "1.0.8" resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" @@ -10792,11 +10765,6 @@ emotion-theming@^10.0.19: "@emotion/weak-memoize" "0.2.5" hoist-non-react-statics "^3.3.0" -enabled@2.0.x: - version "2.0.0" - resolved "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz#f9dd92ec2d6f4bbc0d5d1e64e21d61cd4665e7c2" - integrity sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ== - encode-utf8@^1.0.3: version "1.0.3" resolved "https://registry.npmjs.org/encode-utf8/-/encode-utf8-1.0.3.tgz#f30fdd31da07fb596f281beb2f6b027851994cda" @@ -11896,11 +11864,6 @@ fd-slicer@~1.1.0: dependencies: pend "~1.2.0" -fecha@^4.2.0: - version "4.2.3" - resolved "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz#4d9ccdbc61e8629b259fdca67e65891448d569fd" - integrity sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw== - fetch-blob@^3.1.2, fetch-blob@^3.1.4: version "3.2.0" resolved "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz#f09b8d4bbd45adc6f0c20b7e787e793e309dcce9" @@ -12202,11 +12165,6 @@ flush-write-stream@^1.0.0: inherits "^2.0.3" readable-stream "^2.3.6" -fn.name@1.x.x: - version "1.1.0" - resolved "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz#26cad8017967aea8731bc42961d04a3d5988accc" - integrity sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw== - follow-redirects@^1.14.0, follow-redirects@^1.15.0: version "1.15.3" resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz#fe2f3ef2690afce7e82ed0b44db08165b207123a" @@ -15834,11 +15792,6 @@ klona@^2.0.4: resolved "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz#85bffbf819c03b2f53270412420a4555ef882e22" integrity sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA== -kuler@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz#e2c570a3800388fb44407e851531c1d670b061b3" - integrity sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A== - ky@^0.33.0: version "0.33.3" resolved "https://registry.npmjs.org/ky/-/ky-0.33.3.tgz#bf1ad322a3f2c3428c13cfa4b3af95e6c4a2f543" @@ -16170,11 +16123,6 @@ locate-path@^7.1.0: dependencies: p-locate "^6.0.0" -lodash-es@4.17.21: - version "4.17.21" - resolved "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee" - integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== - lodash.camelcase@^4.3.0: version "4.3.0" resolved "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" @@ -16371,18 +16319,6 @@ log-update@^4.0.0: slice-ansi "^4.0.0" wrap-ansi "^6.2.0" -logform@^2.3.2, logform@^2.4.0: - version "2.6.0" - resolved "https://registry.npmjs.org/logform/-/logform-2.6.0.tgz#8c82a983f05d6eaeb2d75e3decae7a768b2bf9b5" - integrity sha512-1ulHeNPp6k/LD8H91o7VYFBng5i1BDE7HoKxVbZiGFidS1Rj65qcywLxX+pVfAPoQJEjRdvKcusKwOupHCVOVQ== - dependencies: - "@colors/colors" "1.6.0" - "@types/triple-beam" "^1.3.2" - fecha "^4.2.0" - ms "^2.1.1" - safe-stable-stringify "^2.3.1" - triple-beam "^1.3.0" - logkitty@^0.7.1: version "0.7.1" resolved "https://registry.npmjs.org/logkitty/-/logkitty-0.7.1.tgz#8e8d62f4085a826e8d38987722570234e33c6aa7" @@ -17315,14 +17251,6 @@ micromark@~2.11.0: debug "^4.0.0" parse-entities "^2.0.0" -micromatch@4.0.5, micromatch@^4.0.2, micromatch@^4.0.4, micromatch@^4.0.5: - version "4.0.5" - resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" - integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== - dependencies: - braces "^3.0.2" - picomatch "^2.3.1" - micromatch@^3.1.10, micromatch@^3.1.4: version "3.1.10" resolved "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" @@ -17342,6 +17270,14 @@ micromatch@^3.1.10, micromatch@^3.1.4: snapdragon "^0.8.1" to-regex "^3.0.2" +micromatch@^4.0.2, micromatch@^4.0.4, micromatch@^4.0.5: + version "4.0.5" + resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== + dependencies: + braces "^3.0.2" + picomatch "^2.3.1" + miller-rabin@^4.0.0: version "4.0.1" resolved "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" @@ -18275,13 +18211,6 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0: dependencies: wrappy "1" -one-time@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz#e06bc174aed214ed58edede573b433bbf827cb45" - integrity sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g== - dependencies: - fn.name "1.x.x" - onetime@^2.0.0: version "2.0.1" resolved "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" @@ -21142,11 +21071,6 @@ safe-regex@^1.1.0: dependencies: ret "~0.1.10" -safe-stable-stringify@^2.3.1: - version "2.4.3" - resolved "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz#138c84b6f6edb3db5f8ef3ef7115b8f55ccbf886" - integrity sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g== - "safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.1.0: version "2.1.2" resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" @@ -21912,7 +21836,7 @@ stack-generator@^2.0.5: dependencies: stackframe "^1.3.4" -stack-trace@0.0.10, stack-trace@0.0.x: +stack-trace@0.0.10: version "0.0.10" resolved "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" integrity sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg== @@ -22670,11 +22594,6 @@ test-exclude@^6.0.0: glob "^7.1.4" minimatch "^3.0.4" -text-hex@1.0.x: - version "1.0.0" - resolved "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz#69dc9c1b17446ee79a92bf5b884bb4b9127506f5" - integrity sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg== - text-segmentation@^1.0.3: version "1.0.3" resolved "https://registry.npmjs.org/text-segmentation/-/text-segmentation-1.0.3.tgz#52a388159efffe746b24a63ba311b6ac9f2d7943" @@ -22861,11 +22780,6 @@ trim@0.0.1: resolved "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz#5858547f6b290757ee95cccc666fb50084c460dd" integrity sha512-YzQV+TZg4AxpKxaTHK3c3D+kRDCGVEE7LemdlQZoQXn0iennk10RsIoY6ikzAqJTc9Xjl9C1/waHom/J86ziAQ== -triple-beam@^1.3.0: - version "1.4.1" - resolved "https://registry.npmjs.org/triple-beam/-/triple-beam-1.4.1.tgz#6fde70271dc6e5d73ca0c3b24e2d92afb7441984" - integrity sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg== - trough@^1.0.0: version "1.0.5" resolved "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz#b8b639cefad7d0bb2abd37d433ff8293efa5f406" @@ -22873,20 +22787,11 @@ trough@^1.0.0: truncate-utf8-bytes@^1.0.0: version "1.0.2" - resolved "https://registry.yarnpkg.com/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz#405923909592d56f78a5818434b0b78489ca5f2b" + resolved "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz#405923909592d56f78a5818434b0b78489ca5f2b" integrity sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ== dependencies: utf8-byte-length "^1.0.1" -ts-auto-mock@^3.6.4: - version "3.7.1" - resolved "https://registry.npmjs.org/ts-auto-mock/-/ts-auto-mock-3.7.1.tgz#c11cabbfdf43f217ef184303848ed27a352a6c06" - integrity sha512-FK39cqM+ZIloSyoRP82jlVfbylueNa4biWQuY6SkoCu84i28Uc9mEw2PiTAi1zr6WXlw5lOfGfz8xAfaE8KPtw== - dependencies: - lodash-es "4.17.21" - micromatch "4.0.5" - winston "3.7.2" - ts-dedent@^2.0.0: version "2.2.0" resolved "https://registry.npmjs.org/ts-dedent/-/ts-dedent-2.2.0.tgz#39e4bd297cd036292ae2394eb3412be63f563bb5" @@ -23009,18 +22914,18 @@ tsx@^3.12.7: optionalDependencies: fsevents "~2.3.3" +ttsc@^0.3.1: + version "0.3.1" + resolved "https://registry.npmjs.org/ttsc/-/ttsc-0.3.1.tgz#bc1feae07d6df68c36aa98da28d753f22c57f6e9" + integrity sha512-3l5bxt8xRc/0Yty9QiF8iPG9lk/FLwiHNU/CkFQUZ82WoxCBKk1HgBQ9GSuiQfn0up+ou5f8tHMlh9kGFOO1Vg== + dependencies: + resolve ">=1.9.0" + tty-browserify@0.0.0: version "0.0.0" resolved "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" integrity sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw== -ttypescript@^1.5.15: - version "1.5.15" - resolved "https://registry.npmjs.org/ttypescript/-/ttypescript-1.5.15.tgz#e45550ad69289d06d3bc3fd4a3c87e7c1ef3eba7" - integrity sha512-48ykDNHzFnPMnv4hYX1P8Q84TvCZyL1QlFxeuxsuZ48X2+ameBgPenvmCkHJtoOSxpoWTWi8NcgNrRnVDOmfSg== - dependencies: - resolve ">=1.9.0" - tunnel-agent@^0.6.0: version "0.6.0" resolved "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" @@ -23166,10 +23071,10 @@ typesafe-i18n@^5.26.2: resolved "https://registry.npmjs.org/typesafe-i18n/-/typesafe-i18n-5.26.2.tgz#d8e2ef67197c837cdd11ea2ec17f73af2591e9b4" integrity sha512-2QAriFmiY5JwUAJtG7yufoE/XZ1aFBY++wj7YFS2yo89a3jLBfKoWSdq5JfQYk1V2BS7V2c/u+KEcaCQoE65hw== -typescript@4.9.x: - version "4.9.5" - resolved "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" - integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== +typescript@^5.3.3: + version "5.3.3" + resolved "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz#b3ce6ba258e72e6305ba66f5c9b452aaee3ffe37" + integrity sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw== ua-parser-js@^1.0.35: version "1.0.37" @@ -24551,31 +24456,6 @@ widest-line@^3.1.0: dependencies: string-width "^4.0.0" -winston-transport@^4.5.0: - version "4.6.0" - resolved "https://registry.npmjs.org/winston-transport/-/winston-transport-4.6.0.tgz#f1c1a665ad1b366df72199e27892721832a19e1b" - integrity sha512-wbBA9PbPAHxKiygo7ub7BYRiKxms0tpfU2ljtWzb3SjRjv5yl6Ozuy/TkXf00HTAt+Uylo3gSkNwzc4ME0wiIg== - dependencies: - logform "^2.3.2" - readable-stream "^3.6.0" - triple-beam "^1.3.0" - -winston@3.7.2: - version "3.7.2" - resolved "https://registry.npmjs.org/winston/-/winston-3.7.2.tgz#95b4eeddbec902b3db1424932ac634f887c400b1" - integrity sha512-QziIqtojHBoyzUOdQvQiar1DH0Xp9nF1A1y7NVy2DGEsz82SBDtOalS0ulTRGVT14xPX3WRWkCsdcJKqNflKng== - dependencies: - "@dabh/diagnostics" "^2.0.2" - async "^3.2.3" - is-stream "^2.0.0" - logform "^2.4.0" - one-time "^1.0.0" - readable-stream "^3.4.0" - safe-stable-stringify "^2.3.1" - stack-trace "0.0.x" - triple-beam "^1.3.0" - winston-transport "^4.5.0" - wordwrap@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"