diff --git a/.changeset/calm-dodos-care.md b/.changeset/calm-dodos-care.md new file mode 100644 index 0000000000..2f51bc3f7c --- /dev/null +++ b/.changeset/calm-dodos-care.md @@ -0,0 +1,5 @@ +--- +"@latticexyz/config": patch +--- + +Replaced esbuild with tsx to load MUD config in an effort to resolve issues with loading multiple MUD configs in parallel. diff --git a/packages/cli/tsconfig.json b/packages/cli/tsconfig.json index 187d647e38..907ffd2aae 100644 --- a/packages/cli/tsconfig.json +++ b/packages/cli/tsconfig.json @@ -1,7 +1,6 @@ { "extends": "../../tsconfig.json", "compilerOptions": { - "moduleResolution": "Node", "lib": ["DOM", "ESNext"], "outDir": "dist" }, diff --git a/packages/config/package.json b/packages/config/package.json index 1fca6a1dab..6d8ab8b353 100644 --- a/packages/config/package.json +++ b/packages/config/package.json @@ -43,8 +43,8 @@ "@ark/util": "0.2.2", "@latticexyz/common": "workspace:*", "@latticexyz/schema-type": "workspace:*", - "esbuild": "^0.17.15", - "find-up": "^6.3.0" + "find-up": "^6.3.0", + "tsx": "^4.19.1" }, "devDependencies": { "tsup": "^6.7.0", diff --git a/packages/config/src/deprecated/node/loadConfig.ts b/packages/config/src/deprecated/node/loadConfig.ts index 10d3119920..c9db55e5c4 100644 --- a/packages/config/src/deprecated/node/loadConfig.ts +++ b/packages/config/src/deprecated/node/loadConfig.ts @@ -1,41 +1,31 @@ import { findUp } from "find-up"; import path from "path"; -import esbuild from "esbuild"; -import { rmSync } from "fs"; import { pathToFileURL } from "url"; import os from "os"; - -// TODO: explore using https://www.npmjs.com/package/ts-import instead +import fs from "fs/promises"; +import { tsImport } from "tsx/esm/api"; +import { require as tsRequire } from "tsx/cjs/api"; // In order of preference files are checked /** @deprecated */ const configFiles = ["mud.config.js", "mud.config.mjs", "mud.config.ts", "mud.config.mts"]; -/** @deprecated */ -const TEMP_CONFIG = "mud.config.temp.mjs"; /** @deprecated */ export async function loadConfig(configPath?: string): Promise { configPath = await resolveConfigPath(configPath); - try { - await esbuild.build({ - entryPoints: [configPath], - format: "esm", - outfile: TEMP_CONFIG, - // https://esbuild.github.io/getting-started/#bundling-for-node - platform: "node", - // bundle local imports (otherwise it may error, js can't import ts) - bundle: true, - // avoid bundling external imports (it's unnecessary and esbuild can't handle all node features) - packages: "external", - }); - configPath = await resolveConfigPath(TEMP_CONFIG, true); - // Node.js caches dynamic imports, so without appending a cache breaking - // param like `?update={Date.now()}` this import always returns the same config - // if called multiple times in a single process, like the `dev-contracts` cli - return (await import(configPath + `?update=${Date.now()}`)).default; - } finally { - rmSync(TEMP_CONFIG, { force: true }); + // load nearest package.json to figure out if we need to import with ESM or CJS + const packageJsonPath = await findUp("package.json", { cwd: path.dirname(configPath) }); + if (!packageJsonPath) throw new Error(`Could not find package.json for config at "${configPath}".`); + const packageJson = JSON.parse(await fs.readFile(packageJsonPath, "utf8")); + // use require if cjs + if (!packageJson.type || packageJson.type === "commonjs") { + // tsRequire has an internal cache, so we need to append data to reload the config + // this helps with things like the mud dev runner that reevalutes the config on changes + return tsRequire(`${configPath}?update=${Date.now()}`, import.meta.url).default; } + // otherwise default to esm + // this is not cached, so we don't need to append anything to the config path + return (await tsImport(configPath, import.meta.url)).default; } /** @deprecated */ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1d8e4932a7..9f04b8ea3e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -339,12 +339,12 @@ importers: '@latticexyz/schema-type': specifier: workspace:* version: link:../schema-type - esbuild: - specifier: ^0.17.15 - version: 0.17.15 find-up: specifier: ^6.3.0 version: 6.3.0 + tsx: + specifier: ^4.19.1 + version: 4.19.2 devDependencies: tsup: specifier: ^6.7.0 @@ -2761,12 +2761,6 @@ packages: cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.17.15': - resolution: {integrity: sha512-0kOB6Y7Br3KDVgHeg8PRcvfLkq+AccreK///B4Z6fNZGr/tNHX0z2VywCc7PTeWp+bPvjA5WMvNXltHw5QjAIA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - '@esbuild/android-arm64@0.17.17': resolution: {integrity: sha512-jaJ5IlmaDLFPNttv0ofcwy/cfeY4bh/n705Tgh+eLObbGtQBK3EPAu+CzL95JVE4nFAliyrnEu0d32Q5foavqg==} engines: {node: '>=12'} @@ -2791,12 +2785,6 @@ packages: cpu: [arm64] os: [android] - '@esbuild/android-arm@0.17.15': - resolution: {integrity: sha512-sRSOVlLawAktpMvDyJIkdLI/c/kdRTOqo8t6ImVxg8yT7LQDUYV5Rp2FKeEosLr6ZCja9UjYAzyRSxGteSJPYg==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - '@esbuild/android-arm@0.17.17': resolution: {integrity: sha512-E6VAZwN7diCa3labs0GYvhEPL2M94WLF8A+czO8hfjREXxba8Ng7nM5VxV+9ihNXIY1iQO1XxUU4P7hbqbICxg==} engines: {node: '>=12'} @@ -2821,12 +2809,6 @@ packages: cpu: [arm] os: [android] - '@esbuild/android-x64@0.17.15': - resolution: {integrity: sha512-MzDqnNajQZ63YkaUWVl9uuhcWyEyh69HGpMIrf+acR4otMkfLJ4sUCxqwbCyPGicE9dVlrysI3lMcDBjGiBBcQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - '@esbuild/android-x64@0.17.17': resolution: {integrity: sha512-446zpfJ3nioMC7ASvJB1pszHVskkw4u/9Eu8s5yvvsSDTzYh4p4ZIRj0DznSl3FBF0Z/mZfrKXTtt0QCoFmoHA==} engines: {node: '>=12'} @@ -2851,12 +2833,6 @@ packages: cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.17.15': - resolution: {integrity: sha512-7siLjBc88Z4+6qkMDxPT2juf2e8SJxmsbNVKFY2ifWCDT72v5YJz9arlvBw5oB4W/e61H1+HDB/jnu8nNg0rLA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - '@esbuild/darwin-arm64@0.17.17': resolution: {integrity: sha512-m/gwyiBwH3jqfUabtq3GH31otL/0sE0l34XKpSIqR7NjQ/XHQ3lpmQHLHbG8AHTGCw8Ao059GvV08MS0bhFIJQ==} engines: {node: '>=12'} @@ -2881,12 +2857,6 @@ packages: cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.17.15': - resolution: {integrity: sha512-NbImBas2rXwYI52BOKTW342Tm3LTeVlaOQ4QPZ7XuWNKiO226DisFk/RyPk3T0CKZkKMuU69yOvlapJEmax7cg==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - '@esbuild/darwin-x64@0.17.17': resolution: {integrity: sha512-4utIrsX9IykrqYaXR8ob9Ha2hAY2qLc6ohJ8c0CN1DR8yWeMrTgYFjgdeQ9LIoTOfLetXjuCu5TRPHT9yKYJVg==} engines: {node: '>=12'} @@ -2911,12 +2881,6 @@ packages: cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.17.15': - resolution: {integrity: sha512-Xk9xMDjBVG6CfgoqlVczHAdJnCs0/oeFOspFap5NkYAmRCT2qTn1vJWA2f419iMtsHSLm+O8B6SLV/HlY5cYKg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - '@esbuild/freebsd-arm64@0.17.17': resolution: {integrity: sha512-4PxjQII/9ppOrpEwzQ1b0pXCsFLqy77i0GaHodrmzH9zq2/NEhHMAMJkJ635Ns4fyJPFOlHMz4AsklIyRqFZWA==} engines: {node: '>=12'} @@ -2941,12 +2905,6 @@ packages: cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.17.15': - resolution: {integrity: sha512-3TWAnnEOdclvb2pnfsTWtdwthPfOz7qAfcwDLcfZyGJwm1SRZIMOeB5FODVhnM93mFSPsHB9b/PmxNNbSnd0RQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - '@esbuild/freebsd-x64@0.17.17': resolution: {integrity: sha512-lQRS+4sW5S3P1sv0z2Ym807qMDfkmdhUYX30GRBURtLTrJOPDpoU0kI6pVz1hz3U0+YQ0tXGS9YWveQjUewAJw==} engines: {node: '>=12'} @@ -2971,12 +2929,6 @@ packages: cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.17.15': - resolution: {integrity: sha512-T0MVnYw9KT6b83/SqyznTs/3Jg2ODWrZfNccg11XjDehIved2oQfrX/wVuev9N936BpMRaTR9I1J0tdGgUgpJA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - '@esbuild/linux-arm64@0.17.17': resolution: {integrity: sha512-2+pwLx0whKY1/Vqt8lyzStyda1v0qjJ5INWIe+d8+1onqQxHLLi3yr5bAa4gvbzhZqBztifYEu8hh1La5+7sUw==} engines: {node: '>=12'} @@ -3001,12 +2953,6 @@ packages: cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.17.15': - resolution: {integrity: sha512-MLTgiXWEMAMr8nmS9Gigx43zPRmEfeBfGCwxFQEMgJ5MC53QKajaclW6XDPjwJvhbebv+RzK05TQjvH3/aM4Xw==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - '@esbuild/linux-arm@0.17.17': resolution: {integrity: sha512-biDs7bjGdOdcmIk6xU426VgdRUpGg39Yz6sT9Xp23aq+IEHDb/u5cbmu/pAANpDB4rZpY/2USPhCA+w9t3roQg==} engines: {node: '>=12'} @@ -3031,12 +2977,6 @@ packages: cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.17.15': - resolution: {integrity: sha512-wp02sHs015T23zsQtU4Cj57WiteiuASHlD7rXjKUyAGYzlOKDAjqK6bk5dMi2QEl/KVOcsjwL36kD+WW7vJt8Q==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - '@esbuild/linux-ia32@0.17.17': resolution: {integrity: sha512-IBTTv8X60dYo6P2t23sSUYym8fGfMAiuv7PzJ+0LcdAndZRzvke+wTVxJeCq4WgjppkOpndL04gMZIFvwoU34Q==} engines: {node: '>=12'} @@ -3061,12 +3001,6 @@ packages: cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.17.15': - resolution: {integrity: sha512-k7FsUJjGGSxwnBmMh8d7IbObWu+sF/qbwc+xKZkBe/lTAF16RqxRCnNHA7QTd3oS2AfGBAnHlXL67shV5bBThQ==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - '@esbuild/linux-loong64@0.17.17': resolution: {integrity: sha512-WVMBtcDpATjaGfWfp6u9dANIqmU9r37SY8wgAivuKmgKHE+bWSuv0qXEFt/p3qXQYxJIGXQQv6hHcm7iWhWjiw==} engines: {node: '>=12'} @@ -3091,12 +3025,6 @@ packages: cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.17.15': - resolution: {integrity: sha512-ZLWk6czDdog+Q9kE/Jfbilu24vEe/iW/Sj2d8EVsmiixQ1rM2RKH2n36qfxK4e8tVcaXkvuV3mU5zTZviE+NVQ==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - '@esbuild/linux-mips64el@0.17.17': resolution: {integrity: sha512-2kYCGh8589ZYnY031FgMLy0kmE4VoGdvfJkxLdxP4HJvWNXpyLhjOvxVsYjYZ6awqY4bgLR9tpdYyStgZZhi2A==} engines: {node: '>=12'} @@ -3121,12 +3049,6 @@ packages: cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.17.15': - resolution: {integrity: sha512-mY6dPkIRAiFHRsGfOYZC8Q9rmr8vOBZBme0/j15zFUKM99d4ILY4WpOC7i/LqoY+RE7KaMaSfvY8CqjJtuO4xg==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - '@esbuild/linux-ppc64@0.17.17': resolution: {integrity: sha512-KIdG5jdAEeAKogfyMTcszRxy3OPbZhq0PPsW4iKKcdlbk3YE4miKznxV2YOSmiK/hfOZ+lqHri3v8eecT2ATwQ==} engines: {node: '>=12'} @@ -3151,12 +3073,6 @@ packages: cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.17.15': - resolution: {integrity: sha512-EcyUtxffdDtWjjwIH8sKzpDRLcVtqANooMNASO59y+xmqqRYBBM7xVLQhqF7nksIbm2yHABptoioS9RAbVMWVA==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - '@esbuild/linux-riscv64@0.17.17': resolution: {integrity: sha512-Cj6uWLBR5LWhcD/2Lkfg2NrkVsNb2sFM5aVEfumKB2vYetkA/9Uyc1jVoxLZ0a38sUhFk4JOVKH0aVdPbjZQeA==} engines: {node: '>=12'} @@ -3181,12 +3097,6 @@ packages: cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.17.15': - resolution: {integrity: sha512-BuS6Jx/ezxFuHxgsfvz7T4g4YlVrmCmg7UAwboeyNNg0OzNzKsIZXpr3Sb/ZREDXWgt48RO4UQRDBxJN3B9Rbg==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - '@esbuild/linux-s390x@0.17.17': resolution: {integrity: sha512-lK+SffWIr0XsFf7E0srBjhpkdFVJf3HEgXCwzkm69kNbRar8MhezFpkIwpk0qo2IOQL4JE4mJPJI8AbRPLbuOQ==} engines: {node: '>=12'} @@ -3211,12 +3121,6 @@ packages: cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.17.15': - resolution: {integrity: sha512-JsdS0EgEViwuKsw5tiJQo9UdQdUJYuB+Mf6HxtJSPN35vez1hlrNb1KajvKWF5Sa35j17+rW1ECEO9iNrIXbNg==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - '@esbuild/linux-x64@0.17.17': resolution: {integrity: sha512-XcSGTQcWFQS2jx3lZtQi7cQmDYLrpLRyz1Ns1DzZCtn898cWfm5Icx/DEWNcTU+T+tyPV89RQtDnI7qL2PObPg==} engines: {node: '>=12'} @@ -3241,12 +3145,6 @@ packages: cpu: [x64] os: [linux] - '@esbuild/netbsd-x64@0.17.15': - resolution: {integrity: sha512-R6fKjtUysYGym6uXf6qyNephVUQAGtf3n2RCsOST/neIwPqRWcnc3ogcielOd6pT+J0RDR1RGcy0ZY7d3uHVLA==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - '@esbuild/netbsd-x64@0.17.17': resolution: {integrity: sha512-RNLCDmLP5kCWAJR+ItLM3cHxzXRTe4N00TQyQiimq+lyqVqZWGPAvcyfUBM0isE79eEZhIuGN09rAz8EL5KdLA==} engines: {node: '>=12'} @@ -3277,12 +3175,6 @@ packages: cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-x64@0.17.15': - resolution: {integrity: sha512-mVD4PGc26b8PI60QaPUltYKeSX0wxuy0AltC+WCTFwvKCq2+OgLP4+fFd+hZXzO2xW1HPKcytZBdjqL6FQFa7w==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - '@esbuild/openbsd-x64@0.17.17': resolution: {integrity: sha512-PAXswI5+cQq3Pann7FNdcpSUrhrql3wKjj3gVkmuz6OHhqqYxKvi6GgRBoaHjaG22HV/ZZEgF9TlS+9ftHVigA==} engines: {node: '>=12'} @@ -3307,12 +3199,6 @@ packages: cpu: [x64] os: [openbsd] - '@esbuild/sunos-x64@0.17.15': - resolution: {integrity: sha512-U6tYPovOkw3459t2CBwGcFYfFRjivcJJc1WC8Q3funIwX8x4fP+R6xL/QuTPNGOblbq/EUDxj9GU+dWKX0oWlQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - '@esbuild/sunos-x64@0.17.17': resolution: {integrity: sha512-V63egsWKnx/4V0FMYkr9NXWrKTB5qFftKGKuZKFIrAkO/7EWLFnbBZNM1CvJ6Sis+XBdPws2YQSHF1Gqf1oj/Q==} engines: {node: '>=12'} @@ -3337,12 +3223,6 @@ packages: cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.17.15': - resolution: {integrity: sha512-W+Z5F++wgKAleDABemiyXVnzXgvRFs+GVKThSI+mGgleLWluv0D7Diz4oQpgdpNzh4i2nNDzQtWbjJiqutRp6Q==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - '@esbuild/win32-arm64@0.17.17': resolution: {integrity: sha512-YtUXLdVnd6YBSYlZODjWzH+KzbaubV0YVd6UxSfoFfa5PtNJNaW+1i+Hcmjpg2nEe0YXUCNF5bkKy1NnBv1y7Q==} engines: {node: '>=12'} @@ -3367,12 +3247,6 @@ packages: cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.17.15': - resolution: {integrity: sha512-Muz/+uGgheShKGqSVS1KsHtCyEzcdOn/W/Xbh6H91Etm+wiIfwZaBn1W58MeGtfI8WA961YMHFYTthBdQs4t+w==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - '@esbuild/win32-ia32@0.17.17': resolution: {integrity: sha512-yczSLRbDdReCO74Yfc5tKG0izzm+lPMYyO1fFTcn0QNwnKmc3K+HdxZWLGKg4pZVte7XVgcFku7TIZNbWEJdeQ==} engines: {node: '>=12'} @@ -3397,12 +3271,6 @@ packages: cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.17.15': - resolution: {integrity: sha512-DjDa9ywLUUmjhV2Y9wUTIF+1XsmuFGvZoCmOWkli1XcNAh5t25cc7fgsCx4Zi/Uurep3TTLyDiKATgGEg61pkA==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - '@esbuild/win32-x64@0.17.17': resolution: {integrity: sha512-FNZw7H3aqhF9OyRQbDDnzUApDXfC1N6fgBhkqEO2jvYCJ+DxMTfZVqg3AX0R1khg1wHTBRD5SdcibSJ+XF6bFg==} engines: {node: '>=12'} @@ -7401,11 +7269,6 @@ packages: es6-weak-map@2.0.3: resolution: {integrity: sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==} - esbuild@0.17.15: - resolution: {integrity: sha512-LBUV2VsUIc/iD9ME75qhT4aJj0r75abCVS0jakhFzOtR7TQsqQA5w0tZ+KTKnwl3kXE0MhskNdHDh/I5aCR1Zw==} - engines: {node: '>=12'} - hasBin: true - esbuild@0.17.17: resolution: {integrity: sha512-/jUywtAymR8jR4qsa2RujlAF7Krpt5VWi72Q2yuLD4e/hvtNcFQ0I1j8m/bxq238pf3/0KO5yuXNpuLx8BE1KA==} engines: {node: '>=12'} @@ -11429,6 +11292,11 @@ packages: engines: {node: '>=18.0.0'} hasBin: true + tsx@4.19.2: + resolution: {integrity: sha512-pOUl6Vo2LUq/bSa8S5q7b91cgNSjctn9ugq/+Mvow99qW6x/UZYwzxy/3NmqoT66eHYfCVvFvACC58UBPFf28g==} + engines: {node: '>=18.0.0'} + hasBin: true + tunnel-agent@0.6.0: resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} @@ -14673,9 +14541,6 @@ snapshots: '@esbuild/aix-ppc64@0.23.1': optional: true - '@esbuild/android-arm64@0.17.15': - optional: true - '@esbuild/android-arm64@0.17.17': optional: true @@ -14688,9 +14553,6 @@ snapshots: '@esbuild/android-arm64@0.23.1': optional: true - '@esbuild/android-arm@0.17.15': - optional: true - '@esbuild/android-arm@0.17.17': optional: true @@ -14703,9 +14565,6 @@ snapshots: '@esbuild/android-arm@0.23.1': optional: true - '@esbuild/android-x64@0.17.15': - optional: true - '@esbuild/android-x64@0.17.17': optional: true @@ -14718,9 +14577,6 @@ snapshots: '@esbuild/android-x64@0.23.1': optional: true - '@esbuild/darwin-arm64@0.17.15': - optional: true - '@esbuild/darwin-arm64@0.17.17': optional: true @@ -14733,9 +14589,6 @@ snapshots: '@esbuild/darwin-arm64@0.23.1': optional: true - '@esbuild/darwin-x64@0.17.15': - optional: true - '@esbuild/darwin-x64@0.17.17': optional: true @@ -14748,9 +14601,6 @@ snapshots: '@esbuild/darwin-x64@0.23.1': optional: true - '@esbuild/freebsd-arm64@0.17.15': - optional: true - '@esbuild/freebsd-arm64@0.17.17': optional: true @@ -14763,9 +14613,6 @@ snapshots: '@esbuild/freebsd-arm64@0.23.1': optional: true - '@esbuild/freebsd-x64@0.17.15': - optional: true - '@esbuild/freebsd-x64@0.17.17': optional: true @@ -14778,9 +14625,6 @@ snapshots: '@esbuild/freebsd-x64@0.23.1': optional: true - '@esbuild/linux-arm64@0.17.15': - optional: true - '@esbuild/linux-arm64@0.17.17': optional: true @@ -14793,9 +14637,6 @@ snapshots: '@esbuild/linux-arm64@0.23.1': optional: true - '@esbuild/linux-arm@0.17.15': - optional: true - '@esbuild/linux-arm@0.17.17': optional: true @@ -14808,9 +14649,6 @@ snapshots: '@esbuild/linux-arm@0.23.1': optional: true - '@esbuild/linux-ia32@0.17.15': - optional: true - '@esbuild/linux-ia32@0.17.17': optional: true @@ -14823,9 +14661,6 @@ snapshots: '@esbuild/linux-ia32@0.23.1': optional: true - '@esbuild/linux-loong64@0.17.15': - optional: true - '@esbuild/linux-loong64@0.17.17': optional: true @@ -14838,9 +14673,6 @@ snapshots: '@esbuild/linux-loong64@0.23.1': optional: true - '@esbuild/linux-mips64el@0.17.15': - optional: true - '@esbuild/linux-mips64el@0.17.17': optional: true @@ -14853,9 +14685,6 @@ snapshots: '@esbuild/linux-mips64el@0.23.1': optional: true - '@esbuild/linux-ppc64@0.17.15': - optional: true - '@esbuild/linux-ppc64@0.17.17': optional: true @@ -14868,9 +14697,6 @@ snapshots: '@esbuild/linux-ppc64@0.23.1': optional: true - '@esbuild/linux-riscv64@0.17.15': - optional: true - '@esbuild/linux-riscv64@0.17.17': optional: true @@ -14883,9 +14709,6 @@ snapshots: '@esbuild/linux-riscv64@0.23.1': optional: true - '@esbuild/linux-s390x@0.17.15': - optional: true - '@esbuild/linux-s390x@0.17.17': optional: true @@ -14898,9 +14721,6 @@ snapshots: '@esbuild/linux-s390x@0.23.1': optional: true - '@esbuild/linux-x64@0.17.15': - optional: true - '@esbuild/linux-x64@0.17.17': optional: true @@ -14913,9 +14733,6 @@ snapshots: '@esbuild/linux-x64@0.23.1': optional: true - '@esbuild/netbsd-x64@0.17.15': - optional: true - '@esbuild/netbsd-x64@0.17.17': optional: true @@ -14931,9 +14748,6 @@ snapshots: '@esbuild/openbsd-arm64@0.23.1': optional: true - '@esbuild/openbsd-x64@0.17.15': - optional: true - '@esbuild/openbsd-x64@0.17.17': optional: true @@ -14946,9 +14760,6 @@ snapshots: '@esbuild/openbsd-x64@0.23.1': optional: true - '@esbuild/sunos-x64@0.17.15': - optional: true - '@esbuild/sunos-x64@0.17.17': optional: true @@ -14961,9 +14772,6 @@ snapshots: '@esbuild/sunos-x64@0.23.1': optional: true - '@esbuild/win32-arm64@0.17.15': - optional: true - '@esbuild/win32-arm64@0.17.17': optional: true @@ -14976,9 +14784,6 @@ snapshots: '@esbuild/win32-arm64@0.23.1': optional: true - '@esbuild/win32-ia32@0.17.15': - optional: true - '@esbuild/win32-ia32@0.17.17': optional: true @@ -14991,9 +14796,6 @@ snapshots: '@esbuild/win32-ia32@0.23.1': optional: true - '@esbuild/win32-x64@0.17.15': - optional: true - '@esbuild/win32-x64@0.17.17': optional: true @@ -20302,31 +20104,6 @@ snapshots: es6-iterator: 2.0.3 es6-symbol: 3.1.3 - esbuild@0.17.15: - optionalDependencies: - '@esbuild/android-arm': 0.17.15 - '@esbuild/android-arm64': 0.17.15 - '@esbuild/android-x64': 0.17.15 - '@esbuild/darwin-arm64': 0.17.15 - '@esbuild/darwin-x64': 0.17.15 - '@esbuild/freebsd-arm64': 0.17.15 - '@esbuild/freebsd-x64': 0.17.15 - '@esbuild/linux-arm': 0.17.15 - '@esbuild/linux-arm64': 0.17.15 - '@esbuild/linux-ia32': 0.17.15 - '@esbuild/linux-loong64': 0.17.15 - '@esbuild/linux-mips64el': 0.17.15 - '@esbuild/linux-ppc64': 0.17.15 - '@esbuild/linux-riscv64': 0.17.15 - '@esbuild/linux-s390x': 0.17.15 - '@esbuild/linux-x64': 0.17.15 - '@esbuild/netbsd-x64': 0.17.15 - '@esbuild/openbsd-x64': 0.17.15 - '@esbuild/sunos-x64': 0.17.15 - '@esbuild/win32-arm64': 0.17.15 - '@esbuild/win32-ia32': 0.17.15 - '@esbuild/win32-x64': 0.17.15 - esbuild@0.17.17: optionalDependencies: '@esbuild/android-arm': 0.17.17 @@ -25335,6 +25112,13 @@ snapshots: optionalDependencies: fsevents: 2.3.3 + tsx@4.19.2: + dependencies: + esbuild: 0.23.1 + get-tsconfig: 4.7.5 + optionalDependencies: + fsevents: 2.3.3 + tunnel-agent@0.6.0: dependencies: safe-buffer: 5.2.1