diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 3827d450..0832603c 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -10,7 +10,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - os: [ubuntu-latest, windows-latest] + os: [ubuntu-latest] timeout-minutes: 10 steps: diff --git a/README.md b/README.md index 3f7259d5..dd74b008 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # tsx -> _TypeScript Execute (`tsx`)_: Node.js enhanced with [esbuild](https://esbuild.github.io/) to run TypeScript & ESM files +> _TypeScript Execute (`tsx`)_: Node.js enhanced to run TypeScript & ESM files ### Features - Blazing fast on-demand TypeScript & ESM compilation @@ -10,7 +10,7 @@ - Hides experimental feature warnings - TypeScript REPL - Resolves `tsconfig.json` [`paths`](https://www.typescriptlang.org/tsconfig#paths) -- Tested on Linux & Windows with Node.js v12~18 +- Tested on Linux & Windows with Node.js v12~20 > **💡 Protip: Looking to bundle your TypeScript project?** > @@ -41,6 +41,11 @@ npx tsx ./script.ts How does it compare to [ts-node](https://github.com/TypeStrong/ts-node)? Checkout the [comparison](https://github.com/privatenumber/ts-runtime-comparison). +### Mission +tsx strives to: +1. Enhance Node.js with TypeScript compatibility +2. Improve ESM <-> CJS interoperability +3. Support the latest major version of Node.js v12 and up _(likely to change in the future)_ ## Install @@ -284,10 +289,6 @@ If the dependencies are out of the specified range, it indicates a potential bre ## Sponsors -[**Holocron**](https://holocron.so#github-privatenumber) - -[![Holocron](https://holocron.so/banners/github.png)](https://holocron.so#github-privatenumber) -

