diff --git a/HISTORY.md b/HISTORY.md index 8c81cb3..2a4d465 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -1,5 +1,10 @@ # History +## v11.10.0 2023 December 21 + +- Rewrote `errorEqual` to better support empty checks, code checks, and contain checks +- Updated dependencies, [base files](https://github.com/bevry/base), and [editions](https://editions.bevry.me) using [boundation](https://github.com/bevry/boundation) + ## v11.9.0 2023 December 5 - Updated dependencies, [base files](https://github.com/bevry/base), and [editions](https://editions.bevry.me) using [boundation](https://github.com/bevry/boundation) diff --git a/LICENSE.md b/LICENSE.md index 8be95d4..df08580 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -4,7 +4,7 @@ Unless stated otherwise all works are: - + and licensed under: diff --git a/README.md b/README.md index 39d8661..b75e518 100644 --- a/README.md +++ b/README.md @@ -51,14 +51,14 @@ Common utilities and helpers to make testing assertions easier

Deno

``` typescript -import * as pkg from 'https://unpkg.com/assert-helpers@^11.9.0/edition-deno/index.ts' +import * as pkg from 'https://unpkg.com/assert-helpers@^11.10.0/edition-deno/index.ts' ```

Skypack

``` html ``` @@ -66,7 +66,7 @@ import * as pkg from 'https://unpkg.com/assert-helpers@^11.9.0/edition-deno/inde ``` html ``` @@ -74,7 +74,7 @@ import * as pkg from 'https://unpkg.com/assert-helpers@^11.9.0/edition-deno/inde ``` html ``` @@ -85,10 +85,10 @@ import * as pkg from 'https://unpkg.com/assert-helpers@^11.9.0/edition-deno/inde @@ -121,7 +121,7 @@ import * as pkg from 'https://unpkg.com/assert-helpers@^11.9.0/edition-deno/inde These amazing people are maintaining this project: - +

Sponsors

