From 3bac75afaf4dd1c64fd51a3f774d2212ca43bbcc Mon Sep 17 00:00:00 2001 From: Will <82029448+wjthieme@users.noreply.github.com> Date: Fri, 1 Nov 2024 14:52:42 -0400 Subject: [PATCH] Fix a bug where building a package that includes `@orca-so/whirlpools` using `tsc` fails (#446) * Test * Tests * Remove nodejs bundle size test * Tweak * Fix --- ts-sdk/core/package.json | 16 +- ts-sdk/core/tests/size.test.ts | 8 +- ts-sdk/integration/configs/es6.json | 9 + ts-sdk/integration/configs/esnext.json | 9 + ts-sdk/integration/configs/nodenext.json | 9 + ts-sdk/integration/index.test.ts | 29 +++ ts-sdk/integration/index.ts | 9 + ts-sdk/integration/package.json | 16 ++ ts-sdk/integration/tsconfig.json | 7 + yarn.lock | 293 +++++++++++++++++++++++ 10 files changed, 391 insertions(+), 14 deletions(-) create mode 100644 ts-sdk/integration/configs/es6.json create mode 100644 ts-sdk/integration/configs/esnext.json create mode 100644 ts-sdk/integration/configs/nodenext.json create mode 100644 ts-sdk/integration/index.test.ts create mode 100644 ts-sdk/integration/index.ts create mode 100644 ts-sdk/integration/package.json create mode 100644 ts-sdk/integration/tsconfig.json diff --git a/ts-sdk/core/package.json b/ts-sdk/core/package.json index 6632bc242..2028c4a77 100644 --- a/ts-sdk/core/package.json +++ b/ts-sdk/core/package.json @@ -4,25 +4,21 @@ "version": "0.0.1", "main": "./dist/nodejs/orca_whirlpools_core_js_bindings.js", "types": "./dist/nodejs/orca_whirlpools_core_js_bindings.d.ts", - "browser": "./dist/web/orca_whirlpools_core_js_bindings.js", + "browser": "./dist/browser/orca_whirlpools_core_js_bindings.js", "type": "module", "sideEffects": [ - "./dist/web/snippets/*" + "./dist/browser/snippets/*", + "./dist/browser/orca_whirlpools_core_js_bindings.js" ], "files": [ - "dist/nodejs/orca_whirlpools_core_js_bindings_bg.wasm", - "dist/nodejs/orca_whirlpools_core_js_bindings.js", - "dist/nodejs/orca_whirlpools_core_js_bindings.d.ts", - "dist/web/orca_whirlpools_core_js_bindings_bg.wasm", - "dist/web/orca_whirlpools_core_js_bindings.js", - "dist/web/orca_whirlpools_core_js_bindings.d.ts", + "dist", "README.md" ], "scripts": { - "build": "wasm-pack build --out-dir ./dist/web --target web && wasm-pack build --out-dir ./dist/nodejs --target nodejs", + "build": "wasm-pack build --out-dir ./dist/nodejs --target nodejs && wasm-pack build --out-dir ./dist/browser --target browser", "test": "tsc --noEmit && vitest run tests", "clean": "cargo clean && rimraf dist", - "prepublishOnly": "rimraf dist/web/.gitignore dist/nodejs/.gitignore" + "prepublishOnly": "rimraf dist/nodejs/.gitignore dist/browser/.gitignore" }, "devDependencies": { "@orca-so/whirlpools-client": "*", diff --git a/ts-sdk/core/tests/size.test.ts b/ts-sdk/core/tests/size.test.ts index 254fcdd7e..5c92f8df8 100644 --- a/ts-sdk/core/tests/size.test.ts +++ b/ts-sdk/core/tests/size.test.ts @@ -5,8 +5,8 @@ import { describe, it } from "vitest"; const WASM_SIZE_LIMIT = 25000; // 25KB -describe("WASM bundle size", () => { - it.skip("NodeJS", () => { +describe("Bundle size", () => { + it.skip("nodejs", () => { const output = execSync( "gzip -c dist/nodejs/orca_whirlpools_core_js_bindings_bg.wasm | wc -c", ).toString(); @@ -18,9 +18,9 @@ describe("WASM bundle size", () => { } }); - it.skip("Web", () => { + it.skip("browser", () => { const output = execSync( - "gzip -c dist/web/orca_whirlpools_core_js_bindings_bg.wasm | wc -c", + "gzip -c dist/browser/orca_whirlpools_core_js_bindings_bg.wasm | wc -c", ).toString(); const size = parseInt(output); if (size > WASM_SIZE_LIMIT) { diff --git a/ts-sdk/integration/configs/es6.json b/ts-sdk/integration/configs/es6.json new file mode 100644 index 000000000..3ffe07367 --- /dev/null +++ b/ts-sdk/integration/configs/es6.json @@ -0,0 +1,9 @@ +{ + "compilerOptions": { + "target": "ES6", + "module": "ES6", + "moduleResolution": "Node", + "skipLibCheck": true + }, + "include": ["../index.ts"] +} diff --git a/ts-sdk/integration/configs/esnext.json b/ts-sdk/integration/configs/esnext.json new file mode 100644 index 000000000..1a4773a66 --- /dev/null +++ b/ts-sdk/integration/configs/esnext.json @@ -0,0 +1,9 @@ +{ + "compilerOptions": { + "target": "ESNext", + "module": "ESNext", + "moduleResolution": "Node", + "skipLibCheck": true + }, + "include": ["../index.ts"] +} diff --git a/ts-sdk/integration/configs/nodenext.json b/ts-sdk/integration/configs/nodenext.json new file mode 100644 index 000000000..e5260f793 --- /dev/null +++ b/ts-sdk/integration/configs/nodenext.json @@ -0,0 +1,9 @@ +{ + "compilerOptions": { + "target": "ESNext", + "module": "NodeNext", + "moduleResolution": "NodeNext", + "skipLibCheck": true + }, + "include": ["../index.ts"] +} diff --git a/ts-sdk/integration/index.test.ts b/ts-sdk/integration/index.test.ts new file mode 100644 index 000000000..3d672ddfb --- /dev/null +++ b/ts-sdk/integration/index.test.ts @@ -0,0 +1,29 @@ +import assert from "assert"; +import { execSync } from "child_process"; +import { readdirSync } from "fs"; +import { describe, it } from "vitest"; + +const commandTemplates = [ + "tsx --tsconfig {} ./index.ts", + "tsc --project {} --outDir ./dist && node ./dist/index.js", + // FIXME: ts-node does not play nice with ESM since node 20 + // "ts-node --esm --project {} ./index.ts", + // TODO: should we also add browser/bundler? +] + +// commonjs not included here because wasm wouldn't support it +const tsConfigs = readdirSync("./configs"); + +describe("Integration", () => { + commandTemplates.forEach(template => { + tsConfigs.forEach(config => { + const command = template.replace("{}", `./configs/${config}`); + it(`Use '${command}'`, () => { + const output = execSync(command).toString(); + assert(output.includes("2LecshUwdy9xi7meFgHtFJQNSKk4KdTrcpvaB56dP2NQ")); + assert(output.includes("256")); + assert(output.includes("whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc")); + }); + }); + }); +}); diff --git a/ts-sdk/integration/index.ts b/ts-sdk/integration/index.ts new file mode 100644 index 000000000..730767b44 --- /dev/null +++ b/ts-sdk/integration/index.ts @@ -0,0 +1,9 @@ +import { DEFAULT_WHIRLPOOLS_CONFIG_ADDRESS } from "@orca-so/whirlpools"; +import { _POSITION_BUNDLE_SIZE } from "@orca-so/whirlpools-core"; +import { WHIRLPOOL_PROGRAM_ADDRESS } from "@orca-so/whirlpools-client"; + +console.info( + DEFAULT_WHIRLPOOLS_CONFIG_ADDRESS, + _POSITION_BUNDLE_SIZE(), + WHIRLPOOL_PROGRAM_ADDRESS, +); diff --git a/ts-sdk/integration/package.json b/ts-sdk/integration/package.json new file mode 100644 index 000000000..2d5741b33 --- /dev/null +++ b/ts-sdk/integration/package.json @@ -0,0 +1,16 @@ +{ + "name": "@orca-so/whirlpools-integration", + "private": true, + "type": "module", + "scripts": { + "build": "tsc --noEmit", + "test": "vitest run index.test.ts" + }, + "dependencies": { + "@orca-so/whirlpools": "*" + }, + "devDependencies": { + "tsx": "^4.19.0", + "typescript": "^5.6.3" + } +} diff --git a/ts-sdk/integration/tsconfig.json b/ts-sdk/integration/tsconfig.json new file mode 100644 index 000000000..2224dfa16 --- /dev/null +++ b/ts-sdk/integration/tsconfig.json @@ -0,0 +1,7 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "./dist" + }, + "include": ["index.ts"] +} diff --git a/yarn.lock b/yarn.lock index e7b57cf00..c9928b11e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2172,6 +2172,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/aix-ppc64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/aix-ppc64@npm:0.23.1" + conditions: os=aix & cpu=ppc64 + languageName: node + linkType: hard + "@esbuild/aix-ppc64@npm:0.24.0": version: 0.24.0 resolution: "@esbuild/aix-ppc64@npm:0.24.0" @@ -2186,6 +2193,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/android-arm64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/android-arm64@npm:0.23.1" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/android-arm64@npm:0.24.0": version: 0.24.0 resolution: "@esbuild/android-arm64@npm:0.24.0" @@ -2200,6 +2214,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/android-arm@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/android-arm@npm:0.23.1" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + "@esbuild/android-arm@npm:0.24.0": version: 0.24.0 resolution: "@esbuild/android-arm@npm:0.24.0" @@ -2214,6 +2235,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/android-x64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/android-x64@npm:0.23.1" + conditions: os=android & cpu=x64 + languageName: node + linkType: hard + "@esbuild/android-x64@npm:0.24.0": version: 0.24.0 resolution: "@esbuild/android-x64@npm:0.24.0" @@ -2228,6 +2256,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/darwin-arm64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/darwin-arm64@npm:0.23.1" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/darwin-arm64@npm:0.24.0": version: 0.24.0 resolution: "@esbuild/darwin-arm64@npm:0.24.0" @@ -2242,6 +2277,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/darwin-x64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/darwin-x64@npm:0.23.1" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + "@esbuild/darwin-x64@npm:0.24.0": version: 0.24.0 resolution: "@esbuild/darwin-x64@npm:0.24.0" @@ -2256,6 +2298,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/freebsd-arm64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/freebsd-arm64@npm:0.23.1" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/freebsd-arm64@npm:0.24.0": version: 0.24.0 resolution: "@esbuild/freebsd-arm64@npm:0.24.0" @@ -2270,6 +2319,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/freebsd-x64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/freebsd-x64@npm:0.23.1" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + "@esbuild/freebsd-x64@npm:0.24.0": version: 0.24.0 resolution: "@esbuild/freebsd-x64@npm:0.24.0" @@ -2284,6 +2340,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-arm64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/linux-arm64@npm:0.23.1" + conditions: os=linux & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/linux-arm64@npm:0.24.0": version: 0.24.0 resolution: "@esbuild/linux-arm64@npm:0.24.0" @@ -2298,6 +2361,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-arm@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/linux-arm@npm:0.23.1" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + "@esbuild/linux-arm@npm:0.24.0": version: 0.24.0 resolution: "@esbuild/linux-arm@npm:0.24.0" @@ -2312,6 +2382,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-ia32@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/linux-ia32@npm:0.23.1" + conditions: os=linux & cpu=ia32 + languageName: node + linkType: hard + "@esbuild/linux-ia32@npm:0.24.0": version: 0.24.0 resolution: "@esbuild/linux-ia32@npm:0.24.0" @@ -2326,6 +2403,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-loong64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/linux-loong64@npm:0.23.1" + conditions: os=linux & cpu=loong64 + languageName: node + linkType: hard + "@esbuild/linux-loong64@npm:0.24.0": version: 0.24.0 resolution: "@esbuild/linux-loong64@npm:0.24.0" @@ -2340,6 +2424,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-mips64el@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/linux-mips64el@npm:0.23.1" + conditions: os=linux & cpu=mips64el + languageName: node + linkType: hard + "@esbuild/linux-mips64el@npm:0.24.0": version: 0.24.0 resolution: "@esbuild/linux-mips64el@npm:0.24.0" @@ -2354,6 +2445,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-ppc64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/linux-ppc64@npm:0.23.1" + conditions: os=linux & cpu=ppc64 + languageName: node + linkType: hard + "@esbuild/linux-ppc64@npm:0.24.0": version: 0.24.0 resolution: "@esbuild/linux-ppc64@npm:0.24.0" @@ -2368,6 +2466,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-riscv64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/linux-riscv64@npm:0.23.1" + conditions: os=linux & cpu=riscv64 + languageName: node + linkType: hard + "@esbuild/linux-riscv64@npm:0.24.0": version: 0.24.0 resolution: "@esbuild/linux-riscv64@npm:0.24.0" @@ -2382,6 +2487,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-s390x@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/linux-s390x@npm:0.23.1" + conditions: os=linux & cpu=s390x + languageName: node + linkType: hard + "@esbuild/linux-s390x@npm:0.24.0": version: 0.24.0 resolution: "@esbuild/linux-s390x@npm:0.24.0" @@ -2396,6 +2508,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-x64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/linux-x64@npm:0.23.1" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + "@esbuild/linux-x64@npm:0.24.0": version: 0.24.0 resolution: "@esbuild/linux-x64@npm:0.24.0" @@ -2410,6 +2529,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/netbsd-x64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/netbsd-x64@npm:0.23.1" + conditions: os=netbsd & cpu=x64 + languageName: node + linkType: hard + "@esbuild/netbsd-x64@npm:0.24.0": version: 0.24.0 resolution: "@esbuild/netbsd-x64@npm:0.24.0" @@ -2417,6 +2543,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/openbsd-arm64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/openbsd-arm64@npm:0.23.1" + conditions: os=openbsd & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/openbsd-arm64@npm:0.24.0": version: 0.24.0 resolution: "@esbuild/openbsd-arm64@npm:0.24.0" @@ -2431,6 +2564,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/openbsd-x64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/openbsd-x64@npm:0.23.1" + conditions: os=openbsd & cpu=x64 + languageName: node + linkType: hard + "@esbuild/openbsd-x64@npm:0.24.0": version: 0.24.0 resolution: "@esbuild/openbsd-x64@npm:0.24.0" @@ -2445,6 +2585,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/sunos-x64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/sunos-x64@npm:0.23.1" + conditions: os=sunos & cpu=x64 + languageName: node + linkType: hard + "@esbuild/sunos-x64@npm:0.24.0": version: 0.24.0 resolution: "@esbuild/sunos-x64@npm:0.24.0" @@ -2459,6 +2606,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/win32-arm64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/win32-arm64@npm:0.23.1" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/win32-arm64@npm:0.24.0": version: 0.24.0 resolution: "@esbuild/win32-arm64@npm:0.24.0" @@ -2473,6 +2627,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/win32-ia32@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/win32-ia32@npm:0.23.1" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + "@esbuild/win32-ia32@npm:0.24.0": version: 0.24.0 resolution: "@esbuild/win32-ia32@npm:0.24.0" @@ -2487,6 +2648,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/win32-x64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/win32-x64@npm:0.23.1" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@esbuild/win32-x64@npm:0.24.0": version: 0.24.0 resolution: "@esbuild/win32-x64@npm:0.24.0" @@ -3123,6 +3291,16 @@ __metadata: languageName: unknown linkType: soft +"@orca-so/whirlpools-integration@workspace:ts-sdk/integration": + version: 0.0.0-use.local + resolution: "@orca-so/whirlpools-integration@workspace:ts-sdk/integration" + dependencies: + "@orca-so/whirlpools": "npm:*" + tsx: "npm:^4.19.0" + typescript: "npm:^5.6.3" + languageName: unknown + linkType: soft + "@orca-so/whirlpools-lint@workspace:ts-sdk/lint": version: 0.0.0-use.local resolution: "@orca-so/whirlpools-lint@workspace:ts-sdk/lint" @@ -7882,6 +8060,89 @@ __metadata: languageName: node linkType: hard +"esbuild@npm:~0.23.0": + version: 0.23.1 + resolution: "esbuild@npm:0.23.1" + dependencies: + "@esbuild/aix-ppc64": "npm:0.23.1" + "@esbuild/android-arm": "npm:0.23.1" + "@esbuild/android-arm64": "npm:0.23.1" + "@esbuild/android-x64": "npm:0.23.1" + "@esbuild/darwin-arm64": "npm:0.23.1" + "@esbuild/darwin-x64": "npm:0.23.1" + "@esbuild/freebsd-arm64": "npm:0.23.1" + "@esbuild/freebsd-x64": "npm:0.23.1" + "@esbuild/linux-arm": "npm:0.23.1" + "@esbuild/linux-arm64": "npm:0.23.1" + "@esbuild/linux-ia32": "npm:0.23.1" + "@esbuild/linux-loong64": "npm:0.23.1" + "@esbuild/linux-mips64el": "npm:0.23.1" + "@esbuild/linux-ppc64": "npm:0.23.1" + "@esbuild/linux-riscv64": "npm:0.23.1" + "@esbuild/linux-s390x": "npm:0.23.1" + "@esbuild/linux-x64": "npm:0.23.1" + "@esbuild/netbsd-x64": "npm:0.23.1" + "@esbuild/openbsd-arm64": "npm:0.23.1" + "@esbuild/openbsd-x64": "npm:0.23.1" + "@esbuild/sunos-x64": "npm:0.23.1" + "@esbuild/win32-arm64": "npm:0.23.1" + "@esbuild/win32-ia32": "npm:0.23.1" + "@esbuild/win32-x64": "npm:0.23.1" + 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-arm64": + 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/08c2ed1105cc3c5e3a24a771e35532fe6089dd24a39c10097899072cef4a99f20860e41e9294e000d86380f353b04d8c50af482483d7f69f5208481cce61eec7 + languageName: node + linkType: hard + "escalade@npm:^3.1.1, escalade@npm:^3.2.0": version: 3.2.0 resolution: "escalade@npm:3.2.0" @@ -8808,6 +9069,15 @@ __metadata: languageName: node linkType: hard +"get-tsconfig@npm:^4.7.5": + version: 4.8.1 + resolution: "get-tsconfig@npm:4.8.1" + dependencies: + resolve-pkg-maps: "npm:^1.0.0" + checksum: 10c0/536ee85d202f604f4b5fb6be81bcd6e6d9a96846811e83e9acc6de4a04fb49506edea0e1b8cf1d5ee7af33e469916ec2809d4c5445ab8ae015a7a51fbd1572f9 + languageName: node + linkType: hard + "github-slugger@npm:^1.5.0": version: 1.5.0 resolution: "github-slugger@npm:1.5.0" @@ -14115,6 +14385,13 @@ __metadata: languageName: node linkType: hard +"resolve-pkg-maps@npm:^1.0.0": + version: 1.0.0 + resolution: "resolve-pkg-maps@npm:1.0.0" + checksum: 10c0/fb8f7bbe2ca281a73b7ef423a1cbc786fb244bd7a95cbe5c3fba25b27d327150beca8ba02f622baea65919a57e061eb5005204daa5f93ed590d9b77463a567ab + languageName: node + linkType: hard + "resolve@npm:^1.1.6, resolve@npm:^1.14.2": version: 1.22.8 resolution: "resolve@npm:1.22.8" @@ -15661,6 +15938,22 @@ __metadata: languageName: node linkType: hard +"tsx@npm:^4.19.0": + version: 4.19.2 + resolution: "tsx@npm:4.19.2" + dependencies: + esbuild: "npm:~0.23.0" + fsevents: "npm:~2.3.3" + get-tsconfig: "npm:^4.7.5" + dependenciesMeta: + fsevents: + optional: true + bin: + tsx: dist/cli.mjs + checksum: 10c0/63164b889b1d170403e4d8753a6755dec371f220f5ce29a8e88f1f4d6085a784a12d8dc2ee669116611f2c72757ac9beaa3eea5c452796f541bdd2dc11753721 + languageName: node + linkType: hard + "type-check@npm:^0.4.0, type-check@npm:~0.4.0": version: 0.4.0 resolution: "type-check@npm:0.4.0"