From 5f4738cfff655f92ca83124a54f1a8bdee729d3a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 27 May 2024 06:40:43 +0000 Subject: [PATCH 01/12] chore(deps-dev): bump typescript-eslint from 7.9.0 to 7.10.0 Bumps [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) from 7.9.0 to 7.10.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v7.10.0/packages/typescript-eslint) --- updated-dependencies: - dependency-name: typescript-eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package-lock.json | 118 +++++++++++++++++++++++----------------------- 1 file changed, 59 insertions(+), 59 deletions(-) diff --git a/package-lock.json b/package-lock.json index dc4881e..db38199 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1513,16 +1513,16 @@ "dev": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.9.0.tgz", - "integrity": "sha512-6e+X0X3sFe/G/54aC3jt0txuMTURqLyekmEHViqyA2VnxhLMpvA6nqmcjIy+Cr9tLDHPssA74BP5Mx9HQIxBEA==", + "version": "7.10.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.10.0.tgz", + "integrity": "sha512-PzCr+a/KAef5ZawX7nbyNwBDtM1HdLIT53aSA2DDlxmxMngZ43O8SIePOeX8H5S+FHXeI6t97mTt/dDdzY4Fyw==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "7.9.0", - "@typescript-eslint/type-utils": "7.9.0", - "@typescript-eslint/utils": "7.9.0", - "@typescript-eslint/visitor-keys": "7.9.0", + "@typescript-eslint/scope-manager": "7.10.0", + "@typescript-eslint/type-utils": "7.10.0", + "@typescript-eslint/utils": "7.10.0", + "@typescript-eslint/visitor-keys": "7.10.0", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", @@ -1546,15 +1546,15 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.9.0.tgz", - "integrity": "sha512-qHMJfkL5qvgQB2aLvhUSXxbK7OLnDkwPzFalg458pxQgfxKDfT1ZDbHQM/I6mDIf/svlMkj21kzKuQ2ixJlatQ==", + "version": "7.10.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.10.0.tgz", + "integrity": "sha512-2EjZMA0LUW5V5tGQiaa2Gys+nKdfrn2xiTIBLR4fxmPmVSvgPcKNW+AE/ln9k0A4zDUti0J/GZXMDupQoI+e1w==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "7.9.0", - "@typescript-eslint/types": "7.9.0", - "@typescript-eslint/typescript-estree": "7.9.0", - "@typescript-eslint/visitor-keys": "7.9.0", + "@typescript-eslint/scope-manager": "7.10.0", + "@typescript-eslint/types": "7.10.0", + "@typescript-eslint/typescript-estree": "7.10.0", + "@typescript-eslint/visitor-keys": "7.10.0", "debug": "^4.3.4" }, "engines": { @@ -1574,13 +1574,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.9.0.tgz", - "integrity": "sha512-ZwPK4DeCDxr3GJltRz5iZejPFAAr4Wk3+2WIBaj1L5PYK5RgxExu/Y68FFVclN0y6GGwH8q+KgKRCvaTmFBbgQ==", + "version": "7.10.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.10.0.tgz", + "integrity": "sha512-7L01/K8W/VGl7noe2mgH0K7BE29Sq6KAbVmxurj8GGaPDZXPr8EEQ2seOeAS+mEV9DnzxBQB6ax6qQQ5C6P4xg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.9.0", - "@typescript-eslint/visitor-keys": "7.9.0" + "@typescript-eslint/types": "7.10.0", + "@typescript-eslint/visitor-keys": "7.10.0" }, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -1591,13 +1591,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.9.0.tgz", - "integrity": "sha512-6Qy8dfut0PFrFRAZsGzuLoM4hre4gjzWJB6sUvdunCYZsYemTkzZNwF1rnGea326PHPT3zn5Lmg32M/xfJfByA==", + "version": "7.10.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.10.0.tgz", + "integrity": "sha512-D7tS4WDkJWrVkuzgm90qYw9RdgBcrWmbbRkrLA4d7Pg3w0ttVGDsvYGV19SH8gPR5L7OtcN5J1hTtyenO9xE9g==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "7.9.0", - "@typescript-eslint/utils": "7.9.0", + "@typescript-eslint/typescript-estree": "7.10.0", + "@typescript-eslint/utils": "7.10.0", "debug": "^4.3.4", "ts-api-utils": "^1.3.0" }, @@ -1618,9 +1618,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.9.0.tgz", - "integrity": "sha512-oZQD9HEWQanl9UfsbGVcZ2cGaR0YT5476xfWE0oE5kQa2sNK2frxOlkeacLOTh9po4AlUT5rtkGyYM5kew0z5w==", + "version": "7.10.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.10.0.tgz", + "integrity": "sha512-7fNj+Ya35aNyhuqrA1E/VayQX9Elwr8NKZ4WueClR3KwJ7Xx9jcCdOrLW04h51de/+gNbyFMs+IDxh5xIwfbNg==", "dev": true, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -1631,13 +1631,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.9.0.tgz", - "integrity": "sha512-zBCMCkrb2YjpKV3LA0ZJubtKCDxLttxfdGmwZvTqqWevUPN0FZvSI26FalGFFUZU/9YQK/A4xcQF9o/VVaCKAg==", + "version": "7.10.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.10.0.tgz", + "integrity": "sha512-LXFnQJjL9XIcxeVfqmNj60YhatpRLt6UhdlFwAkjNc6jSUlK8zQOl1oktAP8PlWFzPQC1jny/8Bai3/HPuvN5g==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.9.0", - "@typescript-eslint/visitor-keys": "7.9.0", + "@typescript-eslint/types": "7.10.0", + "@typescript-eslint/visitor-keys": "7.10.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -1683,15 +1683,15 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.9.0.tgz", - "integrity": "sha512-5KVRQCzZajmT4Ep+NEgjXCvjuypVvYHUW7RHlXzNPuak2oWpVoD1jf5xCP0dPAuNIchjC7uQyvbdaSTFaLqSdA==", + "version": "7.10.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.10.0.tgz", + "integrity": "sha512-olzif1Fuo8R8m/qKkzJqT7qwy16CzPRWBvERS0uvyc+DHd8AKbO4Jb7kpAvVzMmZm8TrHnI7hvjN4I05zow+tg==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "7.9.0", - "@typescript-eslint/types": "7.9.0", - "@typescript-eslint/typescript-estree": "7.9.0" + "@typescript-eslint/scope-manager": "7.10.0", + "@typescript-eslint/types": "7.10.0", + "@typescript-eslint/typescript-estree": "7.10.0" }, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -1705,12 +1705,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.9.0.tgz", - "integrity": "sha512-iESPx2TNLDNGQLyjKhUvIKprlP49XNEK+MvIf9nIO7ZZaZdbnfWKHnXAgufpxqfA0YryH8XToi4+CjBgVnFTSQ==", + "version": "7.10.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.10.0.tgz", + "integrity": "sha512-9ntIVgsi6gg6FIq9xjEO4VQJvwOqA3jaBFQJ/6TK5AvEup2+cECI6Fh7QiBxmfMHXU0V0J4RyPeOU1VDNzl9cg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.9.0", + "@typescript-eslint/types": "7.10.0", "eslint-visitor-keys": "^3.4.3" }, "engines": { @@ -2009,12 +2009,12 @@ } }, "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, "dependencies": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" }, "engines": { "node": ">=8" @@ -3262,9 +3262,9 @@ } }, "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, "dependencies": { "to-regex-range": "^5.0.1" @@ -4381,12 +4381,12 @@ } }, "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", + "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", "dev": true, "dependencies": { - "braces": "^3.0.2", + "braces": "^3.0.3", "picomatch": "^2.3.1" }, "engines": { @@ -6705,14 +6705,14 @@ } }, "node_modules/typescript-eslint": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-7.9.0.tgz", - "integrity": "sha512-7iTn9c10teHHCys5Ud/yaJntXZrjt3h2mrx3feJGBOLgQkF3TB1X89Xs3aVQ/GgdXRAXpk2bPTdpRwHP4YkUow==", + "version": "7.10.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-7.10.0.tgz", + "integrity": "sha512-thO8nyqptXdfWHQrMJJiJyftpW8aLmwRNs11xA8pSrXneoclFPstQZqXvDWuH1WNL4CHffqHvYUeCHTit6yfhQ==", "dev": true, "dependencies": { - "@typescript-eslint/eslint-plugin": "7.9.0", - "@typescript-eslint/parser": "7.9.0", - "@typescript-eslint/utils": "7.9.0" + "@typescript-eslint/eslint-plugin": "7.10.0", + "@typescript-eslint/parser": "7.10.0", + "@typescript-eslint/utils": "7.10.0" }, "engines": { "node": "^18.18.0 || >=20.0.0" From 31e0cdb43adc660a63f71dd3e3f9939a43e27353 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 28 May 2024 17:10:35 +0200 Subject: [PATCH 02/12] chore(deps-dev): bump tap from 18.8.0 to 19.0.2 (#237) Bumps [tap](https://github.com/tapjs/tapjs) from 18.8.0 to 19.0.2. - [Release notes](https://github.com/tapjs/tapjs/releases) - [Commits](https://github.com/tapjs/tapjs/compare/tap@18.8.0...tap@19.0.2) --- updated-dependencies: - dependency-name: tap dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 671 ++++++++++++++++++++-------------------------- package.json | 2 +- 2 files changed, 294 insertions(+), 379 deletions(-) diff --git a/package-lock.json b/package-lock.json index db38199..4bb1735 100644 --- a/package-lock.json +++ b/package-lock.json @@ -28,7 +28,7 @@ "nock": "~13", "prettier": "^3.2.5", "semver": "^7.6.0", - "tap": "^18.7.2", + "tap": "^19.0.2", "ts-node": "^10.9.2", "typescript": "^5.4.5", "typescript-eslint": "^7.8.0", @@ -215,9 +215,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", @@ -348,15 +348,6 @@ "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/@npmcli/agent/node_modules/lru-cache": { - "version": "10.2.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", - "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", - "dev": true, - "engines": { - "node": "14 || >=16.14" - } - }, "node_modules/@npmcli/fs": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.1.tgz", @@ -388,15 +379,6 @@ "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/@npmcli/git/node_modules/lru-cache": { - "version": "10.2.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", - "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", - "dev": true, - "engines": { - "node": "14 || >=16.14" - } - }, "node_modules/@npmcli/installed-package-contents": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-2.1.0.tgz", @@ -450,16 +432,16 @@ } }, "node_modules/@npmcli/package-json/node_modules/glob": { - "version": "10.3.15", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.15.tgz", - "integrity": "sha512-0c6RlJt1TICLyvJYIApxb8GsXoai0KUP7AxKKAtsYXdgJR1mGEUa7DgwShbdk1nly0PYoZj01xd4hzbq3fsjpw==", + "version": "10.4.1", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz", + "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==", "dev": true, "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^2.3.6", - "minimatch": "^9.0.1", - "minipass": "^7.0.4", - "path-scurry": "^1.11.0" + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "path-scurry": "^1.11.1" }, "bin": { "glob": "dist/esm/bin.mjs" @@ -534,12 +516,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" @@ -564,14 +546,14 @@ } }, "node_modules/@sigstore/sign": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-2.3.1.tgz", - "integrity": "sha512-YZ71wKIOweC8ViUeZXboz0iPLqMkskxuoeN/D1CEpAyZvEepbX9oRMIoO6a/DxUqO1VEaqmcmmqzSiqtOsvSmw==", + "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", + "@sigstore/protobuf-specs": "^0.3.2", "make-fetch-happen": "^13.0.1", "proc-log": "^4.2.0", "promise-retry": "^2.0.1" @@ -581,12 +563,12 @@ } }, "node_modules/@sigstore/tuf": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-2.3.3.tgz", - "integrity": "sha512-agQhHNkIddXFslkudjV88vTXiAMEyUtso3at6ZHUNJ1agZb7Ze6VW/PddHipdWBu1t+8OWLW5X5yZOPiOnaWJQ==", + "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", + "@sigstore/protobuf-specs": "^0.3.2", "tuf-js": "^2.2.1" }, "engines": { @@ -594,14 +576,14 @@ } }, "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" @@ -734,9 +716,9 @@ } }, "node_modules/@tapjs/after": { - "version": "1.1.22", - "resolved": "https://registry.npmjs.org/@tapjs/after/-/after-1.1.22.tgz", - "integrity": "sha512-8Ui8dfTFgDS3ENfzKpsWGJw+v4LHXvifaSB79chQbucuggW+nM2zzWu7grw7mDUBBR3Mknk+qL4Nb1KrnZvfWQ==", + "version": "1.1.24", + "resolved": "https://registry.npmjs.org/@tapjs/after/-/after-1.1.24.tgz", + "integrity": "sha512-Qys3CtftkfHGC7thDGm9TBzRCBLAoJKrXufF1zQxI1oNUjclWZP/s8CtHH0mwUTISOTehmBLV3wPPHSslD67Ng==", "dev": true, "dependencies": { "is-actual-promise": "^1.0.1" @@ -745,13 +727,13 @@ "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20" }, "peerDependencies": { - "@tapjs/core": "1.5.4" + "@tapjs/core": "2.0.1" } }, "node_modules/@tapjs/after-each": { - "version": "1.1.22", - "resolved": "https://registry.npmjs.org/@tapjs/after-each/-/after-each-1.1.22.tgz", - "integrity": "sha512-KKbCnMlOFspW6YoaFfzbU3kwwolF9DfP7ikGGMZItex/EB+OcLxoFV++DCWIDIl12mzQfYZMJ0wJXtHFc0ux0Q==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@tapjs/after-each/-/after-each-2.0.1.tgz", + "integrity": "sha512-3JXIJ4g9LPjyXmn/1VuIMC0vh7uBgUpQPksjffxv0rL8wq4C8lvmqt8Qu/fVImJucqzA+WrRqVG1b2Ab0ocDOw==", "dev": true, "dependencies": { "function-loop": "^4.0.0" @@ -760,18 +742,18 @@ "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20" }, "peerDependencies": { - "@tapjs/core": "1.5.4" + "@tapjs/core": "2.0.1" } }, "node_modules/@tapjs/asserts": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@tapjs/asserts/-/asserts-1.2.0.tgz", - "integrity": "sha512-QTs1kALeJKrlX9Yns3f8/hfsWgf4mdFYPN3lQKxZ/3C/DkGnjlrpVd4I2fnTC7cgJ116kwEgwhxVJUpw9QPp9A==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@tapjs/asserts/-/asserts-2.0.1.tgz", + "integrity": "sha512-v2xYDLUwMGt8pzoY5LIjDCaw2NM+G01NW4pC3RcpsZLZbzQv1x/phi2RAX0ixI0nCmZZybqRygFKuMcJamS+gg==", "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": { @@ -781,13 +763,13 @@ "url": "https://github.com/sponsors/isaacs" }, "peerDependencies": { - "@tapjs/core": "1.5.4" + "@tapjs/core": "2.0.1" } }, "node_modules/@tapjs/before": { - "version": "1.1.22", - "resolved": "https://registry.npmjs.org/@tapjs/before/-/before-1.1.22.tgz", - "integrity": "sha512-Uv2odGCtOgY/EevyDZv2rHbIbe9WGrouC6HI+lJv4whGUKgiIYTOjrssl4YxvqvnNWx289/6Tp4Kpu7EeXT7yA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@tapjs/before/-/before-2.0.1.tgz", + "integrity": "sha512-GgnlWPm2PbuyYuG4gkkO2KAvT/BbGnpKs60U4XzPSJ2w73Qc/IYWP0Kz6qfCWongpiLteoco67M89ujUQApYJw==", "dev": true, "dependencies": { "is-actual-promise": "^1.0.1" @@ -796,13 +778,13 @@ "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20" }, "peerDependencies": { - "@tapjs/core": "1.5.4" + "@tapjs/core": "2.0.1" } }, "node_modules/@tapjs/before-each": { - "version": "1.1.22", - "resolved": "https://registry.npmjs.org/@tapjs/before-each/-/before-each-1.1.22.tgz", - "integrity": "sha512-uKKllHDvQgTXjAm+F+29Iqcb9Bzh5U6LH45m6v/zfKPm8UNnNpJ/XxFbbsFqi0EQX2czYH0ivHfyQwiO40R8lw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@tapjs/before-each/-/before-each-2.0.1.tgz", + "integrity": "sha512-gG1nYkvCHtWwhkueulO475KczdQZ3vBRgdkta/Qi42ZjZo6SNhYVjNc/+LRGV5vZoESrvgSd+JrDRGufd+j43w==", "dev": true, "dependencies": { "function-loop": "^4.0.0" @@ -811,19 +793,19 @@ "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20" }, "peerDependencies": { - "@tapjs/core": "1.5.4" + "@tapjs/core": "2.0.1" } }, "node_modules/@tapjs/config": { - "version": "2.4.19", - "resolved": "https://registry.npmjs.org/@tapjs/config/-/config-2.4.19.tgz", - "integrity": "sha512-8fkUnf2d3g9wbnfSirXI92bx4ZO5X37nqYVb5fua9VDC2MsTLAmd4JyDSNG1ngn8/nO5o8aFNEeUaePswGId4A==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@tapjs/config/-/config-3.0.1.tgz", + "integrity": "sha512-gAYFzErdSuPQ3afW6iRR99hiJmRLU+x9T+NE89z9UM45iPxglWLrRv1PFfh3tmtX6rpzwD5RY4/FVPcP2+/1LQ==", "dev": true, "dependencies": { - "@tapjs/core": "1.5.4", - "@tapjs/test": "1.4.4", + "@tapjs/core": "2.0.1", + "@tapjs/test": "2.0.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" @@ -835,27 +817,27 @@ "url": "https://github.com/sponsors/isaacs" }, "peerDependencies": { - "@tapjs/core": "1.5.4", - "@tapjs/test": "1.4.4" + "@tapjs/core": "2.0.1", + "@tapjs/test": "2.0.1" } }, "node_modules/@tapjs/core": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/@tapjs/core/-/core-1.5.4.tgz", - "integrity": "sha512-kDgRxTkSRxfLbX5orDmizxuyFBLLC3Mu4mQ2dMzw/UMYkrN8jZbkKZqIR0BdXgxE+GqvVFqkYvFJImXJBygBKQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@tapjs/core/-/core-2.0.1.tgz", + "integrity": "sha512-q+8d+ohw5kudktIqgP5ETBcPWAPip+kMIxs2eL2G3dV+7Gc8WrH43cCPrbSGPRITIOSIDPrtpQZEcZwQNqDdQw==", "dev": true, "dependencies": { "@tapjs/processinfo": "^3.1.7", - "@tapjs/stack": "1.2.8", - "@tapjs/test": "1.4.4", + "@tapjs/stack": "2.0.1", + "@tapjs/test": "2.0.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": { @@ -863,9 +845,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" @@ -878,9 +860,9 @@ } }, "node_modules/@tapjs/filter": { - "version": "1.2.22", - "resolved": "https://registry.npmjs.org/@tapjs/filter/-/filter-1.2.22.tgz", - "integrity": "sha512-qVWbsFem2R1htQVh0+4xWMPsDPpQ2NhA/6mnlg4ApzAFvaTr5T/zK72VpR+AqPaMcMgrp4a/m5DQ03dLFqckZQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@tapjs/filter/-/filter-2.0.1.tgz", + "integrity": "sha512-muKEeXK7Tz6VR4hjXfT2qXPvjYES575mtiRerjHf+8qP8D7MvmC8qDZJjzFdo1nZHKhF8snvFosIVuI1BAhvsw==", "dev": true, "engines": { "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20" @@ -889,13 +871,13 @@ "url": "https://github.com/sponsors/isaacs" }, "peerDependencies": { - "@tapjs/core": "1.5.4" + "@tapjs/core": "2.0.1" } }, "node_modules/@tapjs/fixture": { - "version": "1.2.22", - "resolved": "https://registry.npmjs.org/@tapjs/fixture/-/fixture-1.2.22.tgz", - "integrity": "sha512-ZYjkRzLSwW+cOg2CbL3GrgjatKVXcEGLQa7vjfmYVxDrPHkK7tiu3lf1KU6pFxTyqTlMMRUfMehHQrH+JjDC7Q==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@tapjs/fixture/-/fixture-2.0.1.tgz", + "integrity": "sha512-MLgEwsBlCD69iUbZcnKBehP2js5cV4p5GrFoOKSudMuH2DQJInaF/g2bkijue61cVZwPj/MRPCqAlkwA94epjg==", "dev": true, "dependencies": { "mkdirp": "^3.0.0", @@ -908,33 +890,33 @@ "url": "https://github.com/sponsors/isaacs" }, "peerDependencies": { - "@tapjs/core": "1.5.4" + "@tapjs/core": "2.0.1" } }, "node_modules/@tapjs/intercept": { - "version": "1.2.22", - "resolved": "https://registry.npmjs.org/@tapjs/intercept/-/intercept-1.2.22.tgz", - "integrity": "sha512-OiayUlV+0fxwGM3B7JyRSwryq2kRpuWiF+4wQCiufSbbF20H4uEIlkRq1YrfUlla4zWVvHeQOQlUoqb6fSEcSQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@tapjs/intercept/-/intercept-2.0.1.tgz", + "integrity": "sha512-BZgXE3zCAbv4lfbph1r85gihtI3kXltHlFQ8Bf3Yy9fx27DKQlBvXnD7T69ke8kQLRzhz+wTMcR/mcQjo1fa7w==", "dev": true, "dependencies": { - "@tapjs/after": "1.1.22", - "@tapjs/stack": "1.2.8" + "@tapjs/after": "1.1.24", + "@tapjs/stack": "2.0.1" }, "engines": { "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20" }, "peerDependencies": { - "@tapjs/core": "1.5.4" + "@tapjs/core": "2.0.1" } }, "node_modules/@tapjs/mock": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/@tapjs/mock/-/mock-1.3.4.tgz", - "integrity": "sha512-tEz5hIdJdAGzl+KxjZol4DD7cWAdYMmvLU/QCZ5BThAOJ+FUAOxtBFA31nd7IWkMseIqcbeeqLmeMtan6QlPKA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@tapjs/mock/-/mock-2.0.1.tgz", + "integrity": "sha512-i1vkwNgO7uEuQW3+hTuE2L64aC9xk0cC3PtC6DZKqyApk2IstNgoIS38nfsI6v2kvEgZNuWlsNcRAYNDOIEhzA==", "dev": true, "dependencies": { - "@tapjs/after": "1.1.22", - "@tapjs/stack": "1.2.8", + "@tapjs/after": "1.1.24", + "@tapjs/stack": "2.0.1", "resolve-import": "^1.4.5", "walk-up-path": "^3.0.1" }, @@ -945,18 +927,18 @@ "url": "https://github.com/sponsors/isaacs" }, "peerDependencies": { - "@tapjs/core": "1.5.4" + "@tapjs/core": "2.0.1" } }, "node_modules/@tapjs/node-serialize": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/@tapjs/node-serialize/-/node-serialize-1.3.4.tgz", - "integrity": "sha512-OwnSWdNnukgIGBsgnPy1ZpBDxp274GwLx2Ag+CulhsQ+IF9rOCq5P0EQ2kbxhxRet1386kbNzgXgaEeXmDXlLQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@tapjs/node-serialize/-/node-serialize-2.0.1.tgz", + "integrity": "sha512-1GtHDa7AXpk8y08llIPfUKRTDNsq+BhXxz7wiIfVEAOEB09kGyfpWteOg+cmvb+aHU1Ays3z+medXTIBm0D5Kg==", "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" @@ -965,7 +947,7 @@ "url": "https://github.com/sponsors/isaacs" }, "peerDependencies": { - "@tapjs/core": "1.5.4" + "@tapjs/core": "2.0.1" } }, "node_modules/@tapjs/processinfo": { @@ -993,13 +975,13 @@ } }, "node_modules/@tapjs/reporter": { - "version": "1.3.20", - "resolved": "https://registry.npmjs.org/@tapjs/reporter/-/reporter-1.3.20.tgz", - "integrity": "sha512-OTZeTC1/dr69mtZlRulynFH7+b7/C45MwLdLqaeTTeW2saAtojDMt7K2J8c74JlOO5+EKl71rBxrdKS6VBFqLw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@tapjs/reporter/-/reporter-2.0.1.tgz", + "integrity": "sha512-fCdl4vg8vnlqIYtTQ9dc3zOqeXrA5QbATbT4dsPIiPuCM3gvKTbntaNBeaWWZkPx697Dj+b8TIxT/xhNMNv7jQ==", "dev": true, "dependencies": { - "@tapjs/config": "2.4.19", - "@tapjs/stack": "1.2.8", + "@tapjs/config": "3.0.1", + "@tapjs/stack": "2.0.1", "chalk": "^5.2.0", "ink": "^4.4.1", "minipass": "^7.0.4", @@ -1008,9 +990,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" @@ -1019,7 +1001,7 @@ "url": "https://github.com/sponsors/isaacs" }, "peerDependencies": { - "@tapjs/core": "1.5.4" + "@tapjs/core": "2.0.1" } }, "node_modules/@tapjs/reporter/node_modules/ms": { @@ -1029,24 +1011,24 @@ "dev": true }, "node_modules/@tapjs/run": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/@tapjs/run/-/run-1.5.4.tgz", - "integrity": "sha512-mwzU/KalqYOGZTTf7lPyfBdRDCoIgec69NXrq/+Le7PXYWKrRoYvIUoBGwgZYyjfiYshhnzb+ayZdtd76Lj0Kw==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@tapjs/run/-/run-2.0.2.tgz", + "integrity": "sha512-2hPGlabqbLb3hh4BHHvwE8R9a9OiWumkCkHw5QQUZurDsVOpB94FfteqW9mktTVjZJnN0go+sN3GN2jZUaPWGQ==", "dev": true, "dependencies": { - "@tapjs/after": "1.1.22", - "@tapjs/before": "1.1.22", - "@tapjs/config": "2.4.19", + "@tapjs/after": "1.1.24", + "@tapjs/before": "2.0.1", + "@tapjs/config": "3.0.1", "@tapjs/processinfo": "^3.1.7", - "@tapjs/reporter": "1.3.20", - "@tapjs/spawn": "1.1.22", - "@tapjs/stdin": "1.1.22", - "@tapjs/test": "1.4.4", - "c8": "^8.0.1", + "@tapjs/reporter": "2.0.1", + "@tapjs/spawn": "2.0.1", + "@tapjs/stdin": "2.0.1", + "@tapjs/test": "2.0.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", @@ -1055,9 +1037,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" }, @@ -1071,7 +1053,7 @@ "url": "https://github.com/sponsors/isaacs" }, "peerDependencies": { - "@tapjs/core": "1.5.4" + "@tapjs/core": "2.0.1" } }, "node_modules/@tapjs/run/node_modules/brace-expansion": { @@ -1084,16 +1066,16 @@ } }, "node_modules/@tapjs/run/node_modules/glob": { - "version": "10.3.15", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.15.tgz", - "integrity": "sha512-0c6RlJt1TICLyvJYIApxb8GsXoai0KUP7AxKKAtsYXdgJR1mGEUa7DgwShbdk1nly0PYoZj01xd4hzbq3fsjpw==", + "version": "10.4.1", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz", + "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==", "dev": true, "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^2.3.6", - "minimatch": "^9.0.1", - "minipass": "^7.0.4", - "path-scurry": "^1.11.0" + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "path-scurry": "^1.11.1" }, "bin": { "glob": "dist/esm/bin.mjs" @@ -1121,13 +1103,13 @@ } }, "node_modules/@tapjs/snapshot": { - "version": "1.2.22", - "resolved": "https://registry.npmjs.org/@tapjs/snapshot/-/snapshot-1.2.22.tgz", - "integrity": "sha512-6nhNY6uFPnQEVQ8vuxV3rKiC7NXDY5k/Bv1bPatfo//6z1T41INfQbnfwQXoufaHveLPpGBTLwpOWjtFsUHgdg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@tapjs/snapshot/-/snapshot-2.0.1.tgz", + "integrity": "sha512-ZnbCxL+9fiJ38tec6wvRtRBZz9ChRUq0Bov7dltdZMNkXqudKyB+Zzbg25bqDEIgcczyp6A9hOwTX6VybDGqpg==", "dev": true, "dependencies": { "is-actual-promise": "^1.0.1", - "tcompare": "6.4.6", + "tcompare": "7.0.1", "trivial-deferred": "^2.0.0" }, "engines": { @@ -1137,25 +1119,25 @@ "url": "https://github.com/sponsors/isaacs" }, "peerDependencies": { - "@tapjs/core": "1.5.4" + "@tapjs/core": "2.0.1" } }, "node_modules/@tapjs/spawn": { - "version": "1.1.22", - "resolved": "https://registry.npmjs.org/@tapjs/spawn/-/spawn-1.1.22.tgz", - "integrity": "sha512-/MbFSmSpvLA0N2rKd8rI0vMLYM+0E3OB+doj+YUZe5m3G0YCHTBzZrnFGLw7Am1VsaREy4fSgchNEdn1NyikcQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@tapjs/spawn/-/spawn-2.0.1.tgz", + "integrity": "sha512-3VaQKJjHV5frMZj3Ef+QlJyB6b7VsGMil223zAEz8Ttgy2hDYtcb29nvsLPUcowFyOUrsydnXEnHgpR79wEPOA==", "dev": true, "engines": { "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20" }, "peerDependencies": { - "@tapjs/core": "1.5.4" + "@tapjs/core": "2.0.1" } }, "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" @@ -1165,48 +1147,49 @@ } }, "node_modules/@tapjs/stdin": { - "version": "1.1.22", - "resolved": "https://registry.npmjs.org/@tapjs/stdin/-/stdin-1.1.22.tgz", - "integrity": "sha512-JUyzZHG01iM6uDfplVGRiK+OdNalwl5Okv+eljHBdZOA8kO3hHI6N9bkZa472/st4NBj0lcMMGb2IKGgIBBUQg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@tapjs/stdin/-/stdin-2.0.1.tgz", + "integrity": "sha512-5Oe13Fzpnt9seAi8h3bsMxtJp8S+DQI6ncBD9JBcS91XKLbqyKrb1bNzeXQN2PrHBs6Atw8cOzFZh0TjL+bIaA==", "dev": true, "engines": { "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20" }, "peerDependencies": { - "@tapjs/core": "1.5.4" + "@tapjs/core": "2.0.1" } }, "node_modules/@tapjs/test": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/@tapjs/test/-/test-1.4.4.tgz", - "integrity": "sha512-I0mzxs8+RUULd9g0R6+LXsLzkeqhu5jJPpA7w5BzTxA++jQ0ACjyHs1BBy1IhhP9DeZ5N2LPg+WxLs7Dijs9Uw==", - "dev": true, - "dependencies": { - "@isaacs/ts-node-temp-fork-for-pr-2009": "^10.9.5", - "@tapjs/after": "1.1.22", - "@tapjs/after-each": "1.1.22", - "@tapjs/asserts": "1.2.0", - "@tapjs/before": "1.1.22", - "@tapjs/before-each": "1.1.22", - "@tapjs/filter": "1.2.22", - "@tapjs/fixture": "1.2.22", - "@tapjs/intercept": "1.2.22", - "@tapjs/mock": "1.3.4", - "@tapjs/node-serialize": "1.3.4", - "@tapjs/snapshot": "1.2.22", - "@tapjs/spawn": "1.1.22", - "@tapjs/stdin": "1.1.22", - "@tapjs/typescript": "1.4.4", - "@tapjs/worker": "1.1.22", - "glob": "^10.3.10", - "jackspeak": "^2.3.6", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@tapjs/test/-/test-2.0.1.tgz", + "integrity": "sha512-PKazf7r4+bLFATML2f/h8glGcSirXmzXUYlhFuxb4xHoOhHojyKgo1p8kSj+Ksxb3hVSCQlvyXgM8QYYaoMwog==", + "dev": true, + "dependencies": { + "@isaacs/ts-node-temp-fork-for-pr-2009": "^10.9.7", + "@tapjs/after": "1.1.24", + "@tapjs/after-each": "2.0.1", + "@tapjs/asserts": "2.0.1", + "@tapjs/before": "2.0.1", + "@tapjs/before-each": "2.0.1", + "@tapjs/filter": "2.0.1", + "@tapjs/fixture": "2.0.1", + "@tapjs/intercept": "2.0.1", + "@tapjs/mock": "2.0.1", + "@tapjs/node-serialize": "2.0.1", + "@tapjs/snapshot": "2.0.1", + "@tapjs/spawn": "2.0.1", + "@tapjs/stdin": "2.0.1", + "@tapjs/typescript": "1.4.6", + "@tapjs/worker": "2.0.1", + "glob": "^10.3.16", + "jackspeak": "^3.1.2", "mkdirp": "^3.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" @@ -1215,7 +1198,7 @@ "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20" }, "peerDependencies": { - "@tapjs/core": "1.5.4" + "@tapjs/core": "2.0.1" } }, "node_modules/@tapjs/test/node_modules/brace-expansion": { @@ -1228,16 +1211,16 @@ } }, "node_modules/@tapjs/test/node_modules/glob": { - "version": "10.3.15", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.15.tgz", - "integrity": "sha512-0c6RlJt1TICLyvJYIApxb8GsXoai0KUP7AxKKAtsYXdgJR1mGEUa7DgwShbdk1nly0PYoZj01xd4hzbq3fsjpw==", + "version": "10.4.1", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz", + "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==", "dev": true, "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^2.3.6", - "minimatch": "^9.0.1", - "minipass": "^7.0.4", - "path-scurry": "^1.11.0" + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "path-scurry": "^1.11.1" }, "bin": { "glob": "dist/esm/bin.mjs" @@ -1264,44 +1247,31 @@ "url": "https://github.com/sponsors/isaacs" } }, - "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" - } - }, "node_modules/@tapjs/typescript": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/@tapjs/typescript/-/typescript-1.4.4.tgz", - "integrity": "sha512-Mf2vIK1yk5ipQRmuIznFtC8Iboti0p0D90ENDZdEx678h60vAVPh9vebVX+oQ0LccAHGyu/CiOSFL4Za8b5/Rg==", + "version": "1.4.6", + "resolved": "https://registry.npmjs.org/@tapjs/typescript/-/typescript-1.4.6.tgz", + "integrity": "sha512-6jxUQ7Mdb+Y2q8RJcwgZZ6dCR+X2u3hCL+xb1GDAtO7k1+B6z2b+z+I+FdhuO4YgrP0SLRjocL5rJM/xi9K7qw==", "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.4" + "@tapjs/core": "2.0.1" } }, "node_modules/@tapjs/worker": { - "version": "1.1.22", - "resolved": "https://registry.npmjs.org/@tapjs/worker/-/worker-1.1.22.tgz", - "integrity": "sha512-1PO9Qstfevr4Wdh318eC3O1mytSyXT3q/K6EeivBhnuPeyHsy3QCAd1bfVD7gqzWNbJ/UzeGN3knfIi5qXifmA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@tapjs/worker/-/worker-2.0.1.tgz", + "integrity": "sha512-wegz8IxNEPIIAA+R76/avZgNmZ4iC7QGFbtXKGBU962/1lXTITxshRV6e21r0IBa7YLkSVgDuVSVB3+Qzve0Yg==", "dev": true, "engines": { "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20" }, "peerDependencies": { - "@tapjs/core": "1.5.4" + "@tapjs/core": "2.0.1" } }, "node_modules/@tsconfig/node10": { @@ -2030,19 +2000,18 @@ } }, "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", @@ -2052,43 +2021,9 @@ "c8": "bin/c8.js" }, "engines": { - "node": ">=12" - } - }, - "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/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.3", "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.3.tgz", @@ -2122,16 +2057,16 @@ } }, "node_modules/cacache/node_modules/glob": { - "version": "10.3.15", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.15.tgz", - "integrity": "sha512-0c6RlJt1TICLyvJYIApxb8GsXoai0KUP7AxKKAtsYXdgJR1mGEUa7DgwShbdk1nly0PYoZj01xd4hzbq3fsjpw==", + "version": "10.4.1", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz", + "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==", "dev": true, "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^2.3.6", - "minimatch": "^9.0.1", - "minipass": "^7.0.4", - "path-scurry": "^1.11.0" + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "path-scurry": "^1.11.1" }, "bin": { "glob": "dist/esm/bin.mjs" @@ -2143,15 +2078,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/cacache/node_modules/lru-cache": { - "version": "10.2.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", - "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", - "dev": true, - "engines": { - "node": "14 || >=16.14" - } - }, "node_modules/cacache/node_modules/minimatch": { "version": "9.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", @@ -3670,15 +3596,6 @@ "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/hosted-git-info/node_modules/lru-cache": { - "version": "10.2.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", - "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", - "dev": true, - "engines": { - "node": "14 || >=16.14" - } - }, "node_modules/html-escaper": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", @@ -3961,13 +3878,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", @@ -4141,9 +4055,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.1.2", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.1.2.tgz", + "integrity": "sha512-kWmLKn2tRtfYMF/BakihVVRzBKOxz4gJMiL2Rj91WnAB5TPZumSH99R/Yf1qE1u4uRimvCSJfm6hnxohXeEXjQ==", "dev": true, "dependencies": { "@isaacs/cliui": "^8.0.2" @@ -4303,6 +4217,15 @@ "loose-envify": "cli.js" } }, + "node_modules/lru-cache": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", + "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, "node_modules/make-dir": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", @@ -4448,9 +4371,9 @@ } }, "node_modules/minipass": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.1.tgz", - "integrity": "sha512-UZ7eQ+h8ywIRAW1hIEl2AqdwzJucU/Kp59+8kkZeSvafXhZjul247BvIJjEVFVeON6d7lM46XX1HXCduKAS8VA==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "dev": true, "engines": { "node": ">=16 || 14 >=14.17" @@ -4687,16 +4610,16 @@ } }, "node_modules/node-gyp/node_modules/glob": { - "version": "10.3.15", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.15.tgz", - "integrity": "sha512-0c6RlJt1TICLyvJYIApxb8GsXoai0KUP7AxKKAtsYXdgJR1mGEUa7DgwShbdk1nly0PYoZj01xd4hzbq3fsjpw==", + "version": "10.4.1", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz", + "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==", "dev": true, "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^2.3.6", - "minimatch": "^9.0.1", - "minipass": "^7.0.4", - "path-scurry": "^1.11.0" + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "path-scurry": "^1.11.1" }, "bin": { "glob": "dist/esm/bin.mjs" @@ -5127,15 +5050,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.2.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", - "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", - "dev": true, - "engines": { - "node": "14 || >=16.14" - } - }, "node_modules/path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", @@ -5431,6 +5345,7 @@ "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", @@ -5465,16 +5380,16 @@ } }, "node_modules/read-package-json/node_modules/glob": { - "version": "10.3.15", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.15.tgz", - "integrity": "sha512-0c6RlJt1TICLyvJYIApxb8GsXoai0KUP7AxKKAtsYXdgJR1mGEUa7DgwShbdk1nly0PYoZj01xd4hzbq3fsjpw==", + "version": "10.4.1", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz", + "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==", "dev": true, "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^2.3.6", - "minimatch": "^9.0.1", - "minipass": "^7.0.4", - "path-scurry": "^1.11.0" + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "path-scurry": "^1.11.1" }, "bin": { "glob": "dist/esm/bin.mjs" @@ -5569,16 +5484,16 @@ } }, "node_modules/resolve-import/node_modules/glob": { - "version": "10.3.15", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.15.tgz", - "integrity": "sha512-0c6RlJt1TICLyvJYIApxb8GsXoai0KUP7AxKKAtsYXdgJR1mGEUa7DgwShbdk1nly0PYoZj01xd4hzbq3fsjpw==", + "version": "10.4.1", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz", + "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==", "dev": true, "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^2.3.6", - "minimatch": "^9.0.1", - "minipass": "^7.0.4", - "path-scurry": "^1.11.0" + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "path-scurry": "^1.11.1" }, "bin": { "glob": "dist/esm/bin.mjs" @@ -5674,16 +5589,16 @@ } }, "node_modules/rimraf/node_modules/glob": { - "version": "10.3.15", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.15.tgz", - "integrity": "sha512-0c6RlJt1TICLyvJYIApxb8GsXoai0KUP7AxKKAtsYXdgJR1mGEUa7DgwShbdk1nly0PYoZj01xd4hzbq3fsjpw==", + "version": "10.4.1", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz", + "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==", "dev": true, "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^2.3.6", - "minimatch": "^9.0.1", - "minipass": "^7.0.4", - "path-scurry": "^1.11.0" + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "path-scurry": "^1.11.1" }, "bin": { "glob": "dist/esm/bin.mjs" @@ -5944,17 +5859,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" @@ -6050,9 +5965,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": { @@ -6283,16 +6198,16 @@ } }, "node_modules/sync-content/node_modules/glob": { - "version": "10.3.15", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.15.tgz", - "integrity": "sha512-0c6RlJt1TICLyvJYIApxb8GsXoai0KUP7AxKKAtsYXdgJR1mGEUa7DgwShbdk1nly0PYoZj01xd4hzbq3fsjpw==", + "version": "10.4.1", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz", + "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==", "dev": true, "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^2.3.6", - "minimatch": "^9.0.1", - "minipass": "^7.0.4", - "path-scurry": "^1.11.0" + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "path-scurry": "^1.11.1" }, "bin": { "glob": "dist/esm/bin.mjs" @@ -6320,29 +6235,29 @@ } }, "node_modules/tap": { - "version": "18.8.0", - "resolved": "https://registry.npmjs.org/tap/-/tap-18.8.0.tgz", - "integrity": "sha512-tX02yXmzBcemYfNGKtTJFf3cn7e8VgBvxKswaew8YnrE+1cUZtxyN0GhMzPQ5cWznVz47DfgcuYR1QtCr+4LOw==", - "dev": true, - "dependencies": { - "@tapjs/after": "1.1.22", - "@tapjs/after-each": "1.1.22", - "@tapjs/asserts": "1.2.0", - "@tapjs/before": "1.1.22", - "@tapjs/before-each": "1.1.22", - "@tapjs/core": "1.5.4", - "@tapjs/filter": "1.2.22", - "@tapjs/fixture": "1.2.22", - "@tapjs/intercept": "1.2.22", - "@tapjs/mock": "1.3.4", - "@tapjs/node-serialize": "1.3.4", - "@tapjs/run": "1.5.4", - "@tapjs/snapshot": "1.2.22", - "@tapjs/spawn": "1.1.22", - "@tapjs/stdin": "1.1.22", - "@tapjs/test": "1.4.4", - "@tapjs/typescript": "1.4.4", - "@tapjs/worker": "1.1.22", + "version": "19.0.2", + "resolved": "https://registry.npmjs.org/tap/-/tap-19.0.2.tgz", + "integrity": "sha512-SRGulk1RKlVuYtnPeephj+xyE0sG9CvGlKYP4lymBZykLtkwBPnEBjQ2iQmLX5z0BFEMfKh8G4bvZkhoSJb3kg==", + "dev": true, + "dependencies": { + "@tapjs/after": "1.1.24", + "@tapjs/after-each": "2.0.1", + "@tapjs/asserts": "2.0.1", + "@tapjs/before": "2.0.1", + "@tapjs/before-each": "2.0.1", + "@tapjs/core": "2.0.1", + "@tapjs/filter": "2.0.1", + "@tapjs/fixture": "2.0.1", + "@tapjs/intercept": "2.0.1", + "@tapjs/mock": "2.0.1", + "@tapjs/node-serialize": "2.0.1", + "@tapjs/run": "2.0.2", + "@tapjs/snapshot": "2.0.1", + "@tapjs/spawn": "2.0.1", + "@tapjs/stdin": "2.0.1", + "@tapjs/test": "2.0.1", + "@tapjs/typescript": "1.4.6", + "@tapjs/worker": "2.0.1", "resolve-import": "^1.4.5" }, "bin": { @@ -6356,9 +6271,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", @@ -6447,9 +6362,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", diff --git a/package.json b/package.json index 4502148..acf5149 100644 --- a/package.json +++ b/package.json @@ -54,7 +54,7 @@ "nock": "~13", "prettier": "^3.2.5", "semver": "^7.6.0", - "tap": "^18.7.2", + "tap": "^19.0.2", "ts-node": "^10.9.2", "typescript": "^5.4.5", "typescript-eslint": "^7.8.0", From 2622d78db13f49d55551531b8b4e372915398ca7 Mon Sep 17 00:00:00 2001 From: Miguel Beltran Date: Tue, 28 May 2024 17:44:43 +0200 Subject: [PATCH 03/12] fix: onBeforeSend allows to skip messages (#231) Add onBeforeSend to express-sample prettier update docs modify error in onbeforesend small typo Update README.md Co-authored-by: Sumitra Manga <36393794+sumitramanga@users.noreply.github.com> --- README.md | 8 ++--- examples/express-sample/app.js | 15 +++++++++ examples/express-sample/routes/index.js | 17 ++++++++++ examples/express-sample/views/index.ejs | 3 ++ lib/raygun.ts | 45 ++++++++++++++++++++----- test/raygun_async_send_test.js | 26 ++++++++++++++ test/raygun_express_test.js | 26 ++++++++++++++ 7 files changed, 128 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 3a90aae..3683b62 100644 --- a/README.md +++ b/README.md @@ -287,18 +287,18 @@ Call `Raygun.onBeforeSend()`, passing in a function which takes up to 5 paramete You can also pass this in as an option to `init()` like this: `raygunClient.init({ onBeforeSend: function(payload) { return payload; } });` -From the supplied function, you should return either the payload (intact or mutated as per your needs), or false. +From the supplied function, you should return either the payload (intact or mutated as per your needs), or `null`. If your function returns a truthy object, Raygun4Node will attempt to send it as supplied. Thus, you can mutate it as per your needs - preferably only the values if you wish to filter out data that is not taken care of by the filters. You can also of course return it as supplied. -If, after inspecting the payload, you wish to discard it and abort the send to Raygun, simply return false. +If, after inspecting the payload, you wish to discard it and abort sending it to Raygun, simply return `null`. -By example: +For example: ```javascript const myBeforeSend = function (payload, exception, customData, request, tags) { console.log(payload); // Modify the payload here if necessary - return payload; // Return false here to abort the send + return payload; // Return null here instead of payload to abort the send } Raygun.onBeforeSend(myBeforeSend); diff --git a/examples/express-sample/app.js b/examples/express-sample/app.js index acddd12..02085b8 100644 --- a/examples/express-sample/app.js +++ b/examples/express-sample/app.js @@ -50,6 +50,21 @@ app.use("/users", users); // Add the Raygun error Express handler app.use(raygunClient.expressHandler); +// Optional: Configure onBeforeSend +raygunClient.onBeforeSend((message, exception, customData, request, tags) => { + console.log( + `[app.js] onBeforeSend called with error: ${message.details.error.message}`, + ); + + // If the message contains the word "skip", do not send the message to Raygun + if (message.details.error.message.indexOf("skip") > -1) { + console.log("[app.js] skip sending message"); + return null; + } + + return message; +}); + raygunClient.addBreadcrumb("Express Server started!"); module.exports = app; diff --git a/examples/express-sample/routes/index.js b/examples/express-sample/routes/index.js index a0b1649..66ed15c 100644 --- a/examples/express-sample/routes/index.js +++ b/examples/express-sample/routes/index.js @@ -9,6 +9,23 @@ router.get("/", function (req, res, next) { }); }); +router.get("/skip", function (req, res, next) { + raygunClient + .send("Error to skip") + .then((message) => { + res.render("send", { + title: "Skip sending message", + body: `Message should be null: ${message}`, + }); + }) + .catch((error) => { + res.render("send", { + title: "Failed to send error to Raygun", + body: error.toString(), + }); + }); +}); + router.get("/send", function (req, res, next) { raygunClient.addBreadcrumb({ level: "debug", diff --git a/examples/express-sample/views/index.ejs b/examples/express-sample/views/index.ejs index 9f3d474..da0c4e5 100644 --- a/examples/express-sample/views/index.ejs +++ b/examples/express-sample/views/index.ejs @@ -11,6 +11,9 @@
Send a custom error
+
+ Send an error that will be skipped +
Throw an error
diff --git a/lib/raygun.ts b/lib/raygun.ts index ffc9f44..e79accd 100644 --- a/lib/raygun.ts +++ b/lib/raygun.ts @@ -40,7 +40,7 @@ import * as raygunSyncTransport from "./raygun.sync.transport"; import { v4 as uuidv4 } from "uuid"; type SendOptionsResult = - | { valid: true; message: Message; options: SendOptions } + | { valid: true; message: Message; options: SendOptions; skip: boolean } | { valid: false; message: Message }; const debug = require("debug")("raygun"); @@ -81,7 +81,7 @@ class Raygun { _useSSL: boolean | undefined; - _onBeforeSend: Hook | undefined; + _onBeforeSend: Hook | undefined; _offlineStorage: IOfflineStorage | undefined; @@ -175,7 +175,12 @@ class Raygun { return this; } - onBeforeSend(onBeforeSend: Hook) { + /** + * Access or mutate the candidate error payload immediately before it is sent, + * or skip the sending action by returning null. + * @param onBeforeSend callback that must return a Message object to send, or null to skip sending it. + */ + onBeforeSend(onBeforeSend: Hook) { this._onBeforeSend = onBeforeSend; return this; } @@ -250,6 +255,13 @@ class Raygun { return Promise.reject(sendOptionsResult.message); } + if (sendOptionsResult.skip) { + console.log( + `[Raygun4Node] Skip sending message: ${sendOptionsResult.message.details.error}.`, + ); + return Promise.resolve(null); + } + const sendOptions = sendOptionsResult.options; if (this._isOffline) { // Server is offline, store in Offline Storage @@ -352,6 +364,12 @@ class Raygun { const result = this.buildSendOptions(exception); if (result.valid) { + if (result.skip) { + console.log( + `[Raygun4Node] Skip sending message: ${result.message.details.error}.`, + ); + return; + } raygunSyncTransport.send(result.options); } } @@ -446,6 +464,7 @@ class Raygun { tags?: Tag[], ): SendOptionsResult { let mergedTags: Tag[] = []; + let skip = false; if (this._tags) { mergedTags = mergedTags.concat(this._tags); @@ -480,11 +499,20 @@ class Raygun { : null; } - if (this._onBeforeSend) { - message = - typeof this._onBeforeSend === "function" - ? this._onBeforeSend(message, exception, customData, request, tags) - : message; + if (this._onBeforeSend && typeof this._onBeforeSend === "function") { + const _message = this._onBeforeSend( + message, + exception, + customData, + request, + tags, + ); + if (_message) { + message = _message; + } else { + debug("[raygun.ts] onBeforeSend returned null, cancelling send"); + skip = true; + } } if (apmBridge) { @@ -503,6 +531,7 @@ class Raygun { return { valid: true, message, + skip: skip, options: { message: JSON.stringify(message), http: { diff --git a/test/raygun_async_send_test.js b/test/raygun_async_send_test.js index 3adf972..55a0f49 100644 --- a/test/raygun_async_send_test.js +++ b/test/raygun_async_send_test.js @@ -119,6 +119,32 @@ test("async send with OnBeforeSend", {}, function (t) { }); }); +test("onBeforeSend returns null, cancel send", {}, function (t) { + t.plan(2); + + let client = new Raygun.Client().init({ + apiKey: API_KEY, + }); + + client.onBeforeSend(function (payload) { + // onBeforeSend is called and the payload is valid + t.ok(payload); + // Returning null cancels send action + return null; + }); + + client + .send(new Error()) + .then((response) => { + // Send finishes, response is null + t.equal(response, null); + t.end(); + }) + .catch((err) => { + t.fail(err); + }); +}); + test("check that tags get passed through in async send", {}, function (t) { let tag = ["Test"]; let client = new Raygun.Client().init({ apiKey: "TEST" }); diff --git a/test/raygun_express_test.js b/test/raygun_express_test.js index 38a9e3a..5fb8d0b 100644 --- a/test/raygun_express_test.js +++ b/test/raygun_express_test.js @@ -149,3 +149,29 @@ test("string exceptions are sent intact", async function (t) { t.same(message.details.error.message, "my string error"); }); + +test("modify error payload in onBeforeSend", async function (t) { + t.plan(1); + + const testEnvironment = await makeClientWithMockServer(); + const raygunClient = testEnvironment.client; + + const nextRequest = testEnvironment.nextRequest(); + + // Modify message in onBeforeSend + raygunClient.onBeforeSend((message) => { + message.details.error.message = "New Message"; + return message; + }); + + // Send "Original Message" + await raygunClient.send(new Error("Original Message")); + + const message = await nextRequest; + + testEnvironment.stop(); + + // expect modified "New Message" + t.same(message.details.error.message, "New Message"); + t.end(); +}); From 30978ef8d47e497613011647d8a54e5e790e10a1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 3 Jun 2024 08:56:21 +0200 Subject: [PATCH 04/12] chore(deps-dev): bump typescript-eslint from 7.10.0 to 7.11.0 (#239) Bumps [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) from 7.10.0 to 7.11.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v7.11.0/packages/typescript-eslint) --- updated-dependencies: - dependency-name: typescript-eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 96 +++++++++++++++++++++++------------------------ 1 file changed, 48 insertions(+), 48 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4bb1735..74e1707 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1483,16 +1483,16 @@ "dev": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "7.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.10.0.tgz", - "integrity": "sha512-PzCr+a/KAef5ZawX7nbyNwBDtM1HdLIT53aSA2DDlxmxMngZ43O8SIePOeX8H5S+FHXeI6t97mTt/dDdzY4Fyw==", + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.11.0.tgz", + "integrity": "sha512-P+qEahbgeHW4JQ/87FuItjBj8O3MYv5gELDzr8QaQ7fsll1gSMTYb6j87MYyxwf3DtD7uGFB9ShwgmCJB5KmaQ==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "7.10.0", - "@typescript-eslint/type-utils": "7.10.0", - "@typescript-eslint/utils": "7.10.0", - "@typescript-eslint/visitor-keys": "7.10.0", + "@typescript-eslint/scope-manager": "7.11.0", + "@typescript-eslint/type-utils": "7.11.0", + "@typescript-eslint/utils": "7.11.0", + "@typescript-eslint/visitor-keys": "7.11.0", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", @@ -1516,15 +1516,15 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "7.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.10.0.tgz", - "integrity": "sha512-2EjZMA0LUW5V5tGQiaa2Gys+nKdfrn2xiTIBLR4fxmPmVSvgPcKNW+AE/ln9k0A4zDUti0J/GZXMDupQoI+e1w==", + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.11.0.tgz", + "integrity": "sha512-yimw99teuaXVWsBcPO1Ais02kwJ1jmNA1KxE7ng0aT7ndr1pT1wqj0OJnsYVGKKlc4QJai86l/025L6z8CljOg==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "7.10.0", - "@typescript-eslint/types": "7.10.0", - "@typescript-eslint/typescript-estree": "7.10.0", - "@typescript-eslint/visitor-keys": "7.10.0", + "@typescript-eslint/scope-manager": "7.11.0", + "@typescript-eslint/types": "7.11.0", + "@typescript-eslint/typescript-estree": "7.11.0", + "@typescript-eslint/visitor-keys": "7.11.0", "debug": "^4.3.4" }, "engines": { @@ -1544,13 +1544,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "7.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.10.0.tgz", - "integrity": "sha512-7L01/K8W/VGl7noe2mgH0K7BE29Sq6KAbVmxurj8GGaPDZXPr8EEQ2seOeAS+mEV9DnzxBQB6ax6qQQ5C6P4xg==", + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.11.0.tgz", + "integrity": "sha512-27tGdVEiutD4POirLZX4YzT180vevUURJl4wJGmm6TrQoiYwuxTIY98PBp6L2oN+JQxzE0URvYlzJaBHIekXAw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.10.0", - "@typescript-eslint/visitor-keys": "7.10.0" + "@typescript-eslint/types": "7.11.0", + "@typescript-eslint/visitor-keys": "7.11.0" }, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -1561,13 +1561,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "7.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.10.0.tgz", - "integrity": "sha512-D7tS4WDkJWrVkuzgm90qYw9RdgBcrWmbbRkrLA4d7Pg3w0ttVGDsvYGV19SH8gPR5L7OtcN5J1hTtyenO9xE9g==", + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.11.0.tgz", + "integrity": "sha512-WmppUEgYy+y1NTseNMJ6mCFxt03/7jTOy08bcg7bxJJdsM4nuhnchyBbE8vryveaJUf62noH7LodPSo5Z0WUCg==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "7.10.0", - "@typescript-eslint/utils": "7.10.0", + "@typescript-eslint/typescript-estree": "7.11.0", + "@typescript-eslint/utils": "7.11.0", "debug": "^4.3.4", "ts-api-utils": "^1.3.0" }, @@ -1588,9 +1588,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "7.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.10.0.tgz", - "integrity": "sha512-7fNj+Ya35aNyhuqrA1E/VayQX9Elwr8NKZ4WueClR3KwJ7Xx9jcCdOrLW04h51de/+gNbyFMs+IDxh5xIwfbNg==", + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.11.0.tgz", + "integrity": "sha512-MPEsDRZTyCiXkD4vd3zywDCifi7tatc4K37KqTprCvaXptP7Xlpdw0NR2hRJTetG5TxbWDB79Ys4kLmHliEo/w==", "dev": true, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -1601,13 +1601,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "7.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.10.0.tgz", - "integrity": "sha512-LXFnQJjL9XIcxeVfqmNj60YhatpRLt6UhdlFwAkjNc6jSUlK8zQOl1oktAP8PlWFzPQC1jny/8Bai3/HPuvN5g==", + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.11.0.tgz", + "integrity": "sha512-cxkhZ2C/iyi3/6U9EPc5y+a6csqHItndvN/CzbNXTNrsC3/ASoYQZEt9uMaEp+xFNjasqQyszp5TumAVKKvJeQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.10.0", - "@typescript-eslint/visitor-keys": "7.10.0", + "@typescript-eslint/types": "7.11.0", + "@typescript-eslint/visitor-keys": "7.11.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -1653,15 +1653,15 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "7.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.10.0.tgz", - "integrity": "sha512-olzif1Fuo8R8m/qKkzJqT7qwy16CzPRWBvERS0uvyc+DHd8AKbO4Jb7kpAvVzMmZm8TrHnI7hvjN4I05zow+tg==", + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.11.0.tgz", + "integrity": "sha512-xlAWwPleNRHwF37AhrZurOxA1wyXowW4PqVXZVUNCLjB48CqdPJoJWkrpH2nij9Q3Lb7rtWindtoXwxjxlKKCA==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "7.10.0", - "@typescript-eslint/types": "7.10.0", - "@typescript-eslint/typescript-estree": "7.10.0" + "@typescript-eslint/scope-manager": "7.11.0", + "@typescript-eslint/types": "7.11.0", + "@typescript-eslint/typescript-estree": "7.11.0" }, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -1675,12 +1675,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "7.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.10.0.tgz", - "integrity": "sha512-9ntIVgsi6gg6FIq9xjEO4VQJvwOqA3jaBFQJ/6TK5AvEup2+cECI6Fh7QiBxmfMHXU0V0J4RyPeOU1VDNzl9cg==", + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.11.0.tgz", + "integrity": "sha512-7syYk4MzjxTEk0g/w3iqtgxnFQspDJfn6QKD36xMuuhTzjcxY7F8EmBLnALjVyaOF1/bVocu3bS/2/F7rXrveQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.10.0", + "@typescript-eslint/types": "7.11.0", "eslint-visitor-keys": "^3.4.3" }, "engines": { @@ -6620,14 +6620,14 @@ } }, "node_modules/typescript-eslint": { - "version": "7.10.0", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-7.10.0.tgz", - "integrity": "sha512-thO8nyqptXdfWHQrMJJiJyftpW8aLmwRNs11xA8pSrXneoclFPstQZqXvDWuH1WNL4CHffqHvYUeCHTit6yfhQ==", + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-7.11.0.tgz", + "integrity": "sha512-ZKe3yHF/IS/kCUE4CGE3UgtK+Q7yRk1e9kwEI0rqm9XxMTd9P1eHe0LVVtrZ3oFuIQ2unJ9Xn0vTsLApzJ3aPw==", "dev": true, "dependencies": { - "@typescript-eslint/eslint-plugin": "7.10.0", - "@typescript-eslint/parser": "7.10.0", - "@typescript-eslint/utils": "7.10.0" + "@typescript-eslint/eslint-plugin": "7.11.0", + "@typescript-eslint/parser": "7.11.0", + "@typescript-eslint/utils": "7.11.0" }, "engines": { "node": "^18.18.0 || >=20.0.0" From 5e83a924a5c10da450194cc88c62910bb006527a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 3 Jun 2024 08:59:23 +0200 Subject: [PATCH 05/12] chore(deps): bump debug from 4.3.4 to 4.3.5 (#240) Bumps [debug](https://github.com/debug-js/debug) from 4.3.4 to 4.3.5. - [Release notes](https://github.com/debug-js/debug/releases) - [Commits](https://github.com/debug-js/debug/compare/4.3.4...4.3.5) --- updated-dependencies: - dependency-name: debug dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 74e1707..25b3401 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2508,9 +2508,9 @@ "dev": true }, "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==", "dependencies": { "ms": "2.1.2" }, From 3921178307dc358c9f55e01075e3188087838a95 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 3 Jun 2024 08:59:53 +0200 Subject: [PATCH 06/12] chore(deps-dev): bump prettier from 3.2.5 to 3.3.0 (#241) Bumps [prettier](https://github.com/prettier/prettier) from 3.2.5 to 3.3.0. - [Release notes](https://github.com/prettier/prettier/releases) - [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md) - [Commits](https://github.com/prettier/prettier/compare/3.2.5...3.3.0) --- updated-dependencies: - dependency-name: prettier dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 25b3401..1749692 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5108,9 +5108,9 @@ } }, "node_modules/prettier": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz", - "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.0.tgz", + "integrity": "sha512-J9odKxERhCQ10OC2yb93583f6UnYutOeiV5i0zEDS7UGTdUt0u+y8erxl3lBKvwo/JHyyoEdXjwp4dke9oyZ/g==", "dev": true, "bin": { "prettier": "bin/prettier.cjs" From 835d82a4fd115ca4e5c600018899a1d98b03534a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 3 Jun 2024 09:00:20 +0200 Subject: [PATCH 07/12] chore(deps-dev): bump @types/node from 20.12.12 to 20.14.0 (#242) Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 20.12.12 to 20.14.0. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1749692..dec785e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1434,9 +1434,9 @@ "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==" }, "node_modules/@types/node": { - "version": "20.12.12", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.12.tgz", - "integrity": "sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==", + "version": "20.14.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.0.tgz", + "integrity": "sha512-5cHBxFGJx6L4s56Bubp4fglrEpmyJypsqI6RgzMfBHWUJQGWAAi8cWcgetEbZXHYXo9C2Fa4EEds/uSyS4cxmA==", "dependencies": { "undici-types": "~5.26.4" } From bf4c5533664d14bc17267482f6cdd3c2736f2b88 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 3 Jun 2024 09:00:38 +0200 Subject: [PATCH 08/12] chore(deps-dev): bump @eslint/js from 9.3.0 to 9.4.0 (#243) Bumps [@eslint/js](https://github.com/eslint/eslint/tree/HEAD/packages/js) from 9.3.0 to 9.4.0. - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/commits/v9.4.0/packages/js) --- updated-dependencies: - dependency-name: "@eslint/js" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index dec785e..3125087 100644 --- a/package-lock.json +++ b/package-lock.json @@ -156,9 +156,9 @@ } }, "node_modules/@eslint/js": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.3.0.tgz", - "integrity": "sha512-niBqk8iwv96+yuTwjM6bWg8ovzAPF9qkICsGtcoa5/dmqcEMfdwNAX7+/OHcJHc7wj7XqPxH98oAHytFYlw6Sw==", + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.4.0.tgz", + "integrity": "sha512-fdI7VJjP3Rvc70lC4xkFXHB0fiPeojiL1PxVG6t1ZvXQrarj893PweuBTujxDUFk0Fxj4R7PIIAZ/aiiyZPZcg==", "dev": true, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" From 45326551bd1f06606243e547cb83899841480b1e Mon Sep 17 00:00:00 2001 From: Miguel Beltran Date: Wed, 5 Jun 2024 08:58:55 +0200 Subject: [PATCH 09/12] feat: Part of #220 add internal runWithBreadcrumbsAsync function (#245) * feat: Part of #220 add internal runWithBreadcrumbsAsync function * prettier --- lib/raygun.breadcrumbs.ts | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/lib/raygun.breadcrumbs.ts b/lib/raygun.breadcrumbs.ts index 84aca34..5d346e6 100644 --- a/lib/raygun.breadcrumbs.ts +++ b/lib/raygun.breadcrumbs.ts @@ -93,7 +93,9 @@ export function addBreadcrumb( lineNumber: callsite?.lineNumber || undefined, }; - debug(`[raygun.breadcrumbs.ts] recorded breadcrumb: ${internalCrumb}`); + debug( + `[raygun.breadcrumbs.ts] recorded breadcrumb: ${internalCrumb.message}`, + ); crumbs.push(internalCrumb); } @@ -127,6 +129,18 @@ export function runWithBreadcrumbs(f: () => void, store: Breadcrumb[] = []) { asyncLocalStorage.run(store, f); } +export function runWithBreadcrumbsAsync( + f: () => Promise, + store: Breadcrumb[] = [], +): Promise { + if (!asyncLocalStorage) { + return f(); + } + + debug("[raygun.breadcrumbs.ts] running async function with breadcrumbs"); + return asyncLocalStorage.run(store, f); +} + export function clear() { if (!asyncLocalStorage) { return; From dcf2dc454add01fb401549d58dcc747a06a0fd0b Mon Sep 17 00:00:00 2001 From: Miguel Beltran Date: Fri, 7 Jun 2024 07:24:19 +0200 Subject: [PATCH 10/12] fix: #137 Report unhandled rejection promises automatically (#232) * fix: unhandled rejection cleanup code * update jsdoc --- lib/raygun.ts | 21 ++++++++++++--- test/raygun_uncaught_exception_test.js | 3 +++ test/raygun_unhandled_rejection_app.js | 19 +++++++++++++ test/raygun_unhandled_rejection_test.js | 36 +++++++++++++++++++++++++ 4 files changed, 75 insertions(+), 4 deletions(-) create mode 100644 test/raygun_unhandled_rejection_app.js create mode 100644 test/raygun_unhandled_rejection_test.js diff --git a/lib/raygun.ts b/lib/raygun.ts index e79accd..b4d3cd4 100644 --- a/lib/raygun.ts +++ b/lib/raygun.ts @@ -349,19 +349,32 @@ class Raygun { return; } + // Handles uncaught exceptions, e.g. missing try/catch on a throw. process.on("uncaughtExceptionMonitor", (e) => { - this.sendSync(e); + this.sendSync(e, ["uncaughtException"]); + }); + + // Handles uncaught Promise rejections, e.g. missing .catch(...) on a Promise. + // Unhandled Promise rejections are not caught by the "uncaughtExceptionMonitor". + process.on("unhandledRejection", (reason, promise) => { + if (reason instanceof Error || typeof reason === "string") { + this.sendSync(reason, ["unhandledRejection"]); + } else { + // `reason` type is unknown, wrap in String + this.sendSync(`Unhandled Rejection: ${reason}`, ["unhandledRejection"]); + } }); } /** * Send error using synchronous transport. - * Only used to report uncaught exceptions. + * Only used internally to report uncaught exceptions or unhandled promises. * @param exception error to report + * @param tags optional tags * @private */ - private sendSync(exception: Error | string): void { - const result = this.buildSendOptions(exception); + private sendSync(exception: Error | string, tags?: Tag[]): void { + const result = this.buildSendOptions(exception, null, undefined, tags); if (result.valid) { if (result.skip) { diff --git a/test/raygun_uncaught_exception_test.js b/test/raygun_uncaught_exception_test.js index 36ef059..dc6382a 100644 --- a/test/raygun_uncaught_exception_test.js +++ b/test/raygun_uncaught_exception_test.js @@ -4,6 +4,7 @@ var childProcess = require("child_process"); var test = require("tap").test; var { makeClientWithMockServer } = require("./utils"); +const { deepEqual } = require("node:assert"); test("reporting uncaught exceptions", async function (t) { const testEnvironment = await makeClientWithMockServer(); @@ -29,5 +30,7 @@ test("reporting uncaught exceptions", async function (t) { testEnvironment.stop(); t.equal(message.details.error.message, "test"); + // Ensure that the error was reported by the uncaughtExceptionMonitor listener + deepEqual(message.details.tags, ["uncaughtException"]); t.end(); }); diff --git a/test/raygun_unhandled_rejection_app.js b/test/raygun_unhandled_rejection_app.js new file mode 100644 index 0000000..378a48e --- /dev/null +++ b/test/raygun_unhandled_rejection_app.js @@ -0,0 +1,19 @@ +const Raygun = require("../"); +const API_KEY = process.env.RAYGUN_API_KEY; +const API_PORT = process.env.RAYGUN_API_PORT; + +new Raygun.Client().init({ + apiKey: API_KEY, + host: "localhost", + port: API_PORT, + useSSL: false, + reportUncaughtExceptions: true, +}); + +// Run a Promise without .catch() +new Promise(() => { + // Cause an error + throw new Error("test"); +}).then(() => { + // Should not be reached +}); diff --git a/test/raygun_unhandled_rejection_test.js b/test/raygun_unhandled_rejection_test.js new file mode 100644 index 0000000..f7a0ede --- /dev/null +++ b/test/raygun_unhandled_rejection_test.js @@ -0,0 +1,36 @@ +const util = require("util"); +var childProcess = require("child_process"); + +var test = require("tap").test; + +var { makeClientWithMockServer } = require("./utils"); +const { deepEqual } = require("node:assert"); + +test("reporting uncaught exceptions", async function (t) { + const testEnvironment = await makeClientWithMockServer(); + const messagePromise = testEnvironment.nextRequest(); + + await util + .promisify(childProcess.exec)( + "node -r ts-node/register ./raygun_unhandled_rejection_app.js", + { + cwd: __dirname, + stdio: "inherit", + env: { + ...process.env, + RAYGUN_API_KEY: "test", + RAYGUN_API_PORT: testEnvironment.address.port, + }, + }, + ) + .catch(() => {}); + + const message = await messagePromise; + + testEnvironment.stop(); + + t.equal(message.details.error.message, "test"); + // Ensure that the error was reported by the unhandledRejection listener + deepEqual(message.details.tags, ["unhandledRejection"]); + t.end(); +}); From 19e87d69d1ab63199568422d0521ee6b063cb114 Mon Sep 17 00:00:00 2001 From: Miguel Beltran Date: Tue, 11 Jun 2024 06:37:35 +0200 Subject: [PATCH 11/12] Prepare release 1.1.0 (#246) --- CHANGELOG.md | 12 ++++++++++++ package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 037c8b6..0ad3ffe 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,15 @@ +## 1.1.0 + +- feat: Part of #220 add internal runWithBreadcrumbsAsync function (#245) (2024-06-05) +- fix: onBeforeSend allows to skip messages (#231) (2024-05-28) +- chore(deps-dev): bump @eslint/js from 9.3.0 to 9.4.0 (#243) (2024-06-03) +- chore(deps-dev): bump @types/node from 20.12.12 to 20.14.0 (#242) (2024-06-03) +- chore(deps-dev): bump prettier from 3.2.5 to 3.3.0 (#241) (2024-06-03) +- chore(deps): bump debug from 4.3.4 to 4.3.5 (#240) (2024-06-03) +- chore(deps-dev): bump typescript-eslint from 7.10.0 to 7.11.0 (#239) (2024-06-03) +- chore(deps-dev): bump tap from 18.8.0 to 19.0.2 (#237) (2024-05-28) +- chore(deps-dev): bump typescript-eslint from 7.9.0 to 7.10.0 (2024-05-27) + ## 1.0.0 - feat: #219 Better Send parameters (#221) (2024-05-17) diff --git a/package-lock.json b/package-lock.json index 3125087..85e590c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "raygun", - "version": "1.0.0", + "version": "1.1.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "raygun", - "version": "1.0.0", + "version": "1.1.0", "dependencies": { "@types/express": "^4.17.21", "debug": "^4.3.4", diff --git a/package.json b/package.json index acf5149..d08d6ca 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "raygun", "description": "Raygun package for Node.js, written in TypeScript", - "version": "1.0.0", + "version": "1.1.0", "homepage": "https://github.com/MindscapeHQ/raygun4node", "author": { "name": "Raygun", From 2b05cf7dc34fe3764356d8d05b6384bd177cbccc Mon Sep 17 00:00:00 2001 From: Miguel Beltran Date: Wed, 12 Jun 2024 11:11:43 +0200 Subject: [PATCH 12/12] fix: Fixes on release candidate 1.1.0 (#253) * improve comments * apply text suggestion --- examples/express-sample/views/index.ejs | 2 +- test/raygun_uncaught_exception_app.js | 1 + test/raygun_uncaught_exception_test.js | 4 ++++ test/raygun_unhandled_rejection_test.js | 4 ++++ 4 files changed, 10 insertions(+), 1 deletion(-) diff --git a/examples/express-sample/views/index.ejs b/examples/express-sample/views/index.ejs index da0c4e5..966806b 100644 --- a/examples/express-sample/views/index.ejs +++ b/examples/express-sample/views/index.ejs @@ -12,7 +12,7 @@ Send a custom error
Throw an error diff --git a/test/raygun_uncaught_exception_app.js b/test/raygun_uncaught_exception_app.js index f82f1bf..d0f6291 100644 --- a/test/raygun_uncaught_exception_app.js +++ b/test/raygun_uncaught_exception_app.js @@ -10,4 +10,5 @@ new Raygun.Client().init({ reportUncaughtExceptions: true, }); +// Throw uncaught exception, should be captured by Raygun client throw new Error("test"); diff --git a/test/raygun_uncaught_exception_test.js b/test/raygun_uncaught_exception_test.js index dc6382a..ea2241c 100644 --- a/test/raygun_uncaught_exception_test.js +++ b/test/raygun_uncaught_exception_test.js @@ -10,6 +10,9 @@ test("reporting uncaught exceptions", async function (t) { const testEnvironment = await makeClientWithMockServer(); const messagePromise = testEnvironment.nextRequest(); + // Launch raygun_uncaught_exception_app.js which throws an exception + // which should be caught by the Raygun client automatically, + // and the error report is available in the messagePromise. await util .promisify(childProcess.exec)( "node -r ts-node/register ./raygun_uncaught_exception_app.js", @@ -25,6 +28,7 @@ test("reporting uncaught exceptions", async function (t) { ) .catch(() => {}); + // Captured error report is available const message = await messagePromise; testEnvironment.stop(); diff --git a/test/raygun_unhandled_rejection_test.js b/test/raygun_unhandled_rejection_test.js index f7a0ede..8a83b64 100644 --- a/test/raygun_unhandled_rejection_test.js +++ b/test/raygun_unhandled_rejection_test.js @@ -10,6 +10,9 @@ test("reporting uncaught exceptions", async function (t) { const testEnvironment = await makeClientWithMockServer(); const messagePromise = testEnvironment.nextRequest(); + // Launch raygun_unhandled_rejection_app.js which has an unhandled Promise rejection + // and should be caught by the Raygun client automatically, + // then the error report is available in the messagePromise. await util .promisify(childProcess.exec)( "node -r ts-node/register ./raygun_unhandled_rejection_app.js", @@ -25,6 +28,7 @@ test("reporting uncaught exceptions", async function (t) { ) .catch(() => {}); + // Captured error report is available const message = await messagePromise; testEnvironment.stop();