@@ -140,7 +140,7 @@ No sponsors yet! Will you be the first? These amazing people have contributed code to this project: - + Discover how you can contribute by heading on over to the CONTRIBUTING.md file. @@ -153,7 +153,7 @@ These amazing people have contributed code to this project: Unless stated otherwise all works are: - + and licensed under: diff --git a/package-lock.json b/package-lock.json index f0f8874..aa4a1e4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,35 +1,34 @@ { "name": "assert-helpers", - "version": "11.9.0", + "version": "11.10.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "assert-helpers", - "version": "11.9.0", + "version": "11.10.0", "license": "Artistic-2.0", "dependencies": { "@bevry/ansi": "^6.7.0", - "editions": "^6.18.0", + "editions": "^6.19.0", "errlop": "^8.2.0" }, "devDependencies": { - "@bevry/update-contributors": "^1.23.0", - "@types/node": "^20.10.3", - "@typescript-eslint/eslint-plugin": "^6.13.2", - "@typescript-eslint/parser": "^6.13.2", - "eslint": "^8.55.0", - "eslint-config-bevry": "^5.2.0", + "@types/node": "^20.10.5", + "@typescript-eslint/eslint-plugin": "^6.15.0", + "@typescript-eslint/parser": "^6.15.0", + "eslint": "^8.56.0", + "eslint-config-bevry": "^5.3.0", "eslint-config-prettier": "^9.1.0", - "eslint-plugin-prettier": "^5.0.1", - "filedirname": "^3.1.0", - "kava": "^7.4.0", - "make-deno-edition": "^2.0.1", - "prettier": "^3.1.0", + "eslint-plugin-prettier": "^5.1.0", + "filedirname": "^3.2.0", + "kava": "^7.5.0", + "make-deno-edition": "^2.1.0", + "prettier": "^3.1.1", "projectz": "^3.4.0", "typedoc": "^0.25.4", - "typescript": "5.3.2", - "valid-directory": "^4.6.0", + "typescript": "5.3.3", + "valid-directory": "^4.7.0", "valid-module": "^2.6.0" }, "engines": { @@ -75,12 +74,12 @@ } }, "node_modules/@bevry/fs-accessible": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@bevry/fs-accessible/-/fs-accessible-2.2.0.tgz", - "integrity": "sha512-LfwU96cE4/7BCx9cwiWsT/1773zS0Z1NCamMF7vnLFxP6nwnCjRSxUedzGDF942WkuEaENpUdAAl/o9TedVWXw==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@bevry/fs-accessible/-/fs-accessible-2.3.0.tgz", + "integrity": "sha512-B3toe0GoyVzQpRMpQ3DRIOaA3GiBh2GAkjsiVycYs7E1m2rg+h0NvUWmIHNnOGiWOuFY1vuB2fO9Gf4GW909TQ==", "dev": true, "dependencies": { - "editions": "^6.16.0" + "editions": "^6.19.0" }, "engines": { "node": ">=4" @@ -90,30 +89,15 @@ } }, "node_modules/@bevry/fs-list": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@bevry/fs-list/-/fs-list-2.3.0.tgz", - "integrity": "sha512-n2Y9m6Zip/1Q4pz8TSUhLqdQPyA0luOMbX1SQrnguM9KEdikymyl2iOoHboBTNTbO5hH+KfxhP2KFz2TtNOByg==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@bevry/fs-list/-/fs-list-2.4.0.tgz", + "integrity": "sha512-GPIqbxvMXWr+8183qdO+c3xW08n2qZO7/tmfzrwyedD3pPrsGwhj6eFBUaxWhrmBKJDAkdcN8gUDx7TsUp996A==", "dev": true, "dependencies": { - "@bevry/fs-accessible": "^2.2.0", - "editions": "^6.16.0", - "errlop": "^7.4.0", - "version-compare": "^3.4.0" - }, - "engines": { - "node": ">=4" - }, - "funding": { - "url": "https://bevry.me/fund" - } - }, - "node_modules/@bevry/fs-list/node_modules/errlop": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/errlop/-/errlop-7.5.0.tgz", - "integrity": "sha512-a+Gfi8cGPEydVJ61AAflAldvShSW1zoELe39O6fOOi2QBCC9/+kIaNphyg6BIEXZ6fTSvEJBwDG6OeBYiXjZwg==", - "dev": true, - "dependencies": { - "editions": "^6.16.0" + "@bevry/fs-accessible": "^2.3.0", + "editions": "^6.19.0", + "errlop": "^8.2.0", + "version-compare": "^3.8.0" }, "engines": { "node": ">=4" @@ -123,30 +107,15 @@ } }, "node_modules/@bevry/fs-mkdirp": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@bevry/fs-mkdirp/-/fs-mkdirp-1.3.0.tgz", - "integrity": "sha512-xw9Q/p5B/TytBiALokrhED4KyUqDO97rXtG9vU8kE4t4mKV+AkH87DBE9c/CVxuWtOe+ZOv+T6BadgfYvWdBHA==", - "dev": true, - "dependencies": { - "@bevry/fs-accessible": "^2.2.0", - "editions": "^6.16.0", - "errlop": "^7.4.0", - "version-compare": "^3.4.0" - }, - "engines": { - "node": ">=4" - }, - "funding": { - "url": "https://bevry.me/fund" - } - }, - "node_modules/@bevry/fs-mkdirp/node_modules/errlop": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/errlop/-/errlop-7.5.0.tgz", - "integrity": "sha512-a+Gfi8cGPEydVJ61AAflAldvShSW1zoELe39O6fOOi2QBCC9/+kIaNphyg6BIEXZ6fTSvEJBwDG6OeBYiXjZwg==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@bevry/fs-mkdirp/-/fs-mkdirp-1.4.0.tgz", + "integrity": "sha512-Bqf+31YadlF+aW4a26dz1zsgvkndf36XuLZOI9LpMfum1WHTqyUx3bLdt59DRqmwaw+2L/Vb/rpuycCKMv89SA==", "dev": true, "dependencies": { - "editions": "^6.16.0" + "@bevry/fs-accessible": "^2.3.0", + "editions": "^6.19.0", + "errlop": "^8.2.0", + "version-compare": "^3.8.0" }, "engines": { "node": ">=4" @@ -156,29 +125,14 @@ } }, "node_modules/@bevry/fs-read": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@bevry/fs-read/-/fs-read-1.3.0.tgz", - "integrity": "sha512-gv8HALfji3xhGot7dV6754HXitIox2Mg34qo0t8hX3biT/4pLf11a7IWawLOFsIIR2lJGi6dgsHY+N2Kc15CVw==", - "dev": true, - "dependencies": { - "@bevry/fs-accessible": "^2.2.0", - "editions": "^6.16.0", - "errlop": "^7.4.0" - }, - "engines": { - "node": ">=4" - }, - "funding": { - "url": "https://bevry.me/fund" - } - }, - "node_modules/@bevry/fs-read/node_modules/errlop": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/errlop/-/errlop-7.5.0.tgz", - "integrity": "sha512-a+Gfi8cGPEydVJ61AAflAldvShSW1zoELe39O6fOOi2QBCC9/+kIaNphyg6BIEXZ6fTSvEJBwDG6OeBYiXjZwg==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@bevry/fs-read/-/fs-read-1.4.0.tgz", + "integrity": "sha512-oNohxiOof2SvRJ8d9WqATWAeuNplb+BKhCknvPzU5ZcxmylZPwhodpGMpxYOUjvi2UzgumrVA7NLRGB1XgMbYg==", "dev": true, "dependencies": { - "editions": "^6.16.0" + "@bevry/fs-accessible": "^2.3.0", + "editions": "^6.19.0", + "errlop": "^8.2.0" }, "engines": { "node": ">=4" @@ -188,13 +142,13 @@ } }, "node_modules/@bevry/fs-readable": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@bevry/fs-readable/-/fs-readable-2.2.0.tgz", - "integrity": "sha512-GsB2lXQ3VrCerwoOraJNbruJ+QeekSwWr7gV0ShIcxH5VLwBldN8PbRyJiSf8MkMZXzkfmyGu3iRI68VQbWnlg==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@bevry/fs-readable/-/fs-readable-2.3.0.tgz", + "integrity": "sha512-+bLwxu49AcWtTh+5F0Sss1YJVp+JUMl8Z9ibgNvincfoZVR4Gqn3/+zedpA8eIPTb8WBMs26IF9FeWK47u72nQ==", "dev": true, "dependencies": { - "@bevry/fs-accessible": "^2.2.0", - "editions": "^6.16.0" + "@bevry/fs-accessible": "^2.3.0", + "editions": "^6.19.0" }, "engines": { "node": ">=4" @@ -204,30 +158,15 @@ } }, "node_modules/@bevry/fs-remove": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@bevry/fs-remove/-/fs-remove-1.3.0.tgz", - "integrity": "sha512-ootfOZOW3MVb3+QwNGHrwiHNG+MHCJOQRBIdAWB4R5IXp/bKx6g2yKRuvKAInRxDDcR0j3STbF8jqDUEZtdPzA==", - "dev": true, - "dependencies": { - "@bevry/fs-accessible": "^2.2.0", - "editions": "^6.16.0", - "errlop": "^7.4.0", - "version-compare": "^3.4.0" - }, - "engines": { - "node": ">=4" - }, - "funding": { - "url": "https://bevry.me/fund" - } - }, - "node_modules/@bevry/fs-remove/node_modules/errlop": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/errlop/-/errlop-7.5.0.tgz", - "integrity": "sha512-a+Gfi8cGPEydVJ61AAflAldvShSW1zoELe39O6fOOi2QBCC9/+kIaNphyg6BIEXZ6fTSvEJBwDG6OeBYiXjZwg==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@bevry/fs-remove/-/fs-remove-1.4.0.tgz", + "integrity": "sha512-S/4ZP/8qeCnWyzRqybcKkQRE+GkBWWlXDZChNJNDpR2Utr+7LEwoxqSp7sCbWOpbIqOH5ReAti1Sx25GcPou9Q==", "dev": true, "dependencies": { - "editions": "^6.16.0" + "@bevry/fs-accessible": "^2.3.0", + "editions": "^6.19.0", + "errlop": "^8.2.0", + "version-compare": "^3.8.0" }, "engines": { "node": ">=4" @@ -237,29 +176,14 @@ } }, "node_modules/@bevry/fs-unlink": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@bevry/fs-unlink/-/fs-unlink-1.3.0.tgz", - "integrity": "sha512-TfyEZdVdZvMV8XHo4EZl/aPLYTh+Faven/Uf4n3Qr4s3AxLbgRUMftJ7HzhDL1oluOAMui3dl8jt3n8IsV6gKw==", - "dev": true, - "dependencies": { - "@bevry/fs-accessible": "^2.2.0", - "editions": "^6.16.0", - "errlop": "^7.4.0" - }, - "engines": { - "node": ">=4" - }, - "funding": { - "url": "https://bevry.me/fund" - } - }, - "node_modules/@bevry/fs-unlink/node_modules/errlop": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/errlop/-/errlop-7.5.0.tgz", - "integrity": "sha512-a+Gfi8cGPEydVJ61AAflAldvShSW1zoELe39O6fOOi2QBCC9/+kIaNphyg6BIEXZ6fTSvEJBwDG6OeBYiXjZwg==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@bevry/fs-unlink/-/fs-unlink-1.4.0.tgz", + "integrity": "sha512-ZM5RUwwXLnp5j7Nl9pgko7n7x+OVBA1lSTAJTv2lqB+coe8baprvEbAl2e8agY65V+DwQXxzOwDk2Vz0fUREnQ==", "dev": true, "dependencies": { - "editions": "^6.16.0" + "@bevry/fs-accessible": "^2.3.0", + "editions": "^6.19.0", + "errlop": "^8.2.0" }, "engines": { "node": ">=4" @@ -269,30 +193,15 @@ } }, "node_modules/@bevry/fs-write": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@bevry/fs-write/-/fs-write-1.3.0.tgz", - "integrity": "sha512-7TSHZcKHmguFURQIXh6b6QXNacraK0bghvsWtbMS5elT24wAHmp2lv5Cls6p5wo8SPJaMdoDQoWjZKMRlehq8A==", - "dev": true, - "dependencies": { - "@bevry/fs-accessible": "^2.2.0", - "@bevry/fs-mkdirp": "^1.3.0", - "editions": "^6.16.0", - "errlop": "^7.4.0" - }, - "engines": { - "node": ">=4" - }, - "funding": { - "url": "https://bevry.me/fund" - } - }, - "node_modules/@bevry/fs-write/node_modules/errlop": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/errlop/-/errlop-7.5.0.tgz", - "integrity": "sha512-a+Gfi8cGPEydVJ61AAflAldvShSW1zoELe39O6fOOi2QBCC9/+kIaNphyg6BIEXZ6fTSvEJBwDG6OeBYiXjZwg==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@bevry/fs-write/-/fs-write-1.4.0.tgz", + "integrity": "sha512-KVNb3rsYz7f0f8VGuvBEmxL1ICus/Hv1welBhYrqEvluGexZHj0+l9E540/9NMaxbx+4SGmctGows882D+ePkQ==", "dev": true, "dependencies": { - "editions": "^6.16.0" + "@bevry/fs-accessible": "^2.3.0", + "@bevry/fs-mkdirp": "^1.4.0", + "editions": "^6.19.0", + "errlop": "^8.2.0" }, "engines": { "node": ">=4" @@ -301,84 +210,17 @@ "url": "https://bevry.me/fund" } }, - "node_modules/@bevry/github-api": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/@bevry/github-api/-/github-api-10.2.0.tgz", - "integrity": "sha512-jmTi25/DumuTbKBSZTrGTnZD2HFOfx6CaJYLxF7jZmlyKmifXPbXAt/Aia9CCAbDBmc1tI4KyN4YYiNEMuGaeg==", - "dev": true, - "dependencies": { - "@bevry/wait": "^2.1.0", - "simplytyped": "^3.3.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://bevry.me/fund" - } - }, - "node_modules/@bevry/github-contributors": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@bevry/github-contributors/-/github-contributors-4.2.0.tgz", - "integrity": "sha512-dsp9nnmsBdCD3k68pYmVPdskqDF9ZcriydbytIqnoR74Aji5vX0X5/CiLvB0Y6wOz+/tlztMDK2Q5fXMStNfzQ==", - "dev": true, - "dependencies": { - "@bevry/github-api": "^10.2.0", - "@bevry/github-repos": "^7.0.0", - "fellow": "^6.25.0", - "native-promise-pool": "^3.23.0", - "simplytyped": "^3.3.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://bevry.me/fund" - } - }, - "node_modules/@bevry/github-repos": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@bevry/github-repos/-/github-repos-7.0.0.tgz", - "integrity": "sha512-Io8uu1TJmfojkMeHEuURjPRbqHeIkHCzU5kxvaOYU9T09KTPCG7eF04E9rQlaFG7mI/Vov9cG3n1XUh43x2GpQ==", - "dev": true, - "dependencies": { - "@bevry/github-api": "^10.0.0", - "@bevry/list": "^1.7.0", - "native-promise-pool": "^3.19.0", - "simplytyped": "^3.3.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://bevry.me/fund" - } - }, "node_modules/@bevry/json": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/@bevry/json/-/json-1.10.0.tgz", - "integrity": "sha512-OdAglhqfMDeetuUqZHJe40+sKfWDSbamKimwTyv7eJu6ODWvVJNzi20V7RkgYmzeifODX0rNwCBmPn9b+j54MA==", - "dev": true, - "dependencies": { - "@bevry/fs-read": "^1.1.0", - "@bevry/fs-unlink": "^1.1.0", - "@bevry/fs-write": "^1.1.0", - "errlop": "^7.3.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://bevry.me/fund" - } - }, - "node_modules/@bevry/json/node_modules/errlop": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/errlop/-/errlop-7.5.0.tgz", - "integrity": "sha512-a+Gfi8cGPEydVJ61AAflAldvShSW1zoELe39O6fOOi2QBCC9/+kIaNphyg6BIEXZ6fTSvEJBwDG6OeBYiXjZwg==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@bevry/json/-/json-2.2.0.tgz", + "integrity": "sha512-lmP/7FP9cHY2PQhrbFTxkdzOlMpIjdfe9ognyEWO4WyJlGhCoz6jTEN7b5YINeyHgQ02iUZ78TuKrJHFu/OD3g==", "dev": true, "dependencies": { - "editions": "^6.16.0" + "@bevry/fs-read": "^1.4.0", + "@bevry/fs-unlink": "^1.4.0", + "@bevry/fs-write": "^1.4.0", + "editions": "^6.19.0", + "errlop": "^8.2.0" }, "engines": { "node": ">=4" @@ -387,41 +229,10 @@ "url": "https://bevry.me/fund" } }, - "node_modules/@bevry/list": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@bevry/list/-/list-1.8.0.tgz", - "integrity": "sha512-qkLuLrM+AO2XDX87pySdRX31qXeB0jDBEL0PfY+LJSV56QhfDS1PGrqkCz4Ux+/eq/PfiQ/2hQhNgOHGb2HvSw==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://bevry.me/fund" - } - }, - "node_modules/@bevry/update-contributors": { - "version": "1.23.0", - "resolved": "https://registry.npmjs.org/@bevry/update-contributors/-/update-contributors-1.23.0.tgz", - "integrity": "sha512-H3bWFAhZMa22IHMzlyE+JAou7n1ONsrs72Yv6Tt9V5+E/CYAltfQWz/8YJtu2/yEay3LqaW1FSAtvzQiXRu2yg==", - "dev": true, - "dependencies": { - "@bevry/github-contributors": "^4.1.0", - "@bevry/json": "^1.5.0" - }, - "bin": { - "update-contributors": "bin.cjs" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://bevry.me/fund" - } - }, "node_modules/@bevry/valid-filename": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@bevry/valid-filename/-/valid-filename-2.3.0.tgz", - "integrity": "sha512-9i36jNVzGffqFM1OukhUWs0L6P4ijPQBnOvYyiCjdSzd/QZlILOYz6EI+sS2GBjQi5Q9PMvkSRIlRxJAQ+lKAw==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@bevry/valid-filename/-/valid-filename-2.4.0.tgz", + "integrity": "sha512-MbLRTjQQA9PoHYGvFyhLv5ZGOfP1kowb5nh5aVflETvmq38WhR3oBGnALYfk7EX/IWZGXInH5/IjJ0Ydf13ABQ==", "dev": true, "bin": { "valid-filename": "bin.cjs" @@ -433,18 +244,6 @@ "url": "https://bevry.me/fund" } }, - "node_modules/@bevry/wait": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@bevry/wait/-/wait-2.3.0.tgz", - "integrity": "sha512-hTv3HveVtJHLVNiFa1C9Wkc4LfmeDZi/7ZBXC8gEHIPtDI7VbpVk/4doaUIA21vVf27qjqTgJRIgG5/uGVg9Rw==", - "dev": true, - "engines": { - "node": ">=4" - }, - "funding": { - "url": "https://bevry.me/fund" - } - }, "node_modules/@eslint-community/eslint-utils": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", @@ -493,9 +292,9 @@ } }, "node_modules/@eslint/js": { - "version": "8.55.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.55.0.tgz", - "integrity": "sha512-qQfo2mxH5yVom1kacMtZZJFVdW+E70mqHMJvVg6WTLo+VBuQJ4TojZlfWBjK0ve5BdEeNAVxOsl/nvNMpJOaJA==", + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz", + "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -596,9 +395,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.10.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.3.tgz", - "integrity": "sha512-XJavIpZqiXID5Yxnxv3RUDKTN5b81ddNC3ecsA0SoFXz/QU8OGBwZGMomiq0zw+uuqbL/krztv/DINAQ/EV4gg==", + "version": "20.10.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.5.tgz", + "integrity": "sha512-nNPsNE65wjMxEKI93yOP+NPGGBJz/PoN3kZsVLee0XMiJolxSekEVD8wRwBUBqkwc7UWop0edW50yrCQW4CyRw==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -611,16 +410,16 @@ "dev": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "6.13.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.13.2.tgz", - "integrity": "sha512-3+9OGAWHhk4O1LlcwLBONbdXsAhLjyCFogJY/cWy2lxdVJ2JrcTF2pTGMaLl2AE7U1l31n8Py4a8bx5DLf/0dQ==", + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.15.0.tgz", + "integrity": "sha512-j5qoikQqPccq9QoBAupOP+CBu8BaJ8BLjaXSioDISeTZkVO3ig7oSIKh3H+rEpee7xCXtWwSB4KIL5l6hWZzpg==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.13.2", - "@typescript-eslint/type-utils": "6.13.2", - "@typescript-eslint/utils": "6.13.2", - "@typescript-eslint/visitor-keys": "6.13.2", + "@typescript-eslint/scope-manager": "6.15.0", + "@typescript-eslint/type-utils": "6.15.0", + "@typescript-eslint/utils": "6.15.0", + "@typescript-eslint/visitor-keys": "6.15.0", "debug": "^4.3.4", "graphemer": "^1.4.0", "ignore": "^5.2.4", @@ -646,15 +445,15 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "6.13.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.13.2.tgz", - "integrity": "sha512-MUkcC+7Wt/QOGeVlM8aGGJZy1XV5YKjTpq9jK6r6/iLsGXhBVaGP5N0UYvFsu9BFlSpwY9kMretzdBH01rkRXg==", + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.15.0.tgz", + "integrity": "sha512-MkgKNnsjC6QwcMdlNAel24jjkEO/0hQaMDLqP4S9zq5HBAUJNQB6y+3DwLjX7b3l2b37eNAxMPLwb3/kh8VKdA==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "6.13.2", - "@typescript-eslint/types": "6.13.2", - "@typescript-eslint/typescript-estree": "6.13.2", - "@typescript-eslint/visitor-keys": "6.13.2", + "@typescript-eslint/scope-manager": "6.15.0", + "@typescript-eslint/types": "6.15.0", + "@typescript-eslint/typescript-estree": "6.15.0", + "@typescript-eslint/visitor-keys": "6.15.0", "debug": "^4.3.4" }, "engines": { @@ -674,13 +473,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "6.13.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.13.2.tgz", - "integrity": "sha512-CXQA0xo7z6x13FeDYCgBkjWzNqzBn8RXaE3QVQVIUm74fWJLkJkaHmHdKStrxQllGh6Q4eUGyNpMe0b1hMkXFA==", + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.15.0.tgz", + "integrity": "sha512-+BdvxYBltqrmgCNu4Li+fGDIkW9n//NrruzG9X1vBzaNK+ExVXPoGB71kneaVw/Jp+4rH/vaMAGC6JfMbHstVg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.13.2", - "@typescript-eslint/visitor-keys": "6.13.2" + "@typescript-eslint/types": "6.15.0", + "@typescript-eslint/visitor-keys": "6.15.0" }, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -691,13 +490,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "6.13.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.13.2.tgz", - "integrity": "sha512-Qr6ssS1GFongzH2qfnWKkAQmMUyZSyOr0W54nZNU1MDfo+U4Mv3XveeLZzadc/yq8iYhQZHYT+eoXJqnACM1tw==", + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.15.0.tgz", + "integrity": "sha512-CnmHKTfX6450Bo49hPg2OkIm/D/TVYV7jO1MCfPYGwf6x3GO0VU8YMO5AYMn+u3X05lRRxA4fWCz87GFQV6yVQ==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "6.13.2", - "@typescript-eslint/utils": "6.13.2", + "@typescript-eslint/typescript-estree": "6.15.0", + "@typescript-eslint/utils": "6.15.0", "debug": "^4.3.4", "ts-api-utils": "^1.0.1" }, @@ -718,9 +517,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "6.13.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.13.2.tgz", - "integrity": "sha512-7sxbQ+EMRubQc3wTfTsycgYpSujyVbI1xw+3UMRUcrhSy+pN09y/lWzeKDbvhoqcRbHdc+APLs/PWYi/cisLPg==", + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.15.0.tgz", + "integrity": "sha512-yXjbt//E4T/ee8Ia1b5mGlbNj9fB9lJP4jqLbZualwpP2BCQ5is6BcWwxpIsY4XKAhmdv3hrW92GdtJbatC6dQ==", "dev": true, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -731,13 +530,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "6.13.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.13.2.tgz", - "integrity": "sha512-SuD8YLQv6WHnOEtKv8D6HZUzOub855cfPnPMKvdM/Bh1plv1f7Q/0iFUDLKKlxHcEstQnaUU4QZskgQq74t+3w==", + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.15.0.tgz", + "integrity": "sha512-7mVZJN7Hd15OmGuWrp2T9UvqR2Ecg+1j/Bp1jXUEY2GZKV6FXlOIoqVDmLpBiEiq3katvj/2n2mR0SDwtloCew==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.13.2", - "@typescript-eslint/visitor-keys": "6.13.2", + "@typescript-eslint/types": "6.15.0", + "@typescript-eslint/visitor-keys": "6.15.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -758,17 +557,17 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "6.13.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.13.2.tgz", - "integrity": "sha512-b9Ptq4eAZUym4idijCRzl61oPCwwREcfDI8xGk751Vhzig5fFZR9CyzDz4Sp/nxSLBYxUPyh4QdIDqWykFhNmQ==", + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.15.0.tgz", + "integrity": "sha512-eF82p0Wrrlt8fQSRL0bGXzK5nWPRV2dYQZdajcfzOD9+cQz9O7ugifrJxclB+xVOvWvagXfqS4Es7vpLP4augw==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.12", "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.13.2", - "@typescript-eslint/types": "6.13.2", - "@typescript-eslint/typescript-estree": "6.13.2", + "@typescript-eslint/scope-manager": "6.15.0", + "@typescript-eslint/types": "6.15.0", + "@typescript-eslint/typescript-estree": "6.15.0", "semver": "^7.5.4" }, "engines": { @@ -783,12 +582,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "6.13.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.13.2.tgz", - "integrity": "sha512-OGznFs0eAQXJsp+xSd6k/O1UbFi/K/L7WjqeRoFE7vadjAF9y0uppXhYNQNEqygjou782maGClOoZwPqF0Drlw==", + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.15.0.tgz", + "integrity": "sha512-1zvtdC1a9h5Tb5jU9x3ADNXO9yjP8rXlaoChu0DQX40vf5ACVpYIVIZhIMZ6d5sDXH7vq4dsZBT1fEGj8D2n2w==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.13.2", + "@typescript-eslint/types": "6.15.0", "eslint-visitor-keys": "^3.4.1" }, "engines": { @@ -965,9 +764,9 @@ } }, "node_modules/badges": { - "version": "4.37.0", - "resolved": "https://registry.npmjs.org/badges/-/badges-4.37.0.tgz", - "integrity": "sha512-bEcUJp9MwKqX14G7Qh6ZKnn6Rtyouqh7AqVPvyO6co6QeNThqJfYhTX20zp27Y9xnM2NKOETGekrnNZg+yWinA==", + "version": "4.38.0", + "resolved": "https://registry.npmjs.org/badges/-/badges-4.38.0.tgz", + "integrity": "sha512-X1ESSh+HvznvX1sK3+XWX9GgOVN4C7cM1VM7TBQKzVav4KDiggunCRbuJ8JltT8zmOeBSvSpwLjnHUCHexzPQw==", "dev": true, "engines": { "node": ">=10" @@ -1270,13 +1069,13 @@ } }, "node_modules/eachr": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/eachr/-/eachr-7.1.0.tgz", - "integrity": "sha512-NgWwUEiyExmL+wemQfv/mEA+IPenNK946oVVvT9EE7qmClOgNkG6LJDEGPIwOto1dTHKN1QKbQrj8o0vZode9Q==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/eachr/-/eachr-7.2.0.tgz", + "integrity": "sha512-zv0Vtm0c0mvTvamW3duiGqadnu4w9oIpG7p8YLb2z7bDj5wGRvzNJTLyMeWiuOvYXj9kT411ox0UAa8fziUIeg==", "dev": true, "dependencies": { - "editions": "^6.18.0", - "typechecker": "^9.1.0" + "editions": "^6.19.0", + "typechecker": "^9.2.0" }, "engines": { "node": ">=4" @@ -1286,12 +1085,12 @@ } }, "node_modules/eachr/node_modules/typechecker": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/typechecker/-/typechecker-9.1.0.tgz", - "integrity": "sha512-LS34RIX9MNafFQ2y1QRR1FJx0FhUcogHqvIx6+coMxP04COTOj9QR1S9VN3nlvxNx3KJW+D1yqQ6rmrIMgBcRw==", + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/typechecker/-/typechecker-9.2.0.tgz", + "integrity": "sha512-WrIeSNqD6gW0Ss8OPHB0xHLyihoCsE57NZ5aLeYkLG75SOwP2uE9MtAnqKyca48X70vuJ3SNiSMRtop7Dnmg8A==", "dev": true, "dependencies": { - "editions": "^6.18.0" + "editions": "^6.19.0" }, "engines": { "node": ">=4" @@ -1301,11 +1100,11 @@ } }, "node_modules/editions": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/editions/-/editions-6.18.0.tgz", - "integrity": "sha512-0uS2LreqALKL6iIuxAbYcF830MN6mowfWfR4TeNAsJrDKS5q7kA7Ud2aPNexx2kFbSzdOlW61CF6jyVREQirjA==", + "version": "6.19.0", + "resolved": "https://registry.npmjs.org/editions/-/editions-6.19.0.tgz", + "integrity": "sha512-mJabiGaqoKWjgz0kqrVPzLBsk4sh11zcNXKFXBZ3eLwwHBWylz5OcrBrZRRaLPWoRpm9m428CLzKcituabUuFg==", "dependencies": { - "version-range": "^4.10.0" + "version-range": "^4.11.0" }, "engines": { "node": ">=4" @@ -1341,15 +1140,15 @@ } }, "node_modules/eslint": { - "version": "8.55.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.55.0.tgz", - "integrity": "sha512-iyUUAM0PCKj5QpwGfmCAG9XXbZCWsqP/eWAWrG/W0umvjuLRBECwSFdt+rCntju0xEH7teIABPwXpahftIaTdA==", + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz", + "integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.55.0", + "@eslint/js": "8.56.0", "@humanwhocodes/config-array": "^0.11.13", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", @@ -1396,12 +1195,12 @@ } }, "node_modules/eslint-config-bevry": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/eslint-config-bevry/-/eslint-config-bevry-5.2.0.tgz", - "integrity": "sha512-fST7kg8t2rYHwjO1dV6DoB4ufrYnm5h4ATWD/y1whfXUa+qy22V4yKQSGjoD/uQWmg+z38ny+fPARWxtymoOZQ==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/eslint-config-bevry/-/eslint-config-bevry-5.3.0.tgz", + "integrity": "sha512-Evt7Z+djPEMRG/IHA/BvwrzE6u50x8jicCJG0+HLBQjQ9pj4BTsQ9s3BOPScissv6+Klw1EC29hceWTs5EKj9A==", "dev": true, "dependencies": { - "version-clean": "^1.1.0" + "version-clean": "^1.6.0" }, "engines": { "node": ">=6" @@ -1423,9 +1222,9 @@ } }, "node_modules/eslint-plugin-prettier": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.0.1.tgz", - "integrity": "sha512-m3u5RnR56asrwV/lDC4GHorlW75DsFfmUcjfCYylTUs85dBRnB7VM6xG8eCMJdeDRnppzmxZVf1GEPJvl1JmNg==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.0.tgz", + "integrity": "sha512-hQc+2zbnMeXcIkg+pKZtVa+3Yqx4WY7SMkn1PLZ4VbBEU7jJIpVn9347P8BBhTbz6ne85aXvQf30kvexcqBeWw==", "dev": true, "dependencies": { "prettier-linter-helpers": "^1.0.0", @@ -1440,6 +1239,7 @@ "peerDependencies": { "@types/eslint": ">=8.0.0", "eslint": ">=8.0.0", + "eslint-config-prettier": "*", "prettier": ">=3.0.0" }, "peerDependenciesMeta": { @@ -1579,13 +1379,13 @@ } }, "node_modules/extendr": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/extendr/-/extendr-7.6.0.tgz", - "integrity": "sha512-+0M7LNytslOhAyPLTf7PVpxkXDuvM8+M7ldBgFAtRBS5d5IdCtW5KNgQKcOgzO6Psb8Lt/KPcOGvJSC9nXw8KA==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/extendr/-/extendr-7.7.0.tgz", + "integrity": "sha512-WNe03/We28gFV/oZv0T+B02oFMKp3iWTtnC9YkpDcKO8NhaUXSEif8R7CegYRTQ0Qfn2VVydT79hdhuW6NtLRQ==", "dev": true, "dependencies": { - "editions": "^6.18.0", - "typechecker": "^9.1.0" + "editions": "^6.19.0", + "typechecker": "^9.2.0" }, "engines": { "node": ">=4" @@ -1595,12 +1395,12 @@ } }, "node_modules/extendr/node_modules/typechecker": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/typechecker/-/typechecker-9.1.0.tgz", - "integrity": "sha512-LS34RIX9MNafFQ2y1QRR1FJx0FhUcogHqvIx6+coMxP04COTOj9QR1S9VN3nlvxNx3KJW+D1yqQ6rmrIMgBcRw==", + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/typechecker/-/typechecker-9.2.0.tgz", + "integrity": "sha512-WrIeSNqD6gW0Ss8OPHB0xHLyihoCsE57NZ5aLeYkLG75SOwP2uE9MtAnqKyca48X70vuJ3SNiSMRtop7Dnmg8A==", "dev": true, "dependencies": { - "editions": "^6.18.0" + "editions": "^6.19.0" }, "engines": { "node": ">=4" @@ -1662,9 +1462,9 @@ "dev": true }, "node_modules/fastq": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.16.0.tgz", + "integrity": "sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==", "dev": true, "dependencies": { "reusify": "^1.0.4" @@ -1695,14 +1495,14 @@ } }, "node_modules/filedirname": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/filedirname/-/filedirname-3.1.0.tgz", - "integrity": "sha512-sLtzIMoSiq+PRzMZnqRd3LcyHL2eh618I7fcGiIb3TFXoaHPLAB98CwUmjyq3EzcO+oS3J8ul45fa5IHB1rz1w==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/filedirname/-/filedirname-3.2.0.tgz", + "integrity": "sha512-2IrAgmBU8KKVz+p5aA31rlGkqsSE+A8dwQ9clGobxCdkVYxZ9fGZMO/K96CmL3U/T6dRLbXHl9oM7paL5hpTFw==", "dev": true, "dependencies": { "@bevry/file-url-to-path": "^1.0.1", - "editions": "^6.16.0", - "get-current-line": "^7.0.0" + "editions": "^6.19.0", + "get-current-line": "^7.1.0" }, "engines": { "node": ">=4" @@ -1766,12 +1566,12 @@ "dev": true }, "node_modules/get-cli-arg": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/get-cli-arg/-/get-cli-arg-8.3.0.tgz", - "integrity": "sha512-oZhUYqxhpFJyBX/Oc6I47cv0d0fNKJHMocUIXmnb2jwzXy+Yo0HIGOtsdx1z/I27Gwi12tDfG4Z6iTzd+eTSEA==", + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/get-cli-arg/-/get-cli-arg-8.4.0.tgz", + "integrity": "sha512-eWC8UMQgiy8RvXof1uFu1//2PZu8VlLzCuhqho/UfEEKXI+yvX8pv7/V3H2V3mVfa4U2s70MNoSmN0lGhnWSZQ==", "dev": true, "dependencies": { - "normalify": "^2.28.0" + "normalify": "^2.30.0" }, "engines": { "node": ">=8" @@ -1781,12 +1581,12 @@ } }, "node_modules/get-current-line": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/get-current-line/-/get-current-line-7.1.0.tgz", - "integrity": "sha512-s0pz6fWzYT+nxEw/n7+wOO/mqQ0DBnjMLA42Xg6P5iRmJoJMenw5XF0ML0OyqJ8q+Slc/FXlktQ6tQMkvXfeRg==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/get-current-line/-/get-current-line-7.2.0.tgz", + "integrity": "sha512-k/On1QP4i5+3ZeyISc7vodzmEypo43VIpk+agCEeee11uqGJ3OUiz/SzfJxHV+nitZF/29EwDPJvbngvNgW3uA==", "dev": true, "dependencies": { - "editions": "^6.16.0" + "editions": "^6.19.0" }, "engines": { "node": ">=4" @@ -1840,9 +1640,9 @@ } }, "node_modules/globals": { - "version": "13.23.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", - "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -2122,14 +1922,14 @@ "dev": true }, "node_modules/kava": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/kava/-/kava-7.4.0.tgz", - "integrity": "sha512-rUzEZSaWcD/xd5dctvayPepHxPn9jB8jLw97GD89QwtZscYcONxvx6iokDThLbS8DqnDhqxzHSei4X9UuJcY/g==", + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/kava/-/kava-7.5.0.tgz", + "integrity": "sha512-gqQiikuO2dcO1fSJhGvVYIRwAGg+1cEcyFA7IlluKNJf4IqXR/tPUS1nA9Kk/jlq9FQ1uXRZsHN5nwIxaztfig==", "dev": true, "dependencies": { - "editions": "^6.16.0", + "editions": "^6.19.0", "event-emitter-grouped": "^6.4.0", - "taskgroup": "^9.4.0" + "taskgroup": "^9.5.1" }, "engines": { "node": ">=4" @@ -2200,21 +2000,21 @@ "dev": true }, "node_modules/make-deno-edition": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/make-deno-edition/-/make-deno-edition-2.0.1.tgz", - "integrity": "sha512-JflMwb3prODWvenwY5kInUgbIyF5oyFnV3Cf6DyivyRFzajx3LU5Abmuz5PxzcuHkLjUcPJmyh8o/rK0RFuhkw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-deno-edition/-/make-deno-edition-2.1.0.tgz", + "integrity": "sha512-MNHn3nWVfyylYdabG0qPptAwF09Ln7zdEDMgmjyeGtv9ri1ToBkhvhhFiZkltsztNUwkoAVFmKR7aDKw6v9Gwg==", "dev": true, "dependencies": { - "@bevry/ansi": "^6.4.0", - "@bevry/fs-list": "^2.2.0", - "@bevry/fs-read": "^1.2.0", - "@bevry/fs-readable": "^2.1.0", - "@bevry/fs-remove": "^1.2.0", - "@bevry/fs-write": "^1.2.0", - "@bevry/json": "^2.0.0", + "@bevry/ansi": "^6.7.0", + "@bevry/fs-list": "^2.4.0", + "@bevry/fs-read": "^1.4.0", + "@bevry/fs-readable": "^2.3.0", + "@bevry/fs-remove": "^1.4.0", + "@bevry/fs-write": "^1.4.0", + "@bevry/json": "^2.2.0", "await-spawn": "^4.0.2", - "errlop": "^7.3.0", - "get-cli-arg": "^8.2.0" + "errlop": "^8.2.0", + "get-cli-arg": "^8.4.0" }, "bin": { "make-deno-edition": "bin.cjs" @@ -2226,40 +2026,6 @@ "url": "https://bevry.me/fund" } }, - "node_modules/make-deno-edition/node_modules/@bevry/json": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@bevry/json/-/json-2.1.0.tgz", - "integrity": "sha512-IxdlzfvDpFJECDuAbFxrHMT4U6LZeFr3GG4m1Y1+gY3U9NVipWBKE8pkiY6FzCfxgIVMOWeI9K2pYUJARgf53g==", - "dev": true, - "dependencies": { - "@bevry/fs-read": "^1.3.0", - "@bevry/fs-unlink": "^1.3.0", - "@bevry/fs-write": "^1.3.0", - "editions": "^6.16.0", - "errlop": "^7.4.0" - }, - "engines": { - "node": ">=4" - }, - "funding": { - "url": "https://bevry.me/fund" - } - }, - "node_modules/make-deno-edition/node_modules/errlop": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/errlop/-/errlop-7.5.0.tgz", - "integrity": "sha512-a+Gfi8cGPEydVJ61AAflAldvShSW1zoELe39O6fOOi2QBCC9/+kIaNphyg6BIEXZ6fTSvEJBwDG6OeBYiXjZwg==", - "dev": true, - "dependencies": { - "editions": "^6.16.0" - }, - "engines": { - "node": ">=4" - }, - "funding": { - "url": "https://bevry.me/fund" - } - }, "node_modules/marked": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz", @@ -2330,21 +2096,6 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, - "node_modules/native-promise-pool": { - "version": "3.25.0", - "resolved": "https://registry.npmjs.org/native-promise-pool/-/native-promise-pool-3.25.0.tgz", - "integrity": "sha512-FrtUErgKMbshbyL3iNMm2yRywBzf2vFc/rkLPmixWTnYUaeIALjF5Os9R/D12D6PA0L8vzqrhKjuDELzhsypxg==", - "dev": true, - "dependencies": { - "editions": "^6.16.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://bevry.me/fund" - } - }, "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", @@ -2352,9 +2103,9 @@ "dev": true }, "node_modules/normalify": { - "version": "2.29.0", - "resolved": "https://registry.npmjs.org/normalify/-/normalify-2.29.0.tgz", - "integrity": "sha512-mpJoTx/9AgQNJvZMqY6aOk6SXEk7lf7FG8XFR1+VW5k6z7Po17e0vSSAyGxoxrJtMncgC7OnDDoRZku6+KXwYg==", + "version": "2.30.0", + "resolved": "https://registry.npmjs.org/normalify/-/normalify-2.30.0.tgz", + "integrity": "sha512-LTG0JkblGt/MKrEDXmpqQsnK6ESsrRLYkeaB7M4eWSQO0XTFAiYWopEnOW2mQv1XHQ0ImQ9a/WiiPeYgGVr4wg==", "dev": true, "engines": { "node": ">=10" @@ -2555,9 +2306,9 @@ } }, "node_modules/prettier": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.1.0.tgz", - "integrity": "sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.1.1.tgz", + "integrity": "sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw==", "dev": true, "bin": { "prettier": "bin/prettier.cjs" @@ -2609,40 +2360,6 @@ "url": "https://bevry.me/fund" } }, - "node_modules/projectz/node_modules/@bevry/json": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@bevry/json/-/json-2.1.0.tgz", - "integrity": "sha512-IxdlzfvDpFJECDuAbFxrHMT4U6LZeFr3GG4m1Y1+gY3U9NVipWBKE8pkiY6FzCfxgIVMOWeI9K2pYUJARgf53g==", - "dev": true, - "dependencies": { - "@bevry/fs-read": "^1.3.0", - "@bevry/fs-unlink": "^1.3.0", - "@bevry/fs-write": "^1.3.0", - "editions": "^6.16.0", - "errlop": "^7.4.0" - }, - "engines": { - "node": ">=4" - }, - "funding": { - "url": "https://bevry.me/fund" - } - }, - "node_modules/projectz/node_modules/errlop": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/errlop/-/errlop-7.5.0.tgz", - "integrity": "sha512-a+Gfi8cGPEydVJ61AAflAldvShSW1zoELe39O6fOOi2QBCC9/+kIaNphyg6BIEXZ6fTSvEJBwDG6OeBYiXjZwg==", - "dev": true, - "dependencies": { - "editions": "^6.16.0" - }, - "engines": { - "node": ">=4" - }, - "funding": { - "url": "https://bevry.me/fund" - } - }, "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", @@ -2916,9 +2633,9 @@ } }, "node_modules/shiki": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.14.5.tgz", - "integrity": "sha512-1gCAYOcmCFONmErGTrS1fjzJLA7MGZmKzrBNX7apqSwhyITJg2O102uFzXUeBxNnEkDA9vHIKLyeKq0V083vIw==", + "version": "0.14.7", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.14.7.tgz", + "integrity": "sha512-dNPAPrxSc87ua2sKJ3H5dQ/6ZaY8RNnaAqK+t0eG7p0Soi2ydiqbGOTaZCqaYvA/uZYfS1LJnemt3Q+mSfcPCg==", "dev": true, "dependencies": { "ansi-sequence-parser": "^1.1.0", @@ -2933,15 +2650,6 @@ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true }, - "node_modules/simplytyped": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/simplytyped/-/simplytyped-3.3.0.tgz", - "integrity": "sha512-mz4RaNdKTZiaKXgi6P1k/cdsxV3gz+y1Wh2NXHWD40dExktLh4Xx/h6MFakmQWODZHj/2rKe59acacpL74ZhQA==", - "dev": true, - "peerDependencies": { - "typescript": ">=2.8.0" - } - }, "node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -3078,12 +2786,12 @@ } }, "node_modules/taskgroup/node_modules/unbounded": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/unbounded/-/unbounded-6.0.0.tgz", - "integrity": "sha512-N05pUkLl6Zg20qFA5oIis6/9df5hoZNEUJwq8OiIKvXQltCOzbrV7xUAviakWo6hLdpbtj023mGjtmobgFbZwA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/unbounded/-/unbounded-6.1.0.tgz", + "integrity": "sha512-Urd4W0lyK0wTs9T26m2DxZ+LCh/JGhAr9C9G4LojxRAaxnAiT0Uv5+qgbjAFAQQavD8hzgcKCwMldJfrPekWow==", "dev": true, "dependencies": { - "editions": "^6.16.0" + "editions": "^6.19.0" }, "engines": { "node": ">=4" @@ -3225,9 +2933,9 @@ } }, "node_modules/typescript": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.2.tgz", - "integrity": "sha512-6l+RyNy7oAHDfxC4FzSJcz9vnjTKxrLpDG5M2Vu4SHRVNg6xzqZp6LYSR9zjqQTu8DU/f5xwxUdADOkbrIX2gQ==", + "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", @@ -3283,12 +2991,12 @@ "dev": true }, "node_modules/valid-directory": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/valid-directory/-/valid-directory-4.6.0.tgz", - "integrity": "sha512-RmyZBz+X2IkJ1TP6VRYQm6CHQTTydLWv3h1PSdJ4l/MJc/5m9LGK7NdkJCfDaI/I3fHCMcRPiPVBD5HYOlsKYg==", + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/valid-directory/-/valid-directory-4.7.0.tgz", + "integrity": "sha512-DGxoViQM+cV9mZf2mGrMfcTcZNd5uJ2dOOitdgt1OmRjk3dkvLRilUoEFpeVtSgPga2xHtQzB9rcgZvSeIDh8A==", "dev": true, "dependencies": { - "@bevry/valid-filename": "^2.2.0", + "@bevry/valid-filename": "^2.4.0", "fdir": "^6.1.1" }, "bin": { @@ -3363,12 +3071,12 @@ } }, "node_modules/version-clean": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/version-clean/-/version-clean-1.5.0.tgz", - "integrity": "sha512-j9tqBUDyZT8hRbXFYnFNiBJrDSA6RxiUDJh74m8bZNkOPulAjwr8CpRFG//m47+S3y1mJEP3jHb6jipE5/Ye4w==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/version-clean/-/version-clean-1.6.0.tgz", + "integrity": "sha512-3U9p8b28wM3EwzokF22qNAVK3bArQU9SQYMoGv8e55MaTutMbndwdDnc5X2nQoZySZOSm/BykdUdZ/Zkm6R6pQ==", "dev": true, "dependencies": { - "editions": "^6.17.0" + "editions": "^6.18.0" }, "engines": { "node": ">=4" @@ -3378,12 +3086,12 @@ } }, "node_modules/version-compare": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/version-compare/-/version-compare-3.7.0.tgz", - "integrity": "sha512-Ot1s/jgiTEY7AVTMMwAnqeJJ011Ov89lJ656LJtKqgizJOJ563qT9VFWw6dIz6fDO+tR64UGly2kLurr/elPtA==", + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/version-compare/-/version-compare-3.8.0.tgz", + "integrity": "sha512-90rv+kdT8VyU45h6hOQeP9w8EuxHDdBOzHbHZZKrhw3zpaK3nJXgKDSCkV/OlUgvmt7vprCB1R9VuHrgjffpIg==", "dev": true, "dependencies": { - "editions": "^6.17.0" + "editions": "^6.18.0" }, "engines": { "node": ">=4" @@ -3393,9 +3101,9 @@ } }, "node_modules/version-range": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/version-range/-/version-range-4.10.0.tgz", - "integrity": "sha512-XzLpWlqsAHuyJ4zvLG+FSwvNjoZXqCXuw6RkeLNJImcsynnDNN7lmrD+BH8vAPpDEQUuv2C+gxBf1CfvDBqfOA==", + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/version-range/-/version-range-4.11.0.tgz", + "integrity": "sha512-h6ZOpIbN1Dk6hfDAmni/lOMncSUcIU1/6XsDc54kQe9/lMzzzv53ovpTr0CbNDJz2GLbmr/yyrQjD8vntyxXxg==", "engines": { "node": ">=4" }, diff --git a/package.json b/package.json index 8271ee3..24d9c53 100644 --- a/package.json +++ b/package.json @@ -1,10 +1,18 @@ { "title": "Assert Helpers", "name": "assert-helpers", - "version": "11.9.0", + "version": "11.10.0", + "license": "Artistic-2.0", "description": "Common utilities and helpers to make testing assertions easier", "homepage": "https://github.com/bevry/assert-helpers", - "license": "Artistic-2.0", + "funding": "https://bevry.me/fund", + "repository": { + "type": "git", + "url": "https://github.com/bevry/assert-helpers.git" + }, + "bugs": { + "url": "https://github.com/bevry/assert-helpers/issues" + }, "keywords": [ "assert", "browser", @@ -66,21 +74,13 @@ "npmPackageName": "assert-helpers" } }, - "funding": "https://bevry.me/fund", - "author": "2015+ Bevry Pty Ltd (http://bevry.me)", + "author": "Benjamin Lupton (https://balupton.com)", "maintainers": [ "Benjamin Lupton (https://github.com/balupton)" ], "contributors": [ "Benjamin Lupton (https://github.com/balupton)" ], - "bugs": { - "url": "https://github.com/bevry/assert-helpers/issues" - }, - "repository": { - "type": "git", - "url": "https://github.com/bevry/assert-helpers.git" - }, "engines": { "node": ">=4" }, @@ -111,7 +111,7 @@ } }, { - "description": "TypeScript compiled against ES2022 for Node.js 21 with Require for modules", + "description": "TypeScript compiled against ES2022 for Node.js 14 || 16 || 18 || 20 || 21 with Require for modules", "directory": "edition-es2022", "entry": "index.js", "tags": [ @@ -126,7 +126,7 @@ } }, { - "description": "TypeScript compiled against ES2017 for Node.js 12 with Require for modules", + "description": "TypeScript compiled against ES2017 for Node.js 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with Require for modules", "directory": "edition-es2017", "entry": "index.js", "tags": [ @@ -141,7 +141,7 @@ } }, { - "description": "TypeScript compiled against ES5 for Node.js 4 with Require for modules", + "description": "TypeScript compiled against ES5 for Node.js 4 || 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with Require for modules", "directory": "edition-es5", "entry": "index.js", "tags": [ @@ -156,7 +156,7 @@ } }, { - "description": "TypeScript compiled against ES2017 for Node.js 12 with Import for modules", + "description": "TypeScript compiled against ES2017 for Node.js 12 || 14 || 16 || 18 || 20 || 21 with Import for modules", "directory": "edition-es2017-esm", "entry": "index.js", "tags": [ @@ -216,26 +216,25 @@ "module": "edition-browsers/index.js", "dependencies": { "@bevry/ansi": "^6.7.0", - "editions": "^6.18.0", + "editions": "^6.19.0", "errlop": "^8.2.0" }, "devDependencies": { - "@bevry/update-contributors": "^1.23.0", - "@types/node": "^20.10.3", - "@typescript-eslint/eslint-plugin": "^6.13.2", - "@typescript-eslint/parser": "^6.13.2", - "eslint": "^8.55.0", - "eslint-config-bevry": "^5.2.0", + "@types/node": "^20.10.5", + "@typescript-eslint/eslint-plugin": "^6.15.0", + "@typescript-eslint/parser": "^6.15.0", + "eslint": "^8.56.0", + "eslint-config-bevry": "^5.3.0", "eslint-config-prettier": "^9.1.0", - "eslint-plugin-prettier": "^5.0.1", - "filedirname": "^3.1.0", - "kava": "^7.4.0", - "make-deno-edition": "^2.0.1", - "prettier": "^3.1.0", + "eslint-plugin-prettier": "^5.1.0", + "filedirname": "^3.2.0", + "kava": "^7.5.0", + "make-deno-edition": "^2.1.0", + "prettier": "^3.1.1", "projectz": "^3.4.0", "typedoc": "^0.25.4", - "typescript": "5.3.2", - "valid-directory": "^4.6.0", + "typescript": "5.3.3", + "valid-directory": "^4.7.0", "valid-module": "^2.6.0" }, "scripts": { @@ -249,8 +248,7 @@ "our:compile:edition-es5": "tsc --module commonjs --target ES5 --outDir ./edition-es5 --project tsconfig.json && ( test ! -d edition-es5/source || ( mv edition-es5/source edition-temp && rm -rf edition-es5 && mv edition-temp edition-es5 ) ) && printf '%s' '{\"type\": \"commonjs\"}' > edition-es5/package.json", "our:compile:edition-types": "tsc --emitDeclarationOnly --declaration --declarationMap --declarationDir ./edition-types --project tsconfig.json && ( test ! -d edition-types/source || ( mv edition-types/source edition-temp && rm -rf edition-types && mv edition-temp edition-types ) )", "our:deploy": "printf '%s\n' 'no need for this project'", - "our:meta": "npm run our:meta:contributors && npm run our:meta:docs && npm run our:meta:projectz", - "our:meta:contributors": "update-contributors", + "our:meta": "npm run our:meta:docs && npm run our:meta:projectz", "our:meta:docs": "npm run our:meta:docs:typedoc", "our:meta:docs:typedoc": "rm -rf ./docs && typedoc --exclude '**/+(*test*|node_modules)' --excludeExternals --out ./docs ./source", "our:meta:projectz": "projectz compile", @@ -263,8 +261,7 @@ "our:setup": "npm run our:setup:install", "our:setup:install": "npm install", "our:test": "npm run our:verify && npm test", - "our:verify": "npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:module && npm run our:verify:prettier", - "our:verify:directory": "valid-directory", + "our:verify": "npm run our:verify:eslint && npm run our:verify:module && npm run our:verify:prettier", "our:verify:eslint": "eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source", "our:verify:module": "valid-module", "our:verify:prettier": "prettier --write .", diff --git a/source/index.ts b/source/index.ts index 679bba3..f109cdf 100644 --- a/source/index.ts +++ b/source/index.ts @@ -359,6 +359,7 @@ export function notContains( } if (next) next() } + /** Checks to see if an error was as expected, if a failure occurs it will output detailed information */ export function errorEqual( actualError: any, @@ -366,38 +367,25 @@ export function errorEqual( testName = 'error equal assertion', next?: Errback ): void | never { - let expectedErrorMessage, actualErrorMessage - - if (expectedError) { - if (expectedError instanceof Error) { - expectedErrorMessage = expectedError.message - } else { - expectedErrorMessage = expectedError - expectedError = new Error(expectedErrorMessage) - } - } - - if (actualError) { - if (actualError instanceof Error) { - actualErrorMessage = actualError.message - } else { - actualErrorMessage = actualError - actualError = new Error(actualErrorMessage) - } - } - try { - if (actualErrorMessage && expectedErrorMessage) { - contains(actualErrorMessage, expectedErrorMessage, testName) + // needs to work with errlop codes, hence usage of stack, as errlop tostring doesn't include code for now, unfortunately + if (!actualError || !expectedError) { + equal(actualError || '', expectedError || '', testName + ' (empty check)') + } else if (actualError.code === (expectedError?.code || expectedError)) { + equal( + actualError.code, + expectedError?.code || expectedError, + testName + ' (.code check)' + ) } else { - equal(actualError, expectedError || null, testName) + contains( + actualError.toString(), + expectedError.toString(), + testName + ' (contains check)' + ) } } catch (checkError: any) { - logComparison( - actualError && (actualError.stack || actualError.message || actualError), - expectedErrorMessage, - checkError - ) + logComparison(actualError, expectedError, checkError) if (next) { next(checkError) return