From eb57c196214c9b4c6ab53ce5a617e47fbabe0091 Mon Sep 17 00:00:00 2001 From: isaacs Date: Wed, 5 Jun 2024 22:11:57 -0700 Subject: [PATCH] do not overwrite glob exports with results Fix: https://github.com/isaacs/tshy/issues/63 --- package-lock.json | 861 ++++++++++++-------------- package.json | 2 +- src/config.ts | 34 +- tap-snapshots/test/config.ts.test.cjs | 12 +- test/config.ts | 305 ++++----- 5 files changed, 573 insertions(+), 641 deletions(-) diff --git a/package-lock.json b/package-lock.json index 38751d2..d2285d9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -27,7 +27,7 @@ "devDependencies": { "@types/node": "^20.12.7", "prettier": "^2.8.8", - "tap": "^18.7.2", + "tap": "^19.2.1", "typedoc": "^0.25.13" }, "engines": { @@ -88,9 +88,9 @@ } }, "node_modules/@isaacs/ts-node-temp-fork-for-pr-2009": { - "version": "10.9.5", - "resolved": "https://registry.npmjs.org/@isaacs/ts-node-temp-fork-for-pr-2009/-/ts-node-temp-fork-for-pr-2009-10.9.5.tgz", - "integrity": "sha512-hEDlwpHhIabtB+Urku8muNMEkGui0LVGlYLS3KoB9QBDf0Pw3r7q0RrfoQmFuk8CvRpGzErO3/vLQd9Ys+/g4g==", + "version": "10.9.7", + "resolved": "https://registry.npmjs.org/@isaacs/ts-node-temp-fork-for-pr-2009/-/ts-node-temp-fork-for-pr-2009-10.9.7.tgz", + "integrity": "sha512-9f0bhUr9TnwwpgUhEpr3FjxSaH/OHaARkE2F9fM0lS4nIs2GNerrvGwQz493dk0JKlTaGYVrKbq36vA/whZ34g==", "dev": true, "dependencies": { "@cspotcode/source-map-support": "^0.8.0", @@ -187,9 +187,9 @@ } }, "node_modules/@npmcli/fs": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.0.tgz", - "integrity": "sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.1.tgz", + "integrity": "sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==", "dev": true, "dependencies": { "semver": "^7.3.5" @@ -199,9 +199,9 @@ } }, "node_modules/@npmcli/git": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-5.0.6.tgz", - "integrity": "sha512-4x/182sKXmQkf0EtXxT26GEsaOATpD7WVtza5hrYivWZeo6QefC6xq9KAXrnjtFKBZ4rZwR7aX/zClYYXgtwLw==", + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-5.0.7.tgz", + "integrity": "sha512-WaOVvto604d5IpdCRV2KjQu8PzkfE96d50CQGKgywXh2GxXmDeUO5EWcBC4V57uFyrNqx83+MewuJh3WTR3xPA==", "dev": true, "dependencies": { "@npmcli/promise-spawn": "^7.0.0", @@ -242,16 +242,16 @@ } }, "node_modules/@npmcli/installed-package-contents": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-2.0.2.tgz", - "integrity": "sha512-xACzLPhnfD51GKvTOOuNX2/V4G4mz9/1I2MfDoye9kBM3RYe5g2YbscsaGoTlaWqkxeiapBWyseULVKpSVHtKQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-2.1.0.tgz", + "integrity": "sha512-c8UuGLeZpm69BryRykLuKRyKFZYJsZSCT4aVY5ds4omyZqJ172ApzgfKJ5eV/r3HgLdUYgFVe54KSFVjKoe27w==", "dev": true, "dependencies": { "npm-bundled": "^3.0.0", "npm-normalize-package-bin": "^3.0.0" }, "bin": { - "installed-package-contents": "lib/index.js" + "installed-package-contents": "bin/index.js" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" @@ -267,9 +267,9 @@ } }, "node_modules/@npmcli/package-json": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-5.0.3.tgz", - "integrity": "sha512-cgsjCvld2wMqkUqvY+SZI+1ZJ7umGBYc9IAKfqJRKJCcs7hCQYxScUgdsyrRINk3VmdCYf9TXiLBHQ6ECTxhtg==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-5.2.0.tgz", + "integrity": "sha512-qe/kiqqkW0AGtvBjL8TJKZk/eBBSpnJkUWvHdQ9jM2lKHXRYYJuyNpJPlJw3c8QjC2ow6NZYiLExhUaeJelbxQ==", "dev": true, "dependencies": { "@npmcli/git": "^5.0.0", @@ -285,9 +285,9 @@ } }, "node_modules/@npmcli/promise-spawn": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-7.0.1.tgz", - "integrity": "sha512-P4KkF9jX3y+7yFUxgcUdDtLy+t4OlDGuEBLNs57AZsfSfg+uV6MLndqGpnl4831ggaEdXwR50XFoZP4VFtHolg==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-7.0.2.tgz", + "integrity": "sha512-xhfYPXoV5Dy4UkY0D+v2KkwvnDfiA/8Mt3sWCGI/hM03NsYIH8ZaG6QzS9x7pje5vHZBZJ2v6VRFVTWACnqcmQ==", "dev": true, "dependencies": { "which": "^4.0.0" @@ -379,12 +379,12 @@ } }, "node_modules/@sigstore/bundle": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-2.3.1.tgz", - "integrity": "sha512-eqV17lO3EIFqCWK3969Rz+J8MYrRZKw9IBHpSo6DEcEX2c+uzDFOgHE9f2MnyDpfs48LFO4hXmk9KhQ74JzU1g==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-2.3.2.tgz", + "integrity": "sha512-wueKWDk70QixNLB363yHc2D2ItTgYiMTdPwK8D9dKQMR3ZQ0c35IxP5xnwQ8cNLoCgCRcHf14kE+CLIvNX1zmA==", "dev": true, "dependencies": { - "@sigstore/protobuf-specs": "^0.3.1" + "@sigstore/protobuf-specs": "^0.3.2" }, "engines": { "node": "^16.14.0 || >=18.0.0" @@ -400,60 +400,62 @@ } }, "node_modules/@sigstore/protobuf-specs": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.3.1.tgz", - "integrity": "sha512-aIL8Z9NsMr3C64jyQzE0XlkEyBLpgEJJFDHLVVStkFV5Q3Il/r/YtY6NJWKQ4cy4AE7spP1IX5Jq7VCAxHHMfQ==", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.3.2.tgz", + "integrity": "sha512-c6B0ehIWxMI8wiS/bj6rHMPqeFvngFV7cDU/MY+B16P9Z3Mp9k8L93eYZ7BYzSickzuqAQqAq0V956b3Ju6mLw==", "dev": true, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/@sigstore/sign": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-2.3.0.tgz", - "integrity": "sha512-tsAyV6FC3R3pHmKS880IXcDJuiFJiKITO1jxR1qbplcsBkZLBmjrEw5GbC7ikD6f5RU1hr7WnmxB/2kKc1qUWQ==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-2.3.2.tgz", + "integrity": "sha512-5Vz5dPVuunIIvC5vBb0APwo7qKA4G9yM48kPWJT+OEERs40md5GoUR1yedwpekWZ4m0Hhw44m6zU+ObsON+iDA==", "dev": true, "dependencies": { - "@sigstore/bundle": "^2.3.0", + "@sigstore/bundle": "^2.3.2", "@sigstore/core": "^1.0.0", - "@sigstore/protobuf-specs": "^0.3.1", - "make-fetch-happen": "^13.0.0" + "@sigstore/protobuf-specs": "^0.3.2", + "make-fetch-happen": "^13.0.1", + "proc-log": "^4.2.0", + "promise-retry": "^2.0.1" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/@sigstore/tuf": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-2.3.2.tgz", - "integrity": "sha512-mwbY1VrEGU4CO55t+Kl6I7WZzIl+ysSzEYdA1Nv/FTrl2bkeaPXo5PnWZAVfcY2zSdhOpsUTJW67/M2zHXGn5w==", + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-2.3.4.tgz", + "integrity": "sha512-44vtsveTPUpqhm9NCrbU8CWLe3Vck2HO1PNLw7RIajbB7xhtn5RBPm1VNSCMwqGYHhDsBJG8gDF0q4lgydsJvw==", "dev": true, "dependencies": { - "@sigstore/protobuf-specs": "^0.3.0", - "tuf-js": "^2.2.0" + "@sigstore/protobuf-specs": "^0.3.2", + "tuf-js": "^2.2.1" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/@sigstore/verify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-1.2.0.tgz", - "integrity": "sha512-hQF60nc9yab+Csi4AyoAmilGNfpXT+EXdBgFkP9OgPwIBPwyqVf7JAWPtmqrrrneTmAT6ojv7OlH1f6Ix5BG4Q==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-1.2.1.tgz", + "integrity": "sha512-8iKx79/F73DKbGfRf7+t4dqrc0bRr0thdPrxAtCKWRm/F0tG71i6O1rvlnScncJLLBZHn3h8M3c1BSUAb9yu8g==", "dev": true, "dependencies": { - "@sigstore/bundle": "^2.3.1", + "@sigstore/bundle": "^2.3.2", "@sigstore/core": "^1.1.0", - "@sigstore/protobuf-specs": "^0.3.1" + "@sigstore/protobuf-specs": "^0.3.2" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/@tapjs/after": { - "version": "1.1.20", - "resolved": "https://registry.npmjs.org/@tapjs/after/-/after-1.1.20.tgz", - "integrity": "sha512-EGosPLlKe8MaZMkoyA2lJhF2h/zNNzKA93yA4fkg+tOvKaVvtI8BtSmErN2sMIYRFPHxaLzQgr0268h7m2Ysow==", + "version": "1.1.28", + "resolved": "https://registry.npmjs.org/@tapjs/after/-/after-1.1.28.tgz", + "integrity": "sha512-KzPXl5NcMXzA94O6r8vHALU9rHQbeYmqGoS34PGnBOOPvSdbQBt1uq1B2855Ab6G4y4d/VmgKdD8+ZvgRNjozg==", "dev": true, "dependencies": { "is-actual-promise": "^1.0.1" @@ -462,13 +464,13 @@ "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20" }, "peerDependencies": { - "@tapjs/core": "1.5.2" + "@tapjs/core": "2.1.3" } }, "node_modules/@tapjs/after-each": { - "version": "1.1.20", - "resolved": "https://registry.npmjs.org/@tapjs/after-each/-/after-each-1.1.20.tgz", - "integrity": "sha512-j5+VLjyssCfC4+fEP31tJpKdXO4pBuouovauHHc5xR2qo/hMonB/MlDHhFOL9PbC4sLBHvY4EkotwET36aLECg==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@tapjs/after-each/-/after-each-2.0.5.tgz", + "integrity": "sha512-ia9wRt3rgEt0ns7T5oMFoKaQdqw+2cjCYXnMT4smFJZFKmD8+C+VoykmNbIQ+QR4bIib1CCk3VMxE1Qcky8c/w==", "dev": true, "dependencies": { "function-loop": "^4.0.0" @@ -477,18 +479,18 @@ "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20" }, "peerDependencies": { - "@tapjs/core": "1.5.2" + "@tapjs/core": "2.1.3" } }, "node_modules/@tapjs/asserts": { - "version": "1.1.20", - "resolved": "https://registry.npmjs.org/@tapjs/asserts/-/asserts-1.1.20.tgz", - "integrity": "sha512-0w+c3+1TVzpObrQTRfDnE/Z3TTCWUVA4sZwzjfmhbwbF8VA83HR0Bh6fj7dIsrrsufWwp4QMyXPwN62HPwSCgg==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@tapjs/asserts/-/asserts-2.0.5.tgz", + "integrity": "sha512-3AzDwJvHY7mNwxhKOvf453rut67cytQ4iZtMUWycClz9M+PbZs38g++5dw/9IIP5z+lRGknxAYiy7eRLjGSCrw==", "dev": true, "dependencies": { - "@tapjs/stack": "1.2.8", + "@tapjs/stack": "2.0.1", "is-actual-promise": "^1.0.1", - "tcompare": "6.4.6", + "tcompare": "7.0.1", "trivial-deferred": "^2.0.0" }, "engines": { @@ -498,13 +500,13 @@ "url": "https://github.com/sponsors/isaacs" }, "peerDependencies": { - "@tapjs/core": "1.5.2" + "@tapjs/core": "2.1.3" } }, "node_modules/@tapjs/before": { - "version": "1.1.20", - "resolved": "https://registry.npmjs.org/@tapjs/before/-/before-1.1.20.tgz", - "integrity": "sha512-UuYor/jk+BRw9i3KuI6vrf7QF7g4V+z5ku/6qwUg7dkAE3qrCsRGNQ7Es1161ncXQUSoUy91vw/mRvFoTTRQ7Q==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@tapjs/before/-/before-2.0.5.tgz", + "integrity": "sha512-HwhBK1dndpfJqBF/TS5n2QVrES4El0HJO34z7/Dn3syxEcbvMiAMjv0ljkGIfdIbbVYUAD3y89ExujvdZr+0PA==", "dev": true, "dependencies": { "is-actual-promise": "^1.0.1" @@ -513,13 +515,13 @@ "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20" }, "peerDependencies": { - "@tapjs/core": "1.5.2" + "@tapjs/core": "2.1.3" } }, "node_modules/@tapjs/before-each": { - "version": "1.1.20", - "resolved": "https://registry.npmjs.org/@tapjs/before-each/-/before-each-1.1.20.tgz", - "integrity": "sha512-ln27bSetJoDo1AIFCdpwPupGhJN6dA1Sc55qHJ2Ni9O9IYc/9s5JvzzQ4eEV1hFaiROvpsS945MtQY4mRS09Lg==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@tapjs/before-each/-/before-each-2.0.5.tgz", + "integrity": "sha512-KTbvxyRojSA1eaZQobvsHft/2hqAZRuZjYhLtrkqd4WYQb2O8dqYcQyxczHnKaJtQ4PcBnZQujy4zJQyRfSVDw==", "dev": true, "dependencies": { "function-loop": "^4.0.0" @@ -528,19 +530,34 @@ "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20" }, "peerDependencies": { - "@tapjs/core": "1.5.2" + "@tapjs/core": "2.1.3" + } + }, + "node_modules/@tapjs/chdir": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@tapjs/chdir/-/chdir-1.1.1.tgz", + "integrity": "sha512-dO6P5Jp/Cyta7tRRKjiBW/8uNgy2yTY70lF9i3ZAfJ9GMWp7/U8Q67uXNMB9x4KZK12xtoBkuk98/+Mmqlii+w==", + "dev": true, + "dependencies": { + "@tapjs/after": "1.1.28" + }, + "engines": { + "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20" + }, + "peerDependencies": { + "@tapjs/core": "2.1.3" } }, "node_modules/@tapjs/config": { - "version": "2.4.17", - "resolved": "https://registry.npmjs.org/@tapjs/config/-/config-2.4.17.tgz", - "integrity": "sha512-zMuOR2/i3IvKSEjKizGaR3LQ2x7VPbH3DOHGe0nW/BRnzTss9ZnKx579guHwYRBMJIqKLOsKYrBBAgM+7k6qvA==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@tapjs/config/-/config-3.1.3.tgz", + "integrity": "sha512-j2afpa51YKCwFk+TCzeZGMTKW3ZODoqtDFJJkQUjtLb/1Df/hzC0/3upK/RMp088dRJG3sP1onXAQ5QkuB4s5w==", "dev": true, "dependencies": { - "@tapjs/core": "1.5.2", - "@tapjs/test": "1.4.2", + "@tapjs/core": "2.1.3", + "@tapjs/test": "2.2.1", "chalk": "^5.2.0", - "jackspeak": "^2.3.6", + "jackspeak": "^3.1.2", "polite-json": "^4.0.1", "tap-yaml": "2.2.2", "walk-up-path": "^3.0.1" @@ -552,27 +569,27 @@ "url": "https://github.com/sponsors/isaacs" }, "peerDependencies": { - "@tapjs/core": "1.5.2", - "@tapjs/test": "1.4.2" + "@tapjs/core": "2.1.3", + "@tapjs/test": "2.2.1" } }, "node_modules/@tapjs/core": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/@tapjs/core/-/core-1.5.2.tgz", - "integrity": "sha512-Z/xkjJBOzS3mjUxFTOvtQX34GmOLx+C27w6bFRHrPCO1YTtu08SXJ9Mdkv+7vbSlAnBLWFgZddWvpgpAYud/uQ==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@tapjs/core/-/core-2.1.3.tgz", + "integrity": "sha512-l5EdRizMGRBIqMZoOeLEE9FkTzhoih7xMf1LUOMHby9uE3v2FnSjcBxyKl7kuf/b+0d2dKeEs7BTO1IENXppcw==", "dev": true, "dependencies": { - "@tapjs/processinfo": "^3.1.7", - "@tapjs/stack": "1.2.8", - "@tapjs/test": "1.4.2", + "@tapjs/processinfo": "^3.1.8", + "@tapjs/stack": "2.0.1", + "@tapjs/test": "2.2.1", "async-hook-domain": "^4.0.1", "diff": "^5.2.0", "is-actual-promise": "^1.0.1", "minipass": "^7.0.4", "signal-exit": "4.1", - "tap-parser": "15.3.2", + "tap-parser": "16.0.1", "tap-yaml": "2.2.2", - "tcompare": "6.4.6", + "tcompare": "7.0.1", "trivial-deferred": "^2.0.0" }, "engines": { @@ -580,9 +597,9 @@ } }, "node_modules/@tapjs/error-serdes": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@tapjs/error-serdes/-/error-serdes-1.2.2.tgz", - "integrity": "sha512-RW2aU50JR7SSAlvoTyuwouXETLM9lP+7oZ5Z+dyKhNp8mkbbz4mXKcgd9SDHY5qTh6zvVN7OFK7ev7dYWXbrWw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@tapjs/error-serdes/-/error-serdes-2.0.1.tgz", + "integrity": "sha512-P+M4rtcfkDsUveKKmoRNF+07xpbPnRY5KrstIUOnyn483clQ7BJhsnWr162yYNCsyOj4zEfZmAJI1f8Bi7h/ZA==", "dev": true, "dependencies": { "minipass": "^7.0.4" @@ -595,9 +612,9 @@ } }, "node_modules/@tapjs/filter": { - "version": "1.2.20", - "resolved": "https://registry.npmjs.org/@tapjs/filter/-/filter-1.2.20.tgz", - "integrity": "sha512-8zyTBjY8lYVz2W0S8nw8vq0kkwCM6Ike76n71mVzMOFcW/qXIn2ImW/PJtHREMFwLEN0aL51Ey/60Cs85EevxA==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@tapjs/filter/-/filter-2.0.5.tgz", + "integrity": "sha512-aSEusWNbHBrVQ5z22T4d0wOcHCm5MEsKvq1WFXGPlgxmcqY2Suy52Um/eRlhVpdx7KnmRJ0ha0vc6Vdd2LszLw==", "dev": true, "engines": { "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20" @@ -606,13 +623,13 @@ "url": "https://github.com/sponsors/isaacs" }, "peerDependencies": { - "@tapjs/core": "1.5.2" + "@tapjs/core": "2.1.3" } }, "node_modules/@tapjs/fixture": { - "version": "1.2.20", - "resolved": "https://registry.npmjs.org/@tapjs/fixture/-/fixture-1.2.20.tgz", - "integrity": "sha512-QJwANuumhNv59ONrpGOMy0hY+P2rHPakOlAR8ZkkAKbdQS5E0YExZLDna/Ug47Qin6MbaqXPk6zP/eiiBxZxig==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@tapjs/fixture/-/fixture-2.0.5.tgz", + "integrity": "sha512-f3DL2azD7FsNqtcSrQ/J0XArhMu/sFamF8LVnvWKKEMycNsjiTvJXf/kb30WMzDNLm3CkCtUmti6/M45CB4SBA==", "dev": true, "dependencies": { "mkdirp": "^3.0.0", @@ -625,33 +642,33 @@ "url": "https://github.com/sponsors/isaacs" }, "peerDependencies": { - "@tapjs/core": "1.5.2" + "@tapjs/core": "2.1.3" } }, "node_modules/@tapjs/intercept": { - "version": "1.2.20", - "resolved": "https://registry.npmjs.org/@tapjs/intercept/-/intercept-1.2.20.tgz", - "integrity": "sha512-LEjE2rKfELh8CM6NPAGKIi1HDFjb66G//qbTs8lnLCiulUvUWGlx4RzeBdky0532+vyR9Q3JdHsidCNOsq33ow==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@tapjs/intercept/-/intercept-2.0.5.tgz", + "integrity": "sha512-WfxAR331dXRY35+A+DNvYkoGZhFOACrxnPbD/S9SqforgUPxlueL3/v3d3JtrZurG2z82qfyj6t0Dx/BSf05ag==", "dev": true, "dependencies": { - "@tapjs/after": "1.1.20", - "@tapjs/stack": "1.2.8" + "@tapjs/after": "1.1.28", + "@tapjs/stack": "2.0.1" }, "engines": { "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20" }, "peerDependencies": { - "@tapjs/core": "1.5.2" + "@tapjs/core": "2.1.3" } }, "node_modules/@tapjs/mock": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@tapjs/mock/-/mock-1.3.2.tgz", - "integrity": "sha512-QN3Nft/wxww/oxPpx/bgW4EF7EfxfvcAY/0VPphI3NjG/ZSNeZ7lbO9kYvh+RSRC1PtDR6OvfGA2dwQ7V/81DQ==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@tapjs/mock/-/mock-2.1.3.tgz", + "integrity": "sha512-qaBqUXHDfjHiZY7e0sRoqOys5SdaHmin3tqDfOlas2eWQabtBwMSvu4xDitVvJ11kGZZhU79LmhzU/iZsksbTg==", "dev": true, "dependencies": { - "@tapjs/after": "1.1.20", - "@tapjs/stack": "1.2.8", + "@tapjs/after": "1.1.28", + "@tapjs/stack": "2.0.1", "resolve-import": "^1.4.5", "walk-up-path": "^3.0.1" }, @@ -662,18 +679,18 @@ "url": "https://github.com/sponsors/isaacs" }, "peerDependencies": { - "@tapjs/core": "1.5.2" + "@tapjs/core": "2.1.3" } }, "node_modules/@tapjs/node-serialize": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@tapjs/node-serialize/-/node-serialize-1.3.2.tgz", - "integrity": "sha512-KyYYU1tOTn3udST4lQUl2KsZFPbA7UGqHKT3Os/FmHplmgJeSPc5nKKCI+R2h/ADSULQx7ZiBUYot8o0GTqndw==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@tapjs/node-serialize/-/node-serialize-2.0.5.tgz", + "integrity": "sha512-zCYuLBxKIMl5GeO4AFWw3Gr6Sm7E4YLIVdMv/YuLddKKFWz/h3nttS7vwe8dhj5tcEXbt8u9lpIHWLlgKFzp2A==", "dev": true, "dependencies": { - "@tapjs/error-serdes": "1.2.2", - "@tapjs/stack": "1.2.8", - "tap-parser": "15.3.2" + "@tapjs/error-serdes": "2.0.1", + "@tapjs/stack": "2.0.1", + "tap-parser": "16.0.1" }, "engines": { "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20" @@ -682,13 +699,13 @@ "url": "https://github.com/sponsors/isaacs" }, "peerDependencies": { - "@tapjs/core": "1.5.2" + "@tapjs/core": "2.1.3" } }, "node_modules/@tapjs/processinfo": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/@tapjs/processinfo/-/processinfo-3.1.7.tgz", - "integrity": "sha512-SI5RJQ5HnUKEWnHSAF6hOm6XPdnjZ+CJzIaVHdFebed8iDAPTqb+IwMVu9yq9+VQ7FRsMMlgLL2SW4rss2iJbQ==", + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/@tapjs/processinfo/-/processinfo-3.1.8.tgz", + "integrity": "sha512-FIriEB+qqArPhmVYc1PZwRHD99myRdl7C9Oe/uts04Q2LOxQ5MEmqP9XOP8vVYzpDOYwmL8OmL6eOYt9eZlQKQ==", "dev": true, "dependencies": { "pirates": "^4.0.5", @@ -701,13 +718,13 @@ } }, "node_modules/@tapjs/reporter": { - "version": "1.3.18", - "resolved": "https://registry.npmjs.org/@tapjs/reporter/-/reporter-1.3.18.tgz", - "integrity": "sha512-IVJf+zb1chL5uLXxWojmeylKlBlRsAQQA417FhF7V3jcTGzSSM017hI602ljnmgltvAh0vD6OHjVozDVh94b8w==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@tapjs/reporter/-/reporter-2.0.5.tgz", + "integrity": "sha512-w7r0s6sZ0myOcb/IUueYk11vLnRUa4OLMabWUnFxbDHrJshsJBWgl9GgHfbrBp0ao0iwlnGBse7r27WgnnkDig==", "dev": true, "dependencies": { - "@tapjs/config": "2.4.17", - "@tapjs/stack": "1.2.8", + "@tapjs/config": "3.1.3", + "@tapjs/stack": "2.0.1", "chalk": "^5.2.0", "ink": "^4.4.1", "minipass": "^7.0.4", @@ -716,9 +733,9 @@ "prismjs-terminal": "^1.2.3", "react": "^18.2.0", "string-length": "^6.0.0", - "tap-parser": "15.3.2", + "tap-parser": "16.0.1", "tap-yaml": "2.2.2", - "tcompare": "6.4.6" + "tcompare": "7.0.1" }, "engines": { "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20" @@ -727,28 +744,28 @@ "url": "https://github.com/sponsors/isaacs" }, "peerDependencies": { - "@tapjs/core": "1.5.2" + "@tapjs/core": "2.1.3" } }, "node_modules/@tapjs/run": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/@tapjs/run/-/run-1.5.2.tgz", - "integrity": "sha512-4JdFP3UKmv2rWVPoRHQAUp/dSMlyzRDwnSJPE9wuXEnlZhoqjpa6n4rNrWbh02PFohogJZn1G8h5u4CBtocQRQ==", - "dev": true, - "dependencies": { - "@tapjs/after": "1.1.20", - "@tapjs/before": "1.1.20", - "@tapjs/config": "2.4.17", - "@tapjs/processinfo": "^3.1.7", - "@tapjs/reporter": "1.3.18", - "@tapjs/spawn": "1.1.20", - "@tapjs/stdin": "1.1.20", - "@tapjs/test": "1.4.2", - "c8": "^8.0.1", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@tapjs/run/-/run-2.1.3.tgz", + "integrity": "sha512-27O2AmOXnBBeVDH7hQMv/3tT9o3OiRk9gDn/Gib9HH7DuPrsXe+YRfb1R6FUfq6/AHTVOE9uEoFk7f9fDb5uHA==", + "dev": true, + "dependencies": { + "@tapjs/after": "1.1.28", + "@tapjs/before": "2.0.5", + "@tapjs/config": "3.1.3", + "@tapjs/processinfo": "^3.1.8", + "@tapjs/reporter": "2.0.5", + "@tapjs/spawn": "2.0.5", + "@tapjs/stdin": "2.0.5", + "@tapjs/test": "2.2.1", + "c8": "^9.1.0", "chalk": "^5.3.0", "chokidar": "^3.6.0", "foreground-child": "^3.1.1", - "glob": "^10.3.10", + "glob": "^10.3.16", "minipass": "^7.0.4", "mkdirp": "^3.0.1", "opener": "^1.5.2", @@ -757,9 +774,9 @@ "rimraf": "^5.0.5", "semver": "^7.6.0", "signal-exit": "^4.1.0", - "tap-parser": "15.3.2", + "tap-parser": "16.0.1", "tap-yaml": "2.2.2", - "tcompare": "6.4.6", + "tcompare": "7.0.1", "trivial-deferred": "^2.0.0", "which": "^4.0.0" }, @@ -773,7 +790,7 @@ "url": "https://github.com/sponsors/isaacs" }, "peerDependencies": { - "@tapjs/core": "1.5.2" + "@tapjs/core": "2.1.3" } }, "node_modules/@tapjs/run/node_modules/isexe": { @@ -801,13 +818,13 @@ } }, "node_modules/@tapjs/snapshot": { - "version": "1.2.20", - "resolved": "https://registry.npmjs.org/@tapjs/snapshot/-/snapshot-1.2.20.tgz", - "integrity": "sha512-/7ct6j//nNjiabJGMSxRsJEXSLOc6SwNC3dHuYeXP+yHIOeRK3qoonLqkt8+/9JgkZyaqIvWMdlo9ezoNPCrAw==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@tapjs/snapshot/-/snapshot-2.0.5.tgz", + "integrity": "sha512-POgktTGfO/rpBrmZ5TNk9Baikn81AnKADcQG7llo+8JEz6aNAslhVtT2Lc0O/bkHDn+rY/Jd4j0J5K9MUEdyNQ==", "dev": true, "dependencies": { "is-actual-promise": "^1.0.1", - "tcompare": "6.4.6", + "tcompare": "7.0.1", "trivial-deferred": "^2.0.0" }, "engines": { @@ -817,25 +834,25 @@ "url": "https://github.com/sponsors/isaacs" }, "peerDependencies": { - "@tapjs/core": "1.5.2" + "@tapjs/core": "2.1.3" } }, "node_modules/@tapjs/spawn": { - "version": "1.1.20", - "resolved": "https://registry.npmjs.org/@tapjs/spawn/-/spawn-1.1.20.tgz", - "integrity": "sha512-7w396QXOQb8P3Sar9Ldas7tyTMqFBASpRjr/a6Coyj21s/HejlaX8nnGKldbMhokCR2gZAgkmWg45B3tVqxZJA==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@tapjs/spawn/-/spawn-2.0.5.tgz", + "integrity": "sha512-jndPELclb7AFF8jJYu/szUdMv28Z6w2dS2TJJl4e3v0v9NH8khQL9UsP2uk+NYfcwX7oe/w+G4/McpIE5Ml1eg==", "dev": true, "engines": { "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20" }, "peerDependencies": { - "@tapjs/core": "1.5.2" + "@tapjs/core": "2.1.3" } }, "node_modules/@tapjs/stack": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@tapjs/stack/-/stack-1.2.8.tgz", - "integrity": "sha512-VC8h6U62ScerTKN+MYpRPiwH2bCL65S6v1wcj1hukE2hojLcRvVdET7S3ZtRfSj/eNWW/5OVfzTpHiGjEYD6Xg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@tapjs/stack/-/stack-2.0.1.tgz", + "integrity": "sha512-3rKbZkRkLeJl9ilV/6b80YfI4C4+OYf7iEz5/d0MIVhmVvxv0ttIy5JnZutAc4Gy9eRp5Ne5UTAIFOVY5k36cg==", "dev": true, "engines": { "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20" @@ -845,97 +862,87 @@ } }, "node_modules/@tapjs/stdin": { - "version": "1.1.20", - "resolved": "https://registry.npmjs.org/@tapjs/stdin/-/stdin-1.1.20.tgz", - "integrity": "sha512-OX5Q8WtZU48z2SCGEfIarqinDbhX7ajPpIUYHddtK/MbDowHZvgIFZzes7bH9tP2YcQdIRu/tuuyKi/WJMWxdg==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@tapjs/stdin/-/stdin-2.0.5.tgz", + "integrity": "sha512-PQrFlf0ss1q8v6Og2e6zY1WPxEH34cxUpNBK+N+qTVWIojNOg/53n/FTHYJ8bP3Tb1gzt3RknkO/hBNtsICYEg==", "dev": true, "engines": { "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20" }, "peerDependencies": { - "@tapjs/core": "1.5.2" + "@tapjs/core": "2.1.3" } }, "node_modules/@tapjs/test": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/@tapjs/test/-/test-1.4.2.tgz", - "integrity": "sha512-xPcnhADRI1dua+1rcdZegLdGmkoyKxFneflQzdSPj4zOBXnzD7Kps269LBndrfA5df4ZjZBaFB0M5xSiu0cUGA==", - "dev": true, - "dependencies": { - "@isaacs/ts-node-temp-fork-for-pr-2009": "^10.9.5", - "@tapjs/after": "1.1.20", - "@tapjs/after-each": "1.1.20", - "@tapjs/asserts": "1.1.20", - "@tapjs/before": "1.1.20", - "@tapjs/before-each": "1.1.20", - "@tapjs/filter": "1.2.20", - "@tapjs/fixture": "1.2.20", - "@tapjs/intercept": "1.2.20", - "@tapjs/mock": "1.3.2", - "@tapjs/node-serialize": "1.3.2", - "@tapjs/snapshot": "1.2.20", - "@tapjs/spawn": "1.1.20", - "@tapjs/stdin": "1.1.20", - "@tapjs/typescript": "1.4.2", - "@tapjs/worker": "1.1.20", - "glob": "^10.3.10", - "jackspeak": "^2.3.6", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@tapjs/test/-/test-2.2.1.tgz", + "integrity": "sha512-hfnvwiyjn8o7DTVZ7TJRERx0xb/SRXvL6yMvda1c7R0FEKQ3ecLxtiHqHAhgoh/P8OvT7URB8e0gv8e3ZWTjRg==", + "dev": true, + "dependencies": { + "@isaacs/ts-node-temp-fork-for-pr-2009": "^10.9.7", + "@tapjs/after": "1.1.28", + "@tapjs/after-each": "2.0.5", + "@tapjs/asserts": "2.0.5", + "@tapjs/before": "2.0.5", + "@tapjs/before-each": "2.0.5", + "@tapjs/chdir": "1.1.1", + "@tapjs/filter": "2.0.5", + "@tapjs/fixture": "2.0.5", + "@tapjs/intercept": "2.0.5", + "@tapjs/mock": "2.1.3", + "@tapjs/node-serialize": "2.0.5", + "@tapjs/snapshot": "2.0.5", + "@tapjs/spawn": "2.0.5", + "@tapjs/stdin": "2.0.5", + "@tapjs/typescript": "1.4.10", + "@tapjs/worker": "2.0.5", + "glob": "^10.3.16", + "jackspeak": "^3.1.2", "mkdirp": "^3.0.0", + "package-json-from-dist": "^1.0.0", "resolve-import": "^1.4.5", "rimraf": "^5.0.5", "sync-content": "^1.0.1", - "tap-parser": "15.3.2", - "tshy": "^1.12.0", - "typescript": "5.2" + "tap-parser": "16.0.1", + "tshy": "^1.14.0", + "typescript": "5.4", + "walk-up-path": "^3.0.1" }, "bin": { - "generate-tap-test-class": "scripts/build.mjs" + "generate-tap-test-class": "dist/esm/build.mjs" }, "engines": { "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20" }, "peerDependencies": { - "@tapjs/core": "1.5.2" - } - }, - "node_modules/@tapjs/test/node_modules/typescript": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", - "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" + "@tapjs/core": "2.1.3" } }, "node_modules/@tapjs/typescript": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/@tapjs/typescript/-/typescript-1.4.2.tgz", - "integrity": "sha512-JUSd3c+aly+xP0FLkcw/afYWGeobZ3//f12MUias5f0tLj7AaxpKePGyLeY1f0QvcuzPF/UKjk3BLd1Fh4u86g==", + "version": "1.4.10", + "resolved": "https://registry.npmjs.org/@tapjs/typescript/-/typescript-1.4.10.tgz", + "integrity": "sha512-4IQcS81vNmvqxuwlFTN1v8dLHVpaC1uZH7Z/hj5xpnDMiIGjlxw63birFLCVrDRaAofOp58f4Q2/QwLTSBYgeg==", "dev": true, "dependencies": { - "@isaacs/ts-node-temp-fork-for-pr-2009": "^10.9.5" + "@isaacs/ts-node-temp-fork-for-pr-2009": "^10.9.7" }, "engines": { "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20" }, "peerDependencies": { - "@tapjs/core": "1.5.2" + "@tapjs/core": "2.1.3" } }, "node_modules/@tapjs/worker": { - "version": "1.1.20", - "resolved": "https://registry.npmjs.org/@tapjs/worker/-/worker-1.1.20.tgz", - "integrity": "sha512-I7wvUqoe8vD8Ld65VgSWVTdbWyP6eTpSJ8At/TRKznlJj4CVSvZ3lV5RxvLCBTg7ITCKcS+mQbqsmjpsvPGXEg==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@tapjs/worker/-/worker-2.0.5.tgz", + "integrity": "sha512-POniNB6pTX3+jof3GjbFhCYZtSTC7ZThISyXy8mVsEV/ujcz5t+i7DHu8CdNR3utMe84tIVkzRoZRVVhiYZ1HQ==", "dev": true, "engines": { "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20" }, "peerDependencies": { - "@tapjs/core": "1.5.2" + "@tapjs/core": "2.1.3" } }, "node_modules/@tsconfig/node14": { @@ -972,13 +979,13 @@ } }, "node_modules/@tufjs/models": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-2.0.0.tgz", - "integrity": "sha512-c8nj8BaOExmZKO2DXhDfegyhSGcG9E/mPN3U13L+/PsoWm1uaGiHHjxqSHQiasDBQwDA3aHuw9+9spYAP1qvvg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-2.0.1.tgz", + "integrity": "sha512-92F7/SFyufn4DXsha9+QfKnN03JGqtMFMXgSHbZOo8JG59WkTni7UzAouNQDf7AuP9OAMxVOPQcqG3sB7w+kkg==", "dev": true, "dependencies": { "@tufjs/canonical-json": "2.0.0", - "minimatch": "^9.0.3" + "minimatch": "^9.0.4" }, "engines": { "node": "^16.14.0 || >=18.0.0" @@ -1174,29 +1181,19 @@ "node": ">=8" } }, - "node_modules/builtins": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.1.0.tgz", - "integrity": "sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==", - "dev": true, - "dependencies": { - "semver": "^7.0.0" - } - }, "node_modules/c8": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/c8/-/c8-8.0.1.tgz", - "integrity": "sha512-EINpopxZNH1mETuI0DzRA4MZpAUH+IFiRhnmFD3vFr3vdrgxqi3VfE3KL0AIL+zDq8rC9bZqwM/VDmmoe04y7w==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/c8/-/c8-9.1.0.tgz", + "integrity": "sha512-mBWcT5iqNir1zIkzSPyI3NCR9EZCVI3WUD+AVO17MVWTSFNyUueXE82qTeampNtTr+ilN/5Ua3j24LgbCKjDVg==", "dev": true, "dependencies": { "@bcoe/v8-coverage": "^0.2.3", "@istanbuljs/schema": "^0.1.3", "find-up": "^5.0.0", - "foreground-child": "^2.0.0", + "foreground-child": "^3.1.1", "istanbul-lib-coverage": "^3.2.0", "istanbul-lib-report": "^3.0.1", "istanbul-reports": "^3.1.6", - "rimraf": "^3.0.2", "test-exclude": "^6.0.0", "v8-to-istanbul": "^9.0.0", "yargs": "^17.7.2", @@ -1206,89 +1203,13 @@ "c8": "bin/c8.js" }, "engines": { - "node": ">=12" - } - }, - "node_modules/c8/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/c8/node_modules/foreground-child": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", - "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8.0.0" + "node": ">=14.14.0" } }, - "node_modules/c8/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/c8/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/c8/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/c8/node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true - }, "node_modules/cacache": { - "version": "18.0.2", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.2.tgz", - "integrity": "sha512-r3NU8h/P+4lVUHfeRw1dtgQYar3DZMm4/cm2bZgOvrFC/su7budSOeqh52VJIC4U4iG1WWwV6vRW0znqBvxNuw==", + "version": "18.0.3", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.3.tgz", + "integrity": "sha512-qXCd4rh6I07cnDqh8V48/94Tc/WSfj+o3Gn6NZ0aZovS255bUx8O13uKxRFd2eWG0xgsco7+YItQNPaa5E85hg==", "dev": true, "dependencies": { "@npmcli/fs": "^3.1.0", @@ -1593,9 +1514,9 @@ } }, "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", "dev": true, "dependencies": { "ms": "2.1.2" @@ -1810,21 +1731,21 @@ } }, "node_modules/glob": { - "version": "10.3.12", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.12.tgz", - "integrity": "sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==", + "version": "10.4.1", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz", + "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==", "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^2.3.6", - "minimatch": "^9.0.1", - "minipass": "^7.0.4", - "path-scurry": "^1.10.2" + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "path-scurry": "^1.11.1" }, "bin": { "glob": "dist/esm/bin.mjs" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=16 || 14 >=14.18" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -1869,9 +1790,9 @@ } }, "node_modules/hosted-git-info": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.1.tgz", - "integrity": "sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz", + "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==", "dev": true, "dependencies": { "lru-cache": "^10.0.1" @@ -1932,9 +1853,9 @@ } }, "node_modules/ignore-walk": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.4.tgz", - "integrity": "sha512-t7sv42WkwFkyKbivUCglsQW5YWMskWtbEf4MNKX5u/CCWHKSPzN4FtBQGsQZgCLbxOzpVlcbWVK5KB3auIOjSw==", + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.5.tgz", + "integrity": "sha512-VuuG0wCnjhnylG1ABXT3dAuIpTNDs/G8jlpmwXY03fXoXy/8ZK8/T+hMzt8L4WnrLCJgdybqgPagnF/f97cg3A==", "dev": true, "dependencies": { "minimatch": "^9.0.0" @@ -1968,6 +1889,7 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", "dev": true, "dependencies": { "once": "^1.3.0", @@ -2049,13 +1971,10 @@ } }, "node_modules/is-actual-promise": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-actual-promise/-/is-actual-promise-1.0.1.tgz", - "integrity": "sha512-PlsL4tNv62lx5yN2HSqaRSTgIpUAPW7U6+crVB8HfWm5161rZpeqWbl0ZSqH2MAfRKXWSZVPRNbE/r8qPcb13g==", - "dev": true, - "dependencies": { - "tshy": "^1.7.0" - } + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-actual-promise/-/is-actual-promise-1.0.2.tgz", + "integrity": "sha512-xsFiO1of0CLsQnPZ1iXHNTyR9YszOeWKYv+q6n8oSFW3ipooFJ1j1lbRMgiMCr+pp2gLruESI4zb5Ak6eK5OnQ==", + "dev": true }, "node_modules/is-binary-path": { "version": "2.1.0", @@ -2206,9 +2125,9 @@ } }, "node_modules/jackspeak": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", - "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.0.tgz", + "integrity": "sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw==", "dependencies": { "@isaacs/cliui": "^8.0.2" }, @@ -2235,9 +2154,9 @@ "dev": true }, "node_modules/json-parse-even-better-errors": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.1.tgz", - "integrity": "sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz", + "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==", "dev": true, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" @@ -2327,9 +2246,9 @@ "dev": true }, "node_modules/make-fetch-happen": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.0.tgz", - "integrity": "sha512-7ThobcL8brtGo9CavByQrQi+23aIfgYU++wg4B87AIS8Rb2ZBt/MEaDqzA00Xwv/jUjAjYkLHjVolYuTLKda2A==", + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.1.tgz", + "integrity": "sha512-cKTUFc/rbKUd/9meOvgrpJ2WrNzymt6jfRDdwg5UCnVzv9dTpEj9JS5m3wtziXVCjluIXyL8pcaukYqezIzZQA==", "dev": true, "dependencies": { "@npmcli/agent": "^2.0.0", @@ -2341,6 +2260,7 @@ "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", "negotiator": "^0.6.3", + "proc-log": "^4.2.0", "promise-retry": "^2.0.1", "ssri": "^10.0.0" }, @@ -2384,9 +2304,9 @@ } }, "node_modules/minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "engines": { "node": ">=16 || 14 >=14.17" } @@ -2404,9 +2324,9 @@ } }, "node_modules/minipass-fetch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.4.tgz", - "integrity": "sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.5.tgz", + "integrity": "sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg==", "dev": true, "dependencies": { "minipass": "^7.0.3", @@ -2626,9 +2546,9 @@ } }, "node_modules/nopt": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.0.tgz", - "integrity": "sha512-CVDtwCdhYIvnAzFoJ6NJ6dX3oga9/HyciQDnG1vQDjSLMeKLJ4A93ZqYKDrgYSr1FBY5/hMYC+2VCi24pgpkGA==", + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.1.tgz", + "integrity": "sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==", "dev": true, "dependencies": { "abbrev": "^2.0.0" @@ -2641,9 +2561,9 @@ } }, "node_modules/normalize-package-data": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.0.tgz", - "integrity": "sha512-UL7ELRVxYBHBgYEtZCXjxuD5vPxnmvMGq0jp/dGPKKrN7tfsBh2IY7TlJ15WWwdjRWD3RJbnsygUurTK3xkPkg==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.1.tgz", + "integrity": "sha512-6rvCfeRW+OEZagAB4lMLSNuTNYZWLVtKccK79VSTf//yTY5VOCgcpH80O+bZK8Neps7pUnd5G+QlMg1yV/2iZQ==", "dev": true, "dependencies": { "hosted-git-info": "^7.0.0", @@ -2664,9 +2584,9 @@ } }, "node_modules/npm-bundled": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-3.0.0.tgz", - "integrity": "sha512-Vq0eyEQy+elFpzsKjMss9kxqb9tG3YHg4dsyWuUENuzvSUWe1TCnW/vV9FkhvBk/brEDoDiVd+M1Btosa6ImdQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-3.0.1.tgz", + "integrity": "sha512-+AvaheE/ww1JEwRHOrn4WHNzOxGtVp+adrg2AeZS/7KuxGUYFuBta98wYpfHBbJp6Tg6j1NKSEVHNcfZzJHQwQ==", "dev": true, "dependencies": { "npm-normalize-package-bin": "^3.0.0" @@ -2724,9 +2644,9 @@ } }, "node_modules/npm-pick-manifest": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-9.0.0.tgz", - "integrity": "sha512-VfvRSs/b6n9ol4Qb+bDwNGUXutpy76x6MARw/XssevE0TnctIKcmklJZM5Z7nqs5z5aW+0S63pgCNbpkUNNXBg==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-9.0.1.tgz", + "integrity": "sha512-Udm1f0l2nXb3wxDpKjfohwgdFUSV50UVwzEIpDXVsbDMXVIEF81a/i0UhuQbhrPMMmdiq3+YMFLFIRVLs3hxQw==", "dev": true, "dependencies": { "npm-install-checks": "^6.0.0", @@ -2835,6 +2755,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/package-json-from-dist": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", + "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==", + "dev": true + }, "node_modules/pacote": { "version": "17.0.7", "resolved": "https://registry.npmjs.org/pacote/-/pacote-17.0.7.tgz", @@ -2903,15 +2829,15 @@ } }, "node_modules/path-scurry": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.2.tgz", - "integrity": "sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", "dependencies": { "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=16 || 14 >=14.18" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -2990,9 +2916,9 @@ } }, "node_modules/proc-log": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.0.0.tgz", - "integrity": "sha512-v1lzmYxGDs2+OZnmYtYZK3DG8zogt+CbQ+o/iqqtTfpyCmGWulCTEQu5GIbivf7OjgIkH2Nr8SH8UxAGugZNbg==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", + "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", "dev": true, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" @@ -3030,9 +2956,9 @@ } }, "node_modules/react": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", - "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", "dev": true, "dependencies": { "loose-envify": "^1.1.0" @@ -3042,17 +2968,17 @@ } }, "node_modules/react-dom": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", - "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", "dev": true, "peer": true, "dependencies": { "loose-envify": "^1.1.0", - "scheduler": "^0.23.0" + "scheduler": "^0.23.2" }, "peerDependencies": { - "react": "^18.2.0" + "react": "^18.3.1" } }, "node_modules/react-element-to-jsx-string": { @@ -3077,25 +3003,26 @@ "dev": true }, "node_modules/react-reconciler": { - "version": "0.29.0", - "resolved": "https://registry.npmjs.org/react-reconciler/-/react-reconciler-0.29.0.tgz", - "integrity": "sha512-wa0fGj7Zht1EYMRhKWwoo1H9GApxYLBuhoAuXN0TlltESAjDssB+Apf0T/DngVqaMyPypDmabL37vw/2aRM98Q==", + "version": "0.29.2", + "resolved": "https://registry.npmjs.org/react-reconciler/-/react-reconciler-0.29.2.tgz", + "integrity": "sha512-zZQqIiYgDCTP/f1N/mAR10nJGrPD2ZR+jDSEsKWJHYC7Cm2wodlwbR3upZRdC3cjIjSlTLNVyO7Iu0Yy7t2AYg==", "dev": true, "dependencies": { "loose-envify": "^1.1.0", - "scheduler": "^0.23.0" + "scheduler": "^0.23.2" }, "engines": { "node": ">=0.10.0" }, "peerDependencies": { - "react": "^18.2.0" + "react": "^18.3.1" } }, "node_modules/read-package-json": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-7.0.0.tgz", - "integrity": "sha512-uL4Z10OKV4p6vbdvIXB+OzhInYtIozl/VxUBPgNkBuUi2DeRonnuspmaVAMcrkmfjKGNmRndyQAbE7/AmzGwFg==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-7.0.1.tgz", + "integrity": "sha512-8PcDiZ8DXUjLf687Ol4BR8Bpm2umR7vhoZOzNRt+uxD9GpBh/K+CAAALVIiYFknmvlmyg7hM7BSNUXPaCCqd0Q==", + "deprecated": "This package is no longer supported. Please use @npmcli/package-json instead.", "dev": true, "dependencies": { "glob": "^10.2.2", @@ -3211,22 +3138,19 @@ "optional": true }, "node_modules/scheduler": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", - "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", "dev": true, "dependencies": { "loose-envify": "^1.1.0" } }, "node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, "bin": { "semver": "bin/semver.js" }, @@ -3234,18 +3158,6 @@ "node": ">=10" } }, - "node_modules/semver/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -3289,17 +3201,17 @@ } }, "node_modules/sigstore": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-2.3.0.tgz", - "integrity": "sha512-q+o8L2ebiWD1AxD17eglf1pFrl9jtW7FHa0ygqY6EKvibK8JHyq9Z26v9MZXeDiw+RbfOJ9j2v70M10Hd6E06A==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-2.3.1.tgz", + "integrity": "sha512-8G+/XDU8wNsJOQS5ysDVO0Etg9/2uA5gR9l4ZwijjlwxBcrU6RPfwi2+jJmbP+Ap1Hlp/nVAaEO4Fj22/SL2gQ==", "dev": true, "dependencies": { - "@sigstore/bundle": "^2.3.1", + "@sigstore/bundle": "^2.3.2", "@sigstore/core": "^1.0.0", - "@sigstore/protobuf-specs": "^0.3.1", - "@sigstore/sign": "^2.3.0", - "@sigstore/tuf": "^2.3.1", - "@sigstore/verify": "^1.2.0" + "@sigstore/protobuf-specs": "^0.3.2", + "@sigstore/sign": "^2.3.2", + "@sigstore/tuf": "^2.3.4", + "@sigstore/verify": "^1.2.1" }, "engines": { "node": "^16.14.0 || >=18.0.0" @@ -3386,9 +3298,9 @@ } }, "node_modules/spdx-license-ids": { - "version": "3.0.17", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz", - "integrity": "sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==", + "version": "3.0.18", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.18.tgz", + "integrity": "sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ==", "dev": true }, "node_modules/sprintf-js": { @@ -3398,9 +3310,9 @@ "dev": true }, "node_modules/ssri": { - "version": "10.0.5", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.5.tgz", - "integrity": "sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==", + "version": "10.0.6", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.6.tgz", + "integrity": "sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==", "dev": true, "dependencies": { "minipass": "^7.0.3" @@ -3565,29 +3477,30 @@ } }, "node_modules/tap": { - "version": "18.7.2", - "resolved": "https://registry.npmjs.org/tap/-/tap-18.7.2.tgz", - "integrity": "sha512-cGrB6laenHPOj3VaExITM54VjM9bR6fd0DK6Co9cm0/eJBog8XL05MX8TLxVPZSJtCu3nUESGjFhpATE8obxcw==", - "dev": true, - "dependencies": { - "@tapjs/after": "1.1.20", - "@tapjs/after-each": "1.1.20", - "@tapjs/asserts": "1.1.20", - "@tapjs/before": "1.1.20", - "@tapjs/before-each": "1.1.20", - "@tapjs/core": "1.5.2", - "@tapjs/filter": "1.2.20", - "@tapjs/fixture": "1.2.20", - "@tapjs/intercept": "1.2.20", - "@tapjs/mock": "1.3.2", - "@tapjs/node-serialize": "1.3.2", - "@tapjs/run": "1.5.2", - "@tapjs/snapshot": "1.2.20", - "@tapjs/spawn": "1.1.20", - "@tapjs/stdin": "1.1.20", - "@tapjs/test": "1.4.2", - "@tapjs/typescript": "1.4.2", - "@tapjs/worker": "1.1.20", + "version": "19.2.1", + "resolved": "https://registry.npmjs.org/tap/-/tap-19.2.1.tgz", + "integrity": "sha512-PehUUGJ5chU1pKjrbKhG1IQVdiz2F2+0mifNQcNnLgOyfel36C8xKnBsiQaesrFUt6FZE1cmpmUcZM2z7Nb61w==", + "dev": true, + "dependencies": { + "@tapjs/after": "1.1.28", + "@tapjs/after-each": "2.0.5", + "@tapjs/asserts": "2.0.5", + "@tapjs/before": "2.0.5", + "@tapjs/before-each": "2.0.5", + "@tapjs/chdir": "1.1.1", + "@tapjs/core": "2.1.3", + "@tapjs/filter": "2.0.5", + "@tapjs/fixture": "2.0.5", + "@tapjs/intercept": "2.0.5", + "@tapjs/mock": "2.1.3", + "@tapjs/node-serialize": "2.0.5", + "@tapjs/run": "2.1.3", + "@tapjs/snapshot": "2.0.5", + "@tapjs/spawn": "2.0.5", + "@tapjs/stdin": "2.0.5", + "@tapjs/test": "2.2.1", + "@tapjs/typescript": "1.4.10", + "@tapjs/worker": "2.0.5", "resolve-import": "^1.4.5" }, "bin": { @@ -3601,9 +3514,9 @@ } }, "node_modules/tap-parser": { - "version": "15.3.2", - "resolved": "https://registry.npmjs.org/tap-parser/-/tap-parser-15.3.2.tgz", - "integrity": "sha512-uvauHuQqAMwfeFVxNpFXhvnWLVL0sthnHk4TxRM3cUy6+dejO9fatoKR7YejbMu4+2/1nR6UQE9+eUcX3PUmsA==", + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/tap-parser/-/tap-parser-16.0.1.tgz", + "integrity": "sha512-vKianJzSSzLkJ3bHBwzvZDDRi9yGMwkRANJxwPAjAue50owB8rlluYySmTN4tZVH0nsh6stvrQbg9kuCL5svdg==", "dev": true, "dependencies": { "events-to-array": "^2.0.3", @@ -3692,9 +3605,9 @@ } }, "node_modules/tcompare": { - "version": "6.4.6", - "resolved": "https://registry.npmjs.org/tcompare/-/tcompare-6.4.6.tgz", - "integrity": "sha512-sxvgCgO2GAIWHibnK4zLvvi9GHd/ZlR9DOUJ4ufwvNtkdKE2I9MNwJUwzYvOmGrJXMcfhhw0CDBb+6j0ia+I7A==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/tcompare/-/tcompare-7.0.1.tgz", + "integrity": "sha512-JN5s7hgmg/Ya5HxZqCnywT+XiOGRFcJRgYhtMyt/1m+h0yWpWwApO7HIM8Bpwyno9hI151ljjp5eAPCHhIGbpQ==", "dev": true, "dependencies": { "diff": "^5.2.0", @@ -3732,6 +3645,7 @@ "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, "dependencies": { "fs.realpath": "^1.0.0", @@ -3781,20 +3695,21 @@ } }, "node_modules/tshy": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/tshy/-/tshy-1.13.1.tgz", - "integrity": "sha512-r9lcCMryKJW7kOJkSqqjtZV1KLNMqYp98FC9n+BUBHEhbI2SY2ZJLkaOEFcXbWsHYK/hKAhqYKiTPQGJuNPSlg==", + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/tshy/-/tshy-1.14.0.tgz", + "integrity": "sha512-YiUujgi4Jb+t2I48LwSRzHkBpniH9WjjktNozn+nlsGmVemKSjDNY7EwBRPvPCr5zAC/3ITAYWH9Z7kUinGSrw==", "dev": true, "dependencies": { "chalk": "^5.3.0", - "chokidar": "^3.5.3", + "chokidar": "^3.6.0", "foreground-child": "^3.1.1", + "minimatch": "^9.0.4", "mkdirp": "^3.0.1", "polite-json": "^4.0.1", - "resolve-import": "^1.4.4", + "resolve-import": "^1.4.5", "rimraf": "^5.0.1", "sync-content": "^1.0.2", - "typescript": "5.2 || 5.3", + "typescript": "^5.4.5", "walk-up-path": "^3.0.1" }, "bin": { @@ -3804,34 +3719,21 @@ "node": "16 >=16.17 || 18 >=18.15.0 || >=20.6.1" } }, - "node_modules/tshy/node_modules/typescript": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", - "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, "node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", + "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==", "dev": true }, "node_modules/tuf-js": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-2.2.0.tgz", - "integrity": "sha512-ZSDngmP1z6zw+FIkIBjvOp/II/mIub/O7Pp12j1WNsiCpg5R5wAc//i555bBQsE44O94btLt0xM/Zr2LQjwdCg==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-2.2.1.tgz", + "integrity": "sha512-GwIJau9XaA8nLVbUXsN3IlFi7WmQ48gBUrl3FTkkL/XLu/POhBzfmX9hd33FNMX1qAsfl6ozO1iMmW9NC8YniA==", "dev": true, "dependencies": { - "@tufjs/models": "2.0.0", + "@tufjs/models": "2.0.1", "debug": "^4.3.4", - "make-fetch-happen": "^13.0.0" + "make-fetch-happen": "^13.0.1" }, "engines": { "node": "^16.14.0 || >=18.0.0" @@ -3962,13 +3864,10 @@ } }, "node_modules/validate-npm-package-name": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.0.tgz", - "integrity": "sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz", + "integrity": "sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==", "dev": true, - "dependencies": { - "builtins": "^5.0.0" - }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } @@ -4118,9 +4017,9 @@ "dev": true }, "node_modules/ws": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz", - "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==", + "version": "8.17.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.0.tgz", + "integrity": "sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==", "dev": true, "engines": { "node": ">=10.0.0" @@ -4154,9 +4053,9 @@ "dev": true }, "node_modules/yaml": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.1.tgz", - "integrity": "sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==", + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.3.tgz", + "integrity": "sha512-sntgmxj8o7DE7g/Qi60cqpLBA3HG3STcDA0kO+WfB05jEKhZMbY7umNm2rBpQvsmZ16/lPXCJGW2672dgOUkrg==", "dev": true, "bin": { "yaml": "bin.mjs" diff --git a/package.json b/package.json index 9c0889c..6770e7b 100644 --- a/package.json +++ b/package.json @@ -51,7 +51,7 @@ "devDependencies": { "@types/node": "^20.12.7", "prettier": "^2.8.8", - "tap": "^18.7.2", + "tap": "^19.2.1", "typedoc": "^0.25.13" }, "prettier": { diff --git a/src/config.ts b/src/config.ts index 4a5ebaf..3314c05 100644 --- a/src/config.ts +++ b/src/config.ts @@ -57,12 +57,12 @@ const getConfig = ( const tshy: TshyConfigMaybeGlobExports = validConfig(pkg.tshy) ? pkg.tshy : {} - const exportsRaw = tshy.exports - if (typeof exportsRaw === 'string' || Array.isArray(exportsRaw)) { + let exportsConfig = tshy.exports + if (typeof exportsConfig === 'string' || Array.isArray(exportsConfig)) { // Strip off the `./src` prefix and the extension // exports: "src/**/*.ts" => exports: {"./foo": "./src/foo.ts"} const exp: Exclude = {} - const pattern: string | string[] = exportsRaw + const pattern: string | string[] = exportsConfig const m = parsePattern(pattern) for (const e of sources) { if (!match(e.replace(/^\.\//, ''), m)) continue @@ -79,13 +79,14 @@ const getConfig = ( if (!validExports(exp)) { console.error('invalid exports pattern, using default exports') delete tshy.exports + exportsConfig = undefined } else { /* c8 ignore stop */ exp['./package.json'] = './package.json' tshy.exports = exp } } - const config = tshy as TshyConfig + const config = { ...tshy } as TshyConfig const ti = config as TshyConfig & { imports?: any } if (ti.imports) { console.debug( @@ -99,18 +100,23 @@ const getConfig = ( delete ti.imports } validImports(pkg) - pkg.tshy = config - if (tshy.exports) return config - const e: Exclude = { - './package.json': './package.json', - } - for (const i of sources) { - if (/^\.\/src\/index\.[^\.]+$/.test(i)) { - e['.'] = i - break + if (!exportsConfig) { + const e: Exclude = { + './package.json': './package.json', + } + for (const i of sources) { + if (/^\.\/src\/index\.[^\.]+$/.test(i)) { + e['.'] = i + break + } } + config.exports = e + tshy.exports = e + exportsConfig = e } - config.exports = e + // return the filled out config, but leave the package.json + // exports as they were, as long as they turned out to be valid. + pkg.tshy = { ...tshy, exports: exportsConfig } return config } diff --git a/tap-snapshots/test/config.ts.test.cjs b/tap-snapshots/test/config.ts.test.cjs index ff1f88f..be9eb78 100644 --- a/tap-snapshots/test/config.ts.test.cjs +++ b/tap-snapshots/test/config.ts.test.cjs @@ -5,26 +5,26 @@ * Make sure to inspect the output below. Do not ignore changes! */ 'use strict' -exports[`test/config.ts > TAP > {"config":{"dialects":"yolo"},"sources":[],"ok":false} > must match snapshot 1`] = ` +exports[`test/config.ts > TAP > basic parsing cases > {"config":{"dialects":"yolo"},"sources":[],"ok":false} > must match snapshot 1`] = ` tshy.dialects must be an array including "esm" and/or "commonjs", got: "yolo" ` -exports[`test/config.ts > TAP > {"config":{"exports":{"./blah":{"require":"./src/notallowed"}}},"sources":[],"ok":false} > must match snapshot 1`] = ` +exports[`test/config.ts > TAP > basic parsing cases > {"config":{"exports":{"./blah":{"require":"./src/notallowed"}}},"sources":[],"ok":false} > must match snapshot 1`] = ` tshy.exports ./blah unbuilt exports must not be in ./src, and exports in src must be string values. got: {"require":"./src/notallowed"} ` -exports[`test/config.ts > TAP > {"config":{"imports":"blah"},"sources":[],"ok":false} > must match snapshot 1`] = ` +exports[`test/config.ts > TAP > basic parsing cases > {"config":{"imports":"blah"},"sources":[],"ok":false} > must match snapshot 1`] = ` invalid imports module specifier: 0 ` -exports[`test/config.ts > TAP > {"config":{"imports":["blah"]},"sources":[],"ok":false} > must match snapshot 1`] = ` +exports[`test/config.ts > TAP > basic parsing cases > {"config":{"imports":["blah"]},"sources":[],"ok":false} > must match snapshot 1`] = ` invalid imports module specifier: 0 ` -exports[`test/config.ts > TAP > {"config":{"main":"blah"},"sources":[],"ok":false} > must match snapshot 1`] = ` +exports[`test/config.ts > TAP > basic parsing cases > {"config":{"main":"blah"},"sources":[],"ok":false} > must match snapshot 1`] = ` tshy.main must be a boolean value if specified, got: blah ` -exports[`test/config.ts > TAP > {"config":{"project":"thisFileDoesNotExist.json"},"sources":[],"ok":false} > must match snapshot 1`] = ` +exports[`test/config.ts > TAP > basic parsing cases > {"config":{"project":"thisFileDoesNotExist.json"},"sources":[],"ok":false} > must match snapshot 1`] = ` tshy.project must point to a tsconfig file on disk, got: "thisFileDoesNotExist.json" ` diff --git a/test/config.ts b/test/config.ts index 5a7d774..df2abe0 100644 --- a/test/config.ts +++ b/test/config.ts @@ -1,3 +1,4 @@ +import { readFileSync } from 'fs' import t from 'tap' import { Package, @@ -5,153 +6,179 @@ import { TshyConfigMaybeGlobExports, } from '../src/types.js' -const cases: [ - config: undefined | TshyConfigMaybeGlobExports, - sources: string[], - ok: boolean, - expect: TshyConfig -][] = [ - [ - undefined, - [], - true, - { exports: { './package.json': './package.json' } }, - ], - - [ - { exports: './src/*' }, - ['./src/index.ts', './src/foo.ts', './src/utils/bar.ts'], - true, - { - exports: { - './package.json': './package.json', - '.': './src/index.ts', - './foo': './src/foo.ts', +t.test('basic parsing cases', t => { + const cases: [ + config: undefined | TshyConfigMaybeGlobExports, + sources: string[], + ok: boolean, + expect: TshyConfig + ][] = [ + [ + undefined, + [], + true, + { exports: { './package.json': './package.json' } }, + ], + + [ + { exports: './src/*' }, + ['./src/index.ts', './src/foo.ts', './src/utils/bar.ts'], + true, + { + exports: { + './package.json': './package.json', + '.': './src/index.ts', + './foo': './src/foo.ts', + }, }, - }, - ], - [ - { exports: 'src/*' }, - ['./src/index.ts', './src/foo.ts', './src/utils/bar.ts'], - true, - { - exports: { - './package.json': './package.json', - '.': './src/index.ts', - './foo': './src/foo.ts', + ], + [ + { exports: 'src/*' }, + ['./src/index.ts', './src/foo.ts', './src/utils/bar.ts'], + true, + { + exports: { + './package.json': './package.json', + '.': './src/index.ts', + './foo': './src/foo.ts', + }, }, - }, - ], - [ - { exports: ['src/utils/*.ts', './src/index.*'] }, + ], [ - './src/index.ts', - './src/utils/baz.js', - './src/foo.ts', - './src/utils/bar.ts', + { exports: ['src/utils/*.ts', './src/index.*'] }, + [ + './src/index.ts', + './src/utils/baz.js', + './src/foo.ts', + './src/utils/bar.ts', + ], + true, + { + exports: { + './package.json': './package.json', + '.': './src/index.ts', + './utils/bar': './src/utils/bar.ts', + }, + }, ], - true, - { - exports: { - './package.json': './package.json', - '.': './src/index.ts', - './utils/bar': './src/utils/bar.ts', + + [ + undefined, + ['./src/index.ts'], + true, + { + exports: { + './package.json': './package.json', + '.': './src/index.ts', + }, }, - }, - ], - - [ - undefined, - ['./src/index.ts'], - true, - { - exports: { - './package.json': './package.json', - '.': './src/index.ts', + ], + + [ + { selfLink: false }, + ['./src/index.ts'], + true, + { + exports: { + './package.json': './package.json', + '.': './src/index.ts', + }, + selfLink: false, }, - }, - ], - - [ - { selfLink: false }, - ['./src/index.ts'], - true, - { - exports: { - './package.json': './package.json', - '.': './src/index.ts', + ], + + //@ts-expect-error + [{ dialects: 'yolo' }, [], false, {}], + + [ + { exports: { './blah': { require: './src/notallowed' } } }, + [], + false, + {}, + ], + + [ + { + exclude: ['./src/*.test.ts'], + exports: { '.': './src/index.ts' }, + }, + ['./src/index.ts'], + true, + { + exclude: ['./src/*.test.ts'], + exports: { '.': './src/index.ts' }, }, + ], + + //@ts-expect-error + [{ main: 'blah' }, [], false, {}], + + //@ts-expect-error + [{ imports: 'blah' }, [], false, {}], + + //@ts-expect-error + [{ imports: ['blah'] }, [], false, {}], + + [{ project: 'thisFileDoesNotExist.json' }, [], false, {}], + ] + + t.plan(cases.length) + + for (const [config, sources, ok, expect] of cases) { + t.test(JSON.stringify({ config, sources, ok }), async t => { + const exits = t.capture(process, 'exit', () => { + throw 'exit' + }).args + + const pkg: Package = { + name: 'x', + version: '1.2.3', + tshy: config, + } + let failMsg: undefined | string = undefined + const result = (await t + .mockImport('../dist/esm/config.js', { + '../dist/esm/package.js': { default: pkg }, + '../dist/esm/fail.js': { + default: (m: string) => (failMsg = m), + }, + '../dist/esm/sources.js': { default: sources }, + }) + .catch(er => { + if (ok) t.equal(er, undefined, 'did not expect exit') + })) as typeof import('../dist/esm/config.js') + if (!ok) { + t.matchSnapshot(failMsg) + t.strictSame(exits(), [[1]]) + } else { + t.strictSame(result.default, expect) + t.equal(failMsg, undefined) + t.strictSame(exits(), []) + } + }) + } +}) + +t.test('do not clobber glob exports', async t => { + const pkg: Package = { + name: 'x', + version: '1.2.3', + tshy: { selfLink: false, + dialects: ['esm'], + exports: 'src/*', }, - ], - - //@ts-expect-error - [{ dialects: 'yolo' }, [], false, {}], - - [ - { exports: { './blah': { require: './src/notallowed' } } }, - [], - false, - {}, - ], - - [ - { - exclude: ['./src/*.test.ts'], - exports: { '.': './src/index.ts' }, - }, - ['./src/index.ts'], - true, - { - exclude: ['./src/*.test.ts'], - exports: { '.': './src/index.ts' }, + } + + const dir = t.testdir({ + 'package.json': JSON.stringify(pkg), + src: { + 'foo.ts': 'console.log("hello from foo")', + 'bar.ts': 'console.log("hello from bar")', }, - ], - - //@ts-expect-error - [{ main: 'blah' }, [], false, {}], - - //@ts-expect-error - [{ imports: 'blah' }, [], false, {}], - - //@ts-expect-error - [{ imports: ['blah'] }, [], false, {}], - - [{ project: 'thisFileDoesNotExist.json' }, [], false, {}], -] - -t.plan(cases.length) - -for (const [config, sources, ok, expect] of cases) { - t.test(JSON.stringify({ config, sources, ok }), async t => { - const exits = t.capture(process, 'exit', () => { - throw 'exit' - }).args - - const pkg: Package = { - name: 'x', - version: '1.2.3', - tshy: config, - } - let failMsg: undefined | string = undefined - const result = (await t - .mockImport('../dist/esm/config.js', { - '../dist/esm/package.js': { default: pkg }, - '../dist/esm/fail.js': { - default: (m: string) => (failMsg = m), - }, - '../dist/esm/sources.js': { default: sources }, - }) - .catch(er => { - if (ok) t.equal(er, undefined, 'did not expect exit') - })) as typeof import('../dist/esm/config.js') - if (!ok) { - t.matchSnapshot(failMsg) - t.strictSame(exits(), [[1]]) - } else { - t.strictSame(result.default, expect) - t.equal(failMsg, undefined) - t.strictSame(exits(), []) - } }) -} + t.chdir(dir) + await t.mockImport('../src/index.js') + const result = JSON.parse(readFileSync('./package.json', 'utf8')) + t.strictSame(result.tshy, pkg.tshy) +})