From d0c1ebba2d681ffcc7d228867acb2518dcb31b0f Mon Sep 17 00:00:00 2001 From: Daniel Perez Alvarez Date: Wed, 7 Aug 2024 02:33:54 -0400 Subject: [PATCH 01/17] WIP add vitest --- test/package.json | 5 +- test/tests/extras.test.ts | 4 +- test/tests/nx.test.ts | 4 +- test/tests/register.test.ts | 28 +- test/tests/transformer/specific.test.ts | 2 +- test/yarn.lock | 827 +++++++++++++++++++++++- 6 files changed, 841 insertions(+), 29 deletions(-) diff --git a/test/package.json b/test/package.json index e460c70f..1ecd96bd 100755 --- a/test/package.json +++ b/test/package.json @@ -2,7 +2,7 @@ "private": true, "license": "MIT", "scripts": { - "test": "jest", + "test": "vitest --globals", "g:ts-node": "cd $INIT_CWD && ts-node", "postinstall": "node prepare.mjs" }, @@ -25,7 +25,8 @@ "typescript": "^5.5.4", "typescript-four-seven": "npm:typescript@4.7.4", "typescript-three": "npm:typescript@3.6.5", - "typescript-transform-paths": "portal:../" + "typescript-transform-paths": "portal:../", + "vitest": "^2.0.5" }, "workspaces": [ "projects/*" diff --git a/test/tests/extras.test.ts b/test/tests/extras.test.ts index cd326aca..e9ec781a 100755 --- a/test/tests/extras.test.ts +++ b/test/tests/extras.test.ts @@ -18,7 +18,7 @@ describe(`Extra Tests`, () => { describe(`Built Tests`, () => { // see: https://github.com/LeDDGroup/typescript-transform-paths/issues/130 test(`Transformer works without ts-node being present`, () => { - jest.doMock( + vi.doMock( "ts-node", () => { throw new ModuleNotFoundError("ts-node"); @@ -30,7 +30,7 @@ describe(`Extra Tests`, () => { const res = getEmitResultFromProgram(program); expect(res[indexFile].js).toMatch(`var _identifier_1 = require("./id")`); } finally { - jest.dontMock("ts-node"); + vi.dontMock("ts-node"); } }); diff --git a/test/tests/nx.test.ts b/test/tests/nx.test.ts index cdfaba1e..508c04f2 100644 --- a/test/tests/nx.test.ts +++ b/test/tests/nx.test.ts @@ -15,12 +15,12 @@ import { projectsPaths } from "../config"; describe(`NX Transformer`, () => { describe("Plugin", () => { - let mockedTransformer: jest.SpyInstance; + let mockedTransformer: vi.SpyInstance; const program: any = { x: 1 }; beforeAll(async () => { - mockedTransformer = jest.spyOn(transformerModule, "default").mockReturnValue((() => {})); + mockedTransformer = vi.spyOn(transformerModule, "default").mockReturnValue((() => {})); }); afterAll(() => { mockedTransformer.mockClear(); diff --git a/test/tests/register.test.ts b/test/tests/register.test.ts index 15842804..a76f7243 100755 --- a/test/tests/register.test.ts +++ b/test/tests/register.test.ts @@ -47,9 +47,9 @@ describe(`Register script`, () => { test(`Registers initial ts-node if none found`, () => { const originalTsNodeInstance = global.process[instanceSymbol]; global.process[instanceSymbol] = void 0; - let registerSpy: jest.SpyInstance | undefined; + let registerSpy: vi.SpyInstance | undefined; try { - registerSpy = jest.spyOn(tsNode, "register"); + registerSpy = vi.spyOn(tsNode, "register"); expect(global.process[instanceSymbol]).toBeUndefined(); register.initialize(); @@ -67,9 +67,9 @@ describe(`Register script`, () => { const originalTsNodeInstance = global.process[instanceSymbol]; global.process[instanceSymbol] = fakeInstance; - let registerSpy: jest.SpyInstance | undefined; + let registerSpy: vi.SpyInstance | undefined; try { - registerSpy = jest.spyOn(tsNode, "register"); + registerSpy = vi.spyOn(tsNode, "register"); const { tsNodeInstance } = register.initialize(); @@ -91,7 +91,7 @@ describe(`Register script`, () => { describe(`Register`, () => { test(`Throws without ts-node`, () => { - jest.doMock( + vi.doMock( "ts-node", () => { throw new ModuleNotFoundError("ts-node"); @@ -99,18 +99,18 @@ describe(`Register script`, () => { { virtual: true }, ); expect(() => register()).toThrow(`Cannot resolve ts-node`); - jest.dontMock("ts-node"); + vi.dontMock("ts-node"); }); test(`Throws if can't register ts-node`, () => { - jest.doMock("ts-node", () => ({ register: () => {} }), { virtual: true }); + vi.doMock("ts-node", () => ({ register: () => {} }), { virtual: true }); expect(() => register()).toThrow(`Could not register ts-node instance!`); - jest.dontMock("ts-node"); + vi.dontMock("ts-node"); }); test(`No transformers in tsConfig exits quietly`, () => { const originalInitialize = register.initialize; - const initializeSpy = jest.spyOn(register, "initialize"); + const initializeSpy = vi.spyOn(register, "initialize"); try { initializeSpy.mockImplementation(() => { const res = originalInitialize(); @@ -135,7 +135,7 @@ describe(`Register script`, () => { after: [fakeExistingTransformer], afterDeclarations: [fakeExistingTransformer], }; - const transformerFactoryFn = jest.fn().mockReturnValue(fakeTransformerConfig); + const transformerFactoryFn = vi.fn().mockReturnValue(fakeTransformerConfig); const fakeProgram: any = {}; let existingTransformers: CustomTransformers | ((p: Program) => CustomTransformers) | undefined; @@ -151,19 +151,19 @@ describe(`Register script`, () => { } describe.each(configMap)(`$label`, ({ transformers, hasBefore, hasAfterDeclarations }) => { - let mockTransformer: jest.SpyInstance; - let initializeSpy: jest.SpyInstance; + let mockTransformer: vi.SpyInstance; + let initializeSpy: vi.SpyInstance; let registerResult: tsNode.RegisterOptions; let instanceRegistrationResult: tsNode.Service; let mergedTransformers: CustomTransformers; beforeAll(() => { - mockTransformer = jest.spyOn(transformerModule, "default").mockReturnValue(fakeTransformer); + mockTransformer = vi.spyOn(transformerModule, "default").mockReturnValue(fakeTransformer); global.process[instanceSymbol] = void 0; const originalInitialize = register.initialize; - initializeSpy = jest.spyOn(register, "initialize"); + initializeSpy = vi.spyOn(register, "initialize"); initializeSpy.mockImplementation(() => { const res = originalInitialize(); if (existingTransformers) res.tsNodeInstance.options.transformers = existingTransformers; diff --git a/test/tests/transformer/specific.test.ts b/test/tests/transformer/specific.test.ts index a9a4504b..e20ec34d 100755 --- a/test/tests/transformer/specific.test.ts +++ b/test/tests/transformer/specific.test.ts @@ -40,7 +40,7 @@ const moduleAugmentFile = ts.normalizePath(path.join(projectRoot, "src/module-au * ****************************************************************************************************************** */ declare global { - namespace jest { + namespace vi { // eslint-disable-next-line @typescript-eslint/no-unused-vars -- no way to extend type definitions without using the same declaration as the original types interface Matchers { transformedMatches(expected: RegExp | string, opt?: { base?: EmittedFiles[]; kind?: ("dts" | "js")[] }): void; diff --git a/test/yarn.lock b/test/yarn.lock index b605fae8..ad84865b 100644 --- a/test/yarn.lock +++ b/test/yarn.lock @@ -5,7 +5,7 @@ __metadata: version: 8 cacheKey: 10c0 -"@ampproject/remapping@npm:^2.2.0": +"@ampproject/remapping@npm:^2.2.0, @ampproject/remapping@npm:^2.3.0": version: 2.3.0 resolution: "@ampproject/remapping@npm:2.3.0" dependencies: @@ -1458,6 +1458,167 @@ __metadata: languageName: node linkType: hard +"@esbuild/aix-ppc64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/aix-ppc64@npm:0.21.5" + conditions: os=aix & cpu=ppc64 + languageName: node + linkType: hard + +"@esbuild/android-arm64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/android-arm64@npm:0.21.5" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/android-arm@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/android-arm@npm:0.21.5" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + +"@esbuild/android-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/android-x64@npm:0.21.5" + conditions: os=android & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/darwin-arm64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/darwin-arm64@npm:0.21.5" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/darwin-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/darwin-x64@npm:0.21.5" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/freebsd-arm64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/freebsd-arm64@npm:0.21.5" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/freebsd-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/freebsd-x64@npm:0.21.5" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/linux-arm64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-arm64@npm:0.21.5" + conditions: os=linux & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/linux-arm@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-arm@npm:0.21.5" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@esbuild/linux-ia32@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-ia32@npm:0.21.5" + conditions: os=linux & cpu=ia32 + languageName: node + linkType: hard + +"@esbuild/linux-loong64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-loong64@npm:0.21.5" + conditions: os=linux & cpu=loong64 + languageName: node + linkType: hard + +"@esbuild/linux-mips64el@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-mips64el@npm:0.21.5" + conditions: os=linux & cpu=mips64el + languageName: node + linkType: hard + +"@esbuild/linux-ppc64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-ppc64@npm:0.21.5" + conditions: os=linux & cpu=ppc64 + languageName: node + linkType: hard + +"@esbuild/linux-riscv64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-riscv64@npm:0.21.5" + conditions: os=linux & cpu=riscv64 + languageName: node + linkType: hard + +"@esbuild/linux-s390x@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-s390x@npm:0.21.5" + conditions: os=linux & cpu=s390x + languageName: node + linkType: hard + +"@esbuild/linux-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-x64@npm:0.21.5" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/netbsd-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/netbsd-x64@npm:0.21.5" + conditions: os=netbsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/openbsd-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/openbsd-x64@npm:0.21.5" + conditions: os=openbsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/sunos-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/sunos-x64@npm:0.21.5" + conditions: os=sunos & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/win32-arm64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/win32-arm64@npm:0.21.5" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/win32-ia32@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/win32-ia32@npm:0.21.5" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@esbuild/win32-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/win32-x64@npm:0.21.5" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@isaacs/cliui@npm:^8.0.2": version: 8.0.2 resolution: "@isaacs/cliui@npm:8.0.2" @@ -1757,7 +1918,7 @@ __metadata: languageName: node linkType: hard -"@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.14": +"@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.14, @jridgewell/sourcemap-codec@npm:^1.5.0": version: 1.5.0 resolution: "@jridgewell/sourcemap-codec@npm:1.5.0" checksum: 10c0/2eb864f276eb1096c3c11da3e9bb518f6d9fc0023c78344cdc037abadc725172c70314bdb360f2d4b7bffec7f5d657ce006816bc5d4ecb35e61b66132db00c18 @@ -2126,6 +2287,118 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-android-arm-eabi@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-android-arm-eabi@npm:4.20.0" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + +"@rollup/rollup-android-arm64@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-android-arm64@npm:4.20.0" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-darwin-arm64@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-darwin-arm64@npm:4.20.0" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-darwin-x64@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-darwin-x64@npm:4.20.0" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm-gnueabihf@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.20.0" + conditions: os=linux & cpu=arm & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm-musleabihf@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.20.0" + conditions: os=linux & cpu=arm & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm64-gnu@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.20.0" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm64-musl@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-linux-arm64-musl@npm:4.20.0" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-linux-powerpc64le-gnu@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.20.0" + conditions: os=linux & cpu=ppc64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-riscv64-gnu@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.20.0" + conditions: os=linux & cpu=riscv64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-s390x-gnu@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.20.0" + conditions: os=linux & cpu=s390x & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-x64-gnu@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-linux-x64-gnu@npm:4.20.0" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-x64-musl@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-linux-x64-musl@npm:4.20.0" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-win32-arm64-msvc@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.20.0" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-win32-ia32-msvc@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.20.0" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@rollup/rollup-win32-x64-msvc@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-win32-x64-msvc@npm:4.20.0" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@sinclair/typebox@npm:^0.27.8": version: 0.27.8 resolution: "@sinclair/typebox@npm:0.27.8" @@ -2316,7 +2589,7 @@ __metadata: languageName: node linkType: hard -"@types/estree@npm:*, @types/estree@npm:^1.0.5": +"@types/estree@npm:*, @types/estree@npm:1.0.5, @types/estree@npm:^1.0.0, @types/estree@npm:^1.0.5": version: 1.0.5 resolution: "@types/estree@npm:1.0.5" checksum: 10c0/b3b0e334288ddb407c7b3357ca67dbee75ee22db242ca7c56fe27db4e1a31989cb8af48a84dd401deb787fe10cc6b2ab1ee82dc4783be87ededbe3d53c79c70d @@ -2538,6 +2811,69 @@ __metadata: languageName: node linkType: hard +"@vitest/expect@npm:2.0.5": + version: 2.0.5 + resolution: "@vitest/expect@npm:2.0.5" + dependencies: + "@vitest/spy": "npm:2.0.5" + "@vitest/utils": "npm:2.0.5" + chai: "npm:^5.1.1" + tinyrainbow: "npm:^1.2.0" + checksum: 10c0/08cb1b0f106d16a5b60db733e3d436fa5eefc68571488eb570dfe4f599f214ab52e4342273b03dbe12331cc6c0cdc325ac6c94f651ad254cd62f3aa0e3d185aa + languageName: node + linkType: hard + +"@vitest/pretty-format@npm:2.0.5, @vitest/pretty-format@npm:^2.0.5": + version: 2.0.5 + resolution: "@vitest/pretty-format@npm:2.0.5" + dependencies: + tinyrainbow: "npm:^1.2.0" + checksum: 10c0/236c0798c5170a0b5ad5d4bd06118533738e820b4dd30079d8fbcb15baee949d41c60f42a9f769906c4a5ce366d7ef11279546070646c0efc03128c220c31f37 + languageName: node + linkType: hard + +"@vitest/runner@npm:2.0.5": + version: 2.0.5 + resolution: "@vitest/runner@npm:2.0.5" + dependencies: + "@vitest/utils": "npm:2.0.5" + pathe: "npm:^1.1.2" + checksum: 10c0/d0ed3302a7e015bf44b7c0df9d8f7da163659e082d86f9406944b5a31a61ab9ddc1de530e06176d1f4ef0bde994b44bff4c7dab62aacdc235c8fc04b98e4a72a + languageName: node + linkType: hard + +"@vitest/snapshot@npm:2.0.5": + version: 2.0.5 + resolution: "@vitest/snapshot@npm:2.0.5" + dependencies: + "@vitest/pretty-format": "npm:2.0.5" + magic-string: "npm:^0.30.10" + pathe: "npm:^1.1.2" + checksum: 10c0/7bf38474248f5ae0aac6afad511785d2b7a023ac5158803c2868fd172b5b9c1a569fb1dd64a09a49e43fd342cab71ea485ada89b7f08d37b1622a5a0ac00271d + languageName: node + linkType: hard + +"@vitest/spy@npm:2.0.5": + version: 2.0.5 + resolution: "@vitest/spy@npm:2.0.5" + dependencies: + tinyspy: "npm:^3.0.0" + checksum: 10c0/70634c21921eb271b54d2986c21d7ab6896a31c0f4f1d266940c9bafb8ac36237846d6736638cbf18b958bd98e5261b158a6944352742accfde50b7818ff655e + languageName: node + linkType: hard + +"@vitest/utils@npm:2.0.5": + version: 2.0.5 + resolution: "@vitest/utils@npm:2.0.5" + dependencies: + "@vitest/pretty-format": "npm:2.0.5" + estree-walker: "npm:^3.0.3" + loupe: "npm:^3.1.1" + tinyrainbow: "npm:^1.2.0" + checksum: 10c0/0d1de748298f07a50281e1ba058b05dcd58da3280c14e6f016265e950bd79adab6b97822de8f0ea82d3070f585654801a9b1bcf26db4372e51cf7746bf86d73b + languageName: node + linkType: hard + "@webassemblyjs/ast@npm:1.12.1, @webassemblyjs/ast@npm:^1.12.1": version: 1.12.1 resolution: "@webassemblyjs/ast@npm:1.12.1" @@ -2986,6 +3322,13 @@ __metadata: languageName: node linkType: hard +"assertion-error@npm:^2.0.1": + version: 2.0.1 + resolution: "assertion-error@npm:2.0.1" + checksum: 10c0/bbbcb117ac6480138f8c93cf7f535614282dea9dc828f540cdece85e3c665e8f78958b96afac52f29ff883c72638e6a87d469ecc9fe5bc902df03ed24a55dba8 + languageName: node + linkType: hard + "async@npm:^3.2.3": version: 3.2.5 resolution: "async@npm:3.2.5" @@ -3370,6 +3713,13 @@ __metadata: languageName: node linkType: hard +"cac@npm:^6.7.14": + version: 6.7.14 + resolution: "cac@npm:6.7.14" + checksum: 10c0/4ee06aaa7bab8981f0d54e5f5f9d4adcd64058e9697563ce336d8a3878ed018ee18ebe5359b2430eceae87e0758e62ea2019c3f52ae6e211b1bd2e133856cd10 + languageName: node + linkType: hard + "cacache@npm:^18.0.0": version: 18.0.4 resolution: "cacache@npm:18.0.4" @@ -3443,6 +3793,19 @@ __metadata: languageName: node linkType: hard +"chai@npm:^5.1.1": + version: 5.1.1 + resolution: "chai@npm:5.1.1" + dependencies: + assertion-error: "npm:^2.0.1" + check-error: "npm:^2.1.1" + deep-eql: "npm:^5.0.1" + loupe: "npm:^3.1.0" + pathval: "npm:^2.0.0" + checksum: 10c0/e7f00e5881e3d5224f08fe63966ed6566bd9fdde175863c7c16dd5240416de9b34c4a0dd925f4fd64ad56256ca6507d32cf6131c49e1db65c62578eb31d4566c + languageName: node + linkType: hard + "chalk@npm:^2.4.2": version: 2.4.2 resolution: "chalk@npm:2.4.2" @@ -3471,6 +3834,13 @@ __metadata: languageName: node linkType: hard +"check-error@npm:^2.1.1": + version: 2.1.1 + resolution: "check-error@npm:2.1.1" + checksum: 10c0/979f13eccab306cf1785fa10941a590b4e7ea9916ea2a4f8c87f0316fc3eab07eabefb6e587424ef0f88cbcd3805791f172ea739863ca3d7ce2afc54641c7f0e + languageName: node + linkType: hard + "chokidar@npm:>=3.0.0 <4.0.0, chokidar@npm:^3.5.1, chokidar@npm:^3.5.3": version: 3.6.0 resolution: "chokidar@npm:3.6.0" @@ -4017,7 +4387,7 @@ __metadata: languageName: node linkType: hard -"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.4": +"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.4, debug@npm:^4.3.5": version: 4.3.6 resolution: "debug@npm:4.3.6" dependencies: @@ -4057,6 +4427,13 @@ __metadata: languageName: node linkType: hard +"deep-eql@npm:^5.0.1": + version: 5.0.2 + resolution: "deep-eql@npm:5.0.2" + checksum: 10c0/7102cf3b7bb719c6b9c0db2e19bf0aa9318d141581befe8c7ce8ccd39af9eaa4346e5e05adef7f9bd7015da0f13a3a25dcfe306ef79dc8668aedbecb658dd247 + languageName: node + linkType: hard + "deepmerge@npm:^4.2.2": version: 4.3.1 resolution: "deepmerge@npm:4.3.1" @@ -4385,6 +4762,86 @@ __metadata: languageName: node linkType: hard +"esbuild@npm:^0.21.3": + version: 0.21.5 + resolution: "esbuild@npm:0.21.5" + dependencies: + "@esbuild/aix-ppc64": "npm:0.21.5" + "@esbuild/android-arm": "npm:0.21.5" + "@esbuild/android-arm64": "npm:0.21.5" + "@esbuild/android-x64": "npm:0.21.5" + "@esbuild/darwin-arm64": "npm:0.21.5" + "@esbuild/darwin-x64": "npm:0.21.5" + "@esbuild/freebsd-arm64": "npm:0.21.5" + "@esbuild/freebsd-x64": "npm:0.21.5" + "@esbuild/linux-arm": "npm:0.21.5" + "@esbuild/linux-arm64": "npm:0.21.5" + "@esbuild/linux-ia32": "npm:0.21.5" + "@esbuild/linux-loong64": "npm:0.21.5" + "@esbuild/linux-mips64el": "npm:0.21.5" + "@esbuild/linux-ppc64": "npm:0.21.5" + "@esbuild/linux-riscv64": "npm:0.21.5" + "@esbuild/linux-s390x": "npm:0.21.5" + "@esbuild/linux-x64": "npm:0.21.5" + "@esbuild/netbsd-x64": "npm:0.21.5" + "@esbuild/openbsd-x64": "npm:0.21.5" + "@esbuild/sunos-x64": "npm:0.21.5" + "@esbuild/win32-arm64": "npm:0.21.5" + "@esbuild/win32-ia32": "npm:0.21.5" + "@esbuild/win32-x64": "npm:0.21.5" + dependenciesMeta: + "@esbuild/aix-ppc64": + optional: true + "@esbuild/android-arm": + optional: true + "@esbuild/android-arm64": + optional: true + "@esbuild/android-x64": + optional: true + "@esbuild/darwin-arm64": + optional: true + "@esbuild/darwin-x64": + optional: true + "@esbuild/freebsd-arm64": + optional: true + "@esbuild/freebsd-x64": + optional: true + "@esbuild/linux-arm": + optional: true + "@esbuild/linux-arm64": + optional: true + "@esbuild/linux-ia32": + optional: true + "@esbuild/linux-loong64": + optional: true + "@esbuild/linux-mips64el": + optional: true + "@esbuild/linux-ppc64": + optional: true + "@esbuild/linux-riscv64": + optional: true + "@esbuild/linux-s390x": + optional: true + "@esbuild/linux-x64": + optional: true + "@esbuild/netbsd-x64": + optional: true + "@esbuild/openbsd-x64": + optional: true + "@esbuild/sunos-x64": + optional: true + "@esbuild/win32-arm64": + optional: true + "@esbuild/win32-ia32": + optional: true + "@esbuild/win32-x64": + optional: true + bin: + esbuild: bin/esbuild + checksum: 10c0/fa08508adf683c3f399e8a014a6382a6b65542213431e26206c0720e536b31c09b50798747c2a105a4bbba1d9767b8d3615a74c2f7bf1ddf6d836cd11eb672de + languageName: node + linkType: hard + "escalade@npm:^3.1.1, escalade@npm:^3.1.2": version: 3.1.2 resolution: "escalade@npm:3.1.2" @@ -4465,6 +4922,15 @@ __metadata: languageName: node linkType: hard +"estree-walker@npm:^3.0.3": + version: 3.0.3 + resolution: "estree-walker@npm:3.0.3" + dependencies: + "@types/estree": "npm:^1.0.0" + checksum: 10c0/c12e3c2b2642d2bcae7d5aa495c60fa2f299160946535763969a1c83fc74518ffa9c2cd3a8b69ac56aea547df6a8aac25f729a342992ef0bbac5f1c73e78995d + languageName: node + linkType: hard + "esutils@npm:^2.0.2": version: 2.0.3 resolution: "esutils@npm:2.0.3" @@ -4510,6 +4976,23 @@ __metadata: languageName: node linkType: hard +"execa@npm:^8.0.1": + version: 8.0.1 + resolution: "execa@npm:8.0.1" + dependencies: + cross-spawn: "npm:^7.0.3" + get-stream: "npm:^8.0.1" + human-signals: "npm:^5.0.0" + is-stream: "npm:^3.0.0" + merge-stream: "npm:^2.0.0" + npm-run-path: "npm:^5.1.0" + onetime: "npm:^6.0.0" + signal-exit: "npm:^4.1.0" + strip-final-newline: "npm:^3.0.0" + checksum: 10c0/2c52d8775f5bf103ce8eec9c7ab3059909ba350a5164744e9947ed14a53f51687c040a250bda833f906d1283aa8803975b84e6c8f7a7c42f99dc8ef80250d1af + languageName: node + linkType: hard + "exit@npm:^0.1.2": version: 0.1.2 resolution: "exit@npm:0.1.2" @@ -4883,7 +5366,7 @@ __metadata: languageName: node linkType: hard -"fsevents@npm:^2.3.2, fsevents@npm:~2.3.2": +"fsevents@npm:^2.3.2, fsevents@npm:~2.3.2, fsevents@npm:~2.3.3": version: 2.3.3 resolution: "fsevents@npm:2.3.3" dependencies: @@ -4893,7 +5376,7 @@ __metadata: languageName: node linkType: hard -"fsevents@patch:fsevents@npm%3A^2.3.2#optional!builtin, fsevents@patch:fsevents@npm%3A~2.3.2#optional!builtin": +"fsevents@patch:fsevents@npm%3A^2.3.2#optional!builtin, fsevents@patch:fsevents@npm%3A~2.3.2#optional!builtin, fsevents@patch:fsevents@npm%3A~2.3.3#optional!builtin": version: 2.3.3 resolution: "fsevents@patch:fsevents@npm%3A2.3.3#optional!builtin::version=2.3.3&hash=df0bf1" dependencies: @@ -4923,6 +5406,13 @@ __metadata: languageName: node linkType: hard +"get-func-name@npm:^2.0.1": + version: 2.0.2 + resolution: "get-func-name@npm:2.0.2" + checksum: 10c0/89830fd07623fa73429a711b9daecdb304386d237c71268007f788f113505ef1d4cc2d0b9680e072c5082490aec9df5d7758bf5ac6f1c37062855e8e3dc0b9df + languageName: node + linkType: hard + "get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.4": version: 1.2.4 resolution: "get-intrinsic@npm:1.2.4" @@ -4950,6 +5440,13 @@ __metadata: languageName: node linkType: hard +"get-stream@npm:^8.0.1": + version: 8.0.1 + resolution: "get-stream@npm:8.0.1" + checksum: 10c0/5c2181e98202b9dae0bb4a849979291043e5892eb40312b47f0c22b9414fc9b28a3b6063d2375705eb24abc41ecf97894d9a51f64ff021511b504477b27b4290 + languageName: node + linkType: hard + "glob-parent@npm:^5.1.2, glob-parent@npm:~5.1.2": version: 5.1.2 resolution: "glob-parent@npm:5.1.2" @@ -5268,6 +5765,13 @@ __metadata: languageName: node linkType: hard +"human-signals@npm:^5.0.0": + version: 5.0.0 + resolution: "human-signals@npm:5.0.0" + checksum: 10c0/5a9359073fe17a8b58e5a085e9a39a950366d9f00217c4ff5878bd312e09d80f460536ea6a3f260b5943a01fe55c158d1cea3fc7bee3d0520aeef04f6d915c82 + languageName: node + linkType: hard + "iconv-lite@npm:0.4.24": version: 0.4.24 resolution: "iconv-lite@npm:0.4.24" @@ -5524,6 +6028,13 @@ __metadata: languageName: node linkType: hard +"is-stream@npm:^3.0.0": + version: 3.0.0 + resolution: "is-stream@npm:3.0.0" + checksum: 10c0/eb2f7127af02ee9aa2a0237b730e47ac2de0d4e76a4a905a50a11557f2339df5765eaea4ceb8029f1efa978586abe776908720bfcb1900c20c6ec5145f6f29d8 + languageName: node + linkType: hard + "is-what@npm:^3.14.1": version: 3.14.1 resolution: "is-what@npm:3.14.1" @@ -6385,6 +6896,15 @@ __metadata: languageName: node linkType: hard +"loupe@npm:^3.1.0, loupe@npm:^3.1.1": + version: 3.1.1 + resolution: "loupe@npm:3.1.1" + dependencies: + get-func-name: "npm:^2.0.1" + checksum: 10c0/99f88badc47e894016df0c403de846fedfea61154aadabbf776c8428dd59e8d8378007135d385d737de32ae47980af07d22ba7bec5ef7beebd721de9baa0a0af + languageName: node + linkType: hard + "lru-cache@npm:^10.0.1, lru-cache@npm:^10.2.0": version: 10.4.3 resolution: "lru-cache@npm:10.4.3" @@ -6410,6 +6930,15 @@ __metadata: languageName: node linkType: hard +"magic-string@npm:^0.30.10": + version: 0.30.11 + resolution: "magic-string@npm:0.30.11" + dependencies: + "@jridgewell/sourcemap-codec": "npm:^1.5.0" + checksum: 10c0/b9eb370773d0bd90ca11a848753409d8e5309b1ad56d2a1aa49d6649da710a6d2fe7237ad1a643c5a5d3800de2b9946ed9690acdfc00e6cc1aeafff3ab1752c4 + languageName: node + linkType: hard + "make-dir@npm:^2.1.0": version: 2.1.0 resolution: "make-dir@npm:2.1.0" @@ -6565,6 +7094,13 @@ __metadata: languageName: node linkType: hard +"mimic-fn@npm:^4.0.0": + version: 4.0.0 + resolution: "mimic-fn@npm:4.0.0" + checksum: 10c0/de9cc32be9996fd941e512248338e43407f63f6d497abe8441fa33447d922e927de54d4cc3c1a3c6d652857acd770389d5a3823f311a744132760ce2be15ccbf + languageName: node + linkType: hard + "mini-css-extract-plugin@npm:~2.4.7": version: 2.4.7 resolution: "mini-css-extract-plugin@npm:2.4.7" @@ -6912,6 +7448,15 @@ __metadata: languageName: node linkType: hard +"npm-run-path@npm:^5.1.0": + version: 5.3.0 + resolution: "npm-run-path@npm:5.3.0" + dependencies: + path-key: "npm:^4.0.0" + checksum: 10c0/124df74820c40c2eb9a8612a254ea1d557ddfab1581c3e751f825e3e366d9f00b0d76a3c94ecd8398e7f3eee193018622677e95816e8491f0797b21e30b2deba + languageName: node + linkType: hard + "nth-check@npm:^2.0.1": version: 2.1.1 resolution: "nth-check@npm:2.1.1" @@ -7056,6 +7601,15 @@ __metadata: languageName: node linkType: hard +"onetime@npm:^6.0.0": + version: 6.0.0 + resolution: "onetime@npm:6.0.0" + dependencies: + mimic-fn: "npm:^4.0.0" + checksum: 10c0/4eef7c6abfef697dd4479345a4100c382d73c149d2d56170a54a07418c50816937ad09500e1ed1e79d235989d073a9bade8557122aee24f0576ecde0f392bb6c + languageName: node + linkType: hard + "open@npm:^8.0.9, open@npm:^8.4.0": version: 8.4.2 resolution: "open@npm:8.4.2" @@ -7215,6 +7769,13 @@ __metadata: languageName: node linkType: hard +"path-key@npm:^4.0.0": + version: 4.0.0 + resolution: "path-key@npm:4.0.0" + checksum: 10c0/794efeef32863a65ac312f3c0b0a99f921f3e827ff63afa5cb09a377e202c262b671f7b3832a4e64731003fa94af0263713962d317b9887bd1e0c48a342efba3 + languageName: node + linkType: hard + "path-parse@npm:^1.0.7": version: 1.0.7 resolution: "path-parse@npm:1.0.7" @@ -7246,6 +7807,20 @@ __metadata: languageName: node linkType: hard +"pathe@npm:^1.1.2": + version: 1.1.2 + resolution: "pathe@npm:1.1.2" + checksum: 10c0/64ee0a4e587fb0f208d9777a6c56e4f9050039268faaaaecd50e959ef01bf847b7872785c36483fa5cdcdbdfdb31fef2ff222684d4fc21c330ab60395c681897 + languageName: node + linkType: hard + +"pathval@npm:^2.0.0": + version: 2.0.0 + resolution: "pathval@npm:2.0.0" + checksum: 10c0/602e4ee347fba8a599115af2ccd8179836a63c925c23e04bd056d0674a64b39e3a081b643cc7bc0b84390517df2d800a46fcc5598d42c155fe4977095c2f77c5 + languageName: node + linkType: hard + "picocolors@npm:^1.0.0, picocolors@npm:^1.0.1": version: 1.0.1 resolution: "picocolors@npm:1.0.1" @@ -7692,7 +8267,7 @@ __metadata: languageName: node linkType: hard -"postcss@npm:^8.3.5, postcss@npm:^8.4.14, postcss@npm:^8.4.33": +"postcss@npm:^8.3.5, postcss@npm:^8.4.14, postcss@npm:^8.4.33, postcss@npm:^8.4.39": version: 8.4.41 resolution: "postcss@npm:8.4.41" dependencies: @@ -8073,6 +8648,69 @@ __metadata: languageName: node linkType: hard +"rollup@npm:^4.13.0": + version: 4.20.0 + resolution: "rollup@npm:4.20.0" + dependencies: + "@rollup/rollup-android-arm-eabi": "npm:4.20.0" + "@rollup/rollup-android-arm64": "npm:4.20.0" + "@rollup/rollup-darwin-arm64": "npm:4.20.0" + "@rollup/rollup-darwin-x64": "npm:4.20.0" + "@rollup/rollup-linux-arm-gnueabihf": "npm:4.20.0" + "@rollup/rollup-linux-arm-musleabihf": "npm:4.20.0" + "@rollup/rollup-linux-arm64-gnu": "npm:4.20.0" + "@rollup/rollup-linux-arm64-musl": "npm:4.20.0" + "@rollup/rollup-linux-powerpc64le-gnu": "npm:4.20.0" + "@rollup/rollup-linux-riscv64-gnu": "npm:4.20.0" + "@rollup/rollup-linux-s390x-gnu": "npm:4.20.0" + "@rollup/rollup-linux-x64-gnu": "npm:4.20.0" + "@rollup/rollup-linux-x64-musl": "npm:4.20.0" + "@rollup/rollup-win32-arm64-msvc": "npm:4.20.0" + "@rollup/rollup-win32-ia32-msvc": "npm:4.20.0" + "@rollup/rollup-win32-x64-msvc": "npm:4.20.0" + "@types/estree": "npm:1.0.5" + fsevents: "npm:~2.3.2" + dependenciesMeta: + "@rollup/rollup-android-arm-eabi": + optional: true + "@rollup/rollup-android-arm64": + optional: true + "@rollup/rollup-darwin-arm64": + optional: true + "@rollup/rollup-darwin-x64": + optional: true + "@rollup/rollup-linux-arm-gnueabihf": + optional: true + "@rollup/rollup-linux-arm-musleabihf": + optional: true + "@rollup/rollup-linux-arm64-gnu": + optional: true + "@rollup/rollup-linux-arm64-musl": + optional: true + "@rollup/rollup-linux-powerpc64le-gnu": + optional: true + "@rollup/rollup-linux-riscv64-gnu": + optional: true + "@rollup/rollup-linux-s390x-gnu": + optional: true + "@rollup/rollup-linux-x64-gnu": + optional: true + "@rollup/rollup-linux-x64-musl": + optional: true + "@rollup/rollup-win32-arm64-msvc": + optional: true + "@rollup/rollup-win32-ia32-msvc": + optional: true + "@rollup/rollup-win32-x64-msvc": + optional: true + fsevents: + optional: true + bin: + rollup: dist/bin/rollup + checksum: 10c0/9b23bf0e3380e64573a5f68a55274d5c7969036e55c19aab9fb4deea2e938d76769db70f3c95ee3783c24af152bea1772ad73f9e3625b6ffd4e600a788fe97ea + languageName: node + linkType: hard + "root-workspace-0b6124@workspace:.": version: 0.0.0-use.local resolution: "root-workspace-0b6124@workspace:." @@ -8096,6 +8734,7 @@ __metadata: typescript-four-seven: "npm:typescript@4.7.4" typescript-three: "npm:typescript@3.6.5" typescript-transform-paths: "portal:../" + vitest: "npm:^2.0.5" languageName: unknown linkType: soft @@ -8401,6 +9040,13 @@ __metadata: languageName: node linkType: hard +"siginfo@npm:^2.0.0": + version: 2.0.0 + resolution: "siginfo@npm:2.0.0" + checksum: 10c0/3def8f8e516fbb34cb6ae415b07ccc5d9c018d85b4b8611e3dc6f8be6d1899f693a4382913c9ed51a06babb5201639d76453ab297d1c54a456544acf5c892e34 + languageName: node + linkType: hard + "signal-exit@npm:^3.0.2, signal-exit@npm:^3.0.3, signal-exit@npm:^3.0.7": version: 3.0.7 resolution: "signal-exit@npm:3.0.7" @@ -8408,7 +9054,7 @@ __metadata: languageName: node linkType: hard -"signal-exit@npm:^4.0.1": +"signal-exit@npm:^4.0.1, signal-exit@npm:^4.1.0": version: 4.1.0 resolution: "signal-exit@npm:4.1.0" checksum: 10c0/41602dce540e46d599edba9d9860193398d135f7ff72cab629db5171516cfae628d21e7bfccde1bbfdf11c48726bc2a6d1a8fb8701125852fbfda7cf19c6aa83 @@ -8615,6 +9261,13 @@ __metadata: languageName: node linkType: hard +"stackback@npm:0.0.2": + version: 0.0.2 + resolution: "stackback@npm:0.0.2" + checksum: 10c0/89a1416668f950236dd5ac9f9a6b2588e1b9b62b1b6ad8dff1bfc5d1a15dbf0aafc9b52d2226d00c28dffff212da464eaeebfc6b7578b9d180cef3e3782c5983 + languageName: node + linkType: hard + "statuses@npm:2.0.1": version: 2.0.1 resolution: "statuses@npm:2.0.1" @@ -8629,6 +9282,13 @@ __metadata: languageName: node linkType: hard +"std-env@npm:^3.7.0": + version: 3.7.0 + resolution: "std-env@npm:3.7.0" + checksum: 10c0/60edf2d130a4feb7002974af3d5a5f3343558d1ccf8d9b9934d225c638606884db4a20d2fe6440a09605bca282af6b042ae8070a10490c0800d69e82e478f41e + languageName: node + linkType: hard + "string-length@npm:^4.0.1": version: 4.0.2 resolution: "string-length@npm:4.0.2" @@ -8718,6 +9378,13 @@ __metadata: languageName: node linkType: hard +"strip-final-newline@npm:^3.0.0": + version: 3.0.0 + resolution: "strip-final-newline@npm:3.0.0" + checksum: 10c0/a771a17901427bac6293fd416db7577e2bc1c34a19d38351e9d5478c3c415f523f391003b42ed475f27e33a78233035df183525395f731d3bfb8cdcbd4da08ce + languageName: node + linkType: hard + "strip-json-comments@npm:^3.1.1": version: 3.1.1 resolution: "strip-json-comments@npm:3.1.1" @@ -8936,6 +9603,34 @@ __metadata: languageName: node linkType: hard +"tinybench@npm:^2.8.0": + version: 2.9.0 + resolution: "tinybench@npm:2.9.0" + checksum: 10c0/c3500b0f60d2eb8db65250afe750b66d51623057ee88720b7f064894a6cb7eb93360ca824a60a31ab16dab30c7b1f06efe0795b352e37914a9d4bad86386a20c + languageName: node + linkType: hard + +"tinypool@npm:^1.0.0": + version: 1.0.0 + resolution: "tinypool@npm:1.0.0" + checksum: 10c0/71b20b9c54366393831c286a0772380c20f8cad9546d724c484edb47aea3228f274c58e98cf51d28c40869b39f5273209ef3ea94a9d2a23f8b292f4731cd3e4e + languageName: node + linkType: hard + +"tinyrainbow@npm:^1.2.0": + version: 1.2.0 + resolution: "tinyrainbow@npm:1.2.0" + checksum: 10c0/7f78a4b997e5ba0f5ecb75e7ed786f30bab9063716e7dff24dd84013fb338802e43d176cb21ed12480561f5649a82184cf31efb296601a29d38145b1cdb4c192 + languageName: node + linkType: hard + +"tinyspy@npm:^3.0.0": + version: 3.0.0 + resolution: "tinyspy@npm:3.0.0" + checksum: 10c0/eb0dec264aa5370efd3d29743825eb115ed7f1ef8a72a431e9a75d5c9e7d67e99d04b0d61d86b8cd70c79ec27863f241ad0317bc453f78762e0cbd76d2c332d0 + languageName: node + linkType: hard + "tmp@npm:~0.2.1": version: 0.2.3 resolution: "tmp@npm:0.2.3" @@ -9438,6 +10133,110 @@ __metadata: languageName: node linkType: hard +"vite-node@npm:2.0.5": + version: 2.0.5 + resolution: "vite-node@npm:2.0.5" + dependencies: + cac: "npm:^6.7.14" + debug: "npm:^4.3.5" + pathe: "npm:^1.1.2" + tinyrainbow: "npm:^1.2.0" + vite: "npm:^5.0.0" + bin: + vite-node: vite-node.mjs + checksum: 10c0/affcc58ae8d45bce3e8bc3b5767acd57c24441634e2cd967cf97f4e5ed2bcead1714b60150cdf7ee153ebad47659c5cd419883207e1a95b69790331e3243749f + languageName: node + linkType: hard + +"vite@npm:^5.0.0": + version: 5.3.5 + resolution: "vite@npm:5.3.5" + dependencies: + esbuild: "npm:^0.21.3" + fsevents: "npm:~2.3.3" + postcss: "npm:^8.4.39" + rollup: "npm:^4.13.0" + peerDependencies: + "@types/node": ^18.0.0 || >=20.0.0 + less: "*" + lightningcss: ^1.21.0 + sass: "*" + stylus: "*" + sugarss: "*" + terser: ^5.4.0 + dependenciesMeta: + fsevents: + optional: true + peerDependenciesMeta: + "@types/node": + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + bin: + vite: bin/vite.js + checksum: 10c0/795c7e0dbc94b96c4a0aff0d5d4b349dd28ad8b7b70979c1010f96b4d83f7d6c1700ebd6fed91de2e021b0a3689b9abc2d8017f6dfa8c9a6ca5c7af637d6afc6 + languageName: node + linkType: hard + +"vitest@npm:^2.0.5": + version: 2.0.5 + resolution: "vitest@npm:2.0.5" + dependencies: + "@ampproject/remapping": "npm:^2.3.0" + "@vitest/expect": "npm:2.0.5" + "@vitest/pretty-format": "npm:^2.0.5" + "@vitest/runner": "npm:2.0.5" + "@vitest/snapshot": "npm:2.0.5" + "@vitest/spy": "npm:2.0.5" + "@vitest/utils": "npm:2.0.5" + chai: "npm:^5.1.1" + debug: "npm:^4.3.5" + execa: "npm:^8.0.1" + magic-string: "npm:^0.30.10" + pathe: "npm:^1.1.2" + std-env: "npm:^3.7.0" + tinybench: "npm:^2.8.0" + tinypool: "npm:^1.0.0" + tinyrainbow: "npm:^1.2.0" + vite: "npm:^5.0.0" + vite-node: "npm:2.0.5" + why-is-node-running: "npm:^2.3.0" + peerDependencies: + "@edge-runtime/vm": "*" + "@types/node": ^18.0.0 || >=20.0.0 + "@vitest/browser": 2.0.5 + "@vitest/ui": 2.0.5 + happy-dom: "*" + jsdom: "*" + peerDependenciesMeta: + "@edge-runtime/vm": + optional: true + "@types/node": + optional: true + "@vitest/browser": + optional: true + "@vitest/ui": + optional: true + happy-dom: + optional: true + jsdom: + optional: true + bin: + vitest: vitest.mjs + checksum: 10c0/b4e6cca00816bf967a8589111ded72faa12f92f94ccdd0dcd0698ffcfdfc52ec662753f66b387549c600ac699b993fd952efbd99dc57fcf4d1c69a2f1022b259 + languageName: node + linkType: hard + "walker@npm:^1.0.8": version: 1.0.8 resolution: "walker@npm:1.0.8" @@ -9645,6 +10444,18 @@ __metadata: languageName: node linkType: hard +"why-is-node-running@npm:^2.3.0": + version: 2.3.0 + resolution: "why-is-node-running@npm:2.3.0" + dependencies: + siginfo: "npm:^2.0.0" + stackback: "npm:0.0.2" + bin: + why-is-node-running: cli.js + checksum: 10c0/1cde0b01b827d2cf4cb11db962f3958b9175d5d9e7ac7361d1a7b0e2dc6069a263e69118bd974c4f6d0a890ef4eedfe34cf3d5167ec14203dbc9a18620537054 + languageName: node + linkType: hard + "wrap-ansi-cjs@npm:wrap-ansi@^7.0.0, wrap-ansi@npm:^7.0.0": version: 7.0.0 resolution: "wrap-ansi@npm:7.0.0" From b5339e0692d3547487acab4a760540be7daf81b8 Mon Sep 17 00:00:00 2001 From: Daniel Perez Alvarez Date: Wed, 7 Aug 2024 23:57:24 -0400 Subject: [PATCH 02/17] update ci --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 88a11e83..a1c977bc 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -45,6 +45,6 @@ jobs: - name: Test working-directory: test - run: yarn test --runInBand=false --maxWorkers=2 --workerIdleMemoryLimit=2GB # https://github.com/facebook/jest/issues/11956 + run: yarn test env: NODE_OPTIONS: --max_old_space_size=4096 From 60951602dd800c2c46e5f951a5a9c2387178edd8 Mon Sep 17 00:00:00 2001 From: Daniel Perez Alvarez Date: Thu, 8 Aug 2024 13:26:12 -0400 Subject: [PATCH 03/17] update tsconfig to include vitest/globals --- test/tsconfig.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/tsconfig.json b/test/tsconfig.json index 527b4629..5e401d11 100755 --- a/test/tsconfig.json +++ b/test/tsconfig.json @@ -3,7 +3,7 @@ "include": ["tests", "utils"], "compilerOptions": { - "types": ["jest", "node"], + "types": ["vitest/globals", "node"], "noEmit": true, "strict": true, "esModuleInterop": true From aaba31a40ea30a2b3e829912be88542d100fc641 Mon Sep 17 00:00:00 2001 From: Daniel Perez Alvarez Date: Thu, 8 Aug 2024 13:27:01 -0400 Subject: [PATCH 04/17] update tests dontMock -> doUnmock --- test/tests/extras.test.ts | 12 ++++-------- test/tests/register.test.ts | 16 ++++++---------- 2 files changed, 10 insertions(+), 18 deletions(-) diff --git a/test/tests/extras.test.ts b/test/tests/extras.test.ts index e9ec781a..868a38d5 100755 --- a/test/tests/extras.test.ts +++ b/test/tests/extras.test.ts @@ -18,19 +18,15 @@ describe(`Extra Tests`, () => { describe(`Built Tests`, () => { // see: https://github.com/LeDDGroup/typescript-transform-paths/issues/130 test(`Transformer works without ts-node being present`, () => { - vi.doMock( - "ts-node", - () => { - throw new ModuleNotFoundError("ts-node"); - }, - { virtual: true }, - ); + vi.doMock("ts-node", () => { + throw new ModuleNotFoundError("ts-node"); + }); try { const program = createTsProgram({ tsInstance: ts, tsConfigFile }, config.builtTransformerPath); const res = getEmitResultFromProgram(program); expect(res[indexFile].js).toMatch(`var _identifier_1 = require("./id")`); } finally { - vi.dontMock("ts-node"); + vi.doUnmock("ts-node"); } }); diff --git a/test/tests/register.test.ts b/test/tests/register.test.ts index a76f7243..6789ca0a 100755 --- a/test/tests/register.test.ts +++ b/test/tests/register.test.ts @@ -91,21 +91,17 @@ describe(`Register script`, () => { describe(`Register`, () => { test(`Throws without ts-node`, () => { - vi.doMock( - "ts-node", - () => { - throw new ModuleNotFoundError("ts-node"); - }, - { virtual: true }, - ); + vi.doMock("ts-node", () => { + throw new ModuleNotFoundError("ts-node"); + }); expect(() => register()).toThrow(`Cannot resolve ts-node`); - vi.dontMock("ts-node"); + vi.doUnmock("ts-node"); }); test(`Throws if can't register ts-node`, () => { - vi.doMock("ts-node", () => ({ register: () => {} }), { virtual: true }); + vi.doMock("ts-node", () => ({ register: () => {} })); expect(() => register()).toThrow(`Could not register ts-node instance!`); - vi.dontMock("ts-node"); + vi.doUnmock("ts-node"); }); test(`No transformers in tsConfig exits quietly`, () => { From a37e80e61be88dcb0ae1268486e9f3acd019945a Mon Sep 17 00:00:00 2001 From: Daniel Perez Alvarez Date: Tue, 3 Dec 2024 02:49:35 -0500 Subject: [PATCH 05/17] update vitest --- test/package.json | 2 +- test/yarn.lock | 340 ++++++++++++++++++---------------------------- 2 files changed, 133 insertions(+), 209 deletions(-) diff --git a/test/package.json b/test/package.json index 995fe1ef..469eb8a9 100644 --- a/test/package.json +++ b/test/package.json @@ -27,7 +27,7 @@ "typescript-5.5": "npm:typescript@5.5.4", "typescript-5.6": "npm:typescript@5.6.3", "typescript-transform-paths": "portal:../", - "vitest": "^2.0.5" + "vitest": "^2.1.8" }, "workspaces": [ "projects/*" diff --git a/test/yarn.lock b/test/yarn.lock index 6d787a43..d4a95e49 100644 --- a/test/yarn.lock +++ b/test/yarn.lock @@ -5,7 +5,7 @@ __metadata: version: 8 cacheKey: 10c0 -"@ampproject/remapping@npm:^2.2.0, @ampproject/remapping@npm:^2.3.0": +"@ampproject/remapping@npm:^2.2.0": version: 2.3.0 resolution: "@ampproject/remapping@npm:2.3.0" dependencies: @@ -187,14 +187,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.8.0, @babel/helper-plugin-utils@npm:^7.8.3": - version: 7.22.5 - resolution: "@babel/helper-plugin-utils@npm:7.22.5" - checksum: 10c0/d2c4bfe2fa91058bcdee4f4e57a3f4933aed7af843acfd169cd6179fab8d13c1d636474ecabb2af107dc77462c7e893199aa26632bac1c6d7e025a17cbb9d20d - languageName: node - linkType: hard - -"@babel/helper-plugin-utils@npm:^7.24.7, @babel/helper-plugin-utils@npm:^7.24.8": +"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.24.7, @babel/helper-plugin-utils@npm:^7.24.8, @babel/helper-plugin-utils@npm:^7.8.0, @babel/helper-plugin-utils@npm:^7.8.3": version: 7.24.8 resolution: "@babel/helper-plugin-utils@npm:7.24.8" checksum: 10c0/0376037f94a3bfe6b820a39f81220ac04f243eaee7193774b983e956c1750883ff236b30785795abbcda43fac3ece74750566830c2daa4d6e3870bb0dff34c2d @@ -2818,66 +2811,84 @@ __metadata: languageName: node linkType: hard -"@vitest/expect@npm:2.0.5": - version: 2.0.5 - resolution: "@vitest/expect@npm:2.0.5" +"@vitest/expect@npm:2.1.8": + version: 2.1.8 + resolution: "@vitest/expect@npm:2.1.8" dependencies: - "@vitest/spy": "npm:2.0.5" - "@vitest/utils": "npm:2.0.5" - chai: "npm:^5.1.1" + "@vitest/spy": "npm:2.1.8" + "@vitest/utils": "npm:2.1.8" + chai: "npm:^5.1.2" tinyrainbow: "npm:^1.2.0" - checksum: 10c0/08cb1b0f106d16a5b60db733e3d436fa5eefc68571488eb570dfe4f599f214ab52e4342273b03dbe12331cc6c0cdc325ac6c94f651ad254cd62f3aa0e3d185aa + checksum: 10c0/6fbf4abc2360efe4d3671d3425f8bb6012fe2dd932a88720d8b793030b766ba260494822c721d3fc497afe52373515c7e150635a95c25f6e1b567f86155c5408 languageName: node linkType: hard -"@vitest/pretty-format@npm:2.0.5, @vitest/pretty-format@npm:^2.0.5": - version: 2.0.5 - resolution: "@vitest/pretty-format@npm:2.0.5" +"@vitest/mocker@npm:2.1.8": + version: 2.1.8 + resolution: "@vitest/mocker@npm:2.1.8" + dependencies: + "@vitest/spy": "npm:2.1.8" + estree-walker: "npm:^3.0.3" + magic-string: "npm:^0.30.12" + peerDependencies: + msw: ^2.4.9 + vite: ^5.0.0 + peerDependenciesMeta: + msw: + optional: true + vite: + optional: true + checksum: 10c0/b4113ed8a57c0f60101d02e1b1769357a346ecd55ded499eab384d52106fd4b12d51e9aaa6db98f47de0d56662477be0ed8d46d6dfa84c235f9e1b234709814e + languageName: node + linkType: hard + +"@vitest/pretty-format@npm:2.1.8, @vitest/pretty-format@npm:^2.1.8": + version: 2.1.8 + resolution: "@vitest/pretty-format@npm:2.1.8" dependencies: tinyrainbow: "npm:^1.2.0" - checksum: 10c0/236c0798c5170a0b5ad5d4bd06118533738e820b4dd30079d8fbcb15baee949d41c60f42a9f769906c4a5ce366d7ef11279546070646c0efc03128c220c31f37 + checksum: 10c0/1dc5c9b1c7c7e78e46a2a16033b6b20be05958bbebc5a5b78f29e32718c80252034804fccd23f34db6b3583239db47e68fc5a8e41942c54b8047cc3b4133a052 languageName: node linkType: hard -"@vitest/runner@npm:2.0.5": - version: 2.0.5 - resolution: "@vitest/runner@npm:2.0.5" +"@vitest/runner@npm:2.1.8": + version: 2.1.8 + resolution: "@vitest/runner@npm:2.1.8" dependencies: - "@vitest/utils": "npm:2.0.5" + "@vitest/utils": "npm:2.1.8" pathe: "npm:^1.1.2" - checksum: 10c0/d0ed3302a7e015bf44b7c0df9d8f7da163659e082d86f9406944b5a31a61ab9ddc1de530e06176d1f4ef0bde994b44bff4c7dab62aacdc235c8fc04b98e4a72a + checksum: 10c0/d0826a71494adeafc8c6478257f584d11655145c83e2d8f94c17301d7059c7463ad768a69379e394c50838a7435abcc9255a6b7d8894f5ee06b153e314683a75 languageName: node linkType: hard -"@vitest/snapshot@npm:2.0.5": - version: 2.0.5 - resolution: "@vitest/snapshot@npm:2.0.5" +"@vitest/snapshot@npm:2.1.8": + version: 2.1.8 + resolution: "@vitest/snapshot@npm:2.1.8" dependencies: - "@vitest/pretty-format": "npm:2.0.5" - magic-string: "npm:^0.30.10" + "@vitest/pretty-format": "npm:2.1.8" + magic-string: "npm:^0.30.12" pathe: "npm:^1.1.2" - checksum: 10c0/7bf38474248f5ae0aac6afad511785d2b7a023ac5158803c2868fd172b5b9c1a569fb1dd64a09a49e43fd342cab71ea485ada89b7f08d37b1622a5a0ac00271d + checksum: 10c0/8d7a77a52e128630ea737ee0a0fe746d1d325cac5848326861dbf042844da4d5c1a5145539ae0ed1a3f0b0363506e98d86f2679fadf114ec4b987f1eb616867b languageName: node linkType: hard -"@vitest/spy@npm:2.0.5": - version: 2.0.5 - resolution: "@vitest/spy@npm:2.0.5" +"@vitest/spy@npm:2.1.8": + version: 2.1.8 + resolution: "@vitest/spy@npm:2.1.8" dependencies: - tinyspy: "npm:^3.0.0" - checksum: 10c0/70634c21921eb271b54d2986c21d7ab6896a31c0f4f1d266940c9bafb8ac36237846d6736638cbf18b958bd98e5261b158a6944352742accfde50b7818ff655e + tinyspy: "npm:^3.0.2" + checksum: 10c0/9740f10772ede004ea7f9ffb8a6c3011341d75d9d7f2d4d181b123a701c4691e942f38cf1700684a3bb5eea3c78addf753fd8cdf78c51d8eadc3bada6fadf8f2 languageName: node linkType: hard -"@vitest/utils@npm:2.0.5": - version: 2.0.5 - resolution: "@vitest/utils@npm:2.0.5" +"@vitest/utils@npm:2.1.8": + version: 2.1.8 + resolution: "@vitest/utils@npm:2.1.8" dependencies: - "@vitest/pretty-format": "npm:2.0.5" - estree-walker: "npm:^3.0.3" - loupe: "npm:^3.1.1" + "@vitest/pretty-format": "npm:2.1.8" + loupe: "npm:^3.1.2" tinyrainbow: "npm:^1.2.0" - checksum: 10c0/0d1de748298f07a50281e1ba058b05dcd58da3280c14e6f016265e950bd79adab6b97822de8f0ea82d3070f585654801a9b1bcf26db4372e51cf7746bf86d73b + checksum: 10c0/d4a29ecd8f6c24c790e4c009f313a044d89e664e331bc9c3cfb57fe1380fb1d2999706dbbfc291f067d6c489602e76d00435309fbc906197c0d01f831ca17d64 languageName: node linkType: hard @@ -3116,7 +3127,7 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^8.11.0": +"acorn@npm:^8.11.0, acorn@npm:^8.4.1, acorn@npm:^8.7.1, acorn@npm:^8.8.2": version: 8.12.1 resolution: "acorn@npm:8.12.1" bin: @@ -3125,15 +3136,6 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^8.4.1, acorn@npm:^8.7.1, acorn@npm:^8.8.2": - version: 8.11.3 - resolution: "acorn@npm:8.11.3" - bin: - acorn: bin/acorn - checksum: 10c0/3ff155f8812e4a746fee8ecff1f227d527c4c45655bb1fad6347c3cb58e46190598217551b1500f18542d2bbe5c87120cb6927f5a074a59166fbdd9468f0a299 - languageName: node - linkType: hard - "agent-base@npm:^7.0.2, agent-base@npm:^7.1.0, agent-base@npm:^7.1.1": version: 7.1.1 resolution: "agent-base@npm:7.1.1" @@ -3800,16 +3802,16 @@ __metadata: languageName: node linkType: hard -"chai@npm:^5.1.1": - version: 5.1.1 - resolution: "chai@npm:5.1.1" +"chai@npm:^5.1.2": + version: 5.1.2 + resolution: "chai@npm:5.1.2" dependencies: assertion-error: "npm:^2.0.1" check-error: "npm:^2.1.1" deep-eql: "npm:^5.0.1" loupe: "npm:^3.1.0" pathval: "npm:^2.0.0" - checksum: 10c0/e7f00e5881e3d5224f08fe63966ed6566bd9fdde175863c7c16dd5240416de9b34c4a0dd925f4fd64ad56256ca6507d32cf6131c49e1db65c62578eb31d4566c + checksum: 10c0/6c04ff8495b6e535df9c1b062b6b094828454e9a3c9493393e55b2f4dbff7aa2a29a4645133cad160fb00a16196c4dc03dc9bb37e1f4ba9df3b5f50d7533a736 languageName: node linkType: hard @@ -4394,15 +4396,15 @@ __metadata: languageName: node linkType: hard -"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.4, debug@npm:^4.3.5": - version: 4.3.6 - resolution: "debug@npm:4.3.6" +"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.4, debug@npm:^4.3.7": + version: 4.3.7 + resolution: "debug@npm:4.3.7" dependencies: - ms: "npm:2.1.2" + ms: "npm:^2.1.3" peerDependenciesMeta: supports-color: optional: true - checksum: 10c0/3293416bff072389c101697d4611c402a6bacd1900ac20c0492f61a9cdd6b3b29750fc7f5e299f8058469ef60ff8fb79b86395a30374fbd2490113c1c7112285 + checksum: 10c0/1471db19c3b06d485a622d62f65947a19a23fbd0dd73f7fd3eafb697eec5360cde447fb075919987899b1a2096e85d35d4eb5a4de09a57600ac9cf7e6c8e768b languageName: node linkType: hard @@ -4762,7 +4764,7 @@ __metadata: languageName: node linkType: hard -"es-module-lexer@npm:^1.2.1": +"es-module-lexer@npm:^1.2.1, es-module-lexer@npm:^1.5.4": version: 1.5.4 resolution: "es-module-lexer@npm:1.5.4" checksum: 10c0/300a469488c2f22081df1e4c8398c78db92358496e639b0df7f89ac6455462aaf5d8893939087c1a1cbcbf20eed4610c70e0bcb8f3e4b0d80a5d2611c539408c @@ -4983,23 +4985,6 @@ __metadata: languageName: node linkType: hard -"execa@npm:^8.0.1": - version: 8.0.1 - resolution: "execa@npm:8.0.1" - dependencies: - cross-spawn: "npm:^7.0.3" - get-stream: "npm:^8.0.1" - human-signals: "npm:^5.0.0" - is-stream: "npm:^3.0.0" - merge-stream: "npm:^2.0.0" - npm-run-path: "npm:^5.1.0" - onetime: "npm:^6.0.0" - signal-exit: "npm:^4.1.0" - strip-final-newline: "npm:^3.0.0" - checksum: 10c0/2c52d8775f5bf103ce8eec9c7ab3059909ba350a5164744e9947ed14a53f51687c040a250bda833f906d1283aa8803975b84e6c8f7a7c42f99dc8ef80250d1af - languageName: node - linkType: hard - "exit@npm:^0.1.2": version: 0.1.2 resolution: "exit@npm:0.1.2" @@ -5007,6 +4992,13 @@ __metadata: languageName: node linkType: hard +"expect-type@npm:^1.1.0": + version: 1.1.0 + resolution: "expect-type@npm:1.1.0" + checksum: 10c0/5af0febbe8fe18da05a6d51e3677adafd75213512285408156b368ca471252565d5ca6e59e4bddab25121f3cfcbbebc6a5489f8cc9db131cc29e69dcdcc7ae15 + languageName: node + linkType: hard + "expect@npm:^29.0.0, expect@npm:^29.7.0": version: 29.7.0 resolution: "expect@npm:29.7.0" @@ -5413,13 +5405,6 @@ __metadata: languageName: node linkType: hard -"get-func-name@npm:^2.0.1": - version: 2.0.2 - resolution: "get-func-name@npm:2.0.2" - checksum: 10c0/89830fd07623fa73429a711b9daecdb304386d237c71268007f788f113505ef1d4cc2d0b9680e072c5082490aec9df5d7758bf5ac6f1c37062855e8e3dc0b9df - languageName: node - linkType: hard - "get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.4": version: 1.2.4 resolution: "get-intrinsic@npm:1.2.4" @@ -5447,13 +5432,6 @@ __metadata: languageName: node linkType: hard -"get-stream@npm:^8.0.1": - version: 8.0.1 - resolution: "get-stream@npm:8.0.1" - checksum: 10c0/5c2181e98202b9dae0bb4a849979291043e5892eb40312b47f0c22b9414fc9b28a3b6063d2375705eb24abc41ecf97894d9a51f64ff021511b504477b27b4290 - languageName: node - linkType: hard - "glob-parent@npm:^5.1.2, glob-parent@npm:~5.1.2": version: 5.1.2 resolution: "glob-parent@npm:5.1.2" @@ -5772,13 +5750,6 @@ __metadata: languageName: node linkType: hard -"human-signals@npm:^5.0.0": - version: 5.0.0 - resolution: "human-signals@npm:5.0.0" - checksum: 10c0/5a9359073fe17a8b58e5a085e9a39a950366d9f00217c4ff5878bd312e09d80f460536ea6a3f260b5943a01fe55c158d1cea3fc7bee3d0520aeef04f6d915c82 - languageName: node - linkType: hard - "iconv-lite@npm:0.4.24": version: 0.4.24 resolution: "iconv-lite@npm:0.4.24" @@ -6035,13 +6006,6 @@ __metadata: languageName: node linkType: hard -"is-stream@npm:^3.0.0": - version: 3.0.0 - resolution: "is-stream@npm:3.0.0" - checksum: 10c0/eb2f7127af02ee9aa2a0237b730e47ac2de0d4e76a4a905a50a11557f2339df5765eaea4ceb8029f1efa978586abe776908720bfcb1900c20c6ec5145f6f29d8 - languageName: node - linkType: hard - "is-what@npm:^3.14.1": version: 3.14.1 resolution: "is-what@npm:3.14.1" @@ -6903,12 +6867,10 @@ __metadata: languageName: node linkType: hard -"loupe@npm:^3.1.0, loupe@npm:^3.1.1": - version: 3.1.1 - resolution: "loupe@npm:3.1.1" - dependencies: - get-func-name: "npm:^2.0.1" - checksum: 10c0/99f88badc47e894016df0c403de846fedfea61154aadabbf776c8428dd59e8d8378007135d385d737de32ae47980af07d22ba7bec5ef7beebd721de9baa0a0af +"loupe@npm:^3.1.0, loupe@npm:^3.1.2": + version: 3.1.2 + resolution: "loupe@npm:3.1.2" + checksum: 10c0/b13c02e3ddd6a9d5f8bf84133b3242de556512d824dddeea71cce2dbd6579c8f4d672381c4e742d45cf4423d0701765b4a6e5fbc24701def16bc2b40f8daa96a languageName: node linkType: hard @@ -6937,12 +6899,12 @@ __metadata: languageName: node linkType: hard -"magic-string@npm:^0.30.10": - version: 0.30.11 - resolution: "magic-string@npm:0.30.11" +"magic-string@npm:^0.30.12": + version: 0.30.14 + resolution: "magic-string@npm:0.30.14" dependencies: "@jridgewell/sourcemap-codec": "npm:^1.5.0" - checksum: 10c0/b9eb370773d0bd90ca11a848753409d8e5309b1ad56d2a1aa49d6649da710a6d2fe7237ad1a643c5a5d3800de2b9946ed9690acdfc00e6cc1aeafff3ab1752c4 + checksum: 10c0/c52c2a6e699dfa8a840e13154da35464a40cd8b07049b695a8b282883b0426c0811af1e36ac26860b4267289340b42772c156a5608e87be97b63d510e617e87a languageName: node linkType: hard @@ -7101,13 +7063,6 @@ __metadata: languageName: node linkType: hard -"mimic-fn@npm:^4.0.0": - version: 4.0.0 - resolution: "mimic-fn@npm:4.0.0" - checksum: 10c0/de9cc32be9996fd941e512248338e43407f63f6d497abe8441fa33447d922e927de54d4cc3c1a3c6d652857acd770389d5a3823f311a744132760ce2be15ccbf - languageName: node - linkType: hard - "mini-css-extract-plugin@npm:~2.4.7": version: 2.4.7 resolution: "mini-css-extract-plugin@npm:2.4.7" @@ -7269,14 +7224,7 @@ __metadata: languageName: node linkType: hard -"ms@npm:2.1.2": - version: 2.1.2 - resolution: "ms@npm:2.1.2" - checksum: 10c0/a437714e2f90dbf881b5191d35a6db792efbca5badf112f87b9e1c712aace4b4b9b742dd6537f3edf90fd6f684de897cec230abde57e87883766712ddda297cc - languageName: node - linkType: hard - -"ms@npm:2.1.3": +"ms@npm:2.1.3, ms@npm:^2.1.3": version: 2.1.3 resolution: "ms@npm:2.1.3" checksum: 10c0/d924b57e7312b3b63ad21fc5b3dc0af5e78d61a1fc7cfb5457edaf26326bf62be5307cc87ffb6862ef1c2b33b0233cdb5d4f01c4c958cc0d660948b65a287a48 @@ -7446,15 +7394,6 @@ __metadata: languageName: node linkType: hard -"npm-run-path@npm:^5.1.0": - version: 5.3.0 - resolution: "npm-run-path@npm:5.3.0" - dependencies: - path-key: "npm:^4.0.0" - checksum: 10c0/124df74820c40c2eb9a8612a254ea1d557ddfab1581c3e751f825e3e366d9f00b0d76a3c94ecd8398e7f3eee193018622677e95816e8491f0797b21e30b2deba - languageName: node - linkType: hard - "nth-check@npm:^2.0.1": version: 2.1.1 resolution: "nth-check@npm:2.1.1" @@ -7593,15 +7532,6 @@ __metadata: languageName: node linkType: hard -"onetime@npm:^6.0.0": - version: 6.0.0 - resolution: "onetime@npm:6.0.0" - dependencies: - mimic-fn: "npm:^4.0.0" - checksum: 10c0/4eef7c6abfef697dd4479345a4100c382d73c149d2d56170a54a07418c50816937ad09500e1ed1e79d235989d073a9bade8557122aee24f0576ecde0f392bb6c - languageName: node - linkType: hard - "open@npm:^8.0.9, open@npm:^8.4.0": version: 8.4.2 resolution: "open@npm:8.4.2" @@ -7761,13 +7691,6 @@ __metadata: languageName: node linkType: hard -"path-key@npm:^4.0.0": - version: 4.0.0 - resolution: "path-key@npm:4.0.0" - checksum: 10c0/794efeef32863a65ac312f3c0b0a99f921f3e827ff63afa5cb09a377e202c262b671f7b3832a4e64731003fa94af0263713962d317b9887bd1e0c48a342efba3 - languageName: node - linkType: hard - "path-parse@npm:^1.0.7": version: 1.0.7 resolution: "path-parse@npm:1.0.7" @@ -8733,7 +8656,7 @@ __metadata: typescript-5.5: "npm:typescript@5.5.4" typescript-5.6: "npm:typescript@5.6.3" typescript-transform-paths: "portal:../" - vitest: "npm:^2.0.5" + vitest: "npm:^2.1.8" languageName: unknown linkType: soft @@ -9053,7 +8976,7 @@ __metadata: languageName: node linkType: hard -"signal-exit@npm:^4.0.1, signal-exit@npm:^4.1.0": +"signal-exit@npm:^4.0.1": version: 4.1.0 resolution: "signal-exit@npm:4.1.0" checksum: 10c0/41602dce540e46d599edba9d9860193398d135f7ff72cab629db5171516cfae628d21e7bfccde1bbfdf11c48726bc2a6d1a8fb8701125852fbfda7cf19c6aa83 @@ -9281,10 +9204,10 @@ __metadata: languageName: node linkType: hard -"std-env@npm:^3.7.0": - version: 3.7.0 - resolution: "std-env@npm:3.7.0" - checksum: 10c0/60edf2d130a4feb7002974af3d5a5f3343558d1ccf8d9b9934d225c638606884db4a20d2fe6440a09605bca282af6b042ae8070a10490c0800d69e82e478f41e +"std-env@npm:^3.8.0": + version: 3.8.0 + resolution: "std-env@npm:3.8.0" + checksum: 10c0/f560a2902fd0fa3d648d7d0acecbd19d664006f7372c1fba197ed4c216b4c9e48db6e2769b5fe1616d42a9333c9f066c5011935035e85c59f45dc4f796272040 languageName: node linkType: hard @@ -9377,13 +9300,6 @@ __metadata: languageName: node linkType: hard -"strip-final-newline@npm:^3.0.0": - version: 3.0.0 - resolution: "strip-final-newline@npm:3.0.0" - checksum: 10c0/a771a17901427bac6293fd416db7577e2bc1c34a19d38351e9d5478c3c415f523f391003b42ed475f27e33a78233035df183525395f731d3bfb8cdcbd4da08ce - languageName: node - linkType: hard - "strip-json-comments@npm:^3.1.1": version: 3.1.1 resolution: "strip-json-comments@npm:3.1.1" @@ -9602,17 +9518,24 @@ __metadata: languageName: node linkType: hard -"tinybench@npm:^2.8.0": +"tinybench@npm:^2.9.0": version: 2.9.0 resolution: "tinybench@npm:2.9.0" checksum: 10c0/c3500b0f60d2eb8db65250afe750b66d51623057ee88720b7f064894a6cb7eb93360ca824a60a31ab16dab30c7b1f06efe0795b352e37914a9d4bad86386a20c languageName: node linkType: hard -"tinypool@npm:^1.0.0": - version: 1.0.0 - resolution: "tinypool@npm:1.0.0" - checksum: 10c0/71b20b9c54366393831c286a0772380c20f8cad9546d724c484edb47aea3228f274c58e98cf51d28c40869b39f5273209ef3ea94a9d2a23f8b292f4731cd3e4e +"tinyexec@npm:^0.3.1": + version: 0.3.1 + resolution: "tinyexec@npm:0.3.1" + checksum: 10c0/11e7a7c5d8b3bddf8b5cbe82a9290d70a6fad84d528421d5d18297f165723cb53d2e737d8f58dcce5ca56f2e4aa2d060f02510b1f8971784f97eb3e9aec28f09 + languageName: node + linkType: hard + +"tinypool@npm:^1.0.1": + version: 1.0.2 + resolution: "tinypool@npm:1.0.2" + checksum: 10c0/31ac184c0ff1cf9a074741254fe9ea6de95026749eb2b8ec6fd2b9d8ca94abdccda731f8e102e7f32e72ed3b36d32c6975fd5f5523df3f1b6de6c3d8dfd95e63 languageName: node linkType: hard @@ -9623,10 +9546,10 @@ __metadata: languageName: node linkType: hard -"tinyspy@npm:^3.0.0": - version: 3.0.0 - resolution: "tinyspy@npm:3.0.0" - checksum: 10c0/eb0dec264aa5370efd3d29743825eb115ed7f1ef8a72a431e9a75d5c9e7d67e99d04b0d61d86b8cd70c79ec27863f241ad0317bc453f78762e0cbd76d2c332d0 +"tinyspy@npm:^3.0.2": + version: 3.0.2 + resolution: "tinyspy@npm:3.0.2" + checksum: 10c0/55ffad24e346622b59292e097c2ee30a63919d5acb7ceca87fc0d1c223090089890587b426e20054733f97a58f20af2c349fb7cc193697203868ab7ba00bcea0 languageName: node linkType: hard @@ -10145,18 +10068,18 @@ __metadata: languageName: node linkType: hard -"vite-node@npm:2.0.5": - version: 2.0.5 - resolution: "vite-node@npm:2.0.5" +"vite-node@npm:2.1.8": + version: 2.1.8 + resolution: "vite-node@npm:2.1.8" dependencies: cac: "npm:^6.7.14" - debug: "npm:^4.3.5" + debug: "npm:^4.3.7" + es-module-lexer: "npm:^1.5.4" pathe: "npm:^1.1.2" - tinyrainbow: "npm:^1.2.0" vite: "npm:^5.0.0" bin: vite-node: vite-node.mjs - checksum: 10c0/affcc58ae8d45bce3e8bc3b5767acd57c24441634e2cd967cf97f4e5ed2bcead1714b60150cdf7ee153ebad47659c5cd419883207e1a95b69790331e3243749f + checksum: 10c0/cb28027a7425ba29780e216164c07d36a4ff9eb60d83afcad3bc222fd5a5f3e36030071c819edd6d910940f502d49e52f7564743617bc1c5875485b0952c72d5 languageName: node linkType: hard @@ -10200,34 +10123,35 @@ __metadata: languageName: node linkType: hard -"vitest@npm:^2.0.5": - version: 2.0.5 - resolution: "vitest@npm:2.0.5" - dependencies: - "@ampproject/remapping": "npm:^2.3.0" - "@vitest/expect": "npm:2.0.5" - "@vitest/pretty-format": "npm:^2.0.5" - "@vitest/runner": "npm:2.0.5" - "@vitest/snapshot": "npm:2.0.5" - "@vitest/spy": "npm:2.0.5" - "@vitest/utils": "npm:2.0.5" - chai: "npm:^5.1.1" - debug: "npm:^4.3.5" - execa: "npm:^8.0.1" - magic-string: "npm:^0.30.10" +"vitest@npm:^2.1.8": + version: 2.1.8 + resolution: "vitest@npm:2.1.8" + dependencies: + "@vitest/expect": "npm:2.1.8" + "@vitest/mocker": "npm:2.1.8" + "@vitest/pretty-format": "npm:^2.1.8" + "@vitest/runner": "npm:2.1.8" + "@vitest/snapshot": "npm:2.1.8" + "@vitest/spy": "npm:2.1.8" + "@vitest/utils": "npm:2.1.8" + chai: "npm:^5.1.2" + debug: "npm:^4.3.7" + expect-type: "npm:^1.1.0" + magic-string: "npm:^0.30.12" pathe: "npm:^1.1.2" - std-env: "npm:^3.7.0" - tinybench: "npm:^2.8.0" - tinypool: "npm:^1.0.0" + std-env: "npm:^3.8.0" + tinybench: "npm:^2.9.0" + tinyexec: "npm:^0.3.1" + tinypool: "npm:^1.0.1" tinyrainbow: "npm:^1.2.0" vite: "npm:^5.0.0" - vite-node: "npm:2.0.5" + vite-node: "npm:2.1.8" why-is-node-running: "npm:^2.3.0" peerDependencies: "@edge-runtime/vm": "*" "@types/node": ^18.0.0 || >=20.0.0 - "@vitest/browser": 2.0.5 - "@vitest/ui": 2.0.5 + "@vitest/browser": 2.1.8 + "@vitest/ui": 2.1.8 happy-dom: "*" jsdom: "*" peerDependenciesMeta: @@ -10245,7 +10169,7 @@ __metadata: optional: true bin: vitest: vitest.mjs - checksum: 10c0/b4e6cca00816bf967a8589111ded72faa12f92f94ccdd0dcd0698ffcfdfc52ec662753f66b387549c600ac699b993fd952efbd99dc57fcf4d1c69a2f1022b259 + checksum: 10c0/e70631bad5662d6c60c5cf836a4baf58b890db6654fef1f608fe6a86aa49a2b9f078aac74b719d4d3c87c5c781968cc73590a7935277b48f3d8b6fb9c5b4d276 languageName: node linkType: hard From 048c7709e31a1551e7cc5a8dc55cf39daf1246ea Mon Sep 17 00:00:00 2001 From: Daniel Perez Alvarez Date: Tue, 3 Dec 2024 02:50:26 -0500 Subject: [PATCH 06/17] WIP vitest --- test/config.ts | 9 +++++---- test/jest.config.ts | 10 ---------- 2 files changed, 5 insertions(+), 14 deletions(-) delete mode 100755 test/jest.config.ts diff --git a/test/config.ts b/test/config.ts index 5b1566e1..a8bc12de 100755 --- a/test/config.ts +++ b/test/config.ts @@ -6,10 +6,11 @@ import tsFiveSix from "typescript-5.6"; import path from "node:path"; export const tsModules = [ - ["3.6.5", tsThree, "typescript-3"], - ["4.7.4", tsFourSeven, "typescript-4.7"], - ["5.5.4", tsFiveFive, "typescript-5.5"], - ["5.6.3", tsFiveSix, "typescript-5.6"], + // TODO enable later + // ["3.6.5", tsThree, "typescript-3"], + // ["4.7.4", tsFourSeven, "typescript-4.7"], + // ["5.5.4", tsFiveFive, "typescript-5.5"], + // ["5.6.3", tsFiveSix, "typescript-5.6"], ["Latest", ts, "typescript"], ]; diff --git a/test/jest.config.ts b/test/jest.config.ts deleted file mode 100755 index 8e08ee1a..00000000 --- a/test/jest.config.ts +++ /dev/null @@ -1,10 +0,0 @@ -import type { JestConfigWithTsJest } from "ts-jest"; - -const config: JestConfigWithTsJest = { - testEnvironment: "node", - preset: "ts-jest", - testRegex: String.raw`.*(test|spec)\.tsx?$`, - moduleFileExtensions: ["ts", "tsx", "js", "jsx", "json", "node"], -}; - -export default config; From c5aa7287da60f3d7b9ccb32230e3b93c76f95216 Mon Sep 17 00:00:00 2001 From: Daniel Perez Alvarez Date: Tue, 3 Dec 2024 02:51:03 -0500 Subject: [PATCH 07/17] remove jest --- test/package.json | 3 - test/yarn.lock | 261 +++------------------------------------------- 2 files changed, 12 insertions(+), 252 deletions(-) diff --git a/test/package.json b/test/package.json index 469eb8a9..09c0ee11 100644 --- a/test/package.json +++ b/test/package.json @@ -12,11 +12,8 @@ "@nrwl/node": "^15.9.7", "@nrwl/workspace": "^15.9.7", "@tsconfig/node18": "^18.2.4", - "@types/jest": "^29.5.12", "@types/ts-expose-internals": "npm:ts-expose-internals@^4.9.5", - "jest": "^29.7.0", "nx": "^15.9.7", - "ts-jest": "^29.2.4", "ts-node": "^10.9.2", "ts-patch": "^3.2.1", "tsp1": "npm:ts-patch@1.*.*", diff --git a/test/yarn.lock b/test/yarn.lock index d4a95e49..1ba33e53 100644 --- a/test/yarn.lock +++ b/test/yarn.lock @@ -1660,47 +1660,6 @@ __metadata: languageName: node linkType: hard -"@jest/core@npm:^29.7.0": - version: 29.7.0 - resolution: "@jest/core@npm:29.7.0" - dependencies: - "@jest/console": "npm:^29.7.0" - "@jest/reporters": "npm:^29.7.0" - "@jest/test-result": "npm:^29.7.0" - "@jest/transform": "npm:^29.7.0" - "@jest/types": "npm:^29.6.3" - "@types/node": "npm:*" - ansi-escapes: "npm:^4.2.1" - chalk: "npm:^4.0.0" - ci-info: "npm:^3.2.0" - exit: "npm:^0.1.2" - graceful-fs: "npm:^4.2.9" - jest-changed-files: "npm:^29.7.0" - jest-config: "npm:^29.7.0" - jest-haste-map: "npm:^29.7.0" - jest-message-util: "npm:^29.7.0" - jest-regex-util: "npm:^29.6.3" - jest-resolve: "npm:^29.7.0" - jest-resolve-dependencies: "npm:^29.7.0" - jest-runner: "npm:^29.7.0" - jest-runtime: "npm:^29.7.0" - jest-snapshot: "npm:^29.7.0" - jest-util: "npm:^29.7.0" - jest-validate: "npm:^29.7.0" - jest-watcher: "npm:^29.7.0" - micromatch: "npm:^4.0.4" - pretty-format: "npm:^29.7.0" - slash: "npm:^3.0.0" - strip-ansi: "npm:^6.0.0" - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - checksum: 10c0/934f7bf73190f029ac0f96662c85cd276ec460d407baf6b0dbaec2872e157db4d55a7ee0b1c43b18874602f662b37cb973dda469a4e6d88b4e4845b521adeeb2 - languageName: node - linkType: hard - "@jest/environment@npm:^29.7.0": version: 29.7.0 resolution: "@jest/environment@npm:29.7.0" @@ -1758,7 +1717,7 @@ __metadata: languageName: node linkType: hard -"@jest/reporters@npm:^29.4.1, @jest/reporters@npm:^29.7.0": +"@jest/reporters@npm:^29.4.1": version: 29.7.0 resolution: "@jest/reporters@npm:29.7.0" dependencies: @@ -2663,16 +2622,6 @@ __metadata: languageName: node linkType: hard -"@types/jest@npm:^29.5.12": - version: 29.5.12 - resolution: "@types/jest@npm:29.5.12" - dependencies: - expect: "npm:^29.0.0" - pretty-format: "npm:^29.0.0" - checksum: 10c0/25fc8e4c611fa6c4421e631432e9f0a6865a8cb07c9815ec9ac90d630271cad773b2ee5fe08066f7b95bebd18bb967f8ce05d018ee9ab0430f9dfd1d84665b6f - languageName: node - linkType: hard - "@types/json-schema@npm:*, @types/json-schema@npm:^7.0.8, @types/json-schema@npm:^7.0.9": version: 7.0.15 resolution: "@types/json-schema@npm:7.0.15" @@ -3673,15 +3622,6 @@ __metadata: languageName: node linkType: hard -"bs-logger@npm:0.x": - version: 0.2.6 - resolution: "bs-logger@npm:0.2.6" - dependencies: - fast-json-stable-stringify: "npm:2.x" - checksum: 10c0/80e89aaaed4b68e3374ce936f2eb097456a0dddbf11f75238dbd53140b1e39259f0d248a5089ed456f1158984f22191c3658d54a713982f676709fbe1a6fa5a0 - languageName: node - linkType: hard - "bser@npm:2.1.1": version: 2.1.1 resolution: "bser@npm:2.1.1" @@ -4174,23 +4114,6 @@ __metadata: languageName: node linkType: hard -"create-jest@npm:^29.7.0": - version: 29.7.0 - resolution: "create-jest@npm:29.7.0" - dependencies: - "@jest/types": "npm:^29.6.3" - chalk: "npm:^4.0.0" - exit: "npm:^0.1.2" - graceful-fs: "npm:^4.2.9" - jest-config: "npm:^29.7.0" - jest-util: "npm:^29.7.0" - prompts: "npm:^2.0.1" - bin: - create-jest: bin/create-jest.js - checksum: 10c0/e7e54c280692470d3398f62a6238fd396327e01c6a0757002833f06d00afc62dd7bfe04ff2b9cd145264460e6b4d1eb8386f2925b7e567f97939843b7b0e812f - languageName: node - linkType: hard - "create-require@npm:^1.1.0": version: 1.1.1 resolution: "create-require@npm:1.1.1" @@ -4617,7 +4540,7 @@ __metadata: languageName: node linkType: hard -"ejs@npm:^3.1.10, ejs@npm:^3.1.7": +"ejs@npm:^3.1.7": version: 3.1.10 resolution: "ejs@npm:3.1.10" dependencies: @@ -4999,7 +4922,7 @@ __metadata: languageName: node linkType: hard -"expect@npm:^29.0.0, expect@npm:^29.7.0": +"expect@npm:^29.7.0": version: 29.7.0 resolution: "expect@npm:29.7.0" dependencies: @@ -5091,7 +5014,7 @@ __metadata: languageName: node linkType: hard -"fast-json-stable-stringify@npm:2.x, fast-json-stable-stringify@npm:^2.0.0, fast-json-stable-stringify@npm:^2.1.0": +"fast-json-stable-stringify@npm:^2.0.0, fast-json-stable-stringify@npm:^2.1.0": version: 2.1.0 resolution: "fast-json-stable-stringify@npm:2.1.0" checksum: 10c0/7f081eb0b8a64e0057b3bb03f974b3ef00135fbf36c1c710895cd9300f13c94ba809bb3a81cf4e1b03f6e5285610a61abbd7602d0652de423144dfee5a389c9b @@ -5196,7 +5119,7 @@ __metadata: languageName: node linkType: hard -"find-up@npm:^4.0.0, find-up@npm:^4.1.0": +"find-up@npm:^4.1.0": version: 4.1.0 resolution: "find-up@npm:4.1.0" dependencies: @@ -5826,18 +5749,6 @@ __metadata: languageName: node linkType: hard -"import-local@npm:^3.0.2": - version: 3.2.0 - resolution: "import-local@npm:3.2.0" - dependencies: - pkg-dir: "npm:^4.2.0" - resolve-cwd: "npm:^3.0.0" - bin: - import-local-fixture: fixtures/cli.js - checksum: 10c0/94cd6367a672b7e0cb026970c85b76902d2710a64896fa6de93bd5c571dd03b228c5759308959de205083e3b1c61e799f019c9e36ee8e9c523b993e1057f0433 - languageName: node - linkType: hard - "imurmurhash@npm:^0.1.4": version: 0.1.4 resolution: "imurmurhash@npm:0.1.4" @@ -6135,17 +6046,6 @@ __metadata: languageName: node linkType: hard -"jest-changed-files@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-changed-files@npm:29.7.0" - dependencies: - execa: "npm:^5.0.0" - jest-util: "npm:^29.7.0" - p-limit: "npm:^3.1.0" - checksum: 10c0/e071384d9e2f6bb462231ac53f29bff86f0e12394c1b49ccafbad225ce2ab7da226279a8a94f421949920bef9be7ef574fd86aee22e8adfa149be73554ab828b - languageName: node - linkType: hard - "jest-circus@npm:^29.7.0": version: 29.7.0 resolution: "jest-circus@npm:29.7.0" @@ -6174,33 +6074,7 @@ __metadata: languageName: node linkType: hard -"jest-cli@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-cli@npm:29.7.0" - dependencies: - "@jest/core": "npm:^29.7.0" - "@jest/test-result": "npm:^29.7.0" - "@jest/types": "npm:^29.6.3" - chalk: "npm:^4.0.0" - create-jest: "npm:^29.7.0" - exit: "npm:^0.1.2" - import-local: "npm:^3.0.2" - jest-config: "npm:^29.7.0" - jest-util: "npm:^29.7.0" - jest-validate: "npm:^29.7.0" - yargs: "npm:^17.3.1" - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - bin: - jest: bin/jest.js - checksum: 10c0/a658fd55050d4075d65c1066364595962ead7661711495cfa1dfeecf3d6d0a8ffec532f3dbd8afbb3e172dd5fd2fb2e813c5e10256e7cf2fea766314942fb43a - languageName: node - linkType: hard - -"jest-config@npm:^29.4.1, jest-config@npm:^29.7.0": +"jest-config@npm:^29.4.1": version: 29.7.0 resolution: "jest-config@npm:29.7.0" dependencies: @@ -6385,16 +6259,6 @@ __metadata: languageName: node linkType: hard -"jest-resolve-dependencies@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-resolve-dependencies@npm:29.7.0" - dependencies: - jest-regex-util: "npm:^29.6.3" - jest-snapshot: "npm:^29.7.0" - checksum: 10c0/b6e9ad8ae5b6049474118ea6441dfddd385b6d1fc471db0136f7c8fbcfe97137a9665e4f837a9f49f15a29a1deb95a14439b7aec812f3f99d08f228464930f0d - languageName: node - linkType: hard - "jest-resolve@npm:^29.4.1, jest-resolve@npm:^29.7.0": version: 29.7.0 resolution: "jest-resolve@npm:29.7.0" @@ -6499,7 +6363,7 @@ __metadata: languageName: node linkType: hard -"jest-util@npm:^29.0.0, jest-util@npm:^29.4.1, jest-util@npm:^29.7.0": +"jest-util@npm:^29.4.1, jest-util@npm:^29.7.0": version: 29.7.0 resolution: "jest-util@npm:29.7.0" dependencies: @@ -6566,25 +6430,6 @@ __metadata: languageName: node linkType: hard -"jest@npm:^29.7.0": - version: 29.7.0 - resolution: "jest@npm:29.7.0" - dependencies: - "@jest/core": "npm:^29.7.0" - "@jest/types": "npm:^29.6.3" - import-local: "npm:^3.0.2" - jest-cli: "npm:^29.7.0" - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - bin: - jest: bin/jest.js - checksum: 10c0/f40eb8171cf147c617cc6ada49d062fbb03b4da666cb8d39cdbfb739a7d75eea4c3ca150fb072d0d273dce0c753db4d0467d54906ad0293f59c54f9db4a09d8b - languageName: node - linkType: hard - "js-tokens@npm:^4.0.0": version: 4.0.0 resolution: "js-tokens@npm:4.0.0" @@ -6697,13 +6542,6 @@ __metadata: languageName: node linkType: hard -"kleur@npm:^3.0.3": - version: 3.0.3 - resolution: "kleur@npm:3.0.3" - checksum: 10c0/cd3a0b8878e7d6d3799e54340efe3591ca787d9f95f109f28129bdd2915e37807bf8918bb295ab86afb8c82196beec5a1adcaf29042ce3f2bd932b038fe3aa4b - languageName: node - linkType: hard - "klona@npm:^2.0.4, klona@npm:^2.0.5": version: 2.0.6 resolution: "klona@npm:2.0.6" @@ -6853,7 +6691,7 @@ __metadata: languageName: node linkType: hard -"lodash.memoize@npm:4.x, lodash.memoize@npm:^4.1.2": +"lodash.memoize@npm:^4.1.2": version: 4.1.2 resolution: "lodash.memoize@npm:4.1.2" checksum: 10c0/c8713e51eccc650422716a14cece1809cfe34bc5ab5e242b7f8b4e2241c2483697b971a604252807689b9dd69bfe3a98852e19a5b89d506b000b4187a1285df8 @@ -6927,7 +6765,7 @@ __metadata: languageName: node linkType: hard -"make-error@npm:1.x, make-error@npm:^1.1.1": +"make-error@npm:^1.1.1": version: 1.3.6 resolution: "make-error@npm:1.3.6" checksum: 10c0/171e458d86854c6b3fc46610cfacf0b45149ba043782558c6875d9f42f222124384ad0b468c92e996d815a8a2003817a710c0a160e49c1c394626f76fa45396f @@ -7771,15 +7609,6 @@ __metadata: languageName: node linkType: hard -"pkg-dir@npm:^4.2.0": - version: 4.2.0 - resolution: "pkg-dir@npm:4.2.0" - dependencies: - find-up: "npm:^4.0.0" - checksum: 10c0/c56bda7769e04907a88423feb320babaed0711af8c436ce3e56763ab1021ba107c7b0cafb11cde7529f669cfc22bffcaebffb573645cbd63842ea9fb17cd7728 - languageName: node - linkType: hard - "pkg-dir@npm:^7.0.0": version: 7.0.0 resolution: "pkg-dir@npm:7.0.0" @@ -8193,7 +8022,7 @@ __metadata: languageName: node linkType: hard -"pretty-format@npm:^29.0.0, pretty-format@npm:^29.7.0": +"pretty-format@npm:^29.7.0": version: 29.7.0 resolution: "pretty-format@npm:29.7.0" dependencies: @@ -8234,16 +8063,6 @@ __metadata: languageName: node linkType: hard -"prompts@npm:^2.0.1": - version: 2.4.2 - resolution: "prompts@npm:2.4.2" - dependencies: - kleur: "npm:^3.0.3" - sisteransi: "npm:^1.0.5" - checksum: 10c0/16f1ac2977b19fe2cf53f8411cc98db7a3c8b115c479b2ca5c82b5527cd937aa405fa04f9a5960abeb9daef53191b53b4d13e35c1f5d50e8718c76917c5f1ea4 - languageName: node - linkType: hard - "proxy-addr@npm:~2.0.7": version: 2.0.7 resolution: "proxy-addr@npm:2.0.7" @@ -8464,15 +8283,6 @@ __metadata: languageName: node linkType: hard -"resolve-cwd@npm:^3.0.0": - version: 3.0.0 - resolution: "resolve-cwd@npm:3.0.0" - dependencies: - resolve-from: "npm:^5.0.0" - checksum: 10c0/e608a3ebd15356264653c32d7ecbc8fd702f94c6703ea4ac2fb81d9c359180cba0ae2e6b71faa446631ed6145454d5a56b227efc33a2d40638ac13f8beb20ee4 - languageName: node - linkType: hard - "resolve-from@npm:^4.0.0": version: 4.0.0 resolution: "resolve-from@npm:4.0.0" @@ -8641,11 +8451,8 @@ __metadata: "@nrwl/node": "npm:^15.9.7" "@nrwl/workspace": "npm:^15.9.7" "@tsconfig/node18": "npm:^18.2.4" - "@types/jest": "npm:^29.5.12" "@types/ts-expose-internals": "npm:ts-expose-internals@^4.9.5" - jest: "npm:^29.7.0" nx: "npm:^15.9.7" - ts-jest: "npm:^29.2.4" ts-node: "npm:^10.9.2" ts-patch: "npm:^3.2.1" tsp1: "npm:ts-patch@1.*.*" @@ -8983,13 +8790,6 @@ __metadata: languageName: node linkType: hard -"sisteransi@npm:^1.0.5": - version: 1.0.5 - resolution: "sisteransi@npm:1.0.5" - checksum: 10c0/230ac975cca485b7f6fe2b96a711aa62a6a26ead3e6fb8ba17c5a00d61b8bed0d7adc21f5626b70d7c33c62ff4e63933017a6462942c719d1980bb0b1207ad46 - languageName: node - linkType: hard - "slash@npm:^3.0.0": version: 3.0.0 resolution: "slash@npm:3.0.0" @@ -9599,43 +9399,6 @@ __metadata: languageName: node linkType: hard -"ts-jest@npm:^29.2.4": - version: 29.2.4 - resolution: "ts-jest@npm:29.2.4" - dependencies: - bs-logger: "npm:0.x" - ejs: "npm:^3.1.10" - fast-json-stable-stringify: "npm:2.x" - jest-util: "npm:^29.0.0" - json5: "npm:^2.2.3" - lodash.memoize: "npm:4.x" - make-error: "npm:1.x" - semver: "npm:^7.5.3" - yargs-parser: "npm:^21.0.1" - peerDependencies: - "@babel/core": ">=7.0.0-beta.0 <8" - "@jest/transform": ^29.0.0 - "@jest/types": ^29.0.0 - babel-jest: ^29.0.0 - jest: ^29.0.0 - typescript: ">=4.3 <6" - peerDependenciesMeta: - "@babel/core": - optional: true - "@jest/transform": - optional: true - "@jest/types": - optional: true - babel-jest: - optional: true - esbuild: - optional: true - bin: - ts-jest: cli.js - checksum: 10c0/43be1d5625d44bc48815d91810e796d74682757b4f64677b54aae1f4da855476e50c01b92d54add4b02976ecf2cbb2f318d7c7788844328de44f145b95185fac - languageName: node - linkType: hard - "ts-loader@npm:^9.3.1": version: 9.5.1 resolution: "ts-loader@npm:9.5.1" @@ -10474,14 +10237,14 @@ __metadata: languageName: node linkType: hard -"yargs-parser@npm:21.1.1, yargs-parser@npm:^21.0.1, yargs-parser@npm:^21.1.1": +"yargs-parser@npm:21.1.1, yargs-parser@npm:^21.1.1": version: 21.1.1 resolution: "yargs-parser@npm:21.1.1" checksum: 10c0/f84b5e48169479d2f402239c59f084cfd1c3acc197a05c59b98bab067452e6b3ea46d4dd8ba2985ba7b3d32a343d77df0debd6b343e5dae3da2aab2cdf5886b2 languageName: node linkType: hard -"yargs@npm:^17.3.1, yargs@npm:^17.6.2": +"yargs@npm:^17.6.2": version: 17.7.2 resolution: "yargs@npm:17.7.2" dependencies: From d4f7a142e6f053f6988d1a35e2421eef28b66df5 Mon Sep 17 00:00:00 2001 From: Daniel Perez Alvarez Date: Tue, 3 Dec 2024 02:51:49 -0500 Subject: [PATCH 08/17] fix conflict marker --- test/tests/register.test.ts | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/test/tests/register.test.ts b/test/tests/register.test.ts index ac89fc8f..067fe883 100755 --- a/test/tests/register.test.ts +++ b/test/tests/register.test.ts @@ -137,7 +137,7 @@ describe(`Register script`, () => { afterDeclarations: [fakeExistingTransformer], }; const transformerFactoryFn = vi.fn().mockReturnValue(fakeTransformerConfig); - const fakeProgram: unknown = {}; + const fakeProgram: unknown = {}; let existingTransformers: CustomTransformers | ((p: Program) => CustomTransformers) | undefined; switch (configKind) { @@ -163,12 +163,8 @@ describe(`Register script`, () => { let mergedTransformers: CustomTransformers; beforeAll(() => { -<<<<<<< HEAD - mockTransformer = vi.spyOn(transformerModule, "default").mockReturnValue(fakeTransformer); -======= // @ts-expect-error TS(2345) FIXME: Argument of type '() => unknown' is not assignable to parameter of type '(transformationContext: TransformationContext) => (sourceFile: SourceFile) => SourceFile'. - mockTransformer = jest.spyOn(transformerModule, "default").mockReturnValue(fakeTransformer); ->>>>>>> master + mockTransformer = vi.spyOn(transformerModule, "default").mockReturnValue(fakeTransformer); global.process[instanceSymbol] = void 0; From 8ea3591b90e230f2e2c2ae90b2bc3022619def44 Mon Sep 17 00:00:00 2001 From: Daniel Perez Alvarez Date: Sat, 17 Aug 2024 22:04:28 -0400 Subject: [PATCH 09/17] chore!: remove main and types package.json properties --- nx-transformer.js | 6 ------ package.json | 2 -- register.js | 5 ----- 3 files changed, 13 deletions(-) delete mode 100644 nx-transformer.js delete mode 100644 register.js diff --git a/nx-transformer.js b/nx-transformer.js deleted file mode 100644 index 5b2db777..00000000 --- a/nx-transformer.js +++ /dev/null @@ -1,6 +0,0 @@ -// Keeping register here in the root for backwards compatibiliy, TODO remove in the next major version -console.warn( - "typescript-transform-paths: Calling the top level nx-transformer file is deprecated and will be removed in the future. Use a tool that supports package.json exports", -); - -module.exports = require("./dist/plugins/nx-transfomer-plugin").default; diff --git a/package.json b/package.json index 50d128c8..259bdcc8 100644 --- a/package.json +++ b/package.json @@ -3,8 +3,6 @@ "version": "3.5.2", "description": "Transforms module resolution paths using TypeScript path mapping and/or custom paths", "type": "commonjs", - "main": "./dist/index.js", - "types": "types/index.d.ts", "exports": { ".": { "types": "./dist/index.d.ts", diff --git a/register.js b/register.js deleted file mode 100644 index d0bcee87..00000000 --- a/register.js +++ /dev/null @@ -1,5 +0,0 @@ -// Keeping register here in the root for backwards compatibiliy, TODO remove in the next major version -console.warn( - "typescript-transform-paths: Calling the top level register file is deprecated and will be removed in the future. Use a tool that supports package.json exports", -); -require("./dist/register-entry"); From 391214f914693e4e78102e2861203b8ed13a9e63 Mon Sep 17 00:00:00 2001 From: Daniel Perez Alvarez Date: Mon, 2 Sep 2024 20:32:09 -0400 Subject: [PATCH 10/17] chore!: remove typescript 3 support --- package.json | 5 +- src/harmony/harmony-factory.ts | 6 +- src/harmony/versions/index.ts | 1 - src/harmony/versions/three-eight.ts | 158 ---------------------------- test/config.ts | 2 - test/package.json | 1 - test/prepare.mjs | 2 - test/yarn.lock | 13 +-- yarn.lock | 32 +++--- 9 files changed, 19 insertions(+), 201 deletions(-) delete mode 100644 src/harmony/versions/three-eight.ts diff --git a/package.json b/package.json index 259bdcc8..1a0a36aa 100644 --- a/package.json +++ b/package.json @@ -66,8 +66,7 @@ "@types/node": "^22.5.2", "@types/ts-expose-internals": "npm:ts-expose-internals@4.9.5", "@types/ts-node": "npm:ts-node@^10.9.2", - "@types/typescript-3": "npm:typescript@3.x", - "@types/typescript-4.7": "npm:typescript@4.9.x", + "@types/typescript-4.7": "npm:typescript@4.7.x", "changelogen": "^0.5.5", "eslint": "9.x", "globals": "^15.9.0", @@ -78,7 +77,7 @@ "typescript-eslint": "^8.3.0" }, "peerDependencies": { - "typescript": ">=3.6.5" + "typescript": ">=4" }, "dependencies": { "minimatch": "^9.0.5" diff --git a/src/harmony/harmony-factory.ts b/src/harmony/harmony-factory.ts index 1b002762..3c95f0c2 100644 --- a/src/harmony/harmony-factory.ts +++ b/src/harmony/harmony-factory.ts @@ -1,6 +1,6 @@ import TS from "typescript"; import { TsTransformPathsContext } from "../types"; -import { TsFourSeven, TsThreeEight } from "./versions"; +import { TsFourSeven } from "./versions"; /* ****************************************************************************************************************** */ // region: Types @@ -18,9 +18,7 @@ export interface HarmonyFactory extends TS.NodeFactory {} export function createHarmonyFactory(context: TsTransformPathsContext): HarmonyFactory { return new Proxy(context.tsFactory ?? context.tsInstance, { get(target, prop) { - if (TsThreeEight.predicate(context)) { - return TsThreeEight.handler(context, prop); - } else if (TsFourSeven.predicate(context)) { + if (TsFourSeven.predicate(context)) { return TsFourSeven.handler(context, prop); } else { // @ts-expect-error TS(7053) FIXME: Element implicitly has an 'any' type because expression of type 'string | symbol' can't be used to index type 'typeof import("typescript") | NodeFactory'. diff --git a/src/harmony/versions/index.ts b/src/harmony/versions/index.ts index 4fcadcde..457660e4 100644 --- a/src/harmony/versions/index.ts +++ b/src/harmony/versions/index.ts @@ -1,2 +1 @@ -export * as TsThreeEight from "./three-eight"; export * as TsFourSeven from "./four-seven"; diff --git a/src/harmony/versions/three-eight.ts b/src/harmony/versions/three-eight.ts deleted file mode 100644 index e9e615eb..00000000 --- a/src/harmony/versions/three-eight.ts +++ /dev/null @@ -1,158 +0,0 @@ -/** Changes after this point: https://github.com/microsoft/TypeScript/wiki/API-Breaking-Changes#typescript-40 */ -import type { - default as TsCurrentModule, - EntityName, - ExportDeclaration, - Expression, - Identifier, - ImportClause, - ImportDeclaration, - ImportTypeAssertionContainer, - ImportTypeNode, - Modifier, - ModuleBody, - ModuleDeclaration, - ModuleName, - NamedExportBindings, - NamedImportBindings, - TypeNode, -} from "typescript"; -import type TsThreeEightModule from "typescript-3"; -import type { TsTransformPathsContext } from "../../types"; -import type { DownSampleTsTypes } from "../utils"; - -/* ****************************************************************************************************************** */ -// region: Mapping -/* ****************************************************************************************************************** */ - -export type TypeMap = [ - [TsCurrentModule.SourceFile, TsThreeEightModule.SourceFile], - [TsCurrentModule.StringLiteral, TsThreeEightModule.StringLiteral], - [TsCurrentModule.CompilerOptions, TsThreeEightModule.CompilerOptions], - // @ts-expect-error typescript 3 doesn't export EmitResolver - [TsCurrentModule.EmitResolver, TsThreeEightModule.EmitResolver], - [TsCurrentModule.CallExpression, TsThreeEightModule.CallExpression], - [TsCurrentModule.ExternalModuleReference, TsThreeEightModule.ExternalModuleReference], - [TsCurrentModule.LiteralTypeNode, TsThreeEightModule.LiteralTypeNode], - [TsCurrentModule.ExternalModuleReference, TsThreeEightModule.ExternalModuleReference], - [TsCurrentModule.ImportTypeNode, TsThreeEightModule.ImportTypeNode], - [TsCurrentModule.EntityName, TsThreeEightModule.EntityName], - [TsCurrentModule.TypeNode, TsThreeEightModule.TypeNode], - [readonly TsCurrentModule.TypeNode[], readonly TsThreeEightModule.TypeNode[]], - [TsCurrentModule.LiteralTypeNode, TsThreeEightModule.LiteralTypeNode], - [TsCurrentModule.ImportDeclaration, TsThreeEightModule.ImportDeclaration], - [TsCurrentModule.ImportClause, TsThreeEightModule.ImportClause], - [TsCurrentModule.Identifier, TsThreeEightModule.Identifier], - [TsCurrentModule.NamedImportBindings, TsThreeEightModule.NamedImportBindings], - [TsCurrentModule.ImportDeclaration, TsThreeEightModule.ImportDeclaration], - [TsCurrentModule.ExportDeclaration, TsThreeEightModule.ExportDeclaration], - [TsCurrentModule.ModuleDeclaration, TsThreeEightModule.ModuleDeclaration], - [TsCurrentModule.Expression, TsThreeEightModule.Expression], - [TsCurrentModule.ModuleBody, TsThreeEightModule.ModuleBody], - [TsCurrentModule.ModuleName, TsThreeEightModule.ModuleName], - [TsCurrentModule.ExportDeclaration["exportClause"], TsThreeEightModule.ExportDeclaration["exportClause"]], -]; - -// endregion - -/* ****************************************************************************************************************** */ -// region: Utils -/* ****************************************************************************************************************** */ - -export const predicate = (context: TsTransformPathsContext) => context.tsVersionMajor < 4; - -export function handler(context: TsTransformPathsContext, prop: string | symbol) { - const ts = context.tsInstance as unknown as typeof TsThreeEightModule; - - switch (prop) { - case "updateCallExpression": { - // @ts-expect-error TS(7019) FIXME: Rest parameter 'args' implicitly has an 'any[]' type. - return (...args) => ts.updateCall.apply(void 0, args); - } - case "updateImportClause": { - return function ( - node: ImportClause, - _isTypeOnly: boolean, - name: Identifier | undefined, - namedBindings: NamedImportBindings | undefined, - ) { - // @ts-expect-error TODO investigate type issue - return ts.updateImportClause.apply(void 0, downSample(node, name, namedBindings)); - }; - } - case "updateImportDeclaration": { - return function ( - node: ImportDeclaration, - _modifiers: readonly Modifier[] | undefined, - importClause: ImportClause | undefined, - moduleSpecifier: Expression, - ) { - const [dsNode, dsImportClause, dsModuleSpecifier] = downSample(node, importClause, moduleSpecifier); - - return ts.updateImportDeclaration( - dsNode, - dsNode.decorators, - dsNode.modifiers, - dsImportClause, - dsModuleSpecifier, - ); - }; - } - case "updateExportDeclaration": { - return function ( - node: ExportDeclaration, - _modifiers: readonly Modifier[] | undefined, - _isTypeOnly: boolean, - exportClause: NamedExportBindings | undefined, - moduleSpecifier: Expression | undefined, - ) { - const [dsNode, dsModuleSpecifier, dsExportClause] = downSample(node, moduleSpecifier, exportClause); - return ts.updateExportDeclaration( - dsNode, - dsNode.decorators, - dsNode.modifiers, - dsExportClause, - dsModuleSpecifier, - dsNode.isTypeOnly, - ); - }; - } - case "updateModuleDeclaration": { - return function ( - node: ModuleDeclaration, - _modifiers: readonly Modifier[] | undefined, - name: ModuleName, - body: ModuleBody | undefined, - ) { - const [dsNode, dsName, dsBody] = downSample(node, name, body); - - return ts.updateModuleDeclaration(dsNode, dsNode.decorators, dsNode.modifiers, dsName, dsBody); - }; - } - case "updateImportTypeNode": { - return function ( - node: ImportTypeNode, - argument: TypeNode, - _assertions: ImportTypeAssertionContainer | undefined, - qualifier: EntityName | undefined, - typeArguments: readonly TypeNode[] | undefined, - isTypeOf?: boolean, - ) { - const [dsNode, dsArgument, dsQualifier, dsTypeArguments] = downSample(node, argument, qualifier, typeArguments); - - return ts.updateImportTypeNode(dsNode, dsArgument, dsQualifier, dsTypeArguments, isTypeOf); - }; - } - default: { - // @ts-expect-error TS(7019) FIXME: Rest parameter 'args' implicitly has an 'any[]' type. - return (...args) => ts[prop](...args); - } - } -} - -export function downSample(...args: T): DownSampleTsTypes { - // @ts-expect-error TS(2322) FIXME: Type 'T' is not assignable to type 'DownSampleTsTypes'. - return args; -} - -// endregion diff --git a/test/config.ts b/test/config.ts index 5b1566e1..6e5cd8bd 100755 --- a/test/config.ts +++ b/test/config.ts @@ -1,12 +1,10 @@ import ts from "typescript"; -import tsThree from "typescript-3"; import tsFourSeven from "typescript-4.7"; import tsFiveFive from "typescript-5.5"; import tsFiveSix from "typescript-5.6"; import path from "node:path"; export const tsModules = [ - ["3.6.5", tsThree, "typescript-3"], ["4.7.4", tsFourSeven, "typescript-4.7"], ["5.5.4", tsFiveFive, "typescript-5.5"], ["5.6.3", tsFiveSix, "typescript-5.6"], diff --git a/test/package.json b/test/package.json index 430b36cd..18a4ac91 100644 --- a/test/package.json +++ b/test/package.json @@ -22,7 +22,6 @@ "tsp1": "npm:ts-patch@1.*.*", "tsp2": "npm:ts-patch@2.*.*", "typescript": "^5.7.2", - "typescript-3": "npm:typescript@3.6.5", "typescript-4.7": "npm:typescript@4.7.4", "typescript-5.5": "npm:typescript@5.5.4", "typescript-5.6": "npm:typescript@5.6.3", diff --git a/test/prepare.mjs b/test/prepare.mjs index 45e327c5..ee45cebc 100755 --- a/test/prepare.mjs +++ b/test/prepare.mjs @@ -4,7 +4,6 @@ import { symlink } from "node:fs/promises"; import { dirname, resolve } from "node:path"; import { fileURLToPath } from "node:url"; import { patch } from "ts-patch"; -import { patch as patch1 } from "tsp1"; import { patch as patch2 } from "tsp2"; const __dirname = dirname(fileURLToPath(import.meta.url)); // https://stackoverflow.com/questions/46745014/alternative-for-dirname-in-node-js-when-using-es6-modules @@ -28,7 +27,6 @@ function patchTsModules() { tspatch(["tsc.js", "typescript.js"], { basedir, dir: basedir }); } - patchTypescript("typescript-3", patch1); patchTypescript("typescript-4.7", patch2); patchTypescript("typescript-5.5", patch); patchTypescript("typescript-5.6", patch); diff --git a/test/yarn.lock b/test/yarn.lock index cf729680..7362e85c 100644 --- a/test/yarn.lock +++ b/test/yarn.lock @@ -8095,7 +8095,6 @@ __metadata: tsp1: "npm:ts-patch@1.*.*" tsp2: "npm:ts-patch@2.*.*" typescript: "npm:^5.7.2" - typescript-3: "npm:typescript@3.6.5" typescript-4.7: "npm:typescript@4.7.4" typescript-5.5: "npm:typescript@5.5.4" typescript-5.6: "npm:typescript@5.6.3" @@ -9237,16 +9236,6 @@ __metadata: languageName: node linkType: hard -"typescript-3@npm:typescript@3.6.5": - version: 3.6.5 - resolution: "typescript@npm:3.6.5" - bin: - tsc: bin/tsc - tsserver: bin/tsserver - checksum: 10c0/b6f0d5d2e2325b28460b8cf3a4a1237d79aec9951ad727014d4ca570327cc5947decec5d262044979cc0a9ab63746b58e6d8438d73d33ce8415e5369d0490dff - languageName: node - linkType: hard - "typescript-4.7@npm:typescript@4.7.4": version: 4.7.4 resolution: "typescript@npm:4.7.4" @@ -9283,7 +9272,7 @@ __metadata: dependencies: minimatch: "npm:^9.0.5" peerDependencies: - typescript: ">=3.6.5" + typescript: ">=4" languageName: node linkType: soft diff --git a/yarn.lock b/yarn.lock index 720e6f44..6494cebb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -74,13 +74,20 @@ __metadata: languageName: node linkType: hard -"@eslint/js@npm:9.17.0, @eslint/js@npm:^9.9.1": +"@eslint/js@npm:9.17.0": version: 9.17.0 resolution: "@eslint/js@npm:9.17.0" checksum: 10c0/a0fda8657a01c60aa540f95397754267ba640ffb126e011b97fd65c322a94969d161beeaef57c1441c495da2f31167c34bd38209f7c146c7225072378c3a933d languageName: node linkType: hard +"@eslint/js@npm:^9.9.1": + version: 9.15.0 + resolution: "@eslint/js@npm:9.15.0" + checksum: 10c0/56552966ab1aa95332f70d0e006db5746b511c5f8b5e0c6a9b2d6764ff6d964e0b2622731877cbc4e3f0e74c5b39191290d5f48147be19175292575130d499ab + languageName: node + linkType: hard + "@eslint/object-schema@npm:^2.1.4": version: 2.1.4 resolution: "@eslint/object-schema@npm:2.1.4" @@ -388,23 +395,13 @@ __metadata: languageName: node linkType: hard -"@types/typescript-3@npm:typescript@3.x": - version: 3.9.10 - resolution: "typescript@npm:3.9.10" - bin: - tsc: bin/tsc - tsserver: bin/tsserver - checksum: 10c0/863cc06070fa18a0f9c6a83265fb4922a8b51bf6f2c6760fb0b73865305ce617ea4bc6477381f9f4b7c3a8cb4a455b054f5469e6e41307733fe6a2bd9aae82f8 - languageName: node - linkType: hard - -"@types/typescript-4.7@npm:typescript@4.9.x": - version: 4.9.5 - resolution: "typescript@npm:4.9.5" +"@types/typescript-4.7@npm:typescript@4.7.x": + version: 4.7.4 + resolution: "typescript@npm:4.7.4" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 10c0/5f6cad2e728a8a063521328e612d7876e12f0d8a8390d3b3aaa452a6a65e24e9ac8ea22beb72a924fd96ea0a49ea63bb4e251fb922b12eedfb7f7a26475e5c56 + checksum: 10c0/8c1c4007b6ce5b24c49f0e89173ab9e82687cc6ae54418d1140bb63b82d6598d085ac0f993fe3d3d1fbf87a2c76f1f81d394dc76315bc72c7a9f8561c5d8d205 languageName: node linkType: hard @@ -2931,8 +2928,7 @@ __metadata: "@types/node": "npm:^22.5.2" "@types/ts-expose-internals": "npm:ts-expose-internals@4.9.5" "@types/ts-node": "npm:ts-node@^10.9.2" - "@types/typescript-3": "npm:typescript@3.x" - "@types/typescript-4.7": "npm:typescript@4.9.x" + "@types/typescript-4.7": "npm:typescript@4.7.x" changelogen: "npm:^0.5.5" eslint: "npm:9.x" globals: "npm:^15.9.0" @@ -2943,7 +2939,7 @@ __metadata: typescript: "npm:^5.5.4" typescript-eslint: "npm:^8.3.0" peerDependencies: - typescript: ">=3.6.5" + typescript: ">=4" languageName: unknown linkType: soft From 1a8f5b4456c430acd45757d25da87cf856feb94a Mon Sep 17 00:00:00 2001 From: Daniel Perez Alvarez Date: Sat, 14 Sep 2024 10:49:45 -0400 Subject: [PATCH 11/17] chore!: remove typescript 4.7 support --- package.json | 3 +- src/harmony/harmony-factory.ts | 31 ------ src/harmony/index.ts | 2 - src/harmony/utils.ts | 20 ---- src/harmony/versions/four-seven.ts | 125 ------------------------- src/harmony/versions/index.ts | 1 - src/transformer.ts | 3 +- src/types.ts | 4 +- test/config.ts | 10 +- test/package.json | 3 - test/prepare.mjs | 4 - test/tests/transformer/general.test.ts | 2 - test/yarn.lock | 35 +------ yarn.lock | 13 +-- 14 files changed, 6 insertions(+), 250 deletions(-) delete mode 100644 src/harmony/harmony-factory.ts delete mode 100644 src/harmony/index.ts delete mode 100644 src/harmony/utils.ts delete mode 100644 src/harmony/versions/four-seven.ts delete mode 100644 src/harmony/versions/index.ts diff --git a/package.json b/package.json index 1a0a36aa..4c254d99 100644 --- a/package.json +++ b/package.json @@ -66,7 +66,6 @@ "@types/node": "^22.5.2", "@types/ts-expose-internals": "npm:ts-expose-internals@4.9.5", "@types/ts-node": "npm:ts-node@^10.9.2", - "@types/typescript-4.7": "npm:typescript@4.7.x", "changelogen": "^0.5.5", "eslint": "9.x", "globals": "^15.9.0", @@ -77,7 +76,7 @@ "typescript-eslint": "^8.3.0" }, "peerDependencies": { - "typescript": ">=4" + "typescript": ">=5" }, "dependencies": { "minimatch": "^9.0.5" diff --git a/src/harmony/harmony-factory.ts b/src/harmony/harmony-factory.ts deleted file mode 100644 index 3c95f0c2..00000000 --- a/src/harmony/harmony-factory.ts +++ /dev/null @@ -1,31 +0,0 @@ -import TS from "typescript"; -import { TsTransformPathsContext } from "../types"; -import { TsFourSeven } from "./versions"; - -/* ****************************************************************************************************************** */ -// region: Types -/* ****************************************************************************************************************** */ - -export interface HarmonyFactory extends TS.NodeFactory {} - -// endregion - -/* ****************************************************************************************************************** */ -// region: Utilities -/* ****************************************************************************************************************** */ - -/** Creates a node factory compatible with TS v3+ */ -export function createHarmonyFactory(context: TsTransformPathsContext): HarmonyFactory { - return new Proxy(context.tsFactory ?? context.tsInstance, { - get(target, prop) { - if (TsFourSeven.predicate(context)) { - return TsFourSeven.handler(context, prop); - } else { - // @ts-expect-error TS(7053) FIXME: Element implicitly has an 'any' type because expression of type 'string | symbol' can't be used to index type 'typeof import("typescript") | NodeFactory'. - return target[prop]; - } - }, - }) as HarmonyFactory; -} - -// endregion diff --git a/src/harmony/index.ts b/src/harmony/index.ts deleted file mode 100644 index 34eee98b..00000000 --- a/src/harmony/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from "./versions"; -export * from "./harmony-factory"; diff --git a/src/harmony/utils.ts b/src/harmony/utils.ts deleted file mode 100644 index 2f0cb8e3..00000000 --- a/src/harmony/utils.ts +++ /dev/null @@ -1,20 +0,0 @@ -/* ****************************************************************************************************************** */ -// region: Utility Types -/* ****************************************************************************************************************** */ -// @formatter:off - -// @prettier-ignore -export type DownSampleTsTypes = { - [i in keyof Tuple]: Tuple[i] extends unknown[] - ? DownSampleTsTypes - : DownSampleTsType; -} & { - length: Tuple["length"]; -}; - -// @prettier-ignore -type DownSampleTsType = - T extends Exclude ? Extract[1] : T; - -// @formatter:on -// endregion diff --git a/src/harmony/versions/four-seven.ts b/src/harmony/versions/four-seven.ts deleted file mode 100644 index b09638da..00000000 --- a/src/harmony/versions/four-seven.ts +++ /dev/null @@ -1,125 +0,0 @@ -/** Changes after this point: https://github.com/microsoft/TypeScript/wiki/API-Breaking-Changes#typescript-48 */ -import type { - default as TsCurrentModule, - AssertClause, - ExportDeclaration, - Expression, - ImportClause, - ImportDeclaration, - Modifier, - ModuleBody, - ModuleDeclaration, - ModuleName, - NamedExportBindings, -} from "typescript"; -import type TsFourSevenModule from "typescript-4.7"; -import type { TsTransformPathsContext } from "../../types"; -import type { DownSampleTsTypes } from "../utils"; - -/* ****************************************************************************************************************** */ -// region: Mapping -/* ****************************************************************************************************************** */ - -export type TypeMap = [ - [TsCurrentModule.ImportDeclaration, TsFourSevenModule.ImportDeclaration], - [TsCurrentModule.Modifier, TsFourSevenModule.Modifier], - [TsCurrentModule.ImportClause, TsFourSevenModule.ImportClause], - [TsCurrentModule.Expression, TsFourSevenModule.Expression], - [TsCurrentModule.AssertClause, TsFourSevenModule.AssertClause], - [TsCurrentModule.ExportDeclaration, TsFourSevenModule.ExportDeclaration], - [TsCurrentModule.NamedExportBindings, TsFourSevenModule.NamedExportBindings], - [TsCurrentModule.ModuleDeclaration, TsFourSevenModule.ModuleDeclaration], - [TsCurrentModule.ModuleName, TsFourSevenModule.ModuleName], - [TsCurrentModule.ModuleBody, TsFourSevenModule.ModuleBody], -]; - -// endregion - -/* ****************************************************************************************************************** */ -// region: Utils -/* ****************************************************************************************************************** */ - -export const predicate = ({ tsVersionMajor, tsVersionMinor }: TsTransformPathsContext) => - tsVersionMajor == 4 && tsVersionMinor < 8; - -export function handler(context: TsTransformPathsContext, prop: string | symbol) { - const factory = context.tsFactory as unknown as TsFourSevenModule.NodeFactory; - - switch (prop) { - case "updateImportDeclaration": { - return function ( - node: ImportDeclaration, - _modifiers: readonly Modifier[] | undefined, - importClause: ImportClause | undefined, - moduleSpecifier: Expression, - assertClause: AssertClause | undefined, - ) { - const [dsNode, dsImportClause, dsModuleSpecifier, dsAssertClause] = downSample( - node, - importClause, - moduleSpecifier, - assertClause, - ); - - return factory.updateImportDeclaration( - dsNode, - dsNode.decorators, - dsNode.modifiers, - dsImportClause, - dsModuleSpecifier, - dsAssertClause, - ); - }; - } - case "updateExportDeclaration": { - return function ( - node: ExportDeclaration, - _modifiers: readonly Modifier[] | undefined, - isTypeOnly: boolean, - exportClause: NamedExportBindings | undefined, - moduleSpecifier: Expression | undefined, - assertClause: AssertClause | undefined, - ) { - const [dsNode, dsExportClause, dsModuleSpecifier, dsAssertClause] = downSample( - node, - exportClause, - moduleSpecifier, - assertClause, - ); - - return factory.updateExportDeclaration( - dsNode, - dsNode.decorators, - dsNode.modifiers, - isTypeOnly, - dsExportClause, - dsModuleSpecifier, - dsAssertClause, - ); - }; - } - case "updateModuleDeclaration": { - return function ( - node: ModuleDeclaration, - _modifiers: readonly Modifier[] | undefined, - name: ModuleName, - body: ModuleBody | undefined, - ) { - const [dsNode, dsName, dsBody] = downSample(node, name, body); - - return factory.updateModuleDeclaration(dsNode, dsNode.decorators, dsNode.modifiers, dsName, dsBody); - }; - } - default: { - // @ts-expect-error TS(7019) FIXME: Rest parameter 'args' implicitly has an 'any[]' type. - return (...args) => factory[prop](...args); - } - } -} - -export function downSample(...args: T): DownSampleTsTypes { - // @ts-expect-error TS(2322) FIXME: Type 'T' is not assignable to type 'DownSampleTsTypes'. - return args; -} - -// endregion diff --git a/src/harmony/versions/index.ts b/src/harmony/versions/index.ts deleted file mode 100644 index 457660e4..00000000 --- a/src/harmony/versions/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * as TsFourSeven from "./four-seven"; diff --git a/src/transformer.ts b/src/transformer.ts index 47228cd2..eed51591 100755 --- a/src/transformer.ts +++ b/src/transformer.ts @@ -2,7 +2,6 @@ import path from "node:path"; import ts, { CompilerOptions } from "typescript"; import { RunMode, TsNodeState, TsTransformPathsConfig, TsTransformPathsContext, VisitorContext } from "./types"; import { nodeVisitor } from "./visitor"; -import { createHarmonyFactory } from "./harmony"; import { Minimatch } from "minimatch"; import { createSyntheticEmitHost, getTsNodeRegistrationProperties } from "./utils/ts-helpers"; import { TransformerExtras } from "ts-patch"; @@ -139,7 +138,7 @@ export default function transformer( getVisitor() { return nodeVisitor.bind(this); }, - factory: createHarmonyFactory(tsTransformPathsContext), + factory: (tsTransformPathsContext.tsFactory ?? tsTransformPathsContext.tsInstance) as ts.NodeFactory, }; return tsInstance.visitEachChild(sourceFile, visitorContext.getVisitor(), transformationContext); diff --git a/src/types.ts b/src/types.ts index a57e1015..4e63ddec 100755 --- a/src/types.ts +++ b/src/types.ts @@ -2,8 +2,6 @@ import ts, { CompilerOptions, EmitHost, Pattern, SourceFile } from "typescript"; import { PluginConfig } from "ts-patch"; import { Minimatch } from "minimatch"; -import { HarmonyFactory } from "./harmony"; - /* ****************************************************************************************************************** */ // region: TS Types /* ****************************************************************************************************************** */ @@ -49,7 +47,7 @@ export interface TsTransformPathsContext { } export interface VisitorContext extends TsTransformPathsContext { - readonly factory: HarmonyFactory; + readonly factory: ts.NodeFactory; readonly sourceFile: ts.SourceFile; readonly isDeclarationFile: boolean; readonly originalSourceFile: ts.SourceFile; diff --git a/test/config.ts b/test/config.ts index 6e5cd8bd..76d32c47 100755 --- a/test/config.ts +++ b/test/config.ts @@ -1,15 +1,7 @@ import ts from "typescript"; -import tsFourSeven from "typescript-4.7"; -import tsFiveFive from "typescript-5.5"; -import tsFiveSix from "typescript-5.6"; import path from "node:path"; -export const tsModules = [ - ["4.7.4", tsFourSeven, "typescript-4.7"], - ["5.5.4", tsFiveFive, "typescript-5.5"], - ["5.6.3", tsFiveSix, "typescript-5.6"], - ["Latest", ts, "typescript"], -]; +export const tsModules = [["Latest", ts, "typescript"]]; export const projectsPaths = path.join(__dirname, "./projects"); export const transformerPath = require.resolve("typescript-transform-paths"); diff --git a/test/package.json b/test/package.json index 18a4ac91..be40b5fe 100644 --- a/test/package.json +++ b/test/package.json @@ -22,9 +22,6 @@ "tsp1": "npm:ts-patch@1.*.*", "tsp2": "npm:ts-patch@2.*.*", "typescript": "^5.7.2", - "typescript-4.7": "npm:typescript@4.7.4", - "typescript-5.5": "npm:typescript@5.5.4", - "typescript-5.6": "npm:typescript@5.6.3", "typescript-transform-paths": "portal:../" }, "workspaces": [ diff --git a/test/prepare.mjs b/test/prepare.mjs index ee45cebc..730fa36f 100755 --- a/test/prepare.mjs +++ b/test/prepare.mjs @@ -4,7 +4,6 @@ import { symlink } from "node:fs/promises"; import { dirname, resolve } from "node:path"; import { fileURLToPath } from "node:url"; import { patch } from "ts-patch"; -import { patch as patch2 } from "tsp2"; const __dirname = dirname(fileURLToPath(import.meta.url)); // https://stackoverflow.com/questions/46745014/alternative-for-dirname-in-node-js-when-using-es6-modules @@ -27,9 +26,6 @@ function patchTsModules() { tspatch(["tsc.js", "typescript.js"], { basedir, dir: basedir }); } - patchTypescript("typescript-4.7", patch2); - patchTypescript("typescript-5.5", patch); - patchTypescript("typescript-5.6", patch); patchTypescript("typescript", patch); } diff --git a/test/tests/transformer/general.test.ts b/test/tests/transformer/general.test.ts index 3f987961..cbfb124f 100755 --- a/test/tests/transformer/general.test.ts +++ b/test/tests/transformer/general.test.ts @@ -50,9 +50,7 @@ describe(`Transformer -> General Tests`, () => { beforeAll(() => { transformed = transformedFiles[file]; expected = { - // @ts-expect-error TS(2345) FIXME: Argument of type 'typeof ts | typeof ts | typeof import("typescript")' is not assignable to parameter of type 'typeof import("typescript")'. js: getExpected(tsInstance, file, originalFiles[file].js, projectRoot), - // @ts-expect-error TS(2345) FIXME: Argument of type 'typeof ts | typeof ts | typeof import("typescript")' is not assignable to parameter of type 'typeof import("typescript")'. dts: getExpected(tsInstance, file, originalFiles[file].dts, projectRoot), }; }); diff --git a/test/yarn.lock b/test/yarn.lock index 7362e85c..66eec41f 100644 --- a/test/yarn.lock +++ b/test/yarn.lock @@ -8095,9 +8095,6 @@ __metadata: tsp1: "npm:ts-patch@1.*.*" tsp2: "npm:ts-patch@2.*.*" typescript: "npm:^5.7.2" - typescript-4.7: "npm:typescript@4.7.4" - typescript-5.5: "npm:typescript@5.5.4" - typescript-5.6: "npm:typescript@5.6.3" typescript-transform-paths: "portal:../" languageName: unknown linkType: soft @@ -9236,43 +9233,13 @@ __metadata: languageName: node linkType: hard -"typescript-4.7@npm:typescript@4.7.4": - version: 4.7.4 - resolution: "typescript@npm:4.7.4" - bin: - tsc: bin/tsc - tsserver: bin/tsserver - checksum: 10c0/8c1c4007b6ce5b24c49f0e89173ab9e82687cc6ae54418d1140bb63b82d6598d085ac0f993fe3d3d1fbf87a2c76f1f81d394dc76315bc72c7a9f8561c5d8d205 - languageName: node - linkType: hard - -"typescript-5.5@npm:typescript@5.5.4": - version: 5.5.4 - resolution: "typescript@npm:5.5.4" - bin: - tsc: bin/tsc - tsserver: bin/tsserver - checksum: 10c0/422be60f89e661eab29ac488c974b6cc0a660fb2228003b297c3d10c32c90f3bcffc1009b43876a082515a3c376b1eefcce823d6e78982e6878408b9a923199c - languageName: node - linkType: hard - -"typescript-5.6@npm:typescript@5.6.3": - version: 5.6.3 - resolution: "typescript@npm:5.6.3" - bin: - tsc: bin/tsc - tsserver: bin/tsserver - checksum: 10c0/44f61d3fb15c35359bc60399cb8127c30bae554cd555b8e2b46d68fa79d680354b83320ad419ff1b81a0bdf324197b29affe6cc28988cd6a74d4ac60c94f9799 - languageName: node - linkType: hard - "typescript-transform-paths@portal:../::locator=root-workspace-0b6124%40workspace%3A.": version: 0.0.0-use.local resolution: "typescript-transform-paths@portal:../::locator=root-workspace-0b6124%40workspace%3A." dependencies: minimatch: "npm:^9.0.5" peerDependencies: - typescript: ">=4" + typescript: ">=5" languageName: node linkType: soft diff --git a/yarn.lock b/yarn.lock index 6494cebb..5fa74398 100644 --- a/yarn.lock +++ b/yarn.lock @@ -395,16 +395,6 @@ __metadata: languageName: node linkType: hard -"@types/typescript-4.7@npm:typescript@4.7.x": - version: 4.7.4 - resolution: "typescript@npm:4.7.4" - bin: - tsc: bin/tsc - tsserver: bin/tsserver - checksum: 10c0/8c1c4007b6ce5b24c49f0e89173ab9e82687cc6ae54418d1140bb63b82d6598d085ac0f993fe3d3d1fbf87a2c76f1f81d394dc76315bc72c7a9f8561c5d8d205 - languageName: node - linkType: hard - "@types/unist@npm:*, @types/unist@npm:^3.0.0": version: 3.0.3 resolution: "@types/unist@npm:3.0.3" @@ -2928,7 +2918,6 @@ __metadata: "@types/node": "npm:^22.5.2" "@types/ts-expose-internals": "npm:ts-expose-internals@4.9.5" "@types/ts-node": "npm:ts-node@^10.9.2" - "@types/typescript-4.7": "npm:typescript@4.7.x" changelogen: "npm:^0.5.5" eslint: "npm:9.x" globals: "npm:^15.9.0" @@ -2939,7 +2928,7 @@ __metadata: typescript: "npm:^5.5.4" typescript-eslint: "npm:^8.3.0" peerDependencies: - typescript: ">=4" + typescript: ">=5" languageName: unknown linkType: soft From ad2f5473191d09c443db7fcb044ecbcab4789385 Mon Sep 17 00:00:00 2001 From: Daniel Perez Alvarez Date: Sat, 21 Dec 2024 17:12:14 -0800 Subject: [PATCH 12/17] update patch --- test/prepare.mjs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/test/prepare.mjs b/test/prepare.mjs index 45e327c5..5100d2a8 100755 --- a/test/prepare.mjs +++ b/test/prepare.mjs @@ -16,7 +16,11 @@ async function symlinkTsNode() { const target = resolve(__dirname, "node_modules/ts-node"); const path = resolve(__dirname, "../node_modules/ts-node"); - if (!existsSync(path)) await symlink(target, path, "junction"); + try { + await symlink(target, path, "junction"); + } catch (error) { + if (error.code !== "EEXIST") throw error; + } } function patchTsModules() { From d80777a1c5a9912951a3eca58653fa7007696cae Mon Sep 17 00:00:00 2001 From: Daniel Perez Alvarez Date: Sat, 17 Aug 2024 22:04:28 -0400 Subject: [PATCH 13/17] chore!: remove main and types package.json properties --- nx-transformer.js | 6 ------ package.json | 2 -- register.js | 5 ----- 3 files changed, 13 deletions(-) delete mode 100644 nx-transformer.js delete mode 100644 register.js diff --git a/nx-transformer.js b/nx-transformer.js deleted file mode 100644 index 5b2db777..00000000 --- a/nx-transformer.js +++ /dev/null @@ -1,6 +0,0 @@ -// Keeping register here in the root for backwards compatibiliy, TODO remove in the next major version -console.warn( - "typescript-transform-paths: Calling the top level nx-transformer file is deprecated and will be removed in the future. Use a tool that supports package.json exports", -); - -module.exports = require("./dist/plugins/nx-transfomer-plugin").default; diff --git a/package.json b/package.json index 50d128c8..259bdcc8 100644 --- a/package.json +++ b/package.json @@ -3,8 +3,6 @@ "version": "3.5.2", "description": "Transforms module resolution paths using TypeScript path mapping and/or custom paths", "type": "commonjs", - "main": "./dist/index.js", - "types": "types/index.d.ts", "exports": { ".": { "types": "./dist/index.d.ts", diff --git a/register.js b/register.js deleted file mode 100644 index d0bcee87..00000000 --- a/register.js +++ /dev/null @@ -1,5 +0,0 @@ -// Keeping register here in the root for backwards compatibiliy, TODO remove in the next major version -console.warn( - "typescript-transform-paths: Calling the top level register file is deprecated and will be removed in the future. Use a tool that supports package.json exports", -); -require("./dist/register-entry"); From 9917058b2093ba498a732b03b99dd15641c94657 Mon Sep 17 00:00:00 2001 From: Daniel Perez Alvarez Date: Mon, 2 Sep 2024 20:32:09 -0400 Subject: [PATCH 14/17] chore!: remove typescript 3 support --- package.json | 5 +- src/harmony/harmony-factory.ts | 6 +- src/harmony/versions/index.ts | 1 - src/harmony/versions/three-eight.ts | 158 ---------------------------- test/config.ts | 2 - test/package.json | 1 - test/prepare.mjs | 2 - test/yarn.lock | 13 +-- yarn.lock | 32 +++--- 9 files changed, 19 insertions(+), 201 deletions(-) delete mode 100644 src/harmony/versions/three-eight.ts diff --git a/package.json b/package.json index 259bdcc8..1a0a36aa 100644 --- a/package.json +++ b/package.json @@ -66,8 +66,7 @@ "@types/node": "^22.5.2", "@types/ts-expose-internals": "npm:ts-expose-internals@4.9.5", "@types/ts-node": "npm:ts-node@^10.9.2", - "@types/typescript-3": "npm:typescript@3.x", - "@types/typescript-4.7": "npm:typescript@4.9.x", + "@types/typescript-4.7": "npm:typescript@4.7.x", "changelogen": "^0.5.5", "eslint": "9.x", "globals": "^15.9.0", @@ -78,7 +77,7 @@ "typescript-eslint": "^8.3.0" }, "peerDependencies": { - "typescript": ">=3.6.5" + "typescript": ">=4" }, "dependencies": { "minimatch": "^9.0.5" diff --git a/src/harmony/harmony-factory.ts b/src/harmony/harmony-factory.ts index 1b002762..3c95f0c2 100644 --- a/src/harmony/harmony-factory.ts +++ b/src/harmony/harmony-factory.ts @@ -1,6 +1,6 @@ import TS from "typescript"; import { TsTransformPathsContext } from "../types"; -import { TsFourSeven, TsThreeEight } from "./versions"; +import { TsFourSeven } from "./versions"; /* ****************************************************************************************************************** */ // region: Types @@ -18,9 +18,7 @@ export interface HarmonyFactory extends TS.NodeFactory {} export function createHarmonyFactory(context: TsTransformPathsContext): HarmonyFactory { return new Proxy(context.tsFactory ?? context.tsInstance, { get(target, prop) { - if (TsThreeEight.predicate(context)) { - return TsThreeEight.handler(context, prop); - } else if (TsFourSeven.predicate(context)) { + if (TsFourSeven.predicate(context)) { return TsFourSeven.handler(context, prop); } else { // @ts-expect-error TS(7053) FIXME: Element implicitly has an 'any' type because expression of type 'string | symbol' can't be used to index type 'typeof import("typescript") | NodeFactory'. diff --git a/src/harmony/versions/index.ts b/src/harmony/versions/index.ts index 4fcadcde..457660e4 100644 --- a/src/harmony/versions/index.ts +++ b/src/harmony/versions/index.ts @@ -1,2 +1 @@ -export * as TsThreeEight from "./three-eight"; export * as TsFourSeven from "./four-seven"; diff --git a/src/harmony/versions/three-eight.ts b/src/harmony/versions/three-eight.ts deleted file mode 100644 index e9e615eb..00000000 --- a/src/harmony/versions/three-eight.ts +++ /dev/null @@ -1,158 +0,0 @@ -/** Changes after this point: https://github.com/microsoft/TypeScript/wiki/API-Breaking-Changes#typescript-40 */ -import type { - default as TsCurrentModule, - EntityName, - ExportDeclaration, - Expression, - Identifier, - ImportClause, - ImportDeclaration, - ImportTypeAssertionContainer, - ImportTypeNode, - Modifier, - ModuleBody, - ModuleDeclaration, - ModuleName, - NamedExportBindings, - NamedImportBindings, - TypeNode, -} from "typescript"; -import type TsThreeEightModule from "typescript-3"; -import type { TsTransformPathsContext } from "../../types"; -import type { DownSampleTsTypes } from "../utils"; - -/* ****************************************************************************************************************** */ -// region: Mapping -/* ****************************************************************************************************************** */ - -export type TypeMap = [ - [TsCurrentModule.SourceFile, TsThreeEightModule.SourceFile], - [TsCurrentModule.StringLiteral, TsThreeEightModule.StringLiteral], - [TsCurrentModule.CompilerOptions, TsThreeEightModule.CompilerOptions], - // @ts-expect-error typescript 3 doesn't export EmitResolver - [TsCurrentModule.EmitResolver, TsThreeEightModule.EmitResolver], - [TsCurrentModule.CallExpression, TsThreeEightModule.CallExpression], - [TsCurrentModule.ExternalModuleReference, TsThreeEightModule.ExternalModuleReference], - [TsCurrentModule.LiteralTypeNode, TsThreeEightModule.LiteralTypeNode], - [TsCurrentModule.ExternalModuleReference, TsThreeEightModule.ExternalModuleReference], - [TsCurrentModule.ImportTypeNode, TsThreeEightModule.ImportTypeNode], - [TsCurrentModule.EntityName, TsThreeEightModule.EntityName], - [TsCurrentModule.TypeNode, TsThreeEightModule.TypeNode], - [readonly TsCurrentModule.TypeNode[], readonly TsThreeEightModule.TypeNode[]], - [TsCurrentModule.LiteralTypeNode, TsThreeEightModule.LiteralTypeNode], - [TsCurrentModule.ImportDeclaration, TsThreeEightModule.ImportDeclaration], - [TsCurrentModule.ImportClause, TsThreeEightModule.ImportClause], - [TsCurrentModule.Identifier, TsThreeEightModule.Identifier], - [TsCurrentModule.NamedImportBindings, TsThreeEightModule.NamedImportBindings], - [TsCurrentModule.ImportDeclaration, TsThreeEightModule.ImportDeclaration], - [TsCurrentModule.ExportDeclaration, TsThreeEightModule.ExportDeclaration], - [TsCurrentModule.ModuleDeclaration, TsThreeEightModule.ModuleDeclaration], - [TsCurrentModule.Expression, TsThreeEightModule.Expression], - [TsCurrentModule.ModuleBody, TsThreeEightModule.ModuleBody], - [TsCurrentModule.ModuleName, TsThreeEightModule.ModuleName], - [TsCurrentModule.ExportDeclaration["exportClause"], TsThreeEightModule.ExportDeclaration["exportClause"]], -]; - -// endregion - -/* ****************************************************************************************************************** */ -// region: Utils -/* ****************************************************************************************************************** */ - -export const predicate = (context: TsTransformPathsContext) => context.tsVersionMajor < 4; - -export function handler(context: TsTransformPathsContext, prop: string | symbol) { - const ts = context.tsInstance as unknown as typeof TsThreeEightModule; - - switch (prop) { - case "updateCallExpression": { - // @ts-expect-error TS(7019) FIXME: Rest parameter 'args' implicitly has an 'any[]' type. - return (...args) => ts.updateCall.apply(void 0, args); - } - case "updateImportClause": { - return function ( - node: ImportClause, - _isTypeOnly: boolean, - name: Identifier | undefined, - namedBindings: NamedImportBindings | undefined, - ) { - // @ts-expect-error TODO investigate type issue - return ts.updateImportClause.apply(void 0, downSample(node, name, namedBindings)); - }; - } - case "updateImportDeclaration": { - return function ( - node: ImportDeclaration, - _modifiers: readonly Modifier[] | undefined, - importClause: ImportClause | undefined, - moduleSpecifier: Expression, - ) { - const [dsNode, dsImportClause, dsModuleSpecifier] = downSample(node, importClause, moduleSpecifier); - - return ts.updateImportDeclaration( - dsNode, - dsNode.decorators, - dsNode.modifiers, - dsImportClause, - dsModuleSpecifier, - ); - }; - } - case "updateExportDeclaration": { - return function ( - node: ExportDeclaration, - _modifiers: readonly Modifier[] | undefined, - _isTypeOnly: boolean, - exportClause: NamedExportBindings | undefined, - moduleSpecifier: Expression | undefined, - ) { - const [dsNode, dsModuleSpecifier, dsExportClause] = downSample(node, moduleSpecifier, exportClause); - return ts.updateExportDeclaration( - dsNode, - dsNode.decorators, - dsNode.modifiers, - dsExportClause, - dsModuleSpecifier, - dsNode.isTypeOnly, - ); - }; - } - case "updateModuleDeclaration": { - return function ( - node: ModuleDeclaration, - _modifiers: readonly Modifier[] | undefined, - name: ModuleName, - body: ModuleBody | undefined, - ) { - const [dsNode, dsName, dsBody] = downSample(node, name, body); - - return ts.updateModuleDeclaration(dsNode, dsNode.decorators, dsNode.modifiers, dsName, dsBody); - }; - } - case "updateImportTypeNode": { - return function ( - node: ImportTypeNode, - argument: TypeNode, - _assertions: ImportTypeAssertionContainer | undefined, - qualifier: EntityName | undefined, - typeArguments: readonly TypeNode[] | undefined, - isTypeOf?: boolean, - ) { - const [dsNode, dsArgument, dsQualifier, dsTypeArguments] = downSample(node, argument, qualifier, typeArguments); - - return ts.updateImportTypeNode(dsNode, dsArgument, dsQualifier, dsTypeArguments, isTypeOf); - }; - } - default: { - // @ts-expect-error TS(7019) FIXME: Rest parameter 'args' implicitly has an 'any[]' type. - return (...args) => ts[prop](...args); - } - } -} - -export function downSample(...args: T): DownSampleTsTypes { - // @ts-expect-error TS(2322) FIXME: Type 'T' is not assignable to type 'DownSampleTsTypes'. - return args; -} - -// endregion diff --git a/test/config.ts b/test/config.ts index 5b1566e1..6e5cd8bd 100755 --- a/test/config.ts +++ b/test/config.ts @@ -1,12 +1,10 @@ import ts from "typescript"; -import tsThree from "typescript-3"; import tsFourSeven from "typescript-4.7"; import tsFiveFive from "typescript-5.5"; import tsFiveSix from "typescript-5.6"; import path from "node:path"; export const tsModules = [ - ["3.6.5", tsThree, "typescript-3"], ["4.7.4", tsFourSeven, "typescript-4.7"], ["5.5.4", tsFiveFive, "typescript-5.5"], ["5.6.3", tsFiveSix, "typescript-5.6"], diff --git a/test/package.json b/test/package.json index 430b36cd..18a4ac91 100644 --- a/test/package.json +++ b/test/package.json @@ -22,7 +22,6 @@ "tsp1": "npm:ts-patch@1.*.*", "tsp2": "npm:ts-patch@2.*.*", "typescript": "^5.7.2", - "typescript-3": "npm:typescript@3.6.5", "typescript-4.7": "npm:typescript@4.7.4", "typescript-5.5": "npm:typescript@5.5.4", "typescript-5.6": "npm:typescript@5.6.3", diff --git a/test/prepare.mjs b/test/prepare.mjs index 45e327c5..ee45cebc 100755 --- a/test/prepare.mjs +++ b/test/prepare.mjs @@ -4,7 +4,6 @@ import { symlink } from "node:fs/promises"; import { dirname, resolve } from "node:path"; import { fileURLToPath } from "node:url"; import { patch } from "ts-patch"; -import { patch as patch1 } from "tsp1"; import { patch as patch2 } from "tsp2"; const __dirname = dirname(fileURLToPath(import.meta.url)); // https://stackoverflow.com/questions/46745014/alternative-for-dirname-in-node-js-when-using-es6-modules @@ -28,7 +27,6 @@ function patchTsModules() { tspatch(["tsc.js", "typescript.js"], { basedir, dir: basedir }); } - patchTypescript("typescript-3", patch1); patchTypescript("typescript-4.7", patch2); patchTypescript("typescript-5.5", patch); patchTypescript("typescript-5.6", patch); diff --git a/test/yarn.lock b/test/yarn.lock index cf729680..7362e85c 100644 --- a/test/yarn.lock +++ b/test/yarn.lock @@ -8095,7 +8095,6 @@ __metadata: tsp1: "npm:ts-patch@1.*.*" tsp2: "npm:ts-patch@2.*.*" typescript: "npm:^5.7.2" - typescript-3: "npm:typescript@3.6.5" typescript-4.7: "npm:typescript@4.7.4" typescript-5.5: "npm:typescript@5.5.4" typescript-5.6: "npm:typescript@5.6.3" @@ -9237,16 +9236,6 @@ __metadata: languageName: node linkType: hard -"typescript-3@npm:typescript@3.6.5": - version: 3.6.5 - resolution: "typescript@npm:3.6.5" - bin: - tsc: bin/tsc - tsserver: bin/tsserver - checksum: 10c0/b6f0d5d2e2325b28460b8cf3a4a1237d79aec9951ad727014d4ca570327cc5947decec5d262044979cc0a9ab63746b58e6d8438d73d33ce8415e5369d0490dff - languageName: node - linkType: hard - "typescript-4.7@npm:typescript@4.7.4": version: 4.7.4 resolution: "typescript@npm:4.7.4" @@ -9283,7 +9272,7 @@ __metadata: dependencies: minimatch: "npm:^9.0.5" peerDependencies: - typescript: ">=3.6.5" + typescript: ">=4" languageName: node linkType: soft diff --git a/yarn.lock b/yarn.lock index 720e6f44..6494cebb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -74,13 +74,20 @@ __metadata: languageName: node linkType: hard -"@eslint/js@npm:9.17.0, @eslint/js@npm:^9.9.1": +"@eslint/js@npm:9.17.0": version: 9.17.0 resolution: "@eslint/js@npm:9.17.0" checksum: 10c0/a0fda8657a01c60aa540f95397754267ba640ffb126e011b97fd65c322a94969d161beeaef57c1441c495da2f31167c34bd38209f7c146c7225072378c3a933d languageName: node linkType: hard +"@eslint/js@npm:^9.9.1": + version: 9.15.0 + resolution: "@eslint/js@npm:9.15.0" + checksum: 10c0/56552966ab1aa95332f70d0e006db5746b511c5f8b5e0c6a9b2d6764ff6d964e0b2622731877cbc4e3f0e74c5b39191290d5f48147be19175292575130d499ab + languageName: node + linkType: hard + "@eslint/object-schema@npm:^2.1.4": version: 2.1.4 resolution: "@eslint/object-schema@npm:2.1.4" @@ -388,23 +395,13 @@ __metadata: languageName: node linkType: hard -"@types/typescript-3@npm:typescript@3.x": - version: 3.9.10 - resolution: "typescript@npm:3.9.10" - bin: - tsc: bin/tsc - tsserver: bin/tsserver - checksum: 10c0/863cc06070fa18a0f9c6a83265fb4922a8b51bf6f2c6760fb0b73865305ce617ea4bc6477381f9f4b7c3a8cb4a455b054f5469e6e41307733fe6a2bd9aae82f8 - languageName: node - linkType: hard - -"@types/typescript-4.7@npm:typescript@4.9.x": - version: 4.9.5 - resolution: "typescript@npm:4.9.5" +"@types/typescript-4.7@npm:typescript@4.7.x": + version: 4.7.4 + resolution: "typescript@npm:4.7.4" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 10c0/5f6cad2e728a8a063521328e612d7876e12f0d8a8390d3b3aaa452a6a65e24e9ac8ea22beb72a924fd96ea0a49ea63bb4e251fb922b12eedfb7f7a26475e5c56 + checksum: 10c0/8c1c4007b6ce5b24c49f0e89173ab9e82687cc6ae54418d1140bb63b82d6598d085ac0f993fe3d3d1fbf87a2c76f1f81d394dc76315bc72c7a9f8561c5d8d205 languageName: node linkType: hard @@ -2931,8 +2928,7 @@ __metadata: "@types/node": "npm:^22.5.2" "@types/ts-expose-internals": "npm:ts-expose-internals@4.9.5" "@types/ts-node": "npm:ts-node@^10.9.2" - "@types/typescript-3": "npm:typescript@3.x" - "@types/typescript-4.7": "npm:typescript@4.9.x" + "@types/typescript-4.7": "npm:typescript@4.7.x" changelogen: "npm:^0.5.5" eslint: "npm:9.x" globals: "npm:^15.9.0" @@ -2943,7 +2939,7 @@ __metadata: typescript: "npm:^5.5.4" typescript-eslint: "npm:^8.3.0" peerDependencies: - typescript: ">=3.6.5" + typescript: ">=4" languageName: unknown linkType: soft From d69d0107db3cd75d11a91d73fdcb636802a1117e Mon Sep 17 00:00:00 2001 From: Daniel Perez Alvarez Date: Sat, 14 Sep 2024 10:49:45 -0400 Subject: [PATCH 15/17] chore!: remove typescript 4.7 support --- package.json | 3 +- src/harmony/harmony-factory.ts | 31 ------ src/harmony/index.ts | 2 - src/harmony/utils.ts | 20 ---- src/harmony/versions/four-seven.ts | 125 ------------------------- src/harmony/versions/index.ts | 1 - src/transformer.ts | 3 +- src/types.ts | 4 +- test/config.ts | 10 +- test/package.json | 3 - test/prepare.mjs | 4 - test/tests/transformer/general.test.ts | 2 - test/yarn.lock | 35 +------ yarn.lock | 13 +-- 14 files changed, 6 insertions(+), 250 deletions(-) delete mode 100644 src/harmony/harmony-factory.ts delete mode 100644 src/harmony/index.ts delete mode 100644 src/harmony/utils.ts delete mode 100644 src/harmony/versions/four-seven.ts delete mode 100644 src/harmony/versions/index.ts diff --git a/package.json b/package.json index 1a0a36aa..4c254d99 100644 --- a/package.json +++ b/package.json @@ -66,7 +66,6 @@ "@types/node": "^22.5.2", "@types/ts-expose-internals": "npm:ts-expose-internals@4.9.5", "@types/ts-node": "npm:ts-node@^10.9.2", - "@types/typescript-4.7": "npm:typescript@4.7.x", "changelogen": "^0.5.5", "eslint": "9.x", "globals": "^15.9.0", @@ -77,7 +76,7 @@ "typescript-eslint": "^8.3.0" }, "peerDependencies": { - "typescript": ">=4" + "typescript": ">=5" }, "dependencies": { "minimatch": "^9.0.5" diff --git a/src/harmony/harmony-factory.ts b/src/harmony/harmony-factory.ts deleted file mode 100644 index 3c95f0c2..00000000 --- a/src/harmony/harmony-factory.ts +++ /dev/null @@ -1,31 +0,0 @@ -import TS from "typescript"; -import { TsTransformPathsContext } from "../types"; -import { TsFourSeven } from "./versions"; - -/* ****************************************************************************************************************** */ -// region: Types -/* ****************************************************************************************************************** */ - -export interface HarmonyFactory extends TS.NodeFactory {} - -// endregion - -/* ****************************************************************************************************************** */ -// region: Utilities -/* ****************************************************************************************************************** */ - -/** Creates a node factory compatible with TS v3+ */ -export function createHarmonyFactory(context: TsTransformPathsContext): HarmonyFactory { - return new Proxy(context.tsFactory ?? context.tsInstance, { - get(target, prop) { - if (TsFourSeven.predicate(context)) { - return TsFourSeven.handler(context, prop); - } else { - // @ts-expect-error TS(7053) FIXME: Element implicitly has an 'any' type because expression of type 'string | symbol' can't be used to index type 'typeof import("typescript") | NodeFactory'. - return target[prop]; - } - }, - }) as HarmonyFactory; -} - -// endregion diff --git a/src/harmony/index.ts b/src/harmony/index.ts deleted file mode 100644 index 34eee98b..00000000 --- a/src/harmony/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from "./versions"; -export * from "./harmony-factory"; diff --git a/src/harmony/utils.ts b/src/harmony/utils.ts deleted file mode 100644 index 2f0cb8e3..00000000 --- a/src/harmony/utils.ts +++ /dev/null @@ -1,20 +0,0 @@ -/* ****************************************************************************************************************** */ -// region: Utility Types -/* ****************************************************************************************************************** */ -// @formatter:off - -// @prettier-ignore -export type DownSampleTsTypes = { - [i in keyof Tuple]: Tuple[i] extends unknown[] - ? DownSampleTsTypes - : DownSampleTsType; -} & { - length: Tuple["length"]; -}; - -// @prettier-ignore -type DownSampleTsType = - T extends Exclude ? Extract[1] : T; - -// @formatter:on -// endregion diff --git a/src/harmony/versions/four-seven.ts b/src/harmony/versions/four-seven.ts deleted file mode 100644 index b09638da..00000000 --- a/src/harmony/versions/four-seven.ts +++ /dev/null @@ -1,125 +0,0 @@ -/** Changes after this point: https://github.com/microsoft/TypeScript/wiki/API-Breaking-Changes#typescript-48 */ -import type { - default as TsCurrentModule, - AssertClause, - ExportDeclaration, - Expression, - ImportClause, - ImportDeclaration, - Modifier, - ModuleBody, - ModuleDeclaration, - ModuleName, - NamedExportBindings, -} from "typescript"; -import type TsFourSevenModule from "typescript-4.7"; -import type { TsTransformPathsContext } from "../../types"; -import type { DownSampleTsTypes } from "../utils"; - -/* ****************************************************************************************************************** */ -// region: Mapping -/* ****************************************************************************************************************** */ - -export type TypeMap = [ - [TsCurrentModule.ImportDeclaration, TsFourSevenModule.ImportDeclaration], - [TsCurrentModule.Modifier, TsFourSevenModule.Modifier], - [TsCurrentModule.ImportClause, TsFourSevenModule.ImportClause], - [TsCurrentModule.Expression, TsFourSevenModule.Expression], - [TsCurrentModule.AssertClause, TsFourSevenModule.AssertClause], - [TsCurrentModule.ExportDeclaration, TsFourSevenModule.ExportDeclaration], - [TsCurrentModule.NamedExportBindings, TsFourSevenModule.NamedExportBindings], - [TsCurrentModule.ModuleDeclaration, TsFourSevenModule.ModuleDeclaration], - [TsCurrentModule.ModuleName, TsFourSevenModule.ModuleName], - [TsCurrentModule.ModuleBody, TsFourSevenModule.ModuleBody], -]; - -// endregion - -/* ****************************************************************************************************************** */ -// region: Utils -/* ****************************************************************************************************************** */ - -export const predicate = ({ tsVersionMajor, tsVersionMinor }: TsTransformPathsContext) => - tsVersionMajor == 4 && tsVersionMinor < 8; - -export function handler(context: TsTransformPathsContext, prop: string | symbol) { - const factory = context.tsFactory as unknown as TsFourSevenModule.NodeFactory; - - switch (prop) { - case "updateImportDeclaration": { - return function ( - node: ImportDeclaration, - _modifiers: readonly Modifier[] | undefined, - importClause: ImportClause | undefined, - moduleSpecifier: Expression, - assertClause: AssertClause | undefined, - ) { - const [dsNode, dsImportClause, dsModuleSpecifier, dsAssertClause] = downSample( - node, - importClause, - moduleSpecifier, - assertClause, - ); - - return factory.updateImportDeclaration( - dsNode, - dsNode.decorators, - dsNode.modifiers, - dsImportClause, - dsModuleSpecifier, - dsAssertClause, - ); - }; - } - case "updateExportDeclaration": { - return function ( - node: ExportDeclaration, - _modifiers: readonly Modifier[] | undefined, - isTypeOnly: boolean, - exportClause: NamedExportBindings | undefined, - moduleSpecifier: Expression | undefined, - assertClause: AssertClause | undefined, - ) { - const [dsNode, dsExportClause, dsModuleSpecifier, dsAssertClause] = downSample( - node, - exportClause, - moduleSpecifier, - assertClause, - ); - - return factory.updateExportDeclaration( - dsNode, - dsNode.decorators, - dsNode.modifiers, - isTypeOnly, - dsExportClause, - dsModuleSpecifier, - dsAssertClause, - ); - }; - } - case "updateModuleDeclaration": { - return function ( - node: ModuleDeclaration, - _modifiers: readonly Modifier[] | undefined, - name: ModuleName, - body: ModuleBody | undefined, - ) { - const [dsNode, dsName, dsBody] = downSample(node, name, body); - - return factory.updateModuleDeclaration(dsNode, dsNode.decorators, dsNode.modifiers, dsName, dsBody); - }; - } - default: { - // @ts-expect-error TS(7019) FIXME: Rest parameter 'args' implicitly has an 'any[]' type. - return (...args) => factory[prop](...args); - } - } -} - -export function downSample(...args: T): DownSampleTsTypes { - // @ts-expect-error TS(2322) FIXME: Type 'T' is not assignable to type 'DownSampleTsTypes'. - return args; -} - -// endregion diff --git a/src/harmony/versions/index.ts b/src/harmony/versions/index.ts deleted file mode 100644 index 457660e4..00000000 --- a/src/harmony/versions/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * as TsFourSeven from "./four-seven"; diff --git a/src/transformer.ts b/src/transformer.ts index 47228cd2..eed51591 100755 --- a/src/transformer.ts +++ b/src/transformer.ts @@ -2,7 +2,6 @@ import path from "node:path"; import ts, { CompilerOptions } from "typescript"; import { RunMode, TsNodeState, TsTransformPathsConfig, TsTransformPathsContext, VisitorContext } from "./types"; import { nodeVisitor } from "./visitor"; -import { createHarmonyFactory } from "./harmony"; import { Minimatch } from "minimatch"; import { createSyntheticEmitHost, getTsNodeRegistrationProperties } from "./utils/ts-helpers"; import { TransformerExtras } from "ts-patch"; @@ -139,7 +138,7 @@ export default function transformer( getVisitor() { return nodeVisitor.bind(this); }, - factory: createHarmonyFactory(tsTransformPathsContext), + factory: (tsTransformPathsContext.tsFactory ?? tsTransformPathsContext.tsInstance) as ts.NodeFactory, }; return tsInstance.visitEachChild(sourceFile, visitorContext.getVisitor(), transformationContext); diff --git a/src/types.ts b/src/types.ts index a57e1015..4e63ddec 100755 --- a/src/types.ts +++ b/src/types.ts @@ -2,8 +2,6 @@ import ts, { CompilerOptions, EmitHost, Pattern, SourceFile } from "typescript"; import { PluginConfig } from "ts-patch"; import { Minimatch } from "minimatch"; -import { HarmonyFactory } from "./harmony"; - /* ****************************************************************************************************************** */ // region: TS Types /* ****************************************************************************************************************** */ @@ -49,7 +47,7 @@ export interface TsTransformPathsContext { } export interface VisitorContext extends TsTransformPathsContext { - readonly factory: HarmonyFactory; + readonly factory: ts.NodeFactory; readonly sourceFile: ts.SourceFile; readonly isDeclarationFile: boolean; readonly originalSourceFile: ts.SourceFile; diff --git a/test/config.ts b/test/config.ts index 6e5cd8bd..76d32c47 100755 --- a/test/config.ts +++ b/test/config.ts @@ -1,15 +1,7 @@ import ts from "typescript"; -import tsFourSeven from "typescript-4.7"; -import tsFiveFive from "typescript-5.5"; -import tsFiveSix from "typescript-5.6"; import path from "node:path"; -export const tsModules = [ - ["4.7.4", tsFourSeven, "typescript-4.7"], - ["5.5.4", tsFiveFive, "typescript-5.5"], - ["5.6.3", tsFiveSix, "typescript-5.6"], - ["Latest", ts, "typescript"], -]; +export const tsModules = [["Latest", ts, "typescript"]]; export const projectsPaths = path.join(__dirname, "./projects"); export const transformerPath = require.resolve("typescript-transform-paths"); diff --git a/test/package.json b/test/package.json index 18a4ac91..be40b5fe 100644 --- a/test/package.json +++ b/test/package.json @@ -22,9 +22,6 @@ "tsp1": "npm:ts-patch@1.*.*", "tsp2": "npm:ts-patch@2.*.*", "typescript": "^5.7.2", - "typescript-4.7": "npm:typescript@4.7.4", - "typescript-5.5": "npm:typescript@5.5.4", - "typescript-5.6": "npm:typescript@5.6.3", "typescript-transform-paths": "portal:../" }, "workspaces": [ diff --git a/test/prepare.mjs b/test/prepare.mjs index ee45cebc..730fa36f 100755 --- a/test/prepare.mjs +++ b/test/prepare.mjs @@ -4,7 +4,6 @@ import { symlink } from "node:fs/promises"; import { dirname, resolve } from "node:path"; import { fileURLToPath } from "node:url"; import { patch } from "ts-patch"; -import { patch as patch2 } from "tsp2"; const __dirname = dirname(fileURLToPath(import.meta.url)); // https://stackoverflow.com/questions/46745014/alternative-for-dirname-in-node-js-when-using-es6-modules @@ -27,9 +26,6 @@ function patchTsModules() { tspatch(["tsc.js", "typescript.js"], { basedir, dir: basedir }); } - patchTypescript("typescript-4.7", patch2); - patchTypescript("typescript-5.5", patch); - patchTypescript("typescript-5.6", patch); patchTypescript("typescript", patch); } diff --git a/test/tests/transformer/general.test.ts b/test/tests/transformer/general.test.ts index 3f987961..cbfb124f 100755 --- a/test/tests/transformer/general.test.ts +++ b/test/tests/transformer/general.test.ts @@ -50,9 +50,7 @@ describe(`Transformer -> General Tests`, () => { beforeAll(() => { transformed = transformedFiles[file]; expected = { - // @ts-expect-error TS(2345) FIXME: Argument of type 'typeof ts | typeof ts | typeof import("typescript")' is not assignable to parameter of type 'typeof import("typescript")'. js: getExpected(tsInstance, file, originalFiles[file].js, projectRoot), - // @ts-expect-error TS(2345) FIXME: Argument of type 'typeof ts | typeof ts | typeof import("typescript")' is not assignable to parameter of type 'typeof import("typescript")'. dts: getExpected(tsInstance, file, originalFiles[file].dts, projectRoot), }; }); diff --git a/test/yarn.lock b/test/yarn.lock index 7362e85c..66eec41f 100644 --- a/test/yarn.lock +++ b/test/yarn.lock @@ -8095,9 +8095,6 @@ __metadata: tsp1: "npm:ts-patch@1.*.*" tsp2: "npm:ts-patch@2.*.*" typescript: "npm:^5.7.2" - typescript-4.7: "npm:typescript@4.7.4" - typescript-5.5: "npm:typescript@5.5.4" - typescript-5.6: "npm:typescript@5.6.3" typescript-transform-paths: "portal:../" languageName: unknown linkType: soft @@ -9236,43 +9233,13 @@ __metadata: languageName: node linkType: hard -"typescript-4.7@npm:typescript@4.7.4": - version: 4.7.4 - resolution: "typescript@npm:4.7.4" - bin: - tsc: bin/tsc - tsserver: bin/tsserver - checksum: 10c0/8c1c4007b6ce5b24c49f0e89173ab9e82687cc6ae54418d1140bb63b82d6598d085ac0f993fe3d3d1fbf87a2c76f1f81d394dc76315bc72c7a9f8561c5d8d205 - languageName: node - linkType: hard - -"typescript-5.5@npm:typescript@5.5.4": - version: 5.5.4 - resolution: "typescript@npm:5.5.4" - bin: - tsc: bin/tsc - tsserver: bin/tsserver - checksum: 10c0/422be60f89e661eab29ac488c974b6cc0a660fb2228003b297c3d10c32c90f3bcffc1009b43876a082515a3c376b1eefcce823d6e78982e6878408b9a923199c - languageName: node - linkType: hard - -"typescript-5.6@npm:typescript@5.6.3": - version: 5.6.3 - resolution: "typescript@npm:5.6.3" - bin: - tsc: bin/tsc - tsserver: bin/tsserver - checksum: 10c0/44f61d3fb15c35359bc60399cb8127c30bae554cd555b8e2b46d68fa79d680354b83320ad419ff1b81a0bdf324197b29affe6cc28988cd6a74d4ac60c94f9799 - languageName: node - linkType: hard - "typescript-transform-paths@portal:../::locator=root-workspace-0b6124%40workspace%3A.": version: 0.0.0-use.local resolution: "typescript-transform-paths@portal:../::locator=root-workspace-0b6124%40workspace%3A." dependencies: minimatch: "npm:^9.0.5" peerDependencies: - typescript: ">=4" + typescript: ">=5" languageName: node linkType: soft diff --git a/yarn.lock b/yarn.lock index 6494cebb..5fa74398 100644 --- a/yarn.lock +++ b/yarn.lock @@ -395,16 +395,6 @@ __metadata: languageName: node linkType: hard -"@types/typescript-4.7@npm:typescript@4.7.x": - version: 4.7.4 - resolution: "typescript@npm:4.7.4" - bin: - tsc: bin/tsc - tsserver: bin/tsserver - checksum: 10c0/8c1c4007b6ce5b24c49f0e89173ab9e82687cc6ae54418d1140bb63b82d6598d085ac0f993fe3d3d1fbf87a2c76f1f81d394dc76315bc72c7a9f8561c5d8d205 - languageName: node - linkType: hard - "@types/unist@npm:*, @types/unist@npm:^3.0.0": version: 3.0.3 resolution: "@types/unist@npm:3.0.3" @@ -2928,7 +2918,6 @@ __metadata: "@types/node": "npm:^22.5.2" "@types/ts-expose-internals": "npm:ts-expose-internals@4.9.5" "@types/ts-node": "npm:ts-node@^10.9.2" - "@types/typescript-4.7": "npm:typescript@4.7.x" changelogen: "npm:^0.5.5" eslint: "npm:9.x" globals: "npm:^15.9.0" @@ -2939,7 +2928,7 @@ __metadata: typescript: "npm:^5.5.4" typescript-eslint: "npm:^8.3.0" peerDependencies: - typescript: ">=4" + typescript: ">=5" languageName: unknown linkType: soft From b555498e710a6ff58cfc646ff55d72cecd292cb3 Mon Sep 17 00:00:00 2001 From: Daniel Perez Alvarez Date: Sat, 21 Dec 2024 17:24:10 -0800 Subject: [PATCH 16/17] fix type issues --- test/tests/register.test.ts | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/test/tests/register.test.ts b/test/tests/register.test.ts index 067fe883..44c90327 100755 --- a/test/tests/register.test.ts +++ b/test/tests/register.test.ts @@ -1,3 +1,4 @@ +import type { MockInstance } from "vitest"; import * as tsNode from "ts-node"; import { REGISTER_INSTANCE } from "ts-node"; import { PluginConfig } from "ts-patch"; @@ -49,7 +50,7 @@ describe(`Register script`, () => { test(`Registers initial ts-node if none found`, () => { const originalTsNodeInstance = global.process[instanceSymbol]; global.process[instanceSymbol] = void 0; - let registerSpy: vi.SpyInstance | undefined; + let registerSpy: MockInstance | undefined; try { registerSpy = vi.spyOn(tsNode, "register"); expect(global.process[instanceSymbol]).toBeUndefined(); @@ -70,7 +71,7 @@ describe(`Register script`, () => { const originalTsNodeInstance = global.process[instanceSymbol]; // @ts-expect-error TS(2322) FIXME: Type 'unknown' is not assignable to type 'Service | undefined'. global.process[instanceSymbol] = fakeInstance; - let registerSpy: vi.SpyInstance | undefined; + let registerSpy: MockInstance | undefined; try { registerSpy = vi.spyOn(tsNode, "register"); @@ -156,8 +157,8 @@ describe(`Register script`, () => { } describe.each(configMap)(`$label`, ({ transformers, hasBefore, hasAfterDeclarations }) => { - let mockTransformer: vi.SpyInstance; - let initializeSpy: vi.SpyInstance; + let mockTransformer: MockInstance; + let initializeSpy: MockInstance; let registerResult: tsNode.RegisterOptions; let instanceRegistrationResult: tsNode.Service; let mergedTransformers: CustomTransformers; From 937d2010e8961828e49f3fc2934d209b6b13116f Mon Sep 17 00:00:00 2001 From: Daniel Perez Alvarez Date: Sat, 21 Dec 2024 17:30:09 -0800 Subject: [PATCH 17/17] update --- test/tests/nx.test.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/test/tests/nx.test.ts b/test/tests/nx.test.ts index 1b5e89b9..8c9f9228 100644 --- a/test/tests/nx.test.ts +++ b/test/tests/nx.test.ts @@ -1,3 +1,4 @@ +/* eslint @typescript-eslint/no-explicit-any: warn */ import { execSync } from "node:child_process"; import { readFileSync, rmSync } from "node:fs"; import path from "node:path"; @@ -8,6 +9,7 @@ import { nxTransformerPlugin } from "typescript-transform-paths"; import * as transformerModule from "../../dist/transformer"; import { projectsPaths } from "../config"; +import type { MockInstance } from "vitest"; /* ****************************************************************************************************************** * * Tests @@ -15,7 +17,7 @@ import { projectsPaths } from "../config"; describe(`NX Transformer`, () => { describe("Plugin", () => { - let mockedTransformer: vi.SpyInstance; + let mockedTransformer: MockInstance; const program = { x: 1 }; @@ -38,6 +40,7 @@ describe(`NX Transformer`, () => { expect(mockedTransformer).toHaveBeenCalledTimes(1); expect(mockedTransformer.mock.lastCall).toHaveLength(2); + // @ts-expect-error -- TODO fix later const [recProgram, recConfig] = mockedTransformer.mock.lastCall; expect(recProgram).toBe(program); expect(recConfig).toStrictEqual(config);