From d50ddacab0c0df8ee3ccafc75272d28889fb90fd Mon Sep 17 00:00:00 2001 From: hiroki osame Date: Fri, 7 Oct 2022 02:12:03 -0400 Subject: [PATCH] feat: upgrade core-utils (#42) --- package.json | 3 +- pnpm-lock.yaml | 171 ++++++++---------- src/loaders-deprecated.ts | 15 +- src/loaders.ts | 16 +- src/utils.ts | 2 +- .../package-module/lib/cjs-ext-cjs/index.cjs | 7 +- .../package-module/lib/cjs-ext-js/index.js | 14 +- .../package-module/lib/esm-ext-js/index.js | 14 +- .../package-module/lib/esm-ext-mjs/index.mjs | 14 +- .../package-module/lib/ts-ext-cts/index.cts | 7 +- .../package-module/lib/ts-ext-jsx/index.jsx | 19 +- .../package-module/lib/ts-ext-mts/index.mts | 19 +- .../package-module/lib/ts-ext-ts/index.ts | 19 +- .../package-module/lib/ts-ext-ts/index.tsx.ts | 19 +- .../package-module/lib/ts-ext-tsx/index.tsx | 19 +- 15 files changed, 235 insertions(+), 123 deletions(-) diff --git a/package.json b/package.json index 52cdc40..2782892 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,7 @@ "prepack": "pnpm build && clean-pkg-json" }, "dependencies": { - "@esbuild-kit/core-utils": "^2.3.2", + "@esbuild-kit/core-utils": "^3.0.0", "get-tsconfig": "^4.2.0" }, "devDependencies": { @@ -40,6 +40,7 @@ "@types/node": "^18.7.21", "@types/semver": "^7.3.12", "clean-pkg-json": "^1.2.0", + "esbuild": "^0.15.10", "eslint": "^8.24.0", "execa": "^6.1.0", "get-node": "^13.2.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4e789b9..f6299ad 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,11 +1,12 @@ lockfileVersion: 5.4 specifiers: - '@esbuild-kit/core-utils': ^2.3.2 + '@esbuild-kit/core-utils': ^3.0.0 '@pvtnbr/eslint-config': ^0.30.1 '@types/node': ^18.7.21 '@types/semver': ^7.3.12 clean-pkg-json: ^1.2.0 + esbuild: ^0.15.10 eslint: ^8.24.0 execa: ^6.1.0 get-node: ^13.2.0 @@ -18,7 +19,7 @@ specifiers: typescript: ^4.8.3 dependencies: - '@esbuild-kit/core-utils': 2.3.2 + '@esbuild-kit/core-utils': 3.0.0 get-tsconfig: 4.2.0 devDependencies: @@ -26,6 +27,7 @@ devDependencies: '@types/node': 18.7.21 '@types/semver': 7.3.12 clean-pkg-json: 1.2.0 + esbuild: 0.15.10 eslint: 8.24.0 execa: 6.1.0 get-node: 13.2.0 @@ -64,20 +66,19 @@ packages: js-tokens: 4.0.0 dev: true - /@esbuild-kit/core-utils/2.3.2: - resolution: {integrity: sha512-aQwy1Hdd02ymjyMyyrhtyuZGv5W+mVZmj3DTKFV0TnB1AUgMBV40tXySpsGySe8vLvSe0c0TaqTc2FUo8/YlNQ==} + /@esbuild-kit/core-utils/3.0.0: + resolution: {integrity: sha512-TXmwH9EFS3DC2sI2YJWJBgHGhlteK0Xyu1VabwetMULfm3oYhbrsWV5yaSr2NTWZIgDGVLHbRf0inxbjXqAcmQ==} dependencies: - esbuild: 0.15.9 + esbuild: 0.15.10 source-map-support: 0.5.21 dev: false - /@esbuild/android-arm/0.15.9: - resolution: {integrity: sha512-VZPy/ETF3fBG5PiinIkA0W/tlsvlEgJccyN2DzWZEl0DlVKRbu91PvY2D6Lxgluj4w9QtYHjOWjAT44C+oQ+EQ==} + /@esbuild/android-arm/0.15.10: + resolution: {integrity: sha512-FNONeQPy/ox+5NBkcSbYJxoXj9GWu8gVGJTVmUyoOCKQFDTrHVKgNSzChdNt0I8Aj/iKcsDf2r9BFwv+FSNUXg==} engines: {node: '>=12'} cpu: [arm] os: [android] requiresBuild: true - dev: false optional: true /@esbuild/linux-loong64/0.14.54: @@ -89,13 +90,12 @@ packages: dev: true optional: true - /@esbuild/linux-loong64/0.15.9: - resolution: {integrity: sha512-O+NfmkfRrb3uSsTa4jE3WApidSe3N5++fyOVGP1SmMZi4A3BZELkhUUvj5hwmMuNdlpzAZ8iAPz2vmcR7DCFQA==} + /@esbuild/linux-loong64/0.15.10: + resolution: {integrity: sha512-w0Ou3Z83LOYEkwaui2M8VwIp+nLi/NA60lBLMvaJ+vXVMcsARYdEzLNE7RSm4+lSg4zq4d7fAVuzk7PNQ5JFgg==} engines: {node: '>=12'} cpu: [loong64] os: [linux] requiresBuild: true - dev: false optional: true /@eslint/eslintrc/1.3.2: @@ -1083,13 +1083,12 @@ packages: dev: true optional: true - /esbuild-android-64/0.15.9: - resolution: {integrity: sha512-HQCX7FJn9T4kxZQkhPjNZC7tBWZqJvhlLHPU2SFzrQB/7nDXjmTIFpFTjt7Bd1uFpeXmuwf5h5fZm+x/hLnhbw==} + /esbuild-android-64/0.15.10: + resolution: {integrity: sha512-UI7krF8OYO1N7JYTgLT9ML5j4+45ra3amLZKx7LO3lmLt1Ibn8t3aZbX5Pu4BjWiqDuJ3m/hsvhPhK/5Y/YpnA==} engines: {node: '>=12'} cpu: [x64] os: [android] requiresBuild: true - dev: false optional: true /esbuild-android-arm64/0.14.54: @@ -1101,13 +1100,12 @@ packages: dev: true optional: true - /esbuild-android-arm64/0.15.9: - resolution: {integrity: sha512-E6zbLfqbFVCNEKircSHnPiSTsm3fCRxeIMPfrkS33tFjIAoXtwegQfVZqMGR0FlsvVxp2NEDOUz+WW48COCjSg==} + /esbuild-android-arm64/0.15.10: + resolution: {integrity: sha512-EOt55D6xBk5O05AK8brXUbZmoFj4chM8u3riGflLa6ziEoVvNjRdD7Cnp82NHQGfSHgYR06XsPI8/sMuA/cUwg==} engines: {node: '>=12'} cpu: [arm64] os: [android] requiresBuild: true - dev: false optional: true /esbuild-darwin-64/0.14.54: @@ -1119,13 +1117,12 @@ packages: dev: true optional: true - /esbuild-darwin-64/0.15.9: - resolution: {integrity: sha512-gI7dClcDN/HHVacZhTmGjl0/TWZcGuKJ0I7/xDGJwRQQn7aafZGtvagOFNmuOq+OBFPhlPv1T6JElOXb0unkSQ==} + /esbuild-darwin-64/0.15.10: + resolution: {integrity: sha512-hbDJugTicqIm+WKZgp208d7FcXcaK8j2c0l+fqSJ3d2AzQAfjEYDRM3Z2oMeqSJ9uFxyj/muSACLdix7oTstRA==} engines: {node: '>=12'} cpu: [x64] os: [darwin] requiresBuild: true - dev: false optional: true /esbuild-darwin-arm64/0.14.54: @@ -1137,13 +1134,12 @@ packages: dev: true optional: true - /esbuild-darwin-arm64/0.15.9: - resolution: {integrity: sha512-VZIMlcRN29yg/sv7DsDwN+OeufCcoTNaTl3Vnav7dL/nvsApD7uvhVRbgyMzv0zU/PP0xRhhIpTyc7lxEzHGSw==} + /esbuild-darwin-arm64/0.15.10: + resolution: {integrity: sha512-M1t5+Kj4IgSbYmunf2BB6EKLkWUq+XlqaFRiGOk8bmBapu9bCDrxjf4kUnWn59Dka3I27EiuHBKd1rSO4osLFQ==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] requiresBuild: true - dev: false optional: true /esbuild-freebsd-64/0.14.54: @@ -1155,13 +1151,12 @@ packages: dev: true optional: true - /esbuild-freebsd-64/0.15.9: - resolution: {integrity: sha512-uM4z5bTvuAXqPxrI204txhlsPIolQPWRMLenvGuCPZTnnGlCMF2QLs0Plcm26gcskhxewYo9LkkmYSS5Czrb5A==} + /esbuild-freebsd-64/0.15.10: + resolution: {integrity: sha512-KMBFMa7C8oc97nqDdoZwtDBX7gfpolkk6Bcmj6YFMrtCMVgoU/x2DI1p74DmYl7CSS6Ppa3xgemrLrr5IjIn0w==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] requiresBuild: true - dev: false optional: true /esbuild-freebsd-arm64/0.14.54: @@ -1173,13 +1168,12 @@ packages: dev: true optional: true - /esbuild-freebsd-arm64/0.15.9: - resolution: {integrity: sha512-HHDjT3O5gWzicGdgJ5yokZVN9K9KG05SnERwl9nBYZaCjcCgj/sX8Ps1jvoFSfNCO04JSsHSOWo4qvxFuj8FoA==} + /esbuild-freebsd-arm64/0.15.10: + resolution: {integrity: sha512-m2KNbuCX13yQqLlbSojFMHpewbn8wW5uDS6DxRpmaZKzyq8Dbsku6hHvh2U+BcLwWY4mpgXzFUoENEf7IcioGg==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] requiresBuild: true - dev: false optional: true /esbuild-linux-32/0.14.54: @@ -1191,13 +1185,12 @@ packages: dev: true optional: true - /esbuild-linux-32/0.15.9: - resolution: {integrity: sha512-AQIdE8FugGt1DkcekKi5ycI46QZpGJ/wqcMr7w6YUmOmp2ohQ8eO4sKUsOxNOvYL7hGEVwkndSyszR6HpVHLFg==} + /esbuild-linux-32/0.15.10: + resolution: {integrity: sha512-guXrwSYFAvNkuQ39FNeV4sNkNms1bLlA5vF1H0cazZBOLdLFIny6BhT+TUbK/hdByMQhtWQ5jI9VAmPKbVPu1w==} engines: {node: '>=12'} cpu: [ia32] os: [linux] requiresBuild: true - dev: false optional: true /esbuild-linux-64/0.14.54: @@ -1209,13 +1202,12 @@ packages: dev: true optional: true - /esbuild-linux-64/0.15.9: - resolution: {integrity: sha512-4RXjae7g6Qs7StZyiYyXTZXBlfODhb1aBVAjd+ANuPmMhWthQilWo7rFHwJwL7DQu1Fjej2sODAVwLbcIVsAYQ==} + /esbuild-linux-64/0.15.10: + resolution: {integrity: sha512-jd8XfaSJeucMpD63YNMO1JCrdJhckHWcMv6O233bL4l6ogQKQOxBYSRP/XLWP+6kVTu0obXovuckJDcA0DKtQA==} engines: {node: '>=12'} cpu: [x64] os: [linux] requiresBuild: true - dev: false optional: true /esbuild-linux-arm/0.14.54: @@ -1227,13 +1219,12 @@ packages: dev: true optional: true - /esbuild-linux-arm/0.15.9: - resolution: {integrity: sha512-3Zf2GVGUOI7XwChH3qrnTOSqfV1V4CAc/7zLVm4lO6JT6wbJrTgEYCCiNSzziSju+J9Jhf9YGWk/26quWPC6yQ==} + /esbuild-linux-arm/0.15.10: + resolution: {integrity: sha512-6N8vThLL/Lysy9y4Ex8XoLQAlbZKUyExCWyayGi2KgTBelKpPgj6RZnUaKri0dHNPGgReJriKVU6+KDGQwn10A==} engines: {node: '>=12'} cpu: [arm] os: [linux] requiresBuild: true - dev: false optional: true /esbuild-linux-arm64/0.14.54: @@ -1245,13 +1236,12 @@ packages: dev: true optional: true - /esbuild-linux-arm64/0.15.9: - resolution: {integrity: sha512-a+bTtxJmYmk9d+s2W4/R1SYKDDAldOKmWjWP0BnrWtDbvUBNOm++du0ysPju4mZVoEFgS1yLNW+VXnG/4FNwdQ==} + /esbuild-linux-arm64/0.15.10: + resolution: {integrity: sha512-GByBi4fgkvZFTHFDYNftu1DQ1GzR23jws0oWyCfhnI7eMOe+wgwWrc78dbNk709Ivdr/evefm2PJiUBMiusS1A==} engines: {node: '>=12'} cpu: [arm64] os: [linux] requiresBuild: true - dev: false optional: true /esbuild-linux-mips64le/0.14.54: @@ -1263,13 +1253,12 @@ packages: dev: true optional: true - /esbuild-linux-mips64le/0.15.9: - resolution: {integrity: sha512-Zn9HSylDp89y+TRREMDoGrc3Z4Hs5u56ozZLQCiZAUx2+HdbbXbWdjmw3FdTJ/i7t5Cew6/Q+6kfO3KCcFGlyw==} + /esbuild-linux-mips64le/0.15.10: + resolution: {integrity: sha512-BxP+LbaGVGIdQNJUNF7qpYjEGWb0YyHVSKqYKrn+pTwH/SiHUxFyJYSP3pqkku61olQiSBnSmWZ+YUpj78Tw7Q==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] requiresBuild: true - dev: false optional: true /esbuild-linux-ppc64le/0.14.54: @@ -1281,13 +1270,12 @@ packages: dev: true optional: true - /esbuild-linux-ppc64le/0.15.9: - resolution: {integrity: sha512-OEiOxNAMH9ENFYqRsWUj3CWyN3V8P3ZXyfNAtX5rlCEC/ERXrCEFCJji/1F6POzsXAzxvUJrTSTCy7G6BhA6Fw==} + /esbuild-linux-ppc64le/0.15.10: + resolution: {integrity: sha512-LoSQCd6498PmninNgqd/BR7z3Bsk/mabImBWuQ4wQgmQEeanzWd5BQU2aNi9mBURCLgyheuZS6Xhrw5luw3OkQ==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] requiresBuild: true - dev: false optional: true /esbuild-linux-riscv64/0.14.54: @@ -1299,13 +1287,12 @@ packages: dev: true optional: true - /esbuild-linux-riscv64/0.15.9: - resolution: {integrity: sha512-ukm4KsC3QRausEFjzTsOZ/qqazw0YvJsKmfoZZm9QW27OHjk2XKSQGGvx8gIEswft/Sadp03/VZvAaqv5AIwNA==} + /esbuild-linux-riscv64/0.15.10: + resolution: {integrity: sha512-Lrl9Cr2YROvPV4wmZ1/g48httE8z/5SCiXIyebiB5N8VT7pX3t6meI7TQVHw/wQpqP/AF4SksDuFImPTM7Z32Q==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] requiresBuild: true - dev: false optional: true /esbuild-linux-s390x/0.14.54: @@ -1317,13 +1304,12 @@ packages: dev: true optional: true - /esbuild-linux-s390x/0.15.9: - resolution: {integrity: sha512-uDOQEH55wQ6ahcIKzQr3VyjGc6Po/xblLGLoUk3fVL1qjlZAibtQr6XRfy5wPJLu/M2o0vQKLq4lyJ2r1tWKcw==} + /esbuild-linux-s390x/0.15.10: + resolution: {integrity: sha512-ReP+6q3eLVVP2lpRrvl5EodKX7EZ1bS1/z5j6hsluAlZP5aHhk6ghT6Cq3IANvvDdscMMCB4QEbI+AjtvoOFpA==} engines: {node: '>=12'} cpu: [s390x] os: [linux] requiresBuild: true - dev: false optional: true /esbuild-netbsd-64/0.14.54: @@ -1335,13 +1321,12 @@ packages: dev: true optional: true - /esbuild-netbsd-64/0.15.9: - resolution: {integrity: sha512-yWgxaYTQz+TqX80wXRq6xAtb7GSBAp6gqLKfOdANg9qEmAI1Bxn04IrQr0Mzm4AhxvGKoHzjHjMgXbCCSSDxcw==} + /esbuild-netbsd-64/0.15.10: + resolution: {integrity: sha512-iGDYtJCMCqldMskQ4eIV+QSS/CuT7xyy9i2/FjpKvxAuCzrESZXiA1L64YNj6/afuzfBe9i8m/uDkFHy257hTw==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] requiresBuild: true - dev: false optional: true /esbuild-openbsd-64/0.14.54: @@ -1353,13 +1338,12 @@ packages: dev: true optional: true - /esbuild-openbsd-64/0.15.9: - resolution: {integrity: sha512-JmS18acQl4iSAjrEha1MfEmUMN4FcnnrtTaJ7Qg0tDCOcgpPPQRLGsZqhes0vmx8VA6IqRyScqXvaL7+Q0Uf3A==} + /esbuild-openbsd-64/0.15.10: + resolution: {integrity: sha512-ftMMIwHWrnrYnvuJQRJs/Smlcb28F9ICGde/P3FUTCgDDM0N7WA0o9uOR38f5Xe2/OhNCgkjNeb7QeaE3cyWkQ==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] requiresBuild: true - dev: false optional: true /esbuild-sunos-64/0.14.54: @@ -1371,13 +1355,12 @@ packages: dev: true optional: true - /esbuild-sunos-64/0.15.9: - resolution: {integrity: sha512-UKynGSWpzkPmXW3D2UMOD9BZPIuRaSqphxSCwScfEE05Be3KAmvjsBhht1fLzKpiFVJb0BYMd4jEbWMyJ/z1hQ==} + /esbuild-sunos-64/0.15.10: + resolution: {integrity: sha512-mf7hBL9Uo2gcy2r3rUFMjVpTaGpFJJE5QTDDqUFf1632FxteYANffDZmKbqX0PfeQ2XjUDE604IcE7OJeoHiyg==} engines: {node: '>=12'} cpu: [x64] os: [sunos] requiresBuild: true - dev: false optional: true /esbuild-windows-32/0.14.54: @@ -1389,13 +1372,12 @@ packages: dev: true optional: true - /esbuild-windows-32/0.15.9: - resolution: {integrity: sha512-aqXvu4/W9XyTVqO/hw3rNxKE1TcZiEYHPsXM9LwYmKSX9/hjvfIJzXwQBlPcJ/QOxedfoMVH0YnhhQ9Ffb0RGA==} + /esbuild-windows-32/0.15.10: + resolution: {integrity: sha512-ttFVo+Cg8b5+qHmZHbEc8Vl17kCleHhLzgT8X04y8zudEApo0PxPg9Mz8Z2cKH1bCYlve1XL8LkyXGFjtUYeGg==} engines: {node: '>=12'} cpu: [ia32] os: [win32] requiresBuild: true - dev: false optional: true /esbuild-windows-64/0.14.54: @@ -1407,13 +1389,12 @@ packages: dev: true optional: true - /esbuild-windows-64/0.15.9: - resolution: {integrity: sha512-zm7h91WUmlS4idMtjvCrEeNhlH7+TNOmqw5dJPJZrgFaxoFyqYG6CKDpdFCQXdyKpD5yvzaQBOMVTCBVKGZDEg==} + /esbuild-windows-64/0.15.10: + resolution: {integrity: sha512-2H0gdsyHi5x+8lbng3hLbxDWR7mKHWh5BXZGKVG830KUmXOOWFE2YKJ4tHRkejRduOGDrBvHBriYsGtmTv3ntA==} engines: {node: '>=12'} cpu: [x64] os: [win32] requiresBuild: true - dev: false optional: true /esbuild-windows-arm64/0.14.54: @@ -1425,13 +1406,12 @@ packages: dev: true optional: true - /esbuild-windows-arm64/0.15.9: - resolution: {integrity: sha512-yQEVIv27oauAtvtuhJVfSNMztJJX47ismRS6Sv2QMVV9RM+6xjbMWuuwM2nxr5A2/gj/mu2z9YlQxiwoFRCfZA==} + /esbuild-windows-arm64/0.15.10: + resolution: {integrity: sha512-S+th4F+F8VLsHLR0zrUcG+Et4hx0RKgK1eyHc08kztmLOES8BWwMiaGdoW9hiXuzznXQ0I/Fg904MNbr11Nktw==} engines: {node: '>=12'} cpu: [arm64] os: [win32] requiresBuild: true - dev: false optional: true /esbuild/0.14.54: @@ -1463,35 +1443,34 @@ packages: esbuild-windows-arm64: 0.14.54 dev: true - /esbuild/0.15.9: - resolution: {integrity: sha512-OnYr1rkMVxtmMHIAKZLMcEUlJmqcbxBz9QoBU8G9v455na0fuzlT/GLu6l+SRghrk0Mm2fSSciMmzV43Q8e0Gg==} + /esbuild/0.15.10: + resolution: {integrity: sha512-N7wBhfJ/E5fzn/SpNgX+oW2RLRjwaL8Y0ezqNqhjD6w0H2p0rDuEz2FKZqpqLnO8DCaWumKe8dsC/ljvVSSxng==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - '@esbuild/android-arm': 0.15.9 - '@esbuild/linux-loong64': 0.15.9 - esbuild-android-64: 0.15.9 - esbuild-android-arm64: 0.15.9 - esbuild-darwin-64: 0.15.9 - esbuild-darwin-arm64: 0.15.9 - esbuild-freebsd-64: 0.15.9 - esbuild-freebsd-arm64: 0.15.9 - esbuild-linux-32: 0.15.9 - esbuild-linux-64: 0.15.9 - esbuild-linux-arm: 0.15.9 - esbuild-linux-arm64: 0.15.9 - esbuild-linux-mips64le: 0.15.9 - esbuild-linux-ppc64le: 0.15.9 - esbuild-linux-riscv64: 0.15.9 - esbuild-linux-s390x: 0.15.9 - esbuild-netbsd-64: 0.15.9 - esbuild-openbsd-64: 0.15.9 - esbuild-sunos-64: 0.15.9 - esbuild-windows-32: 0.15.9 - esbuild-windows-64: 0.15.9 - esbuild-windows-arm64: 0.15.9 - dev: false + '@esbuild/android-arm': 0.15.10 + '@esbuild/linux-loong64': 0.15.10 + esbuild-android-64: 0.15.10 + esbuild-android-arm64: 0.15.10 + esbuild-darwin-64: 0.15.10 + esbuild-darwin-arm64: 0.15.10 + esbuild-freebsd-64: 0.15.10 + esbuild-freebsd-arm64: 0.15.10 + esbuild-linux-32: 0.15.10 + esbuild-linux-64: 0.15.10 + esbuild-linux-arm: 0.15.10 + esbuild-linux-arm64: 0.15.10 + esbuild-linux-mips64le: 0.15.10 + esbuild-linux-ppc64le: 0.15.10 + esbuild-linux-riscv64: 0.15.10 + esbuild-linux-s390x: 0.15.10 + esbuild-netbsd-64: 0.15.10 + esbuild-openbsd-64: 0.15.10 + esbuild-sunos-64: 0.15.10 + esbuild-windows-32: 0.15.10 + esbuild-windows-64: 0.15.10 + esbuild-windows-arm64: 0.15.10 /escape-string-regexp/1.0.5: resolution: {integrity: sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=} diff --git a/src/loaders-deprecated.ts b/src/loaders-deprecated.ts index 2a86cbf..06defa1 100644 --- a/src/loaders-deprecated.ts +++ b/src/loaders-deprecated.ts @@ -3,14 +3,15 @@ * https://nodejs.org/docs/latest-v12.x/api/esm.html#esm_hooks * https://nodejs.org/docs/latest-v14.x/api/esm.html#esm_hooks */ +import { fileURLToPath } from 'url'; import { transform, transformDynamicImport, - applySourceMap, compareNodeVersion, } from '@esbuild-kit/core-utils'; +import type { TransformOptions } from 'esbuild'; import { - sourcemaps, + applySourceMap, tsconfigRaw, tsExtensionsPattern, getFormatFromExtension, @@ -59,6 +60,7 @@ const _transformSource: transformSource = async function ( defaultTransformSource, ) { const { url } = context; + const filePath = fileURLToPath(url); if (process.send) { process.send({ @@ -73,24 +75,23 @@ const _transformSource: transformSource = async function ( ) { const transformed = await transform( source.toString(), - url, + filePath, { - tsconfigRaw, + tsconfigRaw: tsconfigRaw as TransformOptions['tsconfigRaw'], }, ); return { - source: applySourceMap(transformed, url, sourcemaps), + source: applySourceMap(transformed, url), }; } const result = await defaultTransformSource(source, context, defaultTransformSource); - const dynamicImportTransformed = transformDynamicImport(result.source.toString()); + const dynamicImportTransformed = transformDynamicImport(filePath, result.source.toString()); if (dynamicImportTransformed) { result.source = applySourceMap( dynamicImportTransformed, url, - sourcemaps, ); } diff --git a/src/loaders.ts b/src/loaders.ts index 4bf54bb..ec534f9 100644 --- a/src/loaders.ts +++ b/src/loaders.ts @@ -1,14 +1,14 @@ import path from 'path'; -import { pathToFileURL } from 'url'; +import { pathToFileURL, fileURLToPath } from 'url'; import { transform, transformDynamicImport, - applySourceMap, resolveTsPath, compareNodeVersion, } from '@esbuild-kit/core-utils'; +import type { TransformOptions } from 'esbuild'; import { - sourcemaps, + applySourceMap, tsconfigRaw, tsconfigPathsMatcher, tsExtensionsPattern, @@ -229,6 +229,7 @@ export const load: load = async function ( return loaded; } + const filePath = fileURLToPath(url); const code = loaded.source.toString(); if ( @@ -237,24 +238,23 @@ export const load: load = async function ( ) { const transformed = await transform( code, - url, + filePath, { - tsconfigRaw, + tsconfigRaw: tsconfigRaw as TransformOptions['tsconfigRaw'], }, ); return { format: 'module', - source: applySourceMap(transformed, url, sourcemaps), + source: applySourceMap(transformed, url), }; } - const dynamicImportTransformed = transformDynamicImport(code); + const dynamicImportTransformed = transformDynamicImport(filePath, code); if (dynamicImportTransformed) { loaded.source = applySourceMap( dynamicImportTransformed, url, - sourcemaps, ); } diff --git a/src/utils.ts b/src/utils.ts index da967db..34e51a0 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -6,7 +6,7 @@ import { createPathsMatcher, } from 'get-tsconfig'; -export const sourcemaps = installSourceMapSupport(); +export const applySourceMap = installSourceMapSupport(); const tsconfig = ( process.env.ESBK_TSCONFIG_PATH diff --git a/tests/fixtures/package-module/lib/cjs-ext-cjs/index.cjs b/tests/fixtures/package-module/lib/cjs-ext-cjs/index.cjs index c58cfd3..95d7ee0 100644 --- a/tests/fixtures/package-module/lib/cjs-ext-cjs/index.cjs +++ b/tests/fixtures/package-module/lib/cjs-ext-cjs/index.cjs @@ -29,7 +29,12 @@ test( test( 'sourcemaps', - () => new Error().stack.includes(':32:'), + () => { + const { stack } = new Error(); + const pathIndex = stack.indexOf(__filename + ':33:'); + const previousCharacter = stack[pathIndex - 1]; + return pathIndex > -1 && previousCharacter !== ':'; + }, ); test( diff --git a/tests/fixtures/package-module/lib/cjs-ext-js/index.js b/tests/fixtures/package-module/lib/cjs-ext-js/index.js index fb2b4eb..b6eecf8 100644 --- a/tests/fixtures/package-module/lib/cjs-ext-js/index.js +++ b/tests/fixtures/package-module/lib/cjs-ext-js/index.js @@ -29,7 +29,19 @@ test( test( 'sourcemaps', - () => new Error().stack.includes(':32:'), + () => { + const { stack } = new Error(); + let { pathname } = new URL(import.meta.url); + if (process.platform === 'win32') { + pathname = pathname.slice(1); + } + let pathIndex = stack.indexOf(pathname + ':33:'); + if (pathIndex === -1) { + pathIndex = stack.indexOf(pathname.toLowerCase() + ':33:'); + } + const previousCharacter = stack[pathIndex - 1]; + return pathIndex > -1 && previousCharacter !== ':'; + }, ); test( diff --git a/tests/fixtures/package-module/lib/esm-ext-js/index.js b/tests/fixtures/package-module/lib/esm-ext-js/index.js index 4723a67..d84c30c 100644 --- a/tests/fixtures/package-module/lib/esm-ext-js/index.js +++ b/tests/fixtures/package-module/lib/esm-ext-js/index.js @@ -29,7 +29,19 @@ test( test( 'sourcemaps', - () => new Error().stack.includes(':32:'), + () => { + const { stack } = new Error(); + let { pathname } = new URL(import.meta.url); + if (process.platform === 'win32') { + pathname = pathname.slice(1); + } + let pathIndex = stack.indexOf(pathname + ':33:'); + if (pathIndex === -1) { + pathIndex = stack.indexOf(pathname.toLowerCase() + ':33:'); + } + const previousCharacter = stack[pathIndex - 1]; + return pathIndex > -1 && previousCharacter !== ':'; + }, ); test( diff --git a/tests/fixtures/package-module/lib/esm-ext-mjs/index.mjs b/tests/fixtures/package-module/lib/esm-ext-mjs/index.mjs index ab3b31c..bf0a6b5 100644 --- a/tests/fixtures/package-module/lib/esm-ext-mjs/index.mjs +++ b/tests/fixtures/package-module/lib/esm-ext-mjs/index.mjs @@ -29,7 +29,19 @@ test( test( 'sourcemaps', - () => new Error().stack.includes(':32:'), + () => { + const { stack } = new Error(); + let { pathname } = new URL(import.meta.url); + if (process.platform === 'win32') { + pathname = pathname.slice(1); + } + let pathIndex = stack.indexOf(pathname + ':33:'); + if (pathIndex === -1) { + pathIndex = stack.indexOf(pathname.toLowerCase() + ':33:'); + } + const previousCharacter = stack[pathIndex - 1]; + return pathIndex > -1 && previousCharacter !== ':'; + }, ); test( diff --git a/tests/fixtures/package-module/lib/ts-ext-cts/index.cts b/tests/fixtures/package-module/lib/ts-ext-cts/index.cts index 6d9a2a0..e90757a 100644 --- a/tests/fixtures/package-module/lib/ts-ext-cts/index.cts +++ b/tests/fixtures/package-module/lib/ts-ext-cts/index.cts @@ -29,7 +29,12 @@ test( test( 'sourcemaps', - () => new Error().stack!.includes(':32:'), + () => { + const stack = (new Error()).stack!; + const pathIndex = stack.indexOf(__filename + ':33:'); + const previousCharacter = stack[pathIndex - 1]; + return pathIndex > -1 && previousCharacter !== ':'; + }, ); test( diff --git a/tests/fixtures/package-module/lib/ts-ext-jsx/index.jsx b/tests/fixtures/package-module/lib/ts-ext-jsx/index.jsx index 5fcb01d..159587b 100644 --- a/tests/fixtures/package-module/lib/ts-ext-jsx/index.jsx +++ b/tests/fixtures/package-module/lib/ts-ext-jsx/index.jsx @@ -1,3 +1,5 @@ +import { fileURLToPath } from 'node:url'; + async function test(description, testFunction) { try { const result = await testFunction(); @@ -29,7 +31,22 @@ test( test( 'sourcemaps', - () => new Error().stack.includes(':32:'), + () => { + const { stack } = new Error(); + let { pathname } = new URL(import.meta.url); + if (process.platform === 'win32') { + pathname = pathname.slice(1); + } + let pathIndex = stack.indexOf(pathname + ':35:'); + if (pathIndex === -1) { + pathIndex = stack.indexOf(pathname.toLowerCase() + ':35:'); + } + if (pathIndex === -1) { + pathIndex = stack.indexOf(fileURLToPath(import.meta.url).toLowerCase() + ':35:'); + } + const previousCharacter = stack[pathIndex - 1]; + return pathIndex > -1 && previousCharacter !== ':'; + }, ); test( diff --git a/tests/fixtures/package-module/lib/ts-ext-mts/index.mts b/tests/fixtures/package-module/lib/ts-ext-mts/index.mts index 74c731b..6441856 100644 --- a/tests/fixtures/package-module/lib/ts-ext-mts/index.mts +++ b/tests/fixtures/package-module/lib/ts-ext-mts/index.mts @@ -1,3 +1,5 @@ +import { fileURLToPath } from 'node:url'; + async function test(description: string, testFunction: () => any | Promise) { try { const result = await testFunction(); @@ -29,7 +31,22 @@ test( test( 'sourcemaps', - () => new Error().stack!.includes(':32:'), + () => { + const stack = (new Error()).stack!; + let { pathname } = new URL(import.meta.url); + if (process.platform === 'win32') { + pathname = pathname.slice(1); + } + let pathIndex = stack.indexOf(pathname + ':35:'); + if (pathIndex === -1) { + pathIndex = stack.indexOf(pathname.toLowerCase() + ':35:'); + } + if (pathIndex === -1) { + pathIndex = stack.indexOf(fileURLToPath(import.meta.url).toLowerCase() + ':35:'); + } + const previousCharacter = stack[pathIndex - 1]; + return pathIndex > -1 && previousCharacter !== ':'; + }, ); test( diff --git a/tests/fixtures/package-module/lib/ts-ext-ts/index.ts b/tests/fixtures/package-module/lib/ts-ext-ts/index.ts index aa4db63..e8b5753 100644 --- a/tests/fixtures/package-module/lib/ts-ext-ts/index.ts +++ b/tests/fixtures/package-module/lib/ts-ext-ts/index.ts @@ -1,3 +1,5 @@ +import { fileURLToPath } from 'node:url'; + async function test(description, testFunction) { try { const result = await testFunction(); @@ -29,7 +31,22 @@ test( test( 'sourcemaps', - () => new Error().stack!.includes(':32:'), + () => { + const stack = (new Error()).stack!; + let { pathname } = new URL(import.meta.url); + if (process.platform === 'win32') { + pathname = pathname.slice(1); + } + let pathIndex = stack.indexOf(pathname + ':35:'); + if (pathIndex === -1) { + pathIndex = stack.indexOf(pathname.toLowerCase() + ':35:'); + } + if (pathIndex === -1) { + pathIndex = stack.indexOf(fileURLToPath(import.meta.url).toLowerCase() + ':35:'); + } + const previousCharacter = stack[pathIndex - 1]; + return pathIndex > -1 && previousCharacter !== ':'; + }, ); test( diff --git a/tests/fixtures/package-module/lib/ts-ext-ts/index.tsx.ts b/tests/fixtures/package-module/lib/ts-ext-ts/index.tsx.ts index b80571e..a17adae 100644 --- a/tests/fixtures/package-module/lib/ts-ext-ts/index.tsx.ts +++ b/tests/fixtures/package-module/lib/ts-ext-ts/index.tsx.ts @@ -1,3 +1,5 @@ +import { fileURLToPath } from 'node:url'; + async function test(description, testFunction) { try { const result = await testFunction(); @@ -29,7 +31,22 @@ test( test( 'sourcemaps', - () => new Error().stack!.includes(':32:'), + () => { + const stack = (new Error()).stack!; + let { pathname } = new URL(import.meta.url); + if (process.platform === 'win32') { + pathname = pathname.slice(1); + } + let pathIndex = stack.indexOf(pathname + ':35:'); + if (pathIndex === -1) { + pathIndex = stack.indexOf(pathname.toLowerCase() + ':35:'); + } + if (pathIndex === -1) { + pathIndex = stack.indexOf(fileURLToPath(import.meta.url).toLowerCase() + ':35:'); + } + const previousCharacter = stack[pathIndex - 1]; + return pathIndex > -1 && previousCharacter !== ':'; + }, ); test( diff --git a/tests/fixtures/package-module/lib/ts-ext-tsx/index.tsx b/tests/fixtures/package-module/lib/ts-ext-tsx/index.tsx index 9780169..b1d1bb0 100644 --- a/tests/fixtures/package-module/lib/ts-ext-tsx/index.tsx +++ b/tests/fixtures/package-module/lib/ts-ext-tsx/index.tsx @@ -1,3 +1,5 @@ +import { fileURLToPath } from 'node:url'; + async function test(description, testFunction) { try { const result = await testFunction(); @@ -29,7 +31,22 @@ test( test( 'sourcemaps', - () => new Error().stack!.includes(':32:'), + () => { + const stack = (new Error()).stack!; + let { pathname } = new URL(import.meta.url); + if (process.platform === 'win32') { + pathname = pathname.slice(1); + } + let pathIndex = stack.indexOf(pathname + ':35:'); + if (pathIndex === -1) { + pathIndex = stack.indexOf(pathname.toLowerCase() + ':35:'); + } + if (pathIndex === -1) { + pathIndex = stack.indexOf(fileURLToPath(import.meta.url).toLowerCase() + ':35:'); + } + const previousCharacter = stack[pathIndex - 1]; + return pathIndex > -1 && previousCharacter !== ':'; + }, ); test(