diff --git a/package.json b/package.json index 58397379..fea56d9a 100644 --- a/package.json +++ b/package.json @@ -45,40 +45,40 @@ "*.{js,ts,mjs,mts,cjs,cts,json}": "pnpm lint" }, "dependencies": { - "@esbuild-kit/cjs-loader": "^2.4.2", - "@esbuild-kit/core-utils": "^3.3.0", - "@esbuild-kit/esm-loader": "^2.6.3", + "@esbuild-kit/cjs-loader": "^2.4.4", + "@esbuild-kit/core-utils": "^3.3.2", + "@esbuild-kit/esm-loader": "^2.6.5", "micromatch": "^4.0.5" }, "optionalDependencies": { - "fsevents": "~2.3.2" + "fsevents": "~2.3.3" }, "devDependencies": { - "@pvtnbr/eslint-config": "^0.36.0", - "@types/cross-spawn": "^6.0.2", + "@pvtnbr/eslint-config": "^0.37.0", + "@types/cross-spawn": "^6.0.3", "@types/micromatch": "^4.0.2", - "@types/node": "^18.11.18", - "@types/react": "^18.0.26", - "@types/semver": "^7.3.13", + "@types/node": "^20.6.0", + "@types/react": "^18.2.21", + "@types/semver": "^7.5.1", "chokidar": "^3.5.3", "clean-pkg-json": "^1.2.0", - "cleye": "^1.3.1", + "cleye": "^1.3.2", "cross-spawn": "^7.0.3", - "eslint": "^8.48.0", - "execa": "^6.1.0", + "eslint": "^8.49.0", + "execa": "^8.0.1", "fs-fixture": "^1.2.0", - "get-node": "^13.5.0", - "kolorist": "^1.6.0", - "lint-staged": "^13.1.0", + "get-node": "^14.2.1", + "kolorist": "^1.8.0", + "lint-staged": "^14.0.1", "manten": "^1.1.0", "node-pty": "^1.0.0", "outdent": "^0.8.0", - "pkgroll": "^1.8.0", - "semver": "^7.3.8", - "simple-git-hooks": "^2.8.1", - "strip-ansi": "^7.0.1", + "pkgroll": "^1.11.0", + "semver": "^7.5.4", + "simple-git-hooks": "^2.9.0", + "strip-ansi": "^7.1.0", "type-flag": "^3.0.0", - "typescript": "^4.9.4" + "typescript": "^5.2.2" }, "eslintConfig": { "extends": "@pvtnbr", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 78b6ed42..c84500b8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -6,42 +6,42 @@ settings: dependencies: '@esbuild-kit/cjs-loader': - specifier: ^2.4.2 + specifier: ^2.4.4 version: 2.4.4 '@esbuild-kit/core-utils': - specifier: ^3.3.0 - version: 3.3.1 + specifier: ^3.3.2 + version: 3.3.2 '@esbuild-kit/esm-loader': - specifier: ^2.6.3 - version: 2.6.4 + specifier: ^2.6.5 + version: 2.6.5 micromatch: specifier: ^4.0.5 version: 4.0.5 optionalDependencies: fsevents: - specifier: ~2.3.2 + specifier: ~2.3.3 version: 2.3.3 devDependencies: '@pvtnbr/eslint-config': - specifier: ^0.36.0 - version: 0.36.0(eslint@8.49.0)(typescript@4.9.5) + specifier: ^0.37.0 + version: 0.37.0(eslint@8.49.0)(typescript@5.2.2) '@types/cross-spawn': - specifier: ^6.0.2 + specifier: ^6.0.3 version: 6.0.3 '@types/micromatch': specifier: ^4.0.2 version: 4.0.2 '@types/node': - specifier: ^18.11.18 - version: 18.17.15 + specifier: ^20.6.0 + version: 20.6.0 '@types/react': - specifier: ^18.0.26 + specifier: ^18.2.21 version: 18.2.21 '@types/semver': - specifier: ^7.3.13 - version: 7.5.2 + specifier: ^7.5.1 + version: 7.5.1 chokidar: specifier: ^3.5.3 version: 3.5.3 @@ -49,29 +49,29 @@ devDependencies: specifier: ^1.2.0 version: 1.2.0 cleye: - specifier: ^1.3.1 + specifier: ^1.3.2 version: 1.3.2 cross-spawn: specifier: ^7.0.3 version: 7.0.3 eslint: - specifier: ^8.48.0 + specifier: ^8.49.0 version: 8.49.0 execa: - specifier: ^6.1.0 - version: 6.1.0 + specifier: ^8.0.1 + version: 8.0.1 fs-fixture: specifier: ^1.2.0 version: 1.2.0 get-node: - specifier: ^13.5.0 - version: 13.6.0 + specifier: ^14.2.1 + version: 14.2.1 kolorist: - specifier: ^1.6.0 + specifier: ^1.8.0 version: 1.8.0 lint-staged: - specifier: ^13.1.0 - version: 13.3.0 + specifier: ^14.0.1 + version: 14.0.1 manten: specifier: ^1.1.0 version: 1.1.0 @@ -82,23 +82,23 @@ devDependencies: specifier: ^0.8.0 version: 0.8.0 pkgroll: - specifier: ^1.8.0 - version: 1.11.0(typescript@4.9.5) + specifier: ^1.11.0 + version: 1.11.0(typescript@5.2.2) semver: - specifier: ^7.3.8 + specifier: ^7.5.4 version: 7.5.4 simple-git-hooks: - specifier: ^2.8.1 + specifier: ^2.9.0 version: 2.9.0 strip-ansi: - specifier: ^7.0.1 + specifier: ^7.1.0 version: 7.1.0 type-flag: specifier: ^3.0.0 version: 3.0.0 typescript: - specifier: ^4.9.4 - version: 4.9.5 + specifier: ^5.2.2 + version: 5.2.2 packages: @@ -115,8 +115,8 @@ packages: chalk: 2.4.2 dev: true - /@babel/helper-validator-identifier@7.22.19: - resolution: {integrity: sha512-Tinq7ybnEPFFXhlYOYFiSjespWQk0dq2dRNAiMdRTOYQzEGqnnNyrTxPYHP5r6wGjlF1rFgABdDV0g8EwD6Qbg==} + /@babel/helper-validator-identifier@7.22.15: + resolution: {integrity: sha512-4E/F9IIEi8WR94324mbDUMo074YTheJmd7eZF5vITTeYchqAi6sYXRLHUVsmkdmY4QjfKTcB2jB7dVP3NaBElQ==} engines: {node: '>=6.9.0'} dev: true @@ -124,7 +124,7 @@ packages: resolution: {integrity: sha512-C/BaXcnnvBCmHTpz/VGZ8jgtE2aYlW4hxDhseJAWZb7gqGM/qtCK6iZUb0TyKFf7BOUsBH7Q7fkRsDRhg1XklQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-validator-identifier': 7.22.19 + '@babel/helper-validator-identifier': 7.22.15 chalk: 2.4.2 js-tokens: 4.0.0 dev: true @@ -132,21 +132,21 @@ packages: /@esbuild-kit/cjs-loader@2.4.4: resolution: {integrity: sha512-NfsJX4PdzhwSkfJukczyUiZGc7zNNWZcEAyqeISpDnn0PTfzMJR1aR8xAIPskBejIxBJbIgCCMzbaYa9SXepIg==} dependencies: - '@esbuild-kit/core-utils': 3.3.1 + '@esbuild-kit/core-utils': 3.3.2 get-tsconfig: 4.7.0 dev: false - /@esbuild-kit/core-utils@3.3.1: - resolution: {integrity: sha512-zg2aeGLgbZ/U8AnHRD6y085BkRqlw7jOsqpI/AFaQg6FhcCRycAe+aFLibs9okVVYTMqWANDC76UVSzd3qBoOw==} + /@esbuild-kit/core-utils@3.3.2: + resolution: {integrity: sha512-sPRAnw9CdSsRmEtnsl2WXWdyquogVpB3yZ3dgwJfe8zrOzTsV7cJvmwrKVa+0ma5BoiGJ+BoqkMvawbayKUsqQ==} dependencies: esbuild: 0.18.20 source-map-support: 0.5.21 dev: false - /@esbuild-kit/esm-loader@2.6.4: - resolution: {integrity: sha512-xcbyhN97xFFFEdDw6IC4EuzX9Ali3aV3cj2FIYragOQpbPM4X6QA2R5qaP3h7Tr0tuyI6dmJJdMw7oBHxBSXQA==} + /@esbuild-kit/esm-loader@2.6.5: + resolution: {integrity: sha512-FxEMIkJKnodyA1OaCUoEvbYRkoZlLZ4d/eXFu9Fh8CbBBgP5EmZxrfTRyN0qpXZ4vOvqnE5YdRdcrmUUXuU+dA==} dependencies: - '@esbuild-kit/core-utils': 3.3.1 + '@esbuild-kit/core-utils': 3.3.2 get-tsconfig: 4.7.0 dev: false @@ -404,7 +404,7 @@ packages: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 - '@types/node': 18.17.15 + '@types/node': 20.6.0 '@types/yargs': 17.0.24 chalk: 4.1.2 dev: true @@ -434,13 +434,13 @@ packages: fastq: 1.15.0 dev: true - /@pvtnbr/eslint-config@0.36.0(eslint@8.49.0)(typescript@4.9.5): - resolution: {integrity: sha512-xBEbRPAnwfQIQP8ncKcw85OMTCIMqEfPz61jpsVKI6ClFjIN9WaENjdEoQO/00PVDwhtQI3iembuR/kTGmVOdA==} + /@pvtnbr/eslint-config@0.37.0(eslint@8.49.0)(typescript@5.2.2): + resolution: {integrity: sha512-cwNTnizjiN5XAUbIqqILkcT+h5ewBqVW/6r1oXWdl9GeTgWnuZScXfO35KDDQJP3uxq/iZOiAl4uIPYcbWXZ4w==} peerDependencies: eslint: ^8.0.0 dependencies: - '@typescript-eslint/eslint-plugin': 6.7.0(@typescript-eslint/parser@6.7.0)(eslint@8.49.0)(typescript@4.9.5) - '@typescript-eslint/parser': 6.7.0(eslint@8.49.0)(typescript@4.9.5) + '@typescript-eslint/eslint-plugin': 6.7.0(@typescript-eslint/parser@6.7.0)(eslint@8.49.0)(typescript@5.2.2) + '@typescript-eslint/parser': 6.7.0(eslint@8.49.0)(typescript@5.2.2) confusing-browser-globals: 1.0.11 eslint: 8.49.0 eslint-import-resolver-typescript: 3.6.0(@typescript-eslint/parser@6.7.0)(eslint-plugin-import@2.28.1)(eslint@8.49.0) @@ -593,7 +593,7 @@ packages: /@types/cross-spawn@6.0.3: resolution: {integrity: sha512-BDAkU7WHHRHnvBf5z89lcvACsvkz/n7Tv+HyD/uW76O29HoH1Tk/W6iQrepaZVbisvlEek4ygwT8IW7ow9XLAA==} dependencies: - '@types/node': 18.17.15 + '@types/node': 20.6.0 dev: true /@types/estree@1.0.1: @@ -640,8 +640,8 @@ packages: '@types/braces': 3.0.2 dev: true - /@types/node@18.17.15: - resolution: {integrity: sha512-2yrWpBk32tvV/JAd3HNHWuZn/VDN1P+72hWirHnvsvTGSqbANi+kSeuQR9yAHnbvaBvHDsoTdXV0Fe+iRtHLKA==} + /@types/node@20.6.0: + resolution: {integrity: sha512-najjVq5KN2vsH2U/xyh2opaSEz6cZMR2SetLIlxlj08nOcmPOemJmUK2o4kUzfLqfrWE0PIrNeE16XhYDd3nqg==} dev: true /@types/normalize-package-data@2.4.1: @@ -668,8 +668,8 @@ packages: resolution: {integrity: sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==} dev: true - /@types/semver@7.5.2: - resolution: {integrity: sha512-7aqorHYgdNO4DM36stTiGO3DvKoex9TQRwsJU6vMaFGyqpBA1MNZkz+PG3gaNUPpTAOYhT1WR7M1JyA3fbS9Cw==} + /@types/semver@7.5.1: + resolution: {integrity: sha512-cJRQXpObxfNKkFAZbJl2yjWtJCqELQIdShsogr1d2MilP8dKD9TE/nEKHkJgUNHdGKCQaf9HbIynuV2csLGVLg==} dev: true /@types/stack-utils@2.0.1: @@ -690,7 +690,7 @@ packages: '@types/yargs-parser': 21.0.0 dev: true - /@typescript-eslint/eslint-plugin@6.7.0(@typescript-eslint/parser@6.7.0)(eslint@8.49.0)(typescript@4.9.5): + /@typescript-eslint/eslint-plugin@6.7.0(@typescript-eslint/parser@6.7.0)(eslint@8.49.0)(typescript@5.2.2): resolution: {integrity: sha512-gUqtknHm0TDs1LhY12K2NA3Rmlmp88jK9Tx8vGZMfHeNMLE3GH2e9TRub+y+SOjuYgtOmok+wt1AyDPZqxbNag==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -702,10 +702,10 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.8.1 - '@typescript-eslint/parser': 6.7.0(eslint@8.49.0)(typescript@4.9.5) + '@typescript-eslint/parser': 6.7.0(eslint@8.49.0)(typescript@5.2.2) '@typescript-eslint/scope-manager': 6.7.0 - '@typescript-eslint/type-utils': 6.7.0(eslint@8.49.0)(typescript@4.9.5) - '@typescript-eslint/utils': 6.7.0(eslint@8.49.0)(typescript@4.9.5) + '@typescript-eslint/type-utils': 6.7.0(eslint@8.49.0)(typescript@5.2.2) + '@typescript-eslint/utils': 6.7.0(eslint@8.49.0)(typescript@5.2.2) '@typescript-eslint/visitor-keys': 6.7.0 debug: 4.3.4 eslint: 8.49.0 @@ -713,13 +713,13 @@ packages: ignore: 5.2.4 natural-compare: 1.4.0 semver: 7.5.4 - ts-api-utils: 1.0.3(typescript@4.9.5) - typescript: 4.9.5 + ts-api-utils: 1.0.3(typescript@5.2.2) + typescript: 5.2.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser@6.7.0(eslint@8.49.0)(typescript@4.9.5): + /@typescript-eslint/parser@6.7.0(eslint@8.49.0)(typescript@5.2.2): resolution: {integrity: sha512-jZKYwqNpNm5kzPVP5z1JXAuxjtl2uG+5NpaMocFPTNC2EdYIgbXIPImObOkhbONxtFTTdoZstLZefbaK+wXZng==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -731,11 +731,11 @@ packages: dependencies: '@typescript-eslint/scope-manager': 6.7.0 '@typescript-eslint/types': 6.7.0 - '@typescript-eslint/typescript-estree': 6.7.0(typescript@4.9.5) + '@typescript-eslint/typescript-estree': 6.7.0(typescript@5.2.2) '@typescript-eslint/visitor-keys': 6.7.0 debug: 4.3.4 eslint: 8.49.0 - typescript: 4.9.5 + typescript: 5.2.2 transitivePeerDependencies: - supports-color dev: true @@ -748,7 +748,7 @@ packages: '@typescript-eslint/visitor-keys': 6.7.0 dev: true - /@typescript-eslint/type-utils@6.7.0(eslint@8.49.0)(typescript@4.9.5): + /@typescript-eslint/type-utils@6.7.0(eslint@8.49.0)(typescript@5.2.2): resolution: {integrity: sha512-f/QabJgDAlpSz3qduCyQT0Fw7hHpmhOzY/Rv6zO3yO+HVIdPfIWhrQoAyG+uZVtWAIS85zAyzgAFfyEr+MgBpg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -758,12 +758,12 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 6.7.0(typescript@4.9.5) - '@typescript-eslint/utils': 6.7.0(eslint@8.49.0)(typescript@4.9.5) + '@typescript-eslint/typescript-estree': 6.7.0(typescript@5.2.2) + '@typescript-eslint/utils': 6.7.0(eslint@8.49.0)(typescript@5.2.2) debug: 4.3.4 eslint: 8.49.0 - ts-api-utils: 1.0.3(typescript@4.9.5) - typescript: 4.9.5 + ts-api-utils: 1.0.3(typescript@5.2.2) + typescript: 5.2.2 transitivePeerDependencies: - supports-color dev: true @@ -773,7 +773,7 @@ packages: engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/typescript-estree@6.7.0(typescript@4.9.5): + /@typescript-eslint/typescript-estree@6.7.0(typescript@5.2.2): resolution: {integrity: sha512-dPvkXj3n6e9yd/0LfojNU8VMUGHWiLuBZvbM6V6QYD+2qxqInE7J+J/ieY2iGwR9ivf/R/haWGkIj04WVUeiSQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -788,13 +788,13 @@ packages: globby: 11.1.0 is-glob: 4.0.3 semver: 7.5.4 - ts-api-utils: 1.0.3(typescript@4.9.5) - typescript: 4.9.5 + ts-api-utils: 1.0.3(typescript@5.2.2) + typescript: 5.2.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils@6.7.0(eslint@8.49.0)(typescript@4.9.5): + /@typescript-eslint/utils@6.7.0(eslint@8.49.0)(typescript@5.2.2): resolution: {integrity: sha512-MfCq3cM0vh2slSikQYqK2Gq52gvOhe57vD2RM3V4gQRZYX4rDPnKLu5p6cm89+LJiGlwEXU8hkYxhqqEC/V3qA==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -802,10 +802,10 @@ packages: dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.49.0) '@types/json-schema': 7.0.12 - '@types/semver': 7.5.2 + '@types/semver': 7.5.1 '@typescript-eslint/scope-manager': 6.7.0 '@typescript-eslint/types': 6.7.0 - '@typescript-eslint/typescript-estree': 6.7.0(typescript@4.9.5) + '@typescript-eslint/typescript-estree': 6.7.0(typescript@5.2.2) eslint: 8.49.0 semver: 7.5.4 transitivePeerDependencies: @@ -844,18 +844,17 @@ packages: uri-js: 4.4.1 dev: true - /all-node-versions@11.3.0: - resolution: {integrity: sha512-psMkc5s3qpr+QMfires9bC4azRYciPWql1wqZKMsYRh1731qefQDH2X4+O19xSBX6u0Ra/8Y5diG6y/fEmqKsw==} - engines: {node: '>=14.18.0'} + /all-node-versions@12.1.0: + resolution: {integrity: sha512-hwU1w+FffajIIU1WeCVf8zxNw5kybwsK5vHmYQNgf5DvSu7fy/gGYVXJnlwvXMGZ3nFVMnztpUO1S1MHYJBeIQ==} + engines: {node: '>=16.17.0'} dependencies: - fetch-node-website: 7.3.0 + fetch-node-website: 8.1.0 filter-obj: 5.1.0 - get-stream: 6.0.1 - global-cache-dir: 4.4.0 + global-cache-dir: 5.0.0 is-plain-obj: 4.1.0 path-exists: 5.0.0 semver: 7.5.4 - write-file-atomic: 4.0.2 + write-file-atomic: 5.0.1 dev: true /ansi-escapes@5.0.0: @@ -924,7 +923,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.2.1 - es-abstract: 1.22.2 + es-abstract: 1.22.1 get-intrinsic: 1.2.1 is-string: 1.0.7 dev: true @@ -940,7 +939,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.2.1 - es-abstract: 1.22.2 + es-abstract: 1.22.1 es-shim-unscopables: 1.0.0 get-intrinsic: 1.2.1 dev: true @@ -951,7 +950,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.2.1 - es-abstract: 1.22.2 + es-abstract: 1.22.1 es-shim-unscopables: 1.0.0 dev: true @@ -961,7 +960,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.2.1 - es-abstract: 1.22.2 + es-abstract: 1.22.1 es-shim-unscopables: 1.0.0 dev: true @@ -970,7 +969,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.2.1 - es-abstract: 1.22.2 + es-abstract: 1.22.1 es-shim-unscopables: 1.0.0 get-intrinsic: 1.2.1 dev: true @@ -982,7 +981,7 @@ packages: array-buffer-byte-length: 1.0.0 call-bind: 1.0.2 define-properties: 1.2.1 - es-abstract: 1.22.2 + es-abstract: 1.22.1 get-intrinsic: 1.2.1 is-array-buffer: 3.0.2 is-shared-array-buffer: 1.0.2 @@ -999,12 +998,12 @@ packages: engines: {node: '>= 0.4'} dev: true - /balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + /b4a@1.6.4: + resolution: {integrity: sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw==} dev: true - /base64-js@1.5.1: - resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + /balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} dev: true /binary-extensions@2.2.0: @@ -1012,14 +1011,6 @@ packages: engines: {node: '>=8'} dev: true - /bl@4.1.0: - resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} - dependencies: - buffer: 5.7.1 - inherits: 2.0.4 - readable-stream: 3.6.2 - dev: true - /boolbase@1.0.0: resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} dev: true @@ -1047,13 +1038,6 @@ packages: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} dev: false - /buffer@5.7.1: - resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} - dependencies: - base64-js: 1.5.1 - ieee754: 1.2.1 - dev: true - /builtin-modules@3.3.0: resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} engines: {node: '>=6'} @@ -1149,10 +1133,6 @@ packages: fsevents: 2.3.3 dev: true - /chownr@1.1.4: - resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} - dev: true - /ci-info@3.8.0: resolution: {integrity: sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==} engines: {node: '>=8'} @@ -1224,9 +1204,9 @@ packages: resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} dev: true - /colors-option@4.5.0: - resolution: {integrity: sha512-Soe5lerRg3erMRgYC0EC696/8dMCGpBzcQchFfi55Yrkja8F+P7cUt0LVTIg7u5ob5BexLZ/F1kO+ejmv+nq8w==} - engines: {node: '>=14.18.0'} + /colors-option@5.0.0: + resolution: {integrity: sha512-tlLwb40JtYBb/KmJBz72l1tLKYGhuj2/lHKbHceRrCnLtvvmdiZwliiCNrIS3gpvUKnWkUyk/Q0OqmMKkyF7fA==} + engines: {node: '>=16.17.0'} dependencies: chalk: 5.3.0 is-plain-obj: 4.1.0 @@ -1321,8 +1301,8 @@ packages: engines: {node: '>=10'} dev: true - /define-data-property@1.1.0: - resolution: {integrity: sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g==} + /define-data-property@1.0.1: + resolution: {integrity: sha512-22M+6zEspQHx10bfFQl2ET39IvfuQ7+rZIH7+ard8fCC4hPmkOSy+8JhKxBRLaWUziJ0O63NTYT97LR8zUfPTw==} engines: {node: '>= 0.4'} dependencies: get-intrinsic: 1.2.1 @@ -1334,7 +1314,7 @@ packages: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} dependencies: - define-data-property: 1.1.0 + define-data-property: 1.0.1 has-property-descriptors: 1.0.0 object-keys: 1.1.1 dev: true @@ -1397,8 +1377,8 @@ packages: is-arrayish: 0.2.1 dev: true - /es-abstract@1.22.2: - resolution: {integrity: sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA==} + /es-abstract@1.22.1: + resolution: {integrity: sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw==} engines: {node: '>= 0.4'} dependencies: array-buffer-byte-length: 1.0.0 @@ -1442,13 +1422,13 @@ packages: which-typed-array: 1.1.11 dev: true - /es-iterator-helpers@1.0.15: - resolution: {integrity: sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==} + /es-iterator-helpers@1.0.14: + resolution: {integrity: sha512-JgtVnwiuoRuzLvqelrvN3Xu7H9bu2ap/kQ2CrM62iidP8SKuD99rWU3CJy++s7IVL2qb/AjXPGR/E7i9ngd/Cw==} dependencies: asynciterator.prototype: 1.0.0 call-bind: 1.0.2 define-properties: 1.2.1 - es-abstract: 1.22.2 + es-abstract: 1.22.1 es-set-tostringtag: 2.0.1 function-bind: 1.1.1 get-intrinsic: 1.2.1 @@ -1457,7 +1437,7 @@ packages: has-proto: 1.0.1 has-symbols: 1.0.3 internal-slot: 1.0.5 - iterator.prototype: 1.1.2 + iterator.prototype: 1.1.1 safe-array-concat: 1.0.1 dev: true @@ -1588,7 +1568,7 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 6.7.0(eslint@8.49.0)(typescript@4.9.5) + '@typescript-eslint/parser': 6.7.0(eslint@8.49.0)(typescript@5.2.2) debug: 3.2.7 eslint: 8.49.0 eslint-import-resolver-node: 0.3.9 @@ -1629,7 +1609,7 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 6.7.0(eslint@8.49.0)(typescript@4.9.5) + '@typescript-eslint/parser': 6.7.0(eslint@8.49.0)(typescript@5.2.2) array-includes: 3.1.7 array.prototype.findlastindex: 1.2.3 array.prototype.flat: 1.3.2 @@ -1734,7 +1714,7 @@ packages: array.prototype.flatmap: 1.3.2 array.prototype.tosorted: 1.1.2 doctrine: 2.1.0 - es-iterator-helpers: 1.0.15 + es-iterator-helpers: 1.0.14 eslint: 8.49.0 estraverse: 5.3.0 jsx-ast-utils: 3.3.5 @@ -1772,7 +1752,7 @@ packages: peerDependencies: eslint: '>=8.44.0' dependencies: - '@babel/helper-validator-identifier': 7.22.19 + '@babel/helper-validator-identifier': 7.22.15 '@eslint-community/eslint-utils': 4.4.0(eslint@8.49.0) ci-info: 3.8.0 clean-regexp: 1.0.0 @@ -1908,13 +1888,13 @@ packages: resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} dev: true - /execa@6.1.0: - resolution: {integrity: sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + /execa@7.2.0: + resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==} + engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} dependencies: cross-spawn: 7.0.3 get-stream: 6.0.1 - human-signals: 3.0.1 + human-signals: 4.3.1 is-stream: 3.0.0 merge-stream: 2.0.0 npm-run-path: 5.1.0 @@ -1923,18 +1903,18 @@ packages: strip-final-newline: 3.0.0 dev: true - /execa@7.2.0: - resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==} - engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} + /execa@8.0.1: + resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} + engines: {node: '>=16.17'} dependencies: cross-spawn: 7.0.3 - get-stream: 6.0.1 - human-signals: 4.3.1 + get-stream: 8.0.1 + human-signals: 5.0.0 is-stream: 3.0.0 merge-stream: 2.0.0 npm-run-path: 5.1.0 onetime: 6.0.0 - signal-exit: 3.0.7 + signal-exit: 4.1.0 strip-final-newline: 3.0.0 dev: true @@ -1953,6 +1933,10 @@ packages: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} dev: true + /fast-fifo@1.3.2: + resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} + dev: true + /fast-glob@3.3.1: resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} engines: {node: '>=8.6.0'} @@ -1978,14 +1962,14 @@ packages: reusify: 1.0.4 dev: true - /fetch-node-website@7.3.0: - resolution: {integrity: sha512-/wayUHbdVUWrD72aqRNNrr6+MHnCkumZgNugN0RfiWJpbNJUdAkMk4Z18MGayGZVVqYXR1RWrV+bIFEt5HuBZg==} - engines: {node: '>=14.18.0'} + /fetch-node-website@8.1.0: + resolution: {integrity: sha512-B9TW/6gu+I9wIPv1FCdfzhbcu6k6L/0L3EqJxa75tLQvZJNK/XZteNaItqvskcRQmK4z0TtIv29qh9yr1/UFcA==} + engines: {node: '>=16.17.0'} dependencies: cli-progress: 3.12.0 - colors-option: 4.5.0 + colors-option: 5.0.0 figures: 5.0.0 - got: 12.6.1 + got: 13.0.0 is-plain-obj: 4.1.0 dev: true @@ -2055,10 +2039,6 @@ packages: engines: {node: '>= 14.17'} dev: true - /fs-constants@1.0.0: - resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} - dev: true - /fs-fixture@1.2.0: resolution: {integrity: sha512-bPBNW12US81zxCXzP/BQ6ntSvMXNgX76nHVUxzQJVTmHkzXnbfp+M4mNWeJ9LuCG8M1wyeFov7oiwO9wnCEBjQ==} engines: {node: '>=16.7.0'} @@ -2085,7 +2065,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.2.1 - es-abstract: 1.22.2 + es-abstract: 1.22.1 functions-have-names: 1.2.3 dev: true @@ -2102,24 +2082,23 @@ packages: has-symbols: 1.0.3 dev: true - /get-node@13.6.0: - resolution: {integrity: sha512-suOweY+1+ywIulDw++ZWsFXM8AKxtQXyidV2b9pwCuWjqnYUjTd4JcjNiVB4eEof0M0mJvuLXhC29K5EVeiXUQ==} - engines: {node: '>=14.18.0'} + /get-node@14.2.1: + resolution: {integrity: sha512-PQ2foyy+qXKj/+KJwu74bIGRma+ydtUYkKuHboIxq1vn0s/Pd/L8rICa8CJPHHLoEa2o2FbMGCkgEHNOTZ54/A==} + engines: {node: '>=16.17.0'} dependencies: - execa: 7.2.0 - fetch-node-website: 7.3.0 - get-stream: 6.0.1 - global-cache-dir: 4.4.0 + execa: 8.0.1 + fetch-node-website: 8.1.0 + global-cache-dir: 5.0.0 is-plain-obj: 4.1.0 jszip: 3.10.1 mem: 9.0.2 move-file: 3.1.0 - node-version-alias: 3.4.1 + node-version-alias: 4.1.0 path-exists: 5.0.0 path-key: 4.0.0 - preferred-node-version: 3.6.0 + preferred-node-version: 4.2.0 semver: 7.5.4 - tar-fs: 2.1.1 + tar-fs: 3.0.4 tmp-promise: 3.0.3 dev: true @@ -2133,6 +2112,11 @@ packages: engines: {node: '>=10'} dev: true + /get-stream@8.0.1: + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} + engines: {node: '>=16'} + dev: true + /get-symbol-description@1.0.0: resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} engines: {node: '>= 0.4'} @@ -2182,9 +2166,9 @@ packages: once: 1.4.0 dev: true - /global-cache-dir@4.4.0: - resolution: {integrity: sha512-bk0gI6IbbphRjAaCJJn5H+T/CcEck5B3a5KBO2BXSDzjFSV+API17w8GA7YPJ6IXJiasW8M0VsEIig1PCHdfOQ==} - engines: {node: '>=14.18.0'} + /global-cache-dir@5.0.0: + resolution: {integrity: sha512-fO/83a6mkwCjM6MkxAHUUV5zcrRSymk4fr9JcEcsvH1cait+rV3G6T6II51beLIw3vRLwPxaC3xgh1GOWBpOuw==} + engines: {node: '>=16.17.0'} dependencies: cachedir: 2.4.0 path-exists: 5.0.0 @@ -2222,9 +2206,9 @@ packages: get-intrinsic: 1.2.1 dev: true - /got@12.6.1: - resolution: {integrity: sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==} - engines: {node: '>=14.16'} + /got@13.0.0: + resolution: {integrity: sha512-XfBk1CxOOScDcMr9O1yKkNaQyy865NbYs+F7dr4H0LZMVgCj2Le59k6PqbNHoL5ToeaEQUYh6c6yMfVcc6SJxA==} + engines: {node: '>=16'} dependencies: '@sindresorhus/is': 5.6.0 '@szmarczak/http-timer': 5.0.1 @@ -2311,18 +2295,14 @@ packages: resolve-alpn: 1.2.1 dev: true - /human-signals@3.0.1: - resolution: {integrity: sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==} - engines: {node: '>=12.20.0'} - dev: true - /human-signals@4.3.1: resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==} engines: {node: '>=14.18.0'} dev: true - /ieee754@1.2.1: - resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + /human-signals@5.0.0: + resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} + engines: {node: '>=16.17.0'} dev: true /ignore@5.2.4: @@ -2636,14 +2616,13 @@ packages: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} dev: true - /iterator.prototype@1.1.2: - resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} + /iterator.prototype@1.1.1: + resolution: {integrity: sha512-9E+nePc8C9cnQldmNl6bgpTY6zI4OPRZd97fhJ/iVZ1GifIUDVV5F6x1nEDqpe8KaMEZGT4xgrwKQDxXnjOIZQ==} dependencies: define-properties: 1.2.1 get-intrinsic: 1.2.1 has-symbols: 1.0.3 reflect.getprototypeof: 1.0.4 - set-function-name: 2.0.1 dev: true /jest-diff@29.7.0: @@ -2691,7 +2670,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 18.17.15 + '@types/node': 20.6.0 chalk: 4.1.2 ci-info: 3.8.0 graceful-fs: 4.2.11 @@ -2816,8 +2795,8 @@ packages: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} dev: true - /lint-staged@13.3.0: - resolution: {integrity: sha512-mPRtrYnipYYv1FEE134ufbWpeggNTo+O/UPzngoaKzbzHAthvR55am+8GfHTnqNRQVRRrYQLGW9ZyUoD7DsBHQ==} + /lint-staged@14.0.1: + resolution: {integrity: sha512-Mw0cL6HXnHN1ag0mN/Dg4g6sr8uf8sn98w2Oc1ECtFto9tvRF7nkXGJRbx8gPlHyoR0pLyBr2lQHbWwmUHe1Sw==} engines: {node: ^16.14.0 || >=18.0.0} hasBin: true dependencies: @@ -3062,23 +3041,23 @@ packages: nan: 2.18.0 dev: true - /node-version-alias@3.4.1: - resolution: {integrity: sha512-Kf3L9spAL6lEHMPyqpwHSTNG3LPkOXBfSUnBMG/YE2TdoC8Qoqf0+qg01nr6K9MFQEcXtWUyTQzLJByRixSBsA==} - engines: {node: '>=14.18.0'} + /node-version-alias@4.1.0: + resolution: {integrity: sha512-UsG9JUJrbUvJoEzc0OWdqCEjQ5m/2fsv3KneusvF2w1d89fgVH8WuoM2BB5oGDAPn569qqx9CAcJ7wpcdfE6bw==} + engines: {node: '>=16.17.0'} dependencies: - all-node-versions: 11.3.0 + all-node-versions: 12.1.0 filter-obj: 5.1.0 is-plain-obj: 4.1.0 - normalize-node-version: 12.4.0 + normalize-node-version: 13.1.0 path-exists: 5.0.0 semver: 7.5.4 dev: true - /normalize-node-version@12.4.0: - resolution: {integrity: sha512-0oLZN5xcyKVrSHMk8/9RuNblEe7HEsXAt5Te2xmMiZD9VX7bqWYe0HMyfqSYFD3xv0949lZuXaEwjTqle1uWWQ==} - engines: {node: '>=14.18.0'} + /normalize-node-version@13.1.0: + resolution: {integrity: sha512-SoiAvmzuaj4oqi/Rqr4AfjxxKJGRCq5yM78WLlO17muvmM8EIBMGiynTBbEcnzPFf84g78J/VvC712oSVc7zJg==} + engines: {node: '>=16.17.0'} dependencies: - all-node-versions: 11.3.0 + all-node-versions: 12.1.0 filter-obj: 5.1.0 semver: 7.5.4 dev: true @@ -3150,7 +3129,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.2.1 - es-abstract: 1.22.2 + es-abstract: 1.22.1 dev: true /object.fromentries@2.0.7: @@ -3159,7 +3138,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.2.1 - es-abstract: 1.22.2 + es-abstract: 1.22.1 dev: true /object.groupby@1.0.1: @@ -3167,7 +3146,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.2.1 - es-abstract: 1.22.2 + es-abstract: 1.22.1 get-intrinsic: 1.2.1 dev: true @@ -3175,7 +3154,7 @@ packages: resolution: {integrity: sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==} dependencies: define-properties: 1.2.1 - es-abstract: 1.22.2 + es-abstract: 1.22.1 dev: true /object.values@1.1.7: @@ -3184,7 +3163,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.2.1 - es-abstract: 1.22.2 + es-abstract: 1.22.1 dev: true /once@1.4.0: @@ -3361,7 +3340,7 @@ packages: hasBin: true dev: true - /pkgroll@1.11.0(typescript@4.9.5): + /pkgroll@1.11.0(typescript@5.2.2): resolution: {integrity: sha512-E+RJuiqun1QbsGzkxwRV1xmdwsmDQ6uGOoLagLwS4b1YPFNAPESDqz5QQx/MxkZCinl07Tt3GXzMJQT+helsww==} hasBin: true peerDependencies: @@ -3380,7 +3359,7 @@ packages: esbuild: 0.18.20 magic-string: 0.30.3 rollup: 2.79.1 - typescript: 4.9.5 + typescript: 5.2.2 dev: true /pluralize@8.0.0: @@ -3396,12 +3375,12 @@ packages: util-deprecate: 1.0.2 dev: true - /preferred-node-version@3.6.0: - resolution: {integrity: sha512-e+M+eUUW/tO+h7QIqBKHRVsOQRBDFMD6OSYSZ7IMzFek5+hu0UHjmwmU4c9/5miQA9CCRGDld764Drcdid2eRQ==} - engines: {node: '>=14.18.0'} + /preferred-node-version@4.2.0: + resolution: {integrity: sha512-mBUNAXbXdhROTMa/Klr7VYgqyh854Gq6HgVqEBiBK5c6910nd7DDzeRR1O564X+ds97XD/q5XdeOsuczNjsbtQ==} + engines: {node: '>=16.17.0'} dependencies: is-plain-obj: 4.1.0 - node-version-alias: 3.4.1 + node-version-alias: 4.1.0 p-locate: 6.0.0 path-type: 5.0.0 dev: true @@ -3453,6 +3432,10 @@ packages: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} dev: true + /queue-tick@1.0.1: + resolution: {integrity: sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==} + dev: true + /quick-lru@5.1.1: resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} engines: {node: '>=10'} @@ -3497,15 +3480,6 @@ packages: util-deprecate: 1.0.2 dev: true - /readable-stream@3.6.2: - resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} - engines: {node: '>= 6'} - dependencies: - inherits: 2.0.4 - string_decoder: 1.3.0 - util-deprecate: 1.0.2 - dev: true - /readdirp@3.6.0: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} @@ -3526,7 +3500,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.2.1 - es-abstract: 1.22.2 + es-abstract: 1.22.1 get-intrinsic: 1.2.1 globalthis: 1.0.3 which-builtin-type: 1.1.3 @@ -3551,7 +3525,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.2.1 - set-function-name: 2.0.1 + set-function-name: 2.0.0 dev: true /regjsparser@0.10.0: @@ -3650,10 +3624,6 @@ packages: resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} dev: true - /safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - dev: true - /safe-regex-test@1.0.0: resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} dependencies: @@ -3688,12 +3658,11 @@ packages: lru-cache: 6.0.0 dev: true - /set-function-name@2.0.1: - resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==} + /set-function-name@2.0.0: + resolution: {integrity: sha512-WmS8UHojv5s1eSoRSmzO5zzgDq8PE1/X/ij0k+9fMYmINCc6+j+SF3Om8YyucKn2yjnK4ItNZOoQycNnHsZJTw==} engines: {node: '>= 0.4'} dependencies: - define-data-property: 1.1.0 - functions-have-names: 1.2.3 + define-data-property: 1.0.1 has-property-descriptors: 1.0.0 dev: true @@ -3725,6 +3694,11 @@ packages: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} dev: true + /signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + dev: true + /simple-git-hooks@2.9.0: resolution: {integrity: sha512-waSQ5paUQtyGC0ZxlHmcMmD9I1rRXauikBwX31bX58l5vTOhCEcBC5Bi+ZDkPXTjDnZAF8TbCqKBY+9+sVPScw==} hasBin: true @@ -3790,6 +3764,13 @@ packages: escape-string-regexp: 2.0.0 dev: true + /streamx@2.15.1: + resolution: {integrity: sha512-fQMzy2O/Q47rgwErk/eGeLu/roaFWV0jVsogDmrszM9uIw8L5OA+t+V93MgYlufNptfjmYR1tOMWhei/Eh7TQA==} + dependencies: + fast-fifo: 1.3.2 + queue-tick: 1.0.1 + dev: true + /string-argv@0.3.2: resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} engines: {node: '>=0.6.19'} @@ -3818,12 +3799,12 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.2.1 - es-abstract: 1.22.2 + es-abstract: 1.22.1 get-intrinsic: 1.2.1 has-symbols: 1.0.3 internal-slot: 1.0.5 regexp.prototype.flags: 1.5.1 - set-function-name: 2.0.1 + set-function-name: 2.0.0 side-channel: 1.0.4 dev: true @@ -3833,7 +3814,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.2.1 - es-abstract: 1.22.2 + es-abstract: 1.22.1 dev: true /string.prototype.trimend@1.0.7: @@ -3841,7 +3822,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.2.1 - es-abstract: 1.22.2 + es-abstract: 1.22.1 dev: true /string.prototype.trimstart@1.0.7: @@ -3849,7 +3830,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.2.1 - es-abstract: 1.22.2 + es-abstract: 1.22.1 dev: true /string_decoder@1.1.1: @@ -3858,12 +3839,6 @@ packages: safe-buffer: 5.1.2 dev: true - /string_decoder@1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} - dependencies: - safe-buffer: 5.2.1 - dev: true - /strip-ansi@6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} @@ -3924,24 +3899,20 @@ packages: engines: {node: '>=6'} dev: true - /tar-fs@2.1.1: - resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==} + /tar-fs@3.0.4: + resolution: {integrity: sha512-5AFQU8b9qLfZCX9zp2duONhPmZv0hGYiBPJsyUdqMjzq/mqVpy/rEUSeHk1+YitmxugaptgBh5oDGU3VsAJq4w==} dependencies: - chownr: 1.1.4 mkdirp-classic: 0.5.3 pump: 3.0.0 - tar-stream: 2.2.0 + tar-stream: 3.1.6 dev: true - /tar-stream@2.2.0: - resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} - engines: {node: '>=6'} + /tar-stream@3.1.6: + resolution: {integrity: sha512-B/UyjYwPpMBv+PaFSWAmtYjwdrlEaZQEhMIBFNC5oEG8lpiW8XjcSdmEaClj28ArfKScKHs2nshz3k2le6crsg==} dependencies: - bl: 4.1.0 - end-of-stream: 1.4.4 - fs-constants: 1.0.0 - inherits: 2.0.4 - readable-stream: 3.6.2 + b4a: 1.6.4 + fast-fifo: 1.3.2 + streamx: 2.15.1 dev: true /terminal-columns@1.4.1: @@ -3971,13 +3942,13 @@ packages: dependencies: is-number: 7.0.0 - /ts-api-utils@1.0.3(typescript@4.9.5): + /ts-api-utils@1.0.3(typescript@5.2.2): resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==} engines: {node: '>=16.13.0'} peerDependencies: typescript: '>=4.2.0' dependencies: - typescript: 4.9.5 + typescript: 5.2.2 dev: true /tsconfig-paths@3.14.2: @@ -4058,9 +4029,9 @@ packages: is-typed-array: 1.1.12 dev: true - /typescript@4.9.5: - resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} - engines: {node: '>=4.2.0'} + /typescript@5.2.2: + resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==} + engines: {node: '>=14.17'} hasBin: true dev: true @@ -4183,12 +4154,12 @@ packages: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} dev: true - /write-file-atomic@4.0.2: - resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + /write-file-atomic@5.0.1: + resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: imurmurhash: 0.1.4 - signal-exit: 3.0.7 + signal-exit: 4.1.0 dev: true /xml-name-validator@4.0.0: diff --git a/src/preflight.cts b/src/preflight.cts index fa5d26da..061f9ff0 100644 --- a/src/preflight.cts +++ b/src/preflight.cts @@ -28,7 +28,6 @@ if (process.send) { * default behavior when there are no other handlers set */ if (process.listenerCount(signal) === 0) { - // eslint-disable-next-line n/no-process-exit process.exit(128 + osConstants.signals[signal]); } } diff --git a/tests/fixtures/lib/json/index.json b/tests/fixtures/lib/json/index.json deleted file mode 100644 index 51ca90cc..00000000 --- a/tests/fixtures/lib/json/index.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "loaded": "json" -} diff --git a/tests/index.ts b/tests/index.ts index 91ecac3e..198beab7 100644 --- a/tests/index.ts +++ b/tests/index.ts @@ -10,16 +10,16 @@ const packageTypes = [ ] as const; const nodeVersions = [ - '12.20.0', // CJS named export detection added - '12', + '18', + '20', ...( (process.env.CI && !isWin) ? [ + '12.20.0', // CJS named export detection added + '12', '14', '16', '17', - '18', - '20', ] : [] ), diff --git a/tests/specs/json.ts b/tests/specs/json.ts index 8c25b0a3..ccb2fe3f 100644 --- a/tests/specs/json.ts +++ b/tests/specs/json.ts @@ -1,70 +1,76 @@ import { testSuite, expect } from 'manten'; +import { createFixture } from 'fs-fixture'; import type { NodeApis } from '../utils/tsx'; export default testSuite(async ({ describe }, node: NodeApis) => { - describe('Load JSON', ({ describe }) => { - describe('full path', ({ test }) => { - const importPath = './lib/json/index.json'; + describe('Load JSON', async ({ describe, onFinish }) => { + const fixture = await createFixture({ + 'package.json': JSON.stringify({ + type: node.packageType, + }), + 'index.json': JSON.stringify({ + loaded: 'json', + }), + }); + + onFinish(async () => await fixture.rm()); + describe('full path', async ({ test }) => { test('Load', async () => { - const nodeProcess = await node.load(importPath); + const nodeProcess = await node.loadFile(fixture.path, './index.json'); expect(nodeProcess.stdout).toBe(''); expect(nodeProcess.exitCode).toBe(0); }); test('Import', async () => { - const nodeProcess = await node.import(importPath); - expect(nodeProcess.stdout).toBe('{"default":{"loaded":"json"},"loaded":"json"}'); + const nodeProcess = await node.importFile(fixture.path, './index.json'); + expect(nodeProcess.stdout).toMatch('default: { loaded: \'json\' }'); expect(nodeProcess.stderr).toBe(''); }); test('Require', async () => { - const nodeProcess = await node.require(importPath); - expect(nodeProcess.stdout).toBe('{"loaded":"json"}'); + const nodeProcess = await node.requireFile(fixture.path, './index.json'); + expect(nodeProcess.stdout).toBe('{ loaded: \'json\' }'); expect(nodeProcess.stderr).toBe(''); }); }); describe('extensionless', ({ test }) => { - const importPath = './lib/json/index'; - test('Load', async () => { - const nodeProcess = await node.load(importPath); + const nodeProcess = await node.loadFile(fixture.path, './index'); expect(nodeProcess.stdout).toBe(''); expect(nodeProcess.exitCode).toBe(0); }); test('Import', async () => { - const nodeProcess = await node.import(importPath); - expect(nodeProcess.stdout).toBe('{"default":{"loaded":"json"},"loaded":"json"}'); + const nodeProcess = await node.importFile(fixture.path, './index'); + expect(nodeProcess.stdout).toMatch('default: { loaded: \'json\' }'); expect(nodeProcess.stderr).toBe(''); }); test('Require', async () => { - const nodeProcess = await node.require(importPath); - expect(nodeProcess.stdout).toBe('{"loaded":"json"}'); + const nodeProcess = await node.requireFile(fixture.path, './index'); + expect(nodeProcess.stdout).toBe('{ loaded: \'json\' }'); expect(nodeProcess.stderr).toBe(''); }); }); describe('directory', ({ test }) => { - const importPath = './lib/json'; - test('Load', async () => { - const nodeProcess = await node.load(importPath); + const nodeProcess = await node.loadFile(fixture.path, '.'); expect(nodeProcess.stdout).toBe(''); expect(nodeProcess.exitCode).toBe(0); }); test('Import', async () => { - const nodeProcess = await node.import(importPath); - expect(nodeProcess.stdout).toBe('{"default":{"loaded":"json"},"loaded":"json"}'); + const nodeProcess = await node.importFile(fixture.path, '.'); + expect(nodeProcess.stdout).toMatch('default: { loaded: \'json\' }'); expect(nodeProcess.stderr).toBe(''); }); test('Require', async () => { - const nodeProcess = await node.require(importPath); - expect(nodeProcess.stdout).toBe('{"loaded":"json"}'); + const nodeProcess = await node.requireFile(fixture.path, '.'); + expect(nodeProcess.stdout).toBe('{ loaded: \'json\' }'); expect(nodeProcess.stderr).toBe(''); }); }); diff --git a/tests/specs/wasm.ts b/tests/specs/wasm.ts index 59a4f755..823e0721 100644 --- a/tests/specs/wasm.ts +++ b/tests/specs/wasm.ts @@ -11,7 +11,7 @@ export default testSuite(async ({ describe }, node: NodeApis) => { expect(nodeProcess.exitCode).toBe(1); if (node.isCJS) { - expect(nodeProcess.stderr).toMatch('Do not know how to load path'); + expect(nodeProcess.stderr).toMatch('Invalid or unexpected token'); } else { expect(nodeProcess.stderr).toMatch('ERR_UNKNOWN_FILE_EXTENSION'); } @@ -24,7 +24,7 @@ export default testSuite(async ({ describe }, node: NodeApis) => { if (node.isCJS) { expect(nodeProcess.exitCode).toBe(1); - expect(nodeProcess.stderr).toMatch('Do not know how to load path'); + expect(nodeProcess.stderr).toMatch('Invalid or unexpected token'); } else { expect(nodeProcess.exitCode).toBe(0); expect(nodeProcess.stdout).toBe('1234'); diff --git a/tests/utils/tsx.ts b/tests/utils/tsx.ts index 8f9ad11a..eb75c9b0 100644 --- a/tests/utils/tsx.ts +++ b/tests/utils/tsx.ts @@ -1,4 +1,5 @@ import path from 'path'; +import fs from 'fs/promises'; import { fileURLToPath } from 'url'; import { execaNode } from 'execa'; import getNode from 'get-node'; @@ -107,6 +108,54 @@ export async function createNode( cwd: fixturePath, }); }, + + loadFile( + cwd: string, + filePath: string, + options?: { + args?: string[]; + }, + ) { + return this.tsx( + { + args: [ + ...(options?.args ?? []), + filePath, + ], + cwd, + }, + ); + }, + + async importFile( + cwd: string, + importFrom: string, + fileExtension = '.mjs', + ) { + const fileName = `_${Math.random().toString(36).slice(2)}${fileExtension}`; + const filePath = path.resolve(cwd, fileName); + await fs.writeFile(filePath, `import * as _ from '${importFrom}';console.log(_)`); + try { + return await this.loadFile(cwd, filePath); + } finally { + await fs.rm(filePath); + } + }, + + async requireFile( + cwd: string, + requireFrom: string, + fileExtension = '.cjs', + ) { + const fileName = `_${Math.random().toString(36).slice(2)}${fileExtension}`; + const filePath = path.resolve(cwd, fileName); + await fs.writeFile(filePath, `const _ = require('${requireFrom}');console.log(_)`); + try { + return await this.loadFile(cwd, filePath); + } finally { + await fs.rm(filePath); + } + }, }; }